"Security Key by Yubico" 如何识别每个键?

How does "Security Key by Yubico" identify each key?

根据下面 this page 中的句子,“Yubico 的安全密钥”没有序列号。

Serial numbers are unique across all models of YubiKeys, with the exception of Security Keys, which do not have serial numbers.

但是,在Yubico Demonstration Site中,同一个“Yubico”只能在1个密钥中注册安全密钥
所以,我认为“Yubico”有一些机制可以在不使用序列号的情况下识别每个“Yubiko”。
那么,webserver中的authenticator是如何识别每一个没有序列号的key的呢?

答案在 U2F 协议中找到(public-密钥凭证和证明元数据):

Public-密钥凭据

  1. 在注册仪式期间,安全密钥会生成一个 public 密钥加密密钥对。私钥永远不会离开安全密钥,public 密钥在仪式结束时返回给网站。该网站存储此凭据以供以后验证。
  2. 在身份验证过程中,网站会发送用户注册的 public 允许的密钥凭据列表。安全密钥将生成返回网站的 U2F 断言。然后,该网站将验证断言是否已由私钥签名,并检查所有数据是否符合预期。

查看 overview of the U2F protocol 以了解更多信息。

证明和元数据

每个 Yubico 设备都有一个由 Yubico 的根 CA 签名的证明证书。网站可以通过检查根 CA 来验证 YubiKey 的真实性。该证明证书具有可以识别身份验证器模型的元数据。此证明证书遵循 U2F 隐私要求,没有任何可用于单独识别特定安全密钥的元数据。

详细了解 Yubico U2F attestation and metadata.