Não existe uma impressão digital "smarthost". Estas são impressões digitais de certificados TLS, que por acaso pertencem a servidores de retransmissão SMTP (smarthosts) neste contexto - mas tudo aqui se aplica igualmente a IMAPS, HTTPS, FTPS ... qualquer coisa que use TLS.
Impressões digitais de certificados TLS geralmente não dependem do cliente: elas são um hash SHA1 (ou SHA256) do certificado do servidor, e os servidores geralmente usam o mesmo certificado para todos.
Mas uma exceção pode ser servidores atrás de um balanceador de carga: sites grandes podem ter vários servidores atrás de um único nome e, embora possam compartilhar um certificado, isso não é garantido - eles poderiam usar facilmente 20 ou 50 certificados de uma só vez também.
E mesmo para o mesmo servidor, é muito provável que a impressão digital mudará - será diferente toda vez que o certificado for renovado (porque as datas de validade alteração) ou reemitidos por qualquer outro motivo (nova chave privada ou novo emissor ou novo nome de domínio ...)
Enquanto os certificados costumavam ser emitidos por 3 a 5 anos no passado (e instalados manualmente), a nova prática é automatizar o processo e usar de curta duração , normalmente 90 ou mesmo 45 dias. O Google faz isso desde aprox. 2014, e é assim que vamos criptografar funciona desde o primeiro dia. (De acordo com as regras do CA / B Forum, até mesmo os certificados TLS de longa duração "padrão" agora são limitados a 2 anos.)
Portanto, a única vez em que a opção tls_fingerprint
é útil é quando você sabe exatamente quando o certificado deve ser alterado (por exemplo, se você é a pessoa que está alterando). Caso contrário, ele continuará quebrando sua configuração a cada mês ou dois.
Na prática, pelo menos as distribuições Linux são razoavelmente rápidas em atualizar seus pacotes de certificados de CA. (Quer dizer, se eles não , você tem certeza de que deseja rodar esse SO no seu computador?)
Então, eu diria que o artigo está tentando assustar seus leitores com os problemas errados. Uma preocupação muito maior é que os pacotes de certificados de CA geralmente incluem algumas CAs com controle governamental e obscuras de vários países.
Alternativa 1: Se desejar, você pode criar um personalizado tls_trust_file
contendo apenas a única CA usada pelo provedor: por exemplo, diga ao msmtp para confiar apenas no DigiCert e nada mais. Este é um método comum, chamado "CA pinning". Mas ainda tem alguma chance de quebra, já que os administradores do servidor são livres para escolher com quais CAs eles farão negócios.
Alternativa 2: Alguns programas suportam um tipo de impressão digital diferente - impressões digitais SPKI (hashes de subjectPublicKeyInfo). Estes representam apenas o par de chaves brutos e não incluem metadados de certificado adicionais. Um servidor poderia renovar periodicamente o seu certificado, mantendo o mesmo par de chaves e, portanto, a mesma impressão digital do SPKI.
(No entanto, mesmo que o seu cliente suporte impressões digitais SPKI (o msmtp não), ele só terá uma vantagem se você souber que os administradores do servidor renovam seus certificados dessa maneira. Na maioria das vezes, eles não o fazem.)