Архитектура безопасности: Полный технический стек
Vaultaire не полагается на какой-то один алгоритм или один хитрый трюк. Он использует многоуровневую криптографическую архитектуру, в которой каждый компонент выполняет определенную задачу, и отказ любого одного уровня не ставит под угрозу другие. Здесь собраны все шифры, протоколы и конструктивные решения, которые стоят между вашими личными данными и остальным миром.
Хранилище использует AES-256-GCM для шифрования с проверкой подлинности в индексах хранилища, упакованных ключах, заголовках файлов, содержимом, миниатюрах и метаданных. PBKDF2-HMAC-SHA512 извлекает локальный ключ хранилища из шаблона и общеустройства Keychain соль. Этот ключ хранилища содержит отдельный случайный 256-битный главный ключ, который выполняет шифрование файла посредством CryptoKit в процессе приложения.
Криптографический стек
Vaultaire использует несколько согласованно работающих криптографических механизмов, каждый из которых выбран для конкретной задачи. PBKDF2 превращает учетные данные человека в хранилище или ключ восстановления. AES-256-GCM защищает индексы, оболочки, метаданные, миниатюры и содержимое файлов. Случайный главный ключ отделяет долговременное шифрование файлов от изменяемого шаблона. Keychain и iOS Защита данных защищает связанные с устройством записи соли и восстановления, пока устройство заблокировано. Никакой ключ дешифрования, хранящийся у поставщика, не дает разработчику обычного доступа к открытому тексту хранилища.
Это не сложность сама по себе. Каждый уровень предназначен для различных поверхностей атаки. AES-256-GCM сочетает конфиденциальность с аутентификацией, поэтому измененный зашифрованный текст не проходит проверку. PBKDF2 повышает стоимость тестирования каждого шаблона или фразы. Случайный главный ключ означает, что при изменении шаблона можно перезаключить один ключ вместо повторного шифрования каждого файла. Keychain защита данных защищает локальные записи соли и восстановления, в то время как приложение по-прежнему признает, что симметричное шифрование происходит в памяти процесса.
Вместе эти уровни образуют архитектуру глубокоэшелонированной защиты, но не все они являются независимыми барьерами. Угаданный шаблон можно проверить по имени индексного файла и AES-GCM аутентификацию, а скомпрометированное разблокированное устройство может наблюдать ключи или открытый текст в процессе приложения. Таким образом, архитектура зависит от энтропии учетных данных, PBKDF2 стоимость, iOS защита устройства и правильная обработка шифрования с проверкой подлинности, а также надежность самого AES.
Думайте об иерархии Vaultaire как о наборе вложенных заблокированных контейнеров. Полученный из шаблона ключ от хранилища открывает аутентифицированный индекс. Индекс выпускает обернутый случайный главный ключ. Этот главный ключ защищает файлы и метаданные. PBKDF2, AES-GCM, Keychainи iOS Защита данных имеет разные свойства, но требования безопасности сильны только на уровне всей цепочки.
AES-256-GCM: Шифрование файлов
Каждая фотография, видео и документ, хранящиеся в Vaultaire, зашифрованы с помощью AES-256-GCM — Расширенный стандарт шифрования с 256-битным ключом в Галуа/Режим счетчика. Vaultaire также использует AES-GCM для индексов хранилища, заголовков файлов, миниатюр и конвертов ключей. Алгоритм и размер ключа стандартизированы; Безопасность Vaultaire по-прежнему зависит от обработки одноразовых номеров, управления ключами, надежности учетных данных и правильности реализации.
“256” в AES-256 относится к длине ключа в битах. 256-битный ключ имеет 2256 возможные значения. Для сравнения: их примерно 1080 атомов в наблюдаемой Вселенной. Если бы каждый атом был суперкомпьютером, проверяющим миллиард ключей в секунду, работающим со времен Большого взрыва, они бы исследовали менее триллионной триллионной доли одного процента пространства ключей. AES-256 не будет подвергаться грубому перебору. Не сегодня. Не в этом веке. Не раньше, чем погаснут звезды.
Почему важен режим GCM
AES, это блочный шифр., шифрует данные 128-битными фрагментами. Режим “mode” определяет, как объединяются эти фрагменты. GCM (режим Галуа/счетчика) предоставляет две вещи, которых нет в более простых режимах, таких как CBC: параллельное шифрование и встроенную аутентификацию.
Часть аутентификации имеет решающее значение. GCM генерирует криптографический тег для каждого зашифрованного файла. Эта бирка действует как защитная пломба. Если хотя бы один бит зашифрованного текста, будет изменен злоумышленником или поврежденным сектором диска, тег аутентификации не будет совпадать, и расшифровка завершится неудачно. Вы не получите поврежденных данных. Вы получаете четкий сигнал, что что-то не так. Это свойство называется аутентифицированным шифрованием и предотвращает целый класс атак, при которых злоумышленник изменяет зашифрованные данные для манипулирования расшифрованными выходными данными.
PBKDF2: получение ключа
Vaultaire получает разные ключи для разных задач. Шаблон и масштаб всего устройства Keychain соль кормовая PBKDF2-HMAC-SHA512 за 600 000 итераций для создания локального ключа хранилища. При детерминированном построении шаблона создается отдельный ключ облачной резервной копии. Нормализованная фраза восстановления проходит через 800 000 PBKDF2 итераций для создания ключа для конверта восстановления. Ни один из этих выводов не превращает человеческие учетные данные в 256 бит энтропии только потому, что длина вывода составляет 256 бит.
Как PBKDF2 защищает ваш шаблон
Основная идея, лежащая в основе PBKDF2 это целенаправленная работа. Он берет сериализованный шаблон или нормализованную фразу и запускает сотни тысяч HMAC-SHA512 итерации. Законный пользователь платит эту стоимость один раз во время попытки разблокировки или восстановления. Злоумышленник платит за каждого кандидата, хотя выбор параллельного оборудования и реализации определяет реальную вероятность угадывания.
Vaultaire настраивает PBKDF2 с 600 000 итераций для ключей, полученных из шаблона. Это делает каждое предположение более дорогостоящим, но ответственная оценка атаки должна содержать измеренное время на каждого кандидата и предположения об оборудовании. При точности 1 мс на кандидата 1 000 000 000 последовательных предположений занимают около 11,6 дней, а не лет. 256-битный результат не увеличивает энтропию предсказуемого шаблона.
Для получения локального шаблона используется одна криптографически случайная соль для устройства, хранящаяся как WhenUnlockedThisDeviceOnly. Keychain предмет. Соль не является секретной и используется всеми хранилищами на этом устройстве. Это предотвращает применение таблицы, созданной для одного устройства, непосредственно к другому устройству с другой солью, но не заставляет злоумышленника начинать заново для каждого хранилища на одном и том же устройстве.
AES-256-GCM: Защита метаданных
Шифрование содержимого файла недостаточно. Имена файлов, даты создания, размеры миниатюр и структура хранилища, все это метаданные, и метаданные могут быть столь же информативными, как и сами данные. Файл с именем “tax-return-2025.pdf” точно сообщает злоумышленнику, что находится внутри, даже если его содержимое зашифровано. Временная метка показывает, когда вы использовали хранилище. Размер миниатюры показывает, является ли что-то фотографией или видео.
Vaultaire защищает эти метаданные с помощью AES-256-GCM, а не ЧаЧа20. Имена файлов и MIME типы кодируются в зашифрованные заголовки файлов. Зашифрованный индекс хранилища содержит записи файлов, даты, информацию о размере, схему хранения и упакованный главный ключ. Данные миниатюр также шифруются случайным главным ключом.
Почему шифрование метаданных с аутентификацией?
Метаданные нуждаются в целостности и конфиденциальности. AES-GCM создает тег аутентификации для каждого зашифрованного значения, поэтому Vaultaire может отклонить измененный заголовок, индекс, миниатюру или конверт вместо того, чтобы принимать открытый текст, контролируемый злоумышленником. В конструкции намеренно используется одна конструкция шифрования с проверкой подлинности для всех этих форматов хранения, а не заявлено криптографическое разнообразие, которого реализация не обеспечивает.
Один и тот же шифр не означает, что один и тот же ключ или одноразовый номер повторно используются вслепую. Ключ хранилища защищает индекс и оборачивает случайный главный ключ; главный ключ защищает материал файла. CryptoKit создает аутентифицированные запечатанные коробки со свежими одноразовыми номерами, в то время как потоковый формат Vaultaire извлекает отдельный одноразовый номер для каждого заказанного фрагмента. Соответствующие гарантии исходят от разделения ключей, дисциплины одноразовых номеров и аутентификации, а не от второго шифра метаданных.
Архитектура с нулевым разглашением данных
Вот вопрос, который стоит задать о любом приложении безопасности: что произойдет, если компания, стоящая за ним, будет взломана, вызвана в суд или просто станет вредоносной?
Для большинства приложений ответ неудобен. Они хранят ваши данные, ваши ключи или и то, и другое. Решение суда обязывает их передать его. Утечка данных раскрывает это. К нему получил доступ мошеннический сотрудник. Безопасность приложения ’ настолько сильна, насколько надежна операционная безопасность компании ’, и история показывает, что компании регулярно подвергаются взлому.
Vaultaire не управляет учетной записью или службой хранения, которая получает ваш шаблон, секретную фразу, ключи дешифрования или читаемое содержимое хранилища. Шифрование и дешифрование происходят в процессе приложения на вашем устройстве. Когда iCloud резервное копирование включено, приложение отправляет аутентифицированный зашифрованный текст на ваш личный CloudKit базу данных, а не в службу хранилища, контролируемую Vaultaire.
Что означает отсутствие знаний на практике
Если правоохранительный орган вручит Vaultaire повестку в суд с требованием открытого текста хранилища, компания не будет хранить шаблон, фразу восстановления, ключ хранилища, резервный ключ или главный ключ, необходимые для его расшифровки. Зашифрованный iCloud записи живут в памяти пользователя CloudKit частная база данных. Однако на устройстве материалы для восстановления хранятся в зашифрованном виде. Keychain базе данных, а симметричные ключи существуют в памяти приложения, в то время как CryptoKit шифрует или расшифровывает открытое хранилище.
Эта граница провайдера является архитектурным свойством, а не обещанием того, что каждая часть клиентской среды находится за пределами модели доверия. У Vaultaire нет серверного ключа расшифровки, который он мог бы предоставить для обычного восстановления хранилища. Поставленное приложение, iOS, разблокированное устройство и криптографическая реализация по-прежнему могут обрабатывать читаемые данные, и им необходимо соответственно доверять.
Граница поставщика Vaultaire исключает ключ дешифрования, хранящийся в компании, из обычного дизайна. Это уменьшает то, что может раскрыть взлом самого Vaultaire. Это не устраняет необходимости доверять отправленному клиенту, iOS, состояние устройства или реализация документированной иерархии ключей. Эти границы следует оценивать отдельно, а не превращать их в абсолютные обещания.
Keychain и граница приложения и процесса
Apple Secure Enclave может защищать поддерживаемые закрытые ключи и участвует в некоторых частях архитектуры безопасности платформы, но его общедоступные API не допускают произвольных PBKDF2-получить симметричный ключ и выполнить операцию Vaultaire AES-GCM файловые операции внутри сопроцессора. Поэтому Vaultaire не описывает свой шифр хранилища как Secure Enclave АЕС.
Vaultaire использует обычные iOS Keychain элементы общего пароля для случайной соли устройства, зашифрованной базы данных восстановления и случайного ключа, защищающего эту базу данных. Эти элементы используют класс доступности WhenUnlockedThisDeviceOnly. Keychain и Защита данных создают значимую границу устройства, особенно когда телефон заблокирован, но эта архитектура отличается от неэкспортируемой. Secure Enclave ключ.
Когда вы рисуете узор, CommonCrypto получает ключ хранилища в процессе приложения. CryptoKit а CryptoEngine от Vaultaire затем использует в этом процессе байты симметричного ключа для аутентификации и расшифровки индекса, развертывания главного ключа и обработки файлов. Приложение очищает активное состояние при блокировке, но у злоумышленника с достаточными привилегиями, наблюдающего за разблокированным сеансом, есть другая возможность, чем у экзаменатора, имеющего только зашифрованный текст заблокированного устройства.
Взломанная или иным образом скомпрометированная операционная система может быть нацелена на ввод шаблонов, память приложения, расшифрованные предварительные просмотры, экспорт или экран. Vaultaire рекомендует текущую версию, не взломанную iPhone потому что дизайн основан на iOS изоляция процесса, Keychainи Защита данных. Он не утверждает, что компрометация корня делает симметричные ключи открытого хранилища недоступными.
Векторы инициализации каждого файла
Когда вы зашифровываете два идентичных файла одним и тем же ключом, простая реализация создаст идентичный зашифрованный текст. Это проблема. Злоумышленник, увидевший два одинаковых зашифрованных объекта, знает, не расшифровывая, что два исходных файла одинаковы. В хранилище, полном фотографий, такой анализ закономерностей может выявить информацию даже посредством шифрования.
Vaultaire предотвращает детерминированный зашифрованный текст, генерируя новый криптографический одноразовый номер для каждого AES-256-GCM операция герметизации. Заголовки и содержимое файлов запечатываются отдельно, а большие файлы используют формат аутентифицированной потоковой передачи со случайным базовым одноразовым номером и отдельным одноразовым номером для каждого упорядоченного фрагмента. Таким образом, две копии одной и той же фотографии не создают одно и то же зашифрованное представление.
Нонсы хранятся вместе с шифротекстом и не являются секретными; требование безопасности состоит в их уникальности для данного ключа. Vaultaire запрашивает 96-битные нонсы у криптографического генератора случайных чисел Apple для однопроходного шифрования и записывает базовый нонс в потоковый заголовок. Риск коллизии зависит от числа шифрований одним ключом, поэтому реализация генерирует новое значение, а не представляет 96-битный размер как фиксированную пожизненную гарантию вероятности один к 296.
Управление памятью: очистка состояния активного ключа
Распространенной ошибкой программного обеспечения безопасности является сохранение конфиденциальных данных в памяти после того, как они больше не нужны. Ключи шифрования, производные пароли и расшифрованные данные могут сохраняться в оперативной памяти еще долгое время после того, как приложение завершит их использование. Криминалистические инструменты могут создавать дамп памяти устройства и искать эти остатки., метод, известный как атака с холодной загрузкой или анализ дампа памяти.
Vaultaire ограничивает продолжительность доступности активного состояния ключа и расшифрованных данных пользовательского интерфейса. Когда приложение блокируется или сеанс разрывается, его код следует нескольким путям очистки:
- Активное состояние хранилища удалено. Приложение удаляет текущий сеанс доступа к ключу хранилища и требует повторной разблокировки перед представлением содержимого хранилища.
- Обертки ключей очищают принадлежащие им буферы. Безопасные байтовые контейнеры Vaultaire перезаписывают принадлежащие им буферы при освобождении этих контейнеров.
- Состояние кэшированного главного ключа становится недействительным. Дешифрованный главный ключ, хранящийся для открытого индекса, отбрасывается на соответствующих путях блокировки и сброса кэша.
- Расшифрованные кэши пользовательского интерфейса очищаются там, где они контролируются Vaultaire. Очистка миниатюр и предварительного просмотра уменьшает остаточное состояние приложения, не требуя контроля над каждой копией, сделанной Swift. iOSили другой процесс.
В следующий раз, когда Vaultaire откроется в заблокированном состоянии, вы рисуете шаблон, и приложение снова получает ключ хранилища, прежде чем оно сможет аутентифицировать индекс и развернуть главный ключ. Это очистка сеанса, а не утверждение, что каждая временная копия памяти подверглась доказуемой многопроходной очистке или что Secure Enclave ключевая ссылка была уничтожена. Авария вызывает iOS чтобы восстановить процесс, но код очистки не может запускаться после каждого внезапного завершения.
Часто задаваемые вопросы
Действительно ли AES-256 нерушим?
AES-256 представляет собой стандартизированный, тщательно проанализированный блочный шифр. Никаких практических атак на правильно реализованные AES-256-GCM со случайным 256-битным ключом общеизвестно, но это не делает хранилище неуязвимым. энтропия учетных данных, PBKDF2 стоимость, обработка одноразовых номеров, хранение ключей, восстановление, состояние устройства и недостатки реализации остаются путями атаки.
Зачем использовать PBKDF2 для получения ключа?
Хранилище использует PBKDF2-HMAC-SHA512 через CommonCrypto: 600 000 итераций для шаблонов и 800 000 для фраз восстановления. При формировании локального шаблона используется одна случайная соль для всего устройства, хранящаяся в Keychain. PBKDF2 увеличивает стоимость каждого предположения, но не добавляет энтропии к шаблону, поэтому время атаки зависит от надежности учетных данных, измеренной скорости оборудования и параллелизма.
Какие данные Vaultaire отправляет на свои серверы?
Нет. Vaultaire не имеет серверов, которые получают ваши данные. Если вы включите резервное копирование iCloud, ваши зашифрованные данные будут храниться в вашей личной учетной записи iCloud, в зашифрованном виде, прежде чем они покинут ваше устройство с ключами, которыми не обладает Apple. Vaultaire компания никогда не получает, не обрабатывает и не хранит какие-либо пользовательские данные, зашифрованные или иным образом.
Может ли взломанный iPhone поставить под угрозу мое хранилище?
Джейлбрейк существенно ослабляет границы устройства. Волтер AES-GCM операции выполняются в процессе приложения через CryptoKit, поэтому байты симметричного ключа существуют в памяти приложения, пока хранилище открыто. Компрометация корневого уровня может быть нацелена на входные данные, память, снимки экрана или расшифрованные выходные данные. Keychain и Data Protection по-прежнему добавляют барьеры, пока устройство заблокировано, но Vaultaire не утверждает, что его ключи AES остаются изолированными внутри. Secure Enclave.
Как шифруются метаданные?
Vaultaire не использует ChaCha20 для метаданных хранилища. Имена файлов, MIME типы, временные метки, миниатюрные данные, структура хранилища и завернутый главный ключ защищены внутри AES-256-GCM аутентифицированный зашифрованный текст. Использование одной аутентифицированной конструкции обеспечивает единообразие проверок конфиденциальности и целостности во всем формате хранения.
Что произойдет с моими ключами, если приложение выйдет из строя?
iOS восстанавливает прерванный процесс, и при следующем запуске потребуется новая разблокировка, прежде чем Vaultaire восстановит активное состояние ключа. Vaultaire не создает на уровне сеанса Secure Enclave Ссылки AES. В то время как его оболочки ключей очищают свои буферы при освобождении, а пути блокировки теряют активное состояние, Swift и iOS не оправдывайте гарантию того, что каждая временная копия была перезаписана перед сбоем.
Посмотрите стек в действии
Шифрование с аутентификацией, многоуровневые ключи, дорогостоящее создание и отсутствие ключа хранилища, хранящегося у поставщика. Загрузите Vaultaire, чтобы использовать описанную здесь архитектуру с четко указанными границами устройства и учетных данных.
Скачать Vaultaire Бесплатно