6

我正在开发一个 Web 应用程序,它将在客户端加密数据,然后将数据发送到服务器。服务器将存储加密数据,但具备解密数据的能力。关键是要保证客户端数据的安全,这样即使服务器主机也无法访问数据。这可以通过服务器只接收加密数据而从不接收密钥的事实来保证。

我计划在客户端使用 Javascript 进行加密和解密。此外,连接将使用 SSL 保护。

我在这里阅读了这篇文章:http: //www.matasano.com/articles/javascript-cryptography/这表明 Javascript 不应该用于加密,但它没有解决我的用例。

这是一个安全的解决方案吗?有没有办法让它更安全?

4

2 回答 2

12

查看Host-Proof Hosting模式(从 2005 年 7 月开始)。

在眨眼草图中:

锁定在数据云内部,在浏览器上键入。

解决方案

以加密形式托管敏感数据,以便客户端只能通过提供永远不会传输到服务器的密码来访问和操作它。服务器仅限于保存和检索浏览器发送给它的任何加密数据,并且从不实际访问纯格式的敏感数据。它。所有加密和解密都在浏览器本身内部进行。

关键点是您仍然需要使用 TLS/SSL 并完全信任将 HTML 作为 JavaScript 资源提供的主机。

此外,个人健康信息的网络浏览器加密具有与您正在寻找的解决方案类似的解决方案。

加密数据流

于 2013-04-20T21:24:19.160 回答
0

尽管此设置本身没有任何问题,但由于客户有责任维护自己机器的安全性,我认为您可能会遇到可能导致更多问题的情况。

一是用户希望无论如何都能够访问他们的数据。如果他们在另一个关闭了 JS 的系统上,那么他们将无法访问他们的数据。

另一个,如果用户忘记了他们的密码/密钥怎么办?由于您没有存储它,因此您无法恢复数据并且它实际上已经丢失了。您将无能为力,即使这不是您的错,用户也不会那样看。

只是一些思考的食物。

于 2013-03-14T21:31:27.483 回答