DKIM (DomainKeys Identified Mail)

Email e Sicurezza
Un metodo di autenticazione della posta che aggiunge una firma digitale ai messaggi in uscita, consentendo ai destinatari di verificare che il messaggio non sia stato alterato.
← Torna al Glossario

Cos'è DKIM?

DKIM (DomainKeys Identified Mail) è un metodo di autenticazione e-mail che consente al server di inviare di firmare digitalmente messaggi in uscita. Il server ricevente può quindi verificare questa firma utilizzando una chiave pubblica pubblicata in DNS, confermando che l'e-mail non è stata modificata in transito e realmente originata dal dominio rivendicato.

Come funziona DKIM

1. Traduzione: Il proprietario del dominio genera una coppia chiave pubblica/privata

2. DNS Publication: La chiave pubblica è pubblicata come record TXT

3. Message Signing: Le email in uscita sono firmate con la chiave privata

4. Verifica della situazione Ricezione del server recupera la chiave pubblica e verifica la firma

Il processo di firma

Quando viene inviata una email:

1. Mail server calculates a hash of message headers and body

2. Hash is encrypted with the private key (creating the signature)

3. Signature is added as a DKIM-Signature header

4. Email is transmitted

Il processo di verifica

Quando viene ricevuta una e-mail:

1. Server extracts the DKIM-Signature header

2. Finds selector and domain (s=selector; d=domain.com)

3. Queries DNS for selector._domainkey.domain.com TXT record

4. Uses public key to decrypt the signature

5. Calculates its own hash of the message

6. Compares: match = pass, mismatch = fail

Formato record DKIM

I record DKIM sono record TXT in un sottodominio specifico:

selector._domainkey.example.com.    IN    TXT    "v=DKIM1; k=rsa; p=MIGfMA0..."

Componenti di registrazione

Tag:DescrizioneEsempio
VVersioneTraduzione:
#Tipo chiave#
PChiave pubblica (base64)p=MIGfMA0GCSqG...
tBandiere (opzionale)t=y (modalità di prova)
hAlgoritmi HashTraduzione:

Selettori

I selettori permettono più chiavi DKIM per dominio:

google._domainkey.example.com       # Google Workspace

s1._domainkey.example.com # Sendgrid

mailchimp._domainkey.example.com # Mailchimp

Ogni servizio di posta elettronica fornisce il proprio selettore e chiave.

Testa di firma DKIM

Una firma DKIM sembra:

DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=google;

c=relaxed/relaxed; q=dns/txt;

h=from:to:subject:date:message-id;

bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;

b=AuUoFEfDxTDkHlLXSZEpZj79...

Campi chiave:

Impostazione di DKIM

#### Per Google Workspace

1. Vai ad Admin Console → Apps → Gmail → Autentico email

2. Generare chiave DKIM (2048-bit raccomandato)

3. Aggiungi TXT record fornito da Google

4. Attiva la firma DKIM

Per i servizi di terze parti

La maggior parte dei servizi e-mail (SendGrid, Mailchimp, ecc.) forniscono:

1. Un record CNAME da aggiungere (per la loro chiave gestita)

2. O un record TXT con la chiave pubblica

Esempio (SendGrid):

s1._domainkey.example.com    CNAME    s1.domainkey.sendgrid.net

Verifica DKIM

Inviare un'email di prova ad un servizio che mostra intestazioni (Gmail mostra risultati di autenticazione). Utilizzando la riga di comando:
dig google._domainkey.example.com TXT

# Usando DomScan #

curl "https://domscan.net/v1/health?domain=example.com"

# Reports DKIM status based on common selectors

DKIM Migliori Pratiche

Utilizzare 2048-bit Keys

Le vecchie chiavi a 1024 bit sono sempre più vulnerabili. La maggior parte dei provider ora di default a 2048-bit.

Ruota le chiavi Periodicamente

Ruotare le chiavi DKIM ogni anno o dopo gli incidenti di sicurezza. Pubblica una nuova chiave con il nuovo selettore prima di passare.

Sign Important Heads

Assicurarsi da, a, soggetto, data e messaggio-ID sono inclusi nelle firme.

Non modificare i messaggi firmati

Mailing list o servizi di inoltro che modificano i contenuti romperanno DKIM. Utilizzare ARC (catena autenticata ricevuta) per posta inoltrata.

Limitazioni DKIM

DKIM da solo non impedisce lo spoofing, dimostra solo che un messaggio non è stato modificato. Un dominio può avere DKIM valido mentre gli aggressori inviano e-mail spoofed non firmate. DMARC si rivolge a questo specificando cosa fare con messaggi non firmati.

Metti in Pratica Questa Conoscenza

Usa l'API di DomScan per verificare disponibilità, salute del dominio e altro.