WebAuthn 和 Passkey 登录的安全边界是什么?
区分公钥凭证、挑战、RP ID 和用户验证,理解前端调用 WebAuthn 不等于完成账号安全设计。
参考答案
WebAuthn 使用认证器生成公钥凭证,服务端保存公钥并在每次登录时发出不可预测的 challenge。浏览器和认证器完成签名,服务端验证 challenge、来源、RP ID、签名计数和用户验证结果。
前端不能自己判断“签名看起来正确”。注册和登录都需要服务端生成一次性挑战并验证回包,必须使用 HTTPS 和正确的 origin 配置。Passkey 的同步方式由平台和认证器决定,应用不应把私钥当作可读取的字符串。
还要设计账号恢复、设备丢失、多个凭证、注销和跨设备登录。WebAuthn 可以减少密码风险,但不能自动解决账号找回和会话管理问题。