2011-09-13 21 views
1

有没有办法设计一个数据库,用户的个人资料数据可以在系统入侵的情况下受到保护?用户隐私和数据库中的数据安全

例如,私人数据可能是有价值的,即使它可能不直接与金融交易或密码相关。 [电话号码,电子邮件地址等可能被转售]

有没有一种方法来设计一个基于成员的网站,其中个人信息由网站的授权代理存储和操纵。但是,在这种情况下,如果数据库与系统断开连接,数据可能会贬值。

我意识到,大部分用户隐私和数据问题主要集中在用户界面上,并防止未经授权的用户访问与他们无关的数据。但是,我的问题是用户信息如何在后端本身内得到保护。我也意识到这是一个失去数据访问的情况[并且你可以做任何反应性的(技术上明智的)],但是我试图发现的是,是否可以主动地采取措施来减轻这种打击。

我的问题是:个人数据如何得到保护,而不会影响数据的实际目的?

我可以看到需要加密所有信息,但这会阻止组访问与用户相关的数据。例如,您可以使用私钥加密用户的邮政编码,但您将如何保留使用该邮政编码的位置信息的能力。 [也许向用户声称“这些人可能会在你附近”]

在这种假设的情况下,攻击者被给予一个被利用的数据库。他们不能使用原始系统来操作数据库。

回答

0

在您的示例中,正确的访问控制可能是最明智的方法,因为您不想放弃,例如对有问题的字段进行排序或查询的能力。

+0

如果数据库有缺口,访问控制并不意味着什么。 – monksy

1

如果您仅在登录时访问用户的信息,则可以使用其密码来解密数据库中的数据。在此期间,您可以计算邮政编码中的单向散列,并存储未加密的散列。但是,如果您在网站的整个生命周期内开发数据库,​​您将无法更新永不登录的旧用户的信息。也许这在实践中并不是问题。

+0

我喜欢这个答案,但肯定有一种方法可以在不删除数据含义的情况下进行单向转换。例如:以这种方式转换邮政编码的方式,在这种方式下,您可以比较两个地方,并仍然可以确定它们是不同的地点。 – monksy

+0

@monksy不可以。虽然您可以应用单向转换(如哈希),但zip地址的空间非常小,以至于对暴力操作来说都是微不足道的。 – CodesInChaos

+0

是的,绝对 - 那正是我所掌握的。与asdfghjkl的zip哈希值相同的用户与具有相同哈希拉链的其他用户的邮政编码相同。但是你不能期望asdfghjkm接近,否则你就冒险泄露私人数据。 – tripleee

1

我打算假设您指示入侵者不仅获得了访问机器的权限,而且还获得了任何MySQL密码。

因此,我能想到的唯一解决方案就是在数据库下使用加密的文件系统。即使在那里,你仍然失去了设备的物理控制 - 所以如果入侵者已经找到了fs的解密密钥,那么你仍然是一个谚语的小溪。

另一种选择是拆分应用程序,以便网站和数据库不共享同一个系统。当然,通常以只读用户运行该网站是一个好主意™ :)

以散列或加密形式存储数据库是一个好的开始,但您仍然需要访问解密密钥,或者它将成为gobbledygook。

最终,当然,保护数据库的最佳方法是防止访问 - 这不是一个可行的解决方案。

这是出现在新闻周期性如果/当在未经授权的形式访问银行或商店的客户名单中的问题 - 该数据是安全只能通过接口/应用:它仍然以明文方式在某些时候在一切之下。

+0

我意识到,当你失去访问权限时,你已经到了小溪。然而,我的问题是“如果所有安全层都从数据库中剥离,你如何确保用户的隐私”[即例如:如果你有一个完全受保护的数据库,但数据库中的原始数据[忽略CC和密码],sql注入攻击仍然会绕过文件系统加密,用户帐户等。 – monksy