Там нет такого понятия, как «отпечаток пальца 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 нет), он будет иметь преимущество, только если вы знаете, что администраторы сервера обновляют свои сертификаты таким образом. В большинстве случаев они этого не делают.)