Правдоподобное отрицание и сейфы, разделённые узорами

Кто-то требует, чтобы вы открыли Vaultaire. Вы рисуете один узор, и открывается один зашифрованный сейф без меню со списком остальных. Другой узор может открыть другой сейф. Это даёт практическое разделение на уровне интерфейса, но с чёткими ограничениями перед криминалистом, который может изучить контейнер приложения.

Функция правдоподобного отрицания в Vaultaire использует разные узоры для доступа к отдельным зашифрованным индексам сейфов и не показывает общего списка сейфов. Это может скрыть другие сейфы при обычном просмотре интерфейса, но структура данных на диске показывает число сейфов тому, у кого есть доступ к контейнеру приложения.

Что на самом деле означает правдоподобное отрицание

В строгом криптографическом смысле правдоподобное отрицание означает, что видимый сейф не доказывает существования дополнительного защищённого содержимого. В обиходном продуктовом языке тот же термин обозначает и учётные данные-приманки, которые открывают одно представление и скрывают другое. Это разные стандарты: текущая реализация Vaultaire решает задачу разделения интерфейса, а не теоретической неразличимости информации.

Большинство приложений-сейфов держат один сейф за одним паролем. Если вас заставят его открыть, раскрыто будет всё. Некоторые приложения предлагают режим “приманки”, где можно задать второй пароль, открывающий фальшивый экран. Но такие реализации обычно косметические. Криминалист может изучить данные приложения, увидеть флаги конфигурации, заметить, что объём зашифрованных данных не совпадает с видимыми файлами, или найти метаданные, выдающие скрытый слой.

Vaultaire опирается на узоры. Каждый допустимый узор на сетке 5×5 даёт свой потенциальный ключ сейфа. Приложение хеширует этот ключ, чтобы вычислить ожидаемое имя файла зашифрованного индекса, а затем открывает и проверяет подлинность индекса, если он существует. Реестра узоров в открытом виде и видимых пользователю имён сейфов нет, хотя папки хранения, по одной на сейф, можно перечислить и подсчитать.

Если выведенный индекс существует и аутентификация AES-GCM проходит, вы видите файлы этого сейфа. Если нет, Vaultaire показывает пустое состояние и может создать для этого узора новый сейф. Экран блокировки не выдаёт ошибку с названием другого сейфа и не показывает список. Такой «тихий» интерфейс помогает при поверхностной проверке, но не стирает следы в файловой системе, описанные ниже.

Основной принцип

Традиционные приложения-сейфы часто открывают видимый список контейнеров. В Vaultaire вместо этого каждый узор указывает на один зашифрованный индекс. Человек, работающий с интерфейсом, видит выбранный сейф, а не каталог остальных. Криминалист, изучающий файловую систему, видит больше и может подсчитать сейфы по их папкам хранения.

Как это работает изнутри

Техническая основа сочетает адресацию по узорам с аутентифицированным шифрованием. Разные узоры дают разные потенциальные ключи и имена файлов. Затем AES-GCM выполняет явную проверку целостности: правильный ключ подтверждает подлинность зашифрованного индекса, неправильный не даёт результата. Для безопасности это полезно, но это же означает, что по скопированным данным можно офлайн проверять догадки.

Разные узоры, разные ключи

Когда вы рисуете узор, Vaultaire сериализует последовательность точек и размер сетки, а затем выполняет 600 000 итераций PBKDF2-HMAC-SHA512 со случайной солью устройства, хранящейся в Keychain. Функция выдаёт 256-битный ключ сейфа. Другой узор должен давать никак не связанный ключ, но стойкость учётных данных по-прежнему ограничена тем, насколько узор можно угадать. 256-битный результат не даёт узору, придуманному человеком, 256 бит энтропии.

Каждый ключ расшифровывает свой собственный блок

Vaultaire хранит карту файлов каждого сейфа и обёрнутый случайный главный ключ в индексе, зашифрованном AES-256-GCM. Когда вы рисуете узор, приложение выводит потенциальный ключ сейфа и проверяет имя файла, соответствующее отпечатку ключа. Если файл существует, аутентифицированная расшифровка либо проходит, либо нет: AES-GCM не выдаёт бессмысленный открытый текст как принятый. Если ни один действительный индекс не открывается, интерфейс показывает пустое состояние и не раскрывает другие сейфы.

Нет открытого каталога всех сейфов

Vaultaire не хранит видимую пользователю таблицу базы данных, которая сопоставляла бы узоры с читаемыми именами сейфов. Обычная разблокировка обращается к одному индексу через выведенный ключ. На диске у каждого сейфа есть корневой файл `vault_index_<locator>.bin` в пуле, дополненном случайными файлами-заглушками до групп по 64, и папка хранения с тем же локатором. Приложение само перечисляет их для обслуживания сейфов. Локаторы не раскрывают исходные узоры, но по числу папок видно, сколько сейфов существует и какие корневые файлы настоящие.

Схема правдоподобного отрицания
Узор А
Ваш настоящий узор
→
Ключ А
Производный ключ
→
Сейф А
Ваши личные файлы
Узор Б
Узор-приманка
→
Ключ Б
Другой ключ
→
Сейф Б
Невинные файлы

Оба сейфа одинаково реальны. Оба зашифрованы одним и тем же алгоритмом. Оба дают одинаковый по виду зашифрованный результат. Нет ни флага, ни маркера, ни метаданных, помечающих один как “настоящий”, а другой как “приманку”. С точки зрения математики они идентичны.

Стратегия сейфа-приманки

Правдоподобное отрицание работает, только если вам есть что показать. Пустой сейф вызывает подозрения. Сейф, в котором явно нет ничего, что стоило бы защищать, тоже вызывает подозрения. Самая сильная защита — сейф, который выглядит ровно так, как от него ожидают.

Настройка приманки

Выберите второй узор, который вы сможете быстро и естественно нарисовать под давлением. Создайте сейф с этим узором. Наполните его содержимым, которое логично смотрится в приложении-сейфе: несколько личных фотографий, которые вы предпочли бы не показывать, но которые не являются по-настоящему секретными, пара финансовых документов, несколько заметок. Содержимое должно быть правдоподобным и слегка неловким, ровно настолько, чтобы человек, просматривающий ваш телефон, решил, что нашёл то, что вы прятали.

Делаем это убедительно

У хорошего сейфа-приманки есть несколько признаков. В нём должно быть разумное число файлов: не слишком мало (подозрительно пусто) и не слишком много (зачем защищать столько обыденного содержимого?). Файлы должны быть достаточно свежими, чтобы было видно, что сейфом пользуются. И в идеале содержимое должно объяснять, зачем вы вообще установили приложение-сейф.

Тот, кто видит только разблокированный интерфейс, видит выбранный сейф и не видит общего списка сейфов. Это снижает риск случайного раскрытия. Тот, у кого есть доступ к файловой системе, может подсчитать сейфы и узнать, что локальных сейфов больше одного, даже если он по-прежнему не может связать индекс с узором или прочитать его содержимое.

Под давлением

Если вас когда-нибудь заставят разблокировать приложение, нарисуйте узор-приманку. Сейф открывается. Появляются файлы. В обычном интерфейсе нет скрытого меню или общего списка сейфов, который можно было бы найти. Человек с вашим телефоном в руках видит один открытый сейф. При поверхностной проверке картина выглядит цельной, хотя анализ файловой системы всё равно может выявить дополнительные зашифрованные индексы.

Ваш настоящий сейф не появляется в интерфейсе, пока не нарисован его узор. Его нет ни в каком скрытом меню. Но его зашифрованный индекс по-прежнему лежит в контейнере приложения, поэтому эту функцию нельзя представлять как защиту от любой формы принудительного раскрытия или криминалистического анализа.

Точные границы безопасности

Vaultaire может делать сильные заявления о зашифрованном содержимом и более узкие — об интерфейсе. AES-GCM защищает то, что находится в индексе и его файлах. Адресация по узорам не пускает другие сейфы в видимый процесс разблокировки. Ни то, ни другое не делает число сейфов невидимым для криминалиста, который может прочитать контейнер приложения.

Нет
Видимый список всех сейфов
2256
Пространство ключей AES
1
Зашифрованный индекс на каждый сейф

Зашифрованное содержимое остаётся закрытым

AES-256-GCM скрывает открытый текст и обнаруживает изменения при правильной работе с ключами и одноразовыми номерами (nonce). Криминалист может опознать индексные и BLOB-файлы Vaultaire по именам и расположению, но без нужных ключей не прочитает защищённую карту файлов, обёрнутый главный ключ, имена файлов, метаданные, миниатюры или содержимое файлов.

Индексы можно перечислить, но карты узоров в открытом виде нет

По файловой системе можно определить, сколько существует сейфов, потому что у каждого сейфа своя папка хранения. Чего она не даёт, так это открытой карты, связывающей эти отпечатки с узорами, из которых они получены, с видимыми пользователю названиями сейфов или с расшифрованным содержимым. Это полезная граница, но число сейфов она не скрывает.

Офлайн-проверка догадок возможна

Злоумышленник, скопировавший соль устройства и зашифрованные данные приложения, может вывести потенциальный ключ из угаданного узора. Совпадение отпечатка индекса покажет ему, существует ли соответствующий файл, а аутентифицированная расшифровка AES-GCM подтвердит догадку практически наверняка. PBKDF2 делает каждую попытку дороже, но не отменяет эту офлайн-проверку и не добавляет энтропии слабому узору.

Что даёт пустое состояние

На экране блокировки Vaultaire не сообщает «неверный узор» и не показывает другие доступные сейфы. Несовпадающий узор ведёт к пустому состоянию или созданию нового сейфа, поэтому человек, работающий только с интерфейсом, не получает списка сейфов. Это преимущество не распространяется на злоумышленника, который скопировал и проанализировал файлы на диске.

Это не юридическая консультация

Законы о принудительном раскрытии данных зависят от юрисдикции и обстоятельств. Интерфейс Vaultaire не определяет, что власти могут заключить, потребовать или доказать, а подсчёт папок хранения сам по себе может показать несколько локальных сейфов. Обратитесь к квалифицированному юристу по поводу вашей ситуации и не полагайтесь на функцию продукта как на юридическое заключение.

Кому нужно правдоподобное отрицание

Вы можете подумать, что правдоподобное отрицание доступно только шпионам и информаторам. В действительности миллионы обычных людей сталкиваются с ситуациями, когда возможность защитить информацию по принуждению – это не роскошь, а необходимость.

Журналисты и их источники

Журналисты-расследователи часто работают с конфиденциальными материалами: именами источников, утёкшими документами, записями интервью. Во многих странах журналистов регулярно задерживают, а их устройства обыскивают на границах, блокпостах или во время обысков. Сейф-приманка с безобидными заметками и опубликованными фотографиями служит прикрытием, а настоящий сейф защищает источники, чья жизнь может зависеть от анонимности.

Активисты и организаторы

Политические активисты, профсоюзные организаторы и правозащитники могут работать в условиях, где их телефоны становятся объектом слежки. Отдельные узоры разделяют то, что видно при обычном использовании приложения, но изъятый или взломанный телефон может выдать число зашифрованных индексов и позволить офлайн подбирать узоры. Операционная безопасность должна выходить за рамки одного приложения.

Люди, подвергающиеся насилию

Людям, документирующим насилие, может понадобиться отделить конфиденциальные доказательства от того, что можно безопасно показать. Второй сейф снижает риск раскрытия перед тем, кто видит только интерфейс приложения. Он не гарантирует защиту от слежки за устройством, шпионского ПО, принуждения или анализа файловой системы, поэтому людям в опасности стоит следовать советам квалифицированной местной организации поддержки.

Путешественники, пересекающие границу

Полномочия пограничного досмотра и обязанности путешественников различаются. Открытие одного узора в Vaultaire не показывает общего списка сейфов, но и не делает другие зашифрованные индексы невидимыми для криминалистической проверки. Берите с собой как можно меньше конфиденциальных данных и получите актуальную юридическую консультацию для вашего маршрута и обстоятельств.

Для всех, кто ценит конфиденциальность

Не нужно быть в опасности, чтобы заслуживать приватности. Возможно, вы ведёте личный дневник. Возможно, у вас есть медицинские данные, на которые вы не хотите, чтобы кто-то случайно наткнулся. Возможно, вы просто считаете, что не каждая часть вашей цифровой жизни должна быть доступна любому, кто возьмёт ваш телефон. Сейфы, разделённые узорами, ограничивают то, что показывает обычная разблокировка, хотя число сейфов остаётся видимым при анализе файловой системы.

Сравнение с другими приложениями-сейфами

Многие приложения-сейфы подходят к безопасности как к задаче контроля доступа: одни учётные данные закрывают один видимый контейнер. Некоторые продукты добавляют поддельный PIN-код или режим-приманку. Надёжность таких функций зависит от устройства хранения данных, а не от маркетинговой этикетки: видимый флаг конфигурации или отдельная база данных приманки могут выдать существование другого режима.

Проблема единственного сейфа

У схемы с одним контейнером прямая проблема с принуждением: как только раскрыты её единственные учётные данные, доступно всё содержимое за ними. Наборы функций у продуктов меняются, поэтому оценивайте фактическую реализацию хранения и приманки, а не предполагайте, что конкретный конкурент использует одну неизменную модель.

Косметические режимы-приманки

Функция поддельного пароля может помочь при поверхностной проверке, но её криминалистическая ценность зависит от того, хранит ли устройство обнаружимый флаг приманки, вторую базу данных или файлы заметно разного размера. Без опубликованной архитектуры или аудита одно название функции не доказывает ни надёжного отрицания, ни его провала.

Архитектурное отличие Vaultaire

Vaultaire встраивает разделение по узорам в обычный процесс разблокировки. Специальный флаг поддельного PIN-кода, решающий, является ли сейф приманкой, не нужен: каждый настроенный узор открывает обычный зашифрованный сейф. Отдельные папки хранения остаются видимыми как зашифрованные контейнеры, поэтому архитектурное отличие сильнее всего проявляется в интерфейсе и изоляции содержимого, а не в сокрытии их числа от криминалиста.

Результат — единообразие: ни один сейф не помечен как «настоящий» или «поддельный», и каждому нужен свой проверенный путь разблокировки или восстановления. Без нужного ключа сейфа и главного ключа зашифрованное содержимое остаётся недоступным. При этом сам факт существования контейнера криптографически не стирается.

Часто задаваемые вопросы

Сколько сейфов я могу создать?

Vaultaire не вводит жёсткого маленького лимита на число сейфов. Каждый допустимый узор может указывать на отдельный зашифрованный индекс. Практическими ограничениями остаются объём памяти, пространство возможных узоров, условия подписки и ресурсы устройства, а число папок хранения на диске можно подсчитать, даже если приложение не показывает список сейфов.

Может ли криминалист определить, сколько у меня сейфов?

Да, если криминалист может прочитать контейнер приложения Vaultaire. Корневые файлы `vault_index` собраны в пулы по 64 слота со случайными файлами-заглушками, но у каждого настоящего сейфа есть своя папка хранения, поэтому сейфы можно подсчитать. Имена-локаторы не раскрывают узоры или читаемое содержимое, но Vaultaire не утверждает, что число сейфов скрыто от анализа файловой системы.

Что, если кто-то знает о функции правдоподобного отрицания Vaultaire?

Знание устройства системы не подсказывает, какой узор открывает зашифрованный индекс и что лежит в этом сейфе. Но оно раскрывает ограничения: тот, кто изучает контейнер приложения, может подсчитать сейфы и офлайн проверять угаданные узоры по отпечатку ключа и результату аутентификации AES-GCM. Поэтому стойкость узора и безопасность устройства по-прежнему важны.

Влияет ли наличие нескольких сейфов на объём памяти или производительность?

Каждый сейф занимает место пропорционально файлам в нём. Затраты на шифрование и расшифровку одинаковы, будь у вас один сейф или несколько. Приложение расшифровывает только сейф, соответствующий нарисованному узору, поэтому другие сейфы не влияют на производительность.

Можно ли заставить Vaultaire раскрыть все сейфы через обновление приложения?

Обновление приложения работает с доступом приложения и может перечислить зашифрованные индексные файлы или изменить дальнейшее поведение. Расшифровать закрытый сейф без ключа, полученного из узора, оно всё равно не сможет, но доставка обновлений входит в модель доверия. Пользователям с высоким уровнем риска стоит проверять обновления и следить за независимыми аудитами.

Что будет, если я случайно создам сейф с уже используемым узором?

Если вы нарисуете узор, совпадающий с уже существующим сейфом на том же устройстве, приложение откроет этот сейф. Для одного и того же узора, размера сетки и соли устройства локальное получение ключа детерминировано, поэтому приложение находит тот же индекс, а не создаёт дубликат.

Защитите самое важное

Создайте свой первый сейф-приманку меньше чем за минуту. Настоящая приватность начинается с точного понимания того, что скрывает интерфейс и что всё ещё может выдать зашифрованное хранилище.

Скачать Vaultaire бесплатно