加密/解密密钥交换PHP / SQL

时间:2019-03-12 09:42:46

标签: php mysql encryption

我目前正在我密封的平台之一上升级安全性。但是,我无法破解如何安全地存储我的加密/解密密钥。

当前设置:
MySQL服务器
网络服务器

我需要使用AES_ENCRYPT / AES_DECRYPT存储和读取数据库中的所有敏感数据。但是,我想安全地存储用于加密/解密数据的密钥。因此,在某人获得对数据库或Web服务器的访问权限的情况下,他们将无法轻易猜出键组合或从配置文件中读取键组合。

密钥可能会根据我需要读取/写入的数据而变化。

这有可能吗?我想到的第一个选择就是只使用基于我需要读取的数据的某些列的组合键。但是,这样可以通过查看代码来猜测是否有人同时拥有源代码和数据库。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

一种简单而安全的密钥存储方法是使用密钥管理服务,例如AWS KMS。

它们(应该)将密钥存储在经过FIPS-140-2验证的硬件安全模块上,该模块旨在用于密钥的存储和加载。

在线密钥管理服务可以批量执行此操作,并提供一个API来使用您的密钥。

它们是行业标准,应该用于安全地存储密钥,因为将密钥存储在文件或数据库中可以安全但不能保证安全。