加密中的合理否认详解
加密能很好地回答一个问题:没有密钥,别人能读到这些内容吗?合理否认回答的则是一个更难、更关乎人的问题:当有人逼你交出密钥时会怎样?这篇指南解释这个概念、它的来历、Velcrypt 如何运用它,以及它在哪里失效。
合理否认是什么意思
合理否认是这样一种特性:即使你在压力下打开了某样东西,也没有人能证明你还有所保留。你可以说“就这些了”,而系统不会给对方任何反驳你的证据。
它之所以重要,是因为强加密把薄弱环节从数学转移到了人身上。如果一个文件受 AES-256 保护,没有人会去破解加密算法。他们会来问你、坚持要求你,甚至威胁你。可否认的设计,试图让“部分让步”成为一个安全的选项。
简短的历史:隐藏卷
这个思路是通过磁盘加密软件进入大众视野的。TrueCrypt 和 VeraCrypt 这一系列工具引入了 隐藏卷:藏在普通加密容器未使用空间里的第二个加密容器。
这个技巧之所以有效,是因为好的加密输出看起来就像随机噪声,而一个用随机数据填满的加密卷,其空闲空间看起来也一样。一个密码打开外层卷,里面存放着可信的诱饵文件;另一个密码打开隐藏卷。没有第二个密码,隐藏部分与空白空间无法区分。
研究人员还更正式地探讨过“可否认加密”,即同一段密文可以用不同的密钥解密成不同的明文。隐藏卷则是这一思路实用且被广泛使用的版本。
多年来,同样是这些研究人员和从业者,也记录下了它的局限:操作系统会留下痕迹(最近文件列表、缩略图、日志),人的行为前后不一,而且一个知道该软件支持隐藏卷的对手,可能会直接假定隐藏卷存在。
Velcrypt 如何运用这个思路
Velcrypt 把这一原则改造后用在 iPhone 上的照片和文档保险箱里。这里没有外层卷和内层卷,取而代之的是:
- 每个图案都是一个独立的保险箱。 每个保险箱都有自己随机生成的 256 位主密钥,由从该图案派生的密钥解开。
- 没有保险箱列表。 App 不保存任何能列举出有多少个保险箱的信息。
- 未知图案会打开一个空保险箱。 画一个 Velcrypt 从未见过的图案,你会进入一个新的空保险箱。不会出现“图案错误”的提示。
结果是:画错的图案,和一个有效但为空的保险箱,看起来一模一样。如果你为别人打开一个保险箱,界面上没有任何东西能显示其他保险箱存在。这让 诱饵保险箱 成为一种自然的使用方式,而不是一个特殊模式。隐藏保险箱 功能页面展示了它在实际中如何运作。
一项计划中的 Premium 功能 胁迫图案(即将推出)进一步延伸了这一点:一个特殊图案会打开指定的保险箱,并悄悄移除对其他保险箱的访问。
坦诚的局限
合理否认很容易被夸大。以下是 Velcrypt 不 声称能做到的事。
它不隐藏 App 的存在
Velcrypt 和其他 App 一样出现在你的主屏幕上。iOS 18 及更高版本允许你把 App 隐藏到一个用面容 ID 锁定的隐藏文件夹中,但那是 iOS 的功能,而且任何知道你设备密码的人仍然可以查看。别人看到一个保险箱 App,只会知道你重视隐私,而不会知道你存了什么。
它不隐藏加密数据的存在
Velcrypt 并不声称能隐藏设备上存有加密数据这一事实。加密文件要占用空间,而 iPhone 的“设置”会显示每个 App 使用了多少存储空间。对设备进行取证检查,可能会显示这个 App 存有的加密数据比你打开的那个保险箱更多。没有图案,它无法解密这些数据,但“这里还有更多东西”可能会被专家看出来。
它无法撤销别处的副本
如果一张照片仍然存在于你的“照片”图库、“最近删除”、iCloud 或某个聊天记录中,保险箱的合理否认就毫无意义。导入之后,请 删除原图。
它无法阻止被观察
如果有人看着你画出真正的图案,或者拍下了屏幕,合理否认就不复存在了。请在私密的环境下画图案,并遮挡屏幕。
它不是一种法律策略
在一些国家,拒绝披露密钥或误导执法人员可能会受到处罚。合理否认主要用于应对非正式的压力:嫉妒的伴侣、小偷、爱打听的亲戚。凡是涉及当局的情况,请阅读 过境指南,并寻求正规的法律意见。
合理否认与保密:两种不同的承诺
把这两个概念分开会很有帮助,因为在营销中它们经常被混为一谈。
| 保密(加密) | 合理否认 | |
|---|---|---|
| 它回答的问题 | 没有密钥,别人能读到这些内容吗? | 别人能证明还有比你展示的更多的东西吗? |
| 它依靠什么 | 数学和密钥管理 | 无法区分的设计和可信的行为 |
| 它有多强 | 有 AES-256 和良好的密钥派生时非常强 | 视情况而定;取决于观察者和具体情境 |
| 什么会破坏它 | 弱“秘密”、泄露的密钥、别处的副本 | 存储空间大小、取证痕迹、迟疑、被观察 |
加密在几乎所有情况下都能让你的内容无法被读取。合理否认则是叠加在上面的一层更“软”的社会层面保护:在当下很有价值,但永远不该把一切都押在它上面。
让合理否认可信
技术提供了可能性;你的行为提供了可信度。
- 让你会打开的那个保险箱看起来常用。 真实的相簿、最近的项目、一个可信的用途。
- 让说法与存储空间相符。 一个只有几份文档的诱饵保险箱,配上好几 GB 的 App 存储空间,会显得很奇怪。
- 不要迟疑。 反复练习你会打开的那个图案,直到它成为自然反应。
- 避免留下痕迹。 不要在别处用你隐藏的内容来命名相簿,也不要把原图留在其他 App 里。
Velcrypt 的定位
Velcrypt 把可否认的结构和强加密结合在一起:通过 Apple CryptoKit 使用 AES-256-GCM,用 PBKDF2-HMAC-SHA512(至少 600,000 次迭代)从你的图案派生密钥,并用 HKDF 派生每个文件的密钥。一切都留在设备上,没有账户,也没有可能透露你有多少个保险箱的服务器。加密页面 有详细介绍,安全概览 则列出了它在设计上无法阻止的威胁。
常见问题
用简单的话说,合理否认是什么意思?
意思是你可以可信地说“这就是全部”,而且没有人能证明并非如此。在加密中,这是通过特定设计实现的:隐藏的数据与空白空间、或与根本不存在的数据无法区分。
Velcrypt 会隐藏我在用保险箱 App 这件事吗?
不会。除非你使用 iOS 自带的隐藏 App 选项,否则这个 App 会显示在主屏幕上,它占用的存储空间也会出现在 iPhone 的“设置”中。Velcrypt 的合理否认关乎有多少个保险箱以及其中有什么,而不是设备上是否有加密数据。
取证工具能发现隐藏的保险箱吗?
它们也许能显示:这个 App 存储的加密数据,比已打开的保险箱所能解释的更多。没有正确的图案,数据本身仍以 AES-256-GCM 加密,但在专家面前,这些数据的存在可能无法否认。
合理否认合法吗?
在大多数国家,使用加密是合法的,但关于披露密钥和误导执法人员的法律差异很大。本指南不构成法律建议;如果你面临法律问题,请咨询律师。
什么是隐藏卷?
隐藏卷是存放在一个普通加密卷空闲空间里的第二个加密卷。一个密码打开外层卷,另一个密码打开隐藏卷,而隐藏的数据看起来就像随机的空闲空间。