Шифрування візерунком: як намальована фігура захищає ваші файли
Ти малюєш візерунок пальцем. 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 тис 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 забезпечує надійне автентифіковане шифрування після розблокування правильного випадкового головного ключа.
Чому зламати це неможливо
Давайте розглянемо основні способи, якими хтось може спробувати отримати доступ до ваших зашифрованих файлів, що робить Vaultaire, щоб збільшити вартість, і де залишаються обмеження.
Перебір: спроба кожного візерунка
PBKDF2 змушує кожного кандидата платити 600 000 HMAC-SHA512 ітерації. Це значущий захист, але не обіцянка фіксованої кількості років: результат залежить від вибору шаблону, виміряної швидкості виведення, паралелізму та того, чи знайшов експерт сіль пристрою. Довші, менш передбачувані шляхи мають значення, тому що PBKDF2 підвищує припущену вартість, а не створює нову ентропію.
Аналіз слідів від пальців: читання екрана
На сітці 3×3 сліди на екрані можуть суттєво звузити можливі варіанти. На сітці 5×5 слід показує лише, яких точок торкнулися, але не порядок, напрямок або з'єднання між ними. Комбінаторний вибух робить такий підхід практично неможливим.
Підглядання: спостереження за малюванням
Візерунки, намальовані швидко на маленькому екрані телефону, надзвичайно важко запам'ятати шляхом спостереження, особливо на сітці 5×5. Дослідження показують, що спостерігачам набагато складніше відтворити складні візерунки порівняно з підслуховуванням PIN-коду або пароля.
Вилучення пристрою: забирають ваш телефон
Якщо хтось забере ваш телефон, вміст і індекси файлів Vaultaire залишаться AES-GCM зашифрований текст, доки необхідні ключі не будуть доступні. Програма не зберігає звичайний запис перевірки пароля, але це не видаляє офлайн-перевірку. Ім’я файлу кожного зашифрованого індексу сховища містить усічений хеш ключа сховища та AES-GCM автентифіковане дешифрування також успішне або невдале для ключа-кандидата. Тому захист пристрою та міцність шаблону залишаються частиною моделі загроз.
Окремий хеш пароля не потрібен для перевірки припущення на автентифікований зашифрований текст. Vaultaire AES-GCM теги забезпечують високовпевнений результат успішного або невдалого виконання, а назва файлу індексу забезпечує дешевшу попередню перевірку. Захист — це вартість і непередбачуваність облікових даних плюс iOS захист місцевого матеріалу, а не відсутність оракула перевірки.
Вибір надійного візерунка
Шифрування настільки надійне, наскільки надійний ваш візерунок. Ось як максимізувати безпеку з мінімальними зусиллями.
Що робить візерунок надійним
- Використовуйте більше точок. З'єднуйте щонайменше 8 з 25 доступних точок. Кожна додаткова точка множить кількість можливих візерунків.
- Перетинайте свій шлях. Візерунки з петлями, пропуском точок або несподіваними змінами напрямку набагато складніше відтворити з пам'яті або за спостереженням.
- Уникайте очевидних форм. Літери (Г, Z, S), прості геометричні фігури (квадрати, трикутники) та прямі лінії: це перше, що спробує зловмисник.
- Використовуйте всю сітку. Візерунки, обмежені одним кутом або одним краєм, марнують доступну ентропію. Розтягуйте їх.
Чого слід уникати
- Викрійки мінімальної довжини. Vaultaire вимагає принаймні 6 точок і дві зміни напрямку, але дотримання мінімуму не робить шлях непередбачуваним. Використовуйте більше сітки, якщо можете надійно запам’ятати результат.
- Прості геометричні форми. Г-подібна форма, зигзаг або пряма діагональна лінія: це аналог “password123” для візерунків.
- Початок з одного й того ж кута щоразу. Дослідження замків-візерунків Android показують, що більшість людей починають з верхньої лівої точки. Зловмисники це знають.
Оптимальний варіант
Візерунок, що з'єднує 8–12 точок з щонайменше двома змінами напрямку, забезпечує відмінну безпеку і водночас легко запам'ятовується завдяки м'язовій пам'яті. Його не потрібно запам'ятовувати як пароль: ваша рука запам'ятовує рух так само, як вона запам'ятовує підпис.
Чому ви можете бути впевнені у захисті
Шифрування за шаблоном у Vaultaire — це не просто гарна панель PIN-коду. Жест обробляється функцією виведення справжнього ключа та має розблокувати автентифіковані зашифровані дані. Його сила все ще залежить від жесту, який ви вибираєте, тому Vaultaire поєднує більшу сітку з високою PBKDF2 робочий фактор замість представлення 256-бітної вихідної довжини як 256 біт людської секретної ентропії.
Ваш шаблон і ключ локального сховища не надсилаються до Vaultaire. Якщо ввімкнено додаткове резервне копіювання, шифрується окремий резервний ключ, отриманий за шаблоном CloudKit записів і зашифрований маніфест відновлення дозволяє фразі відновлення відновити сховище та резервні ключі. Vaultaire не має ключа постачальника, який розшифровує ці записи, але облікові дані пристрою та відновлення залишаються критично важливими для безпеки частинами дизайну.
Ви малюєте фігуру. Ця фігура захищає ваші файли. Математика робить все інше.
Часті запитання
Що станеться, якщо я забуду візерунок?
Коли ви створюєте сховище, Vaultaire генерує настроюване речення відновлення з 9 окремих слів. PBKDF2 отримує ключ відновлення з цього речення, який відкриває зашифрований конверт, що містить ключ сховища. Якщо ви втратите і шаблон, і фразу відновлення, Vaultaire не матиме ключа на стороні сервера, який може відновити сховище.
Чи справді візерунок надійніший за пароль?
Добре обраний візерунок на сітці 5×5 може дорівнювати або перевищувати ентропію типового пароля. Перевага: у зручності: люди обирають слабкі паролі, бо складні важко запам'ятати. Візерунки задіюють м'язову пам'ять, тому складний візерунок використовується природно, без свідомого запам'ятовування.
Чи може хтось зробити знімок екрана або записати мій візерунок?
Vaultaire застосовує найкращий щит знімка екрана до сітки шаблону та реагує, коли iOS повідомляє про активний знімок екрана. iOS не забезпечує загальнодоступний прапор безпечного екрана для довільного вмісту програми, тому ці елементи керування зменшують випадкове захоплення, але не можуть гарантувати, що кожен метод захоплення буде заблоковано.
Який алгоритм шифрування використовує Vaultaire?
Vaultaire використовує PBKDF2-HMAC-SHA512 з 600 000 ітерацій для отримання ключа сховища з шаблону та всього пристрою Keychain сіль. Цей ключ сховища шифрує індекс сховища та огортає випадковий 256-бітний головний ключ. AES-256-GCM під головним ключем захищає вміст файлу, заголовки, метадані та мініатюри за допомогою автентифікованого шифрування.
Чи зберігається візерунок на моєму пристрої?
Vaultaire зберігає інформацію про відновлення, включаючи шаблон, усередині AES-GCM зашифрована база даних відновлення, що зберігається в iOS Keychain. Шаблон не надсилається до Vaultaire і не зберігається у відкритих текстових файлах. Поки сховище відкрито, ключові байти існують у процесі програми; блокування скидає активний стан ключа Vaultaire.
Чи може Vaultaire отримати доступ до моїх зашифрованих файлів?
Vaultaire не керує службою, яка отримує ваш шаблон, фразу відновлення, ключі розшифровки або читабельний вміст сховища. Зашифровано iCloud резервні копії залишаються у вашому приватному CloudKit бази даних. Ця межа постачальника не захищає відкрите сховище від скомпрометованої збірки програми, операційної системи чи пристрою.
Спробуйте шифрування візерунком
Намалюйте перший візерунок і відчуйте, що означає по-справжньому захищені файли.
Завантажити Vaultaire безкоштовно