Mirage Vault 如何加密和保护你的照片
Mirage Vault 在 iPhone 本机上用 AES-256-GCM 加密每张照片,每个文件使用一个随机密钥,并把保险箱密钥锁在安全隔区(Secure Enclave)之后。没有账户,也没有服务器:图案、面容 ID 或恢复短语是仅有的进入方式,文件的副本也无法在别处靠猜测打开。
谁在查看,他们能得到什么
每一行是一个可能查看的人、他们在 Mirage Vault 中能得到什么,以及保护你的是什么。
| 谁 | 他们看到什么 | 保护你的是什么 |
|---|---|---|
| 瞥一眼你的主屏幕或从你身后偷看的人 | 一个普通的图标;锁定界面是一片空白的沙色,没有 App 名称,也没有网格 | 图案网格只在手指下出现,抬起后随即淡去;App 切换器中显示空白快照 |
| 拿着你已解锁 iPhone 的人 | 保险箱空白的锁定界面 | 面容 ID 或图案;错误 5 次后开始 30 秒的等待,逐次加倍,最长 1 小时;离开时锁定,屏幕朝下时锁定 |
| 知道你 iPhone 密码的人 | 同样空白的锁定界面 | 保险箱有自己的密钥。iPhone 密码打不开它,而且保险箱的面容 ID 与已录入的面孔绑定:在 iPhone 上添加新面孔,会关闭保险箱的面容 ID,直到你用图案解锁并重新打开它 |
| 拿到文件副本或 iCloud 备份的人 | 名称随机、看似随机的数据 | AES-256-GCM,每个文件一个密钥;保险箱密钥由无法复制的安全隔区密钥封装,因此无法离线猜测图案。备份只能用 8 个单词的恢复短语打开 |
| 强迫你解锁的人 | 你选择给他看的任何保险箱 | 藏在第二个图案后面的诱饵保险箱,以及 Wipe Key:一个当场抹掉真实保险箱密钥、转而打开诱饵保险箱的图案(两者均属 Mirage Pro)。两者都需要关闭面容 ID,因为 Mirage 一打开,面容 ID 就会打开真实保险箱 |
| Mirage,或任何向 Mirage 索取的人 | 什么也得不到:没有账户,没有服务器,也没有密钥副本 | 恢复短语只显示一次,从不储存;Mirage 的任何人都绝不会向你索要 |
Mirage Vault 的加密到底是怎么做的
以下是 App 源代码中的参数,而不是概括。
- 你的图案或 PIN 码会经过至少 600,000 次迭代的 PBKDF2-HMAC-SHA256 运算,并经过校准,在你的 iPhone 上至少耗时 250 毫秒。运算结果从来不是保险箱密钥本身。
- 安全隔区封装这个结果:使用安全隔区中的 P-256 密钥进行 ECIES 加密。私钥在安全隔区内生成,无法读出,因此仅凭文件和钥匙串的副本,无法在另一台设备上尝试图案。
- 保险箱密钥(256 位随机数,每个保险箱一个)只在内存中解封,而且只有在图案、面容 ID 或恢复短语正确之后才会解封。
- 每个文件都有自己的随机密钥,由保险箱密钥封装。照片、视频、笔记、扫描件、缩略图和预览都是相互独立的对象。
- 每个文件按 1 MiB 分块用 AES-256-GCM 加密封存:每个分块使用新的随机数(nonce),并用认证数据把分块与其所属文件、所在位置以及是否为最后一块绑定在一起。被修改、截断或调换的分块会被检测出来,而不会被解密。
格式的其他事实:磁盘上的文件名是随机的 128 位标识符;存储容器受 NSFileProtectionComplete 保护,并被排除在设备备份之外;文件头包含 8 个长度相同的密钥槽,未使用的槽用随机字节填充,因此这些槽不会透露是否存在诱饵保险箱或 Wipe Key。索引文件仍可能在取证分析中显示出第二个保险箱的迹象;这是 App 审计中的一个未决事项。面容 ID 有自己的安全隔区密钥,基于当前已录入的面孔创建,不会退回到 iPhone 密码。视频通过加密资源加载器逐块播放,不会生成解密后的临时文件。入侵记录在保险箱锁定时用 HPKE(P-256、HKDF-SHA256、AES-256-GCM)加密封存,因此之后只有真实保险箱的密钥才能打开它们。
备份与恢复
加密 iCloud 备份对所有人免费,并且默认开启。它把同样的加密对象上传到你自己 iCloud 账户的私有数据库;Apple 只能看到密文,Mirage 什么都看不到。备份只能用恢复短语打开:从 BIP-39 词表中选出的 8 个单词(88 位),只显示一次,从不储存。恢复短语是唯一能在另一台 iPhone 上使用的密钥,因为其他所有密钥都绑定在生成它们的那台 iPhone 的安全隔区上。


检查了什么,由谁检查
存储容器格式和 App 层已于 2026-10-31 完成审查:代码阅读、由另一位审查者对格式进行的二次审查,以及一个压力测试目标,涵盖并发、篡改、模糊测试和明文泄漏检查(软件包中有 71 项测试,全部通过,在 Thread Sanitizer 下也全部通过)。文件加密经受住了位翻转、随机变异、在每个边界处截断以及在文件之间调换分块的测试:从未返回错误的明文。发现的问题集中在保险箱和密钥槽逻辑以及 iCloud 备份中,其中严重和高危问题已在当天修复;审计文档记录了每个问题及其状态。
MirageCrypto 模块定义了存储容器格式和密钥,它被编写为一个独立的软件包,以便在 GitHub 上发布。公开后,本页将提供链接。
App 的一段话简介、图标和用于报道的截图,见媒体资料包。
安全性页面
- 私密相册 App 安全吗?信任一款之前要检查的七件事
七项检查,区分加密的保险箱和一个带 PIN 码界面的隐藏文件夹。
- 计算器隐藏相册 App 安全吗?伪装能保护什么,不能保护什么
计算器伪装有多大用处,伪装背后要检查什么,以及 Mirage 如何在不模仿其他 App 的情况下隐藏自己。