web authn 认证流程
2024-03-13 10:59:09 0 举报
Web Authn(认证)是一种基于互联网的身份验证方法,它允许用户使用密码、密钥、生物识别等多种方式进行身份验证。Web Authn 认证流程通常包括以下几个步骤: 1. 用户尝试访问受保护的资源。 2. 服务器检查用户是否已经登录。如果没有,则提示用户进行身份验证。 3. 用户选择一种身份验证方式,例如密码、密钥或生物识别。 4. 用户输入相应的身份验证信息。 5. 服务器验证用户提供的身份验证信息是否正确。如果正确,则允许用户访问受保护的资源;否则,拒绝访问。
作者其他创作
大纲/内容
查询所有凭证作为 allow credentials
参数校验
credentialsB
credentialsC
开始注册
sessionIdC
sessionIdA
navigator.credentials.get()
userA
credentialsA
userB
navigator.credentials.create()
获取注册参数
根据 user 获取 pkCredOps
credentials...
认证成功
开始认证
生成注册参数PublicKeyCredentialCreationOptions
根据 credential.id 找到匹配 credential
服务端缓存本次会话结果
register credential
userBpkCredOps
user:客户端定义challenge:服务端生成rp:服务端配置public key alg:公钥算法authenticator:认证器配置
userApkCredOps
服务端缓存注册凭证
userCpkCredOps
注册成功
credential.id
authentication credential
sessionIdB
attestationObject.fmt对验证数据进行验签
缓存
匹配历史认证会话主要:challenge
userC
服务端缓存注册参数
获取认证参数
基础校验:1. credential.type == public-key2. credential.raw_id == credential.id客户端校验:credential.response.clientDataJSON1. clientDataJSON.type == webauthn.create2. clientDataJSON.challenge == pkCredOps.challenge3. clientDataJSON.origin == rp.originattestation 校验:credential.response.attestationObject1. attestationObject.authData.id == rp.id2. attestationObject.authData.attestedCredentialData 下其他属性是否存在
0 条评论
下一页