Назад | Перейти на главную страницу

Как я могу расшифровать соединение STARTTLS через SMTP при захвате пакета (если у меня есть закрытый ключ)?

Для устранения неполадок мне нужно посмотреть, как выглядит электронное письмо, отправленное на мой сервер sendmail через SMTP. Для вышестоящего сервера требуется, чтобы SMTP-соединение использовало STARTTLS, поэтому при захвате пакетов отображаются только зашифрованные данные.

Есть ли способ использовать wirehark для расшифровки передачи и просмотра? При условии, конечно, что у меня есть закрытый ключ, используемый на моем сервере sendmail?

Я вижу несколько процедур, доступных в Интернете, со ссылкой на RSA key lists функция в wirehark (например: https://support.citrix.com/article/CTX116557). Но это все еще не работает для меня.

Связано ли это с прямой секретностью? Могу я просто не делать этого на более новых протоколах / шифрах?

Возможно, анализатор протокола SMTP wirehark не знает, как обрабатывать TLS / SSL. Но, возможно, вы можете вместо этого использовать парсер протокола HTTP. Перейдите в редактирование-> настройки-> протоколы-> HTTP и добавьте порт к портам SSL / TLS.

Знания секретного ключа RSA достаточно, только если обмен ключами RSA выполнен. Вместо этого современные системы используют обмен ключами Диффи-Хельмана (шифры DHE *, ECDHE *) для обеспечения прямой секретности. В этом случае закрытый ключ используется только для аутентификации сервера, но не для обмена ключами, и, следовательно, знание закрытого ключа не помогает в получении ключей шифрования.

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

Что касается вашей конкретной проблемы, я бы вместо этого попробовал «атаковать человека в середине», который регистрирует весь трафик в обычном виде, даже если клиент получает зашифрованный трафик. Это работает аналогично man в промежуточных прокси для HTTPS, только поддерживает начальное простое соединение и понимает, что STARTTLS обновляется до TLS. В результате быстрого поиска я нашел starttls-mitm и это sslsplit для этого есть бета-поддержка. Конечно, клиенту необходимо подключиться к человеку на среднем прокси-сервере и доверять полученному сертификату, который может быть исходным сертификатом сервера, поскольку у вас, похоже, есть к нему доступ.

Другой вариант - включить отладку в конкретном MTA, если это дает достаточно подробную информацию для вашей конкретной проблемы.