Description
DKIM signing is enabled in Exchange Online for every custom accepted domain that sends mail, with
the two selector CNAME records (selector1._domainkey and selector2._domainkey) published in
DNS and 2048-bit keys. Third-party services that send with the organization's domains sign with
their own DKIM key for that domain.
Rationale
DKIM proves that a message was sent by an authorized system and was not altered on the way. It is
the authentication result that survives forwarding and mailing lists, where SPF breaks, so DMARC
depends on it to keep legitimate mail flowing once the policy is set to quarantine or reject.
Without a custom DKIM signature, Exchange Online signs with the onmicrosoft.com domain, which
does not align with the From domain.
Impact
None known on mail delivery. The CNAME records must exist before signing can be turned on.
Audit
- Sign in to the Microsoft Defender portal (https://security.microsoft.com) as at least a Security Reader.
- Browse to Email & collaboration > Policies & rules > Threat policies > Email authentication settings > DKIM.
- Check that every custom domain that sends mail shows Sign messages for this domain with DKIM signatures turned on, with status Valid.
- In Exchange Online PowerShell (read-only):
And check DNS:Get-DkimSigningConfig | Format-Table Domain, Enabled, Status, Selector1KeySize, Selector1CNAME, Selector2CNAMEResolve-DnsName selector1._domainkey.example.com -Type CNAME. - Fail if a sending domain has
Enabledset toFalse, no signing configuration, missing CNAME records, or a 1024-bit key.
Remediation
- In the Defender portal, on the DKIM tab, select the domain and copy the two CNAME values
(or run
Get-DkimSigningConfig -Identity example.com | Format-List Selector1CNAME, Selector2CNAME). - Publish the two CNAME records at the DNS hosting provider.
- Back in the portal, turn on Sign messages for this domain with DKIM signatures. PowerShell
equivalent (Security Administrator):
New-DkimSigningConfig -DomainName example.com -KeySize 2048 -Enabled $true # if no configuration exists Set-DkimSigningConfig -Identity example.com -Enabled $true - Upgrade 1024-bit keys with
Rotate-DkimSigningConfig -Identity example.com -KeySize 2048.
Rollback
Set-DkimSigningConfig -Identity example.com -Enabled $false (mail is then signed with the
onmicrosoft.com domain again).
References
- Set up DKIM to sign mail from your Microsoft 365 domain Microsoft, vendor-doc, accessed 2026-10-24
- Set-DkimSigningConfig Microsoft, vendor-doc, accessed 2026-10-24
- CISA SCuBA Exchange Online baseline CISA, standard, accessed 2026-10-24
- ORCA - Office 365 Recommended Configuration Analyzer (checks ORCA-108, ORCA-108-1) Microsoft (community project), tool, accessed 2026-10-24
Mappings
| Framework | ID | Relation |
|---|---|---|
| NIST SP 800-53 Rev. 55.1.1 | SI-8 | related |
| NIST SP 800-53 Rev. 55.1.1 | SC-8 | related |
| CISA SCuBA Microsoft 365 Secure Configuration Baselines2.0.0 | MS.EXO.3.1v1 | equivalent |
How this control relates to the other framework's: equivalent, stricter, looser, partial or related.
Threats mitigated
| Taxonomy | ID |
|---|---|
| MITRE ATT&CK | T1566 |
Related controls
- related
CB-M365-MAIL-014Publish an SPF record that fails unauthorized senders for every domain - related
CB-M365-MAIL-016Publish an enforcing DMARC policy with reporting for every domain
People and lifecycle
| Authors |
|
| Introduced in | v0.1.0 |
| Created, updated | 2026-10-24, 2026-10-24 |
| Translations | fr |