加密数据库数据

时间:2017-02-09 10:28:48

标签: mysql database security encryption

现在我知道这个问题已经被问过很多次,关于加密的地方,加密的内容以及要加密的内容。

无论如何,当谈到数据库中的数据加密时,我知道我可以将AES_ENCRYPT()与字段名和给定键一起使用,而且我可以合并诸如日期和时间之类的内容,甚至可以包含存储在数据库中的密钥。单独的表。

我和其他人可能面临的问题是,每个人对每个人都有意见,似乎有百万种不同的方法。

另外,在安全方面,我知道最好不要尝试创建自己的安全措施。

所以,我的问题是:要遵循什么样的标准做法?

我使用AES没有问题但有行业标准吗?

1 个答案:

答案 0 :(得分:1)

我已经做了一些,因此可以描述一个权衡。有一些特定于实现的问题,例如是否有措施使短值加密安全(我不知道MySQL的答案 - 我知道在PostgreSQL上处理的问题有很大的性能成本)

假设数据库中的安全加密实现(这里的性能与安全性实际上是另一个重要的权衡),你在数据库中遇到了一些基本问题。

  1. 在数据库中存储密文后,您就放弃了使用索引搜索该信息的能力。

  2. 使用aes_encrypt,您可以在查询字符串中传入密钥。这意味着如果记录查询,则会记录密钥。确保不会发生这种情况可能会在出现问题时进行故障排除。

  3. 另一方面,您可以使用适当的子查询构建更高级的密钥管理系统,以便您可以优雅地处理密钥转换。

  4. 使用应用程序级加密处理密钥轮换比在db中更难处理。但是,日志中的关键披露是一个需要思考问题的真正问题。如果我可以给出建议,那么首先要关注 问题,然后解决你更倾向于解决的那些问题。