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.
Вывод раздела: сеть по умолчанию недоверенная среда. Шифрование и проверка подлинности превращают перехват из катастрофы в бесполезный набор зашифрованных байтов.