DKIM

Also known as: DomainKeys Identified Mail

DKIM (DomainKeys Identified Mail) attaches a cryptographic signature to each outgoing message. The signing domain publishes a public key in DNS; the receiver uses it to verify the signature.

What a signature actually proves

What a valid signature proves is narrower than it first appears: some domain that holds the private key took responsibility for the message, and the signed headers and body were not altered in transit. It does not prove the message originated there — a mailing list or an outbound relay can sign perfectly validly for its own domain. That distinction is the whole reason alignment exists.

Where the signature and key live

The signature travels in a DKIM-Signature: header, and the public key lives at a selector under _domainkey:

selector._domainkey.yourdomain.com

The signature names both halves: s= is the selector to look up, d= is the domain claiming responsibility. For DKIM to help DMARC, d= must align with the domain in the From: address — which is why a dkim=pass from your email provider’s own domain does nothing for you, and why the failure is easy to miss.

Forwarding, and why it survives that

Unlike SPF, DKIM survives plain forwarding, because the signature moves with the message rather than depending on the connecting IP. It does not survive a message being modified — a mailing list appending a footer breaks it, which is the gap ARC was designed to describe.

Key rotation

Because the selector is part of the lookup, a domain can publish several keys at once, which is what makes rotation possible without downtime: publish the new selector, switch signing to it, then retire the old key once no mail in flight still references it.

Why some changes break the signature and others don’t

The c= tag sets how forgiving verification is about changes made in transit. simple breaks over almost any change to whitespace or line endings; relaxed (the common default) tolerates that but still breaks if a header’s actual value changes. Neither survives a footer inserted into the signed body — which is the other half of why a mailing list can fail DKIM while a plain forward, which never touches signed content, does not.