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

WebAuthn中publicKeyCredentialCreationOptions对象的创建与传输方式咨询

WebAuthn中publicKeyCredentialCreationOptions对象的创建与传输方式咨询

没错,你的理解完全正确!

WebAuthn的注册流程里,publicKeyCredentialCreationOptions对象必须由服务器端生成,再传递给客户端来使用,这是WebAuthn安全模型和官方规范的核心要求之一,主要原因有这些:

  • 安全层面:这个对象包含了challenge(防重放攻击的随机值)、依赖方信息、用户标识这类敏感且关键的安全参数,如果在客户端生成,很容易被恶意篡改,直接破坏WebAuthn的安全基础。
  • 规范要求:WebAuthn的官方标准明确规定,创建凭证的初始化参数必须由服务端负责生成,客户端只能基于这些参数完成后续的凭证创建操作。

具体的流程大概是这样的:

  1. 用户在客户端触发注册操作(比如点击「绑定安全密钥」按钮)
  2. 客户端向服务器发起注册请求
  3. 服务器生成包含所有必填(和可选)字段的publicKeyCredentialCreationOptions对象,比如rp(你的服务信息)、user(当前用户的标识信息)、challenge(随机生成的挑战值)、pubKeyCredParams(支持的公钥算法列表)等
  4. 服务器把这个对象通过加密通道(比如HTTPS)传递给客户端
  5. 客户端调用浏览器的navigator.credentials.create({ publicKey: options })API,引导用户完成生物识别验证或安全密钥操作
  6. 客户端将生成的凭证数据返回给服务器,服务器验证通过后,把用户的公钥等信息存储起来,完成注册流程

你看到的那句话正是在强调这个核心逻辑:服务器定义创建凭证的规则和安全参数,客户端负责执行实际的凭证创建动作。

备注:内容来源于stack exchange,提问作者Justin Chan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 15:58:14