DomainKeys Identified Mail
# DomainKeys Identified Mail

DomainKeys Identified Mail (DKIM) è un metodo di autenticazione delle email, realizzato per prevenire lo spoofing. Consente, a chi riceve un’email, di verificare la provenienza del messaggio, in modo da accertarsi dell’autenticità del mittente. Il DKIM è utilizzato per contrastare il phishing e lo spam delle email.

In termini tecnici, il DKIM consente a un dominio di associare il proprio nome a un'email mediante l'apposizione di una firma digitale. La verifica viene eseguita utilizzando la chiave pubblica del firmatario pubblicata nel DNS del dominio. La firma garantisce che il messaggio dell'email (inclusi gli allegati) non sia stato modificato dal momento in cui è stata apposta la firma. Di solito, le firme DKIM non sono visibili agli utenti poiché sono apposte o verificate dai service provider (SP). Per questo motivo, il DKIM differisce dalla crittografia end-to-end, la quale non prevede interazioni di terze parti.

## Dettagli tecnici

### Firmatario

L'organizzazione firmataria che può essere il gestore diretto del messaggio, come un autore, l'Agente di invio messaggi (mail Submission agent) o un ulteriore intermediario lungo il percorso di transito, o un gestore indiretto come un servizio indipendente che fornisce assistenza al gestore diretto.

I Moduli di firma da inserire (uno o più) DKIM-Signature: campi intestazione, possibilmente per conto dell'organizzazione autrice o del fornitore originale del servizio. La specifica permette ai firmatari di scegliere quali campi intestazione firmano, ma il campo From: deve sempre essere firmato. The resulting header field consists of a list of tag=value parts as in the example below:

Dove sono usate le seguenti etichette:

* v (richiesto), versione
* a (richiesto), Algoritmo di firma
* d (richiesto), Signing Domain Identifier (SDID)
* s (richiesto), selettore
* c (opzionale), Algoritmi di canonicalization per intestazione e corpo
* q (opzionale), Metodo di interrogazione predefinito
* i (opzionale),Agente o utente identificante (AUID)
* t (raccomandato), marca temporale della firma
* x (raccomandato), Tempo di scadenza
* l (opzionale), Lunghezza del corpo
* h (richiesto), campi intestazione- list of those that have been signed
* z (opzionale), campi intestazione - copy of selected header fields and values
* bh (richiesto), hash del corpo
* b (richiesto), Firma dell'intestazione e del corpo
