首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >客户端加密的有效用例是什么?

客户端加密的有效用例是什么?
EN

Stack Overflow用户
提问于 2011-08-19 23:01:31
回答 3查看 2K关注 0票数 12

我刚刚读到了Stanford Javascript Crypto Library (jsfiddle example),它完全用javascript支持SHA256、AES和其他标准加密方案。这个库看起来很不错,但我不知道它有什么合理的用例。

正如some questions已经指出的,客户端加密不是将安全数据传递到服务器的安全方法。应该改用HTTPS。那么,有没有项目可以从客户端加密中受益,或者需要客户端加密呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-19 23:05:28

用例1

local storage呢?您可能想要存储一些数据,但加密它,以便计算机的其他用户无法访问它?

例如:

  • 用户通过password).
  • User连接到服务器。
  • 服务器对用户进行身份验证。
  • 服务器提供特定于此用户的加密密码。
  • 用户在本地执行某些操作。

H110某些数据存储在本地(使用HTTPS进行加密)用户稍后会返回站点。<代码>H215<代码>H116用户通过HTTPS连接对用户进行身份验证。<代码>H219<代码>H120服务器提供用户的加密password.

  • Client-side JS使用加密密码解密本地数据。
  • 用户使用其现在已解密的数据在本地执行某些或其他操作,内存中的本地数据。

如果您有一个胖客户端,其中有大量(敏感)数据需要跨会话使用,并且由于大小的原因,从服务器提供数据是不可行的,那么这可能会很有用。我想不出有那么多这样的例子...

在应用程序的用户生成敏感数据,并且这些数据不需要(或不应该)发送到(或存储在)服务器的情况下,它也很有用。

作为一个应用示例,您可以将用户的信用卡详细信息存储在本地并加密,然后使用JS将其自动输入到表单中。您可以通过存储数据服务器端来实现这一点,并以这种方式提供预先填充的表单,但使用这种方法,您不必将他们的信用卡详细信息存储在服务器上(在某些国家,这方面有严格的法律)。显然,在用户机器上存储加密的信用卡详细信息是否比存储在服务器端更多或更少的安全风险是有争议的。

很可能有一个更好的应用示例...

我不知道有任何现有的项目使用这种技术。

用例2

如何通过密码共享来提升HTTPS的性能?

例如:

  • 用户通过HTTPS连接到服务器对用户进行身份验证。
  • 服务器提供特定于此用户的加密密码。然后,
  • 服务器重定向到HTTPS (它的开销比HTTPS小得多,因此在performance).
  • Because方面要好得多)服务器和客户端都有加密密码(并且该密码是通过安全连接共享的),它们现在可以发送和接收经过安全加密的敏感数据,而不需要使用
  • 加密/解密整个请求的开销。这意味着服务器可以为只加密敏感部分的网页提供服务。然后,客户端可以解密加密的部分。

这个用例可能并不值得,因为HTTPS通常具有可接受的性能级别,但如果您需要挤出一点速度,则会有所帮助。

用例3

Host proof storage。您可以在客户端加密数据,然后将其发送到服务器。服务器可以存储和共享数据,但在不知道客户端私钥的情况下,它无法解密数据。这被认为是lastpass等服务的基础。

票数 11
EN

Stack Overflow用户

发布于 2011-08-19 23:06:26

就像客户端上的任何东西一样,您可以使用混淆来使临时用户更难窥视内部,但由于客户端还需要解密器的副本,因此也没有什么可以阻止用户自己使用解密器。

JavaScript是一个不安全的环境,句号。

票数 3
EN

Stack Overflow用户

发布于 2011-08-19 23:22:43

我想到的一个用途就是防止主机攻击。这是您希望在服务器上存储数据或通过服务器存储和转发数据,但不允许服务器访问数据的位置。

客户端可以在将数据传输到服务器之前对数据进行加密,并将私钥或至少私钥的密码保存在本地。

我相信这是lastpass等服务的基础。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7123511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档