主要观点:
- 密码正在逐渐被“passkeys”取代,其理论上可解决钓鱼和凭证填充问题,但可能引入新的攻击面。
- 对 FIDO2/WebAuthn 攻击面进行探索,包括硬件和软件层面的实现及攻击方法。
- 介绍了捕获真实世界流量、解码和验证认证数据、构建软件 CTAP2 引擎、注入自己的密钥、控制 Chrome 的“虚拟认证器”等一系列实验和操作。
- 对多个知名网站进行了实际测试,发现不同网站在 WebAuthn 处理上的差异和漏洞。
- 提出了一系列强化和缓解措施,以提高 WebAuthn 的安全性。
关键信息:
- 详细描述了 FIDO2 相关的二进制协议、JSON 数据结构等技术细节。
- 展示了如何通过各种工具和技术捕获、解析和伪造 WebAuthn 相关的数据包和签名。
- 介绍了在 Chrome 中利用 DevTools 协议实现“虚拟认证器”的过程。
- 列举了不同网站在 WebAuthn 注册和认证方面的表现及存在的问题。
重要细节:
- 硬件方面,以 YubiKey 为例,展示了插入硬件钥匙后的 Wireshark 流量捕获及相关数据解析。
- 软件方面,详细说明了构建软件 CTAP2 引擎的步骤,包括传输层初始化、多帧消息重组、CBOR 解析等。
- 注入自己的密钥时,通过命令行参数指定 PKCS#8-PEM 文件,实现确定性签名。
- 在 Chrome 中,通过一系列 DevTools Protocol 调用实现对“虚拟认证器”的控制和使用。
- 实际测试中,对 Google、Microsoft、GitHub 等网站的 WebAuthn 处理进行了分析和验证。
- 提出的强化和缓解措施包括强制签名计数器执行、按源限制 CDP 权限、用户手势门控等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。