Девушка со смартфоном на фоне Кремля и базовой станции
Chaim Goldberg/Flash90
В Republic-Weekly — неделя статей об интернете, кибербезопасности и цензуре в сети. Один из ключевых механизмов защиты пользовательских данных в мессенджерах — так называемое сквозное шифрование. Этим не упускает возможности похвастаться WhatsApp в начале каждой переписки, на этом же принципе основаны секретные чаты в Telegram. Результат работы таких алгоритмов звучит почти как магия, но в основе — чистая математика. Разберемся, что такое сквозное шифрование и как оно работает.
Представьте ситуацию: между вами и вашим собеседником есть посредник, который читает все, что вы друг другу отправляете. Примеры могут быть разными — от писем заключенным, проходящих через ФСИН, до постороннего, подслушивающего частный разговор. В случае с мессенджерами такой неизбежный посредник — сервер. Каждое сообщение, отправленное вами другу в Telegram, проходит через сервер, который перенаправляет его на устройство адресата.
Очевидно, что переписку хочется сохранить в тайне. Единственный способ — зашифровать сообщения. Но как это сделать? Чтобы друг смог их расшифровать, он должен знать параметры и принцип шифрования. Однако если вы передадите эти параметры через того же посредника, он тоже их узнает — и сможет прочитать переписку. Ситуация кажется тупиковой.
Неужели невозможно на глазах у всех договориться о секрете, который будет известен только вам двоим? Оказывается, можно.
В 1976 году математики из Стэнфорда Уитфилд Диффи и Мартин Хеллман предложили решение, изменившее цифровой мир. С первого раза оно может показаться неочевидным: его сложность во многом связана с тем, что результат противоречит интуиции.
В криптографии у участников обычно есть условные имена. Двух собеседников называют Алисой и Бобом (как стороны А и Б), а подслушивающего — Евой (от английского eavesdropper). Есть и другие персонажи, но нам хватит этих трех. Диффи и Хеллман показали, как Алиса и Боб могут договориться о секрете на глазах у Евы — так, чтобы Ева этот секрет не узнала.
Существует правило научпопа: каждая формула в тексте сокращает число читателей вдвое. Поэтому обойдемся без формул и воспользуемся классической аналогией — с красками. Нам понадобятся два допущения: цвета легко смешиваются, но «размешать назад» их сложно. Иными словами, зная итоговый цвет и одну из составляющих, нельзя восстановить вторую. В реальности это не всегда так (например, розовый легко разложить на белый и красный), но для понимания принципа этого достаточно.