通行密钥对抗钓鱼中继:为什么域名绑定胜过一次性验证码
插在用户与真实登录页之间的钓鱼工具包,已经成为攻破多因素认证最可靠的手段之一。受害者输入一次性验证码,工具包几秒内把它转发给真实网站,攻击者则留下回传的会话。通行密钥切断了这条中继链路,这是一切基于验证码的方法都做不到的:屏幕上根本没有可供复制的东西。
AiTM 工具包如何吞掉一次性验证码
微软详细记录过这套机制:它追踪了自 2021 年 9 月起袭击 10,000 多家组织的攻击活动。攻击者运行一个反向代理,用自己的域名提供与真实登录页像素级一致的拷贝,并同时维持两条 TLS 会话:一条与受害者,一条与真实网站。密码和会话 Cookie 从中间流过,攻击者以用户身份完成登录。微软强调这并非 MFA 的漏洞:验证码是真的,登录也是真的,工具包只是留下了用户亲手交出的东西(Microsoft)。 这套手法并未退场。2026 年 1 月,微软研究员描述了一场针对能源行业组织、经被滥用 SharePoint 链接传播、最终演变为商业邮件欺诈的多阶段 AiTM 攻击(Microsoft)。卡巴斯基 2026 年 8 月公布的一年遥测数据统计到超过 39 万个托管在合法云平台上的钓鱼页面,其中许多使用开源代理库和伪造地址栏的 browser-in-the-browser 窗口(Kaspersky)。现代工具包会实时转发验证码、推送确认和随之产生的 Cookie。除了网址以外,一切都是真的。域名绑定:域本身就是凭据的一部分
通行密钥背后的标准 WebAuthn 的运作方式不同。注册时,网站与浏览器创建一对绑定到依赖方 ID(relying party ID)——实践中即网站域名——的公私钥。私钥从不离开设备,浏览器只有在页面源与该 ID 匹配时才会提供凭据。Mozilla 的文档把后果说得明明白白:搭建假登录网站的攻击者无法以用户身份登录,因为签名会随网站源而改变(Mozilla)。FIDO 联盟指出通行密钥对每个网站或应用都是唯一的——这正是让撞库攻击无米下锅的原因(FIDO Alliance)。 Cisco Talos 演示了这对代理工具包意味着什么:落到冒充自己银行的假域名上的受害者根本无法完成 WebAuthn 仪式,因为浏览器不会在假网站上提供绑定到真实域名的凭据。认证在任何秘密被传输之前就已失败(Cisco Talos)。代理工具包可以转发用户输入的一切。它无法转发浏览器从未提供的凭据。即便仪式得以进行,线路上也没有任何可复用的东西。服务器发来一个很大的随机挑战值,认证器用私钥对其签名,签名只证明持有而不泄露任何秘密——Mozilla 的规范如此说明。代理可以把该签名转发出去,但真实网站届时会看到一条声称来自它从未服务过的源、且凭据所绑依赖方 ID 恰恰是它专门校验项的响应。没有与三十秒倒计时赛跑的验证码,也没有在攻击者一侧铸造的 Cookie。










