Ir para o conteudo principal

De testing a enforce: estratégia de implantação progressiva do MTA-STS

Por CaptainDNS
Publicado em 10 de março de 2026

Diagrama de progressão da implantação MTA-STS, do modo testing ao modo enforce
TL;DR
  • MTA-STS em modo testing coleta relatórios TLS-RPT sem bloquear a entrega de e-mails, ideal para detectar problemas de configuração
  • O modo enforce recusa qualquer conexão SMTP não cifrada com seus servidores MX, bloqueando ataques de downgrade
  • A transição de testing para enforce ocorre em quatro etapas: implantação inicial, configuração TLS-RPT, análise dos relatórios (1 a 2 semanas), depois ativação do enforce
  • Hospede sua política MTA-STS gratuitamente com o CaptainDNS: dois registros DNS são suficientes

Publicar uma política MTA-STS em modo enforce sem fase de teste equivale a ativar um firewall sem conhecer o tráfego legítimo. Resultado possível: e-mails bloqueados, parceiros que não conseguem mais escrever para você e nenhuma visibilidade sobre a causa. Segundo o Google Transparency Report, mais de 90 % do tráfego Gmail de entrada já utiliza TLS, mas sem MTA-STS nada garante que essa criptografia seja obrigatória em vez de oportunista.

O RFC 8461 prevê exatamente esse cenário. Ele define dois modos de funcionamento: testing (observar sem bloquear) e enforce (bloquear conexões não cifradas). A estratégia correta consiste em implantar primeiro em testing, monitorar os relatórios TLS-RPT durante uma a duas semanas, corrigir as anomalias e então mudar para enforce.

Este guia detalha cada etapa dessa transição. Ele é destinado a administradores de sistemas, DevOps e responsáveis pela segurança de e-mail que gerenciam um ou mais domínios de mensagens.

Entendendo os modos MTA-STS: testing vs enforce

O MTA-STS (RFC 8461) impõe a criptografia TLS para e-mails de entrada por meio de uma política HTTPS que contém três parâmetros: os servidores MX autorizados, a duração do cache (max_age) e o modo (testing ou enforce).

Modo testing: monitorar sem bloquear

O modo testing do MTA-STS permite que os servidores de envio (Gmail, Outlook, Yahoo) verifiquem sua política sem bloquear a entrega em caso de falha TLS. As anomalias são reportadas por meio de um relatório TLS-RPT (RFC 8460) enviado para o endereço que você configurou.

version: STSv1
mode: testing
mx: mx.captaindns.com
max_age: 86400

Esse modo permite detectar três tipos de problemas antes que afetem a entrega:

  1. Certificado TLS inválido: certificado expirado, nome de domínio incorreto ou cadeia de confiança incompleta
  2. MX não listado: um servidor MX responde aos e-mails mas não aparece na política
  3. Falha de negociação TLS: o servidor MX não suporta STARTTLS ou rejeita a conexão cifrada

Modo enforce: impor o ciframento TLS

O modo enforce do MTA-STS obriga os servidores de envio a recusar a entrega se a conexão TLS falhar ou se o servidor MX não constar na política.

version: STSv1
mode: enforce
mx: mx.captaindns.com
max_age: 604800

Esse modo oferece proteção real contra ataques de downgrade SMTP. Um atacante que tente remover o STARTTLS ou redirecionar para um servidor MX falso não conseguirá interceptar os e-mails: o servidor de envio recusará a entrega.

Diagrama de progressão da implantação MTA-STS: testing e depois enforce

Etapa 1: implantar o MTA-STS em modo testing

A implantação inicial requer dois elementos DNS e um arquivo de política HTTPS.

Registro DNS TXT

Publique um registro TXT em _mta-sts.captaindns.com:

_mta-sts.captaindns.com.  IN  TXT  "v=STSv1; id=20260310T000000"

O campo id é um identificador de versão. Incremente-o a cada modificação da política para que os servidores de envio baixem a nova versão.

Arquivo de política HTTPS

O arquivo deve estar acessível em https://mta-sts.captaindns.com/.well-known/mta-sts.txt. Com o CaptainDNS, dois registros CNAME são suficientes: sem servidor web para gerenciar, sem certificado para renovar.

Comece com um max_age curto (86 400 segundos = 1 dia) para poder corrigir rapidamente em caso de problema:

version: STSv1
mode: testing
mx: mx.captaindns.com
max_age: 86400

Verificação

Use o verificador MTA-STS para confirmar que seu registro DNS e sua política estão publicados corretamente.

Etapa 2: configurar TLS-RPT para receber os relatórios

Sem TLS-RPT, o modo testing é inútil. Os servidores de envio detectam os problemas, mas não têm para onde reportá-los.

Registro DNS TLS-RPT

Publique um registro TXT em _smtp._tls.captaindns.com:

_smtp._tls.captaindns.com.  IN  TXT  "v=TLSRPTv1; rua=mailto:tls-reports@captaindns.com"

Os relatórios TLS-RPT (RFC 8460) são enviados diariamente em formato JSON. Cada relatório contém:

  • O domínio remetente e o domínio destinatário
  • O tipo de política aplicada (MTA-STS ou DANE)
  • O número de sessões bem-sucedidas e falhadas
  • O detalhe das falhas: tipo de erro, certificado apresentado, código de resultado

Configurar com o CaptainDNS

O gerador TLS-RPT cria o registro DNS adaptado ao seu domínio. Você pode direcionar os relatórios para um endereço de e-mail ou um endpoint HTTPS.

Etapa 3: analisar os relatórios e corrigir os problemas

Aguarde 1 a 2 semanas em modo testing antes de mudar para enforce. Esse prazo permite coletar relatórios TLS-RPT suficientes para identificar problemas recorrentes.

Interpretar os relatórios

Tipo de falhaCausa provávelCorreção
certificate-expiredCertificado TLS do servidor MX expiradoRenovar o certificado
certificate-host-mismatchO CN/SAN do certificado não corresponde ao nome MXCorrigir o certificado ou a política
starttls-not-supportedO servidor MX não suporta STARTTLSAtivar STARTTLS no servidor
sts-policy-fetch-errorA política HTTPS está inacessívelVerificar o DNS CNAME e o servidor HTTPS
sts-webpki-invalidO certificado HTTPS da política é inválidoRenovar o certificado do servidor web
validation-failureO MX não consta na políticaAdicionar o MX faltante à política

Critérios para mudar para enforce

Antes de ativar o modo enforce, verifique estas três condições:

  1. Zero falhas TLS recorrentes nos relatórios dos últimos 7 dias
  2. Todos os seus servidores MX constam na política
  3. Certificados TLS válidos em cada servidor MX (não expirados, CN/SAN correto)

Se falhas persistirem, corrija-as primeiro. Uma mudança prematura para enforce bloqueará os e-mails provenientes dos servidores que encontram esses erros.

Checklist de verificações antes da ativação do modo enforce

Etapa 4: mudar para modo enforce

A transição é feita com duas modificações: o arquivo de política e o registro DNS.

Modificar a política

Altere mode: testing para mode: enforce e aumente o max_age para 604 800 segundos (7 dias):

version: STSv1
mode: enforce
mx: mx.captaindns.com
max_age: 604800

Um max_age de 7 dias oferece um bom equilíbrio: longo o suficiente para que os servidores de envio armazenem a política em cache (proteção contra TOFU), curto o suficiente para permitir um retorno ao testing se necessário.

Atualizar o identificador DNS

Incremente o id no registro TXT para forçar a atualização:

_mta-sts.captaindns.com.  IN  TXT  "v=STSv1; id=20260310T120000"

Estratégia de reversão

Se surgirem problemas após a ativação do enforce:

  1. Volte imediatamente para mode: testing
  2. Incremente o id DNS
  3. Aguarde a expiração do max_age anterior (7 dias no máximo)
  4. Analise os novos relatórios TLS-RPT
  5. Corrija os problemas antes de tentar novamente a ativação do enforce

Erros comuns e soluções

ErroConsequênciaSolução
Ativar enforce sem TLS-RPTNenhuma visibilidade sobre os bloqueiosSempre configurar TLS-RPT antes do enforce
max_age muito longo em testingCorreção lenta em caso de problemaUsar 86 400 s (1 dia) em testing
max_age muito curto em enforceProteção TOFU reduzidaUsar 604 800 s (7 dias) em enforce
Esquecer um servidor MX na políticaE-mails rejeitados em enforceListar todos os MX com dig MX captaindns.com
Não incrementar o idServidores de envio usam a política antigaSempre alterar o id após modificação
Certificado TLS expiradoFalha de validação em enforceAutomatizar a renovação (Let's Encrypt)

Plano de ação recomendado

  1. Verifique sua configuração atual: execute uma análise com o verificador MTA-STS
  2. Implante em modo testing: publique sua política com mode: testing e max_age: 86400
  3. Ative TLS-RPT: configure o registro _smtp._tls para receber os relatórios diários
  4. Monitore por 1 a 2 semanas: analise cada relatório, corrija as falhas TLS
  5. Mude para enforce: altere mode: enforce, aumente max_age para 604 800 s, incremente o id

Proteja o transporte dos seus e-mails agora: hospede sua política MTA-STS gratuitamente com o CaptainDNS. Dois registros DNS, zero servidores web, proteção ativa em 5 minutos.


FAQ

Qual é a diferença entre o modo testing e o modo enforce do MTA-STS?

Em modo testing, os servidores de envio verificam sua política MTA-STS, mas entregam os e-mails mesmo se a conexão TLS falhar. Eles enviam um relatório TLS-RPT para sinalizar o problema. Em modo enforce, os servidores recusam a entrega se o TLS falhar ou se o servidor MX não constar na política.

Quanto tempo é preciso ficar em modo testing antes de mudar para enforce?

Mínimo de 1 a 2 semanas. Esse prazo permite coletar relatórios TLS-RPT suficientes dos principais remetentes (Gmail, Outlook, Yahoo). Se os relatórios mostrarem zero falhas TLS durante 7 dias consecutivos, você pode mudar para enforce.

O que acontece se eu ativar o enforce diretamente, sem fase de testing?

Os e-mails provenientes de servidores que encontrem problemas TLS com seus MX serão rejeitados. Sem relatórios TLS-RPT prévios, você não terá visibilidade sobre essas rejeições. Parceiros ou clientes podem não conseguir mais enviar e-mails para você sem que você saiba.

Qual max_age usar em modo testing e em modo enforce?

Em testing, use 86 400 segundos (1 dia). Esse prazo curto permite corrigir rapidamente a política se um problema for detectado. Em enforce, mude para 604 800 segundos (7 dias) para reduzir a vulnerabilidade TOFU: os servidores de envio armazenam a política em cache por mais tempo.

Como voltar ao modo testing depois de ativar o enforce?

Modifique o arquivo de política para retornar a mode: testing e incremente o id no registro DNS TXT. Os servidores de envio que armazenaram a política enforce em cache continuarão a aplicá-la até a expiração do max_age anterior (7 dias no máximo).

O TLS-RPT é obrigatório para o MTA-STS?

Não, o TLS-RPT não é tecnicamente necessário para que o MTA-STS funcione. Mas sem TLS-RPT, você não tem visibilidade sobre as falhas TLS. Na prática, implantar MTA-STS sem TLS-RPT equivale a pilotar às cegas. Os dois protocolos foram projetados para funcionar em conjunto.

O Gmail e o Outlook respeitam o modo testing do MTA-STS?

Sim. Gmail, Outlook e Yahoo verificam as políticas MTA-STS em modo testing e enviam relatórios TLS-RPT para o endereço configurado. Em modo testing, entregam os e-mails normalmente mesmo em caso de falha TLS, mas sinalizam o problema no relatório diário.

Baixe a checklist de implementação

Assistentes podem reutilizar a checklist através dos exports JSON ou CSV abaixo.

Glossário

  • MTA-STS: Mail Transfer Agent Strict Transport Security (RFC 8461). Política publicada via HTTPS que impõe o ciframento TLS para a recepção de e-mails em um domínio.
  • TLS-RPT: SMTP TLS Reporting (RFC 8460). Mecanismo de relatórios diários que sinaliza falhas de negociação TLS entre servidores de e-mail.
  • TOFU: Trust On First Use. Modelo de segurança em que a primeira conexão não é verificada, mas as seguintes são validadas graças aos dados armazenados em cache.
  • max_age: duração (em segundos) durante a qual um servidor de envio mantém em cache a política MTA-STS. Determina a frequência de atualização.
  • STARTTLS: extensão SMTP (RFC 3207) que permite negociar uma conexão TLS após o estabelecimento de uma conexão em texto claro na porta 25.
  • Downgrade SMTP: ataque de rede que remove a negociação STARTTLS para interceptar e-mails em texto claro.

Guias de segurança do transporte de e-mail relacionados

Fontes

Artigos relacionados