处理Web应用程序中的机密数据

时间:2015-05-29 10:37:37

标签: asp.net sql-server encryption pbkdf2 tde

我想在我的一个网络应用程序中处理一些机密数据。因此,开发人员或数据库管理员无法读取数据。

我们可以通过实施一些加密技术轻松地隐藏数据库管理员的数据。但是开发人员仍然可以看到数据,因为他只创建了解密技术。我希望只有最终用户才能看到他的数据。

我无法使用某些算法(如PBKDF2)或数据库端加密方法加密数据,例如TDE & EKM,因为我仍然需要在某处保留加密密钥。如果我保留在服务器端或db中,开发人员可以访问和解密数据。如果我将其保留在客户端,则用户无法从单独的计算机访问该信息。

那么如何处理这种情况呢?提前谢谢。

2 个答案:

答案 0 :(得分:2)

您正朝着Zero Knowledge Web Applications的方向前进,例如由SpiderOak实施(另请参阅crypton)。这些应用程序通常通过使用诸如PBKDF2之类的用户密码从密码导出密钥并在客户端执行加密/解密来工作。但是,为了使其真正实现零知识,并且还满足可用性要求,需要克服许多复杂性。有人可以写一篇关于此的文章,但我建议你先阅读链接参考文献。如果您有任何疑问,请与我们联系。

简而言之,"更多的零知识"你想要系统,在不牺牲可用性的情况下更难实现(一个例子是克服Javascript Cryptography Considered Harmful中的观点)。但是,您可以进行各种权衡,以便在不过多影响可用性的情况下使其足够难以作弊。

答案 1 :(得分:0)

  

我需要在某处保留加密密钥

不,不。用户只需要记住它。为方便起见,您可以将其保存在浏览器的本地存储中。