没有基于身份的恢复
从这里开始,因为它改变了本文其余部分的用途。我们从不询问您是谁。档案中没有文件、没有电话号码、没有账单地址,因此在您失去访问权限后,没有任何程序可以证明某个账户属于您。这是 无 KYC 政策 所达成的交易,并且它不会向任何方向弯曲。
恢复代码就是恢复程序。把它们当作账户本身,因为在操作上它们就是。
启用两步验证
两种机制,可同时使用:
- TOTP:熟悉的六位数字,每三十秒更换一次。任何验证器都可以。
- WebAuthn:硬件安全密钥或平台验证器。注册两个。
一旦启用,在登录时、在带外控制台会话之前、以及更改账户电子邮件之前,都需要第二因素。API 令牌不需要,它们是有自己作用域的独立凭据。
自行验证 TOTP 密钥
apt install -y oathtool
oathtool --totp -b JBSWY3DPEHPK3PXP打印出的代码应该与手机在同一秒显示的一致。如果不一致,原因几乎总是时钟问题,而不是密钥问题。
时钟漂移
TOTP 是时间的函数。我们接受前后各一步,因此有三十秒的余量:对手机来说足够,但对一台已运行一年且没有正常工作时间客户端的服务器来说不够。
timedatectl status
systemctl status systemd-timesyncd # Debian
chronyc tracking # AlmaLinuxSystem clock synchronized: yes 是关于时钟漂移的。在断定其他任何东西坏了之前,先修复时钟。
恢复代码
十组代码,一次性使用,在启用第二因素时生成。每个代码只能使用一次,之后失效。
- 打印出来。纸张没有电池、没有固件更新、没有锁屏。
- 将一份副本存放在与您登录所用的机器不同的建筑物中。
- 不要将它们存储在保存账户密码的密码管理器中。那样会把两个因素变回一个。
- 使用一个代码后重新生成整套,或者当您不确定副本是否仍保密时重新生成。重新生成会使旧集合中的所有代码失效。
如果丢失因素但仍有恢复代码
用恢复代码登录,移除旧因素,注册新因素,重新生成整套。四分钟,无需工单,无需等待任何人。
如果两者都丢失
账户就没了。不是锁定等待表格,不是暂停等待审核——而是没了,连同其下运行的所有东西一起。我们宁愿直说,也不愿暗示一个不存在的逃生舱;支持无法凭空变出,我们这边没有任何东西可以核对您的身份。
缓解措施很无聊但有效。两把硬件密钥,或者一把密钥和一套存放在其他抽屉里的打印恢复代码。还有,任何真正不可替代的东西的副本应存放在不是我们这里的地方,无论您的主机是谁,这都是良好的做法。