Как Mirage Vault защищает фото: шифрование и ключи

Обновлено 9 ноября 2026 г.Факты из исходного кода приложения и аудита безопасности от 2026-10-31

Mirage Vault защищает фото так: шифрует каждое фото прямо на iPhone алгоритмом AES-256-GCM, со случайным ключом для каждого файла, и запирает ключ сейфа за Secure Enclave. Нет ни аккаунта, ни сервера: графический ключ, Face ID или фраза восстановления — единственные способы войти, а копию файлов невозможно открыть подбором в другом месте.

Кто смотрит и что он получает

Каждая строка — это человек, который может посмотреть, что он получит в случае Mirage Vault и что вас защищает.

КтоЧто он видитЧто вас защищает
Кто-то мельком смотрит на ваш экран «Домой» или через плечоОбычный значок; экран блокировки — чистый песок без названия приложения и без сеткиСетка графического ключа появляется только под пальцем и гаснет, когда вы его отрываете; переключатель приложений показывает пустой снимок
Кто-то держит ваш разблокированный iPhoneПустой экран блокировки сейфаFace ID или графический ключ; после 5 неверных попыток начинается пауза 30 с, которая удваивается вплоть до 1 часа; блокировка при выходе и когда iPhone лежит экраном вниз
Кто-то знает код-пароль вашего iPhoneТот же пустой экран блокировкиУ сейфа собственный ключ. Код-пароль iPhone его не открывает, а Face ID для сейфа привязан к настроенным лицам: если добавить на iPhone новое лицо, Face ID для сейфа выключится, пока вы не разблокируете сейф графическим ключом и снова его не включите
Кто-то с копией файлов или резервной копии iCloudСлучайные на вид данные под случайными именамиAES-256-GCM с отдельным ключом для каждого файла; ключ сейфа упакован ключом Secure Enclave, который нельзя скопировать, поэтому графический ключ невозможно подобрать офлайн. Резервная копия открывается только фразой восстановления из 8 слов
Кто-то заставляет вас разблокировать сейфТот сейф, который вы решите показатьЛожный сейф за вторым графическим ключом и Wipe Key — графический ключ, который на месте стирает ключи настоящего сейфа и вместо него открывает ложный (оба в Mirage Pro). Обоим нужен выключенный Face ID, потому что Face ID открывает настоящий сейф сразу при открытии Mirage
Mirage или любой, кто обращается к MirageНичего: нет ни аккаунта, ни сервера, ни копии ключаФраза восстановления показывается один раз и нигде не хранится; никто из Mirage никогда ее не спросит

Что на самом деле представляет собой шифрование

Это параметры из исходного кода приложения, а не пересказ.

  • Ваш графический ключ или PIN-код проходит через PBKDF2-HMAC-SHA256 не менее чем с 600 000 итераций; число итераций подобрано так, чтобы на вашем iPhone это занимало не менее 250 мс. Результат никогда не является самим ключом сейфа.
  • Secure Enclave упаковывает результат: ECIES на ключе P-256 в Secure Enclave. Закрытый ключ создается внутри Secure Enclave и не может быть считан, поэтому копии файлов и связки ключей недостаточно, чтобы перебирать графические ключи на другом компьютере.
  • Ключ сейфа (256 случайных бит, по одному на сейф) распаковывается только в памяти и только после верного графического ключа, Face ID или фразы восстановления.
  • У каждого файла свой случайный ключ, упакованный ключом сейфа. Фото, видео, заметки, сканы, миниатюры и превью — отдельные объекты.
  • Каждый файл шифруется блоками по 1 MiB алгоритмом AES-256-GCM: новое значение nonce для каждого блока и аутентифицированные данные, которые привязывают блок к его файлу, его позиции и признаку последнего блока. Измененный, обрезанный или подмененный блок обнаруживается, а не расшифровывается.
256 бит
ключ сейфа, случайный для каждого сейфа
≥ 600 000
итераций PBKDF2-HMAC-SHA256
1 MiB
на зашифрованный блок
0
серверов, аккаунтов, трекеров

Другие факты о формате: имена файлов на диске — случайные 128-битные идентификаторы; контейнер хранится с классом защиты NSFileProtectionComplete и исключен из резервных копий устройства; заголовок содержит 8 слотов ключей одинаковой длины, а неиспользуемые слоты заполнены случайными байтами, поэтому по слотам не видно, существует ли ложный сейф или Wipe Key. Файлы индекса все же могут выдать признаки второго сейфа при криминалистическом анализе; это открытый пункт аудита приложения. У Face ID собственный ключ в Secure Enclave, созданный для текущего набора настроенных лиц, без перехода на код-пароль iPhone. Видео воспроизводится через зашифрованный загрузчик ресурсов, блок за блоком, без временного расшифрованного файла. Записи о попытках взлома шифруются по HPKE (P-256, HKDF-SHA256, AES-256-GCM), пока сейф заблокирован, поэтому позже их сможет открыть только ключ настоящего сейфа.

Резервная копия и восстановление

Зашифрованная резервная копия в iCloud бесплатна для всех и включена по умолчанию. Она выгружает те же зашифрованные объекты в частную базу данных вашего собственного iCloud; Apple видит только зашифрованные данные, а Mirage не видит вообще ничего. Резервная копия открывается только фразой восстановления: 8 слов из списка BIP-39 (88 бит), которые показываются один раз и нигде не хранятся. Фраза — единственный ключ, который работает на другом iPhone, потому что все остальные ключи привязаны к Secure Enclave того iPhone, на котором они созданы.

Экран фразы восстановления в Mirage Vault: восемь пронумерованных слов и три напоминания записать их на бумагеЭкран фразы восстановления в Mirage Vault: восемь пронумерованных слов и три напоминания записать их на бумаге
Восемь слов, показанных один раз. Mirage не может показать их повторно и не может их сбросить.

Что проверялось и кем

Формат контейнера и уровень приложения проверены 2026-10-31: чтение кода, повторная проверка формата другим рецензентом и стресс-тест с проверками параллелизма, подмены данных, фаззинга и утечки открытого текста (71 тест в пакете, все пройдены, в том числе под Thread Sanitizer). Шифрование файлов выдержало инверсию битов, случайные мутации, обрезку на каждой границе и обмен блоками между файлами: неверный открытый текст не был возвращен ни разу. Найденные проблемы касались логики сейфов и слотов и резервного копирования в iCloud; критические и серьезные были исправлены в тот же день, и в документе аудита для каждой указан ее статус.

Модуль MirageCrypto, который определяет формат контейнера и ключи, написан как отдельный пакет, чтобы его можно было опубликовать на GitHub. Когда модуль станет общедоступным, на этой странице появится ссылка на него.

Описание приложения в одном абзаце, значок и снимки экрана для публикаций — в пресс-ките.

Страницы о безопасности

Вопросы

Зашифрован ли Mirage Vault?
Да. Каждое фото, видео, заметка и файл шифруются на iPhone алгоритмом AES-256-GCM блоками по 1 MiB, каждый файл — собственным случайным ключом. Миниатюры и превью тоже зашифрованы. Читаемая копия на диск не записывается, а имена файлов — случайные идентификаторы.
Может ли Mirage прочитать мои фото?
Нет. Нет ни аккаунта Mirage, ни сервера Mirage. Ключ сейфа никогда не покидает iPhone, резервная копия в iCloud содержит только зашифрованные данные в вашем собственном iCloud, а фраза восстановления показывается один раз и нигде не хранится. Никто в Mirage не может открыть сейф, и никто из Mirage никогда не спросит у вас фразу.
Что будет, если кто-то скопирует файлы с моего iPhone?
Он получит данные, похожие на случайные. Чтобы их открыть, нужен ключ сейфа, а он упакован ключом внутри Secure Enclave этого iPhone. Подобрать графический ключ офлайн по копии файлов не получится: ключ Secure Enclave невозможно извлечь, поэтому каждая попытка должна выполняться на устройстве, где после 5 неверных попыток начинается пауза, растущая до 1 часа.
Собирает ли Mirage Vault какие-либо данные?
В сведениях о конфиденциальности в App Store значится «Данные не собираются». В приложении нет аналитики, службы отчетов о сбоях, рекламного SDK и аккаунта. Покупки проходят через Apple. Единственная сетевая активность — необязательное зашифрованное резервное копирование в ваш собственный iCloud.
Открыт ли код шифрования?
Модуль MirageCrypto, который определяет формат контейнера и ключи, написан с расчетом на публикацию на GitHub. Пока этого не произошло, эта страница описывает формат достаточно подробно, чтобы любой мог позже сверить заявления с опубликованным модулем.