Що таке шифрування з нульовими знаннями? Простий посібник

Що таке шифрування з нульовими знаннями? Простий посібник

Шифрування з нульовими знаннями означає, що провайдер не може отримати доступ до ваших даних.

Шифрування з нульовими знаннями це криптографічна архітектура, де сервіс-провайдер не може отримати доступ до даних користувача, оскільки ключі шифрування отримуються і зберігаються виключно на пристрої користувача та ніколи не передаються на сервери провайдера. На відміну від стандартного хмарного шифрування, де провайдер тримає ключі, шифрування з нульовими знаннями означає, що навіть із судовим ордером, після витоку даних або від недобросовісного співробітника провайдеру нічого передавати. Настанови NIST щодо управління ключами (SP 800-57) встановлюють принцип: зберігання ключів визначає доступ до даних. Шифрування з нульовими знаннями доводить це до логічного кінця.

Як працює шифрування з нульовими знаннями

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

Технічно шифрування з нульовими знаннями працює в три кроки:

  1. Виведення ключа на пристрої. Користувач надає облікові дані (пароль, фразу або візерунок). Функція виведення ключа (зазвичай PBKDF2 або Argon2) поєднує ці облікові дані з унікальною криптографічною сіллю для отримання ключа шифрування. Це відбувається повністю на пристрої користувача.

  2. Шифрування перед передачею. Всі дані шифруються на пристрої отриманим ключем перед тим, як залишити пристрій для хмарного зберігання або резервного копіювання. Зашифрований вивід (шифртекст) і є тим, що завантажується.

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

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

Шифрування з нульовими знаннями порівняно з іншими типами

Термін "шифрування" з'являється в маркетингових матеріалах майже кожного хмарного сервісу. Відмінності між типами є суттєвими.

ТипХто тримає ключПровайдер може читати даніВитримує злом провайдераПриклад
Без шифруванняН/ЗТакНіDropbox (стандартний рівень)
Шифрування під час передачі (TLS)ПровайдерТак (в стані спокою на їхніх серверах)НіGoogle Photos
Шифрування на стороні сервера в стані спокоюПровайдерТак (він тримає ключ розшифрування)ЧастковоiCloud (стандартний)
E2E-шифрування під управлінням провайдераПровайдер генерує, користувач зберігаєТехнічно ні, але провайдер мав доступ при генерації ключаЧастковоiCloud Розширений захист даних
Шифрування з нульовими знаннямиТільки користувач (отримано на пристрої)Ні. Математично неможливо.Так. Зашифровані блоби марні без ключа користувача.Signal, Proton Mail, Vaultaire

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

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

Чому шифрування з нульовими знаннями важливе

Витоки даних щорічно відкривають мільярди записів

Центр ресурсів з крадіжки особистих даних зафіксував 3 205 витоків даних у США у 2023 році, що вплинули приблизно на 353 мільйони осіб. Коли провайдер, що тримає ключі шифрування, зламаний, зловмисник потенційно отримує доступ як до зашифрованих даних, так і до ключів. Архітектура з нульовими знаннями усуває цей ризик повністю.

Юридичний примус є реальною загрозою

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

"Довіртеся нам" не є архітектурою безпеки

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

Стандарт NIST, що лежить в основі криптографії

AES-256-GCM, шифр, що найчастіше використовується в реалізаціях з нульовими знаннями, був стандартизований Національним інститутом стандартів і технологій у SP 800-38D (2007). "256" відноситься до довжини ключа в бітах: 256-бітний ключ має 2^256 можливих значень. GCM (режим Galois/Counter) додає автентифіковане шифрування, де процес розшифрування виявляє будь-яке втручання в шифртекст.

PBKDF2 (Password-Based Key Derivation Function 2), вказаний у RFC 8018, перетворює облікові дані, надані людиною, на криптографічний ключ через повторне хешування. Виконання хеш-функції сотні тисяч разів робить кожну спробу підбору пароля обчислювально дорогою.

Як Vaultaire реалізує шифрування з нульовими знаннями

Vaultaire це застосунок-сховище для iPhone, побудований на архітектурі нульових знань.

Виведення ключа. Користувач малює візерунок на сітці 5x5 з 25 точок. Послідовність точок по порядку надходить до PBKDF2 з HMAC-SHA512 та унікальною криптографічною сіллю для кожного сховища. На виході: 256-бітний ключ шифрування AES. Візерунок ніколи не зберігається на пристрої. Ні як хеш, ні як представлення, ні в жодному вигляді.

Шифрування файлів. Кожен імпортований файл шифрується за допомогою AES-256-GCM отриманим ключем і випадково згенерованим вектором ініціалізації (IV), унікальним для цього файлу. Ідентичні файли генерують різний шифртекст, оскільки IV відрізняється.

Шифрування метаданих. Імена файлів, дати створення та мініатюри шифруються окремо за допомогою ChaCha20, іншого шифру від шифрування файлів (AES-256-GCM). Використання різного шифру для метаданих забезпечує криптографічне різноманіття.

Управління ключами. Apple Secure Enclave зберігає ключовий матеріал у виділеному апаратному співпроцесорі. Ключі видаляються з пам'яті програми при закритті Vaultaire або при переключенні.

Без реєстру сховищ. Немає бази даних із переліком сховищ, їх кількості або назв. Кожен візерунок відкриває інше сховище. Сама програма не може визначити, скільки сховищ існує.

Як визначити, чи використовує програма справжнє шифрування з нульовими знаннями

Три тести, що займають менше хвилини:

  1. Тест "забутого пароля". Якщо програма може скинути ваш пароль через email і ваші дані відновлюються, програма тримає ваші ключі шифрування. Не є нульовими знаннями.

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

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

Програми, що проходять всі три тести: Signal, Proton Mail, Standard Notes, Vaultaire. Програми, що провалюють хоча б один: більшість хмарних сховищ, більшість "застосунків-сховищ" в App Store.

Часті запитання

Чи є шифрування з нульовими знаннями тим самим, що наскрізне шифрування?

Вони перетинаються, але не є ідентичними. Наскрізне шифрування (E2EE) означає, що дані шифруються на пристрої відправника і розшифровуються лише на пристрої отримувача. Шифрування з нульовими знаннями означає, що провайдер не може отримати доступ до даних. Сервіс може бути наскрізно зашифрованим без нульових знань, якщо провайдер генерував ключі або мав до них доступ. Шифрування з нульовими знаннями є строгішим стандартом.

Що відбувається, якщо я втрачу пароль при шифруванні з нульовими знаннями?

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

Чи може поліція отримати доступ до даних, зашифрованих нульовими знаннями?

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

Чи є шифрування з нульовими знаннями повільнішим?

Операції шифрування і розшифрування ідентичні. AES-256-GCM працює з однаковою швидкістю незалежно від того, хто тримає ключ. Єдина додаткова витрата: виведення ключа через PBKDF2 з сотнями тисяч ітерацій займає приблизно 0,5-2 секунди на сучасному iPhone. Це відбувається один раз при розблокуванні сховища, а не для кожного файлу.

Чи означає нульові знання, що програма взагалі не збирає дані?

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

Як шифрування з нульовими знаннями порівнюється з розширеним захистом даних Apple?

Розширений захист даних Apple (ADP), представлений в iOS 16.2, розширює наскрізне шифрування на більшість категорій даних iCloud. З увімкненим ADP Apple не може отримати доступ до захищених даних. Ключові відмінності від спеціалізованого застосунку з нульовими знаннями: ADP є необов'язковим (вимкнено за замовчуванням), вимагає Apple ID і захищає дані лише в екосистемі Apple. Застосунок-сховище з нульовими знаннями, як-от Vaultaire, працює незалежно від інфраструктури Apple, не вимагає облікового запису і додає функції правдоподібного заперечення та режиму примусу, яких ADP не надає.

Підсумок

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

Переглянути архітектуру безпеки