所以.NET框架提供了安全字符串 http://msdn.microsoft.com/en-us/library/system.security.securestring.aspx用于以安全方式存储字符串的类。但要读取信息并使用它,您必须将其返回为标准字符串。看本实施例 http://dotnetweblog.wordpress.com/2008/07/11/securestring-storing-sensitive-data/.
正如您从使用指针的示例中看到的,我们返回一个未加密的字符串。我们现在如何管理字符串的“不安全”实例?设置该值后,最安全的处理方式是什么?
Edit
该问题的目的是讨论在使用 SecureStrings 然后使用这些值时减少潜在攻击的表面积的方法。不是“重复”链接的“原因”。
在放置 a 的内容时SecureString http://msdn.microsoft.com/en-us/library/system.security.securestring.aspx回到一个String http://msdn.microsoft.com/en-us/library/system.string.aspx,您重新引入了使用此处列出的字符串的问题:
http://blogs.msdn.com/shawnfa/archive/2004/05/27/143254.aspx http://blogs.msdn.com/shawnfa/archive/2004/05/27/143254.aspx
With SecureString
,提供了一些选项来将内容编组到非托管内存中,以便您可以访问数据,然后dispose完成后的数据。
这些是托管代码所没有的选项。在使用非托管字节时,您可以将内存清零,确保它不会分页到磁盘等,这正是您想要减少攻击面的方法。
这里的关键是not再举一个例子String
并以一种在处理这些数据时更容易管理安全性的方式处理数据(不幸的是,现在是非托管代码)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)