← [ BACK_TO_NOTES ]

多因素认证(MFA)

MFA 要求两个或更多独立类别的认证因素共同证明身份,用于降低密码泄漏、credential stuffing 与单一凭证失守后的直接接管风险;安全性取决于因素独立性、抗钓鱼能力、限速、恢复流程与 session assurance,而不只是“多输一个验证码”。

#concept #evergreen #security #mfa

[!info] related notes

多因素认证(MFA)

一句话定义

MFA 的关键不是:

多做一次验证。

而是:

要求来自不同 factor category 的独立证明。

常见 factor:

  • Knowledge:你知道什么,例如 password/PIN;
  • Possession:你持有什么,例如 authenticator、security key;
  • Inherence:你是谁,例如某些 biometric。

两个 Secret 不一定是 MFA

例如:

password + security question

都是 knowledge factor。

因此:

two steps ≠ two factors

同理,两个不同 password 通常也不构成真正的 MFA。

Password + TOTP

典型流程:

password valid → TOTP challenge → TOTP valid → issue session

它显著降低:

password leak credential stuffing password reuse

导致的直接 account takeover。

但 TOTP code 仍可被实时 phishing proxy 捕获和转发。

所以:

MFA ≠ phishing resistant

WebAuthn / Passkey

WebAuthn 的核心优势:

  • public-key credential;
  • origin binding;
  • private key 不发送给 server;
  • challenge-response;
  • 可提供 phishing-resistant authentication。

Passkey 是 WebAuthn credential 的现代用户体验形态之一。

这与“另一个 6 位共享秘密验证码”是不同的安全模型。

MFA Method 不是同等级

不同方法的风险边界不同:

  • SMS:依赖电信信道,受 SIM swap 等风险影响;
  • TOTP:不依赖运营商,但 code 可被实时 phishing;
  • Push:体验好,但可能出现 MFA fatigue;
  • WebAuthn/security key:更强 phishing resistance。

详见 MFA 方式的安全边界。

Rate Limiting 仍然需要

MFA 不是无限尝试许可。

必须限制:

  • password failures;
  • TOTP guesses;
  • push notification frequency;
  • recovery-code guesses;
  • MFA reset requests。

短 OTP 的搜索空间有限,没有 retry limit 会迅速降低实际安全强度。

Adaptive / Risk-Based MFA

可以在风险升高时触发额外认证:

  • new device;
  • unusual IP;
  • impossible travel;
  • credential-stuffing signal;
  • unusual behavior;
  • privileged operation。

这叫:

adaptive / risk-based authentication。

风险信号应该:

触发额外验证或限制,

而不是单独作为“你就是这个用户”的认证证据。

Step-Up Authentication

用户已经登录,不代表所有后续操作都具有足够 assurance。

例如:

ordinary read → current session enough

change password export vault create API key large payment disable MFA → require recent strong authentication

这叫 step-up authentication。

Session Assurance

MFA 成功后,应把结果投影成 session state,例如:

  • authentication method;
  • MFA verified;
  • MFA verified_at;
  • assurance level;
  • device binding / risk context。

高风险动作可以要求:

MFA verified recently

而不是只判断:

这个账户历史上开启了 MFA。

Recovery 是核心边界

强 MFA 如果配一个极弱 recovery:

lost device → email support → remove MFA

那么 recovery 就是整个系统真实最弱认证路径。

必须设计:

  • recovery codes;
  • device recovery;
  • identity verification;
  • helpdesk controls;
  • admin override;
  • cooldown / notification;
  • factor re-binding。

MFA Reset 需要 Step-Up

已登录用户修改:

  • MFA factor;
  • phone number;
  • security key;
  • recovery email;
  • backup codes;

本身就是高风险操作。

通常应要求:

  • recent authentication;
  • existing factor proof;
  • recovery controls;
  • notification。

不能仅凭长期 session cookie 静默完成。

MFA 与 Passwordless

未来方向不一定是:

password → OTP → more OTP

可以直接使用:

Passkey / WebAuthn → public-key authentication

降低 shared-secret password 带来的:

  • reuse;
  • stuffing;
  • phishing;

风险。

MFA 与 Password Policy

有 MFA 时,password 的 minimum length policy 可以与 single-factor 场景不同。

但 MFA 不会把一个弱、泄漏、复用 password 变成强 password。

详见 Password 与 MFA 的安全边界。

常见误区

两步验证 = MFA

错误,必须看 factor category 是否独立。

MFA = TOTP

错误,TOTP 只是 MFA 的一种 authenticator。

开启 MFA 就不需要 rate limit

错误。

MFA 能天然防所有 phishing

错误,传统 OTP 可以被实时代理。

Recovery 只是客服 UX

错误,它是认证协议的一部分。

学习检查

  1. two-step 与 multi-factor 的根本差异是什么?
  2. 为什么 password + security question 通常不算 MFA?
  3. TOTP 为什么能防 credential stuffing,却不天然抗实时 phishing?
  4. WebAuthn 的 phishing resistance 来自哪些协议特征?
  5. MFA 为什么仍需要 retry/rate limiting?
  6. adaptive MFA 与 step-up authentication 有什么差异?
  7. 为什么 session 应记录 authentication assurance/freshness?
  8. recovery/reset 为什么可能成为 MFA 系统真正最弱路径?
创建于 2026/5/18 更新于 2026/9/30
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本