如何在db中存储数据,以便有权访问它的人能够理解它?

时间:2011-10-26 22:58:34

标签: mysql database security data-protection anonymize

我们即将发布国内经济网站的私人测试版。

该网站当然收集用户的信息(仅通过电子邮件确定)私人财务状况:工资,租金,账单,抵押等等。所有这些都是非常敏感的信息,任何人都不应该访问 - 甚至不是我们,技术人员。

以不可读的方式存储数据的最佳做法是什么?当然,成员密码已经在数据库中进行了哈希处理。

我正在考虑的是使用某种密钥加密所有数据。但话说回来,应用程序需要访问该密钥。而且我不想将它存储在数据库中。如果由用户提供,我想我可以将它保留在会话中以解密每个检索到的db结果。但是开销呢?

请有指导的人吗?

3 个答案:

答案 0 :(得分:1)

首先,将个人身份信息与统计信息分开。这使您可以在不将敏感数据置于风险的情况下执行计算。接下来,强烈加密个人身份信息,并将密钥存储在具有有限访问权限的强化系统中。不要对所有数据使用相同的密钥,但您使用的密钥数量是由您决定的设计决策。更多密钥将更安全,但更难处理。

可能存在适用于您的数据的现有标准,具体取决于您所在的世界以及您正在使用的行业。找出这些并跟随它们。

答案 1 :(得分:1)

任何具有管理员级访问权限的人(例如,您的技术人员)都可以访问存储在计算机上的任何解密密钥。关于会话,任何管理员级别的人都可以进行内存转储以将密钥拉出会话。

重点是,各种各样的“解决方案”很好地取决于机器访问日志记录以及强大的法律文件,承认他们正在被监视并且您将起诉。您还应该对您的技术人员进行年度背景调查。接下来,具有该类型访问权限的人数应该非常有限。作为积极参与我们开发过程的CEO,即使我无法访问我们的生产系统。

无论如何,您仍应加密数据库,尤其是PII数据。如果你不这样做,你可能会被起诉,如果有人提取数据转储,就不要紧张。

答案 2 :(得分:0)

用户密钥短语保护的第二个关键短语怎么样?当他登录时,他的第二个将被解密并存储。