Trusted Device & Remember MFA
Trusted Device / Remember MFA 是降低重复 MFA 摩擦的受控信任机制,通常依赖可撤销的持久凭证与设备风险信号;浏览器指纹、Cookie 或历史 IP 本身不等于新的认证因素,且高风险操作仍应要求 reauthentication / step-up。
[!info] related notes
- 所属 MOC: 安全 MOC
- MFA: 多因素认证(MFA)
- Active Sessions: Active Sessions & Device Management
- Reauthentication: Authentication Assurance & Reauthentication Freshness
- Risk: Suspicious Login & Risk-Based Authentication
- Revocation: Credential Change & Session Revocation
Trusted Device & Remember MFA
一句话关系
“Remember this device” 的目标通常是:
用户已经完成强认证 → 给当前客户端一段有限期的便利信任 → 后续普通登录减少重复 MFA
它不是:
browser fingerprint → magically becomes MFA factor
两种常见组成
可信设备通常包含两类东西:
1. Persistent Trust Credential
例如:
- signed opaque cookie;
- random device token;
- device-bound credential;
- platform secure storage token。
它必须:
- high entropy;
- revocable;
- scoped to user/device/client;
- expire;
- rotate when appropriate。
2. Device / Risk Signals
例如:
- browser/OS;
- coarse IP;
- ASN;
- device fingerprint;
- previous behavior。
这些信号用于:
risk scoring
而不是直接证明身份。
Fingerprint 不是 Secret
Browser fingerprint 可能包含:
- UA;
- screen;
- timezone;
- fonts;
- canvas/webgl;
- platform features。
这些特征:
- 会变化;
- 可以伪造;
- 可能多人相同;
- 有 privacy 成本。
所以:
fingerprint match ≠ authenticated device
最多是 risk signal。
Remember MFA Token
一个可接受的模型:
MFA success → issue remembered-device token → bind to user + device/session context → store digest/server record or signed revocable representation → use on later login to reduce MFA challenge
但 Password 仍可能需要正常验证,具体取决于产品模型。
不是永久豁免
Remember MFA 应有:
- absolute expiration;
- server-side revoke;
- credential/version binding;
- device trust status;
- last-used metadata。
不应:
remember forever → never challenge again
什么时候失效
常见失效事件:
- password reset;
- MFA factor reset/change;
- account recovery;
- suspicious login;
- user clicks revoke device;
- security_version change;
- token expiry;
- device token replay。
详见 Credential Change & Session Revocation。
高风险操作仍要 Step-Up
即使当前设备被 trusted:
ordinary dashboard → no extra MFA
change password change email disable MFA export sensitive data create API key payment → recent strong reauthentication
Trusted Device 主要降低登录摩擦,不应该成为永久高权限授权票据。
Device-Bound Cryptographic Credential
如果平台支持真正的 device-bound key:
private key → hardware/secure enclave/OS keystore → challenge-response
它比普通 fingerprint/cookie 更接近真正 device possession proof。
但具体 assurance 仍取决于:
- key exportability;
- local unlock;
- attestation;
- enrollment flow;
- recovery。
不要把所有“设备 Token”混成同一级别。
Cookie 安全
Browser remembered-device credential 应考虑:
- Secure;
- HttpOnly when JS does not need access;
- SameSite;
- narrow Path/Domain;
- rotation;
- CSRF model;
- server-side revoke。
它仍然是高价值 bearer-like credential。
Theft / Replay
如果 remembered-device token 被复制:
attacker → can inherit reduced-MFA path
所以可结合:
- server-side record;
- token rotation;
- anomaly detection;
- device context;
- risk-triggered MFA。
但不要做过度脆弱的硬 IP binding。
用户控制
用户应该能看到并撤销:
- trusted browsers/devices;
- remembered MFA entries;
- last used time;
- rough device info。
“Revoke device” 应真正撤销服务端 trust credential,而不只是删 UI row。
学习检查
- Trusted Device 为什么不等于一个新的 MFA factor?
- Browser fingerprint 为什么只能做 risk signal?
- Remember MFA token 应具备哪些生命周期能力?
- Password/MFA reset 后为什么通常应失效 remembered-device trust?
- 为什么 trusted device 仍不应绕过高风险操作的 step-up?
- device-bound cryptographic key 与普通 browser cookie 有什么根本差异?
- 设计一个可撤销的 Remember MFA 状态模型。