← 安全上网
ASTERXOR / 安全上网

备用钥匙,值得换一个抽屉

恢复方式只有在原本要应对的故障中仍可取得,才真正有用。我们画出依赖关系,没有制造任何秘密。

三个存储抽屉分别展示仅手机副本、同账户副本和独立恢复路径。
所有位置都是虚构的,没有生成、读取或保存恢复码、凭证、账户令牌或密钥。
安全上网ASTERXOR / LEON LEUNG

备份可以保存得完好无损,却恰好在锁住的门另一边。

强登录保护会带来一个实际问题:常用设备或验证因素不可用时怎么办?一些服务正是为此提供恢复码。它们的价值不仅在于存在,还在于仍有效、受到保护,并能通过不完全依赖丢失对象的路径取得。规划这条路径,不需要展示或测试任何真实代码。

数一数独立路径,而不只是已保存的副本。
WHAT THE SPARE DOES

有力的例外,需要谨慎保管

根据服务设计,常用第二因素不可用时,恢复码可提供另一条路径。由于它可能帮助重新获得访问,应把它当作秘密,而不是普通便条。不要发给自称客服的人,不要放进截图,也不要粘贴到陌生表单。

各服务规则不同。Google 文档说明备用码只能使用一次,生成新一组会使旧组失效;GitHub 也说明一次性恢复码与安全存储。这些例子解释了为何一张保存的页面不能自动成为永久可用的后路。应遵循具体账户当前的说明,而不是假定所有服务的恢复行为一样。

不要把账户恢复码与普通参考编号、或另一次登录显示的验证码混淆。值能授权什么、如何使用,由发行服务决定。“备用”标签不会降低敏感性。规划笔记只写服务和存储路线,不记录秘密本身,也不把它交给声称能帮你检查的人。

DRAW THE LOCKED DOOR

备用方案之前,什么必须先可用

想象唯一副本存在无法解锁的手机便条里。它也许整理得很好,却不能解决手机不可用的问题。再想象副本存放在正准备恢复的那个账户里:打开存储需要先恢复账户,恢复账户又需要先打开存储。

用标签写下这些依赖,不要写秘密值。设备访问、账户访问、密码管理器解锁和到达某个实体位置,都可能重要。存储受到保护是好事,但必须理解它的解锁路径。如果独立恢复和访问安排适合你的情况,密码管理器可以是合适的位置。

应分清丢设备与失去账户、进不了某地点与里面的物品被毁。纸本可能仍存在,只是房间不可达;同步保险库也可能在多台设备上,但所有解锁路径依赖同一个丢失因素。把故障说清楚,才不会让副本数量掩盖共同依赖。

FOUR FICTIONAL FAILURES

不同副本,能应对不同事件

本地模型把四种存储标签与四个假设故障对照:手机不可用、主账户锁定、无法进入家中,以及手机和家中同时不可达。仅手机便条在手机场景失效,同账户网盘在账户锁定场景失效,家中纸本在无法回家场景失效。

手机便条加上家中纸本,在手机与家中同时不可用时,仍然只剩零份可取得副本。独立存储一栏之所以四次都可用,仅仅因为我们明确假定它的依赖没有失效。这是模型说明,不是证明某个真实存储方案不怕盗窃、停机或其他故障。

四种虚构故障分别检查手机便条、同账户存储、家中纸本和另行可用存储是否仍可取得。
FIG 01表格只判断已声明假设下能否访问,“可以”不是一般安全评级。
AVAILABILITY AND PRIVACY

多一份副本,多一组决定

增加副本可能提高可用性,也会增加需要保护的位置。共享文件夹中的普通便条很方便,却可能让其他人获得恢复路径。纸本能避开某些数字依赖,但实体访问、损坏和是否仍为最新版,又会成为实际问题。

没有一个抽屉适合所有人。考虑谁能接触存储、它能承受哪种故障,以及如何在不多暴露代码值的前提下辨认正确账户和当前版本。不要仅仅因为文件夹名称不同,就把所有后路放进同一台不可用设备或同一个锁住的账户。

增加存储位置前,同时问:计划中的故障发生时,自己能否取得?平时还有谁能取得?放进广泛共享文件夹也许提高可用性,却可能带来无法接受的受众。权衡依情况而定,模型只按假设计算可访问性,不打数字安全分。

AFTER USE OR REPLACEMENT

恢复计划也会过期

有些服务让代码在一次成功使用后失效,发布新一组时也会使旧组作废。按服务指引记录使用状态,避免紧急时依赖已用过或被替换的代码。标签应足以区分账户,但也不要让标签本身成为另一种公开泄露。

如果怀疑恢复材料外泄,应通过已知渠道进入服务,按其流程更换并检查账户。不要把代码交给另一网站,以此“验证”是否泄露。图示只从概念上说明生命周期,没有执行签发、更换、撤销或账户恢复。

更换设备后,趁一切还可用时检查说明和标签。有效演练是知道当前材料在哪里、什么条件能解锁,而不是消耗一次性码来试试。如果有意通过服务替换一组,应在支持的流程中同步更新受保护记录,别留下多份标签含混的版本。

三张卡片说明从真实服务取得材料、适用时的一次性行为,以及更换旧组。
FIG 02已签发、已使用与已替换是不同状态;图中从未出现真实代码。
A CLOSER CHECK

恢复路线,需要一个起点

新增模型画出一个循环:访问账户需要恢复材料,材料需要保险库,保险库又需要同一个账户。即使起始状态有“备用设备”和“离线解锁”标签,这套规则也用不上,无法打破循环,计算不能到达任何恢复阶段。它是刻意设定的依赖例子,不代表所有密码管理器的实际工作方式。

第二套规则让保险库依赖备用设备和离线解锁,而不是被锁住的账户。两项假设都可用时,计算能新增到达三个阶段:保险库、恢复材料、账户访问。去掉离线解锁,路线又停住。七项断言核对可达与不可达状态;未打开保险库,标签不含真实解锁值。

实际规划时,可以只用普通名称画自己的依赖,不写秘密。逐步问哪些条件必须先成立,寻找能承受目标故障的起点,并确认提供方支持你计划采用的恢复方式。漂亮箭头不能凭空创造服务本来没有的恢复选项。

循环路线没有起步条件;独立示例也只在假设的备用设备与离线解锁均可用时成立。
FIG 03循环路线没有起步条件;独立示例也只在假设的备用设备与离线解锁均可用时成立。
PRACTICE THE ROUTE

不暴露钥匙,也能演练路径

平静的规划练习可以检查:能否找到受保护存储,在缺少设备时解锁,并确认对应账户。演练使用虚构标签。你不必把秘密复制进工作表,也不必消耗一次性真实代码,才能发现计划存在循环依赖。

换设备、搬家或改变存储解锁方式后,重新查看路径。目标不是积累大量应急文书,而是从普通故障回到受控访问之间,留下一条短而可信的路,同时保持足够私密,不让它成为别人的捷径。

三张规划卡片询问如何找到、解锁和维护受保护的恢复存储。
FIG 04用标签检查位置、独立访问与维护,而不是填写秘密值。
留一个想法带走

有用的备用方案,既受保护,也能取得。真正要问的是:常用路径失效时,什么仍会工作。