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

时间:2013-03-14 21:02:20

标签: javascript encryption ssl

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

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

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

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

2 个答案:

答案 0 :(得分:11)

查看Host-Proof Hosting模式(自2005年7月起)。

  

在闪烁草图中

     

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

     

<强>解决方案

     

以加密形式托管敏感数据,以便客户端只能访问   并通过提供永远不会的密码来操纵它   传输到服务器。服务器仅限于持久和   检索浏览器发送的任何加密数据,从不   实际上以普通形式访问敏感数据。它。所有   加密和解密发生在浏览器本身内。

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

此外,Web-browser encryption of personal health information的解决方案类似于您所寻找的解决方案。

Encryption data flow

答案 1 :(得分:-1)

虽然此设置没有任何内在错误,但由于客户有责任维护自己机器的安全性,因此我认为您可能会遇到可能导致更多问题的情况。

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

另外,如果用户忘记密码/密钥会怎样?由于您没有存储它,因此您无法恢复数据并且它实际上已丢失。你不会做任何事情,即使这不是你的错,用户也不会那么看。

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

相关问题