Ir para o conteúdo principal

Validador de sintaxe DANE TLSA

Verifique usage, selector, matching type e hash offline, antes da publicação no DNS

Um registro TLSA mal formado é ignorado silenciosamente pelos MTAs conformes: seu deploy DANE não protege ninguém, e você só vai descobrir no próximo incidente. Este validador TLSA analisa seu rascunho offline: verifica os quatro campos (usage, selector, matching type, hash), o comprimento dos dados binários em relação ao algoritmo e sinaliza cada desvio em relação às RFC 6698 e 7671 antes de qualquer publicação no DNS.

Validação offline integral

Nenhuma consulta DNS, nenhuma conexão externa. Seu rascunho de registro permanece no seu navegador. Ideal para validar um modelo, uma saída de gerador ou um registro extraído de um wiki interno antes da exposição pública.

Anatomia de um TLSA: 4 campos verificados

O validador decompõe cada campo: usage (0 a 3), selector (0 ou 1), matching type (0, 1, 2) e dados hexadecimais. Para cada valor, a ferramenta exibe seu significado e o comprimento de hash esperado (32 bytes para SHA-256, 64 para SHA-512).

Detecção de combinações não recomendadas

As combinações desaconselhadas em SMTP (usage 0 ou 1 sem CA controlada, matching type 0 que publica o certificado bruto) são sinalizadas. A ferramenta sugere a combinação padrão 3 1 1 para SMTP DANE.

Compatibilidade com o ecossistema SMTP DANE

O validador aplica as restrições práticas do Postfix, Exim e Microsoft 365: owner name _25._tcp.<host>, comprimentos de hash rigorosos, codificação hexadecimal em maiúsculas ou minúsculas. Nenhuma surpresa na publicação DNS.

Preparação da rotação de chave

Valide vários registros TLSA simultaneamente (chave atual e chave seguinte). O validador confirma que cada registro é sintaticamente correto e pode coexistir na zona durante uma rotação de chave sem interrupção.

Por que usar um validador offline

Um registro TLSA mal formado é ignorado sem aviso pelos MTAs conformes. Você acredita que seu deploy DANE protege seu fluxo SMTP de entrada; na prática, nenhum servidor emissor verifica nada. A falha é silenciosa até a próxima auditoria, ou até um incidente de entrega que exponha a brecha.

O validador de sintaxe DANE TLSA analisa seu registro sem publicar nem consultar o DNS. Nenhum dado sai do seu navegador, nenhum sinal vaza para um resolver externo. Essa abordagem offline cobre quatro casos de uso que a auditoria em tempo real não consegue tratar.

Casos de uso típicos:

  • Antes do deploy: validar um rascunho antes da publicação no DNS, para evitar um registro silenciosamente ignorado.
  • Saída de gerador: verificar a sintaxe de um registro produzido por uma ferramenta de terceiros, um wiki interno ou um modelo compartilhado.
  • Depuração offline: reproduzir e corrigir um erro sem mexer no DNS público, por exemplo em pré-produção.
  • Revisão de configuração: examinar um registro recebido de um parceiro ou exportado de uma infraestrutura cliente antes de aplicá-lo.

O validador aplica a especificação RFC 6698 sobre a estrutura e a RFC 7671 sobre as restrições operacionais. Nenhuma consulta DNS, nenhuma conexão externa.


Como usar este validador em 3 passos

Passo 1: colar o registro TLSA

Copie o valor do seu registro no campo previsto:

3 1 1 2bb183af2e2b295b444c1fd4072f2b59a8c1c9abf7f3f1e9b0d4c7e8f1a2b3c4

Você também pode colar a linha completa com o owner name:

_25._tcp.mail.captaindns.com. IN TLSA 3 1 1 2bb183af...

O validador extrai os quatro campos e analisa cada um de forma independente. Nenhuma conexão de rede é feita nesta etapa.

Passo 2: ler o veredicto

Os resultados são classificados por gravidade:

  • Erro: problema bloqueante, o registro será ignorado ou rejeitado pelos MTAs conformes
  • Aviso: combinação não recomendada, funcional mas que expõe a riscos operacionais
  • Válido: sintaxe conforme as RFC 6698 e 7671

Cada mensagem inclui o campo afetado, o valor inválido e a correção esperada.

Passo 3: corrigir antes da publicação

Ajuste seu registro conforme as recomendações. Quando a sintaxe estiver limpa, publique o TXT em _25._tcp.<host-mx> na zona assinada por DNSSEC do host MX, aguarde a propagação e confirme em tempo real com o DANE TLSA Checker.


Validador ou verificador: quando usar cada ferramenta

As duas ferramentas são complementares. Atuam em momentos diferentes do ciclo de vida de um registro TLSA.

DimensãoValidador (esta ferramenta)Verificador
Momento de usoAntes da publicação no DNSApós a publicação
Resolução DNSNenhumaResolução _25._tcp.<mx> em tempo real
Verificação DNSSECNãoSim, cadeia completa
Comparação do certificado em tempo realNãoSim, via STARTTLS na porta 25
Origem do registroManual (colado)DNS público
Dados enviados ao servidorNenhumDomínio analisado

Fluxo de trabalho recomendado:

  1. Projete ou gere o registro e use o validador para verificar a sintaxe
  2. Publique o TXT na zona DNSSEC do host MX e aguarde a propagação
  3. Lance o verificador para confirmar DNSSEC e a correspondência do certificado em tempo real

O validador detecta erros de entrada antes da publicação. O verificador detecta desvios e confirma que o DNS público servido corresponde ao certificado atualmente apresentado via STARTTLS.


Anatomia de um registro TLSA

O registro TLSA contém quatro campos rigorosamente especificados.

Estrutura geral

_25._tcp.mail.captaindns.com. IN TLSA <usage> <selector> <matching> <dados>
CampoValoresDescrição
Usage0-3Ancoragem de confiança
Selector0-1Parte do certificado hasheada
Matching type0-2Algoritmo de comparação
DadoshexHash ou bloco binário

Usage (campo 1)

ValorNomeDescrição
0PKIX-TARestrição CA: o certificado deve ser assinado por esta CA E passar na validação PKIX
1PKIX-EERestrição de certificado: correspondência exata + validação PKIX
2DANE-TAAncoragem de confiança: qualquer certificado assinado por esta CA é aceito
3DANE-EECertificado de domínio: correspondência exata, sem validação PKIX

Recomendação para SMTP: DANE-EE (3). A ancoragem está na sua chave, independentemente de qualquer autoridade externa.

Selector (campo 2)

ValorNomeDescrição
0CertCertificado completo (DER)
1SPKISubjectPublicKeyInfo (somente chave pública)

Recomendação: SPKI (1). O registro continua válido enquanto a chave pública for preservada, independentemente das renovações de certificado.

Matching type (campo 3)

ValorNomeComprimento hex esperado
0FullVariável (certificado ou chave brutos)
1SHA-25664 caracteres (32 bytes)
2SHA-512128 caracteres (64 bytes)

Recomendação: SHA-256 (1). Suportado universalmente, suficientemente robusto, compacto.


A combinação recomendada para SMTP

3 1 1 é o padrão de fato para SMTP DANE.

3 1 1 <sha256-da-spki>
  • Usage 3 (DANE-EE): sem dependência de uma CA, ancoragem direta na sua chave
  • Selector 1 (SPKI): invariante à renovação de certificado enquanto a chave for preservada
  • Matching type 1 (SHA-256): 32 bytes, perfeitamente adequado

As outras combinações são possíveis, mas desaconselhadas:

CombinaçãoStatusPor quê
3 1 1RecomendadaPadrão SMTP, robusto, invariante às renovações
3 0 1ToleradaHash sobre o certificado completo, muda a cada renovação
2 0 1AceitávelDANE-TA sobre CA, sem atualização DNS na renovação
2 1 1AceitávelDANE-TA sobre SPKI da CA
3 1 0RecusadaMatching type 0 expõe o certificado bruto, tamanho DNS enorme
1 x xRecusada em SMTPPKIX-EE raramente implantável em MTAs
0 x xRecusada em SMTPPKIX-TA inadequada para SMTP

O validador sinaliza explicitamente as combinações fora de recomendação e propõe a combinação padrão.


Erros de sintaxe comuns e correções

Usage fora do intervalo

Causa: valor de usage maior que 3.

Correção:

- 4 1 1 2bb183af...
+ 3 1 1 2bb183af...

Selector inválido

Causa: selector diferente de 0 ou 1.

Correção:

- 3 2 1 2bb183af...
+ 3 1 1 2bb183af...

Matching type fora do intervalo

Causa: matching type maior que 2.

Correção:

- 3 1 3 2bb183af...
+ 3 1 1 2bb183af...

Dados hexadecimais inválidos

Causa: caracteres fora do intervalo hex (0-9, a-f, A-F).

Correção:

- 3 1 1 2bg183zf...
+ 3 1 1 2bb183af...

Comprimento de hash incorreto

Causa: o comprimento dos dados não corresponde ao matching type.

Correção SHA-256:

- 3 1 1 2bb183
+ 3 1 1 2bb183af2e2b295b444c1fd4072f2b59a8c1c9abf7f3f1e9b0d4c7e8f1a2b3c4

SHA-256 (matching type 1) exige exatamente 64 caracteres hex. SHA-512 (matching type 2) exige exatamente 128 caracteres.

Combinação usage/selector frágil

Causa: DANE-EE (3) + Cert completo (0) gera um hash que muda a cada renovação de certificado.

Correção recomendada: passar para SPKI (1) para tornar o registro invariante às renovações (com a opção --reuse-key no lado ACME).

- 3 0 1 <hash-do-certificado-completo>
+ 3 1 1 <hash-da-chave-publica>

Owner name incorreto

Causa: registro publicado no apex do domínio em vez do host MX, ou na porta errada.

Correção: _25._tcp.<host-mx> exatamente. Para um MX mail.captaindns.com, é _25._tcp.mail.captaindns.com.


Preparar uma rotação de chave

Vários registros TLSA na mesma zona não são um erro: é até o padrão recomendado para uma rotação de chave sem interrupção.

Procedimento de rotação limpa

  1. D-7: gere a próxima chave, calcule seu hash SPKI e publique-o em duplicidade:
_25._tcp.mail.captaindns.com. IN TLSA 3 1 1 <hash-chave-atual>
_25._tcp.mail.captaindns.com. IN TLSA 3 1 1 <hash-chave-seguinte>
  1. D-0: execute a rotação de certificado com a nova chave. Os MTAs conformes aceitam a conexão se pelo menos um dos dois registros corresponder ao certificado apresentado.

  2. D+7 (ou o dobro do TTL): remova o registro antigo. A rotação está concluída.

O que o validador verifica

O validador trata cada registro de forma independente e confirma que:

  • Cada hash respeita o comprimento esperado pelo seu matching type
  • Nenhum campo sai dos intervalos válidos
  • As combinações permanecem dentro das recomendações

Um registro em duplicidade nunca é sinalizado como erro quando os dois são sintaticamente corretos.


DANE e MTA-STS: abordagens complementares

CritérioDANEMTA-STS
MecanismoDNSSEC + registro TLSAHTTPS + política em texto
DependênciaDNSSEC necessárioHTTPS necessário
ConfiançaCriptográfica (DNS assinado)PKI (CA HTTPS)
Suporte Postfix / EximExcelenteBom
Suporte Microsoft 365 / Google WorkspaceParcial a inexistenteCompleto
DeployComplexo (DNSSEC)Mais simples

Recomendação: não escolha, implante os dois. Valide seu registro TLSA aqui e publique também uma política MTA-STS. A cobertura máxima impõe a combinação.


Ferramentas complementares e recursos

FerramentaQuando usar
DANE TLSA CheckerAuditoria em tempo real do registro publicado no DNS, com validação DNSSEC e correspondência de certificado
Gerador DANE TLSACriar um registro TLSA a partir de um certificado ou de uma chave pública
Validador sintaxe MTA-STSValidar a política MTA-STS associada offline
Validador sintaxe TLS-RPTValidar o registro TLS-RPT associado offline
Auditoria email-authenticationVisão geral das ferramentas de autenticação de e-mail

Guias relacionados

Especificações