КРИПТОГРАФИЯ И ДОВЕРИЕ

Модель безопасности

Технический справочник по Revault на iOS и Android: как локальные хранилища, ключи устройств, встроенная облачная синхронизация и независимые общие ресурсы защищают ваши данные и где заканчивается эта защита.

Техническая справка · Обновлено в октябре 2026 г.

Защита начинается перед загрузкой

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

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

Ваше устройствоОткрытый текст и ключ хранилища
Шифровать локальноАутентифицированный зашифрованный текст
Зашифрованное хранилищеНет ключа хранилища в виде открытого текста

Независимые ключи для каждого хранилища

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

Шаблон устройства объединяет упорядоченную последовательность точек со случайным 256-битным секретом устройства. Полученный входной сигнал нормализуется с помощью NFKC и передается в PBKDF2-HMAC-SHA-256 с новой 128-битной солью и 600 000 итераций. Производный 256-битный ключ оборачивает главный ключ, используя AES-256-GCM. Приложение не сохраняет шаблон открытого текста или отдельный отпечаток шаблона.

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

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

Криптографические параметры
ЦельСтроительство
Главный ключ хранилищаСлучайный 256-битный ключ AES
Упаковка ключейPBKDF2-HMAC-SHA-256 · 600 000 итераций · 128-битная соль → AES-256-GCM
Метаданные и миниатюрыAES-256-GCM · случайный 96-битный одноразовый номер · 128-битный тег аутентификации
Получение ключа файлаHKDF-SHA-256 · случайная 256-битная соль для каждого файла · 256-битный вывод AES
Секрет восстановленияСгенерировано: 18 случайных слов (198 бит); по индивидуальному заказу: не менее 6 отдельных слов и 32–512 символов.

Защита ключей только на устройстве

В iOS блокировка устройства сохраняется как несинхронизирующий элемент Keychain с использованием защиты WhenUnlockedThisDeviceOnly. Он доступен только тогда, когда устройство разблокировано и не переносится через Keychain синхронизацию. Сохраненный секрет не является ключом Secure Enclave.

В Android блокировка устройства шифруется с помощью AES-256-GCM под неэкспортируемым ключом Android Keystore, для которого требуется разблокированное устройство. Зашифрованный файл блокировки находится в каталоге приложения без резервного копирования. Keystore аппаратная поддержка зависит от устройства; приложение не обещает, что каждое устройство использует ключи с аппаратной поддержкой.

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

Конфиденциальность и обнаружение несанкционированного доступа

Метаданные хранилища, метаданные файлов, эскизы и упакованные ключи используют AES-256-GCM со 128-битными тегами аутентификации. Каждое независимое шифрование использует новый случайный 96-битный одноразовый номер. Дешифрование проверяет тег перед возвратом открытого текста; измененный зашифрованный текст или неправильный ключ приводят к сбою аутентификации.

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

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

Большие файлы используют аутентифицированные сегменты.

В собственном шифровании файлов используется потоковая конструкция AES-256-GCM-HKDF-SHA-256, описанная Тинк. iOS использует CryptoKit для AES-GCM и HKDF; Android использует криптографические примитивы платформы. Каждый новый поток имеет 40-байтовый заголовок, содержащий маркер длины, случайную 32-байтовую соль и случайный семибайтовый префикс nonce.

HKDF получает отдельный ключ шифрования файла из главного ключа хранилища. Его контекст включает идентификаторы хранилища и файла, длину открытого текста в байтах и ​​настроенный размер сегмента. 12-байтовый одноразовый номер каждого сегмента объединяет случайный префикс, четырехбайтовый счетчик сегмента и флаг последнего сегмента. Сегменты содержат 128-битные теги GCM.

Собственные приложения обрабатывают файлы ограниченными сегментами размером примерно 5 МБ. Счетчики сегментов, флаг конечного сегмента и ожидаемая длина байтов обнаруживают измененные, переупорядоченные или усеченные сегменты. Каждый сегмент аутентифицируется перед использованием, а приватный предварительный просмотр публикуется только после завершения расшифровки файла. Неполный вывод отбрасывается в случае сбоя; повторные попытки передачи существующих зашифрованных байтов.

Строительство следует за Спецификация потоковой передачи Tink AES-GCM-HKDF. Реализация Revault и конфигурация сегмента не прошли независимый аудит или сертификацию Tink.

Личное хранилище, импорт и предварительный просмотр

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

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

Приватные предварительные просмотры требуют временного открытого текста, пока они открыты. Приложения удаляют временные предварительные просмотры при закрытии, блокировке и последующем запуске; iOS применяет полную защиту файлов к расшифрованным файлам предварительного просмотра. Файлы, явно экспортированные в другое приложение, выходят из-под защиты хранилища. Удаление временных файлов не является гарантией их криминалистического удаления.

Дополнительная встроенная облачная синхронизация

Синхронизация отключена по умолчанию и включается отдельно для каждого хранилища на каждом устройстве. iOS хранит зашифрованные записи и сегменты файлов в частной базе данных пользователя CloudKit в iCloud. Android использует личное appDataFolder пользователя Google Drive. Ни один из видов транспорта не требует учетной записи Revault и не загружает собственные данные синхронизации в веб-облако Revault.

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

Отключение синхронизации останавливает дальнейшую передачу данных для этого хранилища с текущего устройства; существующие зашифрованные облачные копии остаются. Изменения и удаления синхронизации могут распространяться, а одновременные изменения могут потребовать проверки конфликтов. iCloud и Google Drive — это отдельные хранилища без автоматического межплатформенного моста. Используйте зашифрованную телефонную передачу для перемещения между iPhone и Android.

Восстановление - это второй путь к тому же ключу

Revault генерирует одну фразу восстановления, содержащую 18 независимо выбранных слов из связанного списка из 2048 слов, обеспечивая 198 бит случайности. Создание не предлагает пользовательских фраз или регенерации. Фраза независимо получает ключ упаковки, используя PBKDF2-HMAC-SHA-256 и свежую соль, а затем оборачивает главный ключ хранилища с помощью AES-256-GCM. Любой, у кого есть фраза и зашифрованное хранилище, может ее расшифровать. Существующие пользовательские фразы и шестнадцатеричные ключи восстановления остаются совместимыми со своими исходными хранилищами.

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

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

Новые фразы восстановления сохраняют регистр, нормализуют Юникод с помощью NFKC и сворачивают лишние пробелы. Устаревшие шестнадцатеричные ключи продолжают поддерживаться. Вы можете заменить фразу восстановления хранилища в его настройках после сохранения новой фразы. Это заменяет текущую оболочку восстановления; старые резервные копии и устройства, которые не синхронизировались, все еще могут содержать старую оболочку. Изменение шаблона или фразы восстановления не приводит к ротации главного ключа хранилища и не отзывает копии. Если материал ключа скомпрометирован, переместите файлы в новое хранилище со свежими ключами.

Зашифрованная миграция с телефона на телефон

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

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

Блокировка и очистка сеанса

По умолчанию мобильные приложения блокируются сразу же в фоновом режиме и через 60 секунд бездействия. Для каждого хранилища можно выбрать 30 секунд, 1 минуту, 2 минуты, 5 минут или 10 минут. В общем хранилище по умолчанию используется 60-секундный интервал. При выходе возвращается экран шаблона и завершается расшифрованный сеанс.

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

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

Revault Cloud

Revault Cloud — дополнительный поставщик хранилища Pro для межплатформенной синхронизации. Зашифрованные сегменты и зашифрованные метаданные файлов связаны с псевдонимной биллинговой установкой. Служба может отслеживать идентификаторы хранилища, размеры, контрольные суммы, версии и активность передачи, но не получает развернутого ключа хранилища или фразы восстановления. Отдельный код случайного подключения разрешает доступ к хранилищу; для подключения другого устройства также требуется фраза восстановления. Существующие облачные данные остаются доступными для чтения и восстановления после истечения срока действия версии Pro.

Независимые ключи для каждой доли

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

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

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

Собственные средства совместного использования и контроль доступа

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

Межплатформенные общие ресурсы загружают зашифрованные части в службу обмена Revault. Независимые случайные 256-битные возможности чтения и управления хранятся в виде хешей SHA-256. Ссылка на веб-сайт содержит возможность чтения в своем фрагменте, а не секрет расшифровки. При его открытии создается глубокая ссылка на общее хранилище и запрашивается секрет отправителя; никакой личный образец или существующее хранилище не требуется. Личные хранилища остаются запертыми.

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

SHA-256 контрольные суммы проверяют переданные части, а аутентифицированное шифрование проверяет их содержимое. Если экспорт разрешен, зритель может сохранить зашифрованную копию .qvault, которая открывается с общим секретом. Отключение экспорта удаляет это действие приложения; он не может криптографически предотвратить сохранение открытого текста в скриншотах или измененном клиенте. Удаление исходного файла не приводит к отзыву независимо созданного общего ресурса.

Срок после первого доступа

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

Дополнительная активность хранилища

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

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

Дополнительные зашифрованные фотографии взлома

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

Выделенный открытый ключ RSA-3072 содержит новый 256-битный ключ AES-GCM для каждого оповещения с использованием OAEP с SHA-256 и MGF1-SHA-256. Это позволяет шифровать данные, пока хранилище заблокировано. Соответствующий закрытый ключ сам шифруется с помощью главного ключа этого хранилища с выделенным аутентифицированным контекстом. Только разблокировав это хранилище, можно расшифровать его фотографии. Оповещения появляются в представлении аудита независимо от обычной регистрации активности и могут быть удалены в настройках предупреждений о взломе. Они не являются доказательствами, защищенными от подделки.

Safe Exit удаляет локальный доступ

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

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

Safe Exit не гарантируется криминалистическое удаление или сокрытие. Флэш-память, кэши операционной системы, резервные копии и предыдущий экспорт могут сохранять следы. Удаление данных приложения или переустановка могут удалить границу локальной изоляции; Затем облачные записи можно снова обнаружить через собственную облачную учетную запись. Только секрет восстановления может разблокировать эти записи.

Что остается видимым

Шифрование скрывает контент, а не всю оперативную информацию. Локальные записи и поставщики облачных услуг могут отслеживать идентификаторы, взаимосвязи записей, количество объектов, размеры, версии, временные метки, оболочки зашифрованных ключей и заголовки потоков. Идентификаторы используют UUIDv7 и включают информацию о времени создания; они не секреты. Apple или Google могут связать действия встроенной синхронизации с учетной записью платформы.

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

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

Где заканчивается защита

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

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

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

Существующие хранилища браузера

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

Безопасность и архитектура