认证与密码

双因素认证 (2FA)

约 4 分钟阅读

什么是双因素认证

双因素认证 (2FA - Two-Factor Authentication) 是一种在登录时除密码外还要求额外认证因素的安全机制,用于增强账户安全性。

认证的三大要素分为"知识 (密码等)"、"持有 (智能手机等)"和"生物特征 (指纹等)"。双因素认证将其中不同的两个要素组合使用。最常见的组合是密码 (知识) + 智能手机认证应用 (持有)。

即使密码因凭证填充攻击或数据泄露而被窃取,只要启用了双因素认证,攻击者就无法登录。Google 的研究表明,即使是基于 SMS 的 2FA 也能阻止 96% 的账户劫持。

双因素认证的类型与强度

SMS 认证
向手机号发送一次性验证码。最为普及,但容易受到 SIM 卡交换攻击和 SS7 协议漏洞的拦截风险。无防钓鱼能力。
TOTP (认证应用)
Google Authenticator 或 Authy 等应用每 30 秒生成一个 6 位验证码。比 SMS 更安全,但在钓鱼网站上输入验证码的风险仍然存在。
安全密钥 (FIDO2)
YubiKey 等物理设备通过 USB 或 NFC 连接进行认证。防钓鱼能力最强。认证仅在合法域名上成功,在伪造网站上无法工作。
FIDO2 的进化版。使用智能手机的生物识别 (指纹、面部) 实现无密码认证。防钓鱼能力强,用户体验也很出色。

防钓鱼能力的重要性

选择双因素认证类型时,最应重视的是钓鱼防御能力。

SMS 认证和 TOTP 在用户将验证码输入钓鱼网站时会被突破。攻击者通过"实时钓鱼"将用户输入实时转发到合法网站,从而绕过 2FA。这种技术已被 Evilginx 等工具自动化,技术门槛大幅降低。

相比之下,FIDO2 安全密钥和通行密钥在认证时会验证域名,因此在钓鱼网站上认证无法成功。对于需要高安全性的账户 (邮箱、金融、管理员账户等),强烈建议使用具有防钓鱼能力的认证方式。

实施时的注意事项

  • 妥善保管恢复码:为防止认证设备丢失,请将恢复码保存在安全的地方 (打印在纸上放入保险箱、保存在密码管理器中等)。没有恢复手段将无法访问账户。
  • 备用认证方式:如果将安全密钥作为主要认证方式,建议准备一把备用密钥或将 TOTP 设置为备用方案。
  • 为所有账户设置:为邮箱、社交媒体、云存储、金融服务等所有重要账户设置 2FA。邮箱账户因被用于其他服务的密码重置,应最优先保护。
  • SSO 结合:在 SSO 提供商上设置强力 2FA,即可保护所有关联服务。

常见误解

SMS 认证已经足够安全
SMS 可能被 SIM 卡交换攻击和实时钓鱼突破。虽然比没有 2FA 安全得多,但对于重要账户建议使用 TOTP 或安全密钥等更强力的方式。
设置了双因素认证,密码就可以简单一些
双因素认证是额外的防御层,而非弱密码的替代品。将强密码与双因素认证结合使用才能获得最大程度的安全保障。

SMS 认证与 TOTP 认证的区别

SMS 认证

向手机号发送验证码。无需额外应用,使用方便,但容易受到 SIM 卡交换攻击。在无信号区域无法接收。无防钓鱼能力。

TOTP 认证

认证应用在设备内生成验证码。无需网络连接,离线也可使用。不受 SIM 卡交换攻击影响。无防钓鱼能力,但比 SMS 更安全。

分享

相关术语