Database 公司最佳员工调查和敏感数据

Database 公司最佳员工调查和敏感数据,database,security,encryption,Database,Security,Encryption,考虑下面的问题: 每年我们都会提供公司最好的员工调查。我们希望自动化这个过程(现在我们使用一些纸张和一个方框)。构建调查应用程序很容易,但这里的主要问题是隐私。 有一些要求: 用户应该能够登录 用户只能投某人一票 调查应该是完全匿名的,即使对于数据库管理员也是如此 我想我们可以通过某种形式的数据库加密来实现这一点。但是我应该如何处理这些密钥呢?一个(简单的)对DBA隐藏用户ID的想法是使用用户密码作为cryto密钥在DB中对其进行编码。如果用于调查的可执行文件受到某种程度的保护,不受反向工程

考虑下面的问题:

每年我们都会提供公司最好的员工调查。我们希望自动化这个过程(现在我们使用一些纸张和一个方框)。构建调查应用程序很容易,但这里的主要问题是隐私。 有一些要求:

  • 用户应该能够登录
  • 用户只能投某人一票
  • 调查应该是完全匿名的,即使对于数据库管理员也是如此
我想我们可以通过某种形式的数据库加密来实现这一点。但是我应该如何处理这些密钥呢?

一个(简单的)对DBA隐藏用户ID的想法是使用用户密码作为cryto密钥在DB中对其进行编码。如果用于调查的可执行文件受到某种程度的保护,不受反向工程的影响,那么将提供基本级别的身份保护

更简单的想法是:


如果允许你随身携带一些文件,你可以制作和分发“投票卡”。具有唯一ID(例如,8或10个字符)的卡随机分发给选民,选民不使用真名登录,而是使用他的(秘密)ID。这样,可以保证匿名性,并且您可以对投票进行您想要的检查。

密码投票系统有很多研究。我怀疑您是否能得到一个安全且仅使用通用加密原语的解决方案的草图。您是否需要审核结果和/或防止DBA操纵选举?@JustinCave是的,我需要,但只是以简单的形式。我应该能够证明没有人会改变投票结果。例如,为什么要否决或结束这个问题?我猜DBA和开发人员只有一个人,所以这种保护不起作用:)是的,但是代码可以由另一个人审核/编译/检查。我认为开发人员在审计后仍然可以访问代码,没有可能的保护(我认为)。但如果审计人员是фguy,他对语音了如指掌:)源代码和二进制文件存储在repo中,这样任何人都可以检查他们使用的调查可执行文件是否被篡改。要知道投票,你必须拥有用户密码和“作弊”投票程序。此外,投票代码可以是一个JS脚本,由(受保护的)web服务器提供,内部或外部取决于你信任谁。