Шифрование паттерном: Как рисование фигуры защищает ваши файлы
Вы рисуете узор пальцем. PBKDF2 превращает этот жест в ключ хранилища, который открывает отдельный случайный ключ, защищающий ваши файлы с помощью AES-256-GCM. Нет поля пароля, нет короткого PIN-кода. Только ваш шаблон и намеренно многоуровневая иерархия ключей.
Vaultaire сериализует фигуру, нарисованную на сетке 5×5, и обрабатывает ее с помощью PBKDF2-HMAC-SHA512, 600 000 итераций и соль для всего устройства, хранящаяся в iOS Keychain. 256-битный результат представляет собой ключ хранилища: он шифрует индекс хранилища и разворачивает отдельный случайный главный ключ, который AES-256-GCM использует для содержимого файла и метаданных.
Что такое Шифрование паттерном?
Большинство приложений хранилища скрываются за PIN-кодом или паролем. Вы вводите четыре цифры, и появляются ваши фотографии. Звучит достаточно безопасно, не так ли?
Вот в чем проблема: четырехзначный PIN-код имеет ровно 10 000 возможных комбинаций. Компьютер может попробовать каждое из них менее чем за секунду. Шесть цифр? Миллион комбинаций. Все еще тривиально быстро для современного оборудования. Даже восьмизначный пароль, если в нем используются только строчные буквы, дает вам около 200 миллиардов возможностей. Это звучит как много, пока вы не узнаете, что стандартный ноутбук может проверять миллиарды хэшей паролей в секунду.
Шифрование шаблонов использует принципиально иной подход. Вместо того, чтобы вводить символы в поле, вы рисуете геометрическую фигуру по сетке точек. Конкретный путь, который вы прослеживаете (к каким точкам вы прикасаетесь, в каком порядке и с какой геометрией), становится входными данными для функции получения ключа на основе пароля. Результат не просто проверяется интерфейсом: он должен разблокировать аутентифицированный зашифрованный индекс и случайный главный ключ внутри него.
Различие имеет значение. Когда вы вводите PIN-код в некоторых приложениях, оно только проверяет, правильно ли вы набрали номер. Если вы это сделали, он откроется, хотя файлы могут быть защищены главным образом контролем доступа. Вместо этого Vaultaire передает нарисованный узор в PBKDF2 для получения 256-битного ключа хранилища. Этот ключ должен аутентифицировать и расшифровать индекс хранилища, прежде чем он сможет раскрыть случайный главный ключ, используемый для файлов. Нераспознанный шаблон представлен как пустое хранилище, но лежащий в его основе AES-GCM аутентификация по-прежнему отличает правильный ключ от неправильного.
Шлюз доступа на основе PIN-кода может быть похож на запертую дверь, расположенную перед читаемыми в противном случае файлами. Схема Vaultaire ближе к комбинации в сейфе: она извлекает ключ, открывающий зашифрованный индекс, который, в свою очередь, высвобождает отдельный ключ, защищающий содержимое. Интерфейс не может просто обойти эту криптографическую цепочку.
Как это работает, шаг за шагом
Вот что происходит с момента прикосновения пальца к экрану до момента, когда ваши файлы становятся нечитаемыми для всех остальных.
Шаг 1. Вы рисуете узор
Vaultaire представляет собой сетку точек 5×5. Вы рисуете непрерывный путь, соединяющий не менее 6 точек как минимум с двумя изменениями направления. Приложение записывает, какие именно точки вы посетили и в каком порядке. Эта последовательность — ваш шаблон.
В отличие от сетки 3×3, обычно используемой для экранов блокировки Android, Vaultaire использует сетку 5×5. Это не косметический выбор. Двадцать пять позиций позволяют использовать гораздо больше путей, пересечений, пропусков и изменений направления, чем девять позиций. Большее теоретическое пространство помогает, но реальная безопасность по-прежнему зависит от непредсказуемости выбранного вами пути. Знакомая буква или простая форма остаются угадываемыми, даже если сетка может выражать миллиарды альтернатив.
Шаг 2. Шаблон создает ключ хранилища
Нарисованный вами шаблон сериализуется с размером сетки и передается в PBKDF2 (Функция получения ключа на основе пароля 2) с HMAC-SHA512, 600 000 итераций и случайная соль для всего устройства. Соль — это несекретное значение, хранящееся в iOS Keychain как элемент WhenUnlockedThisDeviceOnly. Это делает локальное деривирование привязанным к устройству; оно не уникально для каждого хранилища и не добавляет энтропии к шаблону, выбранному человеком.
Процесс получения ключа намеренно дорог. PBKDF2 пробег 600 000 HMAC-SHA512 итераций для каждого шаблона-кандидата, что увеличивает стоимость атаки угадывания. Это не превращает шаблон с низкой энтропией в 256 бит безопасности, а время атаки зависит от оборудования злоумышленника. Его цель более узкая и измеримая: сделать каждое предположение существенно более дорогим, чем простой хэш.
Шаг 3. Ваши файлы зашифрованы
При первом создании хранилища Vaultaire генерирует случайный 256-битный главный ключ. Ключ хранилища, полученный из шаблона, шифрует индекс и оборачивает этот главный ключ; он не шифрует каждый файл напрямую. Мастер-ключ используется с AES-256-GCM для заголовков файлов, содержимого, миниатюр и связанных метаданных. Новые одноразовые номера гарантируют, что повторяющийся открытый текст не создает повторяющийся зашифрованный текст под одним и тем же ключом.
Режим GCM добавляет важный уровень: аутентификацию. Он не просто шифрует ваши данные, он также генерирует тег, который обнаруживает любое вмешательство. Если один бит зашифрованного файла будет изменен, расшифровка завершится неудачей. Никто не сможет изменить ваши файлы без вашего ведома.
Шаг 4. Состояние активного ключа очищается
Когда Vaultaire блокируется, он очищает свое активное хранилище и состояние главного ключа и требует еще одной церемонии разблокировки, прежде чем снова отобразить файлы. Пока хранилище открыто, эти байты симметричного ключа обязательно существуют в процессе приложения, поэтому CryptoKit может выполнять AES-GCM операции. Vaultaire также хранит информацию для восстановления, включая шаблон и зашифрованный конверт для восстановления, в AES-GCM зашифрованная база данных, хранящаяся в iOS Keychain. Это существенно отличается от утверждения, что шаблон и каждая копия ключа нигде не хранятся.
Математика, стоящая за этим (на простом английском языке)
Вам не нужна степень в области компьютерных наук, чтобы понять, почему это работает. Безопасность сводится к трем числам: сколько возможных шаблонов, сколько времени занимает каждое предположение и сколько предположений может сделать злоумышленник.
Энтропия: мера непредсказуемости
Энтропия, это красивое слово для “, насколько сложно это угадать. ” Подбрасывание монеты имеет 1 бит энтропии (два результата). Четырехзначный PIN-код имеет около 13 бит энтропии (10 000 исходов). Хорошо выбранный шаблон на сетке 5×5, соединяющий 8 или более точек, может превысить 30 бит энтропии, более чем миллиарда возможных шаблонов.
Энтропия паттерна устанавливает потолок для угадывающей атаки. PBKDF2 не может создать энтропию, которой не содержит жест, но может сделать тестирование каждого кандидата намного дороже.
Получение ключа: догадки обходятся дорого
PBKDF2 берет серийный образец и запускает 600 000 раундов HMAC-SHA512. При оценке атаки необходимо использовать измеренную стоимость оборудования, выполняющего угадывание: ровно 1 мс на одного полного кандидата, для 1 000 000 000 кандидатов потребуется 1 000 000 с, или около 11,6 дней, на 1 работника. При более медленном измерении стоимости кандидата это время увеличивается; параллельное оборудование уменьшает его. Выходная длина в 256 бит не меняет размер пространства поиска шаблонов.
Соль для всего устройства хранится в Keychain и не предназначен для секретности. Keychain и iOS Защита данных может затруднить извлечение в случае захвата устройства, но криптографический анализ должен предполагать, что эксперт, получивший зашифрованные файлы, также может получить соль. Соль предотвращает предварительные вычисления на разных устройствах; это не замена сильной модели.
AES-256: Стандарт, которому доверяют правительства
AES-256, это стандарт шифрования, используемый правительством США для секретной информации. “256” относится к длине ключа в битах. 256-битный ключ имеет 2256 возможные значения, число настолько большое, что если бы каждый атом в наблюдаемой вселенной был компьютером и каждый компьютер мог проверять триллион ключей в секунду, они все равно не взломали бы его до тепловой смерти вселенной.
Безопасность AES-256 не зависит от сохранения алгоритма в секрете. Но вся система защищена не только пространством ключей AES: практическая граница угадывания определяется энтропией шаблона, PBKDF2 фактор работы, а также защита устройства и зашифрованное хранилище. AES-256-GCM обеспечивает надежное шифрование с аутентификацией после разблокировки правильного случайного главного ключа.
What an Attack Would Have to Overcome
Давайте рассмотрим основные способы, которыми кто-то может попытаться получить доступ к вашим зашифрованным файлам, что делает Vaultaire для повышения стоимости и где сохраняются ограничения.
Грубая сила: пробуем каждый шаблон
PBKDF2 заставляет каждого кандидата на образец платить по 600 000 HMAC-SHA512 итерации. Это значимая защита, но не обещание фиксированного количества лет: результат зависит от выбора шаблона, измеренной скорости вывода, параллелизма и того, восстановил ли исследователь соль устройства. Более длинные и менее предсказуемые пути имеют значение, потому что PBKDF2 увеличивает стоимость предположения, а не создает новую энтропию.
Размазывание: чтение с экрана
На сетке 3×3 размытые пятна на экране могут значительно сузить возможные шаблоны. На сетке 5×5 рисунок размазывания показывает, какие точки были затронуты, но не порядок, направление или связи между ними. Комбинаторный взрыв делает этот подход непрактичным.
Серфинг на плечах: наблюдаю, как ты рисуешь
Узоры, быстро нарисованные на маленьком экране телефона, чрезвычайно сложно запомнить путем наблюдения, особенно на сетке 5×5. Исследования показывают, что наблюдателям гораздо труднее воспроизвести сложные шаблоны по сравнению с подслушиванием произнесения вслух PIN-кода или пароля.
Изъятие устройства: изъятие вашего телефона
Если кто-то заберет ваш телефон, содержимое файлов и индексы Vaultaire останутся. AES-GCM зашифровать текст до тех пор, пока не будут доступны необходимые ключи. Приложение не хранит обычную запись для проверки пароля, но это не удаляет автономную проверку. Имя файла каждого зашифрованного индекса хранилища содержит усеченный хеш ключа хранилища и AES-GCM расшифровка с аутентификацией также успешна или неудачна для потенциального ключа. Таким образом, защита устройств и надежность шаблонов остаются частью модели угроз.
Отдельный хэш пароля не требуется для проверки предположения на основе аутентифицированного зашифрованного текста. Волтер AES-GCM теги обеспечивают надежный результат успешной или неудачной проверки, а имя индексного файла обеспечивает более дешевую предварительную проверку. Защита — это стоимость и непредсказуемость полномочий плюс iOS защита местного материала, а не отсутствие проверяющего оракула.
Выбор сильной модели
Стойкость шифрования зависит от выбранного вами шаблона. Вот как можно максимизировать вашу безопасность с минимальными усилиями.
Что делает паттерн сильным
- Используйте больше точек.Соедините не менее 8 из 25 доступных точек. Каждая дополнительная точка умножает количество возможных шаблонов.
- Перейди свой путь.Узоры, которые зацикливаются, пропускают точки или неожиданно меняют направление, гораздо труднее воспроизвести по памяти или наблюдению.
- Избегайте очевидных форм.Буквы (L, Z, S), простые геометрические фигуры (квадраты, треугольники) и прямые линии, это первое, что может попробовать злоумышленник.
- Использовать полную сетку.Шаблоны, которые остаются в одном углу или вдоль одного края, теряют имеющуюся энтропию. Распространитесь.
Чего следует избегать
- Выкройки минимальной длины. Vaultaire требует как минимум 6 точек и две смены направления, но достижение минимума не делает путь непредсказуемым. Используйте большую часть сетки, если вы можете надежно запомнить результат.
- Простые геометрические фигуры.L-образная форма, зигзаг или прямая диагональная линия являются эквивалентами шаблона “password123.”.
- Каждый раз начиная с одного и того же угла.Исследование шаблонов блокировки Android показывает, что большинство людей начинают с верхней левой точки. Злоумышленники это знают.
Золотая середина
Узор, соединяющий 8–12 точек как минимум с двумя изменениями направления, обеспечивает отличную безопасность, но при этом его легко запомнить благодаря мышечной памяти. Вам не нужно запоминать его, как пароль, : ваша рука запоминает движение, так же, как она запоминает, как написать вашу подпись.
Почему вы должны чувствовать себя в безопасности
Шифрование шаблонов в Vaultaire — это не просто красивый PIN-пад. Жест обрабатывается реальной функцией получения ключа и должен разблокировать проверенные зашифрованные данные. Его сила по-прежнему зависит от выбранного вами жеста, поэтому Vaultaire сочетает в себе более крупную сетку с высокой PBKDF2 коэффициент работы вместо представления 256-битной выходной длины как 256 бит человеческой тайной энтропии.
Ваш графический ключ и локальный ключ хранилища не отправляются в Vaultaire. Если включено дополнительное резервное копирование, шифруется отдельный резервный ключ на основе шаблона. CloudKit записи и зашифрованный манифест восстановления позволяют фразе восстановления восстановить хранилище и резервные ключи. У Vaultaire нет ключа поставщика, который расшифровывает эти записи, но устройство и учетные данные для восстановления остаются критически важными для безопасности частями конструкции.
Вы рисуете фигуру. Эта форма защищает ваши файлы. Остальное сделает математика.
Часто задаваемые вопросы
Что произойдет, если я забуду свой графический ключ?
Когда вы создаете хранилище, Vaultaire генерирует собственное предложение восстановления, содержащее 9 отдельных слов. PBKDF2 извлекает из этого предложения ключ восстановления, который открывает зашифрованный конверт, содержащий ключ хранилища. Если вы потеряете и шаблон, и фразу восстановления, у Vaultaire нет серверного ключа, который мог бы восстановить хранилище.
Действительно ли шаблон более безопасен, чем пароль?
Хорошо выбранный шаблон в сетке 5×5 может соответствовать или превосходить энтропию типичного пароля. Преимущество, удобство использования: люди выбирают слабые пароли, потому что надежные трудно запомнить. Шаблоны усиливают мышечную память, что делает естественным использование сложных шаблонов без сознательного запоминания.
Может ли кто-нибудь сделать снимок экрана или записать мой шаблон?
Vaultaire применяет к сетке узоров защитную маску для скриншотов и реагирует, когда iOS сообщает об активном захвате экрана. iOS не предоставляет общедоступный флаг безопасного экрана для произвольного содержимого приложения, поэтому эти элементы управления уменьшают случайный захват, но не могут гарантировать, что каждый метод захвата заблокирован.
Какой алгоритм шифрования использует Vaultaire?
Хранилище использует PBKDF2-HMAC-SHA512 с 600 000 итераций для получения ключа хранилища на основе шаблона и общеустройства Keychain соль. Этот ключ хранилища шифрует индекс хранилища и оборачивает случайный 256-битный главный ключ. AES-256-GCM под главным ключом защищает содержимое файла, заголовки, метаданные и миниатюры с помощью аутентифицированного шифрования.
Сохранен ли рисунок на моем устройстве?
Vaultaire хранит информацию для восстановления, включая шаблон, внутри AES-GCM зашифрованная база данных восстановления, хранящаяся в iOS Keychain. Шаблон не отправляется в Vaultaire и не сохраняется в текстовых файлах. Пока хранилище открыто, ключевые байты существуют в процессе приложения; блокировка удаляет активное состояние ключа Vaultaire.
Может ли Vaultaire получить доступ к моим зашифрованным файлам?
Vaultaire не управляет службой, которая получает ваш шаблон, фразу восстановления, ключи дешифрования или читаемое содержимое хранилища. Зашифрованный iCloud резервные копии остаются в вашей личной CloudKit база данных. Эта граница поставщика не защищает открытое хранилище от скомпрометированной сборки приложения, операционной системы или устройства.
Попробуйте Шифрование паттерном
Нарисуйте свой первый шаблон и посмотрите, каково это, иметь по-настоящему защищенные файлы.
Скачать Vaultaire Бесплатно