NIST SP 800-63B-4 实用指南,涵盖身份认证保证等级、现代密码规则、抗钓鱼能力与账户恢复。
NIST SP 800-63B-4 发布于2025年7月31日,是美国国家标准与技术研究院现行的身份认证与认证器管理指南。这份指南摒弃了所有服务一律采用相同登录规则的思路,转而根据影响、风险以及用户所提供证据的证明力来确定认证要求。
这份文件是技术指南,并非普遍适用的法律。组织在实施时,仍需结合适用的法规、面临的威胁和用户群体进行设计。
身份认证保证等级
AAL1
AAL1 提供基本程度的保证,表明访问账户的人控制着与该账户绑定的认证器。该等级允许使用单因素认证。只要按验证方的要求实施,密码就可以满足这一等级,但风险较高的服务不应认为 AAL1 就已足够。
AAL2
AAL2 要求使用两种不同的认证因素。服务必须提供至少一种抗钓鱼的认证选项。密码加上认证器应用生成的验证码可以构成双因素认证,但手动输入的一次性验证码本身不具备抗钓鱼能力,因为足以取信用户的代理网站可以转发该验证码。绑定到适当设备的通行密钥或 FIDO 安全密钥可以提供更强的抗钓鱼能力。
AAL3
AAL3 提供很高程度的保证,要求使用不可导出的密码学密钥进行抗钓鱼身份认证。协议和认证器必须能够抵御验证方冒充攻击,认证过程则使用两种不同的认证因素。基于硬件保护的密码学认证器是这一等级的典型选择。
现代密码要求
NIST 的密码指南以用户和攻击者的实际行为为依据:
长度:用作单一认证因素的密码必须至少包含 15 个字符。仅作为多因素认证一部分使用的密码,最低长度可设为八个字符。验证方允许的密码长度上限应至少为 64 个字符。
不设任意的字符组合规则:服务不应要求密码必须混合使用大写字母、数字和符号。这类规则往往会导致可预测的密码模式。
不按固定周期强制更换:除非有证据表明认证器已失陷,否则不应要求按固定周期更改密码。
失陷密码筛查:必须将完整的待用密码与禁用列表进行比对,列表中应包含常见、可预期或已失陷的密码值。
易用性:应允许使用密码管理器、自动填充和粘贴功能,并接受空格及多种字符。
抵御在线猜测:验证方必须对失败的认证尝试进行速率限制。
保护隐私的泄露检查可以帮助满足禁用列表要求。检查待用密码时,不应向查询服务提供方披露明文密码或完整哈希值。
认证器生命周期与恢复
身份认证安全不只涉及登录界面。服务需要通过受控流程来绑定新的认证器、更换丢失的设备、撤销被盗的认证器、发放恢复码以及恢复访问权限,同时避免让客服人员成为轻易绕过认证的途径。发生恢复操作时应发送通知,对高风险变更则应进行额外审查。
会话管理
身份认证完成后,会话就成为凭据。服务应保护会话机密信息,设置适当的闲置超时和总时长限制,在执行敏感操作时重新认证,并在收到安全失陷或认证器丢失的报告时终止会话。即使登录认证足够强,也无法弥补会话令牌已暴露且长期有效带来的风险。
组织应做出哪些调整
用长度要求、失陷密码筛查和速率限制取代字符组合规则与定期更换密码的要求。
提供抗钓鱼身份认证,并优先将其用于管理员和影响重大的交易。
将账户恢复、认证器更换和会话撤销纳入同一套认证保证设计,统一审查。
记录每项服务所需的 AAL 等级及其理由;不要将所有“密码加验证码”的流程都标为抗钓鱼认证。
完整的规范性要求和实施说明可参阅官方的 SP 800-63B-4 文档。



