身份验证的未来

无用户名登录:
PassKey 与 WebAuthn
的深度解析

通过常驻密钥和条件用户界面,实现无需输入用户名和密码的下一代身份验证技术

生物识别认证 跨设备同步 防钓鱼攻击
指纹识别登录界面

常驻密钥技术

利用非对称加密和本地存储,实现真正的无用户名登录体验

条件用户界面

通过浏览器自动填充,简化用户交互流程

跨平台同步

支持在多设备间安全共享和恢复密钥

引言:传统登录方式的局限与无用户名登录的兴起

传统用户名密码登录的痛点

传统的用户名和密码登录方式在当今数字化时代面临着日益严峻的挑战,主要体现在安全性和用户体验两个核心层面。

安全性挑战

  • 网络钓鱼攻击:通过伪造合法网站诱导用户输入凭证 [269]
  • 暴力破解:尝试大量可能的密码组合
  • 凭证填充:利用从其他数据泄露事件中获取的凭证
  • 密码重复使用:高达84%的受访者承认重复使用密码 [269]

用户体验问题

  • 需要记忆大量复杂的用户名和密码组合
  • 频繁触发密码重置流程
  • 安全问题容易被猜测或通过社交工程获取
  • 2023年上半年网络钓鱼攻击频率激增41% [269]

无用户名登录的概念与优势

指纹识别身份验证界面

无用户名登录(Username-less Login)是一种新兴的身份验证范式,旨在从根本上解决传统用户名密码登录方式存在的诸多痛点。

核心优势

  • 从根本上杜绝密码泄露、被窃取、被暴力破解的风险 [279]
  • 用户只需进行简单的生物识别验证或输入PIN码 [268]
  • 生物识别数据仅保存在用户本地设备,保护隐私 [271]
  • 支持跨设备同步和恢复机制 [272]

PassKey 与 WebAuthn 在无用户名登录中的核心地位

WebAuthn

由万维网联盟 (W3C) 制定的标准 API,允许Web应用程序在用户设备上使用公钥密码学进行强身份验证 [273]

  • • FIDO2项目的一部分
  • • 定义浏览器与认证器间的通信协议
  • • 支持注册和认证两大核心功能

PassKey

基于WebAuthn标准实现的凭证形式,利用存储在用户设备上的非对称密钥对进行身份验证 [268]

  • • 支持常驻性和可发现性
  • • 苹果、谷歌、微软均已支持 [268]
  • • 提供用户友好的无密码凭证

PassKey 与 WebAuthn 技术深度剖析

PassKey 技术详解

定义与核心特性

PassKey 是一种基于公钥密码学的新型数字凭证,旨在替代传统的用户名和密码登录方式 [268]

  • • 无密码体验
  • • 基于非对称加密
  • • 防网络钓鱼
  • • 跨设备同步
  • • 多平台支持
  • • 用户验证
  • • 可发现性凭证

工作原理

注册阶段

生成密钥对,私钥安全存储,公钥注册到服务器

认证阶段

服务器发起挑战,用户验证,私钥签名,服务器验证

密钥管理

  • 私钥存储在设备安全区域 [279]
  • 通过云服务同步 [272]
  • 设备间直接共享 [267]
  • 硬件安全密钥 [267]

WebAuthn 标准解析

定义与作用

Web Authentication API,由W3C与FIDO联盟共同制定的核心web标准 [273]

实现无密码登录
提供强身份验证
标准化跨平台认证
促进用户隐私

核心API方法

navigator.credentials.create()

用于注册新凭证

navigator.credentials.get()

用于使用现有凭证进行认证

安全保障机制

  • • 基于非对称加密技术
  • • 挑战-响应机制
  • • 用户验证(生物识别/PIN)
  • • 证明(Attestation)
  • • 安全上下文(HTTPS)
  • • 依赖方ID机制

无用户名登录的技术实现机制

核心依赖:常驻密钥 (Resident Key)

常驻密钥技术示意图

常驻密钥(Resident Key),也被称为可发现凭证(Discoverable Credentials),是 WebAuthn 标准中的一项关键特性 [143]

服务器端配置

requireResidentKey: true 要求创建常驻密钥 [330]
userVerification: "required" 要求用户验证 [330]

residentKey 参数设置影响

设置值 存储方式 认证流程 用户体验
required 必须存储用户信息 无用户名认证 最佳体验
preferred 优先创建,可降级 支持两种流程 平衡功能
discouraged 不存储用户信息 传统用户名+认证 节省存储

Table 1: residentKey 参数设置及其影响 [110]

关键技术:条件用户界面 (Conditional UI)

定义与优势

条件用户界面(Conditional UI),在 WebAuthn 规范中也称为中介认证(Mediation),是一种允许 WebAuthn 认证请求与传统的基于表单的登录流程协同工作的机制 [172]

简化登录流程

浏览器自动建议相关凭证,无需额外点击

降低认知负荷

用户无需记忆密码或用户名

保持兼容性

与传统登录页面共存

工作流程

可用性检查

检查浏览器是否支持条件UI [347]

初始化请求

向FIDO服务器发送请求,启动条件UI流程

用户交互

在输入字段设置 autocomplete="username webauthn" [400]

显示自动填充

浏览器显示与该网站关联的Passkey [401]

无用户名登录的完整流程解析

注册流程

用户发起注册

在支持Passkey的网站上选择创建Passkey

RP生成选项

包含 residentKey: "required"userVerification: "required" [384]

生成密钥对

设备生成公私钥对,私钥安全存储 [391]

验证并存储

服务器验证凭证,存储公钥和userHandle

认证流程

用户访问页面

导航到登录页面,与条件UI输入框交互

选择Passkey

从浏览器自动填充建议中选择Passkey

用户验证

进行生物识别或PIN码验证

服务器验证

使用userHandle识别用户 [391]

序列图详解

sequenceDiagram participant User participant RP_Frontend as RP (Frontend) participant RP_Backend as RP (Backend / FIDO Server Logic) participant Authenticator User->>RP_Frontend: 访问登录页面 RP_Frontend->>User: 加载登录页面 (含条件UI输入框) Note over User,RP_Frontend: 页面加载时或输入框聚焦时 RP_Frontend->>RP_Frontend: isConditionalMediationAvailable() 检查 RP_Frontend->>RP_Backend: POST /start-conditional-ui (可选,可缓存选项) RP_Backend->>RP_Frontend: PublicKeyCredentialRequestOptions (挑战, rpId等) User->>RP_Frontend: 点击/聚焦用户名输入框 (autocomplete="username webauthn") RP_Frontend->>Authenticator: credentials.get({publicKey: Options, mediation: 'conditional'}) Authenticator->>User: 显示可用的Passkey列表 (基于rpId和本地存储) User->>Authenticator: 选择Passkey & 进行生物识别/PIN验证 Authenticator->>RP_Frontend: PublicKeyCredential (含签名, authenticatorData, userHandle) RP_Frontend->>RP_Backend: POST /verify-assertion (发送凭证) RP_Backend->>RP_Backend: 验证签名、挑战、userHandle等 RP_Backend->>RP_Frontend: 登录成功 (含用户身份信息) RP_Frontend->>User: 重定向到受保护页面/显示登录成功

Figure 1: 无用户名登录(基于条件UI)交互序列图

无用户名登录的用户体验设计

简化登录流程,提升便捷性

减少登录时间

通过生物识别验证,显著缩短登录所需时间

一键式操作

无需输入用户名和密码,简化操作步骤

移动端优化

特别适合移动设备上的便捷登录体验

平衡安全性与易用性

安全性提升

  • 有效抵御网络钓鱼攻击 [208]
  • 私钥始终存储在本地设备 [210]
  • 服务器数据泄露不会危及账户安全 [210]

易用性优势

  • 熟悉的设备解锁操作 [208]
  • 无需记忆复杂密码
  • 一致的跨设备体验 [208]

跨设备与跨平台的一致性体验

云端同步机制

iCloud 钥匙串

Apple设备间的Passkey同步 [222]

Google密码管理器

Android设备上的Passkey存储 [222]

Microsoft账户

Windows生态系统的Passkey支持

标准化推动

FIDO联盟标准

提供Passkey徽标和统一标识 [208]

设计规范

Google提供统一的Passkey图标 [217]

跨平台支持

主流操作系统和浏览器的全面支持

PassKey 用户界面设计指南与最佳实践

Google的UX设计原则

渐进式引入

Passkey应作为现有服务的增强功能引入,采用用户熟悉的格式 [216]

丰富的提示信息

不仅使用CTA按钮,还要创建包含插图、标题和详细说明的提示 [216]

规范图标使用

使用FIDO联盟创建的Passkey图标,保持统一性 [216]

用户引导与教育

合适的时机

在用户成功登录后提示创建Passkey [209]

使用熟悉概念

将Passkey与日常解锁设备行为联系起来 [213]

清晰的指示

在验证前后提供明确的状态反馈 [213]

用户选择权

让用户自行决定是否创建Passkey [213]

FIDO联盟设计指南

基于严格的可用性研究,提供详细的设计指南和Figma UI套件 [215]

  • • 减少登录时间
  • • 提高首次登录成功率
  • • 弃用短信OTP
  • • 减少密码创建
  • • 优化密码恢复流程
  • • 提高Passkey采用率
  • • 确定最佳启用时机
  • • 确保可访问性

应用场景与案例分析

典型应用场景

金融服务

在线银行和支付平台对安全性要求极高,Passkey可替代传统凭证或作为多因素认证的一部分。

  • • 转账支付验证
  • • 敏感信息查看
  • • 移动银行应用
  • • 投资交易确认

电商与社交

海量用户平台需要平衡用户体验和账户安全,无用户名登录可简化流程并提高转化率。

  • • 快速结账流程
  • • 一键登录体验
  • • 减少用户流失
  • • 防止账户盗用

企业应用

企业内部系统需要频繁登录,Passkey可提高工作效率并增强数据安全。

  • • CRM/ERP系统
  • • 企业邮箱访问
  • • 远程办公场景
  • • BYOD设备管理

行业领先者案例分析

Google的PassKey应用实践

Google在Google Accounts中全面支持Passkey,用户可选择替代密码或作为第二因素 [209]。通过详细的用户引导和开发者文档,推动了技术的普及。

关键措施
  • • 登录流程中适时提示
  • • 清晰的界面说明
  • • Android平台全面支持
技术特色
  • • Chrome浏览器集成
  • • 密钥同步功能
  • • 跨设备认证

Apple的PassKey生态系统整合

通过iCloud钥匙串,在Apple设备间安全同步Passkey [157]。Safari浏览器支持条件UI,提供流畅的自动填充体验。

生态整合
  • • iPhone/iPad/Mac同步
  • • Safari浏览器支持
  • • 开发者推广
用户体验
  • • 无缝设备切换
  • • 自动填充功能
  • • 软硬件协同

其他行业应用案例

可乐旅游(Klook)等旅游预订平台也开始支持Passkey,为用户提供更快速、安全的登录和预订体验。

应用效果
  • • 简化旅途中的预订流程
  • • 紧急情况下的快速验证
  • • 适用于各种规模的服务提供商
  • • 展示技术普及的广泛性

结论与展望

无用户名登录的价值与意义总结

展示未来身份验证技术的概念图

无用户名登录,以Passkey和WebAuthn为核心技术,代表了身份验证领域的一次重大革新。它通过消除对传统用户名和密码的依赖,显著提升了在线账户的安全性和用户体验。

增强安全性

有效抵御网络钓鱼、密码泄露等常见攻击

提升便捷性

用户只需通过生物识别或设备PIN码即可快速登录

改善用户体验

降低了用户的认知负荷,减少了因密码问题带来的困扰

促进创新

为开发更流畅、更智能的应用体验提供了新的可能性

深远影响

无用户名登录的推广不仅对个体用户有益,也有助于企业降低安全风险、减少运营成本,并提升用户满意度和忠诚度。它是构建更安全、更便捷、更可信的数字未来的关键一步。

未来发展趋势展望:更智能、更无缝的身份验证

短期发展(1-3年)

跨平台互操作性增强

在任何设备、任何浏览器上无缝使用Passkey

生物识别深度融合

更安全、更自然的认证方式,如基于行为的生物识别

标准化进程完善

FIDO联盟推动更统一的实施规范

长期愿景(3-5年+)

情境化智能认证

根据设备、位置、网络等因素动态调整认证策略

去中心化身份集成

与DID技术结合,提供更自主的身份管理

无感身份验证

实现安全与易用的完美平衡

技术融合趋势

人工智能

智能风险评估和认证决策

区块链

去中心化身份验证

边缘计算

本地化身份处理

无用户名登录 - 构建更安全的数字未来

参考文献

[110] https://www.tdh6.top/杂项/fido2/

[143] https://blog.darkthread.net/blog/non-discoverable-credential-isnt-passkey/

[157] https://www.sohu.com/a/687989109_116600

[158] https://liaoxuefeng.com/blogs/all/2023-08-15-what-is-passkey/index.html

[162] https://news.qq.com/rain/a/20220608A08YM600

[172] https://docs.redhat.com/zh-cn/documentation/red_hat_build_of_keycloak/26.0/html/server_administration_guide/passkeys_server_administration_guide

[174] https://webdev.ac.cn/articles/passkey-registration

[208] https://learn.microsoft.com/zh-cn/windows/apps/develop/security/intro

[209] https://developers.googleblog.com/zh-hans/designing-the-user-experience-of-passkeys-on-google-accounts/

[210] https://www.authing.com/blog/1061

[211] https://zhuanlan.zhihu.com/p/677072288

[213] https://hsiehchengyi.com/blog/design-password-less-experience-with-passkey/

[215] https://www.passkeycentral.org/design-guidelines/

[216] https://developers.google.com/identity/passkeys/ux/user-interface-design

[217] https://developer.android.com/design/ui/mobile/guides/patterns/passkeys

[222] https://developer.android.com/identity/sign-in/credential-manager?hl=zh-cn

[267] https://www.corbado.com/zh/blog/passkey-guzhang-paichu-jiejuefangan

[268] https://liaoxuefeng.com/blogs/all/2023-08-15-what-is-passkey/index.html

[269] https://authing.co/blog/1029

[270] https://www.authing.com/blog/1061

[271] https://authing.co/blog/1031

[272] https://www.secrss.com/articles/59545

[273] https://webdev.ac.cn/articles/passkey-registration

[274] https://web.dev/articles/passkey-registration?hl=zh-cn

[276] https://yubikey.cn/topics/16

[279] https://onekey.so/blog/zh-CN/ecosystem/how-passkey-like-face-id-keep-you-safe-without-lifting-a-finger/

[281] https://help.aliyun.com/zh/ram/user-guide/what-is-a-passkey

[286] https://blog.csdn.net/TinTinCommunity/article/details/135150183

[293] https://blog.csdn.net/qq_45756062/article/details/128286378

[298] https://yubikey.cn/topics/30

[306] https://support.huaweicloud.com/bestpractice-oneaccess/oneaccess_05_0102.html

[330] https://blog.csdn.net/qq_45756062/article/details/128286378

[336] https://cloud.tencent.com/developer/ask/sof/107491597

[339] https://web.dev/articles/passkey-registration?hl=zh-cn

[344] https://juejin.cn/post/7327547320832229430

[346] https://developers.google.com/codelabs/passkey-form-autofill

[347] https://jans.io/docs/head/janssen-server/fido/passwordlessLoginExperience/

[379] https://tonybai.com/2024/11/01/introduction-to-passkey/

[384] https://cloud.tencent.com.cn/developer/article/2345827

[385] https://liaoxuefeng.com/blogs/all/2023-08-16-passkey-dev/index.html

[388] https://www.corbado.com/blog/passkeys-cheat-sheet

[391] https://jieyibu.net/a/3271

[392] https://webdev.ac.cn/articles/passkey-registration

[393] https://web.dev/articles/passkey-registration?hl=zh-cn

[394] https://flyhigher.top/develop/2160.html

[400] https://developers.google.com/codelabs/passkey-form-autofill?hl=zh-cn

[401] https://docs.redhat.com/zh-cn/documentation/red_hat_build_of_keycloak/26.2/html/server_administration_guide/passkeys_server_administration_guide

[403] https://learn.microsoft.com/zh-cn/windows/apps/develop/security/use-cases

[404] https://web.dev/articles/passkey-form-autofill?hl=zh-tw

[44] https://jans.io/docs/head/janssen-server/fido/passwordlessLoginExperience/