一句话版本
账号被盗后,攻击者的第一件事往往是改密码、加设备、换邮箱,然后立刻把钱转走。冷静期的思路很简单:账号的关键设置一旦变动,就先只读一段时间,同时马上通知本人。 攻击者要的是"快",本人需要的是"时间"。冷静期把时间还给本人,用一点不便换来最有效的防线之一。
全文分三层:
- 通俗理解:为什么"等一等"这么有用
- 实际用处:银行、交易所、Apple 账户恢复、智能合约时间锁
- 原理与工程要点:什么算"变动"、等待期内能做什么、如何避免误伤
第一层:通俗理解
1.1 盗号的典型剧本
- 攻击者通过钓鱼、撞库或 SIM 卡劫持拿到你的登录方式;
- 改密码、绑定自己的设备或邮箱,把你踢出去;
- 在你发现之前,立刻把资产转走。
第 3 步必须快,因为一旦你发现了,就会冻结账户、联系客服、改回密码。
1.2 冷静期怎么打破这个剧本
规定:只要第 2 步发生,账户在一段时间内只能看、不能动钱,同时立刻给原来的邮箱、手机发通知。
- 正常用户:换了新手机,等一两天再转账,损失的只是一点便利;
- 攻击者:改完密码后什么都做不了,只能干等;而本人很可能在这段时间里收到通知、发现异常、夺回账户。
这和银行"新添加的收款人 24 小时后才能大额转账"是同一个道理。
第二层:实际用处
| 场景 | 做法 |
|---|---|
| 加密货币交易所 | 改密码、改 2FA、改绑定邮箱后,提币功能锁定 24 到 48 小时;新加的提币地址要等一段时间才生效 |
| 网上银行 | 新收款人先限额;修改手机号后一段时间内不能做大额转账 |
| Apple 账户恢复 | 忘记密码又没有受信任设备时,要等待若干天才能恢复,期间会不断通知原设备 |
| Google、Microsoft | 账户恢复时长短取决于能提供多少证明,证明越少等得越久 |
| 智能合约时间锁(timelock) | DeFi 协议的升级、参数修改必须提前若干小时或若干天公布才能生效,社区有时间审查 |
Caloogy Wallet 也采用了冷静期:账号的登录方式发生变动后,钱包会进入一段只读期并通知本人。
第三层:原理与工程要点
3.1 什么事件应该触发
| 事件 | 理由 |
|---|---|
| 改密码、通过"忘记密码"登录 | 最常见的接管方式 |
| 新增 passkey、2FA、恢复邮箱 | 攻击者在给自己留后门 |
| 新设备首次登录 | 可能是被盗的会话或凭据 |
| 账户找回 | 找回流程本身就是攻击面 |
3.2 等待期内可以做什么
- 允许:查看、撤销授权、冻结账户、往"更安全"方向的操作;
- 禁止:转出资产、新增收款地址、修改通知方式、关闭安全设置;
- 一定要能"取消":本人如果用旧的可信凭证做任何一次确认,就应该能立刻撤销这次变动。
3.3 避免误伤
冷静期的最大风险是"把正常用户也永远锁住"。几个常见陷阱:
- 把日常登录方式误判为变动:如果一个账户平时就靠邮件链接登录,那么"邮件链接登录"不能算作变动,否则它永远在冷静期里。
- 刚开通时补设备:开通后马上在第二台设备上加备用凭证,是正确的做法,应该给一个短暂的豁免窗口。
- 叠加计时:多个变动连续发生时,冷静期应该从最后一次变动重新开始算,而不是取最早的。
3.4 通知必须发到"攻击者改不了的地方"
如果通知发到账户当前绑定的邮箱,而攻击者第一步就是改邮箱,那通知就发给了攻击者自己。正确做法是同时发到旧的联系方式,或发到开通时验证过的地址。
3.5 找回流程要更慢
"丢失全部凭证后的找回"是所有账户系统里最脆弱的一环(参见《Passkey与防钓鱼》)。找回的等待期通常应该长于普通冷静期,并且找回期间任何一次旧凭证的使用都应自动取消找回申请。
总结
| 层次 | 要点 |
|---|---|
| 直觉 | 攻击者要快,本人要时间;变动后先只读 |
| 应用 | 交易所、银行、账户恢复、合约时间锁 |
| 设计 | 变动立即通知旧联系方式;允许本人一键取消 |
| 陷阱 | 不要把日常登录误判为变动;不要把正常用户永久锁住 |