网站似乎在没有将密码发送到服务器的情况下登录用户;这是如何运作的?

时间:2014-11-03 15:46:13

标签: javascript security

在恒星网站常见问题解答(https://www.stellar.org/faq/#_Why_does_my_client_log_me_out_on_refresh_)上,它说明了以下内容

  

您的密码永远不会发送到我们的服务器:相反,它会在您当前的浏览器中使用   窗口来解密你的密钥。这样我们就无法访问您的星座。我们选择了   不要在本地存储此密码,以便它不会写入您的本地磁盘(我们   可以添加在本地缓存密码的功能,具体取决于用户的需求。)

这究竟是什么(或可能)有效?通常的工作流程是将密码发送到服务器,服务器然后对其进行哈希处理并将其与存储在用户数据库中的哈希值进行比较。我只能通过客户端来看待这种工作方式(安全)...

1 个答案:

答案 0 :(得分:2)

我会拍摄,注册过程中工作流程如下:

  • 我输入密码并提交表格。
  • 这会向服务器发送一个获取KEY的请求。
  • KEY返回并在客户端使用密码加密。
  • 加密密钥将发送到服务器。
  • 加密密钥存储在数据库中。

登录期间:

  • 我输入凭据并提交表格。
  • 这会向服务器发送请求以获取我的KEY。
  • KEY返回并在客户端使用密码解密。
  • 据推测,此时某种“授权”消息或信号会以某种方式发送回服务器,甚至可能是未加密的密钥?

你问这个是安全的,但事实并非如此。特别说明(在他们的常见问题解答中)他们为什么无法帮助您检索密码,它确实保护您的密码,但它不会保护您的帐户。

任何有权访问数据包嗅探器的人都可以获得加密密钥,并且根据加密级别可能会将其打开。考虑到所有加密和解密代码已经传递给客户端以在注册或登录期间执行,假设加密数据返回服务器以验证登录是一个笑话。

但这至少是可以想象的。

浏览器始终掌握在敌人手中!