30 Set 2009

Autenticazione del mittente: DKIM e SPF

Sigillo pergamenaDKIM, acronimo di DomainKeys Identified Mail, identifica un meccanismo di autenticazione della posta. Al contrario di SPF (Sender Policy Framework), che si preoccupa di "certificare" se il postino (mail server mittente) di una determinata email è autorizzato a consegnare quella determinata email, DKIM si concentra sulla "certificazione" del contenuto. DKIM permette infatti di stabilire che i gestori di un determinato dominio "firmatario" (parametro d= nell'header DKIM) hanno applicato una firma certificando il contenuto e le intestazioni del messaggio. Se la firma risulta valida si può quindi stabilire che la mail ricevuta sia "certificata" dal dominio che ha messo la firma.

Da notare che, al contrario di quello che alcuni pensano, la specifica DKIM non impone alcuna relazione tra il dominio del firmatario e il dominio mittente e che il fatto che una mail sia firmata non significa che non sia spam.

Applicando la propria firma DKIM, un dominio firmatario (SDID = Signing Domain Identifier), in qualche modo "garantisce" per quella mail. I riceventi decidono a loro discrezione cosa farne di questa garanzia. Alcuni possono decidere di considerarla valida solo se il dominio del firmatario e quello del mittente corrispondono, altri no. Alcuni possono decidere di calcolare statistiche in funzione dei firmatari e di costruire una reputazione dei firmatari allo stesso modo in cui ora viene costruita una reputazione di IP.

DKIM e SPF non sono due tecniche alternative ma piuttosto sono due tecniche complementari.

SPF lavora a livello di protocollo SMTP e non riguarda minimamente i contenuti del messaggio: paragonandolo alla posta tradizionale SPF quindi, può essere visto come un meccanismo per verificare che un pacco sia stato inviato da una città dalla quale ci si aspetta che quel mittente spedisca pacchi. Il tutto avviene senza aprire il pacco.

DKIM, al contrario, lavora esclusivamente sul messaggio, che per una transazione SMTP è il "contenuto": paragonandolo alla posta tradizionale è come se l'ufficio postale del mittente sigillasse il contenuto e applicasse una firma per poi inscatolare. Se il corriere o chiunque altro decide di modificare il contenuto del pacco rovinerà il sigillo/firma e sapremo che è successo. Per verificare l'autenticità dobbiamo aprire il pacco e controllare il contenuto.

Dal punto di vista del server ricevente implementare DKIM o SPF è un processo similare: in entrambi i casi deve apporre un "posto di blocco" in cui DKIM e SPF effettuano i loro controlli e stabiliscono se il messaggio è autenticato o meno. Dal punto di vista del mittente, invece, l'uso dei due sistemi è piuttosto differente:

SPF prevede che venga inserita nel DNS un particolare "record" che specifica un meccanismo per stabilire se un particolare server di posta mittente sia autorizzato a spedire email per quel dominio. Basta questo e non si deve fare altro nel processo di invio.

DKIM, invece, prevede sia modifiche del DNS per pubblicare un "record" che contenga la chiave pubblica del firmatario, sia modificare ogni email che parte/transita dai propri sistemi firmandola.

Per questo motivo le diffusioni della verifica SPF e DKIM per i riceventi è più o meno equivalente mentre quella dell'adozione di SPF e DKIM da parte dei mittenti è molto a favore di SPF. Secondo un survey effettuato da Sendmail sulle Fortune 1000, il 90% pubblica record SPF mentre meno del 10% pubblica record DKIM (aggiungiamo che la sola pubblicazione per SPF è sufficiente mentre per DKIM è necessaria ma non sufficiente, visto che poi è necessario anche firmare). Limitandosi al settore bancario statunitense, invece, le cifre passano a 99% per l'SPF e 20% per il DKIM.

Una grossa "spinta" all'adozione di DKIM l'ha data Yahoo quando ha deciso di mettere la firma DKIM/DomainKey come requisito per poter accedere al proprio Feedback Loop: molti ESP si sono visti costretti ad implementare questa tecnologia o a rinunciare ai report di uno dei più importanti provider di caselle free.

Per completezza aggiungo che esistono altre tecnologie similari o aggiuntive:

  • SenderID: si tratta di un "fratellastro" di SPF. Microsoft sta percorrendo la propria strada in maniera autonoma. SenderID nei principi di funzionamento è molto simile a SPF e sotto alcuni aspetti compatibile con esso.
  • DomainKeys: si tratta della specifica pubblicata originariamente da Yahoo e che, con la collaborazione con Cisco e la pubblicazione tramite l'ietf ha dato vita a DKIM. Difatto DKIM è una evoluzione di DomainKeys e sfruta gli stessi meccanismi. Oggi possiamo dire che la maggior parte dei riceventi che sono in grado di gestire DomainKeys gestiscono anche DKIM (dando a questo una preferenza) mentre per quanto riguarda i firmatari la maggior parte firma le email con entrambi i sistemi e sono pochissimi ormai quelli che firmano solo DomainKeys.
  • ADSP: Esiste una estensione di DKIM, chiamata Author Domain Signing Policy (evoluzione di SSP), che permette , prevalentemente, al gestore di un dominio di specificare che le email che non contengono una firma sono da considerarsi invalide. Questo perchè altrimenti non si potrebbe fare alcuna assunzione su qualunque email non firmata.

Aggiungi un commento

Cliccando su "Salva" accetti che i tuoi dati siano registrati con l'unico scopo di pubblicazione e gestione dei commenti (Leggi l'informativa completa)