Атака «человек посередине» с использованием HTTPS и второго действующего сертификата

Учитывая эту ситуацию, можно выполнить атаку «человек посередине»:

  1. Для связи используется протокол HTTPS
  2. Злоумышленник перехватывает запрос от клиента и отправляет самому клиенту действительный сертификат, подписанный ЦС (не настоящий сертификат сервера, а собственный сертификат, подписанный ЦС, а не самоподписанный сертификат)
  3. Злоумышленник перенаправляет запрос клиента на URL своего сервера

    Клиент что-то замечает? И в конце концов, какое решение этой проблемы?

person PenguinEngineer    schedule 30.11.2016    source источник


Ответы (1)


Это невозможно, если клиент правильно проверяет сертификат. Надлежащая проверка не только проверяет, подписан ли сертификат доверенным ЦС, но также включает проверку того, соответствует ли цель запроса субъекту сертификата. В случае HTTP это означает проверить, содержится ли имя хоста в URL-адресе в теме сертификата.

person Steffen Ullrich    schedule 30.11.2016
comment
Хорошо, но предположим следующий сценарий: клиент C отправляет запрос на URL-адрес example1, злоумышленник перехватывает этот запрос, изменяет целевой URL-адрес (используя спуфинг DNS) на example2, а затем отправляет обратно клиенту сертификат (содержащий URL2 в теме ). Может я не понял: клиент где-то сохраняет URL1, потом проверяет и обнаруживает, что тема вместо URL2? - person PenguinEngineer; 30.11.2016
comment
Кроме того, злоумышленник может в конечном итоге изменить тему своего сертификата, включив URL1 в тему? - person PenguinEngineer; 30.11.2016
comment
@PenguinEngineer: спуфинг DNS не меняет URL-адрес, а только возвращает другой адрес. Таким образом, клиент по-прежнему ожидает сертификат для примера1. Также злоумышленник не получит сертификат например1 от доверенного ЦС, так как не сможет доказать право собственности на этот домен. - person Steffen Ullrich; 01.12.2016