You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FIDO协议QR码发起交易后续:连接流程、数据分析及替代方案问询

FIDO2 Passkey二维码登录技术问题解答

1. 手机与浏览器的连接通信流程

  • 浏览器触发Passkey登录后,生成FIDO2跨设备认证请求,将请求参数编码为CBOR格式,转成十六进制字符串后封装成FIDO:/+开头的内容,生成二维码展示
  • 手机扫码解析字符串,提取CBOR数据,识别为跨设备认证请求
  • 手机发起BLE(低功耗蓝牙)扫描,浏览器此时会广播固定的FIDO服务UUID,手机扫描到后发起配对连接
  • 连接建立后,双方通过FIDO2的CTAP2协议交互:浏览器发送认证挑战、依赖方信息;手机验证用户身份(如Touch ID/Face ID),用对应Passkey的私钥生成签名后返回给浏览器
  • 浏览器验证签名合法后,完成登录流程

2. CBOR解码后的数据解析

你解码得到的CBOR结构对应FIDO2跨设备认证请求的核心参数,各键值含义如下:

  • 键0:h'037E2EF7C65FA68E15ED9B9A4CB72234CCCA8F9B84C76252D52796509B3188AB07'
    是依赖方公钥哈希(rpIdHash),由依赖方域名的SHA-256哈希截取前32字节生成,用来验证请求来自合法的依赖方网站
  • 键1:h'49AA2EF2DE617E4CBA2AE2683D3CED08'
    是用户句柄哈希(userHandleHash),可选参数,用来快速定位对应的Passkey
  • 键2:2
    是用户验证要求(userVerificationRequirement),值为2代表required,即必须完成用户身份验证(如生物识别、PIN码)才能继续
  • 键3:1678113678
    是请求时间戳,Unix时间格式,用于防止重放攻击
  • 键4:true
    表示允许跨设备认证(crossPlatformAllowed),确认当前请求支持用跨设备Passkey完成登录
  • 键5:"mc"
    是传输介质标识,这里指使用BLE(低功耗蓝牙)作为通信通道
  • 键6:true
    表示需要用户在场验证(userPresenceRequired),要求用户必须通过触摸、点击等操作确认在场

3. 能否制作设备替代iOS的二维码扫码登录功能?

可以实现,核心要求如下:

  • 设备必须支持FIDO2 CTAP2协议,同时支持BLE通信(或浏览器支持的其他跨设备传输方式)
  • 实现FIDO:/+字符串解析逻辑:提取十六进制内容,解码为CBOR格式的认证请求
  • 实现BLE连接逻辑:扫描并连接浏览器广播的FIDO服务,遵循CTAP2协议完成命令交互(如authenticatorGetAssertion等核心命令)
  • 内置安全身份验证模块:支持指纹、PIN码或生物识别等用户验证方式,确保只有合法用户能触发Passkey签名
  • 安全存储Passkey私钥:必须将私钥存储在设备的安全元件(SE)或可信执行环境(TEE)中,符合FIDO2的安全规范
  • 兼容主流浏览器:不同浏览器的跨设备认证实现可能存在细节差异,需要适配Chrome、Safari等主流浏览器的交互逻辑

内容的提问来源于stack exchange,提问作者beila aka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 13:02:23