2011-10-26 90 views
2

我们即将发布国内经济网站的私人测试版。如何在db中存储数据,以便没有人访问它可以理解它?

该网站收集用户的信息(仅通过电子邮件识别)私人财务状况:薪水,租金,账单,缴费等。所有这些都是非常敏感的信息,任何人都不应该访问 - 甚至不能我们,技术人员。

以不可读的方式存储数据的最佳实践是什么?当然,成员密码已经在数据库中散列。

我在想什么是使用某种密钥加密所有数据。但是,再次,应用程序需要访问该密钥。我不想将它存储在数据库中。如果由用户提供,我想我可以保留在会话中,以解密每个retreived db结果。但是开销呢?

请问任何有指导意见的人?

回答

0

那么用户keyphrase保护的第二个keyphrase怎么样?当他登录他的第二个将被解密并存储。

+0

刚刚看到了ObscureRobots的帖子。它比我好得多;) – gimbar

1

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

可能存在适用于您的数据的现有标准,具体取决于您所处的世界以及您所从事的行业。找出并遵循它们。

1

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

需要说明的是,唯一的“解决方案”是机器访问日志记录以及一个强大的法律文件,承认他们正在被监视,您将起诉。你也应该对你的技术人员进行年度背景调查。接下来,具有该类访问权限的人数应该非常有限。作为积极参与我们开发流程的首席执行官,即使我无法访问我们的生产系统。

无论如何,你仍应该加密数据库,尤其是PII数据。根据你的行业,如果你不这样做,你可能会遭到起诉,如果有人提出数据转储,那么不要介意坏消息。

相关问题