密钥句柄和凭证 ID 之间的区别

Difference between key handle and credential id

WebAuthN 的 key handlecredential id 有什么区别?

我看到规范中提到了两个 here,其中指出 allowCredentials MAY contain a mixture of both WebAuthn credential IDs and U2F key handles 但我不完全理解其中的区别。

所以有实用的简答和有深度的技术长答。

如此简短的回答:U2F 中的 CredentialID 称为 keyHandle。所以 CredID == KeyHandle.

长答案:

CredID 在身份验证器中标识唯一的 private/public 密钥对。

问题是:如何在安全加密存储非常受限且有限的情况下存储数十个和数百个密钥对?好吧,你没有。在注册期间,设备使用一些种子生成 private/public 密钥对。然后它会添加一些额外的信息,例如 RPID 哈希,然后使用每次重置时随机生成的设备密码来包装(加密)此数据。

包装(加密)的密钥对称为 KeyHandle。对于基本上具有无限内存的设备,例如您的 phone,您很可能只是创建一个随机生成的凭证标识符,称为 KeyID。

所以。 CredID 是唯一凭证标识符的标准化名称。它可以是 KeyHandle(包装用户的私钥)或 KeyID(随机生成的 credid)。

你应该关心它吗? 不,我只是在凌晨 4 点无事可做,因为我失眠了。