我刚刚在javascript中阅读了支持SHA256,AES和其他标准加密方案的Stanford Javascript Crypto Library(jsfiddle example)。该库看起来非常漂亮,但我不知道它的合理使用情况。
正如some questions已经指出的那样,客户端加密不是将安全数据传递到服务器的安全方法。应该使用HTTPS。那么,是否有任何项目可以从中受益或需要客户端加密?
答案 0 :(得分:9)
local storage怎么样?您可能希望存储一些数据,但要加密它以便计算机的其他用户无法访问它?
例如:
如果您有胖客户端,需要在会话中使用大量(敏感)数据,这可能很有用,因为服务器中的数据由于大小而不可行。我想不出那会适用的很多例子......
在应用程序的用户生成敏感数据并且不需要(或不应该)将数据发送到服务器(或存储在服务器上)的情况下,它也可能很有用。
对于应用示例,您可以在本地存储用户的信用卡详细信息,加密并使用JS将其自动输入到表单中。您可以通过存储数据服务器端并以这种方式提供预先填充的表单来完成此操作,但使用此方法您不必将其信用卡详细信息存储在服务器上(在某些国家/地区,存在严格要求)关于的法律)。显然,关于在用户机器上存储加密的信用卡详细信息是否比存储在服务器端的安全风险或多或少都存在争议。
很可能是一个更好的应用示例...
我不知道任何使用这种技术的现有项目。
通过密码共享促进通过HTTPS进行性能改进怎么样?
例如:
这个用例可能不值得,因为HTTPS通常具有可接受的性能水平,但如果你需要更快的速度,它会有所帮助。
Host proof storage。您可以加密数据客户端,然后将其发送到服务器。服务器可以存储数据并共享它,但是在不知道客户端的私钥的情况下,它无法对其进行解密。这被认为是lastpass等服务的基础。
答案 1 :(得分:3)
与客户端上的任何内容一样,您可以使用模糊处理使临时用户更难以查看内容,但由于客户端还需要拥有解密器的副本,因此没有什么可以阻止用户自己使用解密器任
JavaScript是一个不安全的环境,期间。
答案 2 :(得分:3)
首先想到的一个用途是主机打样。这是您希望将数据存储在服务器上或存储并通过服务器转发但不允许服务器访问数据的位置。
客户端可以在传输到服务器之前加密数据,并在本地保留私钥或至少私钥的密码。
我认为这是lastpass等服务的基础。