我目前正致力于在Microsoft azure中托管的应用程序ASP.net MVC5,其中我需要存储大量密码。我想我不能使用哈希,因为我需要能够获得密码。 对于这些密码的加密/解密,我想使用似乎是安全的RijndaelManaged类。
问题是我不知道如何存储此加密/解密的密钥,以使应用程序尽可能安全。 我已经看过几个主题,但我们看到了一切。我应该在实现,数据库,conf文件或blob azure(或其他)中存储密钥吗?
答案 0 :(得分:0)
确实没有安全存储密钥的方法,并且可以通过网络应用访问它们。话虽这么说,最安全的"方法是使用Azure Key Vault。它是经过FIPS-140 Level 2认证的HSM,可以在您的应用程序无需访问密钥的情况下执行加密操作。
当然,如果您的应用程序可以只请求它想要的任何解密(如果攻击者破坏了应用程序,他们可以自己发出请求),这只会略微提高安全性。但至少,物理介质受到保护,您将实际的加密操作转移到安全的环境中。与将密钥存储在配置文件中相反,它也更有可能满足监管要求。
可以找到一个显示示例代码的简单教程here