认证与密码
双因素认证 (2FA)
约 4 分钟阅读
最后更新: 2026-08-17
什么是双因素认证
双因素认证 (2FA - Two-Factor Authentication) 是一种在登录时除密码外还要求额外认证因素的安全机制,用于增强账户安全性。
认证的三大要素分为"知识 (密码等)"、"持有 (智能手机等)"和"生物特征 (指纹等)"。双因素认证将其中不同的两个要素组合使用。最常见的组合是密码 (知识) + 智能手机认证应用 (持有)。
即使密码因凭证填充攻击或数据泄露而被窃取,只要启用了双因素认证,攻击者也无法仅凭密码登录。Google 于 2019 年公布的研究显示,设置了 SMS 验证码的账户拦截了 96% 的批量钓鱼攻击,但对定向攻击的拦截率只有 76%。防护效果的大小取决于攻击的类型。
双因素认证的类型与强度
SMS 认证
向手机号发送一次性验证码。使用十分普及,但容易受到 SIM 卡交换攻击和 SS7 协议漏洞的拦截风险。无防钓鱼能力。
TOTP (认证应用)
Google Authenticator 或 Authy 等应用每 30 秒生成一个 6 位验证码。比 SMS 更安全,但在钓鱼网站上输入验证码的风险仍然存在。
安全密钥 (FIDO2)
YubiKey 等物理设备通过 USB 或 NFC 连接进行认证。防钓鱼能力最强。认证仅在合法域名上成功,在伪造网站上无法工作。
基于 FIDO2 (WebAuthn) 的认证凭证,密钥可保存在设备中,也可通过云端在多台设备间同步。用与解锁设备相同的生物识别 (指纹、面部) 或 PIN 即可登录,完全不需要密码。防钓鱼能力强,用户体验也很出色。
防钓鱼能力的重要性
选择双因素认证类型时,最应重视的是钓鱼防御能力。
SMS 认证和 TOTP 在用户将验证码输入钓鱼网站时会被突破。攻击者通过"实时钓鱼"将用户输入实时转发到合法网站,从而绕过 2FA。这种技术已被 Evilginx 等中继工具自动化,攻击者并不需要很高的技术水平。
相比之下,FIDO2 安全密钥和通行密钥在认证时会验证域名,因此在钓鱼网站上认证无法成功。对于需要高安全性的账户 (邮箱、金融、管理员账户等),强烈建议使用具有防钓鱼能力的认证方式。
实施时的注意事项
常见误解
- SMS 认证已经足够安全
- SMS 可能被 SIM 卡交换攻击和实时钓鱼突破。虽然比没有 2FA 安全得多,但对于重要账户建议使用 TOTP 或安全密钥等更强力的方式。
- 设置了双因素认证,密码就可以简单一些
- 双因素认证是额外的防御层,而非弱密码的替代品。将强密码与双因素认证结合使用才能获得最大程度的安全保障。
SMS 认证与 TOTP 认证的区别
SMS 认证
向手机号发送验证码。无需额外应用,使用方便,但容易受到 SIM 卡交换攻击。在无信号区域无法接收。无防钓鱼能力。
TOTP 认证
认证应用在设备内生成验证码。无需网络连接,离线也可使用。不受 SIM 卡交换攻击影响。无防钓鱼能力,但比 SMS 更安全。
分享