Mirage Vault 如何加密和保护你的照片

更新于 2026 年 11 月 9 日事实来自 App 源代码和 2026-10-31 的安全审计

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),并用认证数据把分块与其所属文件、所在位置以及是否为最后一块绑定在一起。被修改、截断或调换的分块会被检测出来,而不会被解密。
256 位
保险箱密钥,每个保险箱随机生成
≥ 600,000
PBKDF2-HMAC-SHA256 轮数
1 MiB
每个加密分块
0
服务器、账户、追踪器

格式的其他事实:磁盘上的文件名是随机的 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 的安全隔区上。

Mirage Vault 中的恢复短语界面:八个带编号的单词,以及三条提醒你写在纸上的提示Mirage Vault 中的恢复短语界面:八个带编号的单词,以及三条提醒你写在纸上的提示
八个单词,只显示一次。Mirage 无法再次显示,也无法重置。

检查了什么,由谁检查

存储容器格式和 App 层已于 2026-10-31 完成审查:代码阅读、由另一位审查者对格式进行的二次审查,以及一个压力测试目标,涵盖并发、篡改、模糊测试和明文泄漏检查(软件包中有 71 项测试,全部通过,在 Thread Sanitizer 下也全部通过)。文件加密经受住了位翻转、随机变异、在每个边界处截断以及在文件之间调换分块的测试:从未返回错误的明文。发现的问题集中在保险箱和密钥槽逻辑以及 iCloud 备份中,其中严重和高危问题已在当天修复;审计文档记录了每个问题及其状态。

MirageCrypto 模块定义了存储容器格式和密钥,它被编写为一个独立的软件包,以便在 GitHub 上发布。公开后,本页将提供链接。

App 的一段话简介、图标和用于报道的截图,见媒体资料包。

安全性页面

常见问题

Mirage Vault 加密吗?
是的。每张照片、每个视频、每条笔记和每个文件都在 iPhone 上用 AES-256-GCM 按 1 MiB 分块加密,每个文件使用自己的随机密钥。缩略图和预览也经过加密。不会有可读的副本写入磁盘,文件名也是随机标识符。
Mirage 能读取我的照片吗?
不能。没有 Mirage 账户,也没有 Mirage 服务器。保险箱密钥从不离开 iPhone,iCloud 备份在你自己的 iCloud 账户中只包含密文,恢复短语只显示一次,从不储存。Mirage 的任何人都无法打开保险箱,也绝不会向你索要恢复短语。
如果有人从我的 iPhone 上复制了文件,会怎样?
他们得到的是看似随机的数据。要打开它,需要保险箱密钥,而这个密钥由那台 iPhone 安全隔区中的密钥封装。用文件副本离线猜测图案是行不通的:安全隔区密钥无法提取,所以每次猜测都必须在这台设备上进行,而在设备上,错误 5 次就会开始等待,等待时间最长增加到 1 小时。
Mirage Vault 会收集数据吗?
App Store 隐私标签显示“未收集数据”。App 没有分析工具、崩溃报告服务、广告 SDK,也没有账户。购买通过 Apple 完成。唯一的网络活动是可选的加密 iCloud 备份,传到你自己的 iCloud 账户。
加密代码开源吗?
定义存储容器格式和密钥的 MirageCrypto 模块,是为在 GitHub 上发布而编写的。在发布之前,本页对格式的描述足够详细,以便日后任何人都能对照已发布的模块核实这些说法。