应用中的合理推诿:是什么及为何重要
合理推诿意味着隐藏数据的存在无法被证明。
加密中的合理推诿是允许用户可信地否认某些加密数据存在的属性。加密存储看起来只包含用户选择揭示的数据。取证检查员、强制方或任何拥有设备物理访问权限的人都无法证明还存在其他隐藏数据。这不是隐藏功能。这是加密方案本身的数学属性。
本指南解释合理推诿在应用中的工作原理、真正的加密推诿与表面诱饵模式的区别、它重要的现实世界场景,以及如何评估推诿声明。
加密中的合理推诿意味着什么
在日常语言中,合理推诿意味着你可以可信地否认某事。在密码学中,这意味着隐藏数据的存在无法被证明,即使是拥有无限时间和取证工具的专家也无法做到。
这个概念起源于磁盘加密。TrueCrypt(及其继任者 VeraCrypt)开创了隐藏卷:另一个加密卷中的加密卷。一个密码揭示带有无害文件的外部卷。另一个密码揭示带有敏感文件的内部隐藏卷。取证检查员无法确定隐藏卷是否存在,因为外部卷的未使用空间填充了与加密数据无法区分的随机数据。
对于应用,合理推诿意味着不同的凭据(密码、PIN、图案)打开不同的数据集,并且不存在揭示额外数据集存在的元数据、注册表、配置标志或结构性工件。
真正的推诿与表面诱饵模式
这是大多数应用出错的关键区别。
表面诱饵模式(不是真正的推诿)
许多保险库应用提供「诱饵」或「假 PIN」功能。您设置一个打开带有不同照片的独立空间的辅助 PIN。问题是:这些应用通常存储一个布尔值标志、数据库条目或配置文件,表明诱饵模式存在且已配置。
了解该应用的取证检查员可以找到这个标志。找到已配置的诱饵模式证明了隐藏数据的存在。推诿是表面性的——它对随意的窥探者有效,但在取证检查下会失败。
表面推诿的迹象:
- 应用设置中有「诱饵模式」开关
- 配置文件存储诱饵模式是否已启用
- 数据库表列出带有类型指示符(主要/诱饵)的保险库 ID
- 诱饵模式打开时应用的存储结构发生变化
- 在配置了诱饵模式后卸载并重新安装应用会显示不同的行为
真正的加密推诿
真正的推诿是架构属性,而非功能开关。加密存储必须设计为:
每个凭据打开一个有效数据集。打开隐藏保险库的凭据不会产生「密码错误」错误。任何有效的图案/密码组合都会产生解密某些内容的密钥。
不存在保险库注册表。应用无法枚举存在多少个保险库。没有计数、没有索引、没有保险库 ID 列表。对应用存储拥有无限访问权限的取证检查员会发现没有结构标记指示保险库边界的未分化加密数据池。
没有配置标志揭示隐藏保险库。没有布尔值、没有数据库条目、没有偏好文件指示是否存在额外保险库。
存储经过填充。消耗的总存储不会根据保险库数量或文件数量而变化。没有填充,检查员可以从总加密数据大小与可见内容的比较中估计保险库数量。
加密数据与随机噪声无法区分。没有文件边界、没有标头、没有揭示一个保险库数据在哪里结束另一个保险库在哪里开始的结构标记。
| 属性 | 表面诱饵 | 真正推诿 |
|---|---|---|
| 每个凭据的独立数据 | 是 | 是 |
| 无保险库注册表 | 否(数据库跟踪保险库) | 是 |
| 无配置标志 | 否(诱饵开关被存储) | 是 |
| 存储填充 | 罕见 | 是 |
| 通过取证检查 | 否 | 是 |
| 架构与功能 | 功能开关 | 架构属性 |
现实世界中重要的场景
合理推诿不是理论上的担忧。它解决了有据可查的、反复出现的现实世界情况。
过境检查
在美国,海关和边境保护局可以在边境合法强制访问设备。法院裁定边境官员可以要求提供设备检查密码。在这种情况下,拥有真正合理推诿的用户可以提供打开包含无害内容的保险库的图案/密码。检查员无法证明其他保险库存在。
家庭暴力和胁迫关系
处于虐待关系中的人可能需要在施虐者监控的设备上存储证据(伤害照片、威胁短信、法律文件)。如果施虐者要求查看保险库,用户可以打开包含非敏感内容的保险库。没有真正的推诿,应用配置中的「诱饵模式」标志会揭示隐藏内容的存在。
设备盗窃
拥有技术技能的小偷可能试图从被盗手机中提取数据。通过真正的推诿,加密数据池不会透露任何关于保险库数量、内容或用途的信息。
法律和新闻保护
保护消息来源的记者、保护客户文件的律师以及威权体制下的活动人士面临设备内容可能被强制的场景。真正的推诿提供了对抗数据没收的可信辩护。
Vaultaire 如何实现合理推诿
Vaultaire 通过架构设计实现真正的加密合理推诿:
每个图案打开不同的保险库。5x5 网格通过 PBKDF2 产生密钥。不同的图案产生不同的密钥。没有主密钥、没有保险库列表,应用无法枚举现有保险库。绘制一个没有关联保险库的图案只会打开一个空的保险库空间——没有「图案错误」错误。
无保险库注册表。应用没有列出保险库、保险库名称或保险库计数的数据库。所有加密数据存在于一个未分化的存储池中。对设备文件系统拥有无限访问权限的取证检查员会发现没有结构标记指示保险库边界的加密块。
存储填充。无论保险库计数或文件计数如何,总存储大小保持不变,破解了磁盘使用量分析。
无配置标志。没有设置文件、没有偏好条目、没有数据库记录揭示存在多少个保险库或是否使用了任何特定图案。
胁迫模式。用户可以将一个保险库指定为胁迫保险库。绘制该图案会正常打开保险库,同时悄悄且立即地销毁所有其他保险库的加密盐。销毁是不可逆的,不留取证痕迹,在不到一秒内完成。
如何评估推诿声明
当应用声称具有合理推诿时,询问:
- 是否有「诱饵模式」开关?如果有,它是表面性的。取证检查员可以找到该开关。
- 应用是否有保险库列表或数据库?如果有,保险库的存在是可证明的。
- 是否有「密码错误」错误?如果有,应用可以区分有效和无效凭据,这意味着它存储了验证凭据的内容。
- 存储消耗是否随保险库计数变化?如果是,磁盘分析可以估计保险库计数。
- 应用能否枚举保险库?如果应用可以向您显示保险库列表,该列表存在于设备上且可被发现。
常见问题
合理推诿合法吗?
在大多数民主国家,使用具有合理推诿的加密是合法的。没有法律禁止在设备上保存无法证明其存在的加密数据。在某些司法管辖区(英国的 RIPA、澳大利亚的《援助和访问法》),当局可以强制披露加密密钥。法律问题是强制披露无法证明其存在的数据密钥是否可执行。这仍是一个正在发展的法律领域。
取证工具能检测到合理推诿吗?
专业取证工具(Cellebrite、GrayKey、Magnet AXIOM)可以检测到 Vaultaire 已安装且存在加密数据。他们无法确定存在多少个保险库、它们包含什么,或者在任何已揭示的保险库之外是否还存在额外保险库。加密数据与随机噪声无法区分。这通过设计验证,而非通过政策声明。
合理推诿对一个有决心的国家级行为者有效吗?
对于密码分析(破解加密):是的。AES-256 对任何已知的国家级能力都无法破解。对于胁迫(迫使您透露图案):合理推诿意味着您可以透露一个保险库,同时可信地否认其他保险库的存在。对于设备攻击(使用零日漏洞从运行设备提取数据):如果设备解锁且保险库打开,解密数据在内存中,理论上可以访问。合理推诿保护静态数据,而非主动使用中的数据。
合理推诿和隐藏保险库有什么区别?
隐藏保险库是在应用界面中不可见的保险库。合理推诿是隐藏保险库的存在无法被证明的属性。如果保险库注册表或配置标志揭示了它们,应用可以拥有没有合理推诿的隐藏保险库。Vaultaire 两者都提供:保险库默认隐藏,且其存在在设计上无法被证明。
我可以在云备份中使用合理推诿吗?
在 Vaultaire 中,加密的 iCloud 备份包含整个加密存储池。备份是一个单一的加密 blob。它保留了合理推诿,因为备份本身没有保险库级别的结构——它与设备存储相同的未分化加密池。
总结
加密中的合理推诿意味着即使在取证检查下,隐藏数据的存在也无法被证明。大多数声称具有此功能的应用提供具有可发现配置标志的表面诱饵模式。真正的推诿需要无保险库注册表、无配置标志、存储填充以及架构上无法区分的加密数据。
Vaultaire 将真正的合理推诿作为架构属性实现:每个图案打开不同的保险库,没有保险库列表,存储经过填充,没有其他加密保险库应用做到这一点。