我正在开发一款带有健康信息的应用程序。这个应用程序将面向消费者,这对我来说是新的。我想找到一种方法完全放心地解决隐私问题。当我审查在公开可访问的数据库中保护敏感数据的方法时,我经常遇到数据库半透明性的概念。有关于该主题的原始书籍,以及Oriellynet上关于该主题的优秀教程。
我的担忧是,我在非常现代的编程网站(例如此网站)上很少看到与此想法有关的信息。维基百科上似乎没有关于这个想法的文章。这里也没有关于这个主题的问题,也没有最近的教程或文章。简而言之,这个想法是某些数据对系统的某些用户是明晰的,而其他用户则无法访问那些数据,即使他们具有管理员访问权限,也受到密码学的限制。
我在一个原型数据库上做了大量工作,提供了半透明数据访问。我遇到了一个相当大的问题:为了真正实现半透明,不能有密码恢复机制。如果管理员可以重置用户密码,那么他们就可以短暂地访问用户的数据。为了真正实现半透明,用户必须永远不失去密码。
我们中使用强加密保护私人数据的人(确实是技术人员)在日常生活中已经习惯了这个问题,当使用这些强加密系统时。如果“blowfish”这个词是你日常词汇的一部分,那么这是一回事,但是对于面向消费者的网站而言呢?我担心用户不愿意理解与真正的数据库半透明性相关的“真正只为您加密”的概念。我害怕支持电话以“我忘记密码”开始,并以我说“我无能为力”结束。
我的问题:我应该在我的应用程序中实现这种方法吗?是否有其他开源应用程序也采用了这种方法,我可以比较数据库设计(特别是使用php/MySQL)?还有其他人追求这些真正安全但非常不方便的功能集吗?是否有其他更流行、更现代的数据库安全模型我错过了?数据库透明度是一时的潮流还是一种合法的数据库设计方法,我应该采纳?虽然我总是欢迎讨论,但我更希望得到客观的答案来支持我的设计。