# WebAuthn Passkey Assertion 解码与 Challenge 调试器

解析 clientDataJSON、authenticatorData、flags、rpIdHash 和 signCount；提供公钥时验证 ES256、RS256 或 Ed25519 签名。

> 标准页面: https://elysiatools.com/zh/tools/webauthn-passkey-assertion-decoder-challenge-debugger

- **分类:** Cryptography

- **关键词:** WebAuthn, Passkey, FIDO2, CBOR, COSE, assertion, challenge, 签名

## 概述

WebAuthn Passkey Assertion 解码与 Challenge 调试器可解析 clientDataJSON 和 authenticatorData，检查 challenge、origin、rpIdHash、flags 与 signCount；提供 COSE 公钥后，还可验证 ES256、RS256 或 Ed25519 签名。

## 输入项

- **clientDataJSON** (textarea): {"type":"webauthn.get","challenge":"Y2hhbGxlbmdl","origin":"https://example.com"}
- **clientDataJSON 编码** (select)
- **authenticatorData** (textarea): a379a6f6eeafb9a55e378c118034e2751e682fab9f2d30ab13d2125586ce19478500000002
- **签名** (textarea): 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
- **二进制编码** (select)
- **期望 Challenge（base64url，可选）** (text): Y2hhbGxlbmdl
- **期望 Origin（可选）** (text): https://example.com
- **RP ID（可选）** (text): example.com
- **上一次 signCount（可选）** (number)
- **COSE 公钥（可选）** (textarea): Paste a CBOR COSE_Key or numeric-key JSON object to verify the signature.
- **COSE 密钥编码** (select)

## 适用场景

- 调试 WebAuthn 登录或 Passkey assertion 中的 challenge、origin 和 RP ID 绑定问题。
- 检查 authenticatorData 的 flags、rpIdHash 与 signCount，定位服务端校验异常。
- 在拥有 COSE 公钥时验证 assertion 签名，并区分解码结果与密码学验签结果。

## 工作原理

- 输入 clientDataJSON，并选择 JSON 文本或 Base64url 编码。
- 输入 authenticatorData 和签名，按十六进制或 Base64url 指定二进制编码。
- 可选填入期望 challenge、期望 origin、RP ID 和上一次 signCount，以执行对应绑定与计数器检查。
- 可选提供 COSE 公钥，工具解析 assertion 字段并输出 JSON 检查结果及签名状态。

## 使用案例

- WebAuthn 服务端开发者排查 challenge 或 origin 校验失败。
- 身份认证测试人员检查 rpIdHash、flags 和 signCount 是否符合预期。
- 安全工程师使用 COSE 公钥验证不同算法的 Passkey assertion 签名。

## 常见问题

### 必须提供哪些输入？

必须提供 clientDataJSON、authenticatorData 和签名；编码选项可使用默认值。

### 不提供公钥可以验证签名吗？

不可以。未提供 COSE 公钥时，工具会解码并检查相关字段，但签名状态显示为未检查。

### 支持哪些签名算法？

提供匹配的 COSE 公钥后，可验证 ES256、RS256 或 Ed25519 签名。

### 如何检查 challenge 是否匹配？

在“期望 Challenge”中输入 Base64url challenge，工具会将其与 clientDataJSON 中的 challenge 对比。

### signCount 检查需要什么？

可选输入上一次 signCount，工具会将其与 authenticatorData 中解析出的当前计数器进行比较。

## 相关工具

- [JWT 解析与签名验证器](https://elysiatools.com/zh/tools/jwt-inspector-verifier): 解析 JWT 的 header/payload 并高亮显示，诊断 exp/nbf/iat/iss/aud/sub/jti 等 claim，使用 HS*/RS*/PS*/ES*/EdDSA 密钥验签，并提供篡改 payload 的伪造教学演示
- [哈希算法对比器](https://elysiatools.com/zh/tools/hash-algorithm-comparator): 对同一输入同时用 MD5、SHA-1、SHA-256、SHA-512、BLAKE2b、BLAKE3 哈希并横向对比：输出长度、十六进制/Base64 摘要、安全状态（已破解/现代）以及相对速度基准。适合教学、选择哈希算法或核对校验和。
- [分布式追踪解码与瀑布图可视化](https://elysiatools.com/zh/tools/distributed-trace-decoder-waterfall-visualizer): 解析 Jaeger、Zipkin 或 OpenTelemetry 的 trace JSON，并以瀑布图展示 span 时序与异常节点
- [JWK 生成与解析器](https://elysiatools.com/zh/tools/jwk-generator): 生成 RSA、EC（P-256/P-384/P-521/secp256k1）与 OKP（Ed25519/Ed448/X25519/X448）的 JSON Web Key，或解析已有 JWK 以查看参数、指纹与元信息
- [package.json 依赖审计器](https://elysiatools.com/zh/tools/package-json-dependency-auditor): 审计 package.json 的依赖卫生、版本范围质量，并可选地从 package-lock.json 或 yarn.lock 深入检查传递依赖树。会标记重复依赖、通配符或预发布版本、未排序键、缺失元数据，以及运行时/开发时依赖误分类问题。
- [Snowflake / Discord ID 位字段解码器](https://elysiatools.com/zh/tools/snowflake-discord-id-bit-decoder): 使用无损 64 位解析 Snowflake 风格 ID，提取时间戳、worker、process、sequence 或平台特有字段，并可推断 Discord shard。
- [Excel字段级解密器](https://elysiatools.com/zh/tools/excel-field-decryptor): 使用各种解密方法对Excel文件中的特定字段进行解密以恢复加密信息
- [Markdown 表格到 CSV、JSON 与类型推断 Schema](https://elysiatools.com/zh/tools/markdown-table-to-csv-json-schema): 将 Markdown 管道表格转换为 CSV、JSON 行或推断类型的 JSON Schema，并报告对齐和空值诊断

## 示例

- [Grafana 高级应用示例](https://elysiatools.com/zh/samples/grafana-samples): 全面的 Grafana 示例，涵盖高级仪表板设计、告警配置、数据源集成和插件开发
- [二维码示例](https://elysiatools.com/zh/samples/qrcode-samples): 用于测试二维码读取和生成工具的示例二维码图像
- [D3.js 数据可视化示例](https://elysiatools.com/zh/samples/d3js-data-visualization): 全面的D3.js数据可视化示例，包括图表、地图、动画和交互式可视化
- [Rome JavaScript 工具链示例](https://elysiatools.com/zh/samples/rome): Rome JavaScript 工具链示例，包括配置、代码检查、格式化、打包和项目管理
