我正在构建一个包含健康信息的应用程序。这个应用程序将面向消费者,对我来说是新的。我想要一种让隐私问题完全放心的方法。当我查看在公共可访问数据库中保护敏感数据的方法时,我经常遇到数据库半透明的概念。该主题有the original book和excellent tutorial on the subject from Oriellynet。
我担心的是,我所看到的非常现代的编程网站(就像这个网站)上看到的关于这个想法的信息很少。在维基百科上似乎没有关于这个想法的文章。这里没有关于这个主题的问题,也没有关于这个主题的最新教程或文章。简而言之,这个想法是某些数据对于系统的某些用户是清楚的,而其他用户在加密时无法访问该数据,即使他们具有管理员访问权限。
我在提供半透明数据访问的原型数据库上做了大量工作。我遇到了一个相当大的问题:要真正半透明,就没有密码恢复机制。如果管理员可以重置用户密码,则他们可以短暂地访问用户数据。要真正半透明,用户绝不能丢失密码。
在使用这些强大的加密系统时,我们这些使用强加密来保护日常生活中的私人数据(技术人员确定)的人会习惯这个问题。如果“河豚”这个词是你日常词汇的一部分,那是一回事,而是一个以消费者为中心的网站?我担心用户不会愿意围绕真正的数据库半透明隐含的“真正为你加密”概念。我害怕以“我丢失了密码”开头的支持电话,最后跟我说“没有什么可以为你做的”。
我的问题:我应该在我的应用程序中实现此方法吗?是否有其他开源应用程序沿着这条路走下去,我可以比较数据库设计(特别是使用php / MySQL)?我还有其他人在追求这些真正安全但非常不方便的功能集吗?是否有其他数据库安全模型更流行和现代,我错过了?数据库半透明是我应该拥抱的时尚还是合法的数据库设计方法?虽然我总是喜欢讨论,但我更喜欢在设计中可以利用的客观答案。
答案 0 :(得分:7)
所以,我最近一直在寻找与此类似的东西,并遇到了同样的问题。我正在考虑实施的解决方案如下:
此时,您仍处于如果用户忘记密码的情况下,他们已经拥有了密码。
这有很多挑战和考虑因素。我对其中的大多数都有一些想法,但也会对其他人的意见感兴趣:
您在此领域实施的任何内容都会降低半透明数据库方法的安全性,毫无疑问,但根据数据的性质,这可能是一个值得妥协的方法。
答案 1 :(得分:2)
我应该在我的应用程序中实现此方法吗? 就像生活中的其他事情一样,有一个折衷:)它可能更安全但更难建造。
是否还有其他开源应用程序沿着这条路线走下去,我可以将数据库设计与(使用php / MySQL)进行比较?
不知道,我想这些工具可以自己做:)
还有其他人在追求这些真正安全但非常不方便的功能集吗?
是的,但似乎它仍处于不成熟状态,就像您描述的有关丢失密码的问题一样。
是否有其他数据库安全模型更受欢迎和现代化,我错过了?
基本上有两种数据库连接。一个选项为用户提供真实的数据库帐户,另一个选项是对数据库使用单点登录。在网络出现之前,在客户端/服务器领域都支持这两种模型,但在Web开发人员中,单点登录方法正处于领先地位。
数据库半透明是我应该拥抱的时尚还是合法的数据库设计方法?
不要这么认为,例如,UNIX密码数据库是基本半透明数据库的一个很好的例子;)
这里有一些内容可以阅读link text
答案 2 :(得分:1)
Re:半透明数据库。我想,你可以使用指纹。烧伤的受害者,或最终失去指纹的人呢?哎呀。是否值得这么小的用户?
熟悉HIPAA,特别是在技术方面。 请记住,除了天网*之外,没有任何系统是真正安全的,看看发生了什么!人类负责。当您在医疗公司工作时,您签署了一份NDA,表明您不会将您学到的任何信息作为职责的一部分发布,因为它是保密的。 将有人重置人们的密码。这就是它的方式,因为不是每个人都具备技术能力,这就是它现在的方式。 你只需要实现安全性,HIPAA说。
答案 3 :(得分:0)
稍有不同的解决方案,您可能需要查看cryptdb: