Ответ вслух Senior HTTPS и TLS обновлено

Как TLS защищает от MITM и где защита ломается

Вопрос

Как TLS защищает от атаки «человек посередине»? В каких случаях эта защита не срабатывает?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

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

Что должно прозвучать в ответе

  • Атакующий не может подписать рукопожатие без закрытого ключа сертификата

  • Свой сертификат на чужой домен не пройдёт проверку цепочки до доверенного корня

  • Ломается, если в систему добавлен чужой корневой CA (корпоративные прокси, вредоносы)

  • Первый HTTP-запрос без HSTS можно перехватить (SSL stripping)

  • Клиент, отключивший проверку сертификата (rejectUnauthorized: false), беззащитен

Что могут спросить следом

  • Как корпоративные прокси инспектируют HTTPS?
  • Что такое certificate pinning и почему от него отходят в вебе?

Разбор

Посредник может перехватить пакеты, но чтобы выдать себя за сервер, ему нужно подписать рукопожатие закрытым ключом, которого у него нет. Если он подсунет свой сертификат, браузер не построит цепочку до доверенного корня или увидит несовпадение домена и покажет ошибку. Защита ломается в нескольких случаях. Если на устройство поставили чужой корневой сертификат, как делают корпоративные прокси для инспекции трафика, посредник выпускает сертификаты на лету и им доверяют. Если сайт без HSTS, первый открытый HTTP-запрос можно перехватить и не пустить пользователя на HTTPS. И если клиентский код отключил проверку сертификатов, например rejectUnauthorized: false в Node, защиты нет совсем. Для мобильных приложений иногда делают pinning, но в браузерах от него отказались из-за риска заблокировать сайт.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.