网站似乎在没有向服务器发送密码的情况下登录用户;这是怎么回事

website seemingly logs users in without sending the password to the server; how does this work?

本文关键字:登录 情况下 用户 怎么回事 密码 服务器 网站      更新时间:2023-09-26

在恒星网站常见问题解答(https://www.stellar.org/faq/#_Why_does_my_client_log_me_out_on_refresh_)上面写着以下

您的密码永远不会发送到我们的服务器:相反,它会在您当前的浏览器中使用窗口解密您的密钥。那样我们就永远无法接触到你的恒星。我们选择了不要将此密码存储在本地,这样它就不会写入您的本地磁盘(我们可以根据用户需求添加在本地缓存密码的能力)。

这究竟是怎么回事?通常的工作流程是将密码发送到服务器,然后服务器对其进行哈希处理,并将其与存储在用户数据库中的哈希进行比较。我看不出只有在客户端才能做到这一点(安全)。。。

我拍一张照片,注册过程中的工作流程是这样的:

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

登录期间:

  • 我输入我的凭据并提交表格
  • 这会向服务器发送一个请求以获取我的KEY
  • KEY返回并在客户端上使用密码进行解密
  • 大概在这一点上,某种"授权"消息或信号以某种方式被发送回服务器,甚至可能是未加密的密钥

你问这是否安全,但事实并非如此。他们(在他们的常见问题解答中)特别提到了为什么他们不能帮助你检索密码,它确实保护了你的密码,但不能保护你的帐户。

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

但至少这是可以想象的。

浏览器总是掌握在敌人手中!