试图把头缠在FIDO协议服上。
前提
问题
答案 0 :(得分:0)
FIDO服务器可以使用FIDO Alliance Metadata Service来获取有助于将证书链验证回到信任根的信息。
WebAuthn W3C建议书中"Registering a new credential"的第15步指出:
如果验证成功,请获取可接受的信任锚的列表 (证明根证书或ECDAA-发行人公共密钥) 来自受信任的证明类型和证明语句格式fmt 来源或来自政策。例如,FIDO元数据服务 [FIDOMetadataService]提供了一种获取此类信息的方法, 使用authData中attestedCredentialData中的aaguid。
从https://fidoalliance.org/mds/中提取:
FIDO联盟元数据服务(MDS)是基于Web的工具,FIDO身份验证器供应商可以在其中发布FIDO的元数据声明 服务器下载。这提供了部署FIDO的组织 具有集中且受信任的信息源的服务器 FIDO身份验证器。
答案 1 :(得分:0)
信任:FIDO服务器直接导入(存储)已知的Authenticator Vendor证书。假设我信任Yubico,我从Yubico网站下载了Yubico密钥证明证书,然后导入到我的FIDO服务器中。该证书将用于使用Yubico密钥验证用户的注册。没有私人证明,任何人都无法生成有效的证明声明。不必担心中间人,因为供应商可能已经应用了安全的芯片技术来保护私钥。
信任链:FIDO服务器显然信任FIDO元数据服务(MDS),仅存储MDS证书。 MDS为身份验证器供应商颁发证书。因此,当身份验证器创建证明语句并将其发送到FIDO服务器时,服务器将使用证明语句中的证明证书来验证签名,然后将证明证书与MDS证书结合起来进行验证。
请注意,我们正在谈论的是到目前为止最常见的完全基本证明模型。 ECDAA会有所不同。
如上文1.中所述。服务器可能或可能没有证明公钥。 请注意,身份验证器中的证明私钥不是唯一的。供应商分批生产安全密钥。他们为每个批次注入相同的私人证明,这是为了保护用户隐私。这不是一个完美的解决方案。未启动的ECDAA完美解决了用户隐私问题。
如1.,2。