О Smarthost TLS Отпечатки пальцев

461
xpt

Как определяются отпечатки смарт-хоста ? От них зависит только smarthost или клиент?

Некоторое время назад я сконфигурировал свой отпечаток пальца ghost smarthost в моей старой Ubuntu, и он работал хорошо. Однако при повторной настройке в моем новом Ubuntu 18.04 я обнаружил, что старые настройки больше не работают.

Потому что я использовал не мой смарт-хост gmail, а интернет-провайдера, поэтому я не знаю, когда он сломается. Итак, теперь мой вопрос: сломался ли он, потому что gmail изменил свой отпечаток смарт-хоста (очень маловероятно), или отпечатки смарт-хоста отличаются на разных машинах? Т.е. я не могу слепо копировать то, что работало, даже в новую ОС на той же машине, верно?

Кроме того, я попробовал предыдущий способ получить отпечатки пальцев smarthost, как в статье, но он не работает для меня сейчас. Как правильно получить отпечатки пальцев smarthost?

Спасибо.

2
Отпечатки SSL не останутся неизменными навсегда. AnFi 5 лет назад 0

1 ответ на вопрос

4
grawity

Там нет такого понятия, как «отпечаток пальца smarthost». Это отпечатки сертификатов TLS, которые в данном контексте просто принадлежат ретрансляционным серверам SMTP (smarthosts), но здесь все в равной степени относится к IMAPS, HTTPS, FTPS ... ко всему, что использует TLS.

Отпечатки сертификатов TLS обычно вообще не зависят от клиента: это хэш SHA1 (или SHA256) сертификата сервера, и обычно серверы используют один и тот же сертификат для всех.

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

И даже для того же сервера, это на самом деле очень вероятно, что отпечатки пальцев изменится - она будет отличаться каждый раз, когда сертификат обновляется (поскольку сроки действия изменения) или переиздан по любой другой причине (новый частный ключ, или нового эмитента, или новое доменное имя ...)

Если раньше сертификаты выдавались в течение 3-5 лет (и устанавливались вручную), то новая практика заключается в автоматизации процесса и использовании краткосрочных сертификатов, обычно 90 или даже 45 дней. Google делает это с ок. 2014, и вот как Let's Encrypt работает с первого дня. (По правилам CA / B Forum даже «стандартные» долгоживущие сертификаты TLS теперь ограничены 2 годами.)

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


На практике по крайней мере дистрибутивы Linux достаточно быстро обновляют свои пакеты сертификатов CA. (Я имею в виду, если они этого не делают, вы уверены, что вообще хотите запустить эту ОС на своем компьютере?)

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

Альтернатива 1: при желании вы можете создать кастом, tls_trust_file содержащий только один CA, который использует провайдер: например, сказать msmtp, что нужно доверять только DigiCert и ничему другому. Это распространенный метод, называемый «CA pinning». Но у него все еще есть шанс поломки, так как администраторы сервера могут свободно выбирать, с какими ЦС они будут работать.

Альтернатива 2: Некоторые программы поддерживают другой тип отпечатка пальца - отпечатки SPKI (хеши subjectPublicKeyInfo). Они представляют только необработанную пару ключей и не включают никаких дополнительных метаданных сертификата. Сервер может периодически обновлять свой сертификат, сохраняя одну и ту же пару ключей и, следовательно, один и тот же отпечаток SPKI.

(Однако, даже если ваш клиент поддерживает снятие отпечатков SPKI (msmtp нет), он будет иметь преимущество, только если вы знаете, что администраторы сервера обновляют свои сертификаты таким образом. В большинстве случаев они этого не делают.)

Большое спасибо, благодарность. Я действительно должен переосмыслить все настройки моего mSMTP, но это будет другой проблемой. Не могли бы вы также ответить на мой добавленный вопрос, _ "как получить отпечатки сертификатов TLS" _, пожалуйста? xpt 5 лет назад 0
Для SMTP статья, на которую вы ссылаетесь, имеет хорошую команду (`msmtp --serverinfo ...`). Для других протоколов я бы сказал, что она заслуживает своего собственного потока. grawity 5 лет назад 0

Похожие вопросы