Конфіденційність і шифрування
В описах додатків ці слова вживають вільно, а вся цінність насправді ховається саме в різниці між ними. Прихований — не означає заблокований. Заблокований — не означає зашифрований. А ключ, який тримає хтось інший, — не зовсім твій.
-
ChaCha20-Poly1305
-
Сучасний алгоритм шифрування, який одночасно приховує дані та виявляє втручання в них. Швидко на телефонах, які не завжди мають апаратне прискорення для старішої альтернативи.
ChaCha20 виконує шифрування; Poly1305 створює мітку, що підтверджує незмінність даних. Разом вони утворюють те, що називають автентифікованим шифруванням, — розшифрування на зміненому файлі явно завершується помилкою, а не видає правдоподібне сміття.
Це та сама конструкція, що використовується в TLS і в сучасних захищених месенджерах. На залізі без апаратного прискорення AES вона помітно швидша за AES, тому телефони зазвичай надають перевагу саме їй.
Дивись також: У стані спокою чи під час передаванняОбгортка ключів
-
Обгортка ключів
шифрування конверта -
Шифрування файлів одним ключем, а потім шифрування цього ключа окремо для кожного входу. Зміна коду доступу перепакує невеликий ключ, а не повторно шифрує все.
Файли шифруються один раз ключем, згенерованим на пристрої. Потім цей ключ загортається — тобто шифрується — паролем, а також заново загортається кодом відновлення. Два конверти, і в кожному лежить той самий ключ.
Усі наслідки суто практичні. Зміна пароля переписує кілька сотень байтів замість сотні гігабайтів. Біометричне розблокування — це ще одна загорнута копія, а не друга модель безпеки. А втрата всіх обгорток означає втрату самого ключа, бо більше ніде він не існує.
Дивись також: Код відновленняChaCha20-Poly1305
-
Код відновлення
-
Одноразовий рядок, який може розгорнути головний ключ, якщо пароль забутий. Ніхто не може перевидати його, тому що більше ні в кого його ніколи не було, включаючи людей, які написали додаток.
Його показують один раз, під час налаштування, і це другий із двох ключів від двох дверей. Записаний і збережений не на самому пристрої, він перетворює забутий пароль на незручність, а не на катастрофу.
Якщо пароль забуто, а код відновлення втрачено, файли не розшифрує ніхто. Це не політика підтримки, яку можна оскаржити, — це буквально означає, що копії ключа не існує. Зберігай його з тією ж ретельністю, якої заслуговують самі файли.
Дивись також: Обгортка ключівZero-knowledge (нульове розголошення)
-
Сейф-приманка
правдоподібне заперечення -
Другий пароль, який відкриває інший, нешкідливий сейф. Того, кого змусили розблокувати додаток, він справді розблокує, але відкривається не те, що шукали.
Обидва паролі справжні, і кожен відкриває справжній сейф. Ніщо на екрані не вказує на існування іншого, і в додатка не можна запитати, який саме сейф він зараз показує.
Він існує для ситуації, коли відмова розблокувати — не варіант: кордон, вимога, хтось стоїть над душею. Саме лише шифрування там не допоможе, бо проблема не в ключі, а в примусі його використати.
Дивись також: Код відновленняПрихований проти зашифрованого
-
Брелок
-
Захищене системне сховище невеликих секретів, підкріплене апаратним забезпеченням безпеки пристрою. Тут місце ключам і токенам, і сюди не повинно потрапляти нічого великого.
Елементи всередині можуть нести умови: доступні для читання лише коли пристрій розблокований, лише на цьому пристрої, лише після біометричного підтвердження чи введення пароля. Ці умови забезпечуються апаратно, а не ввічливим проханням із боку додатка.
Воно зберігає секрети, а не дані. Ключі, токени й загорнутий матеріал ідуть туди; самі зашифровані файли живуть на диску, де розмір уже не проблема.
Дивись також: Обгортка ключівУ стані спокою чи під час передавання
-
У стані спокою чи під час передавання
-
Зашифроване у стані спокою означає нечитабельне на диску. Зашифроване під час передавання означає нечитабельне в мережі. Це два різні захисти, і продукт може чесно заявляти про один, не забезпечуючи іншого.
HTTPS — це шифрування під час передавання: безпечне від будь-кого, хто спостерігає за мережею, і повністю читабельне сервером на іншому кінці, щойно дані до нього доходять. Шифрування у стані спокою стосується збереженої копії — це важливо, якщо пристрій втрачено або з диска знято образ.
Уважно читати заяву про приватність зазвичай означає з’ясовувати, про яке з двох ідеться. Фраза «твої дані зашифровані» без жодного з цих уточнень — це речення, навмисно сформульоване так, щоб нічого конкретного не сказати.
Дивись також: ChaCha20-Poly1305Zero-knowledge (нульове розголошення)
-
Zero-knowledge (нульове розголошення)
нульове знання -
Конструкція, за якої оператор не може прочитати те, що зберігає, бо ключі ніколи не залишають пристроїв користувача. Перевірка проста: чи можуть вони скинути твій пароль і все одно повернути тобі дані?
Якщо сервіс здатен відновити доступ після того, як ти забув геть усе, значить у нього є щось, здатне розблокувати твої дані, — а отже, його можна примусити це зробити, і будь-хто, хто зламає сервіс, успадкує ту саму здатність.
Компроміс тут реальний, і про нього варто говорити прямо, а не продавати як суцільну перевагу: справжнє нульове розголошення означає по-справжньому втратити доступ, коли втрачено останній ключ. Третього варіанту, за якого оператор може тебе врятувати, а більше ніхто не може, не існує.
Дивись також: Код відновленняУ стані спокою чи під час передавання
-
Біометрія
Face ID, Touch ID -
Те, що це ти, підтверджує пристрій, а не додаток; додатку повідомляють лише «так» або «ні». Жоден відбиток пальця чи дані обличчя ніколи не потрапляють у додаток, і жодне з них не є паролем.
Біометричне розблокування — це зручність, загорнута навколо секрету, а не заміна секрету. Воно захищає збережений ключ, тому за ним завжди стоїть пароль — біометрія може дати збій, а резервним варіантом має бути те, що ти знаєш.
Порівняння відбувається всередині виділеного апаратного модуля, і шаблони ніколи його не залишають. Додаток, що пропонує Face ID, ставить запитання системі, а не збирає щось сам.
Дивись також: БрелокОбгортка ключів
-
Анонімна аналітика
-
Підрахунок подій без запису того, хто їх здійснив. Цінність цієї заяви повністю залежить від того, що додається до кожної події, — і саме на іменах файлів, шляхах і URL-адресах такі обіцянки зазвичай і ламаються.
Знання про те, що екран відкрили, — це підрахунок. Знання про те, який файл відтворили, — це вже опис конкретної людини. Межу між ними проводить не слово «анонімно», а те, які поля несе саме ця подія.
Заява, якій варто довіряти, так само конкретно каже про те, що *не* надсилається, як і про те, що надсилається: жодних імен файлів, жодних шляхів, жодних URL, жодних облікових даних, жодного ідентифікатора, що переживає сесії, — і пропонує спосіб вимкнути все це цілком.
Дивись також: У стані спокою чи під час передавання