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