Struttura e funzionamento di un record DKIM TXT
Il protocollo DKIM (DomainKeys Identified Mail) rappresenta uno dei pilastri fondamentali per l'autenticazione della posta elettronica. Il suo scopo principale è consentire a un dominio di associare il proprio nome a un messaggio email, garantendo l'integrità del contenuto attraverso una firma crittografica. Questa firma viene verificata dai server di ricezione recuperando la chiave pubblica del mittente pubblicata all'interno del Domain Name System (DNS) sotto forma di record TXT.
Un record DKIM TXT è composto da una serie di coppie chiave-valore, denominate tag, separate da punti e virgola. Ad esempio, una struttura tipica si presenta come v=DKIM1; k=rsa; p=…. Ciascun tag ha un ruolo specifico:
- v (Versione): Definisce la versione del protocollo DKIM.
- k (Tipo di chiave): Specifica l'algoritmo crittografico utilizzato per la coppia di chiavi.
- p (Chiave pubblica): Contiene la chiave pubblica codificata in Base64, necessaria per decifrare la firma del messaggio.
- s (Servizi): Definisce i tipi di servizio che utilizzano questo record (ad esempio, la posta elettronica).
- h (Algoritmi di hash): Specifica gli algoritmi di hash consentiti per la generazione delle firme.
Il corretto posizionamento e la formattazione di questi tag sono cruciali per evitare che i server riceventi scartino il record, invalidando l'autenticazione delle email inviate.
Analisi locale e sicurezza dei dati
L'utilizzo di questo strumento avviene interamente all'interno del browser dell'utente. Il record DKIM incollato non viene caricato su server esterni né salvato, garantendo che l'analisi del testo rimanga un'operazione locale.
È importante comprendere la differenza tra questa verifica sintattica e un controllo DNS completo. Lo strumento esegue una verifica locale del testo del record. Non interroga DNS né verifica un'email firmata, quindi usa il risultato come revisione della configurazione piuttosto che come prova di consegna. L'analisi si concentra sulla validità formale dei tag, sulla lunghezza delle chiavi e sulla conformità agli standard di formattazione, senza verificare se il record sia effettivamente pubblicato o se il selettore DNS sia configurato correttamente sui server autorevoli.
Gestione dei limiti DNS e frammentazione TXT
Le specifiche del protocollo DNS impongono restrizioni precise sulla lunghezza delle stringhe all'interno dei record TXT. Un record DNS TXT può contenere diverse stringhe di caratteri, ciascuna limitata a 255 byte. Quando una chiave pubblica, in particolare una chiave RSA a 2048 bit, supera questo limite, il record deve essere suddiviso in più frammenti racchiusi tra virgolette.
Il tool è progettato per gestire queste complessità di presentazione accettando input fino a un limite di 20,000 caratteri. I blocchi TXT tra virgolette e le parentesi tipiche dei file di zona vengono riconosciuti, estratti e uniti automaticamente prima di procedere con l'analisi sintattica. Se la formattazione delle virgolette non è corretta, lo strumento segnala l'errore per impedire che una configurazione errata venga pubblicata nel DNS del dominio.
Regole di validazione dei tag e messaggi di errore
Durante l'analisi del record, lo strumento applica regole rigide per ogni tag presente, identificando anomalie strutturali o violazioni degli standard. Di seguito sono riportate le principali regole di validazione e i relativi messaggi restituiti in caso di errore o avviso:
Presenza e ordine dei tag
- Tag di versione: Se presente, il tag
vdeve essere posizionato tassativamente all'inizio del record. In caso contrario, viene generato l'errore: "Il tag v=DKIM1 deve essere il primo tag quando è presente.". Inoltre, il valore deve essere esattamenteDKIM1. Se differisce, l'interfaccia mostra: "Il tag v deve essere esattamente DKIM1, non “‹detail›”.". - Tag della chiave pubblica: La chiave pubblica
pè un elemento obbligatorio. Se omessa, viene segnalato: "Il tag richiesto p della chiave pubblica è mancante.". - Duplicati e formattazione: Ogni tag deve apparire una sola volta. Se un tag è ripetuto, l'errore sarà: "Il tag
‹tag›appare più di una volta.". Se manca il carattere di assegnazione, viene mostrato: "Il campo “‹tag›” manca del segno di uguale.". Eventuali anomalie nel nome del tag generano: "Il nome del tag “‹tag›” è malformato.". I tag non standard vengono tollerati ma segnalati con: "Il tag‹tag›non riconosciuto viene mantenuto ma non interpretato.".
Algoritmi di crittografia e hash
- Tipi di chiave: Lo strumento riconosce chiavi pubbliche RSA e Ed25519. Se viene rilevato un algoritmo differente, viene restituito l'errore: "Il tipo di chiave “
‹detail›” Il tipo di chiave “‹detail›” non è supportato. Usa rsa o ed25519.". - Algoritmi di hash: L'uso di algoritmi obsoleti è sconsigliato o vietato. Il tag
hdeve consentire l'uso di SHA-256. Se non lo fa, viene mostrato l'avviso: "Il tag h deve consentire sha256 per le firme DKIM correnti.". L'uso del vecchio algoritmo SHA-1 genera un blocco immediato: "sha1 è obsoleto per le firme DKIM e non deve essere usato.".
Requisiti delle chiavi pubbliche e sicurezza crittografica
La sicurezza del protocollo DKIM dipende direttamente dalla robustezza della chiave crittografica pubblicata. Lo strumento analizza la struttura della chiave p in base al tipo specificato nel tag k:
| Tipo di chiave | Requisito di lunghezza | Stato di validità | Messaggio di avviso / errore |
|---|---|---|---|
| RSA | < 1024 bit | Invalido | "La chiave RSA è di ‹detail› bit. DKIM richiede almeno 1024 bit." |
| RSA | ≥ 1024 bit e < 2048 bit | Più debole del raccomandato | "La chiave RSA è di ‹detail› bit. Si raccomanda 2048 bit o più." |
| Ed25519 | Diversa da 32 byte decodificati | Invalido | "La chiave Ed25519 decodifica in ‹detail› byte invece di 32." |
Se il valore del tag p non corrisponde a una chiave pubblica valida per l'algoritmo dichiarato, lo strumento restituisce l'errore: "Il valore p non è una chiave pubblica valida per il tipo di chiave selezionato.".
Un caso particolare riguarda la revoca delle chiavi. Se il tag p viene pubblicato vuoto (p=), significa che la chiave precedentemente utilizzata è stata revocata. Lo strumento identifica questa configurazione e mostra la nota: "Il valore p è vuoto, il che pubblica una chiave DKIM revocata.".
Domande frequenti (FAQ)
Perché i record DKIM lunghi sono divisi in stringhe citate?
Un record DNS TXT può contenere diverse stringhe di caratteri, ciascuna limitata a 255 byte. DNS unisce le stringhe in ordine, quindi tutti i frammenti devono rimanere all'interno di un singolo record TXT.
Quali tipi di chiavi DKIM riconosce questo verificatore?
Riconosce chiavi pubbliche RSA e Ed25519, controlla la loro forma Base64 e segnala come invalide le chiavi RSA sotto 1024 bit e come più deboli del raccomandato le chiavi sotto 2048 bit.
Un risultato pulito dimostra che DKIM funziona?
No. Questa pagina controlla solo il testo del record che incolli. Non interroga DNS, non verifica una firma di messaggio, non conferma il nome del selettore né dimostra che i destinatari della posta possono recuperare il record.