3 回答

TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊
我會(huì)停止使用SecureString??雌饋鞵G家伙正在放棄對它的支持??赡苌踔猎趯砝?- https://github.com/dotnet/apireviews/tree/master/2015-07-14-securestring。
我們應(yīng)該在.NET Core中的所有平臺(tái)上從SecureString中刪除加密 - 我們應(yīng)該廢棄SecureString - 我們可能不應(yīng)該在.NET Core中公開SecureString

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
目前使用的框架的某些部分SecureString:
WPF的System.Windows.Controls.PasswordBox控件在內(nèi)部將密碼保存為SecureString(作為副本公開PasswordBox::SecurePassword)
該System.Diagnostics.ProcessStartInfo::Password物業(yè)是一個(gè)SecureString
用于X509Certificate2獲取SecureString密碼的構(gòu)造函數(shù)
主要目的是減少攻擊面,而不是消除它。SecureStrings在RAM中被“固定”,因此垃圾收集器不會(huì)移動(dòng)它或復(fù)制它。它還確保純文本不會(huì)寫入Swap文件或核心轉(zhuǎn)儲(chǔ)中。加密更像是混淆,并且不會(huì)阻止確定的黑客,誰能夠找到用于加密和解密它的對稱密鑰。
正如其他人所說的那樣,你必須創(chuàng)建一個(gè)SecureString逐個(gè)字符的原因是因?yàn)榈谝粋€(gè)明顯的缺點(diǎn):你可能已經(jīng)將秘密值作為一個(gè)普通的字符串了,那么重點(diǎn)是什么?
SecureStrings是解決Chicken-and-Egg問題的第一步,因此即使大多數(shù)當(dāng)前場景需要將它們轉(zhuǎn)換回常規(guī)字符串以完全使用它們,它們在框架中的存在現(xiàn)在意味著更好地支持它們。未來 - 至少到你的程序不一定是薄弱環(huán)節(jié)的地步。
- 3 回答
- 0 關(guān)注
- 1086 瀏覽
添加回答
舉報(bào)