Vai al contenuto principale

Validatore di sintassi DANE TLSA

Verifica usage, selector, matching type e hash offline, prima della pubblicazione DNS

Un record TLSA mal formato è ignorato silenziosamente dagli MTA conformi: il tuo deployment DANE non protegge nessuno, e lo scoprirai solo al prossimo incidente. Questo validatore TLSA analizza la tua bozza offline: verifica i quattro campi (usage, selector, matching type, hash), la lunghezza dei dati binari rispetto all'algoritmo e segnala ogni scostamento dalle RFC 6698 e 7671 prima di qualsiasi pubblicazione DNS.

Validazione offline integrale

Nessuna query DNS, nessuna connessione esterna. La tua bozza di record resta nel tuo browser. Ideale per validare un modello, un output di generatore o un record estratto da un wiki interno prima dell'esposizione pubblica.

Anatomia di un TLSA: 4 campi verificati

Il validatore scompone ogni campo: usage (da 0 a 3), selector (0 o 1), matching type (0, 1, 2) e dati esadecimali. Per ogni valore, lo strumento mostra il suo significato e la lunghezza di hash attesa (32 byte per SHA-256, 64 per SHA-512).

Rilevamento delle combinazioni non raccomandate

Le combinazioni sconsigliate in SMTP (usage 0 o 1 senza CA controllata, matching type 0 che pubblica il certificato grezzo) vengono segnalate. Lo strumento suggerisce la combinazione standard 3 1 1 per SMTP DANE.

Compatibilità con l'ecosistema SMTP DANE

Il validatore applica i vincoli pratici di Postfix, Exim e Microsoft 365: owner name _25._tcp.<host>, lunghezze di hash rigorose, codifica esadecimale in maiuscolo o minuscolo. Nessuna sorpresa al momento della pubblicazione DNS.

Preparazione alla rotazione di chiave

Valida più record TLSA contemporaneamente (chiave attuale e chiave successiva). Il validatore conferma che ogni record è sintatticamente corretto e può coesistere nella zona durante una rotazione di chiave senza interruzione.

Perché usare un validatore offline

Un record TLSA mal formato viene ignorato senza preavviso dagli MTA conformi. Credi che il tuo deployment DANE protegga il tuo flusso SMTP in entrata; in pratica, nessun server mittente verifica nulla. Il guasto è silenzioso fino al prossimo audit, o fino a un incidente di consegna che rivela la falla.

Il validatore di sintassi DANE TLSA analizza il tuo record senza pubblicare né interrogare il DNS. Nessun dato lascia il tuo browser, nessun segnale trapela verso un resolver esterno. Questo approccio offline copre quattro casi d'uso che l'audit in tempo reale non può trattare.

Casi d'uso tipici:

  • Prima del deployment: validare una bozza prima della pubblicazione DNS, per evitare un record silenziosamente ignorato.
  • Output di generatore: verificare la sintassi di un record prodotto da uno strumento di terze parti, un wiki interno o un modello condiviso.
  • Debug offline: riprodurre e correggere un errore senza toccare il DNS pubblico, per esempio in pre-produzione.
  • Revisione di configurazione: esaminare un record ricevuto da un partner o esportato da un'infrastruttura cliente prima di applicarlo.

Il validatore applica la specifica RFC 6698 sulla struttura e la RFC 7671 sui vincoli operativi. Nessuna query DNS, nessuna connessione esterna.


Come usare questo validatore in 3 passi

Passo 1: incollare il record TLSA

Copia il valore del tuo record nel campo previsto:

3 1 1 2bb183af2e2b295b444c1fd4072f2b59a8c1c9abf7f3f1e9b0d4c7e8f1a2b3c4

Puoi anche incollare la riga completa con l'owner name:

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

Il validatore estrae i quattro campi e analizza ciascuno in modo indipendente. In questo passo non viene effettuata alcuna connessione di rete.

Passo 2: leggere il verdetto

I risultati sono classificati per gravità:

  • Errore: problema bloccante, il record verrà ignorato o rifiutato dagli MTA conformi
  • Avvertimento: combinazione non raccomandata, funzionale ma che ti espone a rischi operativi
  • Valido: sintassi conforme alle RFC 6698 e 7671

Ogni messaggio include il campo interessato, il valore non valido e la correzione attesa.

Passo 3: correggere prima della pubblicazione

Adegua il tuo record alle raccomandazioni. Una volta che la sintassi è pulita, pubblica il TXT su _25._tcp.<host-mx> nella zona firmata DNSSEC dell'host MX, attendi la propagazione e conferma in tempo reale con il DANE TLSA Checker.


Validatore o verificatore: quando usare ciascuno strumento

I due strumenti sono complementari. Intervengono in momenti diversi del ciclo di vita di un record TLSA.

DimensioneValidatore (questo strumento)Verificatore
Momento d'usoPrima della pubblicazione DNSDopo la pubblicazione
Risoluzione DNSNessunaRisoluzione _25._tcp.<mx> in tempo reale
Verifica DNSSECNoSì, catena completa
Confronto del certificato in tempo realeNoSì, tramite STARTTLS sulla porta 25
Origine del recordManuale (incollato)DNS pubblico
Dati inviati al serverNessunoDominio analizzato

Flusso di lavoro raccomandato:

  1. Progetta o genera il record, poi usa il validatore per verificare la sintassi
  2. Pubblica il TXT nella zona DNSSEC dell'host MX, poi attendi la propagazione
  3. Lancia il verificatore per confermare DNSSEC e la corrispondenza del certificato in tempo reale

Il validatore rileva gli errori di immissione prima della pubblicazione. Il verificatore rileva le derive e conferma che il DNS pubblico servito corrisponde al certificato attualmente presentato tramite STARTTLS.


Anatomia di un record TLSA

Il record TLSA contiene quattro campi rigorosamente specificati.

Struttura generale

_25._tcp.mail.captaindns.com. IN TLSA <usage> <selector> <matching> <dati>
CampoValoriDescrizione
Usage0-3Ancoraggio di fiducia
Selector0-1Parte del certificato hashata
Matching type0-2Algoritmo di confronto
DatihexHash o blocco binario

Usage (campo 1)

ValoreNomeDescrizione
0PKIX-TAVincolo CA: il certificato deve essere firmato da questa CA E superare la validazione PKIX
1PKIX-EEVincolo certificato: corrispondenza esatta + validazione PKIX
2DANE-TAAncoraggio di fiducia: qualsiasi certificato firmato da questa CA è accettato
3DANE-EECertificato di dominio: corrispondenza esatta, senza validazione PKIX

Raccomandazione per SMTP: DANE-EE (3). L'ancoraggio è nella tua chiave, indipendentemente da qualsiasi autorità esterna.

Selector (campo 2)

ValoreNomeDescrizione
0CertCertificato completo (DER)
1SPKISubjectPublicKeyInfo (solo chiave pubblica)

Raccomandazione: SPKI (1). Il record resta valido finché la chiave pubblica viene conservata, indipendentemente dai rinnovi di certificato.

Matching type (campo 3)

ValoreNomeLunghezza hex attesa
0FullVariabile (certificato o chiave grezzi)
1SHA-25664 caratteri (32 byte)
2SHA-512128 caratteri (64 byte)

Raccomandazione: SHA-256 (1). Supportato universalmente, sufficientemente robusto, compatto.


La combinazione raccomandata per SMTP

3 1 1 è lo standard di fatto per SMTP DANE.

3 1 1 <sha256-della-spki>
  • Usage 3 (DANE-EE): nessuna dipendenza da una CA, ancoraggio diretto nella tua chiave
  • Selector 1 (SPKI): invariante rispetto al rinnovo di certificato finché la chiave viene conservata
  • Matching type 1 (SHA-256): 32 byte, perfettamente adatto

Le altre combinazioni sono possibili ma sconsigliate:

CombinazioneStatoPerché
3 1 1RaccomandataStandard SMTP, robusta, invariante ai rinnovi
3 0 1TollerataHash sul certificato completo, cambia a ogni rinnovo
2 0 1AccettabileDANE-TA su CA, nessun aggiornamento DNS al rinnovo
2 1 1AccettabileDANE-TA sulla SPKI della CA
3 1 0RifiutataMatching type 0 espone il certificato grezzo, dimensione DNS enorme
1 x xRifiutata in SMTPPKIX-EE raramente distribuibile lato MTA
0 x xRifiutata in SMTPPKIX-TA inadatta a SMTP

Il validatore segnala esplicitamente le combinazioni fuori raccomandazione e propone la combinazione standard.


Errori di sintassi comuni e correzioni

Usage fuori intervallo

Causa: valore di usage superiore a 3.

Correzione:

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

Selector non valido

Causa: selector diverso da 0 o 1.

Correzione:

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

Matching type fuori intervallo

Causa: matching type superiore a 2.

Correzione:

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

Dati esadecimali non validi

Causa: caratteri fuori dall'intervallo esadecimale (0-9, a-f, A-F).

Correzione:

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

Lunghezza di hash errata

Causa: la lunghezza dei dati non corrisponde al matching type.

Correzione SHA-256:

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

SHA-256 (matching type 1) richiede esattamente 64 caratteri esadecimali. SHA-512 (matching type 2) richiede esattamente 128 caratteri.

Combinazione usage/selector fragile

Causa: DANE-EE (3) + Cert completo (0) comporta un hash che cambia a ogni rinnovo di certificato.

Correzione raccomandata: passare a SPKI (1) per rendere il record invariante ai rinnovi (con l'opzione --reuse-key lato ACME).

- 3 0 1 <hash-del-certificato-completo>
+ 3 1 1 <hash-della-chiave-pubblica>

Owner name errato

Causa: record pubblicato sull'apex del dominio anziché sull'host MX, o sulla porta sbagliata.

Correzione: _25._tcp.<host-mx> esattamente. Per un MX mail.captaindns.com, è _25._tcp.mail.captaindns.com.


Preparare una rotazione di chiave

Più record TLSA nella stessa zona non sono un errore: è anzi lo schema raccomandato per una rotazione di chiave senza interruzione.

Procedura di rotazione pulita

  1. D-7: genera la chiave successiva, calcola il suo hash SPKI, pubblicalo in doppio:
_25._tcp.mail.captaindns.com. IN TLSA 3 1 1 <hash-chiave-attuale>
_25._tcp.mail.captaindns.com. IN TLSA 3 1 1 <hash-chiave-successiva>
  1. D-0: esegui la rotazione di certificato con la nuova chiave. Gli MTA conformi accettano la connessione se almeno uno dei due record corrisponde al certificato presentato.

  2. D+7 (o il doppio del TTL): rimuovi il record vecchio. La rotazione è terminata.

Cosa verifica il validatore

Il validatore tratta ogni record in modo indipendente e conferma che:

  • Ogni hash rispetta la lunghezza attesa dal suo matching type
  • Nessun campo esce dagli intervalli validi
  • Le combinazioni restano nelle raccomandazioni

Un record doppio non viene mai segnalato come errore quando entrambi sono sintatticamente corretti.


DANE e MTA-STS: approcci complementari

CriterioDANEMTA-STS
MeccanismoDNSSEC + record TLSAHTTPS + policy testuale
DipendenzaDNSSEC richiestoHTTPS richiesto
FiduciaCrittografica (DNS firmato)PKI (CA HTTPS)
Supporto Postfix / EximEccellenteBuono
Supporto Microsoft 365 / Google WorkspaceParziale o inesistenteCompleto
DeploymentComplesso (DNSSEC)Più semplice

Raccomandazione: non scegliere, distribuisci entrambi. Valida qui il tuo record TLSA e pubblica anche una policy MTA-STS. La copertura massima impone la combinazione.


Strumenti complementari e risorse

StrumentoQuando usarlo
DANE TLSA CheckerAudit in tempo reale del record pubblicato nel DNS, con validazione DNSSEC e corrispondenza del certificato
Generatore DANE TLSACreare un record TLSA a partire da un certificato o una chiave pubblica
Validatore sintassi MTA-STSValidare la policy MTA-STS associata offline
Validatore sintassi TLS-RPTValidare il record TLS-RPT associato offline
Audit email-authenticationPanoramica degli strumenti di autenticazione email

Guide collegate

Specifiche