Ir al contenido principal

Validador de sintaxis DANE TLSA

Verifica usage, selector, matching type y hash offline, antes de publicar en DNS

Un registro TLSA mal formado es ignorado silenciosamente por los MTA conformes: tu despliegue DANE no protege a nadie, y solo lo descubrirás en el próximo incidente. Este validador TLSA analiza tu borrador offline: verifica los cuatro campos (usage, selector, matching type, hash), la longitud de los datos binarios frente al algoritmo y señala cualquier desviación respecto a los RFC 6698 y 7671 antes de cualquier publicación DNS.

Validación offline íntegra

Ninguna consulta DNS, ninguna conexión externa. Tu borrador de registro permanece en tu navegador. Ideal para validar una plantilla, una salida de generador o un registro extraído de un wiki interno antes de exponerlo públicamente.

Anatomía de un TLSA: 4 campos verificados

El validador desglosa cada campo: usage (0 a 3), selector (0 o 1), matching type (0, 1, 2) y datos hexadecimales. Para cada valor, la herramienta muestra su significado y la longitud de hash esperada (32 bytes para SHA-256, 64 para SHA-512).

Detección de combinaciones no recomendadas

Las combinaciones desaconsejadas en SMTP (usage 0 o 1 sin CA controlada, matching type 0 que publica el certificado en bruto) se señalan. La herramienta sugiere la combinación estándar 3 1 1 para SMTP DANE.

Compatibilidad con el ecosistema SMTP DANE

El validador aplica las restricciones prácticas de Postfix, Exim y Microsoft 365: owner name _25._tcp.<host>, longitudes de hash estrictas, codificación hexadecimal en mayúsculas o minúsculas. Ninguna sorpresa al publicar en DNS.

Preparación de la rotación de clave

Valida varios registros TLSA a la vez (clave actual y clave siguiente). El validador confirma que cada registro es sintácticamente correcto y puede coexistir en la zona durante una rotación de clave sin cortes.

Por qué usar un validador offline

Un registro TLSA mal formado es ignorado sin aviso por los MTA conformes. Crees que tu despliegue DANE protege tu flujo SMTP entrante; en la práctica, ningún servidor emisor verifica nada. La avería es silenciosa hasta la próxima auditoría, o hasta que un incidente de entrega revele la grieta.

El validador de sintaxis DANE TLSA analiza tu registro sin publicar ni consultar el DNS. Ningún dato sale de tu navegador, ninguna señal se filtra a un resolutor externo. Este enfoque offline cubre cuatro casos de uso que la auditoría en directo no puede tratar.

Casos de uso típicos:

  • Antes del despliegue: validar un borrador antes de publicarlo en DNS, para evitar un registro silenciosamente ignorado.
  • Salida de generador: verificar la sintaxis de un registro producido por una herramienta de terceros, un wiki interno o una plantilla compartida.
  • Depuración offline: reproducir y corregir un error sin tocar el DNS público, por ejemplo en preproducción.
  • Revisión de configuración: examinar un registro recibido de un partner o exportado desde una infraestructura cliente antes de aplicarlo.

El validador aplica la especificación RFC 6698 sobre la estructura y la RFC 7671 sobre las restricciones operativas. Ninguna consulta DNS, ninguna conexión externa.


Cómo usar este validador en 3 pasos

Paso 1: pegar el registro TLSA

Copia el valor de tu registro en el campo previsto:

3 1 1 2bb183af2e2b295b444c1fd4072f2b59a8c1c9abf7f3f1e9b0d4c7e8f1a2b3c4

También puedes pegar la línea completa con el owner name:

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

El validador extrae los cuatro campos y analiza cada uno de forma independiente. En este paso no se realiza ninguna conexión de red.

Paso 2: leer el veredicto

Los resultados se clasifican por gravedad:

  • Error: problema bloqueante, el registro será ignorado o rechazado por los MTA conformes
  • Aviso: combinación no recomendada, funcional pero que expone a riesgos operativos
  • Válido: sintaxis conforme a los RFC 6698 y 7671

Cada mensaje incluye el campo afectado, el valor inválido y la corrección esperada.

Paso 3: corregir antes de publicar

Ajusta tu registro según las recomendaciones. Una vez la sintaxis está limpia, publica el registro TLSA en _25._tcp.<host-mx> en la zona firmada con DNSSEC del host MX, espera la propagación y confírmalo en directo con el DANE TLSA Checker.


Validador o verificador: cuándo usar cada herramienta

Las dos herramientas son complementarias. Intervienen en momentos distintos del ciclo de vida de un registro TLSA.

DimensiónValidador (esta herramienta)Verificador
Momento de usoAntes de publicar en DNSDespués de publicar
Resolución DNSNingunaResolución _25._tcp.<mx> en directo
Verificación DNSSECNoSí, cadena completa
Comparación del certificado en directoNoSí, vía STARTTLS en puerto 25
Origen del registroManual (pegado)DNS público
Datos enviados al servidorNingunoDominio analizado

Flujo de trabajo recomendado:

  1. Diseña o genera el registro y usa el validador para verificar la sintaxis
  2. Publica el registro TLSA en la zona DNSSEC del host MX y espera la propagación
  3. Lanza el verificador para confirmar DNSSEC y la coincidencia de certificado en directo

El validador detecta los errores de entrada antes de publicar. El verificador detecta las desviaciones y confirma que el DNS público servido coincide con el certificado presentado actualmente por STARTTLS.


Anatomía de un registro TLSA

El registro TLSA contiene cuatro campos estrictamente especificados.

Estructura general

_25._tcp.mail.captaindns.com. IN TLSA <usage> <selector> <matching> <datos>
CampoValoresDescripción
Usage0-3Anclaje de confianza
Selector0-1Parte del certificado hasheada
Matching type0-2Algoritmo de comparación
DatoshexHash o bloque binario

Usage (campo 1)

ValorNombreDescripción
0PKIX-TARestricción CA: el certificado debe estar firmado por esta CA Y pasar la validación PKIX
1PKIX-EERestricción de certificado: coincidencia exacta + validación PKIX
2DANE-TAAnclaje de confianza: cualquier certificado firmado por esta CA es aceptado
3DANE-EECertificado de dominio: coincidencia exacta, sin validación PKIX

Recomendación para SMTP: DANE-EE (3). El anclaje está en tu clave, independientemente de cualquier autoridad externa.

Selector (campo 2)

ValorNombreDescripción
0CertCertificado completo (DER)
1SPKISubjectPublicKeyInfo (solo la clave pública)

Recomendación: SPKI (1). El registro sigue siendo válido mientras se conserve la clave pública, independientemente de las renovaciones de certificado.

Matching type (campo 3)

ValorNombreLongitud hex esperada
0FullVariable (certificado o clave en bruto)
1SHA-25664 caracteres (32 bytes)
2SHA-512128 caracteres (64 bytes)

Recomendación: SHA-256 (1). Soportado universalmente, suficientemente robusto, compacto.


La combinación recomendada para SMTP

3 1 1 es el estándar de facto para SMTP DANE.

3 1 1 <sha256-de-la-spki>
  • Usage 3 (DANE-EE): sin dependencia de una CA, anclaje directo en tu clave
  • Selector 1 (SPKI): invariante frente a la renovación de certificado mientras se conserve la clave
  • Matching type 1 (SHA-256): 32 bytes, perfectamente adaptado

Las demás combinaciones son posibles pero desaconsejadas:

CombinaciónEstadoPor qué
3 1 1RecomendadaEstándar SMTP, robusta, invariante a las renovaciones
3 0 1ToleradaHash sobre el certificado completo, cambia en cada renovación
2 0 1AceptableDANE-TA sobre CA, sin actualización DNS al renovar
2 1 1AceptableDANE-TA sobre SPKI de la CA
3 1 0RechazadaMatching type 0 expone el certificado en bruto, tamaño DNS enorme
1 x xRechazada en SMTPPKIX-EE rara vez desplegable en MTAs
0 x xRechazada en SMTPPKIX-TA inadecuada para SMTP

El validador señala explícitamente las combinaciones fuera de recomendación y sugiere la combinación estándar.


Errores de sintaxis comunes y correcciones

Usage fuera de rango

Causa: valor de usage superior a 3.

Corrección:

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

Selector inválido

Causa: selector distinto de 0 o 1.

Corrección:

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

Matching type fuera de rango

Causa: matching type superior a 2.

Corrección:

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

Datos hexadecimales inválidos

Causa: caracteres fuera del rango hex (0-9, a-f, A-F).

Corrección:

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

Longitud de hash incorrecta

Causa: la longitud de los datos no coincide con el matching type.

Corrección SHA-256:

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

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

Combinación usage/selector frágil

Causa: DANE-EE (3) + Cert completo (0) provoca un hash que cambia en cada renovación de certificado.

Corrección recomendada: pasar a SPKI (1) para que el registro sea invariante a las renovaciones (con la opción --reuse-key en el lado ACME).

- 3 0 1 <hash-del-certificado-completo>
+ 3 1 1 <hash-de-la-clave-publica>

Owner name incorrecto

Causa: registro publicado en el apex del dominio en vez del host MX, o en el puerto equivocado.

Corrección: _25._tcp.<host-mx> exactamente. Para un MX mail.captaindns.com, es _25._tcp.mail.captaindns.com.


Preparar una rotación de clave

Varios registros TLSA en la misma zona no son un error: es de hecho el patrón recomendado para una rotación de clave sin interrupción.

Procedimiento de rotación limpio

  1. D-7: genera la siguiente clave, calcula su hash SPKI y publícalo en doble:
_25._tcp.mail.captaindns.com. IN TLSA 3 1 1 <hash-clave-actual>
_25._tcp.mail.captaindns.com. IN TLSA 3 1 1 <hash-clave-siguiente>
  1. D-0: ejecuta la rotación de certificado con la nueva clave. Los MTA conformes aceptan la conexión si al menos uno de los dos registros coincide con el certificado presentado.

  2. D+7 (o el doble del TTL): elimina el registro antiguo. La rotación está terminada.

Lo que verifica el validador

El validador procesa cada registro de forma independiente y confirma que:

  • Cada hash respeta la longitud esperada por su matching type
  • Ningún campo sale del rango válido
  • Las combinaciones se mantienen dentro de las recomendaciones

Un registro doble nunca se señala como error cuando los dos son sintácticamente correctos.


DANE y MTA-STS: enfoques complementarios

CriterioDANEMTA-STS
MecanismoDNSSEC + registro TLSAHTTPS + política de texto
DependenciaDNSSEC requeridoHTTPS requerido
ConfianzaCriptográfica (DNS firmado)PKI (CA HTTPS)
Soporte Postfix / EximExcelenteBueno
Soporte Microsoft 365 / Google WorkspaceParcial a inexistenteCompleto
DespliegueComplejo (DNSSEC)Más sencillo

Recomendación: no elijas, despliega los dos. Valida aquí tu registro TLSA y publica también una política MTA-STS. La cobertura máxima impone la combinación.


Herramientas complementarias y recursos

HerramientaCuándo usarla
DANE TLSA CheckerAuditoría en directo del registro publicado en DNS, con validación DNSSEC y coincidencia de certificado
Generador DANE TLSACrear un registro TLSA a partir de un certificado o una clave pública
Validador sintaxis MTA-STSValidar la política MTA-STS asociada offline
Validador sintaxis TLS-RPTValidar el registro TLS-RPT asociado offline
Auditoría email-authenticationVista general de las herramientas de autenticación de correo

Guías relacionadas

Especificaciones