我已經在java中開發了一個桌面應用程序,其中我擁有了用戶的憑據。我開發了這個應用程序,使它可以在任何平臺上運行。現在困惑的是,我正在獲取的是存儲此憑據信息的位置。文件是否適合它?或者我應該根據所使用的平臺來存儲它?就像在Windows中,我可以使用註冊表來存儲這些信息。但是,Linux和其他平臺呢?有什麼標準的解決方案可以幫助我或使用文件是唯一的方法嗎?我最初以爲將它存儲在屬性文件中,但任何有知識的人都可以瀏覽jar的內容,並可以擁有該屬性文件,所以我認爲這也不是合適的解決方案。請告訴我一個更好的方法來存儲這個憑據。憑證已加密。哪裏存儲機密信息?
2
A
回答
3
如果憑據已加密,您可以將它們存儲在一個文件中,最好存儲在用戶的主目錄中。您也可以加密文件本身以防止其他人直接閱讀。
使用這個,你有3個級別的安全性:
- 只有用戶訪問主目錄(用戶自己,任何管理員)可以訪問文件。你也可以有多個文件 - 每個用戶一個。
- 該文件是加密的,所以只有那些有權訪問解密密鑰和知道加密方法的人才能解密該文件。
- 證書通常使用異步算法進行加密。因此,純文本無法用任何合理的努力來重構。
1
由於您的應用程序針對多個平臺,因此即使您提供了在其他平臺中實現相同功能的方法,我也不認爲您應該實現特定於平臺的選項。例如,總是可以瀏覽Windows註冊表。
如果使用目前認爲安全的算法對證書進行加密,我認爲您不需要擔心很多事情。 在你認爲更合適的地方模糊了證書,加密應該完成剩下的工作,這就是它存在的原因。
只是不要忘記保護用於加密證書的密鑰。
4
在這種情況下,加密密碼是最好的選擇。所以,你可以將它保存在一個文件中。永遠不要將密碼存儲爲文件,數據庫或其他地方。我認爲這是相當廣泛和有用的文章在這個主題:http://www.codeproject.com/KB/recipes/StoringPasswords.aspx。
+0
不錯的文章...有更多關於我的問題的知識... – ankurtr 2011-12-21 16:58:04
相關問題
- 1. iPhone在哪裏存儲日曆信息?
- 2. Backbone.js - 在哪裏存儲狀態信息?
- 3. virtualenvwrapper:在哪裏存儲virtualenv信息?
- 4. 在哪裏存儲類關係信息?
- 5. Solr:在哪裏存儲附加信息?
- 6. 哪裏存儲對象信息django?
- 7. 哪裏存儲用戶登錄信息?
- 8. 哪裏存儲用戶登錄信息?
- 9. Auth0 app_meta存儲機密信息?
- 10. PHP:我應該在哪裏存儲信息和警告信息
- 11. git在哪裏存儲有關存儲庫的來源信息
- 12. 在哪裏存儲jasypt解密密碼
- 13. Eclipse在哪裏存儲哪些文件是「Derived」的信息?
- 14. 哪裏存儲用戶在PHP中的錯誤/信息消息?
- 15. ASP.NET中存儲的緩存信息在哪裏?
- 16. 存儲不在捆綁中的文件的密碼信息在哪裏?
- 17. 閃存消息存儲在哪裏?
- 18. 在哪裏存儲靜態信息,如歷史,條款,聯繫信息
- 19. HMAC/Javascript - 在哪裏存儲祕密?
- 20. Webmin在哪裏存儲根MySQL密碼?
- 21. 運行時在哪裏存儲密碼?
- 22. SSL對稱密鑰存儲在哪裏?
- 23. Netbeans 7在哪裏存儲FTP密碼
- 24. SecKeyGeneratePair在哪裏存儲密鑰對?
- 25. 哪裏可以存儲密碼?
- 26. laravel密碼鹽在哪裏存儲?
- 27. ModX Evolution:SMTP密碼存儲在哪裏?
- 28. 設計存儲密碼在哪裏?
- 29. 在哪裏存儲用戶的信息(個人信息,用戶名和密碼)在visual basic?
- 30. Spring Roo在哪裏保存信息?
謝謝。我認爲將文件存儲在主目錄是我將遵循的。 – ankurtr 2011-12-21 13:29:34