如果有敏感信息,我应该在MySQL上加密什么?

时间:2017-08-04 19:19:01

标签: mysql encryption aes

我正在申请存储一些PII(个人身份信息),例如出生日期以及姓名和其他一些字段。我想在MySQL上使用CBC使用AES_ENCRYPT加密数据,但是有一位管理员需要查看信息,但如果我加密了用户的信息,管理员就无法看到。我应该使用用户名加密PII并让管理员无法使用用户名查看和加密用户名,或者我应该保留未加密的用户名,但使用用户名加密其他所有内容,留下一些安全风险,但允许管理员看到的信息。我该怎么办?

1 个答案:

答案 0 :(得分:1)

一般来说,使用AES等对称加密在DBMS中加密静态数据既不必要也不足以保护它免受攻击。

为什么?

首先,像这样的系统中的弱链接通常是Web服务器,而不是MySQL服务器机器。但是,Web服务器必须包含加密和解密数据所必需的密钥。如果攻击者攻击您的Web服务器,他会占用您的密钥和算法来生成密钥,因此他会检测您的敏感数据。他还有一种非常强大的方法来确定您认为敏感的数据。

攻击者不太可能直接破坏您的MySQL服务器;在涉及PII的情况下,这些机器通常位于防火墙后面。

另一件事:你的管理员。他需要拥有密钥,管理员是攻击者的多汁目标。 (我不是说他是个黑帽子,只是他的白帽子上有一个大红色的目标。)

另一件事:它可能会给你一种虚假的安全感。

(请注意,密码未加密:它们经过哈希处理。将密码与哈希密码进行比较并说“#34;匹配"或"不匹配”非常简单。&#34但是,使用哈希密码并恢复原始密码要困难得多。因此密码加密的论点与这种情况并不相关。)

我认真建议您按照建议花时间和金钱加密您的PII。而是花费您的资源来确保您的网站是安全的,并确保您的MySQL服务器安全地位于强大的防火墙后面并且对公共互联网不可见。

查看OWASP Top Ten个漏洞。花时间在您的网站上处理它们。使用诸如打嗝扫描或zap扫描之类的渗透测试工具来试图闯入。

保护您的网站就像是关于两个人和熊的老笑话。

熊:咆哮。

乔:我希望我可以超越熊。

迈克:我必须超越你。

在网络安全方面,你不想成为乔。