在2022年WWDC上,苹果推出了密码GA,将在FIDO 2认证中启用,这是下一代基于开放标准的认证机制,以取代密码。
在支持FIDO 2的依赖方(RP)服务器上,当发起用户注册时,浏览器生成QR码以将手机注册为平台认证器。
我正在尝试构建一个打开QR扫描仪视图的应用程序,我想通过扫描浏览器生成的QR码来注册FIDO凭据。解析的字符串格式为- FIDO:/090409094349049349.......
这个FIDO:/090409094349049349....... url协议包含了哪些与RP相关的信息?另外,是否有一种方法可以在Swift中对其进行解码,以获得json或字符串格式的信息?
由于iPhone上的相机应用程序能够扫描QR并生成RP域名和注册用户等信息,我相信应该有一种方法可以在应用程序内部的QR扫描仪上完成这一操作。或者这些API本质上是私有的,只适用于相机应用程序?
2条答案
按热度按时间j2cgzkjk1#
这是作为系统服务/函数实现的FIDO协议,对您的应用没有用处。
svdrlsy42#
关于这个问题,我能找到的唯一一件事是在[1]中的URI方案的IANA注册,这并没有说明太多。基本上,在
fido:/
之后有一个base 10-number,它应该包含CBOR。根据[2],它还可以包含至少四个报头字节。然而,当我在官方Webauthn演示[3]的认证步骤中使用Chrome提供给我的QR码时,我无法提取任何看起来像有效CBOR的东西。由于我的消息的前两个字节是0x 22和0x 40,整个消息有70个字节,我假设0x 22 = 66是消息的长度,不包括报头,而根据[4],0x 40“供应商-生物登记原型”导致[5]。到目前为止,我无法进一步解码它。[1][https://www.iana.org/assignments/uri-schemes/prov/fido](https://www.iana.org/assignments/uri-schemes/prov/fido)
[2][https://fidoalliance.org/specs/FDO/FIDO-Device-Onboard-RD-v1.0-20201202.html](https://fidoalliance.org/specs/FDO/FIDO-Device-Onboard-RD-v1.0-20201202.html)
[3][https://webauthn.io/](https://webauthn.io/)
[4] https://fidoalliance.org/specs/fido-v2.1-rd-20210309/fido-client-to-authenticator-protocol-v2.1-rd-20210309.html#commands
[5][https://fidoalliance.org/specs/fido-v2.1-rd-20191217/vendor/BioEnrollmentPrototype.pdf](https://fidoalliance.org/specs/fido-v2.1-rd-20191217/vendor/BioEnrollmentPrototype.pdf)