认证与密码
双因素认证 (2FA)
约 4 分钟阅读
最后更新: 2026-03-22
什么是双因素认证
双因素认证 (2FA - Two-Factor Authentication) 是一种在登录时除密码外还要求额外认证因素的安全机制,用于增强账户安全性。
认证的三大要素分为"知识 (密码等)"、"持有 (智能手机等)"和"生物特征 (指纹等)"。双因素认证将其中不同的两个要素组合使用。最常见的组合是密码 (知识) + 智能手机认证应用 (持有)。
即使密码因凭证填充攻击或数据泄露而被窃取,只要启用了双因素认证,攻击者就无法登录。Google 的研究表明,即使是基于 SMS 的 2FA 也能阻止 96% 的账户劫持。
双因素认证的类型与强度
防钓鱼能力的重要性
选择双因素认证类型时,最应重视的是钓鱼防御能力。
SMS 认证和 TOTP 在用户将验证码输入钓鱼网站时会被突破。攻击者通过"实时钓鱼"将用户输入实时转发到合法网站,从而绕过 2FA。这种技术已被 Evilginx 等工具自动化,技术门槛大幅降低。
相比之下,FIDO2 安全密钥和通行密钥在认证时会验证域名,因此在钓鱼网站上认证无法成功。对于需要高安全性的账户 (邮箱、金融、管理员账户等),强烈建议使用具有防钓鱼能力的认证方式。
实施时的注意事项
常见误解
- SMS 认证已经足够安全
- SMS 可能被 SIM 卡交换攻击和实时钓鱼突破。虽然比没有 2FA 安全得多,但对于重要账户建议使用 TOTP 或安全密钥等更强力的方式。
- 设置了双因素认证,密码就可以简单一些
- 双因素认证是额外的防御层,而非弱密码的替代品。将强密码与双因素认证结合使用才能获得最大程度的安全保障。
SMS 认证与 TOTP 认证的区别
SMS 认证
向手机号发送验证码。无需额外应用,使用方便,但容易受到 SIM 卡交换攻击。在无信号区域无法接收。无防钓鱼能力。
TOTP 认证
认证应用在设备内生成验证码。无需网络连接,离线也可使用。不受 SIM 卡交换攻击影响。无防钓鱼能力,但比 SMS 更安全。
分享