通行密钥工作原理:全面解析无密码未来的技术核心

本文深入解析通行密钥如何通过公钥加密、WebAuthn和CTAP标准实现无密码认证,对比传统密码的安全缺陷,并详细说明注册、认证四大工作流程及认证器类型。

通行密钥工作原理:全面解析无密码未来的技术核心

密码与通行密钥的根本区别

传统密码认证要求用户将秘密(密码)共享给依赖方(网站/应用),依赖方需在身份管理系统中存储该密码以供登录验证。无论密码是否加密,此过程均存在共享秘密风险——历史上多数重大数据泄露均源于恶意方获取共享密码。

通行密钥采用零知识认证(ZKA)机制:用户秘密(私钥)永不共享给依赖方,仅需向依赖方证明持有该秘密即可完成认证。这从根本上杜绝了密码钓鱼和短信钓鱼等风险。

公钥加密:通行密钥的技术基石

通行密钥基于公钥加密技术,每对密钥包含:

  • 公钥:可公开分发,用于加密消息或验证签名
  • 私钥:仅用户持有,用于解密消息或生成数字签名

加密流程:

  1. 依赖方使用用户公钥加密随机挑战值
  2. 用户使用私钥解密并签名该值
  3. 依赖方用公钥验证签名,确认用户持有私钥

此过程确保:公钥无法反向推导私钥,且私钥始终由用户设备本地保护。

四大核心工作流程

1. 发现与接入

依赖方对通行密钥功能的宣传和接入方式无统一标准,用户体验和术语可能存在差异。

2. 注册流程

用户为特定依赖方创建通行密钥(即生成公钥/私钥对),公钥发送至依赖方存储,私钥保留在用户认证器中。

3. 认证流程

登录时依赖方发送加密挑战,用户端使用私钥解密并签名,依赖方用公钥验证签名完成认证。

4. 删除管理

支持清理未使用或多余的通行密钥,保持凭证库整洁。

技术标准与底层架构

通行密钥依赖两大核心标准:

  • WebAuthn:W3C制定的无密码认证标准,通行密钥是其合规凭证
  • CTAP:FIDO联盟制定的客户端到认证器协议,用于标准化设备间交互

通行密钥因此被称为FIDO2合规凭证,结合了WebAuthn的认证框架和CTAP的设备互操作性。

认证器类型与选择策略

认证器是执行加密操作的关键组件,分为三类:

  1. 平台认证器:操作系统内置(如Windows Hello、macOS钥匙串)
  2. 虚拟认证器:第三方密码管理器(如1Password、Bitwarden)兼任
  3. 漫游认证器:物理硬件设备(如YubiKey、Google Titan)

技术实现示例

本系列演示环境采用:

  • 依赖方:Shopify.com
  • 客户端:Google Chrome
  • 认证器:Bitwarden密码管理扩展
  • 操作系统:macOS

等效替代方案(如PayPal+Firefox+NordPass+Windows)用户体验基本一致,体现通行密钥的跨平台一致性。

术语简化与聚焦

为降低理解门槛,本系列作如下简化:

  • “客户端”统一称为“浏览器”
  • “依赖方”交替使用“网站/应用”等通俗术语
  • 忽略非必要技术细节(如nonce随机数、attestation证明)

下一篇将探讨如何检测依赖方是否支持通行密钥,并以Shopify为例演示发现流程。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计