多因素身份验证
了解 TOTP、硬件密钥和推送通知,以及 MFA 为何能大幅降低账户被接管的风险
多因素身份验证 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。
什么是 MFA?
多因素身份验证(MFA)要求用户使用来自不同类别的两个或更多相互独立的因素来证明身份。即使其中一个因素遭到泄露(例如密码被盗),账户仍然受到保护。
三类身份验证因素
身份验证因素包括:
- 您知道的信息——密码、PIN、安全问题
- 您持有的物品——手机、硬件令牌、智能卡
- 您的生物特征——指纹、面部特征、声音(生物识别)
真正的 MFA 至少使用两个不同类别的因素,而不是两个密码。
TOTP:基于时间的一次性密码
TOTP 使用共享密钥和当前时间生成一个每 30 秒变化一次的 6 位代码(RFC 6238)。相关应用包括:Google Authenticator、Authy、Microsoft Authenticator。
TOTP 可以防范重放攻击,但容易受到实时网络钓鱼攻击。
SMS OTP 的安全漏洞
基于 SMS 的 OTP 使用方便,但存在明显的安全弱点:
- SIM 卡交换——攻击者通过社会工程手段诱骗运营商转移受害者的号码
- SS7 攻击——民族国家级攻击者在电信层面拦截 SMS
- 实时网络钓鱼——攻击者即时转发受害者收到的 OTP,使其传递给目标网站
SMS OTP 比完全没有 MFA 更好,但它是最弱的一种形式。
硬件安全密钥(FIDO2)
硬件安全密钥(YubiKey、Google Titan)使用公钥密码学。设备会对与特定网站绑定的挑战进行签名,因此能够抵抗网络钓鱼——在伪造网站上无法使用。
这是 MFA 的最高安全标准。
推送通知 MFA
身份验证应用会发送推送通知:“批准从纽约发起的登录吗?”用户点击批准或拒绝。此方式很方便,但容易受到MFA 疲劳攻击——攻击者不断发送批准请求,直到疲惫的用户不小心批准为止。
MFA 疲劳攻击
这种攻击也称为推送轰炸:攻击者已经掌握密码,并发送几十条 MFA 推送通知,希望用户因沮丧或困惑而批准其中一条。应对措施:要求在推送通知中进行数字匹配(用户必须输入登录屏幕上显示的代码)。
通行密钥:无密码 MFA
通行密钥(FIDO2/WebAuthn)将“您持有的物品”(设备密钥)与“您的生物特征”(生物识别解锁)结合为一个能够抵抗网络钓鱼的凭据。不需要密码。主要平台均已支持。
条件访问策略
现代身份平台支持条件访问:只有风险信号表明存在风险时才要求 MFA(例如不熟悉的位置、新设备或敏感资源)。逐步提升身份验证要求可以在维持安全性的同时改善用户体验。
MFA 绕过技术
攻击者可以通过以下方式绕过 MFA:
- 实时网络钓鱼(AiTM)——代理在 MFA 完成后捕获会话 Cookie
- SIM 卡交换——拦截 SMS 验证码
- MFA 疲劳——发送大量推送通知
- 对服务台进行社会工程攻击——通过支持工单禁用 MFA
实施 MFA
实施 MFA 时:
- 默认要求所有用户使用 MFA
- 提供多种 MFA 选项,但必须提供硬件密钥和 TOTP
- 教育用户识别 MFA 疲劳攻击——如果不是用户本人发起的登录,请拒绝推送请求
- 在身份验证日志中监控 MFA 绕过模式
快速检查:MFA
哪种 MFA 方法能够通过以密码学方式将身份验证绑定到特定网站来抵抗网络钓鱼?
课程回顾
MFA 要求使用来自不同类别(知道、持有、生物特征)的两个因素。TOTP 应用很可靠;硬件密钥(FIDO2)更出色,能够抵抗网络钓鱼。SMS OTP 最弱,容易受到 SIM 卡交换攻击。MFA 疲劳攻击会大量发送推送通知;数字匹配可以缓解这种风险。通行密钥将硬件和生物识别结合为一个无缝的凭据。
常见问题解答
「多因素身份验证」课时是免费的吗?
是的 — 「多因素身份验证」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。
「多因素身份验证」这节课中我会学到什么?
了解 TOTP、硬件密钥和推送通知,以及 MFA 为何能大幅降低账户被接管的风险 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cyber Security Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「多因素身份验证」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cyber Security Academy 课中编写并运行代码吗?
能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。