Skip to content

Sintassi DKIM

La sintassi di DKIM è definita dall'RFC 6376, che specifica il formato e le regole per il campo header DKIM-Signature, il record DNS della chiave pubblica e gli algoritmi di firma e verifica.

Il campo header DKIM-Signature consiste in una serie di coppie tag-valore, separate da punti e virgola, che forniscono informazioni sulla firma DKIM. I tag non sono sensibili alle maiuscole e hanno i seguenti significati:

TagDescrizione
vLa versione di DKIM. La versione attuale è 1.
aL'algoritmo utilizzato per generare l'hash e la firma. Gli algoritmi supportati sono rsa-sha1 e rsa-sha256.
bI dati della firma, codificati in base64.
bhL'hash del contenuto dell'email, codificato in base64.
cL'algoritmo di canonicalizzazione utilizzato per normalizzare gli header e il corpo dell'email prima dell'hashing. Gli algoritmi supportati sono simple e relaxed.
dIl dominio dell'entità firmataria.
hL'elenco dei campi header inclusi nella firma, separati da due punti.
iL'identità dell'agente firmatario, che può essere un sottodominio o un utente all'interno del dominio firmatario.
lLa lunghezza del corpo dell'email che è firmata, in byte. Se omesso, l'intero corpo è firmato.
qIl metodo di query utilizzato per recuperare la chiave pubblica. Il metodo supportato è dns/txt, il che significa che la chiave pubblica è memorizzata in un record TXT nel DNS.
sIl selettore che identifica la chiave pubblica da utilizzare per la verifica.
tIl timestamp di quando la firma è stata creata, in secondi dal 00:00:00 del 1 gennaio 1970 UTC.
xIl tempo di scadenza della firma, in secondi dal 00:00:00 del 1 gennaio 1970 UTC. Se omesso, la firma non scade.
zI campi header originali che sono stati firmati, codificati in base64. Questo tag è opzionale e viene utilizzato solo per scopi di debug.

Un esempio di record DNS della chiave pubblica è:

Selettore:

dkimkey._domainkey.example.com.

Valore:

"v=DKIM1; h=sha256; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCfjgu4wJ4hm7T3cjhYfyX3WfZwLGNqJtU2Ol1i8sT1o3F1FbZI4P7FqQW7MkMfsHnY6f7loG+RwkZsKdowq+8Gg9G2xRF1YJynBKLpdX4eR4Q2m5F3LjMfQSSMmN1CRrSeyRGNVQqjxweG5lJfR0GZsT7hnrccllH+oL1HhQIDAQ"

Argomenti Correlati