Правдоподібне заперечення у застосунках: що це і навіщо

Правдоподібне заперечення у застосунках: що це і навіщо

Правдоподібне заперечення означає, що існування прихованих даних неможливо довести.


Правдоподібне заперечення в шифруванні — це властивість зберігання, яка дає змогу користувачеві розкрити один набір даних, не залишаючи структурного артефакту, що доводить існування іншого набору. Така заява має називати свою модель загроз: статичний образ правильно доповненого зашифрованого сховища — це не те саме, що працюючий скомпрометований пристрій, метадані хмарного сервісу чи копії, що зберігаються деінде. Це більше, ніж функція приховування. Вона залежить від спільної роботи шифрування, структури, доповнення й експлуатаційного дизайну.

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

Що означає правдоподібне заперечення в шифруванні

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

Концепція виникла в шифруванні дисків. TrueCrypt (і його наступник VeraCrypt) першими запровадили прихований том: зашифрований том усередині іншого зашифрованого тому. Один пароль відкриває зовнішній том із безневинними файлами. Інший пароль відкриває внутрішній прихований том із чутливими файлами. Криміналістичний експерт не може визначити, чи існує прихований том, бо невикористаний простір зовнішнього тому заповнено випадковими даними, які неможливо відрізнити від зашифрованих.

Для застосунків правдоподібне заперечення означає, що різні облікові дані (паролі, PIN-коди, візерунки) відкривають різні набори даних, і немає жодних метаданих, реєстру, прапорця конфігурації чи структурного артефакту, який виказує існування додаткових наборів даних.

Справжнє заперечення і косметичні режими приманки

Це ключова відмінність, у якій помиляється більшість застосунків.

Косметичний режим приманки (не справжнє заперечення)

Багато застосунків-сховищ пропонують функцію «приманки» або «фальшивого PIN-коду». Ви встановлюєте додатковий PIN, який відкриває окремий простір з іншими фото. Проблема: такі застосунки зазвичай зберігають булевий прапорець, запис у базі даних або файл конфігурації, який вказує, що режим приманки існує й налаштований.

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

Ознаки косметичного заперечення:

  • У налаштуваннях застосунку є перемикач «режим приманки»
  • Файл конфігурації зберігає, чи ввімкнено режим приманки
  • Таблиця бази даних перелічує ID сховищ з індикаторами типу (основне/приманка)
  • Структура зберігання застосунку змінюється, коли вмикається режим приманки
  • Після видалення й повторного встановлення застосунок поводиться інакше, якщо режим приманки був налаштований

Справжнє криптографічне заперечення

Справжнє заперечення — архітектурна властивість, а не перемикач функції. Зашифроване сховище має бути спроєктоване так, щоб:

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

  2. Не існувало реєстру сховищ. Застосунок не може перелічити, скільки існує сховищ. Немає лічильника, індексу, списку ID сховищ. Криміналістичний експерт, досліджуючи сховище застосунку, знаходить однорідний пул зашифрованих даних.

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

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

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

Властивість Косметична приманка Справжнє заперечення
Окремі дані для кожних облікових даних Так Так
Немає реєстру сховищ Ні (база даних відстежує сховища) Так
Немає прапорців конфігурації Ні (перемикач приманки збережено) Так
Доповнення сховища Рідко Так
Приховує альтернативне сховище в статичному образі Ні Так, у межах заявленої моделі загроз зберігання
Архітектура чи функція Перемикач функції Архітектурна властивість

Реальні ситуації, де це важливо

Правдоподібне заперечення — не теоретична проблема. Воно стосується задокументованих ситуацій, які повторюються в реальному житті.

Перетин кордону

На кордоні інспектор може оглянути пристрій і попросити облікові дані. Якщо дизайн справді забезпечує заперечення на рівні зберігання, одні облікові дані можуть розкрити безневинний набір даних, а статичний образ не містить структурного маркера, що відрізняє прихований вміст від доповнення. Поточна структура зберігання Vaultaire дає експертові з доступом до контейнера застосунку змогу оцінити кількість сховищ, тож такої гарантії вона не дає.

Домашнє насильство й стосунки з примусом

Людині в стосунках із насильством може знадобитися зберігати докази (фото травм, погрозливі повідомлення, юридичні документи) на пристрої, за яким стежить кривдник. Якщо кривдник вимагає показати сховище, користувач може відкрити сховище з нечутливим вмістом. Без справжнього заперечення прапорець «режим приманки» в конфігурації застосунку виказав би існування прихованого вмісту.

Крадіжка пристрою

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

Правовий і журналістський захист

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

Що Vaultaire реалізує сьогодні

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

Налаштовані візерунки відкривають окремі зашифровані сховища. PBKDF2 виводить ключ сховища з візерунка й солі, спільної для пристрою. Налаштований ключ автентифікує свій зашифрований індекс і розгортає випадковий головний ключ. Неналаштований візерунок показує порожній стан, а не повідомлення «неправильний візерунок».

Локальний формат однаково дає змогу оцінити кількість сховищ. Vaultaire зберігає по одному кореневому файлу vault_index_<locator>.bin на кожне сховище, у пулі з 64 або більше файлів разом із файлами прикриття. Сторінки й арени зберігання всіх сховищ мають випадкові назви й лежать в одній папці. Назви не розкривають візерунка, назви сховища чи того, якому сховищу належить файл, але той, хто має доступ до контейнера застосунку, однаково може оцінити, скільки сховищ містять файли, бо кількість арен обмежує це число. Автентифікація AES-GCM і детермінована назва файлу також дають офлайн-перевірку для ключів-кандидатів.

Локальне сховище не має сталого розміру. Вміст файлів і метадані зашифровано, а фрагменти хмарних резервних копій використовують доповнення розміру й записи-приманки. Кореневі файли лежать у пулі разом із файлами прикриття, а арени прикриття тримають кількість арен у певному діапазоні, але кількість арен, кількість сторінок каталогу, часові позначки файлів і загальний обсяг однаково виказують структуру.

Існує стан відновлення й примусу. Vaultaire зберігає відомості для відновлення в базі даних Keychain, зашифрованій AES-GCM. Режим примусу (Pro) видаляє індекси, сторінки й арени зберігання інших сховищ на цьому пристрої (звичайним видаленням файлів, без перезапису), стирає дані відновлення й відключає цей пристрій від синхронізації. Він не стирає хмарних резервних копій чи копій на інших пристроях, а час завершення залежить від обсягу локальної роботи.

Отже, Vaultaire забезпечує розділення в інтерфейсі й зашифроване зберігання, а не теоретико-інформаційний доказ того, що жодного додаткового сховища немає. Формат зберігання, випущений у версії 1.0.17, приховує, які файли належать якому сховищу, але кількість його арен однаково дає офлайн-знімку контейнера застосунку верхню межу кількості сховищ.

Як оцінювати заяви про заперечення

Коли застосунок заявляє про правдоподібне заперечення, запитайте:

  1. Чи є перемикач «режим приманки»? Якщо так, заперечення косметичне. Криміналістичний експерт може знайти цей перемикач.
  2. Чи є в застосунку список або база даних сховищ? Якщо так, існування сховища можна довести.
  3. Чи можна перевіряти здогадки офлайн? Автентифікований шифротекст може підтвердити ключ-кандидат без окремого хешу пароля. Запитайте, що обмежує вартість підбору і чи не дає структура зберігання дешевшого відбитка ключа.
  4. Чи змінюється зайнятий обсяг залежно від кількості сховищ? Якщо так, аналіз диска може оцінити кількість сховищ.
  5. Чи може застосунок перелічити сховища? Якщо застосунок може показати вам список ваших сховищ, цей список існує на пристрої і його можна знайти.

Поширені запитання

Чи законне правдоподібне заперечення?

Шифрування з правдоподібним запереченням законне в більшості демократичних країн. Немає закону, що забороняє мати на пристрої зашифровані дані, існування яких неможливо довести. У деяких юрисдикціях (Велика Британія згідно з RIPA, Австралія згідно із Законом про допомогу та доступ) органи влади можуть вимагати розкриття ключів шифрування. Правове питання в тому, чи можна примусово виконати вимогу розкрити ключ до даних, існування яких неможливо довести. Ця галузь права ще формується.

Чи можуть криміналістичні інструменти виявити правдоподібне заперечення?

Експерт, який отримав контейнер застосунку Vaultaire, може виявити зашифроване сховище. Кореневі файли vault_index_*.bin лежать у пулі з 64 або більше файлів разом із файлами прикриття, а сторінки й арени зберігання всіх сховищ мають випадкові назви й лежать в одній папці. Назви файлів не показують, якому сховищу належить файл, але кількість арен обмежує, скільки сховищ містять файли, тож експерт однаково може оцінити, скільки у вас сховищ. Файли не розкривають назв сховищ чи відкритого вмісту. Тому поточний дизайн приховує сховища від звичайної навігації, а не від будь-якої криміналістичної перевірки сховища.

Чи працює правдоподібне заперечення проти рішучого противника рівня держави?

AES-256-GCM дає надійну межу шифрування вмісту, коли ключі, nonce і реалізація коректні. Але це не робить поточну структуру зберігання Vaultaire заперечною для експерта державного рівня: експерт однаково може оцінити локальну кількість сховищ, а компрометація працюючого пристрою може націлитися на візерунки, ключі, прев'ю чи експортовані файли, поки сховище відкрите. Поточна функція розділяє, що відкривають різні візерунки в інтерфейсі; вона не обіцяє, що рішучий експерт не зможе довести існування додаткових локальних індексів.

Яка різниця між правдоподібним запереченням і прихованими сховищами?

Приховані сховища — це сховища, яких не видно у звичайному інтерфейсі застосунку. Сильне криптографічне заперечення — окрема властивість: приховані дані неможливо відрізнити від невикористаного доповненого простору. Наразі Vaultaire забезпечує першу властивість. Його поточний формат зберігання однаково дає експертові з доступом до контейнера застосунку змогу оцінити кількість сховищ, тож другої властивості він не забезпечує.

Чи можна користуватися правдоподібним запереченням із хмарними резервними копіями?

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

Підсумок

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

Vaultaire використовує налаштовані візерунки, щоб розділяти зашифровані сховища, і не показує назв і вмісту сховищ у заблокованому інтерфейсі. Його поточна структура зберігання все ще дає змогу оцінити кількість сховищ під час огляду контейнера застосунку. Сприймайте це як приховування на рівні інтерфейсу, підкріплене автентифікованим шифруванням, а не як доказ того, що додаткових сховищ немає.