Почему Diffie-Hellman без сертификатов не спасает, и как браузер защищается на самом деле — 17 июля 2026 г. в 18:05:48.371
Почему Diffie-Hellman без сертификатов не спасает, и как браузер защищается на самом деле 👋 Приветствую в мире цифровой безопасности! В прошлыйраз мы разобрались, как две стороны получают общий секрет, не передавая его по сети. Но есть проблема: сам по себе Diffie-Hellman вообще не умеет проверять, с кем именно ты договорился. ⏺Представьте, что между Алисой и Колей встаёт Маша. Алиса отправляет своё число, Маша его перехватывает и вместо него отправляет Коле уже своё. Ответ Коли она тоже не пересылает, а подменяет своим. В итоге Алиса получает общий ключ с Машей, Коля тоже получает общий ключ с Машей. Оба уверены, что говорят друг с другом, хотя на самом деле весь трафик проходит через атакующего. ⏺Это классическая атака Man-in-the-Middle. Сам алгоритм Диффи-Хеллмана при этом не сломан. Никто не решал дискретный логарифм и не взламывал криптографию. Просто стороны не удостоверились, кто находится по другую сторону соединения. ⏺Именно поэтому в HTTPS поверх Diffie-Hellman работают цифровые сертификаты. Сервер подписывает параметры обмена своим приватным ключом, браузер проверяет подпись по цепочке доверенных центров сертификации. Если подпись не проходит - соединение считается недоверенным, а MITM-атака срывается. ⏺В 2015 году исследователи показали атаку Logjam. Многие серверы использовали одинаковые стандартные параметры Diffie-Hellman, а часть ещё и с длиной всего 512 бит. Для таких групп самую тяжёлую часть вычислений можно было выполнить заранее один раз, после чего отдельные соединения взламывались значительно быстрее. После этого слабые группы практически исчезли из интернета. ⏺Сегодня классический Diffie-Hellman почти не используется. В TLS 1.3 основным вариантом стал ECDHE - обмен ключами на эллиптических кривых, чаще всего X25519. Принцип тот же, но вместо огромных простых чисел используются точки на эллиптической кривой. Это быстрее, требует меньших ключей и обеспечивает ту же идею безопасного обмена. ⏺Самое важное преимущество современного TLS - Forward Secrecy. Для каждого нового соединения генерируется новая временная пара ключей. Даже если через год злоумышленник украдёт приватный ключ сервера, старые записанные соединения расшифровать уже не получится - одноразовые секреты давно уничтожены. ⏺Следующий этап уже начинается. Крупные браузеры постепенно внедряют гибридные схемы обмена ключами, где X25519 работает вместе с постквантовыми алгоритмами вроде ML-KEM (Kyber). Это защита от сценария «записать сейчас - расшифровать позже», если когда-нибудь появятся достаточно мощные квантовые компьютеры. 🤖Бесплатный ChatGPT

