Cryptile

Архітектура безпеки Cryptile шар за шаром

Оновлено

Cryptile шифрує кожен файл, мініатюру й індекс AES-256-GCM ключами, створеними на вашому телефоні з візерунка, який ви малюєте. Облікового запису й сервера немає, і розробник ніколи не тримає ключів.

Завантажити Cryptile з App Store

Простий підсумок — на сторінці про безпеку.

Що мені треба знати?

  • Ваш візерунок — джерело кожного ключа. Без нього нічого читабельного не зберігається.
  • Розміри й кількість сховищ розмиті. Файли доповнено, а слоти-приманки приховують, скільки сховищ існує.
  • Ви можете це перевірити. Ядро шифрування опубліковане для аудиту (source-available) разом із моделлю загроз і тестовими векторами: github.com/jasonbrelsford/cryptile-core.

Як візерунок стає ключем?

  1. Візерунок записується як розмір сітки, за яким ідуть клітинки, яких ви торкнулися, по порядку.
  2. Його змішують із 32-байтовим секретом пристрою, що зберігається в Keychain iPhone лише для цього пристрою.
  3. PBKDF2-HMAC-SHA512 проходить по ньому 600 000 разів. Кожна спроба вгадати коштує стільки ж роботи.
  4. HKDF-SHA256 ділить результат на ключ пошуку й ключ обгортання.
  5. Ключ пошуку дає назву індексному файлу сховища. Ключ обгортання його відкриває.

Усередині індексу лежить випадковий 256-бітовий головний ключ сховища. HKDF виводить із нього окремі підключі для файлів, мініатюр та індексу. Жоден ключ не використовується для двох цілей.

Як шифруються файли?

Малі елементи, як-от мініатюри й індекс, запечатуються цілком AES-256-GCM із випадковим nonce.

Великі файли використовують схему STREAM частинами по 1 МБ. Кожна частина має власний nonce і записує свою позицію та чи є вона останньою. Якщо частини обрізати, переставити чи підмінити, розшифрування не вдасться.

GCM також автентифікує кожен заголовок, тож змінений файл відхиляється, а не показується.

Як приховуються розміри й кількість сховищ?

Кожен малий блок і кожна остання частина файлу доповнюються до кратного 64 КіБ. Той, хто копіює, бачить приблизні розміри, а не точні.

Списку сховищ немає. Застосунок тримає щонайменше 8 слотів у формі індексу, справжніх і приманок, і перегенеровує приманки під час кожного запису. Візерунок, що не вказує на жоден слот, відкриває порожнє сховище.

Як працює відновлення?

Кожне сховище отримує фразу відновлення з 9 слів — це 96 біт випадковості. Вона відкриває окрему копію сховища для відновлення, запечатану ключем, створеним із фрази.

Резервна копія в iCloud віддзеркалює зашифровані файли такими, як вони є. Секрету пристрою в ній типово немає, тож самої резервної копії недостатньо, щоб підбирати візерунки.

Що зашифровано, а що ні?

Зашифровано: фото, відео, файли, нотатки, мініатюри, назви, папки, обране, розпізнаний текст і місця фото. Невеликий файл, що відстежує приманки й лічильники безкоштовного плану, запечатано ключем пристрою.

Не зашифровано Cryptile:

  • Параметри. Час автоблокування, порядок сортування й перемикач резервної копії не містять секретів.
  • Поширені елементи, що чекають на додавання. Вони під захистом файлів iOS, доки ви не відкриєте сховище.
  • Загальний розмір контейнера й час записів. Сховище на 10 ГБ не виглядає як 10 МБ.
  • Усе, що ви експортуєте. Копія, збережена у Фото чи Файли, — поза сховищем.

Від чого це захищає?

  • Від того, хто копіює файли застосунку без вашого Keychain. Він отримує шифротекст і не може пробувати візерунки.
  • Від Apple чи витоку в Apple. iCloud зберігає шифротекст і жодних ключів.
  • Від підробки. Змінені чи переставлені дані не розшифровуються.
  • Від нас. Ми не маємо сервера й не тримаємо ключів, тож не можемо скинути доступ.

Від чого це не захищає?

  • Від коротких візерунків. Візерунок слабший за парольну фразу. Маючи ваші файли й Keychain, візерунок із 6 клітинок на сітці 4×4 падає за кілька хвилин на GPU. Використовуйте 8 або більше клітинок.
  • Від шкідливого ПЗ на розблокованому телефоні. Код, що читає пам'ять, поки сховище відкрите, — поза можливостями будь-якого застосунку.
  • Від того, хто дивиться, як ви малюєте. Малюйте там, де ніхто не бачить вашої руки.
  • Від втрати і телефона, і фрази. Сховища більше немає. Скидання немає.

Панічний візерунок у Plus знищує секрет пристрою, тож жодне сховище на телефоні не відкриється до відновлення.

Завантажити Cryptile з App Store