核心思路:一个用来回应压力的代码
胁迫之所以奏效,是因为解锁是二选一的:要么拒绝(公开对抗,事态升级),要么配合(全面披露)。胁迫代码加入了第三条路:你配合——看得见地、合作地配合——而系统做的却是全面披露之外的另一件事。盯着看的人只会看到一次正常解锁。
报警系统几十年前就在用这一招(一个应急码,开门的同时无声报警)。把它用在加密存储上则要新得多,而挂在代码后面的动作因系统而异:打开诱饵、通知某人,或者销毁材料。
销毁到底是怎么完成的
直觉上,“抹除”听起来很慢——覆写好几个 GB 需要你根本没有的那几分钟。加密系统的做法不同:销毁密钥,而不是数据。Sealby 的隐藏保险库由一组密钥加密,胁迫 PIN 码抹掉的就是这组密钥;留在磁盘上(以及任何同步备份里)的,是一堆世上再无对应密钥的密文。这只需要几毫秒,而且任何取证工具都无法还原,因为已经没有东西可找了。
唯一的回头路,是你事先把某个保险库的恢复短语存放在完全另一个地方——这会把胁迫抹除从“数据丢失”变成“数据不在这台设备上了”,前提是你做了准备。
诚实地谈谈取舍
胁迫抹除有两个真实的风险。你可能自己触发它——把一个为了显得可信而选的 PIN 码输错了——所以它必须是一个刻意的、明确区分的代码,你可以演练,但绝不随手使用。另外,它的保护方式是销毁:如果施压者期待的是某些特定数据,这些数据的缺失本身可能让局面升级。诱饵保险库处理的正是那些“拿出点东西”比“什么都没有”更安全的情况。
这就是为什么 Sealby 把诱饵当作默认工具,而把胁迫 PIN 码设为可选。可否认性用来降温;销毁用来终结。两者都存在,是因为压力有不同的形状。