两个步骤不一定是两个因素:密码和PIN都属于知识因素。生物识别可以激活认证器,但本身不保证匿名性或抗钓鱼能力。
比较机制,而不是页面数量
NIST区分知识、持有和生物特征。手工输入的一次性验证码可能被假网站转发,因此SMS和TOTP不等同于抗钓鱼认证。正确实施的通行密钥把响应绑定到相应服务,保障还取决于本地验证以及备份或同步条件。
理解生物识别的作用
WebAuthn可以在认证器内部进行生物识别,不把生物数据发送给接收的网络服务。本地验证也可以使用PIN。用户在场(UP)与用户验证(UV)不同。服务器必须按协议验证响应;仅有面部识别页面并不够。
保护整个生命周期
规划注册、增加认证方式、设备丢失、撤销及账户恢复。评估无障碍体验与备用方式,后者可能削弱主要登录路径。认证不能替代对数据和操作的业务授权。
来源
编辑核验日期:2026年11月1日。
将第二个因素与防钓鱼功能区分开来
NIST 指出,手动输入的一次性代码可能被伪造页面转发,因此仅凭一次性代码的存在并不能使登录过程具备防钓鱼功能。正确集成的 WebAuthn 会将响应绑定到真正的服务。账户恢复仍然是确保安全的途径。
- 列出仍然接受短信、代码或可绕过授权的应用程序,并优先考虑特权账户。
- 通过真实用户流程测试注册、设备丢失和撤销操作。
- 衡量抗干扰因素覆盖率,并与所有者共享更新后的例外情况。
一手资料:NIST SP 800-63B-4. 相关方法:阅读实用指南.
通行密钥:准备域名和RP ID变更
区分业务账户、网页来源和RP ID,避免悄悄重新绑定凭据。
- 记录旧、新来源、RP ID及关联账户。相同账户名不意味着通行密钥对另一个RP ID有效。核查WebAuthn允许的组合和迁移期间可用的登录路径。
- 在授权测试环境用合适的库核查挑战、来源、RP ID和账户绑定。测试非预期来源和重复挑战。RP ID变化时准备经过身份验证的新注册;复制数据库行不是密钥迁移。
- 测试仅持有旧凭据的用户、恢复流程和已打开会话。结合已验证回退方式确定路径启用、停用顺序。新域名注册成功不能证明所有旧会话已撤销。
可复现的验收案例
虚构示例:数据不代表客户或实际观察结果。
查看案例输入
{
"old_origin": "https://login.old.example",
"old_rp_id": "old.example",
"new_origin": "https://login.new.example",
"new_rp_id": "new.example",
"same_service_account": true,
"expected": "authenticated_new_registration"
}预期判断
虚构例:账户相同,但old.example变为具有不同RP ID的new.example。不能悄悄重绑旧凭据;新注册必须经过计划的身份验证路径。
修改数据库能更改通行密钥的RP ID吗?
不能。RP ID是凭据验证范围的一部分。准备适用于新范围的有效注册和经过身份验证的账户映射。
一手资料:W3C — Web Authentication Level 2. 相关方法:阅读实用指南.
postMessage:验证来源、窗口与请求命令
为iframe或弹出窗口建立消息契约,拒绝意外发送方和数据。
- 列出准确允许的origin、预期窗口引用及有用消息类型。敏感数据使用明确targetOrigin。origin包含协议、主机和端口;在域名中查找子字符串不能验证对方。
- 比较event.origin,并在此窗口集成中比较event.source与预期窗口。验证结构、允许值和操作状态。作为数据处理,不执行eval或插入HTML。允许的来源不替代服务器授权。
- 测试相似域名、不同端口、同源其他窗口、无效字段及关闭后消息。移除多余监听器,使已结束通信失效。窗口导航后,回复仍使用预先批准的origin。
可复现的验收案例
虚构示例:数据不代表客户或实际观察结果。
查看案例输入
{
"allowed_origin": "https://widget.example",
"observed_origin": "https://widget.example",
"expected_window": "active_iframe",
"observed_window": "another_window",
"payload_schema_valid": true,
"expected": "reject_without_effect"
}预期判断
虚构例:https://widget.example已获允许,但event.source是其他窗口。契约要求活动iframe窗口,因此拒绝消息且不发出命令。
一手资料:MDN — Window.postMessage. 相关方法:阅读实用指南.
身份:认证要素、会话与恢复
两个因素:检查协议,而不只是界面
输入验证码、推送批准和WebAuthn响应与服务的绑定不同。生物识别可以激活认证器,不能替代响应的密码学验证。
- 本地激活 — 按认证器使用PIN或生物识别。
- 签署响应 — 服务范围的密钥与收到的挑战。
- 服务器验证 — 挑战、来源、签名与标志。
- 授权操作 — 对象和操作的权限。
- 分别观察UP与UV。
- 检查实际需要的同步与不可导出条件。
- 演练从既有会话处理丢失并增加认证方式。
来源核验日期 · NIST SP 800-63B-4 · final publication NIST · Authenticator Event Management W3C · WebAuthn Level 3
扩展:权限与访问
此语言版本的详细参考说明以英语提供。
Robust authentication does not describe extension access
Phishing resistance does not remove the need to examine what runs in the browser after a session opens. A manifest provides clues about cookies, scripting, debugging and identity without establishing collection.
- Test approved extensions in a profile dedicated to sensitive operations.
- For identity, inspect OAuth scopes and recipients; this permission does not enumerate identity-provider rights.
- Distinguish session revocation, token revocation, extension disablement and native-component removal.
Read the permission directory and manifest examples →
Google Chrome · Stay secure · Documentation consulted 2026-10-23; browser behaviour remains version-dependent
