虚拟 MFA
虚拟 MFA 通常指基于认证器 App 和 TOTP 动态码的软件形态多因素认证方案。
#type / concept
#status / evergreen
#tech / security
#resource / mfa
#resource / totp
[!info] related notes
- 所属 MOC: 安全 MOC
- 前置概念: 多因素认证(MFA), TOTP(基于时间的一次性密码)
- 并列概念: 硬件 MFA, 短信 MFA, Push MFA
- 易混淆概念: TOTP(基于时间的一次性密码)
- 关系笔记: 虚拟 MFA、短信 MFA、Push MFA 与 WebAuthn / Passkey 的安全边界
虚拟 MFA
一句话定义
虚拟 MFA 通常指用软件认证器保存密钥并生成动态验证码的多因素认证方式,最常见实现是基于 TOTP 的认证器 App。
核心机制 / 工作原理
它的典型载体包括:
- Google Authenticator
- Microsoft Authenticator
- Authy
- 1Password / Aegis 一类内置 TOTP 的应用
在启用流程里,服务端会:
- 为用户生成随机
secret - 组装
otpauth://URI - 渲染二维码供认证器 App 扫描
- 要求用户输入一次当前验证码完成绑定确认
登录时,流程通常是:
账号密码正确
-> 系统要求输入认证器中的 6 位码
-> 服务端解密用户的 MFA secret
-> 按当前时间窗口计算 TOTP
-> 匹配成功后放行
它的安全收益主要体现在:
- 即使密码被撞库或泄露,攻击者也不能只靠密码登录
- 不依赖运营商网络,离线也能生成验证码
- 成本低,兼容性好,部署门槛低于硬件安全密钥
它的工程重点通常不在算法本身,而在系统边界:
- MFA secret 的生成、加密存储和访问控制
- 失败次数限制与验证码重放防护
- 恢复码与找回流程
- MFA 重置时的强身份校验
最小例子 / 最小场景
开启 MFA
-> 扫描二维码
-> 输入一次动态码确认绑定
-> 以后每次高风险登录都需要密码 + 当前动态码
边界与易混淆点
- “虚拟 MFA”通常强调软件形态;最常见底层是 TOTP(基于时间的一次性密码),但不是所有虚拟 MFA 都必须是 TOTP。
- 它强于单密码和短信 MFA,但弱于具备域名绑定能力的 WebAuthn / Passkey。
- 它防的是“静态密码单独被滥用”,不是“所有接管风险”。
- 如果二维码、备份、手机本地数据库或服务端 secret 泄露,虚拟 MFA 的安全边界会明显下降。