我正在升级我密封的其中一个平台上的安全性。但是,我无法破解如何安全地存储我的加密/解密密钥。
目前的设置: MySQL服务器 网络服务器
我需要使用AES_ENCRYPT / AES_DECRYPT存储和读取数据库中的所有敏感数据。但是,我希望安全存储数据加密/解密的密钥。因此,在有人获得对数据库或Web服务器的访问权限的情况下,他们将无法轻易猜出组合键或从配置文件中读取它。
密钥可以根据我需要读/写的数据而改变。
这是可能吗?我想到的第一个选项就是根据我需要读取的数据的某些列使用组合键。但是,如果有人要掌握源代码和数据库,那么可以通过查看代码来猜测。
有什么想法吗?
存储密钥的一种简单而安全的方法是使用AWS KMS等密钥管理服务。
他们(应该)将密钥存储在FIPS-140-2经验证的硬件安全模块上,这些模块专为密钥存储和加载而设计。
在线密钥管理服务批量执行此操作并提供api以使用您的密钥。
它们是行业标准,应该用于安全地存储密钥,因为将它们存储在文件或数据库中可能是安全的,但不能保证密钥。