具有客户端加密的Web应用程序

Col*_*lin 5 javascript encryption ssl

我正在开发一个Web应用程序,它将在客户端加密数据,然后将数据发送到服务器.服务器将存储加密数据,但无法解密数据.重点是保持客户端数据的安全,这样服务器主机甚至都无法访问数据.这可以通过服务器仅接收加密数据并且从不接收密钥的事实来保证.

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

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

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

Kev*_*son 12

看一下Host-Proof Hosting模式(从2005年7月开始).

在闪烁草图中:

锁定内部数据云,密钥在浏览器.

以加密形式托管敏感数据,以便客户端只能通过提供从不传输到服务器的密码短语来访问和操作它.服务器仅限于持久化和检索浏览器发送的任何加密数据,并且永远不会以其简单形式实际访问敏感数据.它.所有加密和解密都在浏览器内部进行.

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

此外,个人健康信息的Web浏览器加密有一个类似于您正在寻找的解决方案.

加密数据流


rom*_*omo 0

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

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

另外,如果用户忘记密码/密钥会发生什么?由于您没有存储数据,因此无法恢复数据并且数据实际上已经丢失。你将无能为力,即使这不是你的错,用户也不会这么认为。

只是一些值得深思的东西。