我正在使用.net框架中的aes加密类加密数据(医疗保健行业)。推荐的安全存储密钥的位置有哪些?我将它放在web.config中进行开发,但至少可以说,这感觉不值得生产。
发布于 2010-10-25 22:33:19
您可以使用框架中的内置方法对web.config值进行加密:
http://weblogs.asp.net/scottgu/archive/2006/01/09/434893.aspx
这可能是一个存储密钥的合理位置-如果有人设法访问您的服务器来检索这些详细信息,那么您可能有更大的担忧。
发布于 2010-10-25 22:57:25
您需要做的是将这个密钥隐藏在某个地方,一个安全的位置应该在数据库中。最好是与包含您的数据的数据库不同的数据库。由于数据需要用户名/密码组合才能打开,因此只需向应用程序添加第二个安全层。您的应用程序需要登录到密钥数据库,检索应用程序Y的密钥X,然后才能使用它。不过,您必须将此数据库的连接字符串存储在某个位置。
即使您只将单个密钥存储在密钥数据库中,也是值得的。这迫使黑客在可以访问数据之前,花更多的精力打开这个数据库来找到密钥。由于没有完美的安全性,您的选择仅限于延迟黑客获取访问权限所需的时间。
加密web.config文件或其中的数据也有助于延迟黑客,但如果密钥在配置文件中,他需要做的就是再次解密它。
发布于 2010-10-26 00:00:01
一种方法将提供良好的安全性,如果任何目的都需要使用密钥的人可以绝对信任它,则存储使用另一个密钥加密的密钥,该密钥的副本是为每个用户存储的,使用该用户的密码的散列加密(与存储用于密码验证的密钥不同!)。即使一个邪恶的人能够访问宇宙中任何地方的每一位数据,并与该数据库的密钥相关联,如果不对至少一个密码进行逆向工程,也无法访问该数据库。
请注意,如果所有有效帐户的密码曾经丢失或忘记,数据将无法找回。这是真正安全的本质的一部分。如果想要避免丢失数据的可能性,必须确保安全地存储必要密钥和/或密码的备份副本。
https://stackoverflow.com/questions/4015483
复制相似问题