我知道加密密码可以存储在web.config中,或者哈希和盐渍密码可以存储在数据库中,但是可以将密码存储在密钥库之类的东西中吗?
密钥库是否应该存储应用程序所需的“服务帐户”密码?
答案 0 :(得分:4)
与.NET / Windows世界中Java密钥库最接近的类似物是DPAPI(http://en.wikipedia.org/wiki/Data_Protection_API)。它将加密值存储在Windows注册表中,加密密钥源自系统或用户帐户级别机密。
虽然在2010年黑帽DC会议上发表了一篇文章,详细说明了针对它的攻击(Google Docs),但它的用途相当广泛。
在那篇论文之前(如果MS在某些时候修复它),我强烈推荐DPAPI,正是你所描述的。
此时,使用DPAPI可能(并且不幸)是最佳选择。一个缓解因素是破解技术性很强,难以执行,并且需要相当多的操作系统访问才能实现。与外部攻击者相反,违反DPAPI密钥最有可能被可信赖的内部人员取消,该内部人员可以访问系统。