MITM-атаки и защита от них

MITM (Man-in-the-Middle) — атака, где злоумышленник встаёт между вами и сервисом и видит или меняет трафик. Понимание механизма — ключ к защите.

Идея атаки

В норме ваши данные идут от вас к серверу. При MITM посредник убеждает обе стороны, что он и есть «другой конец». Тогда весь обмен проходит через него: он может читать, а иногда и подменять сообщения. Мы разбираем это концептуально, чтобы понять, как защищаться.

Где это случается

  • Открытый или поддельный Wi-Fi («бесплатная сеть» в кафе).
  • Подмена ответов службы имён, чтобы увести вас на сайт-двойник.
  • Незашифрованные соединения, где нет проверки подлинности.

Почему HTTPS ломает MITM

HTTPS не только шифрует данные, но и проверяет подлинность сервера через сертификат. Сертификат подписан доверенным центром. Если посередине кто-то подставит свой — браузер увидит, что подпись не та, и покажет предупреждение.

# Упрощённая проверка сертификата: совпадает ли он с доверенным
trusted_fingerprint = "AB12CD34"

def verify(server_fingerprint):
    if server_fingerprint == trusted_fingerprint:
        return "Сертификат валиден — соединение безопасно"
    return "ВНИМАНИЕ: сертификат не совпадает, возможен MITM!"

print(verify("AB12CD34"))   # настоящий сервер
print(verify("99999999"))   # подставной посредник

Вот почему нельзя игнорировать предупреждения браузера о сертификате — это и есть сработавшая защита.

Как защищаться

  • Не игнорируйте ошибки сертификата — почти всегда это сигнал проблемы.
  • HTTPS и HSTS — заставляют браузер всегда использовать защищённое соединение.
  • VPN в недоверенных сетях — шифрует весь канал.
  • Избегайте ввода паролей в открытых публичных сетях без VPN.

Вывод раздела: сеть по умолчанию недоверенная среда. Шифрование и проверка подлинности превращают перехват из катастрофы в бесполезный набор зашифрованных байтов.

Проверьте себя
1. Почему корректно настроенный HTTPS защищает от MITM?
AПотому что делает соединение быстрее
BПотому что шифрует данные и проверяет подлинность сервера через сертификат — подделка вызывает предупреждение браузера
CПотому что прячет ваш IP-адрес
DПотому что блокирует весь чужой трафик в сети
Поддержать проект