byte - WebAuthn - “凭证公钥”的字节长度
问题描述
在 WebAuthn 中,验证器数据包含可变长度,attested credential data
后跟 (extensions
如果有):
由于字段是 CBOR 映射,因此它是attested credential data
可变的。credential public key
如果有扩展,如何提前知道该字段的字节长度,以便我可以将没有扩展的截断字段传递给 CBOR 库?
我正在使用的 CBOR 库似乎没有处理额外的字节,而且我对 CBOR 的了解还不够,无法知道是否有从第一个字节计算映射字节长度的技巧(或任何其他技巧)。
解决方案
据我了解,如果不首先使用支持“额外字节”的 CBOR 解码器(或 COSE 密钥解析器)来确定“凭证公钥数据”的结束位置和“扩展数据”的开始位置,就无法提前知道。
在WebAuthn Level 2 Draft中有一个额外的注释讨论了这一点。
确定被证明的凭证数据的长度是可变的,包括在给定前面 credentialId 的长度的情况下确定 credentialPublicKey 的开始位置,然后确定 credentialPublicKey 的长度(另见 [RFC8152] 的第 7 节)。
FWIW,在 WebAuthn 规范的 GitHub 问题中也讨论过https://github.com/w3c/webauthn/issues/1012
推荐阅读
- jenkins - 无法在 Jenkins 和 newman 的 Git hub 存储库的嵌套文件夹中运行 Postman 集合
- haskell - Haskell如何附加自定义数据
- python - 当资源不可用时有效处理从 __enter__ 引发的 python 异常
- firebase - Firestore 安全设置规则中的“request.resource.auth”与“request.auth”有什么不同?
- javascript - 有没有办法通过我的应用程序中的“onPress()”事件在手机设备背景中打开像 Facebook 这样的应用程序?
- php - 如何在 laravel livewire 中应用 select2 与多个刀片文件中的 1 个组件
- react-redux - TypeError:无法读取未定义倒计时反应循环计时器的属性“地图”
- excel - Excel - 如何将一个单元格与两列中的值进行比较以返回满足等式的行的索引?
- android - 如何使用 Mapbox Android SDK v10-beta20 向 tile 提供者提供身份验证令牌?
- javascript - 如何显示来自 javascript var 的 html 代码?