簡體   English   中英

尋求一種將加密密碼存儲在人類可讀設置文件中的方法

[英]Seeking for a method to store encrypted passwords in a human readable settings file

注意:請仔細閱讀本題:本題求書籍、工具、軟件庫等推薦。 相反,我正在尋找應用程序中現有加密背后的方法。 一個類似的先前問題被鎖定 - 恕我直言,由於誤解。

我正在尋找其他人如何以安全的方式在用戶驅動器上明顯保護密碼的方法(也許還有實現提示)。 例如在 Windows 上:您可以輕松地存儲 RemoteDesktop 會話的密碼,而無需在重新打開 session 時輸入密碼(即使在重新啟動 PC 之后)。 SMB 連接或與 SharePoint 驅動器的連接也是如此。 因此,我的假設是,必須有一種安全的方法來保護密碼。 這就是我想了解的。 周圍有(封閉源代碼)工具將密碼存儲在文件中的某種 hash 中 - 該文件僅適用於該特定計算機。 這就是我正在尋找的,但希望不需要使用過多的加密庫。

背景是我正在開發一個本機跨平台應用程序(尤其不是網絡應用程序,而是 C++),它需要輸入用戶名和密碼才能連接到代理服務器。 為方便起見,我想將此敏感信息加密存儲在應用程序的設置文件中,該文件具有 INI 文件格式。 因此,文件本身不應被加密。

有人知道這樣做的簡單算法方法嗎?

我確實找到並嘗試了基於 SHA 哈希的算法等等,但它們要么都需要主密碼(這無濟於事,因為重點不在於輸入密碼),要么它們實際上使用了大量的加密庫和非-跨平台 API,這使得跨平台實現變得困難。

所有這些功能最終都取決於隨機生成的主密碼,該密碼只能由特定的登錄用戶讀取。

存儲此類密碼的安全方法是使用從用戶登錄憑據的 hash 生成的密碼對其進行加密。

如果用戶有多種登錄方式,則必須為每種登錄方式存儲不同的主密碼副本,並使用從 hash 生成的密碼加密,該密碼由用戶必須為該特定登錄方式提供的任何憑據生成。 這通常需要操作系統支持。

通常,實現不會明確地解決這個問題,而是依賴文件系統安全性來確保只有所需的用戶才能讀取主密碼。 但是,在這種情況下,如果要防止超級用戶訪問密碼或繞過文件系統安全的其他方式,則需要使用磁盤加密。

不過,磁盤加密將擁有自己的主密碼,並使用登錄憑證 hash 進行加密。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM