在ASP中安全地存储(加密)数据.网络应用程序

本文关键字:加密 数据 网络 应用程序 存储 ASP 安全 | 更新日期: 2023-09-27 18:11:17

我有一个asp.net应用程序,人们通过互联网使用web浏览器访问。它运行在web服务器上,并与后端数据库对话。

一些用户希望使用应用程序来存储一些私人数据。其要求如下:

1)只有存储数据的用户才能看到它。

2)开发人员/dba应该无法看到数据。

3)如果web服务器和数据库服务器被入侵,黑客必须无法解密数据。

所以,很明显我要加密这些数据。如果我加密它,某处会有一个密钥,可能还有一个salt/IV。问题是我在哪里存储用于执行解密的数据?如果我将它存储在数据库或web服务器中,那么开发人员,dba或黑客可以访问它并解密数据。

我认为我理想的解决方案是将私钥放在客户端机器上,这样他们就完全负责了。但是我不确定如何在asp.net web应用程序中实现这一点。

我相信我可以创建一个还存储私钥(PFX)的证书。客户端公司可以使用组策略将证书部署到他们的域。但有可能ASP。Net应用程序可以请求web浏览器发送私钥给它,以便它可以执行解密?在客户端解密将是最好的,但除了在javascript中创建一些东西,我不知道这是如何可能的。

欢迎指教

在ASP中安全地存储(加密)数据.网络应用程序

将密钥存储在用户的脑海中。使用您喜欢的任何基于密码/密码短语的密钥派生算法。标准为PBKDF2。算法的最佳选择将取决于您的安全需求和威胁模式。理想情况下,该决策和实现至少应该由安全专家进行审查。

是否有可能将ClickOnce应用程序部署为解决方案的一部分?ClickOnce可以很容易地访问本地机器上的证书存储,从而允许您执行客户端加密。