Надежная защита от прослушивания: как работает технология совершенная прямая секретность

21.04.2017

Совершенная прямая секретность (Perfect Forward Secrecy, PFS) предотвращает возможность того, что АНБ сможет расшифровать веб-коммуникации. Однако пока этот метод, к сожалению, применяется редко.

Американская спецслужба АНБ последовательно подорвала механизмы обеспечения безопасности веб-коммуникаций. По большому счету, она прослушивает все данные, проходящие по крупным кабелям или через Интернет-узлы, и каждый пользователь, шифрующий свой обмен данными, вызывает подозрения.

Политическими методами едва ли можно остановить трансатлантического «Большого брата». Технически — уже возможно: с помощью Perfect Forward Secrecy (совершенная прямая секретность).

По словам Сноудена, данный метод является лучшим инструментом для защиты от глобального прослушивания, но так как браузер и сервер по умолчанию устанавливают HTTPS-соединения, стойкость шифрования не реализуется.

Принцип работы у HTTPS следующий: сначала сервер отправляет браузеру публичный ключ, адаптированный к его частному ключу, с помощью которого, в свою очередь, можно расшифровать сообщения браузера. После установления связи оба ключа изменяются на менее интенсивное симметричное шифрование для собственно обмена данными. Для этого им необходимо согласовать ключ сеанса и криптографический метод (например, AES). Согласование ключа сессии осуществляется на последнем этапе установления соединения.

Асимметричное шифрование обладает слабыми местами

Браузер и сервер с помощью двух ключей (частного и публичного — Private и Public key) создают безопасное соединение, которое затем защищается ключом сеанса (Session key). Если шпион, который фиксирует все коммуникационные данные, получит доступ к публичному ключу сервера, он сможет расшифровать и ключ сеанса, так как он передается по Интернету.

Perfect Forward Secrecy (PFS, «совершенная прямая секретность») — надежное решение

В случае PFS ключ сеанса не передается через Интернет. Вместо этого браузер и сервер согласовывают математический метод и секретное случайное число, известное только им. Таким образом, каждый из них по отдельности вычисляет один и тот же ключ сеанса, который впоследствии уничтожается. Шпион не может вычислить ключ сеанса.

Применение PFS на практике

Система PFS пока применяется достаточно редко.
От 66 до 99% (в зависимости от браузера) соединений
с SSL-сайтами не используют PFS.

Фактор длины ключа

Более длинные ключи надежнее, однако нагружают процессор. Если сравнивать издержки для различных методов при равной надежности, то лидером в области веб-шифрования является ECDHE.

Слабое звено — частный ключ

В настоящий момент шпион записывает только зашифрованную «абракадабру». Однако если позже он получит доступ к частному ключу сервера, то сможет извлечь ключ сеанса и с его помощью — данные из существующей «абракадабры». Так, АНБ хотело бы заполучить частный ключ Ладара Левисона, основателя почтовой службы Lavabit, так как Сноуден регулярно пользовался его услугами.

Вместо того, чтобы передать ключ АНБ, Левисон предпочел закрыть сервис электронной почты. Этого не произошло бы с ним при применении Perfect Forward Secrecy (PFS), поскольку в PFS частный ключ не используется. Кроме того, в случае PFS ключ не отправляется через Интернет, а рассчитывается обеими сторонами самостоятельно: за этим стоит чистая математика. PFS использует для этого обмен ключами по алгоритму Диффи-Хеллмана (DHE).

В классическом DHE (см. схему выше) сервер определяет параметры (простое число и первообразный корень) для математической формулы, в которую обе стороны подставляют собственное случайное число. Стороны отправляют результат, затем повторяют расчет с результатом другой стороны, и в заключение оценивают итог: должно получиться одно и то же число.

В Firefox щелчок по HTTPS в адресной строке показывает, активен ли PFS. В описании в этом случае присутствует DHE или ECDHE

Далее стороны принимают его в качестве ключа сеанса для симметричного шифрования, а после завершения обмена данными уничтожают ключ. Расшифровать переданную информацию после уничтожения ключа не сможет никто, в том числе и сами стороны.

Математика блокирует шпиона

Хотя всемогущая служба прослушивания, такая как АНБ, и знает параметры и соответствующий результат случайных чисел, все же для взлома ключа она должна узнать как минимум одно из случайных чисел. Они применяются в расчетах в качестве показателя степени. Для их определения шпион должен решить логарифмическое уравнение с двумя неизвестными случайными числами, что крайне накладно, однако вовсе не является невозможным. Поэтому серверы и браузеры для защиты от взлома методом подбора используют очень большие простые числа — например, длиной 2048 бит.

Наряду с классическим алгоритмом Диффи-Хеллмана также существует процедура обмена ключами на базе эллиптических кривых (ECDHE). Этот математический метод является более сложным; так, ECDHE должен проводить расчеты с меньшим количеством больших простых чисел, что облегчает работу процессору и ускоряет расчет ключа сессии.

Практически во всех известных браузерах реализован принцип Perfect Forward Secrecy для DHE и ECDHE, однако в сочетании не со всеми методами симметричного шифрования. Для серверов действует аналогичное утверждение: они по-прежнему очень редко выбирают PFS для обмена ключами.

Математический глоссарий

Простое число — число, которое делится только на себя и на единицу, например, 23.
Остаток от деления (mod) — остаток, который остается при делении целых чисел.
Пример: 17 mod 3 = 2, так как 17:3 = 5, остаток равен 2. Второй пример, поясняющий еще раз: 17 mod 4 = 1, так как 16:4 = 4,
остаток равен 1.

Первообразный корень — число n, показатель степени которого составляют все остатки до n–1. Пример: число 3 является первообразным корнем по модулю 7, так как расче-
ты от 31 mod 7 до 36 mod 7 дают все числа от 1 до 6 (36 mod 7 = 1; 32 mod 7 = 2; 31 mod 7 = 3, 34 mod 7 = 4; 35 mod 7 = 5 и 33 mod 7 = 6).

Фото: компании-производители, softpedia.com