![](/img/trans.png)
[英]Is it possible to encrypt with private key using .net RSACryptoServiceProvider?
[英]Protecting RSACryptoServiceProvider private key with password or otherwise
我想使用.NET的RSACryptoServiceProvider加密某些服務器數據,並在有人通過網頁輸入密鑰/密碼時將其解密。 在保護或理想情況下甚至不將私鑰存儲在服務器上,同時又避免讓用戶每次都提供私鑰時,我有哪些選擇?
除了硬件方法(HSM或智能卡)以外,您幾乎還必須使用一個秘密來保護另一個秘密。 因此,您不斷添加密碼。 我的建議是使用DPAPI,
http://en.wikipedia.org/wiki/Data_Protection_API
使用這種方法,您無需再創建另一個密碼。 用戶體驗也更好,因為他們只需在登錄時輸入一次密碼即可。
最好的選擇是將私鑰存儲在受HSM密碼保護的硬件安全模塊中,以確保沒有密碼就無法使用私鑰。
如果不是HSM的選擇(畢竟它們非常昂貴),則應使用PBKDF2或類似的強大系統派生對稱密鑰,並使用該密鑰加密私鑰。 也可以選擇使用CSP的密碼保護,但是它對正在發生的事情的透明性稍差一些,因此您必須注意避免讓域管理員等使用該密鑰。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.