注册公钥凭据,认证时使用私钥

注册时,依赖方提出创建条件与挑战,浏览器通过认证器建立相应凭据,服务验证返回资料并登记可供以后验证的公钥和标识。以后认证使用相应私钥产生断言,而不是把同一账户密码不断发送给网站核对。

凭据限定于相应RP ID;浏览器、认证器和服务端共同处理这种范围。能调用接口或取得一个凭据对象,不等于注册已经成功,服务仍需检查挑战、预期来源、RP ID相关数据及适用证明。

参考:[1]

验签把挑战与认证上下文联系起来

认证时,服务提出新挑战并核对返回的clientDataJSON与认证器数据,包括请求类型、挑战、预期来源和rpIdHash等。签名验证使用已登记公钥,对认证器数据与客户端资料摘要的组合进行核验,使旧响应不能只因签名曾正确就用于任意新事务。

用户在场UP与用户验证UV又是不同标志。服务若要求用户验证,就须按要求核对UV;生物识别认证器在本地执行相应比对,WebAuthn依赖方收到的是相应证明和结果,不是用户指纹或面部原始资料。

参考:[1]

设备类型和备份能力须明确

认证器可以内置于平台,也可以是经适当传输连接的漫游设备。WebAuthn的不同凭据和认证器能力,支持作为额外因素或无需传统密码的认证场景,不能把每次使用都等同于“必须输入指纹”。

Level 3还定义备份资格BE与当前备份状态BS,区分单设备和可备份多设备凭据;资格与当前是否已备份不是一个量。因此,采用WebAuthn并不自动证明所有私钥都只能留在一块不可迁移硬件里,实际保证需结合凭据类型、认证器与依赖方政策。

参考:[1]