DomainKeys Identified Mail (DKIM) è un metodo di autenticazione tramite posta elettronica che consente di convalidare la posta inviata dall’organizzazione di Microsoft 365 per impedire mittenti contraffatti usati in attacchi di compromissione della posta elettronica aziendale( BEC), ransomware e altri attacchi di phishing.
DomainKeys Identified Mail (DKIM) utilizza un dominio per firmare digitalmente elementi importanti del messaggio (incluso l’indirizzo Da) per garantire che il messaggio rimanga inalterato durante il transito e archivia la firma nell’intestazione del messaggio. Il server di destinazione verifica che gli elementi firmati del messaggio non siano stati modificati.
Exchange Online consente l’abilitazione e la configurazione del DKIM, ma per configurarlo correttamente occorre tenere presente alcune indicazioni.
Ipotizzando di voler configurare il DKIM per il dominio di posta esempio.it in Exchange Online occorre innanzitutto tenere presente che nel pannello di configurazione del DKIM verranno visualizzati 3 domini, che riferendoci al nostro scenario di esempio saranno:
- esempio.it (dominio personalizzato)
- esempioit.onmicrosoft.com (dominio MOERA)
- esempioit.mail.onmicrosoft.com (dominio alias)
La configurazione del DKIM viene fatta accedendo a https://security.microsoft.com/ nella sezione Criteri e regole – Criteri per minaccia – Impostazioni autenticazione email – DKIM.
L’abilitazione del DKIM va fatta innanzitutto sul dominio esempioit.onmicrosoft.com che è il dominio MOERA (Microsoft Online Email Routing Address) e prima di abilitare il DIKIM occorre pubblicare i seguenti record CNAME per il dominio personalizzato, ovvero esempio.it:
- Host Name : selector1._domainkey
Value: selector1-esempio-it._domainkey.esempioit.onmicrosoft.com - Host Name : selector2._domainkey
Value: selector2-esempio-it._domainkey.esempioit.onmicrosoft.com
Questi record CNAME puntano ai record TXT del sottodominio usato la tenant esempioit.onmicrosoft.com che a sua volta è all’interno della zona onmicrosoft.com gestita da Microsoft.
Una volta che i record CNAME sono stati pubblicati e replicati sui server dns pubblici è possibile abilitare il DKIM sul dominio MOERA esempioit.mail.onmicrosoft.com e sul dominio personalizzato esempio.it.
Per verificare lo stato di replica dei record CNAME sui server dns pubblici è possibile usare il sito DNS Propagation Checker – Global DNS Testing Tool.
Si noti che il dominio MOERA non deve essere usato per inviate posta come indicato dal team di Exchange in Limiting Onmicrosoft Domain Usage for Sending Emails | Microsoft Community Hub:
“In the future, MOERA domains should only be used for testing purposes, not regular email sending. We will be introducing throttling to limit messages sent from your organization’s onmicrosoft.com domains to 100 external recipients per 24 hour rolling window. Inbound messages won’t be affected.”
Sebbene il dominio MOERA (esempioit.onmicrosoft.com) non è usato e non deve essere utilizzato per inviare posta, va comunque tenuto presente che il dominio esiste e può essere “spoofato” ed quindi è raccomandabile proteggerlo con SPF (già configurato di default), DKIM e DMARC.
Per quanto riguarda invece il dominio alias esempioit.mail.onmicrosoft.com, questo è usato da Exchange Online per instradare correttamente la posta, soprattutto in scenari ibridi o durante migrazioni. Sul dominio alias esempioit.onmicrosoft.com il DKIM non è necessario in quanto è solo un alias tecnico interno di Exchange Online usato per routing, non è un dominio da cui viene inviata posta e non compare come indirizzo degli utenti. In altre parole non occorre proteggere il dominio alias (esempioit.mail.onmicrosoft.com) con DKIM perché non è un dominio che può essere usato per inviare posta, e quindi non è realmente “spoofabile” in modo utile da un attaccante dal momento che non è configurato come dominio di invio verso l’esterno.
Per un approfondimento sui domini in Exchange Online si veda Limiting Onmicrosoft Domain Usage for Sending Emails | Microsoft Community Hub.

Una volta abilitato il DKIM è possibile fare un primo check della corretta configurazione tramite il seguente url dell’interfaccia di amministrazione Microsoft 365 https://admin.cloud.microsoft/?searchSolutions=DKIM#/homepage.
Prima di procedere con altre considerazioni sulla configurazione del DKIM si noti che in Microsoft Exchange Online vengono usati due selector DKIM (selector1 e selector2) per permettere la rotazione delle chiavi crittografiche senza interrompere la firma delle email. Se esistesse una sola chiave quando questa viene cambiata le mail già in transito potrebbero non verificarsi più, mentre con due selector è possibile fare la key rotation in modo sicuro e senza downtime.
Come indicato in How to use DKIM for email in your custom domain – Microsoft Defender for Office 365 | Microsoft Learn per default le chiavi pubbliche nel DKIM record hanno un size di 1024, ma possono anche avere un size di 2048.
Le chiavi RSA a 1024 bit sono equivalenti, dal punto di vista della robustezza, delle chiavi simmetriche a 80 bit, mentre le chiavi RSA a 2048 bit alle chiavi simmetriche a 112 bit. Nel 2003, l’RSA Security ha dichiarato che le chiavi a 1024 bit sarebbero state probabilmente violabili tra il 2006 e il 2010, mentre le chiavi a 2048 bit sarebbero state sufficienti fino al 2030. A riguardo si vedano SP 800-78-5, Cryptographic Algorithms and Key Sizes for Personal Identity Verification | CSRC e TWIRL and RSA Key Size.
Fatte queste considerazioni appare evidente che è consigliabile che le chiavi pubbliche del DKIM siano impostate a 2048 bit.
Per controllare come sono configurate le chiavi sul dominio personalizzato (esempio.it) e sul dominio MOERA (esempioit.onmicrosoft.com) è possibile utilizzare il cmdlet PowerShell Get-DkimSigningConfig:
Get-DkimSigningConfig -Identity esempio.it | fl
Get-DkimSigningConfig -Identity esempioit.onmicrosoft.com | fl
Le proprietà Selector1KeySize e Selector2KeySize consentono di controllare la dimensione delle chiavi DKIM.
Per comprende quale delle due chiavi è attive è possibile usare le seguenti proprietà:
- RotateOnDate che identifica la data a cui avverrà o è avvenuta la rotazione delle chiavi.
- SelectorBeforeRotateOnDate che identifica quale è la chiave attiva prima della data di rotazione delle chiavi (RotateOnDate)
- SelectorAfterRotateOnDate che identifica quale è la chiave attiva dopo la data di rotazione delle chiavi (RotateOnDate)
Per impostare a 2048 le chiavi DKIM occorre generare una nuova chiave a 2048 bit sul selector che non è attivo e impostarlo come attivo mediante rotazione, dal momento che i selector sono due occorrerà rigenerare anche una nuova chiave per il selector diventato inattivo e impostarlo come attivo con una seconda rotazione.
Questa procedura può essere eseguita tramite una doppia esecuzione del cmdlet Powershell Rotate-DkimSigningConfig.
Quindi occorre seguire una prima rotazione sui due dominii:
Rotate-DkimSigningConfig -Identity esempio.it -KeySize 2048
Rotate-DkimSigningConfig -Identity esempioit.onmicrosoft.com -KeySize 2048
Prima di eseguire una seconda rotazione con i medesimi comandi occorre attendere che la rotazione sia avvenuta come indicato in Rotate-DkimSigningConfig:
“Note: Upgrading the key size to 2048 only upgrades the selector that isn’t currently active. After key rotation has taken place, you need to run the command again to upgrade the key size of the other selector.”
La rotazione non è immediata, ma impiega 4 giorni (96 ore) e perla precisione è possibile capire la data e l’ora esatta in cui avviene è possibile analizzare la data specificata in RotateOnDate, come già indiccato precedentemente e come anche specificato in How to use DKIM for email in your custom domain – Microsoft Defender for Office 365 | Microsoft Learn:
“When you do a DKIM key rotation on a domain as described in this section, the change isn’t immediate. It takes four days (96 hours) for the new private key to start signing messages (the RotateOnDate date/time and the corresponding SelectorAfterRotateOnDate value). Until then, the existing private key is used (the corresponding SelectorBeforeRotateOnDate value).”
“If you change the bit depth of DKIM keys from 1024 to 2048 using the KeySize parameter, the update applies only to the next active selector during the first key rotation. When you rotate keys again, the previously inactive selector becomes active, and the bit depth is also updated to 2048.
When you rotate DKIM keys on a domain, the change isn’t immediate. It takes four days (96 hours). While the key rotation is in progress, you can’t do another key rotation.”
Avvenuta la rotazione è possibile eseguire la seconda rotazione sui due dominii sempre con comandi visti precedentemente:
Rotate-DkimSigningConfig -Identity esempio.it -KeySize 2048
Rotate-DkimSigningConfig -Identity esempioit.onmicrosoft.com -KeySize 2048
Si noti che la rotazione periodica delle chiavi DIKIM è un prassi necessaria in quanto la rotazione rigenera le chiavi DKIM e aumenta la resilienza ai tentativi di compromissione come indicato in How to use DKIM for email in your custom domain – Microsoft Defender for Office 365 | Microsoft Learn:
“For the same reasons you should periodically change passwords, you should periodically change the DKIM key that’s used for DKIM signing. Replacing the DKIM key for a domain is known as DKIM key rotation.”
La semplice rotazione delle chiavi è possibile, oltre che tramite il cmdlet Rotate-DkimSigningConfig, anche tramite il portale https://security.microsoft.com/ nella sezione Criteri e regole – Criteri per minaccia – Impostazioni autenticazione email – DKIM.

Per ulteriori approfondimenti si vedano i seguenti: