Firma DKIM
Firmare crittograficamente i messaggi.
Firma DKIM è una lezione Cyber Security Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cyber Security Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cyber Security Academy include 4 lezioni in totale.
Cosa offre DKIM
DKIM (DomainKeys Identified Mail) allega una firma crittografica alle email in uscita. Un server ricevente può verificare tale firma per confermare due aspetti:
- Il messaggio è stato effettivamente autorizzato dal dominio firmatario
- Il contenuto firmato non è stato modificato durante il transito
SPF autorizza i server, mentre DKIM autentica il messaggio in sé e la relativa firma resiste al forwarding.
Nozioni di base sulla crittografia a chiave pubblica
DKIM si basa sulla crittografia asimmetrica. Il proprietario del dominio possiede una coppia di chiavi:
- La chiave privata rimane segreta sul server di posta mittente e viene usata per firmare
- La chiave pubblica viene pubblicata nel DNS e può essere usata da chiunque per verificare
Poiché solo chi possiede la chiave privata può produrre una firma valida, una verifica riuscita dimostra che il messaggio proviene dal dominio legittimo.
Il processo di firma
Quando il server mittente invia un messaggio, calcola una firma su intestazioni selezionate e corpo del messaggio, quindi aggiunge un'intestazione DKIM-Signature.
Steps on the sender side:
1. Select headers to sign (From, Subject, Date, ...)
2. Hash the message body
3. Build the DKIM-Signature header with those fields
4. Sign the hash with the private key
5. Attach the signature to the outgoing messageStruttura di un'intestazione DKIM-Signature
L'intestazione DKIM-Signature contiene i parametri necessari al server ricevente per la verifica:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=company.com; domain that signed
s=mail2024; selector (which key)
h=from:subject:date; signed headers
bh=base64bodyhash; body hash
b=base64signature the signature itselfIl selector e la chiave pubblica nel DNS
Il selector (il tag s=) indica ai server riceventi quale chiave pubblica recuperare. La chiave si trova in una posizione DNS prevedibile:
Location: <selector>._domainkey.<domain>
Example DNS TXT record:
mail2024._domainkey.company.com. IN TXT \
"v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBA..."
p = the base64-encoded public keyIl processo di verifica
Alla ricezione, il server che esegue la verifica ripete il processo al contrario:
- Legge il dominio
d=e il selectors=da DKIM-Signature - Recupera la chiave pubblica da
selector._domainkey.domainnel DNS - Ricalcola l'hash del corpo e quello delle intestazioni
- Usa la chiave pubblica per verificare che la firma corrisponda
Se la firma è valida, DKIM ha esito positivo. Se il messaggio è stato modificato o firmato con la chiave errata, la verifica fallisce.
L'hash del corpo rileva le manomissioni
Il campo bh (hash del corpo) rende DKIM in grado di rilevare le manomissioni. Il mittente calcola l'hash del corpo e include tale hash nei dati firmati.
Se qualcuno modifica il corpo del messaggio durante il transito, l'hash ricalcolato dal destinatario non corrisponderà al valore bh firmato e la verifica fallirà. È così che DKIM garantisce l'integrità, non solo l'autenticazione dell'origine.
Canonicalizzazione
I server di posta che gestiscono il messaggio lungo il percorso apportano spesso piccole modifiche innocue, come riformattare le righe o modificare gli spazi. Per evitare che queste modifiche invalidino firme corrette, DKIM usa la canonicalizzazione (il tag c=).
- simple — rigida; quasi ogni modifica invalida la firma
- relaxed — tollera le modifiche agli spazi e alle maiuscole delle intestazioni
La maggior parte delle implementazioni usa relaxed/relaxed per garantire l'affidabilità tra infrastrutture di posta diverse.
I selector consentono la rotazione delle chiavi
I selector non sono semplici etichette: consentono la rotazione delle chiavi in sicurezza. È consigliabile sostituire periodicamente le chiavi DKIM per limitare l'esposizione nel caso in cui una chiave venga divulgata.
Processo di rotazione:
- Generare una nuova coppia di chiavi con un nuovo selector, ad esempio
mail2025 - Pubblicare la nuova chiave pubblica nel DNS
- Configurare il firmatario per usare il nuovo selector
- Lasciare il selector precedente nel DNS finché le email già in transito non vengono consegnate, quindi rimuoverlo
L'uso di un selector nuovo evita una lacuna durante la quale le firme non possono essere verificate.
DKIM resiste al forwarding
A differenza di SPF, DKIM resiste al forwarding. La firma viaggia insieme al messaggio, quindi, finché le intestazioni e il corpo firmati non vengono modificati, un messaggio inoltrato continua a superare la verifica.
Questo compensa perfettamente la debolezza di SPF. Quando un messaggio viene inoltrato, SPF può fallire perché l'IP di connessione è cambiato, ma DKIM può comunque avere esito positivo, consentendo a DMARC di accettare l'email legittima.
Limitazioni di DKIM
DKIM è potente, ma da solo non è completo:
- Dimostra che un dominio ha firmato il messaggio, ma non impone che il dominio firmatario corrisponda all'intestazione From visibile; questo è compito dell'allineamento DMARC
- Un attaccante può firmare le email con una chiave DKIM valida del proprio dominio
- Una chiave privata divulgata consente a un attaccante di creare firme valide finché la chiave non viene sostituita tramite rotazione
Per contrastare efficacemente lo spoofing, DKIM deve essere combinato con DMARC.
Verifica rapida
Verifichi la Sua comprensione di DKIM.
Riepilogo
Ha imparato come DKIM firma i messaggi:
- DKIM allega una firma crittografica che dimostra l'origine e l'integrità
- Una chiave privata firma il messaggio sul server; la chiave pubblica viene pubblicata nel DNS sotto un selector
- L'hash del corpo rileva le manomissioni; la canonicalizzazione tollera le modifiche innocue
- I selector consentono una rotazione delle chiavi sicura e DKIM resiste al forwarding nei casi in cui SPF fallisce
- DKIM necessita comunque dell'allineamento DMARC per collegare la firma al From visibile
Ora collegherà SPF e DKIM tramite i criteri e i report DMARC.
Impara Cyber Security Academy con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 76
- Lezioni
- 303
Domande Frequenti
La lezione «Firma DKIM» è gratuita?
Sì — il testo completo di «Firma DKIM» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cyber Security Academy, passa a CoddyKit PRO. Il corso Cyber Security Academy include 4 lezioni in totale.
Cosa imparerò in «Firma DKIM»?
Firmare crittograficamente i messaggi. Eserciti Cyber Security Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Cyber Security Academy?
Non è richiesta alcuna esperienza precedente. Cyber Security Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Firma DKIM»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Cyber Security Academy?
Sì. Ogni lezione Cyber Security Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.