Месенджери непомітно стали частиною нашої інфраструктури.
Ми спілкуємося в них із друзями та рідними, обговорюємо роботу, обмінюємося документами, надсилаємо адреси й фотографії, домовляємося про платежі, говоримо про здоров’я, ухвалюємо ділові рішення, а іноді просто думаємо вголос разом з іншою людиною.
Розмова, яка колись просто розчинялася в повітрі, тепер часто проходить через кілька комп’ютерів, мереж, баз даних і систем резервного копіювання, перш ніж дістатися іншої людини.
Звідси виникає просте запитання:
Якій частині всього цього механізму ми маємо довіряти?
Захищені месенджери існують тому, що бажана відповідь — якомога меншій.
Приватність — це не про те, що є що приховувати
На розмови про захищене спілкування часто реагують так:
«Мені нема чого приховувати».
Але приватність і таємність — не одне й те саме.
Ми зачиняємо двері, коли говоримо з кимось наодинці. Користуємося конвертами замість листівок. Компанії обмежують доступ до внутрішніх документів. Лікарі не публікують розмов із пацієнтами. Адвокати захищають спілкування з клієнтами.
Ніщо з цього не свідчить про неправомірні дії.
Приватність дає людям змогу контролювати контекст.
Повідомлення, призначене одній людині, не повинно автоматично ставати доступним операторам сервісу, рекламодавцям, брокерам даних, майбутнім роботодавцям, зловмисникам чи будь-кому, хто випадково отримає доступ до бази даних за кілька років.
Тож питання не в тому:
«Що ви приховуєте?»
А в тому:
«Кому була призначена ця розмова?»
Якщо двом людям, добре спроєктована система спілкування має прагнути до того, щоб технічну можливість прочитати її мали лише ці двоє.
Шифрування змінює те, кому ми маємо довіряти
Традиційні онлайн-сервіси зазвичай працюють через сервер.
Аліса надсилає повідомлення на сервер.
Сервер зберігає або обробляє його.
Боб отримує його із сервера.
Якщо сервер може прочитати повідомлення, кожен користувач сервісу мусить довіряти тому, хто контролює цей сервер.
Мусить довіряти компанії.
Її працівникам.
Її адміністраторам.
Її програмному забезпеченню.
Її хмарному провайдеру.
Її налаштуванням контролю доступу.
І довіряти тому, що зловмисник не скомпрометував жодної із цих складових.
Надійне наскрізне шифрування змінює цю архітектуру.
Сервер і далі може передавати повідомлення, але йому не потрібно розуміти його вміст.
Замість прохання:
«Будь ласка, захистіть мої повідомлення».
система прагне забезпечити інше:
«У вас від самого початку немає інформації, необхідної для читання моїх повідомлень».
Це значно сильніша властивість безпеки.
Бази даних із часом стають джерелом ризику
Сучасне програмне забезпечення любить збирати дані.
Зберігати інформацію корисно. Журнали допомагають шукати помилки. Історія повідомлень додає зручності. Аналітика допомагає продуктовим командам зрозуміти, як користуються сервісом. Резервні копії захищають від випадкової втрати.
Окремо кожен аргумент звучить розумно.
Разом вони породжують величезні бази накопичених даних.
І ці бази мають одну незручну особливість:
їхній захист має залишатися бездоганним завжди.
Якщо повідомлення зберігається десять років, у когось є десять років, щоб його викрасти.
Вразливість, виявлена наступного року, може розкрити інформацію, записану сьогодні. Облікові дані можуть потрапити до чужих рук. Сервери можуть бути неправильно налаштовані. Компанії можуть бути придбані іншими компаніями. Інфраструктура може змінити власника. Стара забута резервна копія може існувати ще довго після того, як усі вирішили, що вихідні дані видалено.
Тому один зі способів захистити чутливу інформацію напрочуд простий:
не зберігати її.
Дані, яких більше не існує, не можуть витекти з бази даних.
Для захищеного спілкування правила видалення та строки зберігання можуть бути не менш важливими, ніж шифрування.
Шифрування не розв’язує всіх проблем
Вислів месенджер із шифруванням може створювати хибне відчуття абсолютного захисту.
Шифрування захищає вміст повідомлень за певних умов. Воно не захищає автоматично всю систему спілкування.
Візьмімо метадані.
Навіть коли ніхто не може прочитати повідомлення, система все одно може знати:
- хто з ким спілкується;
- коли відбувається спілкування;
- з якої IP-адреси;
- з якого пристрою;
- як часто люди спілкуються;
- приблизний обсяг переданих даних.
Іноді метадані розкривають майже стільки ж, скільки й вміст повідомлень.
Уявімо, що журналіст щовечора спілкується з анонімним джерелом незадовго до публікації розслідування. Щоб помітити цікавий зв’язок, не обов’язково читати їхні повідомлення.
Тому під час проєктування захищених месенджерів варто думати не лише про таємність повідомлень, а й про мінімізацію даних.
Яка інформація справді потрібна системі?
Яку інформацію вона може не зберігати?
Як довго ця інформація має існувати?
Що може залишатися виключно на пристрої користувача?
Ці запитання стосуються архітектури, а не лише криптографії.
Проблема кінцевого пристрою
Є й інша незручна правда.
Навіть бездоганно зашифроване повідомлення зрештою має десь стати читабельним.
Інакше одержувач ніколи не зміг би його прочитати.
Це місце — кінцевий пристрій: телефон, ноутбук чи інший пристрій.
Якщо сам пристрій скомпрометовано, шифрування під час передавання може мало чим допомогти. Шкідливе програмне забезпечення потенційно здатне прочитати повідомлення після розшифрування. Людина з фізичним доступом може побачити відкритий застосунок. Знімки екрана, резервні копії та сповіщення можуть розкрити інформацію поза зашифрованим каналом.
Це означає, що захищене спілкування — не лише питання вибору стійкого шифру.
Воно охоплює весь життєвий цикл розмови:
створення → шифрування → передавання → доставлення → зберігання → відображення → видалення
Кожен етап має значення.
Безпечні типові налаштування важливіші за параметри безпеки
У багатьох застосунках є налаштування приватності.
Це корисно, але водночас може перекладати відповідальність на користувачів.
Людина не повинна розумітися на криптографії, ротації ключів, шифруванні резервних копій і мережевих метаданих лише для того, щоб поговорити приватно.
Захист працює найкраще, коли звичайний спосіб користування вже є безпечним.
Повідомлення мають захищатися автоматично.
Керування ключами має бути безпечним за замовчуванням.
Сервери мають отримувати якомога менше чутливої інформації, наскільки це практично можливо.
Має бути складно випадково опинитися в небезпечному стані.
Захист, який залежить від того, чи кожен користувач правильно виставив дванадцять налаштувань, не надто надійний.
Більшу частину цього навантаження має брати на себе архітектура.
Захищене спілкування — це також про автономію
Є ще одна причина, чому захищені месенджери важливі, і вона мало пов’язана з хакерами.
Системи спілкування дедалі частіше стають посередниками в людських стосунках.
Коли всі розмови залежать від централізованого сервісу, він стає надзвичайно впливовим посередником.
Він може вирішувати:
- які пристрої підтримуються;
- які ідентичності дозволені;
- як довго зберігається історія;
- чи потрібні номери телефонів;
- чи аналізується інформація;
- чи можуть облікові записи блокуватися;
- чи показується реклама;
- скільки інформації про минуле кожного учасника накопичується.
Певний рівень централізації може бути необхідним для роботи практичного сервісу.
Але добра архітектура здатна зменшити повноваження цієї централізованої інфраструктури.
Найбільшої довіри заслуговує не обов’язково система, оператор якої дає найгучніші обіцянки.
Іноді це система, яку її оператор свідомо спроєктував так, щоб мати менше влади.
Чому наявні захищені месенджери — ще не кінець історії
Хороші захищені месенджери вже існують.
Це важливо. Не варто подавати захищене спілкування як нерозв’язану проблему лише тому, що хтось хоче створити ще один застосунок.
Але безпека не зводиться до вибору між «є» і «немає».
Різні системи мають різні пріоритети.
Одна може надавати перевагу зручній історії на кількох пристроях.
Інша — анонімності.
Ще інша — корпоративному адмініструванню.
Одна може робити резервне копіювання в хмару максимально простим.
Інша — свідомо уникати довготривалого зберігання стану на сервері.
Ці рішення дають різні властивості безпеки.
Тому архітектурні запитання все ще доречні.
Чи міг би сервер знати менше?
Чи могли б повідомлення залишатися на ньому менше часу?
Чи могли б ідентичності розкривати менше інформації?
Чи можна розділити інфраструктуру так, щоб компрометація одного компонента розкривала менше даних?
Чи могли б пристрої розпізнавати підозрілі зміни?
Чи могли б користувачі спілкуватися без створення постійних централізованих записів про їхні зв’язки?
Не кожна відповідь виправдає складність, яку вона додає.
Але це цілком обґрунтовані інженерні запитання.
Мета — не ідеальна таємність
Жодна корисна система спілкування не може обіцяти бездоганної безпеки.
Люди можуть самі розголосити зміст розмов. Пристрої можуть бути скомпрометовані. Реалізації криптографічних алгоритмів можуть містити помилки. Зловмисники можуть використовувати вразливості операційних систем. Люди можуть фотографувати екрани.
Тому до заяв про абсолютну приватність варто ставитися з недовірою.
Реалістичніша мета — зменшити зайву потребу в довірі та зайвий ризик розкриття інформації.
Захищені месенджери мають прагнути до того, щоб компрометація одного компонента не розкривала всього.
Вони мають мінімізувати обсяг збереженої інформації.
Використовувати добре вивчені криптографічні примітиви, а не винаходити нові хитромудрі конструкції.
Робити свої властивості безпеки зрозумілими.
І, де це можливо, їхня архітектура має технічно ускладнювати певні види стеження чи збору даних, а не лише забороняти їх умовами договору.
Спілкування має належати його учасникам
Основна ідея захищеного спілкування напрочуд проста.
Коли двоє людей говорять приватно, ця розмова належить їм.
Мережа потрібна, щоб передавати інформацію.
Сервери можуть бути потрібні для координації доставлення.
Програмне забезпечення потрібне, щоб спілкування було зручним.
Але жодному із цих посередників не обов’язково автоматично ставати додатковим учасником розмови.
Захищені месенджери — це спроби зберегти в сучасній цифровій інфраструктурі давнє людське очікування:
що приватна розмова може залишатися приватною.
Можливо, ми ніколи не усунемо всіх ризиків.
Але ми можемо будувати системи, у яких доводиться довіряти меншій кількості сторін, накопичується менше інформації, компрометація розкриває менше даних, а приватність менше залежить від обіцянок того, хто в цей момент керує сервером.
Саме тому захищені месенджери досі важливі.
