-
想象一下,一个非常标准的网站,用户通过电子邮件/密码对进行身份验证。对于密码,它已经用随机盐进行了处理,但其余数据都是未加密的。
-
我们又向前迈进了一步,用
密码密钥加密敏感数据,显然,应用程序应该知道密钥,以便能够为其操作描述数据。 -
我们不想在源代码中包含它,所以它被保存在一个文件中,并在需要时由应用程序读取。
-
我们已经保护了文件,这样只有执行应用程序的用户才能读取
-
(这一点在下面的一些讨论后出现了(我们已经考虑过购买硬件HSM,并发现这是不可能的(例如,我们在虚拟机上运行服务器(
这样我们就可以相对地避免数据库被完全窃取,对吧?然而,如果有人能够访问具有读取权限的操作系统用户,则密钥可能会变为已知。
问题是:保持此类密钥安全的最佳做法是什么
购买硬件安全模块并将密钥保存在其中。密钥将无法读取。
Yubi生产价格合理的hsm$500,如果我没记错的话。
当我们在这里时,您的数据库服务器应该与您的web服务器位于不同网络区域的不同盒子上。