SHARE THE PERSPECTIVE
SRP 避免在登录交换中发送密码,但不会让被盗的验证值变得无害。

安全远程口令协议(Secure Remote Password,简称 SRP)让客户端与服务器使用密码进行认证,而不在正常的协议交换中发送该密码。对于原本会在登录时接收密码的服务器,这可以减少密码暴露。

它并未让服务器不再持有任何与密码有关的秘密。服务器保存一个验证值,而被盗的验证值可以被用于离线猜测密码。在评估“零知识登录”的说法时,这一区别至关重要。

与传统密码登录相比,有何变化?

在传统设计中,客户端通过经过认证的 TLS 连接发送密码。设计良好的服务器会比较合适的加盐密码哈希,避免记录凭据,并采取防猜测措施。TLS 保护连接;密码哈希则以不同方式保护存储的凭据。

SRP 改变了交换过程。注册时,系统建立盐和验证值材料。登录时,双方使用新的协议值及各自的秘密,建立并确认共享密钥材料。客户端使用密码,服务器使用其验证值。诚实的客户端不会将密码本身作为登录载荷提交。

RFC 2945 中的 SRP 规范解释了协议的基础。后续配置规范和实现仍需审查其确切参数及消息检查;将设计称为“SRP”,并不能证明每项实现选择都可靠。

问题 传统的通过 TLS 传送密码的登录 正确实现的 SRP 交换
应用服务器在登录时会收到输入的密码吗? 通常会 不会作为协议交换的一部分收到
存储了哪些敏感认证材料? 通常是加盐密码哈希 盐和由密码导出的验证值
被盗数据库可用于离线猜测吗? 可以,取决于存储的材料 可以,被盗 SRP 验证值材料可用于猜测
能防御键盘记录器吗? 不能 不能
会自动加密消息历史吗? 不会 不会

为什么被盗验证值仍然重要

RFC 5054 第 3.3 节明确讨论了验证值被盗的情况。它说明,验证值可以让攻击者冒充服务器,并通过字典攻击恢复密码。

关键区别是:验证值并不只是一个可重复使用的客户端登录令牌。但这不意味着它无害。攻击者可以对照被盗材料测试候选密码,而不必为每个可能的秘密求解离散对数问题。弱密码或重复使用的密码仍是严重风险。

在线速率限制可以减缓对运行中服务的尝试,却无法约束针对被盗数据库进行的计算。数据库保护、审慎的密码处理以及强且唯一的密码仍然重要。

SRP 不能保护什么

已被攻破的端点: 恶意软件可以在协议开始前捕获密码,也可以在认证完成后窃取会话。

恶意登录页面: 如果索取密码的页面本身是恶意的,它就能把输入文本发送到别处。网页应用仍然需要可信的交付路径。

所有恢复路径: 能授予账户访问权限的电子邮件、短信或客服流程,各有自己的要求。最强的常规登录方式也可能被较弱的备用路径破坏。

每一种主动网络攻击: 协议参数、输入验证、相互确认以及外围经过认证的连接都很重要。不要用“密码从不传输”的口号,取代部署方案所规定的 TLS 保护。

元数据或聊天加密: 认证回答的是是否应允许某个会话进入。它并不决定有哪些对话记录,也不决定谁持有消息解密密钥。

Livara 如何区分登录与身份恢复

Livara 的安全概览将 SRP 认证与 LVR1 消息协议分别说明。文档还介绍了第 7 版加密身份备份,它由一个独立的随机 256 位恢复密钥保护。

该备份在上传前就已封装加密,恢复的是密码学身份,而不是聊天历史。仅知道账户密码,无法恢复那些加密密钥。反过来,声称客服无法重建加密秘密,也不能证明不存在任何账户管理操作或密码更改流程。

威胁模型同样将设备失陷和可见通信元数据纳入范围。不应借 SRP 之名,把整个服务重新包装成对用户活动的每一个方面都“零知识”。

实用评估清单

对用户而言,应选择强且唯一的密码,保护设备,将恢复材料放在适当的独立位置,并了解如何撤销会话。不要仅因一个不可信网站声称使用 SRP,就在其中输入秘密。

对技术审查者而言,应索取确切的协议配置规范、密码到验证值的处理方式、输入验证、失败处理、注册流程和重置设计。应将客户端与服务器结合审查。测试应覆盖无效公开值、重放和中断的会话,而不是只依赖一次成功的登录测试。

SRP 是限制认证过程中密码泄露的有用工具。将其真正的优势与验证值被盗、端点失陷和恢复风险一起说明,比将它描绘成密码安全问题的终结,更能清楚体现它的价值。

阅读我们的威胁模型
CONTINUE THE THREADPrivate messaging ↗
YOU’VE REACHED THE ENDBack to the reading room ↗