跳转到主要内容

安全密钥

本文约需 2 分钟阅读

安全密钥是一种符合 FIDO2/U2F 规范的物理硬件认证设备。只需插入 USB 端口或通过 NFC 触碰,它就能作为在密码之外的强力第二认证要素发挥作用。它采用基于公钥密码学的挑战-应答方式,对钓鱼攻击具有结构性的抵抗能力,这一点与 SMS OTP 和 TOTP 有着决定性的区别。 Google 在 2017 年要求全体员工 (8 万人以上) 强制使用安全密钥,并报告称此后因钓鱼导致的账户入侵降为零。

主要产品与连接方式

在安全密钥市场中,Yubico 的 YubiKey 系列占据压倒性的份额,其后是 Google 的 Titan Security Key 和 Feitian 的 ePass 系列。连接方式应根据设备的使用环境进行选择。

连接方式支持的设备特点
USB-APC (传统端口)最为普及。与传统环境的兼容性高
USB-C最新 PC / Mac / iPad今后的主流。对 MacBook 用户必不可少
NFC智能手机 (Android / iPhone)只需靠近即可认证。最适合移动场景使用
LightningiPhone (旧型号)面向 iPhone 14 之前的机型。随着向 USB-C 迁移而趋于缩减

在实务中,备有一支支持 USB-C + NFC 的型号,无论 PC 还是智能手机都能使用,通用性很高。安全密钥产品一览 (Amazon)可比较各款型号。

抗钓鱼能力强的原因 - 来源验证

安全密钥之所以对钓鱼具有强大抵抗力,最大原因在于其在认证时会以密码学方式验证浏览器的来源 (域名) 的机制。即使攻击者诱导用户访问伪造站点 (例如 g00gle.com),安全密钥也不会在伪造站点的来源下使用面向正规站点 (google.com) 的认证凭据。由于此验证在硬件层面自动进行,因此即便用户看错了 URL,攻击也无法得逞。

伪造站点发送挑战
浏览器附加来源信息
密钥检测到来源不匹配 ✕
拒绝签名 (攻击失败)

这是 SMS OTP 和 TOTP 所不具备的特性。对于 OTP,只要用户在伪造站点输入验证码,就会被攻击者获取;而使用安全密钥时,签名根本不会生成,因此对中间人 (AiTM) 攻击也具有抵抗力。详情请参阅安全密钥导入指南

与通行密钥的区别

安全密钥和通行密钥都基于 FIDO2/WebAuthn 规范,但认证凭据的保管方式有着根本性的不同。

安全密钥 (绑定设备)

私钥被封闭在物理设备内部,无法取出到外部。一旦丢失,便无法再使用该密钥登录。适用于企业安全策略中希望「以物理方式管理密钥所在位置」的场景。

通行密钥 (可同步)

私钥通过 iCloud 钥匙串或 Google 密码管理器在多台设备间同步。即使设备丢失也可从云端恢复。适用于重视普通用户便利性的场景。

丢失时的恢复设计

安全密钥最大的运维课题是丢失或故障时的恢复。由于私钥固定在物理设备上,一旦丢失密钥,就有可能直接无法访问账户。在实务中,推荐采用以下多层次的恢复设计。

  • 注册一支备用安全密钥作为第二支,并保管在安全的地方
  • 预先设置多因素认证的替代手段 (通行密钥、恢复代码等)
  • 在企业环境中,建立由 IT 管理员负责的恢复流程
  • 务必为重要账户注册多种认证手段

若一并查看两步验证基础通行密钥迁移的课题,就能看清认证设计的全貌。

现场使用案例

“我们向全体员工每人发放 2 支 YubiKey,1 支随身携带,1 支在家中保管。导入后的两年间,因钓鱼导致的账户入侵为零。TOTP 时代每月发生 5 起的事件彻底消失了。”

相关术语

这篇文章对您有帮助吗?

XHatena