证明对象包含 fmt、attStmt 和认证器数据。WebAuthn Level 3 定义了以下格式:packed、tpm、android-key、android-safetynet(已弃用)、fido-u2f、apple、none 和 compound。依赖方通过 attestation 选项(none、indirect、direct 或 enterprise)请求证明,默认值为 none;使用同步通行密钥的消费级平台通常不返回证明,AAGUID 也全为零。
验证证明包括:检查证明声明中对认证器数据和客户端数据哈希的签名,依据 FIDO 元数据服务或厂商提供的根证书验证证明证书链,以及核对 AAGUID。如果企业部署或高保障部署必须只允许经过认证的硬件,证明就很有用;对于面向消费者的登录,它会增加使用阻力和隐私代价,收益却很小。
“证明”(attestation)一词也出现在其他场景中,含义同样是关于密钥或制品的签名声明:TPM 和 Android 密钥证明、YubiKey PIV 证明,以及软件供应链证明(in-toto、SLSA 来源证明)。