0

我在将一些敏感数据传递给数据库之前对其进行加密。到目前为止,每个用户都有自己的 enc/decr 密钥存储在数据库中(并且密钥本身是带有主密码的 encr。

我想知道它是否增加了将每个用户的密钥存储在同一服务器上的不同数据库中的任何安全性。说得通?

此外,我将“主”密钥保存在仅在加密时包含的单独文件中,我正在考虑以尽可能少的权限“锁定”它(CentOS 服务器)。我应该授予文件什么级别的权限?

谢谢!

4

2 回答 2

1

除非您有不同的 mysql 用户访问不同的数据库,否则将数据存储在不同的数据库中不会增加安全性。

如果您想将密码存储在数据库中并且需要能够对其进行解密以供使用,您将需要一个主密钥,该主密钥应存储在您的服务器(而不是数据库)上一个很少有人可以访问的安全位置。

此外,您应该确保将来能够更改该密钥(例如,可以将现有加密数据转换为使用新密钥的脚本)。

于 2013-01-28T15:38:49.730 回答
0

如果您的密钥在数据库中的任何位置,您可能没有它。这就像锁上你的车——把钥匙挂在门把手上。

存储密码的正确方法是对密码进行哈希(而不是加密!)然后存储哈希。然后您散列登录尝试并与存储的散列进行比较。无法重新创建原始密码。

于 2013-01-28T15:31:34.663 回答