DKIM Explained: DomainKeys Identified Mail, RFC 6376, Selectors, Canonicalization, and Key Rotation
Everything a domain owner needs to publish, sign, validate, and rotate DKIM keys — from minimal RSA-2048 records to multi-selector zero-downtime rotation — with full RFC 6376 syntax, canonicalization explained, and worked deployment examples for Google Workspace, Microsoft 365, and SaaS senders.
This reference is provided in English. DKIM is specified in English-language RFCs and the canonical syntax (v=DKIM1, k=rsa, p=, c=relaxed/relaxed) does not translate; we keep the body in the source language so technical terms are consistent with the specifications.
TL;DR
- DKIM (DomainKeys Identified Mail, RFC 6376) is a cryptographic email authentication mechanism: the sending server signs the message with a private key, the receiver verifies the signature against a public key published in DNS.
- The signature lives in a
DKIM-Signature:header. The public key lives in a DNS TXT record at<selector>._domainkey.<domain>. - Selectors let you publish multiple
keys simultaneously (e.g.
s1._domainkey,s2._domainkey), which is how zero-downtime key rotation works. - Canonicalization normalises headers and
body before hashing.
relaxed/relaxedis the production default —simplebreaks on the slightest whitespace change in transit. - Use 2048-bit RSA keys (RFC 8301 recommends at least 2048 bits and retires SHA-1). Rotate every 3-6 months; immediately on suspected compromise.
- DKIM survives forwarding (unlike SPF), which is why DMARC alignment on forwarded mail typically depends on DKIM. Forwarders that modify subject/body invalidate signatures — that is what ARC (RFC 8617) was designed to fix.
1. What is DKIM?
DKIM (DomainKeys Identified Mail) is a
cryptographic email authentication standard defined in
RFC 6376
that lets a domain owner take responsibility for a message
by attaching a digital signature to it. The sending mail
server hashes selected message headers and the body, signs
the hash with a domain-controlled private key, and inserts
the signature as a DKIM-Signature: header.
Receiving mail servers fetch the corresponding public key
from DNS and verify that the signature is valid — proving
the message has not been altered in transit and originated
from a server in possession of the domain's private key.
DKIM combined Yahoo's DomainKeys (RFC 4870, since obsoleted) with Cisco's Identified Internet Mail proposal; the merged standard was first published as RFC 4871 (2007) and updated by RFC 6376 (September 2011, the current standard). It is one of three complementary email-authentication primitives — alongside SPF (envelope-sender IP authorisation) and DMARC (policy + reporting) — that together harden SMTP against spoofing, phishing, and brand impersonation.
Critically, DKIM authenticates the message's
integrity and binds it to a
signing domain declared in the
DKIM-Signature's d= tag — but
that signing domain need not match the visible
From: header the user sees. An attacker can
sign their phishing mail under their own domain, pass DKIM
on their domain, and still write any value they want in
From:. That gap is exactly what DMARC closes
by requiring identifier alignment between the
DKIM d= domain and the From:
header.
2. How DKIM works, step by step
- The domain owner generates an RSA key pair. The
private key is loaded into the
outbound mail server (Postfix, Exim, Microsoft 365,
Google Workspace, Mailgun, etc.). The
public key is published as a DNS TXT
record at
<selector>._domainkey.<domain>. - When the outbound server sends a message, it selects
which headers to sign (typically
From,To,Subject,Date,Message-ID,MIME-Version,Content-Type) and applies canonicalization (see §6). - It computes a hash (SHA-256 — SHA-1 is deprecated by
RFC 8301) of the canonicalized headers and body, signs
the hash with the private key, and inserts a
DKIM-Signature:header containing the signing domain (d=), the selector (s=), the signed-headers list (h=), the canonicalization algorithms (c=), the body-hash (bh=), and the signature itself (b=). - The receiving server parses the
DKIM-Signature, extractsd=ands=, and queries DNS for<s>._domainkey.<d>to fetch the public key. - The receiver re-canonicalizes the message using the
same algorithms declared in
c=, re-hashes the result, and verifies the signature cryptographically with the public key. If the signature is valid, the receiver recordsdkim=passin theAuthentication-Results:header — and the downstream DMARC evaluator checks whether the signing domain (d=) aligns with theFrom:header.
Possible DKIM result values reported in
Authentication-Results::
pass— signature verified successfully.fail— signature does not verify (key mismatch, body altered in transit, or canonicalization misapplied).neutral— signature present but verification could not be completed (e.g. unrecognised canonicalization).none— message had noDKIM-Signatureheader at all.policy— signature was valid but rejected by local policy (e.g. key length below threshold).temperror— transient DNS failure fetching the key; receiver SHOULD defer (4xx) and retry.permerror— public-key record is malformed, revoked (p=empty), or missing.
3. DKIM DNS syntax
A DKIM public-key record is a DNS TXT record
published at <selector>._domainkey.<domain>:
s1._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA…"
Tag-by-tag anatomy of the public-key record:
v=DKIM1- Version tag. RECOMMENDED to appear first; receivers
that find a missing or invalid
v=reject the record.DKIM1is the only defined version. k=rsa- Key algorithm.
rsais universally supported.ed25519(RFC 8463) is also defined but support is still uneven across receivers; dual-signing under both algorithms is the safe rollout path if ed25519 is a goal. p=<base64-public-key>- The public key itself, base64-encoded. An
empty
p=means the key is revoked — receivers MUST reject signatures using a selector whosep=is empty (RFC 6376 §3.6.1). This is the safe way to retire a leaked key without breaking already-in-transit mail still referencing the selector. t=<flags>(optional)- Comma-separated flag list.
t=ydeclares the record is in test mode — receivers SHOULD NOT treat verification failures as policy violations.t=sforbids subdomain signing (thei=identity tag must exactly matchd=). s=<service-type>(optional)- Service-type restriction.
s=emaillimits the key to email signing. Default*allows any DKIM-using service. n=<notes>(optional)- Human-readable notes. Ignored by verifiers; intended for the DNS administrator.
h=<hash-algorithms>(optional)- Allowed hash algorithms. Defaults to all. Modern
records should restrict to
sha256— RFC 8301 deprecatessha1.
The matching DKIM-Signature: header on the
message side carries a different (overlapping) tag set
including d= (signing domain), s=
(selector), h= (signed-headers list),
a= (signing algorithm e.g.
rsa-sha256), c=
(canonicalization), bh= (body hash), and
b= (the signature). The combination of
d= and s= is what tells the
verifier which DNS record to fetch.
Records must be ASCII-safe; a 2048-bit RSA public key exceeds the DNS single-string 255-byte TXT limit and is automatically split into multiple double-quoted strings inside the same record. Resolvers concatenate them transparently before the verifier parses them.
4. DKIM selectors explained
A selector is a short string that, in
combination with the signing domain, uniquely identifies
a DKIM key. The selector lets a single domain publish
multiple keys simultaneously — which is what makes
zero-downtime key rotation possible. Selectors appear in
the DKIM-Signature header's s=
tag and become the leftmost label of the DNS query name:
DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=mail202604; …
│ │
│ └─→ selector
└────────────────────────────────────────────→ signing domain (d=)
DNS lookup performed by the verifier:
mail202604._domainkey.example.com IN TXT "v=DKIM1; k=rsa; p=…"
Selector naming is a free-form choice but a few conventions matter:
- Date-encoded selectors (recommended)
- Use a date stamp like
s202604,mail202604, ork2026q2in the selector name. This makes key age visible in the DKIM-Signature header — anyone auditing your mail can see at a glance how old the signing key is. - Provider-prefixed selectors
- SaaS senders use selectors like
mailgun,k1,selector1,google,scph0119. When you on-board a SaaS sender, they publish their public key under<their-selector>._domainkey.<your-domain>— either via a CNAME alias to their key or as a delegated subdomain. - Selector reuse
- NEVER reuse a selector name for a different key. Cached DNS responses across the receiver fleet will see signature failures on the boundary. Always use a fresh selector for each new key — date-encoded names make this trivial.
Multiple selectors can coexist indefinitely. Most well-tuned mail estates publish 2-3 active selectors at any time: the current signer, the previous signer (kept live while in-flight mail still references it), and an occasional "next" selector pre-published before a rotation switch-over.
5. DKIM canonicalization (simple vs relaxed)
Mail in transit gets touched: white-space gets folded,
headers get refolded at SMTP-line boundaries, trailing
empty lines come and go, a MTA might fix a missing
Date: header. Canonicalization is the
normalisation step DKIM applies before hashing so a
benign whitespace change does not invalidate the
signature. RFC 6376 §3.4 defines two
canonicalization algorithms each for headers and body:
| Algorithm | Headers | Body | Robustness |
|---|---|---|---|
simple |
Exact bytes; no normalisation at all. | Exact bytes; only the final trailing CRLF sequence may be collapsed. | Fragile. Any whitespace refolding by an in-path MTA invalidates the signature. |
relaxed |
Header names lower-cased; runs of whitespace collapsed to single spaces; leading/trailing whitespace stripped; header-line folding normalised. | Trailing empty lines removed; runs of whitespace within lines collapsed; lines ending in whitespace get the trailing whitespace stripped. | Robust. Survives the typical
MTA whitespace fixes that break simple. |
The DKIM-Signature header declares both
algorithms in the c= tag in the form
c=<header-canon>/<body-canon>,
for example c=relaxed/relaxed. Default if
omitted: simple/simple — which is almost
certainly the wrong default for any modern deployment.
Production guidance: use
c=relaxed/relaxed in nearly every deployment.
The handful of legitimate simple use cases
(security-critical mail where any byte change must
invalidate the signature, transaction notarisation, etc.)
are well-understood niche cases. For ordinary
notification, transactional, and marketing mail,
relaxed/relaxed is the correct choice.
6. DKIM key rotation
DKIM keys age. A leaked private key lets an attacker forge messages under your domain with passing DKIM signatures; offline crypto analysis on harvested signatures slowly weakens older keys; staff turnover means historical key material drifts out of access control. The M3AAWG DKIM Key Rotation Best Common Practices recommend rotating production DKIM keys at least every 6 months, and immediately on any suspected compromise.
Zero-downtime rotation procedure:
- Generate a new RSA-2048 key pair and
choose a fresh selector name. Date-encoded
(
s202610,k2026q4) makes the rotation point auditable. - Publish the new public key at
<new-selector>._domainkey.<domain>and wait for DNS propagation (typically 1-24 hours depending on your TTL). - Switch the outbound mail server to sign with the new selector + new private key. The previous selector's DNS record stays live during this transition.
- Wait for in-flight mail to drain. Anything signed under the old selector before the switchover is still in transit and may be verified for up to ~7 days (worst case: greylisting, retries, forwarder queues).
- Revoke the old selector by setting
its DNS record to
v=DKIM1; p=(emptyp=). This signals the key is retired without breaking older queues. After another propagation window, delete the record entirely.
On suspected compromise, compress the
timeline: publish a new selector + switch signing
infrastructure within the hour; revoke the old selector
immediately (set p= empty); then audit your
mail-server access logs back to the last key generation
to scope the compromise window.
7. DKIM examples
7.1 Minimal RSA-2048 DKIM public-key record
s202604._domainkey.example.com. IN TXT ( "v=DKIM1; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvDM…"
"…rest of the base64-encoded key payload…" )
A typical published DKIM record. The p=
value is split across multiple quoted strings inside one
TXT record because a 2048-bit key exceeds the DNS
single-string 255-byte limit; resolvers concatenate them
automatically.
7.2 Revoked key (signals retirement)
s202310._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p="
An empty p= tells verifiers the key is
retired. Used during rotation while in-flight mail still
references the old selector, before the record is
deleted entirely.
7.3 DKIM-Signature header on a signed message
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=example.com; s=s202604;
h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type;
bh=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=;
b=Hyperv+wErx7…BASE64-SIGNATURE…+ZZ==
The verifier reads d=example.com and
s=s202604, queries
s202604._domainkey.example.com, fetches the
public key, re-canonicalizes the headers in
h= + the body under
c=relaxed/relaxed, then verifies
b= using rsa-sha256.
7.4 Google Workspace DKIM record (CNAME-delegated)
google._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBI…"
Google Workspace publishes its keys directly as TXT
records under the customer's domain. The selector is
typically google by default; multiple
selectors are available for rotation. Generate the key
in the Google Admin console; the console emits the exact
TXT record content to paste into DNS.
7.5 Microsoft 365 DKIM record (CNAME-delegated)
selector1._domainkey.example.com. IN CNAME selector1-example-com._domainkey.example.onmicrosoft.com.
selector2._domainkey.example.com. IN CNAME selector2-example-com._domainkey.example.onmicrosoft.com.
Microsoft 365 publishes the actual key material under
its own onmicrosoft.com namespace and
delegates from the customer's domain via two CNAMEs
(selector1 + selector2).
Microsoft rotates between the two selectors on the
customer's behalf — no DNS-side action required.
8. DKIM best practices
- Use 2048-bit RSA keys. RFC 8301 recommends at least 2048 bits; do not introduce new 1024-bit keys in any deployment.
- Sign with SHA-256.
a=rsa-sha256. RFC 8301 deprecates SHA-1 unconditionally. - Use
c=relaxed/relaxedcanonicalization. The defaultsimple/simpleis fragile against in-path whitespace folding. - Sign the headers an attacker would forge.
At minimum:
From,To,Subject,Date,Message-ID,MIME-Version,Content-Type. Many SaaS senders also signReply-ToandList-Unsubscribe. - Rotate selectors every 3-6 months following the M3AAWG guidance; immediately on any suspected key compromise.
- Use date-encoded selectors.
s202604makes key age visible from the signature alone, no DNS lookup needed. - Publish 2-3 active selectors during rotation — old (drain), current (signing), and optionally a pre-published "next" selector.
- Combine with SPF and DMARC. DKIM
proves the message has not been altered, but it does
not bind the signature to the
From:header an end user sees — DMARC supplies that identifier alignment. - Keep the private key on the mail server only. Treat it like a TLS server certificate's private key: no copies in dev / staging / backup repositories, access scoped to the MTA service account, regenerated on staff offboarding when warranted.
- Audit DKIM via DMARC aggregate reports.
DMARC
ruareports surface everyd=domain that signed mail for yourFrom:— the fast way to find unauthorized senders missing from your DKIM key inventory.
9. Common DKIM mistakes
- Publishing a 1024-bit key in 2026. RFC 8301 keeps 1024 bits only as the minimum and recommends 2048. Generate 2048-bit; replace existing 1024-bit keys as a priority.
- Reusing a selector for a new key.
DNS caches the old TXT record across the receiver
fleet; some receivers will see the new
p=, others the cached old one — failure rate climbs to unacceptable levels for hours. - Splitting the public key across the wrong boundaries. A 2048-bit key MUST be split across multiple double-quoted strings INSIDE one TXT record; splitting across two TXT records breaks verification (only one record will be picked up).
- Using
c=simple/simplecanonicalization. Almost any MTA in the path will refold whitespace and invalidate the signature. Usec=relaxed/relaxed. - Forgetting to sign
Subject:in theh=list. An attacker can rewrite an unsigned subject line and the signature still validates against the original body. - Leaving
t=y(test mode) set in production. Verifiers treatt=ysignatures as advisory only — effectively disabling DMARC's DKIM alignment for that selector. - Deleting the old selector during rotation
immediately. Mail signed under the old
selector still in transit fails verification. Use
the empty-
p=revocation pattern first, wait a propagation window, then delete. - Storing the private key in version control. Even private repositories leak. The DKIM private key must live only on the signing MTA, with file permissions scoped to the MTA service account.
10. DKIM troubleshooting
dkim=nonein Authentication-Results- No
DKIM-Signatureheader on the message. Either the sending MTA is not configured to sign, or a SaaS sender on your domain has not been wired into the DKIM signing path. Audit which senders sign and which don't via DMARC aggregate reports. dkim=fail— "body hash did not verify"- An in-path MTA modified the message body — content rewrite, footer injection, encoding change, etc. Most often a corporate gateway adding a disclaimer. Confirm by testing the same mail flow with the suspected gateway bypassed. If the rewrite is intentional, the gateway should re-sign under its own domain rather than passing through the original signature.
dkim=fail— "signature did not verify"- Header tampering OR the public key in DNS does not
match the private key the MTA signed with. Confirm
the DNS record matches the key the MTA loaded
(paste the
p=value into a DKIM validator). Confirm the canonicalization declared inc=matches what the signer applied. dkim=permerror— "key not found"- No TXT record at
<selector>._domainkey.<domain>. Either the selector is wrong, the DNS record was deleted, or DNS propagation has not completed yet. Verify withdig +short txt <selector>._domainkey.<domain>. dkim=permerror— "key revoked"- The TXT record exists but
p=is empty. The selector has been revoked — either intentionally during a rotation drain window, or an operator accidentally cleared the value. Confirm with the publishing party; if accidental, restore thep=value from the key backup. dkim=temperror- DNS resolver timeout fetching the public key.
Usually transient. Persistent failures point at
authoritative-DNS reachability problems for the
_domainkeysub-zone. - DKIM passes but DMARC still fails
- DKIM alignment failure — the
d=domain on the verified signature does not match the organisational domain of theFrom:header. Either sign with theFrom:domain, or in strict-DMARC deployments, ensureadkim=rpermits subdomain alignment. See DMARC explained § alignment for the full alignment rules.
11. Frequently Asked Questions
- What is DKIM?
- DKIM (DomainKeys Identified Mail, RFC 6376) is a cryptographic email authentication mechanism. The sending mail server signs a hash of selected message headers and the message body with a private key; the receiver retrieves the corresponding public key from a DNS TXT record and verifies the signature. A valid signature proves the message has not been altered in transit and originated from a server in possession of the domain's private key.
- What is a DKIM selector?
- A selector is a short label that identifies which
DKIM key was used to sign a message, allowing a
domain to publish and rotate multiple keys
simultaneously. The selector appears in the
DKIM-Signatureheader as thes=tag (for examples=mailgun) and determines the DNS lookup name: receivers query<selector>._domainkey.<domain>to fetch the public key. Selectors should rotate every 3-6 months for security. - What does a DKIM DNS record look like?
- A DKIM public-key record is a DNS TXT record at
<selector>._domainkey.<domain>containing tag=value pairs separated by semicolons. A typical record is:s1._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA…"— declaring the DKIM version, the key algorithm (RSA), and the base64-encoded public key. - What is DKIM canonicalization?
- Canonicalization is the normalisation step applied
to message headers and body before they are hashed.
RFC 6376 §3.4 defines two algorithms each:
simple(no normalisation — exact bytes) andrelaxed(whitespace collapsed, header names lower-cased, trailing empty lines removed). TheDKIM-Signatureheader'sc=tag declares the chosen algorithms in the formc=<header>/<body>, for examplec=relaxed/relaxed. Relaxed is the de-facto production default because most mail forwarders perform whitespace-folding that would otherwise invalidate simple signatures. - How often should I rotate DKIM keys?
- Industry consensus and M3AAWG's "M3AAWG DKIM Key Rotation Best Common Practices" recommend rotating production DKIM keys at least every 6 months, and immediately on any suspected key compromise. Rotation is done by publishing a new selector with the new public key, switching the signing infrastructure to the new selector, then removing the old selector's DNS record once you have confirmed no in-transit mail still references it. Multiple selectors can be published simultaneously, which is how rotation stays zero-downtime.
- Should I use 1024-bit or 2048-bit DKIM keys?
- 2048-bit RSA keys are the modern minimum. RFC 8301 (2018) requires signers to use RSA keys of at least 1024 bits and recommends at least 2048 bits, and requires verifiers to fail signatures using SHA-1 or RSA keys shorter than 1024 bits. Some legacy DNS providers limit a single TXT string to 255 bytes which makes a 2048-bit key span multiple quoted segments — resolvers concatenate them transparently. Use 2048-bit RSA in new deployments; do not introduce new 1024-bit keys.
- Why does my DKIM signature fail after the email is forwarded?
- Some forwarders alter the message — rewriting the
Subject:, prepending an[EXTERNAL]tag, footer injection, or content-transfer-encoding changes — and any modification to a signed header or the signed body invalidates the cryptographic signature. The ARC (Authenticated Received Chain, RFC 8617) standard exists to preserve the authentication result across forwarding by adding cryptographic vouching headers as the message hops through trusted forwarders.
12. Related guides
- DMARC explained
— the policy + reporting standard that binds DKIM and
SPF results to the visible
From:header. DKIM is one of the two authentication mechanisms DMARC consumes for identifier alignment. - SPF explained — Sender Policy Framework (RFC 7208): the envelope-sender authorisation mechanism that complements DKIM. SPF authenticates the IP of the connecting MTA; DKIM authenticates the message bytes — together they cover both attack surfaces.
- SPF forwarding issues (the second-hop break)
— the DKIM-AS-FORWARDING-FAILURE-RESCUE-
MECHANISM-FOR-DMARC-PASS-AFTER-SPF-BREAK
companion documenting the canonical
forwarder-hop SPF-fail scenario (mailing-list
expansion, support-ticket-relay, corporate-to-
personal vacation-forwarder, server-side
Outlook / Gmail forwarding rule) at which the
DMARC outcome would collapse to FAIL if DKIM-
aligned-pass did not act as the load-bearing
rescue mechanism this pillar documents. Where
THIS page documents the DKIM cryptographic-
signature mechanism (the
v=DKIM1/k=/p=public-key publication, thea=/c=/bh=/b=/h=/d=/s=/t=/x=/l=signature-tag grammar, the relaxed / simple body-canonicalization choices, the body-hash binding to a stable signed-byte range), the SPF-forwarding-issues spoke is the FORWARDING-FAILURE-SCENARIO companion that consumes DKIM's rescue property at every forwarder-hop. The four- axis DKIM-PILLAR-VS-SPF-FORWARDING-FAILURE comparison exposes the structurally-distinct FORWARDING-FAILURE-RESCUE roles: (i) SPF authenticates the connecting MTA's envelope-MAIL-FROM IP, which CHANGES at every forwarder hop, so SPF-pass is brittle across any second-hop relay — the SPF leg of the DMARC alignment disjunction collapses to fail; DKIM'sbh=body-hash andb=signature bytes are signed OVER A STABLE BYTE RANGE that the forwarder does NOT break (when therelaxedbody-canonicalization is used and the forwarder does not modify the signed body region), so DKIM-pass survives; (ii) DKIM-aligned-pass at the original-signer'sd=domain survives even when the forwarder relays through a completely different SMTP path, because the public key is fetched from the ORIGINAL signer's DNS (s=._domainkey.d=) not the forwarder's DNS — this is the fundamental why-DKIM-rescues-forwarding invariant the forwarding-issues spoke documents; (iii) forwarder-side body modification (mailing-list footer injection, Reply-To rewrites, MTA-added Authentication- Results headers, signature stripping) BREAKS DKIM body-hash verification even when the cryptographic key chain is intact — the forwarding-issues spoke catalogues the per-forwarder-class body-modification patterns operators must verify against DKIM-l=-tag body-length-limit configuration and therelaxed-vs-simplecanonicalization choice this DKIM pillar documents; (iv) when both SPF-aligned- fail AND DKIM-aligned-fail after forwarder modification, the only remaining DMARC-pass path is the ARC-Authenticated-Received-Chain cryptographic capture of the upstream pre- forwarder DKIM-aligned-pass verdict — the SPF-forwarding-issues spoke documents WHERE in the forwarder chain the DKIM-aligned verdict is broken AND where ARC must intervene to preserve it for the final-receiver. Read the SPF-forwarding-issues spoke when scoping why-DKIM-matters for any operator-relevant legitimate-mail forwarding scenario, and when architecting the DKIMl=-tag / body-canonicalization / selector-rotation choices that determine whether DKIM actually survives the forwarder-hop modification boundary this DKIM pillar's rescue property depends on. - SPF permerror vs temperror
— the DKIM-PILLAR-AS-AUTHENTICATION-RESCUE-
FOR-DMARC-ALIGNMENT-WHEN-SPF-FAILS-WITH-
PERMERROR-OR-TEMPERROR-CLASS companion
documenting how the cryptographic-message-
layer DKIM authentication this pillar
documents STRUCTURALLY RESCUES the DMARC
alignment outcome when the SPF envelope-
layer evaluation collapses to
permerror(publication-time bug, recursive-include cascade exceeding 10-DNS-lookup limit, malformed mechanism token) ortemperror(transient DNS resolution failure, authoritative- nameserver SERVFAIL, network-partition- induced query timeout). Where THIS DKIM pillar documents the cryptographic- signature mechanism (the per-messageDKIM-Signatureheader carrying thed=signing-domain, thebh=body-hash, theb=signature bytes), the SPF- permerror-vs-temperror spoke is the SPF- ERROR-CLASS REFERENCE documenting how each SPF-error class triggers the DMARC alignment-disjunction rescue contract this pillar's per-message cryptographic authentication satisfies. The four-axis DKIM-PILLAR-VS-SPF-ERROR-CLASS-RESCUE comparison exposes the structurally- distinct ERROR-CLASS-RESCUE roles: (i) SPFpermerrorfrom 10-DNS-lookup-limit exhaustion → DKIM-aligned-pass rescues DMARC alignment at the cryptographic-message-layer independent of SPF's envelope-layer lookup-budget — when the publisher's recursive-include cascade (typical pattern: 5-8 ESP include tokens across SaaS sender pool consolidations) exhausts the RFC 7208 §4.6.4 10-DNS-query ceiling, the SPF leg of the DMARC alignment disjunction collapses topermerror(receiver-side treated as fail-for-alignment per RFC 7489 §4.1); DKIM-aligned-pass remains unaffected because the per-message cryptographic signature this pillar documents requires only ONE DNS query (the<selector>._domainkey.<d>TXT-record fetch), well within any DNS- budget; the SPF-permerror spoke documents the canonical lookup-cascade-exhaustion operational scenario this pillar's cryptographic rescue path closes; (ii) SPFpermerrorfrom publication-time syntax bug (malformed mechanism, invalid IP literal, missing terminator) → DKIM-aligned-pass independent of publisher's SPF-record publication-quality — when the publisher emits an SPF record with a publication-time syntax bug (typical causes: typo in CIDR notation, missing~allqualifier terminator, accidentally-truncated record at the 255-byte string-segment boundary), the SPF leg collapses topermerror; DKIM-aligned-pass remains unaffected because the per- message signature this pillar's signer-side discipline emits is cryptographically independent of any SPF-record byte-syntax (signing-key publication uses a separate DNS-record family at the_domainkey.<d>subzone); the SPF-permerror spoke documents the syntax-error canonical forms this pillar's signing-mechanism- independence rescues; (iii) SPFtemperrorfrom transient DNS failure (authoritative-NS SERVFAIL, recursive-resolver-cache eviction, network- partition-induced query timeout) → DKIM-aligned-pass independent of SPF's transient-DNS-failure window — when the recipient's recursive resolver encounters a transient failure during the SPF lookup chain (theinclude:recursive resolution must succeed end-to- end), the SPF leg collapses totemperror(receiver-side treated as fail-for-alignment with retry-deferred behavior per RFC 7208 §5); DKIM-aligned-pass remains unaffected because the per-message signature this pillar documents requires only the<selector>._domainkey.<d>TXT-record fetch (a single non-recursive DNS query whose temperror probability is ~5× lower than the SPF recursive cascade per receiver-side telemetry); (iv) per-domain rua-aggregate report per-rowspf=permerror+ per- rowdkim=pass + aligned=trueco-occurrence → DKIM-rescue-rate KPI observability — the per-day per- domain RUA aggregate-report's row-level co-occurrence ofspf=permerror+dkim=pass + aligned=trueis the OBSERVABILITY METRIC for the DKIM- rescue-path operational KPI; the SPF- permerror spoke documents the per-error- class canonical-cause taxonomy operators consume during permerror-root-cause- analysis triage, while this DKIM pillar documents the cryptographic-signature- verification mechanism whosedkim=passverdict this pillar's signer-side discipline produces in the same row. Read the SPF-permerror- vs-temperror spoke when the publisher's SPF record has just regressed topermerrorortemperrorin production and the operator needs to understand whether DKIM-aligned-pass is currently rescuing DMARC alignment (or whether the SPF regression has cascaded to DMARC fail) — the spoke is the canonical reference for the SPF-error-class taxonomy whose operational outcomes this DKIM pillar's cryptographic-message-layer rescue path was engineered to close. - Why SPF alone is insufficient
— the operationally-canonical case
for WHY DKIM (this pillar) exists at all
as a complementary authentication mechanism.
Walks six structural SPF-only limitations
that DKIM was engineered to close: (1) the
forwarder break — SPF authenticates the
envelope-MAIL-FROM IP, which changes at
every forwarder hop, so SPF=pass is brittle
across mailing lists, distribution lists,
and SaaS support-ticket relays; DKIM=pass
survives because the cryptographic signature
this pillar documents covers a stable byte
range and the signing key remains in the
original signer's DNS, (2) no header-From
coverage — SPF binds to RFC 5321 MAIL-FROM,
leaving RFC 5322
From:spoofing wide open; DKIM'sd=tag exposed to DMARC alignment closes the header-From gap by binding the cryptographic identifier to the visibleFrom:domain, (3) no body-integrity protection — SPF authenticates the connecting IP but provides zero coverage of the message body bytes, leaving in-transit body modification undetected; DKIM body-hash coverage per RFC 6376 §3.7 closes the body-integrity gap, (4) no per-message replay binding — SPF says nothing about which messages a given IP actually sent; DKIM's per-message signature binds authentication to message identity, (5) the 10-DNS-lookup ceiling — SPF's RFC 7208 §4.6.4 cap creates a hard scaling limit; DKIM has no equivalent ceiling because verification fetches a single selector key regardless of sender-portfolio breadth, and (6) no aggregate feedback — SPF emits no per-receiver reports; DKIM combined with DMARC's RUA stream gives operators a feedback loop. Read this spoke once the basic DKIM protocol is clear on this pillar and the operator asks "couldn't we just publish SPF and skip the complexity of DKIM signing infrastructure?" — the SPF-insufficiency spoke is the canonical answer. - DKIM selectors explained
— focused operational deep dive on the
selector name space at the
_domainkeysubdomain: the eight canonical naming patterns (numbered / dated / provider / short-letter / opaque / purpose / domain-prefix / hosted-prefix), the seven failure modes (NXDOMAIN / wrong-name / stale / 255-byte / CNAME-vs- TXT / wildcard / propagation), and the eleven provider-specific selector conventions (Microsoft 365 / Google Workspace / Amazon SES / SendGrid / Mailgun / Mailchimp / Postmark / SparkPost / Klaviyo / HubSpot / Brevo). Pairs with the key-rotation page below as the addressing layer that key rotation walks through, and with canonicalisation as the per-message processing layer the selector identifies the verifying key for. Read once you understand the basic DKIM protocol on this pillar and need the deep dive on how senders publish and rotate multiple verifying keys simultaneously. - DKIM canonicalization explained (simple vs relaxed)
— the byte-level processing layer that
normalises message headers and body
bytes BEFORE the cryptographic hash on
this pillar runs, specified by RFC 6376
section 3.4. Covers the two header
algorithms (
simpleper section 3.4.1 andrelaxedper section 3.4.2), the two body algorithms (simpleper section 3.4.3 andrelaxedper section 3.4.4), the fourc=tag combinations (simple/simple,simple/relaxed,relaxed/simple,relaxed/relaxed), the optionall=partial-body- length tag with its security trade-off, the seven most common body-hash mismatch causes (forwarder whitespace folding, mailing-list footer injection, content-transform middleware, transfer- encoding changes, MIME re-encoding, trailing CRLF normalisation, Subject- prefix rewriting), and the per-provider canonicalization defaults (Microsoft 365, Google Workspace, Amazon SES, SendGrid, Mailgun, Postmark, SparkPost, OpenDKIM, Postfix dkim-milter, Exim DKIM). The canonical answer to "DKIM body hash mismatch" debugging — read once you understand the protocol on this pillar and need the byte-level processing rationale for choosingc=relaxed/relaxedin production. - DKIM key rotation: procedure, cadence and best practices — focused operational deep dive off this pillar covering the canonical dual-selector zero-downtime rotation procedure, the single-selector emergency hot-swap, per-provider automation for Google Workspace, Microsoft 365, Amazon SES, Mailgun, Postmark, and SendGrid, the 1024-bit deprecation and 2048-bit RSA / Ed25519 (RFC 8463) migration path, and the 255-byte TXT-record pitfall that silently corrupts large public keys at some DNS provider UIs.
- DKIM replay attacks explained
— the dedicated deep dive on the
DKIM-specific threat class where an attacker
captures a legitimately-signed message and
re-sends it to different recipients (and from
different envelope senders) because the DKIM
signature does not bind the recipient list or
the sending IP. The replay-attack class is
the operational reason behind several DKIM
deployment rules covered on this pillar: the
short-lived rotation cadence, the
l=tag avoidance (length-limited signatures are trivially body-extended after capture), the canonicalisation choice (simplebody canonicalisation prevents most body-tail attacks but breaks with whitespace-mangling MTAs), and the new RFC 9103 "expiration tag" (x=) guidance that limits the temporal window an attacker has to replay. Read once you understand the basic protocol on this page and need the threat-model rationale for deployment defaults. - Phishing protection — the operator-facing defense-in-depth playbook DKIM contributes the cryptographic-authentication layer to
— the LAYERED-DEFENSE OPERATOR PLAYBOOK
companion to this DKIM pillar. Where this
pillar documents the DKIM protocol at the
RFC 6376 level (the
DKIM-Signature:header, thed=/s=/b=/bh=/a=/c=/l=/x=tag grammar, the signing-and-verification cryptographic pipeline, the relaxed-vs-simple canonicalisation choice, the dual-selector zero-downtime rotation pattern), the phishing- protection spoke documents the FULL defense-in-depth control stack DKIM contributes ONE LAYER to: (i) authentication- protocol layer (the SPF + DKIM + DMARC + BIMI + MTA-STS + DANE + ARC controls this pillar's cluster catalogues, of which DKIM provides the CRYPTOGRAPHIC-INTEGRITY half — RFC 5322From:spoofing protection viad=-aligned DMARC-pass that survives forwarders and body- modification), (ii) gateway-control layer (SEG + sandbox URL analysis + attachment detonation), (iii) endpoint layer (EDR + browser isolation + WebAuthn / FIDO2 phishing-resistant MFA), (iv) identity layer (Conditional-Access + impossible-travel + token-binding), (v) user-behaviour layer (continuous phishing simulation + reporter- button workflow + JIT training), (vi) response layer (SOC + SIEM correlation + SOAR playbook automation + tabletop-exercise cadence). The DKIM half is operationally UNIQUE in the protocol-layer because it is the only authentication mechanism that survives the forwarder break (SPF authenticates the connecting IP which changes at every hop; DKIM authenticates the message bytes which survive any intermediate handler that does not body-modify the signed range) — making DKIM the load-bearing layer-1 control in any defense-in-depth posture for high-value targets routinely forwarded through mailing lists, distribution lists, SaaS-relay support- ticket pipelines, and per-customer-domain forwarders. Read once you understand the DKIM protocol on this pillar and need the operator-side reference for how the cryptographic-authentication primitive composes with the broader anti-phishing control stack sitting ABOVE (gateway / endpoint / identity / user / response) and BELOW (transport-security / DNS-integrity) the email-authentication layer. - Email security glossary
— the DKIM-PROTOCOL-VOCABULARY-RESOLVES-
TO-EMAIL-SECURITY-VOCABULARY-DICTIONARY
companion to this DKIM protocol pillar.
Where this pillar introduces the RFC 6376
protocol-level DKIM vocabulary
(
DKIM-Signature:header grammar,d=/s=/b=/bh=/a=/c=/h=/t=tag-list,v=DKIM1; k=rsa; p=...DNS-published-key format, signing-domain identifier alignment, canonicalization algorithms, body-hash discipline), the Email security glossary spoke is the canonical email-security term-dictionary whose entries resolve THIS pillar's DKIM-protocol vocabulary into cross-protocol cross-cluster vocabulary used uniformly across the rest of the help cluster. The DKIM-VOCABULARY-RESOLVES-TO-EMAIL- SECURITY-VOCABULARY-DICTIONARY cross- reference establishes FOUR structurally- distinct DKIM-term-resolution dimensions: (i) DKIM-Signature byte-grammar vocabulary resolves to glossary RFC 6376 §3.5 tag-list dictionary entries — the per-tag bytes (v=version,a=algorithm,c=canonicalization,d=signing domain,s=selector,t=timestamp,h=signed-header list,bh=body-hash,b=signature bytes) that THIS pillar introduces have glossary entries documenting their canonical byte-format AND their consumer in DMARC alignment / ARC chain preservation / BIMI VMC binding / TLS-RPT MITM-evidence-stream contexts; (ii) DKIM-DNS-published-key vocabulary resolves to glossary<selector>._domainkey. <domain>dictionary entries — the per-key TXT-record bytes (v=DKIM1; k=rsa; t=y; p=<base64- pubkey>) at the per-selector owner-name that THIS pillar introduces have glossary entries resolving the cross-protocol parallels (parallel DNS-published-PKI-policy at CAA records, parallel DNS-published-policy at SPF / DMARC / MTA-STS / DANE-TLSA records); (iii) DKIM-canonicalization-and- failure-mode vocabulary resolves to glossary RFC 6376 §3.4 c=relaxed/simple + dkim=fail/neutral/temperror/permerror dictionary entries — the per- algorithm body-hash and header-folding bytes (whitespace folding, CRLF normalization, case-folding) and the per-result-code receiver-side verdict vocabulary that THIS pillar introduces have glossary entries documenting the cross-cluster failure-attribution vocabulary (forwarder rewrite class, MLM footer-injection class, anti-virus body-modification class, publisher-side signing-implementation-bug class); (iv) DKIM-signing-identifier- alignment vocabulary resolves to glossary DMARC-alignment-mode dictionary entries — the per-messaged=<signing-domain>vs Header-From-domain alignment computation underadkim=rrelaxed /adkim=sstrict modes that THIS pillar introduces has glossary entries resolving DMARC- alignment vocabulary used uniformly across DMARC-records-explained / DMARC-policy-modes / DMARC-troubleshooting / DMARC-for-shared-hosting / DMARC-for- SaaS-senders pages. Pair this pillar (the DKIM protocol-level overview) with the Email security glossary spoke (the canonical email-security vocabulary dictionary) when introducing DKIM concepts to operators new to email- authentication terminology — the glossary's term-dictionary provides the cross-cluster vocabulary that THIS pillar's DKIM-specific introduction composes into the broader email- authentication / transport-security / threat-defense terminology landscape. - Email spoofing explained
— the THREAT-TAXONOMY companion to this
protocol pillar. Where this pillar documents
DKIM at the RFC 6376 protocol level
(
DKIM-Signature:header grammar, thed=/s=/b=/bh=/a=/c=/l=/x=tag vocabulary, the signing-and-verification cryptographic pipeline, the relaxed-vs-simple canonicalisation choice, the dual-selector zero-downtime rotation pattern), the email-spoofing pillar documents the SEVEN CANONICAL THREAT-TECHNIQUES the protocol layer this DKIM pillar belongs to is engineered to defeat: (1) direct domain spoofing via RFC 5322From:forgery — the threat-technique DKIM UNIQUELY defeats among the three authentication protocols because thed=-aligned signature cryptographically binds the message bytes to the publishing domain, surviving every forwarder hop SPF breaks at; (2) envelopeMAIL FROMspoofing per RFC 5321 — the SPF-territory threat-technique that DKIM complements via the cryptographic-integrity half of the authentication-protocol stack; (3) display-name spoofing — the social-engineering variant DKIM cannot defeat alone because the cryptographic signature validates thed=-aligned domain, not the visible display-name string; (4) lookalike-domain registration; (5) IDN homograph attacks (Unicode confusables per UTS #39); (6) cousin-domain registration; (7) subdomain takeover via abandoned DNS. The email-spoofing pillar's section 5 ("How DKIM defends against spoofing") documents the SPECIFIC threat-techniques DKIM defeats versus the ones it does not — critical operator knowledge when scoping the deployment of the protocol documented here. Read the email-spoofing pillar once you understand DKIM at the protocol level on this page and need the THREAT-TECHNIQUE taxonomy reference for which forgery patterns the DKIM cryptographic-integrity primitive actually closes versus which require adjacent controls (SPF for envelope, DMARC for alignment-enforcement, BIMI for visual brand confirmation, MITRE ATT&CK T1566 for the broader phishing chain). - Business email compromise (BEC) defence
— the DKIM-PROTOCOL-PRIMITIVES-AS-
BEC-DEFENCE-PRIMITIVE companion to
this DKIM protocol pillar. Where the
email-spoofing taxonomy spoke
catalogues the seven message-
identity spoofing techniques at the
protocol level, the business-email-
compromise spoke is the financial-
loss-quantified, human-engineering-
amplified, multi-stage-attack-
pattern companion documenting the
FBI IC3-tracked BEC attack class
whose 2024 reported loss was $2.9B
globally — and whose stage-1
exact-domain From-header
impersonation variant the DKIM
protocol's two LOAD-BEARING
cryptographic primitives THIS
pillar documents (publisher's
d= private-key SECRECY in the
publisher's HSM or signing-server;
receiver-side per-message
signature VERIFICATION against the
publisher's published _domainkey
TXT record at four
DKIM-protocol-property-vs-BEC-
attack-stage cryptographic-
boundary dimensions: (i)
BEC stage-1 exact-domain
From: header impersonation →
DKIM private-key-secrecy
property forces the attacker
OUTSIDE the publisher's
cryptographic perimeter, which
forces the attacker to send WITH
NO valid DKIM signature for the
publisher's d= identifier — the
receiver's per-message verification
finds dkim=none or dkim=fail,
DMARC reject under p=reject
directs reception denial
— the BEC spoke's stage-1
catalogue documents the attacker's
characteristic exact-domain
impersonation of the victim
organisation's senior executive
(CEO / CFO / finance lead);
because the DKIM protocol's
publisher-side private-key
SECRECY property THIS pillar
documents is the cryptographic
boundary the attacker CANNOT
cross (no access to the
publisher's HSM or signing
server), the attacker's forged
From: header arrives at the
receiver WITHOUT any
cryptographically-valid DKIM
signature for the publisher's
d= — the per-message
verification computation THIS
pillar documents emits
dkim=none (signature absent)
or dkim=fail (signature
present but body-hash or
signature-validation fails),
which the DMARC OR-conjunction
consumer composes with SPF to
emit the reject verdict the
publisher's p=reject policy
directs; (ii) BEC
stage-2 cousin-domain
impersonation → DKIM
private-key-secrecy property
does NOT protect against the
cousin's OWN cryptographic
perimeter (cousin owns its
own d=, its own private key,
its own _domainkey TXT
record) — making explicit
that DKIM is bound to a
SPECIFIC publisher's d=, not
to "any plausible domain"
the recipient might
misread — the BEC
spoke's stage-2 catalogue
documents the lookalike-
domain variant where the
attacker registers
company-llc.cominstead of impersonatingcompany.com; in this variant the attacker publishes its OWN DKIM key pair under the cousin's _domainkey TXT record and emits cryptographically- valid DKIM signatures under the cousin's d= — the per-message verification THIS pillar documents passes for the cousin, making explicit that DKIM is bound to a SPECIFIC publisher's d= identifier (not to "any plausible domain"), and motivating the COMPLEMENTARY out-of-band controls (passive- DNS lookalike-monitoring feeds, homoglyph-permutation enumeration, recipient-side warning banners for first- contact cousin domains) the BEC spoke's stage-2 catalogue documents the attack-pattern reference for; (iii) BEC stage-3 reply-chain-hijack from in-thread-compromised account → DKIM signs the malicious payload CORRECTLY under the compromised user's legitimate selector at the legitimate signing pipeline; motivates the layered application-layer-plus- identity-layer-plus-content- layer defence the BEC spoke documents — the BEC spoke's stage-3 catalogue documents the most sophisticated variant where the attacker compromises an in-thread participant's mailbox via separate credential-theft and pivots at message N+1 to a social-engineering payload; the DKIM signature THIS pillar documents is computed CORRECTLY for the thread-pivot message (the compromised user IS the legitimate signer through the legitimate signing pipeline with the legitimate private key), making explicit that DKIM is NECESSARY but NOT SUFFICIENT for full BEC defence — the stage-3 variant motivates the LAYERED-CONTROLS posture (identity-layer MFA- plus-impossible-travel- detection, application- layer DLP-content-scanning, content-layer finance- process two-channel verification) the BEC spoke documents; (iv) BEC stage-4 post-compromise outbound- spoof from the publisher's OWN signing pipeline → DKIM signature passes correctly under the publisher's OWN d= with the publisher's OWN private key; motivates per-account anomaly- detection and credential- rotation discipline as the layered-controls complement — the BEC spoke's stage-4 catalogue documents the variant where the attacker has fully compromised a user account at the victim organisation and sends outbound BEC from the victim's OWN signing infrastructure under the publisher's OWN d= identifier with the publisher's OWN private key — in this case the DKIM signature THIS pillar documents passes CORRECTLY (the attacker is sending from INSIDE the cryptographic perimeter the SECRECY property defines), making explicit that DKIM is the OUTBOUND-INTEGRITY gate but not the COMPROMISED- USER detector, and the BEC spoke's stage-4 catalogue documents the COMPLEMENTARY identity- layer controls (impossible-travel sign- in alerts, anomalous-send- volume detection, anomalous-recipient-domain analysis, MFA-bypass forensics) that detect the compromise upstream of the signing pipeline. Read the BEC spoke WITH this DKIM protocol pillar when authoring the layered-defence posture for an organisation in the FBI IC3 BEC-target categories (manufacturing, legal, finance, real- estate, construction) — the BEC spoke is the financial-loss- quantified, attack-stage- catalogued business- outcome threat-modelling reference; THIS DKIM protocol pillar is the application-layer cryptographic-signature protocol reference whose private-key-SECRECY + per-message-VERIFICATION primitives are the LOAD- BEARING cryptographic gate at stage 1 prevention (and stages 2–4 scope-boundary acknowledgement). - DKIM cryptography basics
— the third focused operational deep dive
off this pillar (alongside key rotation and
replay attacks). The cryptography-basics
page documents the mathematical foundation
the DKIM protocol on this pillar rests on:
RSA signing (modulus + public exponent +
private exponent), Ed25519 elliptic-curve
signing (RFC 8463), SHA-256 hash function
(the only valid
a=hash algorithm per RFC 8301 — SHA-1 is deprecated), public-key / private-key separation (sender holds private, receiver retrieves public from DNS), the canonical signing pipeline (canonicalise → hash → sign over selected headers + body hash), and the verification pipeline (canonicalise → recompute hash → public-key verify). Read once you understand the protocol on this page and need the cryptographic rationale for the deployment defaults this pillar names: why 2048-bit RSA is the operational minimum (1024-bit RSA is factor-able by the NIST 2030 deprecation deadline; the academic 2009 768-bit factoring milestone projects forward), why Ed25519 is the next-generation signing algorithm (smaller keys, faster signing, equivalent ~128-bit security to 3072-bit RSA), why SHA-256 is the only hash algorithm (SHA-1 collisions are practical and SHA-1 was formally deprecated by RFC 8301), and why the body hash and header signature are computed separately (body modifications by mailing lists must be detectable independently of header modifications by forwarders). Pairs with DKIM key rotation for the operational cadence and DKIM replay attacks for the threat model. - DANE explained — the transport-channel cryptographic-integrity complement to DKIM's message-data cryptographic-integrity
— the TRANSPORT-LAYER CRYPTOGRAPHIC-INTEGRITY
companion to this DKIM pillar's
MESSAGE-LAYER cryptographic-integrity
primitive. Where this pillar documents the
RFC 6376 DKIM signature that authenticates
and integrity-protects the MESSAGE BYTES
(headers + body, canonicalised + hashed +
signed with the signer's private key,
verified by retrieving the public key from
the signer's
<selector>._domainkey.<domain>DNS record), the DANE-explained spoke documents the RFC 7672 protocol that authenticates and integrity-protects the TRANSPORT CHANNEL the message bytes flow through — the STARTTLS-secured SMTP connection itself, with the certificate validated against a TLSA record published via DNSSEC. The two protocols sit at DIFFERENT OSI layers and provide COMPLEMENTARY (not overlapping) cryptographic guarantees: DKIM survives any forwarder that does not body-modify but offers ZERO protection against STARTTLS-stripping MITM attacks downstream; DANE prevents STARTTLS-stripping at every MTA-to-MTA hop but offers ZERO protection against message-body tampering at the application layer. A production defense-in-depth posture requires BOTH — DKIM for end-to-end message-integrity across forwarders and SaaS-relay infrastructure, DANE for hop-by-hop transport-channel-integrity against downgrade and rogue-CA attacks. Read this spoke once you understand the DKIM message-layer cryptography on this pillar and need the adjacent transport-layer reference — particularly when an operator asks "if DKIM signs the message, why do we ALSO need DANE / MTA-STS at the transport layer?" — the answer is the OSI-layer separation this spoke documents in detail. - SMTP TLS Reporting (TLS-RPT) report format
— the DKIM-SIGNED-MAIL-TRANSPORT-LAYER-
OBSERVER companion to this DKIM pillar.
Where THIS page documents the RFC 6376
DKIM signature that authenticates the
MESSAGE BYTES at the application layer
(header + body hashed and signed with
the signer's private key, verified by
retrieving the public key from
<selector>._domainkey.<domain>), the TLS-RPT report-format spoke documents the RFC 8460 §4 JSON report schema that OBSERVES whether the STARTTLS transport channel underneath the DKIM-signed message bytes negotiated correctly — a transport-layer observability dimension structurally orthogonal to DKIM but operationally CRITICAL because (i) DKIM survives transport-layer downgrade (the signature still verifies when the message is delivered in cleartext) but the operator loses the confidentiality-and-integrity guarantee STARTTLS provides — TLS-RPT JSON reports document the failure-type taxonomy ("starttls-not-supported", "certificate-host-mismatch", "certificate-not-trusted", "validation-failure") receivers emit when their inbound STARTTLS connection to the publisher's sending MTA fails, (ii) a sustained TLS-RPT failure rate against a DKIM-publisher's sending MTA is the leading-indicator metric for receiver-side cleartext-delivery-with-DKIM-signature- intact incidents that often pre-date a full transport-layer outage by hours, (iii) the DKIM-key-rotation overlap- window and the TLS-RPT-publication overlap-window are operationally adjacent: both depend on coordinated DNS-layer publication discipline and both surface in the TLS-RPT JSON reports when misconfigured. Read the TLS-RPT report-format spoke when the DKIM application-layer signature verification is observably stable (dkim=pass across the receiver population in aggregate reports) but the operator needs to confirm that the DKIM-signed mail crossing the publisher-to-receiver transport boundary is also riding an encrypted channel — the canonical evidence source is the receiver-population's TLS-RPT JSON reports for the publisher's sending MTA, parsed per the byte-level schema this spoke documents. - DKIM best practices
— the operational-recommendations sibling
spoke off this pillar. Where this pillar
documents what DKIM is and
how the protocol works, the
best-practices page consolidates the
deployment defaults a production
signer should adopt across every layer this
pillar names: the 2048-bit RSA / Ed25519
algorithm floor (RFC 8301 + RFC 8463), the
c=relaxed/relaxedcanonicalisation default (survives most forwarder body-mangling), the rotation cadence (90 days or sooner per the replay-attack threat model), thel=tag avoidance (length- limited signatures are trivially body- extended), the RFC 9103x=expiration tag for bounded replay windows, the dual-selector zero-downtime rotation pattern, and the selector-naming conventions that survive rotation. Read once you understand the protocol on this pillar and need the consolidated production-defaults checklist rather than the per-topic deep dives. - DKIM DNS record syntax
— the byte-by-byte syntax reference for
the DKIM public-key TXT record at
<selector>._domainkey.<domain>. Where this pillar tells you the protocol requires a public key in DNS, the DNS-syntax spoke documents the exact tag grammar (v=DKIM1; k=rsa; p=<base64>), the optional service-type and flags tags, the 255-octet TXT-string chunking rule that silently corrupts 2048-bit keys at many DNS UI providers, and the CNAME-vs-TXT deployment trade-off for delegated DKIM keys. The byte-syntax companion to the selectors-explained and key-rotation spokes above. - DNS propagation explained
— the DNS-INFRASTRUCTURE-CACHE-AGING
companion to this DKIM pillar's DNS
selector-key-publication mechanism. Where
THIS page documents the DKIM protocol's
cryptographic-authentication primitive
(RFC 6376: signing-domain
d=tag, selectors=tag, the<selector>._domainkey.<d-tag>TXT-record public-key publication, body canonicalisation, theDKIM-Signatureheader anatomy a verifier reads on every inbound message), the DNS-propagation spoke documents the DNS-INFRASTRUCTURE-LAYER behaviour that determines WHEN a newly-published DKIM selector key BECOMES VERIFIABLE across the global recursive-resolver population: per-record TTL semantics (RFC 1035 §3.2.1 + RFC 2181 §8), the resolver-cache minimum-and-maximum cap quirks (Cloudflare 1.1.1.1 enforces a 300-second negative- cache floor; Google 8.8.8.8 caps all TTLs at 21 600 seconds regardless of authoritative value; some corporate resolvers enforce 1800-second minimums), and the diagnostic workflow operators run when a fresh DKIM key publication producesdkim=permerror("key not found") at the verifier despite the operator confirming the TXT record is present in the authoritative zone:dig/kdigdirectly against the authoritative nameservers ("dig google._domainkey.example.com TXT @ns1.your-dns-provider.com") to confirm publication, thendigwith+norecurseagainst multiple geographically-diverse recursive resolvers (1.1.1.1 / 8.8.8.8 / 9.9.9.9) to confirm what each cache currently believes, then the web-based propagation checker for the global recursive-cache snapshot. Read the propagation spoke when fresh DKIM key rotation produces unexpected verifierdkim=permerrorrows in aggregate reports despite the operator's confidence that the new TXT record is published — propagation is almost always the explanation in the first 24-72 hours following a key-rotation event. - MX records explained
— the DKIM-SIGNED-MESSAGE-ROUTING-LAYER-
FOUNDATION companion to this DKIM pillar.
Where THIS page documents the cryptographic-
authentication primitive (RFC 6376
DKIM-Signature header, selector
publication, body-hash canonicalization,
the verifier-side
<selector>._domainkey.<d-tag>TXT public-key retrieval), the MX-records spoke documents the underlying ADDRESSING- LAYER FOUNDATION every DKIM-signed message traverses: (i) per-receiver MX hostname targeting — the verifier's MTA is reached at the apexMX-record-published hostname (Gmailaspmx.l.google.com, Microsoft 365<tenant>-com.mail.protection.outlook.com, Yahoomta5.am0.yahoodns.net, Mail.rumxs.mail.ru), each of which becomes the per-message DKIM verifier whose Authentication-Results verdict the publisher consumes via aggregate-report rows; (ii) per- MX-host preference ordering — RFC 5321 §5.1 instructs sending MTAs to prefer lower-preference MX hosts, so the primary MX is the verifier producing the bulk of per-receiverdkim=pass/failverdicts in the publisher'srua=mailto:-delivered aggregate reports while backup MXs produce the long-tail per-row sources operators triage during incident response; (iii) rua-mailbox- domain MX prerequisite — the publisher'srua=mailto:<mailbox>@<domain>TXT-published feedback-loop ingestion mailbox is reachable only when the<domain>apex publishes a valid MX RRset; an unreachable MX on the rua-mailbox domain produces the STRUCTURAL "no aggregate reports arrive" operator-symptom that masquerades as a missing DMARC policy; (iv) dangling-MX security surface — an operator-side MX-record pointing to a no-longer-controlled hostname produces the takeover-attack surface RFC 5321 §5.1 + the SMTP receiver-side rDNS- validation chain are designed to detect but cannot structurally prevent. DKIM deployment operators landing here for the cryptographic-signature reference need the MX-records spoke's addressing-layer foundation to understand the receiver- side population the per-receiver-emitted DKIM verdicts attribute to in aggregate reports. - DKIM signatures explained (DKIM-Signature header)
— the byte-by-byte reference for the
DKIM-Signature:header the verifier reads on every inbound message. Where this pillar tells you a signed message carries a DKIM-Signature header, the signatures spoke documents every tag (v=,a=,c=,d=,s=,h=,bh=,b=,t=,x=,i=,l=,q=,z=) the signer emits and what each one carries operationally. The header-anatomy complement to the DNS-record-anatomy spoke above. - DKIM alignment with DMARC
— the focused deep dive on how the
d=tag in this pillar's DKIM-Signature header is matched against theFrom:header domain for DMARC alignment. Covers theadkim=r(relaxed) vsadkim=s(strict) policy choice, why DKIM signing on a wrong subdomain produces dkim=pass + dmarc=fail, the operational implications for SaaS-delegated DKIM signing where the signing domain differs from the brand domain, and the canonical fix patterns. Required reading before publishing a DMARC record atp=quarantineorp=rejectfor any sender with multi-domain DKIM signing. - DKIM failures explained (dkim=fail / neutral / temperror / permerror)
— the failure-mode reference for every
Authentication-Results: dkim=value an operator will see in an inbound message:dkim=pass,dkim=fail(signature invalid),dkim=neutral(no signature applicable),dkim=policy(rejected by local policy — e.g., algorithm too weak),dkim=temperror(DNS lookup failure — retryable), anddkim=permerror(malformed signature or key). Pairs with the troubleshooting spoke below as the symptom-to-cause reference. - DMARC reporting pipeline — where the dkim= verdict surfaces in the operator dashboard
— the END-TO-END OBSERVABILITY-INFRASTRUCTURE
reference for the daily RUA aggregate-report
stream that carries every
dkim=pass/dkim=fail/dkim=neutral/dkim=temperror/dkim=permerrorverdict this pillar documents back to the operator's dashboard. Where this pillar tells you the receiver evaluates DKIM and emits adkim=verdict in theAuthentication-Results:header, the reporting-pipeline spoke documents the 6-stage end-to-end operational architecture that materialises that per-message verdict as per-source-IP-per-day aggregate counters in the operator's dashboard: Stage 1 ingestion (the IMAP / Microsoft Graph inbound-mailbox transport layer the aggregate-report stream arrives over from every receiving organisation), Stage 2 format detection and extraction (the RUA XML / ZIP / GZ / TAR.GZ multi-format envelope receiver-side report generators emit), Stage 3 parsing (the RUA XML traversal that extracts every<auth_results><dkim><result>+<auth_results><dkim><domain>+<auth_results><dkim><selector>per-record element from each receiver-side<record>block), Stage 4 storage and deduplication (thedmarc_reports/dmarc_recordspersistence layer with per-XML-report-ID idempotency guard), Stage 5 retention policies, and Stage 6 analysis and alerting (the per-source-IP / per-signing-domain drill-down views the dashboard surfaces for DKIM operators). Plus the dedicated IMAP- and Microsoft-Graph-setup sections that document the inbound-mailbox transport-layer configuration every operator MUST configure before anydkim=-verdict aggregate counter materialises in the dashboard. Read the reporting-pipeline spoke when a DKIM operator asks "where does the dkim= verdict from this pillar's Authentication-Results header actually surface in the daily aggregate report stream I see in my operator dashboard", "why does my publishedrua=URI receive zero per-day reports despitedkim=passin my own send-to-self test", or "which per-stage failure in the report pipeline produces the dkim=missing observability gap on a known-signed outbound message" — the spoke is the authoritative end-to-end operator reference for the report-stream observability infrastructure every DKIM verdict eventually flows through. - DKIM troubleshooting (symptom-driven debugging)
— the symptom-driven debugging guide
keyed off the
dkim=result values catalogued in the failures spoke above. Walks each failure class through the canonical diagnostic sequence: DNS lookup of the selector, key-format validation, canonicalisation choice, body-hash recomputation, header-list review, and the forwarder / mailing-list / SaaS-relay variants that explain why most legitimate DKIM failures originate at intermediate MTAs rather than the original signer. - DMARC troubleshooting
— the DKIM-VERDICT-AS-DMARC-COMPOSITE-
INPUT-AT-DIAGNOSTIC-TIME companion to
this DKIM pillar. Where THIS page
documents the per-message DKIM
cryptographic-signing-and-verification
primitive that produces the receiver-side
dkim=verdict at the per-message-evaluation boundary, the DMARC-troubleshooting spoke documents the composite-verdict diagnostic catalogue whose DKIM-aligned-pass leg consumes that verdict at four DKIM-verdict-to-DMARC- diagnostic-class coupling dimensions: (i) dkim=pass + DMARC-fail diagnostic class — the canonical misalignment scenario where the per-message DKIM signature verifies cryptographically (the receiver retrieved the DNS-published key, recomputed the body-hash to a match, and validated the per-message signature bytes) BUT thed=<signing-domain>tag does NOT align with the per-messageFrom: <header-domain>organisational-domain under the publishedadkim=rrelaxed-mode oradkim=sstrict-mode alignment rule, producingdkim=passbut DMARC fail (a DKIM-aligned-pass MISS); (ii) dkim=fail + SPF-aligned-pass + DMARC-pass diagnostic class — where the DKIM leg legitimately fails (forwarder mutation, body-hash mismatch, etc.) but the SPF leg carries the DMARC composite to pass; (iii) dkim=temperror diagnostic class — where the receiver's per-message DNS-fetch of the<selector>._domainkey.<d>key returns SERVFAIL or DNS-fetch-failure, producing transient DKIM-temperror that the receiver MAY retry at the operator's discretion; (iv) dkim=permerror diagnostic class — where the receiver's per-message DNS-fetch returns NXDOMAIN (selector not published, selector retired without coordinated republication, selector typo) producing permanent DKIM-permerror that the operator must fix at the publisher-side. Read the DMARC- troubleshooting spoke alongside this DKIM pillar when diagnosing per-message DMARC-composite-failure rows in RUA aggregate reports, when attributing per-source-IP DKIM- verdict-failure clusters to specific signer-side defects, or when sequencing the DKIM-side remediation work that unblocks the publisher'sp=quarantine→p=rejectrollout cutover. - DKIM for Microsoft 365
— the provider-specific deployment guide
for Exchange Online tenants. Covers the
CNAME-delegated DKIM model unique to
M365 (Microsoft hosts both selectors and
rotates keys behind the CNAME), the
single-selector
selector1/selector2naming convention, the Microsoft 365 Defender portal activation workflow, and the M365-specific gotchas (custom-domain DKIM activation prerequisite, theonmicrosoft.comvanity signing posture, and the Trusted ARC Sealers configuration). Required reading for any sender deploying DKIM through Exchange Online. - DKIM for Google Workspace
— the provider-specific deployment guide
for Google Workspace tenants. Covers the
Admin-Console-generated 2048-bit RSA key
model (Workspace generates the key
material and exposes the TXT record for
DNS publication), the
googleselector convention, the "Authenticate email" activation workflow, the Google-Postmaster-Tools deliverability feedback channel, and the Workspace-specific gotchas (the 24-hour DKIM-publication waiting period, the rotation procedure, and the multi-domain signing model for organisations with multiple Workspace customer-IDs). Required reading for any sender deploying DKIM through Google Workspace. - DMARC deployment checklist — the DKIM-SIGNING-AS-PREREQUISITE-CHECKLIST-STEP-BEFORE-DMARC-PUBLICATION companion to this DKIM reference
— the DKIM-SIGNING-AS-PREREQUISITE-CHECKLIST-
STEP-BEFORE-DMARC-PUBLICATION companion
documenting WHERE the DKIM-publication step
sits in the linear DMARC deployment checklist
and WHY DKIM signing is the load-bearing
prerequisite that gates every subsequent
DMARC enforcement phase. Where THIS page
documents DKIM in protocol-precise terms
(RFC 6376 signing algorithm, selector
publication, header canonicalization,
body-hash computation, the
d=+s=+b=+bh=tag anatomy of a DKIM-Signature header), the deployment-checklist spoke documents the ORDERED SEQUENCE in which DKIM publication must complete BEFORE the operator advances to the DMARC record-publication step: Step 2 (DKIM key generation + selector TXT publication) precedes Step 5 (DMARC record publication withp=none) because DMARC's alignment-pass-rate computation REQUIRES at least one of SPF or DKIM to produce an aligned pass, and DKIM-aligned- pass is the more durable of the two (DKIM survives many forwarding hops that catastrophically break SPF alignment). The checklist documents the per-sender-system DKIM-publication waiting period (24-48h DNS propagation), the per-tenant key custody decision (operator-managed key vs CNAME- delegated tenant-managed key), and the signal-validation step before advancing (header_analyzer.php DKIM=pass on at least one sample from every outbound sender). Read THIS DKIM-explained page WITH the deployment- checklist reference when planning a fresh DMARC deployment — the checklist names the load-bearing order in which the DKIM- publication step this page documents must precede every subsequent enforcement-ramp phase. - DMARC for SaaS senders
— the MULTI-TENANT-PLATFORM-CUSTOMER-DELEGATED-DKIM-SIGNING-AS-LOAD-BEARING-PREREQUISITE-FOR-CUSTOMER-DOMAIN-ALIGNMENT
companion to this DKIM-explained
RFC 6376 cryptographic-signing reference.
Where THIS page documents the DKIM
signing algorithm at the cryptographic
level (the canonicalisation algorithms
relaxed-vs-simple for header and body,
the RSA-SHA-256 / Ed25519 signing key
per RFC 8463, the
<selector>._domainkey.<domain>TXT-record DKIM-key publication, the per-messageDKIM-Signature:header construction withv=1; a=rsa-sha256; d=<domain>; s=<selector>; c=relaxed/relaxed; h=<headers>; b=<signature>; bh=<body-hash>;tag-anatomy, and the SHA-1 deprecation per RFC 8301), the DMARC-for-SaaS-senders deployment spoke documents the canonical multi- tenant SaaS-platform topology where the DKIM signing algorithm THIS page documents must be applied with a STRUCTURALLY-DISTINCT signing-identity choice. The SaaS-senders spoke documents the three signing-pattern variants (platform-shared-domain signing where every SaaS-platform customer's outbound mail signs with the SAME platform- managedd=<platform>.comidentifier, customer-delegated DKIM signing where the platform publishes<customer-selector>._domainkey.<customer>.comas a CNAME to the platform's managed public key + signs each customer's outbound mail with that customer'sd=<customer>.comidentifier, and dual-signed where the platform signs with BOTH a platform- sharedd=AND a customer- delegatedd=) and the DMARC-alignment-pass-rate consequences of each choice. The SaaS-senders spoke documents the per-platform vendor- specific CNAME publication recipes (the<selector>._domainkey.<customer>.comCNAME pointing to<selector>.dkim.<platform>.com/<selector>.<platform>.netper-platform-vendor selector-naming convention) that close the alignment gap between the SaaS-platform-shared d= and the customer-domain header-From. The SaaS-senders spoke is the canonical operational reference for the dkim=pass-but-aligned=false RUA-row pattern (a SaaS-platform sender produces a cryptographically-valid DKIM signature with the platform-shared d= identifier but the customer-domain header-From produces aligned=false because the d= and header-From organisational domains do not match underadkim=r/adkim=s) and the per- platform remediation cookbook the operator runs to elevate the per-customer alignment-pass-rate. Read the SaaS-senders spoke alongside this page when designing the DKIM signing-identity choice for a multi-tenant platform that sends on customer-domain behalf — the DKIM cryptographic-signing algorithm documented here is the same in platform-shared and customer-delegated signing contexts, but thed=-signing-identity choice (the input to the alignment-evaluation algorithm) is the load-bearing operational decision the SaaS-senders spoke documents. - DMARC for shared hosting
— the SHARED-HOSTING-PANEL-TENANT-DKIM-SIGNING-
IDENTITY-AND-SELECTOR-PUBLICATION companion
documenting how the DKIM cryptographic-signing
algorithm THIS page documents (the
v=DKIM1/k=rsa/p=<public-key>TXT-record publication at the<selector>._domainkey.<d=domain>location, the per-messageDKIM-Signature:header construction witha=rsa-sha256; c=relaxed/relaxed; h=<header-list>; b=<sig>; bh=<body-hash>;tag-anatomy) is OPERATIONALLY DELEGATED to a shared-hosting panel where the tenant operator does NOT control the signing-MTA configuration directly. The shared-hosting DKIM deployment surface differs from cPanel-tenant (sibling spoke) and from M365 / Google Workspace enterprise-tenant in FIVE structurally-distinct DKIM-signing-identity adaptations: (i) panel-managed key generation — Plesk's Email → Mail Settings → DKIM tab generates thedefault._domainkeyselector key on the panel's behalf, DirectAdmin via Admin Level → Mail → DKIM, ISPConfig via Mail → Domain → DKIM tab, and WHM-reseller via WHM → Email Deliverability — each panel choosing its own default selector name (Plesk default, DirectAdmin x, ISPConfig default, WHM default) that the shared-hosting deployment spoke catalogues; (ii) panel-managed key-rotation cadence — shared-hosting panels typically DO NOT rotate DKIM keys on the per-6-month or per-12-month cadence the dkim_key_rotation spoke recommends, leaving tenants with long-lived keys whose private-key compromise risk extends across the panel-managed lifetime (the shared-hosting spoke documents the per-panel manual-rotation procedure operators must run to close this gap); (iii) panel-managed DKIM-signing-MTA body-canonicalisation choice — most shared-hosting panels default torelaxed/relaxedcanonicalisation (the choice this DKIM pillar documents as forwarder-survivable), but some panels (notably older ISPConfig releases) default tosimple/simplewhich breaks DKIM-pass at every forwarder hop that modifies any signed byte; (iv) panel operator-empowerment-ceiling on DKIM-signer choice — shared-hosting tenants cannot insert a panel-bypass DKIM-signing gateway (Sendgrid / Mailgun / Amazon SES signing infrastructure) without re-routing outbound mail away from the panel's MTA, a deployment topology the shared-hosting spoke documents as the migration path for tenants requiring per-customer DKIM-signing-identity control; and (v) panel + external DNS delegation (Cloudflare / Route 53 fronting a shared-hosting server) means the operator publishes the<selector>._domainkeyTXT via the external provider's UI rather than the panel's Zone Editor, so the panel- managed key-generation step produces the public-key payload but the publish-and- propagate cycle bypasses the panel entirely. Read the shared-hosting deployment spoke alongside this page when designing the DKIM signing-identity-and-selector-publication topology for a Plesk / DirectAdmin / ISPConfig / WHM-reseller tenant whose operator does NOT have direct MTA-side DKIM-signing-binary control. - BIMI explained
— the DKIM-ALIGNED-PASS-AS-BIMI-
CRYPTOGRAPHIC-AUTHENTICATION-
PREREQUISITE-COMPONENT companion to
this DKIM protocol pillar. Where THIS
page documents the DKIM cryptographic-
signature mechanism (RFC 6376 per-
message DKIM-Signature header authoring
+ per-selector key publication + per-
message body-hash + per-signature
verification), the BIMI-explained
pillar is the DOWNSTREAM-CONSUMER-OF-
DKIM-ALIGNED-PASS companion documenting
the four operationally-distinct DKIM-
BIMI-prerequisite dimensions every
operator deploying brand-indicator
display must coordinate the DKIM
signing infrastructure documented on
this page against: (i) BIMI
display gating at every BIMI-aware
mailbox provider (Gmail, Yahoo Mail,
AOL, Apple iCloud Mail in iOS 16+)
REQUIRES DKIM-aligned-pass OR SPF-
aligned-pass at the receiver-side
DMARC evaluation — making the DKIM
cryptographic-signature mechanism THIS
page documents one of the two BIMI
authentication-prerequisite legs (and
the load-bearing leg for forwarded
mail where SPF breaks at the second
hop) — the BIMI-explained
pillar documents the per-receiver
BIMI-display authentication-prerequisite
contract that makes DKIM signing-
infrastructure investment operationally
rewarded with brand-indicator display
at the receiver UI; (ii) BIMI
chain-of-trust via VMC (Verified Mark
Certificate, X.509 with logotype
extension RFC 3709 + Mark Type
attribute id-on-MarkType-Trademark)
cryptographically binds the
organizational identity to the SVG
logo asset — and the integrity of
that binding at the recipient
depends on DKIM-aligned-pass at the
per-message verification because the
BIMI evaluation runs DOWNSTREAM of
the DMARC pass that DKIM-aligned-
pass enables — the BIMI-
explained pillar documents the VMC
chain-of-trust integrity model that
elevates DKIM key custody from
"DMARC compliance prerequisite" to
"VMC-chain-of-trust load-bearing
cryptographic primitive"; (iii)
BIMI deployment failure
modes at the receiver-side
Authentication-Results
bimi=verdict (bimi=skipped / fail / temperror / permerror) MAP DIRECTLY onto DKIM verification failures (dkim=failbody-hash- mismatch + selector outage + per-message-canonicalization- drift + per-message-key-rotation- race) documented on this page — the BIMI-explained pillar documents the receiver-side diagnostic-pivot model that operationally extends this DKIM protocol pillar's failure-mode taxonomy into the brand-indicator display-failure root-cause diagnostic chain; and (iv) BIMI-CMC (Common Mark Certificate) deployment for unregistered-trademark brand indicators (Gmail-only CMC support as of 2024) requires the same DKIM-aligned-pass cryptographic- authentication prerequisite as BIMI-VMC, lowering the trademark- registration barrier but preserving the DKIM-signing- infrastructure prerequisite this page documents — the BIMI-explained pillar documents the CMC vs VMC deployment-tier differential operators choose between based on trademark ownership AND mailbox-provider coverage, both of which retain DKIM-aligned-pass as the load- bearing per-message authentication prerequisite. Read the BIMI- explained pillar AFTER the DKIM signing infrastructure documented on this page is operationally stable — the BIMI pillar is the AUTHORITATIVE downstream-consumer reference for the brand-indicator reward that DKIM-aligned-pass publication operationally unlocks. - Reverse DNS and PTR records explained
— the DKIM-CRYPTOGRAPHIC-SIGNATURE-
VERIFICATION-RUNS-DOWNSTREAM-OF-PER-
CONNECTING-IP-RDNS-FCRDNS-RECEIVER-SIDE-
CONNECTION-FILTERING-GATE companion to
this DKIM protocol pillar. Where THIS
page documents the per-message DKIM
cryptographic-signature verification
chain (RFC 6376
DKIM-Signature:header authoring, per-selectors=._domainkey.d=public-key DNS publication, per-messagebh=body-hash +b=signature- bytes verification, per-messagec=relaxed/relaxedcanonicalisation), the reverse-DNS / PTR spoke is the PRE-DKIM-VERIFICATION receiver-side connection-filtering gate whose RFC 1035 §3.3.12 PTR record published at the canonical IPv4<reversed-octets>.in-addr.arpazone (or the IPv6 nibble-reversedip6.arpaencoding) and the RFC 1912 §2.1 + RFC 5321 §4.1.1.4 forward-confirmed-reverse-DNS (FCrDNS) cross-verification gate every major mailbox provider (Gmail, Outlook / Microsoft 365 EOP, Yahoo Mail, Apple iCloud Mail) enforces against the connecting MTA's IP BEFORE the per-message DKIM-Signature evaluation runs — making PTR / FCrDNS publication the operationally-load-bearing PRE-DKIM-VERIFICATION trust gate without which the DKIM cryptographic-signature evaluation documented on this page never executes. The four-axis DKIM-PILLAR-VS- REVERSE-DNS-PTR-RECEIVER-SIDE-CONNECTION- FILTERING comparison exposes the structurally-distinct coordination roles: (i) per-connecting-IP PTR / FCrDNS receiver-side connection- filtering gate runs at the SMTP connection-establishment phase BEFORE the per-message DATA phase that carries theDKIM-Signature:header — every mailbox provider'siprev=pass/iprev=failAuthentication-Results verdict materialises from PTR publication at the connecting IP, and aiprev=failverdict commonly produces a connection-level 4xx / 5xx rejection (canonical550 5.7.1 Client host [<ip>] not in permitted sender list. Reverse DNS does not resolve.at receiver-side connection close) that prevents the DKIM cryptographic-signature verification THIS page documents from ever running — the reverse- DNS / PTR spoke documents the receiver-side connection-filtering contract that gates DKIM verification eligibility per RFC 5321 §4.1.1.4 + §5.1 + RFC 1912 §2.1; (ii) per-connecting-IP PTR- published-hostname-vs-DKIM-d=- signing-identity correlation at the receiver-side reputation-scoring layer feeds into the deliverability decision DOWNSTREAM of DKIM-pass — Feb 2024 Gmail + Yahoo bulk-sender requirements impose a one-to-one FCrDNS-confirmed PTRmta1.<d=>/mta.<d=>hostname match against the DKIM signing- identityd=publisher- domain for bulk-sending IPs — the reverse-DNS / PTR spoke documents the per-bulk-sender PTR- hostname-aligned-with-d=- domain operational discipline every DKIM publisher must coordinate against the per-selectors=._domainkey.d=key- publication authority this DKIM pillar documents; (iii) per-connecting-IP shared-IP- pool PTR-publication brittleness contaminates the DKIM-aligned-pass reputation signal at the receiver- side reputation layer — co-tenants publishing genericec2-<ip>.compute-1.amazonaws.comPTRs while signing with their own DKIMd=domain produce a per-receiveriprev=pass+dkim=passcombination that mailbox-provider reputation engines score LOWER than a custom- PTR-with-d=-aligned bulk sender — the reverse- DNS / PTR spoke documents the shared-IP-pool-vs-custom-PTR reputation-scoring asymmetry every DKIM publisher who outsources outbound MTA to a multi-tenant cloud-provider IP pool must accommodate at the per-tenant custom-PTR-request escalation boundary (Amazon EC2 PTR submission form, Hetzner Robot rDNS UI, Google Cloud Compute metadata-side PTR, Azure VM portal-side rDNS request); and (iv) RFC 7208 §5.5 SPFptr-mechanism deprecation makes DKIM-pass the load-bearing authentication leg for forwarder / mailing-list / second- hop relay scenarios where the SPFptr-mechanism would have produced a per-message per-recipient PTR-RR lookup chain the IETF explicitly deprecated as slow and brittle — making DKIM the forward-canonical authentication primitive whosed=- based public-key publication survives the receiver-sideptr-mechanism- unavailability boundary — the reverse-DNS / PTR spoke documents the SPFptr-mechanism deprecation rationale that operationally elevates DKIM from "one of two authentication legs" to "the canonical authentication leg whose protocol design did not depend on a per-message reverse- DNS lookup". Read the reverse-DNS / PTR spoke when commissioning a new outbound DKIM-signing IP (audit the PTR publication BEFORE DKIM selector publication), when diagnosing why a per-messagedkim=passis not materialising the deliverability outcome the reputation-scoring model would predict (correlate the receiver- sideiprev=verdict with the per-messagedkim=verdict), and when architecting the per-bulk- sender PTR-hostname-aligned-with- DKIM-d=operational discipline that satisfies Feb 2024 Gmail + Yahoo bulk-sender FCrDNS-confirmed-with-signing- identity-domain requirements. - DMARC for Google Workspace
— the WORKSPACE-TENANT-DEPLOYMENT-
INSTANTIATION companion to this DKIM-
protocol-mechanics reference. Where
THIS page documents the per-message
DKIM signing-and-verification protocol
mechanics (DKIM-Signature header byte-
anatomy, public-key TXT-RR publication
discipline, RSA-vs-Ed25519 key-algorithm
selection, dual-selector overlap-window
rotation), the Workspace-deployment
spoke is the WORKSPACE-TENANT
DEPLOYMENT-CONFIGURATION REFERENCE
documenting how each DKIM protocol
primitive instantiates concretely on
Google Workspace. Concretely the spoke
documents FOUR per-Workspace-tenant-
configuration-vs-DKIM-protocol-
primitive-instantiation dimensions:
(i) per-Workspace-tenant
google._domainkey.<org-domain>TXT-RR direct-publication discipline (NOT CNAME-delegation) is the Workspace-tenant DKIM-public-key- publication primitive instantiation — the Workspace-deployment spoke documents the per-tenant Admin Console "Generate new record" workflow every Workspace operator runs to publish the per-tenant 2048-bit RSA public-key DIRECTLY atgoogle._domainkey.<org-domain>(Workspace uses literal TXT-RR publication rather than the M365 CNAME-delegation chase pattern THIS page documents in the §4 selector publication discussion); (ii) per-Workspace-tenantgappssmtp.comdefault- domain DKIM signing gotcha is the Workspace-tenant DKIM-publication- discipline failure-mode — the Workspace-deployment spoke documents how per-tenant unconfiguredgoogle._domainkey.<org-domain>publication producesd=<tenant>.gappssmtp.comdefault-domain DKIM signing where the per-message DKIM-Signature header emitsdkim=passagainst the wrong organisational domain — the Workspace equivalent of the M365tenant.onmicrosoft.comgotcha THIS page documents at the DKIM-publication-discipline tier; (iii) per-Workspace-tenant Gmail egress IP-pool DKIM-signing- infrastructure-stability dependency is the Workspace-tenant DKIM-signing- coverage operational invariant — the Workspace-deployment spoke documents the per-tenant Gmail egress IP-pool dependency every Workspace operator must monitor via aggregate- report stream because per-tenant transient Gmail-side signing- infrastructure outage produces thedkim=none/dkim=temperror/dkim=policyverdicts at the per-message protocol layer THIS page documents in the §6 verification outcome catalogue; and (iv) per- Workspace-tenant 90-day DKIM-pass- rate consultation surface is the Workspace-tenant DKIM-protocol- discipline operational KPI — the Workspace-deployment spoke documents the per-tenantrua=-tag publication every Workspace operator must apply to consume the per-source-IP per-day DKIM-verdict-distribution evidence that materialises the per-tenant 90-day DKIM-pass-rate KPI the per- message DKIM protocol-mechanics THIS page documents produce in aggregate. Read the Workspace-deployment spoke ALONGSIDE this DKIM-protocol- mechanics reference when deploying DKIM on a Google Workspace tenant — the spoke documents how each DKIM protocol primitive THIS page establishes instantiates concretely on the Google Workspace cloud-only deployment architecture. - DMARC for cPanel hosts
— the SHARED-HOSTING-CPANEL-PER-ACCOUNT-
DKIM-SIGNER-DEPLOYMENT-AS-LOAD-BEARING-
EXECUTION-LAYER-CONSUMER-OF-EVERY-DKIM-
PROTOCOL-PRIMITIVE-THIS-PILLAR-ESTABLISHES
companion to this DKIM protocol pillar.
Where THIS page documents the RFC 6376
DKIM protocol primitives (selector
publication, key generation, signing
operation, canonicalization, body-hash
verification, alignment with DMARC), the
DMARC-for-cPanel spoke is the shared-
hosting-execution-layer reference
documenting how cPanel-per-account DKIM
signing instantiates every DKIM protocol
primitive at FOUR per-cPanel-tenant-to-
DKIM-protocol-primitive-coupling
dimensions: (i) cPanel-per-account
DKIM key generation as the per-tenant
instantiation of the RFC 6376 §3.6.1 key-
pair generation primitive — the WHM-level
Email Deliverability interface produces
the per-tenant 2048-bit RSA key pair, the
cPanel-host stores the per-tenant private
key in the cPanel-account home directory,
and the per-tenant
default._domainkey.<tenant-d>TXT-RR is published via the cPanel DNS Zone Editor — the DMARC-for- cPanel spoke documents this per-tenant DKIM key-publication discipline as the execution-layer instantiation of THIS page's RFC 6376 §3.6.1 key-pair-generation primitive; (ii) cPanel-per-account signing operation as the per-tenant instantiation of the RFC 6376 §5 signing primitive — the cPanel-host's Exim MTA applies the per-tenantdefault._domainkeyprivate key to every outbound message at the per-account submission queue, producing theDKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=<tenant-d>; s=default; b=<sig>header — the DMARC-for-cPanel spoke documents this per-tenant signing-operation deployment as the execution-layer instantiation of THIS page's RFC 6376 §5 signing primitive; (iii) cPanel- per-account canonicalization choice as the per-tenant instantiation of the RFC 6376 §3.4 canonicalization primitive — the cPanel Email Deliverability default isc=relaxed/relaxedfor mailing-list-and-forwarder survivability, with the per-tenant override available via the cPanel API — the DMARC- for-cPanel spoke documents this per- tenant canonicalization choice as the execution-layer instantiation of THIS page's RFC 6376 §3.4 canonicalization primitive; (iv) cPanel-per-account DMARC alignment as the per-tenant instantiation of the RFC 7489 §3 DKIM d= alignment primitive — the cPanel-per- accountdefault._domainkey.<tenant-d>signing-identity aligns with the per- account Header-From address by construction (cPanel signs against the tenant's primary domain), giving the per-tenant DMARC-evaluation a cryptographically-aligned DKIM input every receiver-side validator consumes — the DMARC-for-cPanel spoke documents this per-tenant DMARC- alignment deployment as the execution- layer instantiation of THIS page's RFC 7489 §3 DKIM-alignment primitive. Read the DMARC-for-cPanel spoke alongside this DKIM protocol pillar when deploying DKIM on a shared-hosting cPanel infrastructure — the spoke documents how every DKIM protocol primitive THIS page establishes instantiates concretely on the cPanel / WHM shared-hosting deployment architecture. - DMARC myths and misconceptions
— the DKIM-PROTOCOL-PILLAR-AS-LOAD-BEARING-
COUNTER-CATALOGUE-EVIDENCE-BASE-FOR-EVERY-DKIM-
RELATED-MYTH-REBUTTED-BY-THIS-CATALOGUE companion
to this DKIM protocol pillar. Where THIS page
documents the RFC 6376 DKIM protocol primitives
(selector publication, key generation, signing
operation, canonicalization, body-hash
verification, alignment with DMARC), the
myths-and-misconceptions spoke is the OPERATOR-
SIDE rebuttal catalogue documenting how each
DKIM-related myth collapses against the
protocol-level evidence THIS page establishes at
FOUR DKIM-myth-to-protocol-truth dimensions:
(i) "DKIM is sender-only with no
receiver responsibility" myth — rebutted
against the RFC 6376 §6 verifier-side
public-key-fetch, body-hash recomputation, and
signature verification responsibilities THIS
page documents; the verifier MUST consume the
published
p=public key, recompute the canonicalised body hash, and re-verify theb=signature bytes for anydkim=passAuthentication-Results verdict to be load-bearing — the myth that DKIM "just works" sender-side ignores the receiver-side verification surface this DKIM protocol pillar establishes; (ii) "1024-bit RSA selectors are forever-secure" myth — rebutted against the RFC 8301 retirement of SHA-1 and its 2048-bit recommendation THIS page references; the myths-and-misconceptions spoke documents how the 1024-bit-RSA-is-fine misconception survives in cPanel / Plesk / WHM defaults despite RFC 8301's 2048-bit recommendation and how operators must retire 1024-bit selectors as part of the rotation-cadence discipline THIS page's selector-rotation guidance prescribes; (iii) "DKIM signature alone stops phishing" myth — rebutted against the RFC 6376 §3.5d=tag scope: DKIM only signs thed=signing domain, NOT the visibleFrom:header — the myths spoke documents how the anti-phishing claim only holds when DMARC alignment bindsd=to the Header-From organisational domain THIS page's alignment-with-DMARC primitive establishes, not from DKIM's cryptographic signature in isolation; (iv) "DKIM signature survives all forwarder modifications" myth — rebutted against the body-canonicalization andl=-tag dependence THIS page documents; the myths spoke catalogues the per-forwarder-class body-modification classes (mailing-list footer injection, MTA-added Received-headers, Reply-To rewrites, signature stripping) that BREAK DKIM body-hash verification despite intact cryptographic key chain — the per-class per-forwarder failure modes the myths spoke rebuts depend on the canonicalization-choice evidence THIS page establishes. Read the myths-and-misconceptions spoke alongside this DKIM protocol pillar when an operator, executive, or auditor cites a DKIM misconception — the spoke documents the rebuttal-evidence-source from THIS page that collapses each DKIM-related myth back to its underlying RFC 6376 / RFC 8301 protocol truth. - MTA-STS vs DANE comparison
— the MTA-STS-VS-DANE-AS-TRANSPORT-
LAYER-CRYPTOGRAPHIC-ANCHOR-PUBLICATION-
CHOICE-PARALLEL-TO-DKIM-MESSAGE-LAYER-
CRYPTOGRAPHIC-ANCHOR-PUBLICATION
companion to THIS DKIM protocol pillar.
Where THIS page documents the RFC 6376
DKIM message-layer cryptographic-anchor
publication discipline (per-selector
public-key publication via
<selector>._domainkey.<d-tag>TXT-record, per-selectork=rsa/k=ed25519algorithm choice, per-selectorp=<base64-public-key>cryptographic-anchor, per-selector revocation via emptyp=), the MTA-STS-vs- DANE spoke is the TRANSPORT-LAYER- CRYPTOGRAPHIC-ANCHOR-PUBLICATION- CHOICE REFERENCE documenting the publisher-side per-domain transport- layer cryptographic-anchor publication choice (RFC 8461 MTA-STS HTTPS-CA-trust-anchored HTTPS-policy- host publication vs RFC 7672 DANE- for-SMTP DNSSEC-anchored_25._tcp.<mx>TLSA-RR per-MX cryptographic-anchor publication) at FOUR cross-layer per- publisher-cryptographic-anchor- publication-coupling dimensions: (i) per-publisher per-record cryptographic-anchor publication- LOCATION: DKIM publishes per- selectorp=public- key at<selector>._domainkey.<d-tag>; DANE-for-SMTP publishes per-MX TLSA-RR at_25._tcp.<mx-fqdn>; MTA-STS publishes per-domain policy-host atmta-sts.<domain>with HTTPS-CA-cert trust-anchor — both publication disciplines commit per-publisher per-record cryptographic-anchor / trust-anchor publication to a publisher-controlled FQDN the receiver-side verifier deterministically queries, and the MTA-STS-vs-DANE spoke documents the per-publisher per-record publication- location-choice whose every per- FQDN publication-location parallels the per-DKIM-selector publication- location THIS page documents; (ii) per-publisher per-record TRUST-ANCHOR-CHOICE: DKIM is self- authenticating via DNS-published public-key (no PKI trust required); DANE-for-SMTP is DNSSEC-anchored (requires DNSSEC-signed zone for trust); MTA-STS is HTTPS-CA- anchored (requires HTTPS-CA-trust- store agreement) — the MTA-STS-vs-DANE spoke documents the per-publisher per-record trust- anchor-choice differential (no-PKI vs DNSSEC-PKI vs HTTPS-CA-PKI) whose cryptographic-trust-bootstrap choice is the load-bearing per- publisher trust-establishment primitive parallel to the DKIM self-authenticating per-selector cryptographic-anchor publication THIS page documents; (iii) per-publisher per-record ROTATION-DISCIPLINE: DKIM per- selector rotation publishes newselector2+ oldselector1dual-publication then retiresselector1with emptyp=; MTA-STS per-policy-id rotation publishes new_mta-stsTXTid:-bump then republishes HTTPS-policy-host; DANE-for-SMTP per-TLSA rotation publishes new TLSA-RR alongside old TLSA-RR then retires old TLSA-RR — the MTA-STS-vs-DANE spoke documents the per-publisher per- record rotation-discipline whose dual-publication-and- retire pattern parallels the per-DKIM-selector rotation- discipline THIS page documents; (iv) per-publisher per- domain CROSS-LAYER ANCHOR- STACK: per-domain message-layer DKIM cryptographic-anchor + per-domain transport-layer MTA-STS-or-DANE cryptographic- anchor together form the complete cross-layer per- publisher cryptographic-anchor- publication stack — both publication-disciplines commit per-publisher per-domain cryptographic-anchor publication the receiver-side verifier evaluates deterministically (DKIM at message-layer per- selector, MTA-STS-or-DANE at transport-layer per-MX-or-per- policy), and the MTA-STS-vs- DANE spoke documents the per- publisher transport-layer cryptographic-anchor publication choice whose cross-layer anchor- stack completion-discipline complements the DKIM message- layer cryptographic-anchor publication discipline THIS page establishes. Read the MTA-STS-vs-DANE spoke ALONGSIDE this DKIM protocol pillar when authoring the per- domain cross-layer cryptographic-anchor publication stack — the spoke documents the transport-layer cryptographic-anchor publication-choice whose cross- layer publication-discipline parallels the DKIM message- layer per-selector cryptographic- anchor publication-discipline THIS page establishes. - TLS-RPT explained
— the TLS-RPT-AS-TRANSPORT-LAYER-
TELEMETRY-PUBLICATION-COMPLEMENT-TO-
DKIM-MESSAGE-LAYER-CRYPTOGRAPHIC-
PUBLICATION companion to this DKIM
protocol-mechanics pillar. Where
THIS page documents the per-
publisher per-domain per-selector
DKIM publication discipline (RFC
6376
<selector>. _domainkey.<d>TXT-RR byte-grammar, per-selector cryptographic-key publication (p=<base64-public-key>), per-message DKIM-Signature header tag-list (v= a= c= d= s= t= h= bh= b=), per-selector rotation cadence + canonicalisation mode), the TLS-RPT-explained spoke is the publisher-side per-domain RFC 8460 transport-layer telemetry- publication reference whose four CROSS-LAYER-PER-PUBLISHER- PUBLICATION-DISCIPLINE-COUPLING dimensions parallel and complement the DKIM cryptographic-publication discipline this pillar establishes: (i) publisher-side per- domain TXT-record publication primitive parallel — DKIM's per-domain per-selector<s>._domainkey.<d> IN TXT "v=DKIM1; k=rsa; p=<public- key>"and TLS-RPT's per- domain_smtp._tls.<d> IN TXT "v=TLSRPTv1; rua=mailto:..."are both per-publisher per-domain TXT-record publications at per- purpose-prefixed sub-zones (per- selector under_domainkeyfor DKIM cryptographic-anchor publication, per-domain under_smtp._tlsfor TLS- failure-telemetry publication) the publisher elects to advertise into the global DNS namespace; both publications drive receiver-side decision-making the publisher cannot directly observe without the corresponding telemetry stream; (ii) per-message DKIM- signing per-recipient-MX TLS-RPT cadence parallel — DKIM signing operates per-message at emission time and produces a per- message DKIM-Signature header the receiver-side cryptographic verification consumes, while TLS- RPT operates per-recipient-MX per-SMTP-connection and produces a per-receiver-day JSON-formatted TLS-failure report aggregating per- failure-class events; the TLS- RPT-explained spoke documents the per-receiver-day per-failure-class attribution pipeline that is the transport-layer per-publisher per- recipient-MX evidence stream the per-publisher operates alongside the per-message DKIM-signature cryptographic-attestation THIS page's protocol mechanics produce; (iii) DKIM-cryptographic- integrity attestation vs TLS- channel-integrity attestation publication-discipline parallel — the per-publisher per-message DKIM-Signaturebh=<body-hash>cryptographic body-integrity attestation and the per-publisher per-recipient-MX TLS-success channel-integrity attestation are both publisher-side per-message- vs-per-channel integrity- attestation publication disciplines; the TLS-RPT- explained spoke documents the per-failure-class TLS-channel- integrity-attestation taxonomy (starttls-not-supported, certificate-host-mismatch, certificate-expired, sts-policy- violation, tlsa-invalid, etc.) complementing the per-message DKIM-Signature cryptographic- body-integrity-attestation THIS page documents — both are publisher-side per-publication integrity-attestation primitives whose receiver-side outcomes cross-correlate (a per-recipient- MX TLS-failure can cause body- modification that breaks DKIMbh=verification on the next-hop forwarding leg the TLS-RPT-failure-class catalogue documents); and (iv) per- publisher cross-layer publication- discipline stack coordination — the per- publisher per-domain TXT-record publication topology stacks SPF (message-layer authentication- publication), DKIM (message-layer cryptographic-publication), DMARC (message-layer policy + telemetry publication), MTA-STS / DANE (transport-layer enforcement- publication), and TLS-RPT (transport-layer telemetry- publication) into a coordinated per-domain publication discipline; the TLS-RPT-explained spoke documents the per-publisher per- domain transport-layer telemetry- publication discipline whose cross-layer coordination with the DKIM message-layer cryptographic- publication discipline THIS page documents is the load-bearing publisher-side cross-layer publication-discipline contract every adjacent transport-layer surface (MTA-STS publication + DANE publication) structurally consumes. Read the TLS-RPT- explained spoke ALONGSIDE this DKIM protocol pillar when authoring the per-publisher per- domain cross-layer publication- discipline stack — the DKIM message-layer cryptographic- publication primitive THIS page establishes is the load-bearing message-layer cryptographic- attestation whose receiver-side verification evidence the TLS- RPT transport-layer channel- integrity-attestation telemetry- publication complement structurally completes. - SPF mechanisms explained
— the SPF-MECHANISM-PUBLICATION-AS-
MESSAGE-LAYER-IP-AUTHENTICATION-
PUBLICATION-COMPLEMENT-TO-DKIM-
CRYPTOGRAPHIC-PUBLICATION companion
to this DKIM protocol-mechanics
pillar. Where THIS page documents
the per-publisher per-domain per-
selector DKIM publication discipline
(RFC 6376
<selector>. _domainkey.<d>TXT-RR byte-grammar, per-selector cryptographic-key publication, per-message DKIM-Signature header tag-list, per-selector rotation cadence + canonicalisation mode), the SPF-mechanisms-explained spoke is the publisher-side per-domain RFC 7208 §5 mechanism-catalogue publication reference whose four CROSS-MECHANISM-PER-PUBLISHER- PUBLICATION-COUPLING dimensions parallel and complement the DKIM cryptographic-publication discipline this pillar establishes: (i) per-source-IP IP-based authentication vs per-message cryptographic-attestation publication-discipline parallel — SPF's per- publisher per-domainv=spf1TXT-RR publication authorises specific per-source-IPs (viaip4:/ip6:CIDR matches, via per-mechanisma/mx/include:expansions) as valid envelope- MAIL-FROM senders, while DKIM's per-publisher per-selector cryptographic-key publication authorises specific per-message cryptographic signatures as valid Header-From cryptographic attestations; both publication disciplines are publisher-side per-domain authentication- publication primitives the receiver-side authentication stack consumes as INDEPENDENT evidence the DMARC alignment- and-policy evaluation aggregates; (ii) per- mechanism authorisation evaluation vs per-selector cryptographic evaluation parallel — the SPF receiver-side evaluator executes the per-mechanism first-match-wins evaluation algorithm (RFC 7208 §5 sequential mechanism walk terminating on the first match) against the per-source- IP envelope-MAIL-FROM attestation, while the DKIM receiver-side evaluator executes the per-selector cryptographic verification algorithm (RFC 6376 §6 per-signatureb=-tag RSA/Ed25519 signature verification against the per-selector public key) against the per-message DKIM-Signature header; the SPF-mechanisms-explained spoke documents the per- mechanism evaluation algorithm that is the receiver-side IP-authentication counterpart to the DKIM cryptographic- verification algorithm THIS page documents; (iii) per-publisher per- source-IP SPF-pass rate vs per-DKIM-pass per-selector rate as complementary operational signals — the per-publisher per-day per-source-IP SPF-pass rate (extracted from the rua aggregate-XML stream's<auth_results><spf>captures) and the per- publisher per-day per- selector DKIM-pass rate (extracted from the<auth_results><dkim>captures) are complementary publisher-side operational- health signals every cross- publication-discipline ramp consumes; a per-publisher SPF-pass rate at 99 % combined with a per- publisher DKIM-pass rate at 85 % suggests the publisher's per-source-IP message-layer IP-authentication is solid but per-message cryptographic- attestation is failing on a substantial fraction of traffic; (iv) per- publisher cross-publication discipline stack coordination — the per-publisher per-domain TXT-record publication topology stacks SPF (message- layer IP-authentication), DKIM (message-layer cryptographic-attestation), DMARC (message-layer policy + alignment + telemetry), MTA- STS / DANE (transport-layer enforcement), and TLS-RPT (transport-layer telemetry) into a coordinated per- domain publication discipline; the SPF- mechanisms-explained spoke documents the per-publisher per-domain SPF mechanism- catalogue publication discipline whose cross- publication coordination with the DKIM message-layer cryptographic-publication discipline THIS page documents is the load- bearing message-layer publication-discipline pair every adjacent surface (DMARC publication + alignment evaluation, MTA- STS enforcement, TLS-RPT telemetry) structurally consumes. Read the SPF- mechanisms-explained spoke ALONGSIDE this DKIM protocol pillar when authoring the per- publisher per-domain message-layer publication- discipline pair — the DKIM message-layer cryptographic-publication primitive THIS page establishes is the load- bearing per-message cryptographic-attestation whose receiver-side verification evidence the SPF message-layer per-source-IP IP-based authentication- publication complement structurally completes. - include vs ip4 vs a vs mx
— the PER-PUBLISHER-SPF-MECHANISM-
CHOICE-AS-MESSAGE-LAYER-IP-
AUTHENTICATION-PUBLICATION-COMPLEMENT-
TO-DKIM-PER-SELECTOR-CRYPTOGRAPHIC-
PUBLICATION companion to this DKIM
pillar. Where THIS page documents the
DKIM message-layer per-selector
cryptographic-signature publication
discipline (the
v=DKIM1/p=public-key TXT-RR publication at<selector>._domainkey.<d>, the per-messageDKIM-Signatureheader withb=body-signature andbh=body-hash binding the message bytes to the publisher's private-key signing identity), the include-vs-ip4-vs-a-vs-mx spoke is the PARALLEL MESSAGE-LAYER PUBLICATION DISCIPLINE companion documenting the four IP-providing SPF-mechanism-choice surface (RFC 7208 §5.2include:, §5.6ip4:, §5.3a:, §5.4mx:) every publisher picks between when authoring or modifying an SPF record whose per- source-IP authorisation output completes the message-layer authentication- evaluation pair this DKIM pillar's cryptographic-attestation provides half of. The four-axis DKIM-PER-SELECTOR-VS- SPF-PER-MECHANISM comparison exposes the structurally-distinct per-publisher message-layer-authentication publication choices: (i) DKIM publishes a per-selector public-key TXT-RR binding a private-key cryptographic identity to thed=signing domain; SPF publishes a per-mechanism per-source-IP authorisation list binding source-IP topology to the publisher'sv=spf1record at the publisher's apex — both are per-publisher per-domain message-layer publication-disciplines whose combined output is what DMARC's alignment evaluation consumes for the receiver- side pass/fail verdict; (ii) DKIM-pass survives forwarding via the cryptographic body-hash binding while SPF-mechanism-evaluation collapses at every forwarder envelope-MAIL-FROM rewrite — the per-publisher SPF-mechanism choice (include cascade vs explicit ip4 vs a/mx record-following) determines the per-source-IP authorisation topology but cannot rescue forwarded mail without ARC, while DKIM's cryptographic binding rescues forwarded mail across the SPF-fail boundary; (iii) the per-publisher SPF-mechanism-choice surface has a structurally-distinct decision matrix (include for managed providers like M365 and Workspace, ip4 for static owned IPs, a for self-hosted servers identified by an A-record, mx for the historical "outbound also serves as MX" pattern) that mirrors the structurally-distinct DKIM publication- discipline choices (RSA vs Ed25519 key- algorithm, 1024 vs 2048-bit key length, single-selector vs dual-selector overlap- window rotation, relaxed vs simple body- canonicalization) — operators pick the SPF-mechanism per source-IP topology the way they pick the DKIM key-algorithm + selector-rotation discipline per signing identity; (iv) the per-publisher SPF-mechanism publication has a hard RFC 7208 §4.6.4 10-DNS-lookup cap that constrains the publisher's include-cascade depth parallel to the DKIM RFC 8463 algorithm-update constraints (Ed25519 + RSA-SHA256 only, RFC 8301 retiring SHA-1 and recommending 2048-bit RSA) — both publication- disciplines have hard spec-imposed limits the per-publisher operator must architect within. Read the include-vs-ip4-vs-a-vs-mx spoke alongside this DKIM pillar when designing the per-publisher message- layer-authentication publication stack — the spoke documents the per-publisher SPF mechanism-choice surface whose per-source- IP authorisation output is the message- layer IP-authentication complement to the DKIM cryptographic-attestation this pillar publishes. - BIMI Verified Mark Certificates (VMC)
— the BIMI-VMC-CA-ISSUED-CRYPTOGRAPHIC-
BRAND-ATTESTATION-AS-DISPLAY-LAYER-
PUBLIC-KEY-INFRASTRUCTURE-COMPLEMENT-
TO-DKIM-PER-SELECTOR-CRYPTOGRAPHIC-
MESSAGE-ATTESTATION-PUBLICATION
companion to this DKIM pillar. Where
THIS page documents the DKIM message-
layer per-selector cryptographic-
signature publication discipline (the
v=DKIM1/p=public-key TXT-RR publication at<selector>._domainkey.<d>, the per-messageDKIM-Signatureheader withb=body-signature andbh=body-hash binding the message bytes to the publisher's private-key signing identity), the BIMI-VMC spoke is the DISPLAY-LAYER PUBLIC-KEY-INFRASTRUCTURE PUBLICATION DISCIPLINE companion documenting the CA-issued X.509 Verified Mark Certificate whose Subject Alternative Name binds the brand- domain to the SVG indicator-mark asset cryptographically, whose Logotype extension binds the certificate to the published SVG Tiny PS asset bytes, whose AIA / CRL / OCSP revocation chain is published-and-fetched at every per- receiver BIMI-display-eligibility evaluation, and whose CA-issuance workflow is gated on per-publisher trademark-registration evidence the CA (DigiCert / Entrust) verifies out-of-band. The four-axis DKIM- PER-SELECTOR-VS-BIMI-VMC comparison exposes the structurally-distinct per-publisher cryptographic- attestation publication choices: (i) DKIM publishes a per- selector public-key TXT-RR binding a private-key cryptographic identity to thed=signing domain via the publisher's own DNS zone (no third-party CA in the trust chain); BIMI VMC publishes a CA-issued X.509 certificate binding the brand-domain to the SVG asset via a publicly-trusted CA chain (DigiCert / Entrust trademark- verification-anchored) — both are per-publisher per-domain cryptographic-attestation publication-disciplines but DKIM is SELF-ANCHORED in the publisher's DNS while BIMI VMC is CA-ANCHORED in a publicly-trusted PKI root the publisher contracts with; (ii) DKIM has a per-selector rotation discipline (overlap-window cadence, 90-180-day rotation period typical); BIMI VMC has a per-cert renewal discipline (1-year renewal cadence, AIA/CRL revocation propagation budget for emergency revocation) — both publication-disciplines have per-cryptographic-material lifecycle management but DKIM's rotation is operator-controlled while BIMI VMC's renewal is CA-bound to the trademark-registration-renewal cycle and CA-validation reissuance workflow; (iii) DKIM cryptographic-attestation outcome is consumed at MESSAGE-LAYER receiver-side DKIM-Signature verification (per-receiver MTA runs verification on every message); BIMI VMC cryptographic- attestation outcome is consumed at DISPLAY-LAYER receiver-side BIMI-eligibility evaluation (per- receiver MUA fetches VMC + SVG at display-time and validates the cert chain + Logotype binding) — DKIM verification gates the AUTHENTICATION-RESULT verdict; BIMI VMC validation gates the BRAND-INDICATOR-DISPLAY decision; (iv) DKIM cryptographic- publication has zero out-of-band cost (publisher self-issues the TXT-RR); BIMI VMC cryptographic- publication has substantial out-of- band cost (trademark registration per Madrid / USPTO + annual VMC CA fee + per-mark Logotype- embedding asset-build) — both publication-disciplines have hard spec-imposed lifecycle limits the per-publisher operator must architect within. Read the BIMI VMC spoke alongside this DKIM pillar when designing the per- publisher cross-layer cryptographic- attestation publication stack — the spoke documents the display- layer CA-issued cryptographic- attestation publication discipline whose per-receiver BIMI-display- eligibility evaluation is the display-layer parallel to the DKIM message-layer per-receiver Authentication-Results verdict this pillar's cryptographic- attestation publication discipline produces. - MTA-STS explained
— the TRANSPORT-LAYER-TLS-
ENFORCEMENT-PUBLICATION-DISCIPLINE
companion to this DKIM message-
layer cryptographic-publication
reference. Where THIS pillar
documents the per-publisher RFC
6376 per-selector
<selector>._domainkey.<d-domain>TXT-record publication discipline whose per-message cryptographic- attestation operates at the MESSAGE LAYER (signing the email body and headers, verified at the receiver by theAuthentication-Results: dkim=passverdict), the MTA-STS-explained spoke documents the per-publisher RFC 8461_mta-sts.<domain>TXT-record + HTTPS-served policy publication discipline whose per- connection TLS-channel-integrity enforcement operates at the TRANSPORT LAYER (forcing STARTTLS-with-valid-cert at the receiving MX, enforced at the sender's outbound MTA per the publisher-side policy commitment), bridging the message-layer cryptographic-attestation discipline this page documents to the transport-layer TLS-enforcement discipline the MTA-STS spoke documents at four cross-layer per-publisher-publication- discipline coupling dimensions: (i) per-publisher per-domain DNS- TXT-RR publication primitive as STRUCTURALLY-IDENTICAL publisher- side surface across both protocols — DKIM publishes per- selector<selector>._domainkey.<d-domain>TXT-RRs carrying the public-key binding; MTA-STS publishes_mta-sts.<domain>TXT-RR carrying thev=STSv1; id=<policy-id>version-and-policy-pointer binding, with the actual policy served over HTTPS athttps://mta-sts.<domain>/.well-known/mta-sts.txt; the per-publisher DNS-TXT-RR publication discipline this page documents for DKIM is the per- publisher publication-primitive the MTA-STS spoke documents at the transport-layer layer, both enforcing the same per-publisher- per-domain DNS-TXT-publication discipline operators consume; (ii) per-message DKIM cryptographic- attestation vs per-connection MTA-STS TLS-channel attestation as complementary cross-layer per- publisher attestation publication — DKIM attests to per-message body-and-header cryptographic-integrity (the receiver's signature-verification proves the body wasn't tampered with in transit); MTA-STS attests to per-connection TLS-channel- integrity (the sender's outbound MTA refuses to deliver if the receiving MX's TLS handshake or certificate-validation fails); the two cross-layer attestation disciplines compose into a per-publisher complete cryptographic envelope (message-body cryptographically-attested at layer 7 + transport-channel cryptographically-attested at layer 4), framing the publisher- side cryptographic-discipline catalogue this page documents for DKIM as the message-layer half of the publisher-side per-domain cryptographic-discipline-stack the MTA-STS spoke completes at the transport layer; (iii) per- publisher selector-rotation lifecycle vs per-publisher MTA-STS policy-id-versioning lifecycle as parallel publication-cadence disciplines — DKIM publishers rotate selectors (publish new selector → wait propagation window → switch signing → retire old selector after replay-window cap); MTA-STS publishers version policies (bumpid=in the TXT-RR → deploy new policy at the HTTPS endpoint → rely on receiver-sidemax_age=cache-expiry to propagate); the same per-publisher publish- and-verify-cycle discipline applies to both, bridging the DKIM-key-rotation cadence this page documents to the MTA-STS policy-versioning cadence the MTA-STS spoke documents; (iv) per-publisher cross-layer publication stack coordination as per-publisher operational discipline scope — every per-publisher per-domain publication-discipline catalogue (DKIM at layer-7 + SPF at layer-3 + DMARC at layer-7-policy + MTA-STS at layer-4 + TLS-RPT at layer-4-observability + BIMI at layer-7-display) consumes the same per-publisher per-domain DNS-TXT publication discipline as the load-bearing publication primitive; the MTA-STS-explained spoke is the canonical per- publisher transport-layer publication-discipline reference DKIM operators read alongside this pillar when scoping the per-publisher cryptographic- discipline stack their per- domain operational posture consumes. Read the MTA-STS spoke alongside this DKIM pillar when designing the per-publisher per-domain cross-layer cryptographic-publication discipline that the message- layer DKIM cryptographic- attestation this page documents is one layer of, alongside the transport-layer MTA-STS TLS- channel-attestation the MTA-STS spoke documents. - MTA-STS for Google Workspace
— the TRANSPORT-LAYER
per-Workspace-tenant deployment
instantiation peer of the
application-layer
DKIM-for-Google-Workspace,
SPF-for-Google-Workspace, and
DMARC-for-Google-Workspace sibling
spokes already enumerated above.
Where THIS DKIM pillar documents the
per-publisher RFC 6376 per-selector
<selector>._domainkey.<d-domain>TXT-RR public-key publication discipline whose per-message cryptographic-attestation operates at the MESSAGE LAYER (signing the email body and headers, verified at the receiver by theAuthentication-Results: dkim=passverdict), the MTA-STS-for-Google-Workspace spoke documents the per-Workspace-tenant per-customer-domain RFC 8461 TRANSPORT-LAYER MTA-STS publication discipline (per-tenanthttps://mta-sts.<customer-domain>/.well-known/mta-sts.txtHTTPS-served policy file withversion: STSv1,mode: testing|enforce, one or moremx: aspmx.l.google.com+mx: alt<N>.aspmx.l.google.comWorkspace-inbound MX enumeration, andmax_age:cache lifetime, paired with the per-tenant_mta-sts.<customer-domain>TXT-RRv=STSv1; id=<policy-id>DNS-publication discipline). Four per-Workspace-tenant per-customer-domain cross-layer publication-discipline coupling dimensions: (i) per-tenant per-customer-domaingoogle._domainkeyTXT-RR APPLICATION-LAYER cryptographic-anchor publication discipline THIS pillar documents AS LOAD-BEARING PEER-PAIR to per-tenant per-customer-domainhttps://mta-sts.<customer-domain>/.well-known/mta-sts.txtTRANSPORT-LAYER policy-file publication discipline the MTA-STS-for-Google-Workspace spoke documents — receivers consume BOTH publication anchors when evaluating a single per-message inbound delivery to a Workspace-hosted recipient; (ii) per-Workspace-tenant per-customer-domain DKIM dual-selector overlap-rollover rotation cadence (Workspace's single-active-selector convention operationally requires two-selector overlap during rotation) AS STRUCTURALLY-PARALLEL publication- cadence discipline to per-tenant per-customer-domain MTA-STSpolicy-idrotation cadence (the per-policy-fileid=tag the per-tenant_mta-sts.<customer-domain>TXT-RR republishes when the policy body changes) — both publication cadences are per-publisher per-domain cache-coherence disciplines that receivers consume; (iii) per-Workspace-tenant per-customer-domain DKIMd=-tag signing-identity publication-discipline coupling to per-message DMARC-aligned-pass attribution AS COMPOSITIONALLY COUPLED to per-tenant per-customer-domain MTA-STSmx:allow-list publication-discipline coupling to per-session TLS-channel-anchored downgrade-attack resistance — both publication disciplines instantiate on the SAME per-Workspace-tenant per-customer-domain identity that DKIM-for-Google-Workspace documents for the application-layer half; (iv) per-Workspace-tenant per-customer-domain DKIM 2048-bit RSA / Ed25519 cryptographic-key-strength application- layer publication floor THIS pillar documents AS STRUCTURALLY-PARALLEL cryptographic-strength floor to per-tenant per-customer-domain MTA-STS HTTPS X.509 certificate cryptographic-strength floor (TLS_ECDHE_RSA_WITH_AES_GCM_SHA256 cipher-suite, SHA-256 fingerprint, public-CA-trust-anchored validity) the MTA-STS-for-Google-Workspace spoke documents — both publication disciplines complete the per-Workspace- tenant per-customer-domain four-pillar SPF/DKIM/DMARC/MTA-STS publication portfolio enumerated alphabetically- adjacent above. - DMARC monitoring
— the DKIM-PER-MESSAGE-CRYPTOGRAPHIC-
VERDICT-AS-LOAD-BEARING-CROSS-MESSAGE-
INPUT-TO-DMARC-MONITORING-AGGREGATE-KPI-
STREAM companion documenting how the per-
message
Authentication-Results: dkim=pass/dkim=fail/dkim=neutral/dkim=temperror/dkim=permerrorverdict this DKIM pillar's RFC 6376 §6 verification algorithm produces is one of the TWO cross-message inputs (alongside the SPF envelope-IP verdict) the DMARC monitoring aggregate-XML KPI stream consumes for every<record>-level alignment-success-rate, alignment- failure-rate, per-receiver disposition- distribution, per-source-IP alignment- stratification, and per-day verdict-rate regression dashboard the DMARC monitoring spoke documents. Where THIS pillar documents the per-message DKIM signing- and-verification protocol mechanics (per- selector<s>._domainkey.<d>TXT-RR public-key publication, thea=/c=/bh=/b=/d=/s=/h=signature-tag grammar, the relaxed-vs-simple body-canonicalisation choice, the per-message receiver-side signature-verification outcome), the DMARC monitoring spoke is the per-domain AGGREGATE-VIEW reference whose KPI cohort consumes the per-message DKIM verdict catalogue this pillar establishes at four DKIM-protocol-primitive-to-monitoring- KPI-aggregation coupling dimensions: (i) per-message DKIM verdict catalogue → per-domain DKIM-pass-rate KPI as load-bearing cross-message aggregate contract — the per-messagedkim=passverdict is the load-bearing numerator of the per-domain DKIM-pass-rate KPI the monitoring spoke tracks across the 90-day rolling window; the per-domain numerator-cohort is partitioned per-source-IP, per-receiver, per-day so per-source-IP regression events surface in the monitoring spoke's Pattern E per-verdict-shift detection view that triggers the dual-selector rotation-window investigation this pillar documents the operational discipline of; (ii) per-message DKIM-aligned-pass verdict → per-domain DKIM-alignment- rate KPI as load-bearing per-source-IP aggregate contract — the receiver's per-message DKIM-aligned-pass outcome (DKIM-pass AND thed=signing-domain organisationally-aligns with the visibleFrom:header per RFC 7489 §3.1.1) is the per- source-IP load-bearing aggregate metric the monitoring spoke uses to attribute per-source-IP DKIM-signing-infrastructure regression events to specific outbound tenants in the per-source-IP stratification dashboard; the per-source-IP DKIM-aligned- pass-rate distribution is the canonical signal that surfaces a sender's selector rotation gone wrong, a signing infrastructure outage, or a third-party ESP onboarding that hasn't yet been properly delegated; (iii) per- message DKIM body-hash failure verdict → per-day per-receiver receiver-side body-modification-rate KPI as load-bearing forwarder-class regression detector — when the receiver emitsdkim=fail (body hash did not verify)at non-zero rates, the monitoring spoke's per-receiver per-day distribution view surfaces the per-receiver MTA-class body- modification pattern (mailing-list footer injection, MTA-added forwarder headers, character-set transcoding, signature stripping) the body-hash-canonicalisation choice this pillar documents the rescue protocol for; the per-receiver per-day distribution is the canonical KPI that surfaces a new forwarder-class regression at the operationally-observable boundary; (iv) per-message DKIM verdict series → 90-day DKIM-pass-rate trend as load-bearing enforcement-readiness gate — the per-domain DKIM-pass- rate trend the monitoring spoke tracks across the 90-day rolling window is the load-bearing enforcement-readiness gate the DMARC rollout discipline (p=none → p=quarantine → p=reject) consumes to determine whether the per- domain DKIM-signing infrastructure is stable enough to commit to the next enforcement-policy tightening; the 90- day DKIM-pass-rate convergence pattern is the canonical signal the monitoring spoke surfaces to operators evaluating the per-tenant readiness for the nextp=-stage commitment. Read the DMARC monitoring spoke alongside this DKIM pillar when scoping per-domain DKIM-signing infrastructure observability, per-source-IP regression-event detection, per-receiver forwarder-class body- modification surveillance, and 90-day per-domain DKIM-pass-rate convergence analysis for the DMARC enforcement-ramp gate. - BIMI SVG Tiny PS requirements
— the PER-PUBLISHER-PER-DOMAIN-DISPLAY-
LAYER-LOGO-PUBLICATION-PRIMITIVE-WHOSE-
ELIGIBILITY-IS-UPSTREAM-GATED-BY-DKIM-
PASS-AS-LOAD-BEARING-INPUT-TO-DMARC-
ALIGNED-PASS companion to this DKIM
pillar reference. Where THIS page
documents the per-publisher per-selector
RFC 6376 cryptographic-anchor publication
discipline (per-publisher per-domain
<selector>._domainkey.<domain> IN TXT "v=DKIM1; k=rsa; p=<public-key>"publication, per-messageDKIM-Signature:header composition, per-message canonicalization / signing / verification algorithm, per-receiver per-message DKIM-pass-vs- fail verdict production), the BIMI-SVG- Tiny-PS-requirements spoke documents the per-publisher per-domain display-layer publication-discipline reference whose per-message BIMI-display-eligibility is structurally downstream of every per- message DKIM-pass verdict THIS DKIM pillar's per-selector cryptographic- anchor publication discipline produces at FOUR per-publisher cross-layer DKIM- message-layer-to-BIMI-display-layer- publication-discipline coupling dimensions: (i) per-message DKIM-pass verdict as load-bearing upstream input to DMARC-aligned-pass evaluation which is BIMI-display- eligibility gate per RFC 9077 §3 — per-publisher per-message BIMI display at per-receiver inbox requires the per- message DMARC verdict to bepasswith per-publisher per- domainp=quarantine|rejectenforcement posture; per-message DMARC- aligned-pass requires per-message DKIM- identifier-aligned-pass OR per-message SPF-identifier-aligned-pass per RFC 7489 §3.1; per-message DKIM-aligned-pass requires per-message DKIM-pass verdict THIS DKIM pillar's per-selector cryptographic-anchor publication discipline produces — per-publisher per- message DKIM-pass discipline THIS page documents is the LOAD-BEARING upstream input to per-publisher per-domain BIMI- display-eligibility the BIMI-SVG- requirements spoke documents the per- publisher per-domain display-layer consumer of; (ii) per-publisher per-selector DKIM cryptographic-anchor DNS-RR publication discipline parallel to per-publisher per-domain BIMI VMC X.509 cryptographic-anchor PKI publication discipline at cross-PKI publisher-side cryptographic-anchor publication-discipline boundaries — per-publisher per-selector<selector>._domainkey.<domain>TXT-RR publishes the per-publisher per- domain DKIM cryptographic-anchor (RSA-2048-bit public key) at DNS-rooted trust-anchor publication boundary; per- publisher per-domain BIMI Verified Mark Certificate (VMC) PKI publication operationalises the per-publisher per- domain BIMI cryptographic-anchor (DigiCert / Entrust-issued X.509 with Logotype extension and brand-domain Subject Alternative Name binding) at PKI-rooted trust-anchor publication boundary BIMI receivers consult before rendering the per-publisher per-domain Tiny PS SVG the BIMI-SVG-requirements spoke documents — per-publisher cross-PKI cryptographic-anchor publication- discipline stack composes message-layer- DKIM-DNS-published-anchor + display- layer-BIMI-PKI-published-anchor as STRUCTURALLY-IDENTICAL per-publisher per-domain cryptographic-anchor- publication primitive at distinct cross- layer publication boundaries; (iii) per-publisher per-message DKIM canonicalization choice (c=relaxed/ relaxed) for per-forwarder-hop signature survival as upstream determinant of per-mailing-list- forwarder per-publisher per-domain BIMI display — per-publisher per- message DKIM signature survival under per-forwarder-hop header-and-body modifications discipline the per- publisher per-messagec=-tag canonicalization choice THIS DKIM pillar documents publishes is the LOAD-BEARING upstream of per-mailing-list-recipient per-publisher per-domain BIMI-display eligibility — per-publisher per- forwarder-class dkim-fail-rate variance the per-publisher canonicalization- choice drives directly collapses per- publisher per-mailing-list-recipient BIMI-display-coverage for the per- publisher per-domain SVG Tiny PS profile the BIMI-SVG-requirements spoke documents the publisher operationalised publication of; (iv) per- publisher per-DKIM-signing-infrastructure dkim-pass-rate-distribution-stability as load-bearing per-publisher cross-receiver BIMI-display-coverage KPI determinant — per-publisher per-DKIM-signing- infrastructure (per-ESP signing platform, per-tenant Microsoft 365 / Google Workspace DKIM publishing, per-egress- MTA signing pipeline) per-message dkim- pass-rate distribution captured per- receiver per-source-IP in the per- publisher per-domain rua-aggregate-XML evidence stream operationally IS the upstream per-publisher cross-receiver BIMI-display-coverage KPI input — per- publisher per-DKIM-signing-infrastructure per-tenant per-d=-signing-domain per-selector dkim-pass-rate-variance directly drives per-publisher per- receiver BIMI-display-coverage variance at Gmail + Apple Mail + Yahoo + Fastmail render boundaries the per- publisher per-domain SVG Tiny PS profile the BIMI-SVG-requirements spoke documents the publisher operationalised publication of. Read the BIMI-SVG- requirements spoke alongside this DKIM pillar reference when planning per- publisher per-domain BIMI deployment whose per-message display-eligibility is directly gated by the per-message DKIM- pass verdict the per-publisher per- selector RFC 6376 cryptographic-anchor publication discipline THIS page documents structurally produces, and when investigating per-publisher per- receiver BIMI-display-coverage variance whose upstream root-cause is per- publisher per-DKIM-signing-infrastructure per-tenant per-d=-signing-domain dkim- pass-rate-distribution variance the per- publisher per-selector DKIM cryptographic- anchor publication discipline THIS DKIM pillar documents structurally drives. - ARC (Authenticated Received Chain) explained
— the PER-FORWARDER-HOP-ARC-MESSAGE-
SIGNATURE-AND-ARC-SEAL-AS-LOAD-BEARING-
DOWNSTREAM-CONSUMER-OF-DKIM-CRYPTOGRAPHIC-
PRIMITIVE-PUBLICATION-DISCIPLINE companion
to this DKIM-explained pillar. Where THIS
page documents the RFC 6376 per-publisher
per-selector DKIM-Signature header byte-
grammar (a=rsa-sha256|ed25519-sha256
algorithm + c=relaxed/relaxed|simple/
simple canonicalization-pair + d=signing-
domain + s=selector + h=signed-header-list
+ bh=body-hash + b=signature) and the per-
publisher per-selector public-key TXT-RR
publication discipline (
<selector >._domainkey.<domain> IN TXT "v=DKIM1; k=rsa; p=<public-key>"), the ARC-explained spoke is the canonical RFC 8617 per-forwarder-hop chain- extension primitive whose per-hop ARC- Message-Signature + ARC-Seal cryptographic re-signing discipline IS the structural- extension of the DKIM-Signature primitive THIS pillar documents at four DKIM- primitive-to-ARC-chain-re-signing coupling dimensions: (i) per-hop ARC-Message-Signature byte-grammar re-use of RFC 6376 DKIM-Signature tag-set — every per-forwarder-hop ARC-Message- Signature header the ARC-explained spoke documents re-uses the RFC 6376 DKIM- Signature byte-grammar primitives THIS pillar documents (per-hop i=<instance -number> + a=rsa-sha256|ed25519-sha256 + c=relaxed/relaxed + d=<forwarder- signing-domain> + s=<forwarder- selector> + h=<signed-header-list > + bh=<body-hash> + b=< signature>); the per-publisher per- selector DKIM cryptographic-primitive publication-discipline THIS pillar documents IS the load-bearing structural primitive every per-forwarder-hop ARC- Message-Signature re-uses; (ii) per-forwarder-hop selector publication- discipline as load-bearing per-forwarder ARC-trusted-sealer public-key DNS publication prerequisite — every per-forwarder-hop ARC-Message- Signature header verification requires the per-forwarder per-selector public-key TXT-RR publication-discipline THIS pillar documents (<forwarder-selector >._domainkey.<forwarder-signing- domain> IN TXT "v=DKIM1; k=rsa; p=< forwarder-public-key>"); the per-forwarder per-selector public-key TXT-RR publication discipline THIS DKIM pillar documents IS the load-bearing per- forwarder per-selector ARC-trusted-sealer cryptographic-anchor publication- prerequisite the receiver-side ARC- trusted-sealer-list verification-workflow the ARC-explained spoke documents the per-hop chain-mechanism of consumes; (iii) per-hop ARC-Seal as load- bearing per-forwarder-hop cumulative- chain-state-sealing cryptographic-primitive consuming RFC 6376 signing-primitives — every per-forwarder-hop ARC-Seal header the ARC-explained spoke documents seals the per-hop cumulative ARC-chain state (per-hop ARC-Authentication-Results AAR evidence-row + per-hop ARC-Message- Signature AMS evidence-row + per-hop prior-hop ARC-Seal chain-state) using the same RFC 6376 cryptographic signing primitives THIS pillar documents (per-hop a= algorithm + d=forwarder-signing- domain + s=forwarder-selector + b= signature); the per-forwarder per- selector DKIM cryptographic-primitive publication-discipline THIS pillar documents IS the load-bearing per- forwarder per-selector cryptographic- anchor the per-hop cumulative ARC-Seal chain-state-sealing consumes; (iv) per-forwarder-hop ARC-trusted- sealer cryptographic-strength discipline as load-bearing per-forwarder-hop ARC- chain-validation cv=pass result-class prerequisite consuming DKIM cryptographic- strength-baseline — every per- forwarder-hop ARC-trusted-sealer's RSA- 2048-or-Ed25519 cryptographic-strength- baseline THIS DKIM pillar documents the publication-discipline of IS the load- bearing per-forwarder-hop ARC-chain- validation cv=pass result-class prerequisite; without per-forwarder per- selector RSA-2048-baseline-floor cryptographic- strength the per-forwarder-hop ARC-chain- validation result-class fails to produce cv=pass for receiver-side ARC-trusted- sealer-list-coverage gate-keeping. Read the ARC-explained spoke ALONGSIDE this DKIM-explained pillar whenever a per- forwarder-hop ARC-chain-validation cv=- result-class or per-forwarder ARC- Message-Signature byte-grammar question emerges — THIS pillar gives the canonical RFC 6376 per-publisher per-selector DKIM- Signature cryptographic-primitive publication-discipline, the ARC-explained spoke gives the RFC 8617 per-forwarder- hop chain-extension primitive that STRUCTURALLY EXTENDS the DKIM cryptographic- primitive THIS pillar documents into the per-forwarder per-hop authentication- preservation chain. - Email authentication glossary
— the DKIM-PROTOCOL-PILLAR-AS-LOAD-
BEARING-CONSUMER-AND-PRODUCER-OF-
CANONICAL-DEFINED-TERM-DEFINITIONS
companion to this DKIM protocol
pillar. Where THIS page documents
the RFC 6376 DKIM-Signature-header
+ DKIM-key-record byte-grammar (the
v=DKIM1public-key version, thep=<base64>public-key, the per-message DKIM- Signature header tag-list withv=/a=/c=/d=/s=/h=/bh=/b=/i=/q=/l=/t=/x=tags, the seven RFC 8601 §2.7.1 result-class verdictsdkim=none/dkim=neutral/dkim=pass/dkim=fail/dkim=policy/dkim=temperror/dkim=permerror), the email-authentication-glossary spoke documents the canonical DefinedTerm JSON-LD reference whose per-term entity-first definition-lede is the upstream-vocabulary substrate every DKIM-protocol-concept this pillar documents consumes at FOUR per-DKIM- protocol-to-glossary-defined-term coupling dimensions: (i) per- DKIM-Signature-header-tag-vocabulary- as-load-bearing-consumer-of-canonical- defined-term-definition — every per-tag slot in the DKIM- Signature header THIS page documents (thed=signing-domain identifier, thes=selector label, thei=AUID, thebh=body hash, thec=canonicalization-pair) CONSUMES the canonical glossary-spoke DefinedTerm definition for the underlying protocol-concept the tag-slot enumerates — operator-side per-tag value-selection requires prior canonical-definition fluency in the underlying protocol-concept the tag-slot enumerates; (ii) per- DKIM-key-record-publication- vocabulary-as-load-bearing-consumer- of-canonical-defined-term-definition — the<selector>._domainkey.<domain>TXT-record publication discipline THIS page documents CONSUMES the canonical glossary-spoke DefinedTerm definitions of selector, _domainkey owner-name convention, RSA-2048 vs Ed25519 signing algorithm, key- rotation cadence, and dual-selector overlap discipline — operator-side DKIM-key-record publication discipline requires prior canonical-definition fluency in the five-term key- publication-vocabulary the glossary spoke documents; (iii) per- DKIM-verdict-class-receiver-side- vocabulary-as-load-bearing-consumer- of-canonical-defined-term-definition — the seven RFC 8601 §2.7.1dkim=none/dkim=neutral/dkim=pass/dkim=fail/dkim=policy/dkim=temperror/dkim=permerrorresult- class verdicts THIS page documents CONSUME the canonical glossary-spoke DefinedTerm definition for each verdict-class semantic — operator- side DKIM-troubleshooting per-symptom decision-tree traversal requires prior canonical-definition fluency in the seven-verdict-class vocabulary the glossary spoke documents; (iv) per-DKIM- protocol-AI-retrieval-engine-citation- vocabulary-as-load-bearing-producer- of-canonical-defined-term-definition — every DKIM-protocol-concept THIS page documents PRODUCES the per-term entity-first definition the glossary- spoke DefinedTermSet JSON-LD root cites as the canonical reference for AI-retrieval-engine citation (Perplexity / ChatGPT / Claude / Gemini / Google AI Overviews / Bing Copilot) — the bi-directional citation loop between THIS DKIM- protocol pillar and the glossary- spoke DefinedTerm JSON-LD entries is the AI-retrieval-engine canonical- reference foundation the cluster relies on for per-term deep-link citability of every DKIM-protocol- concept. Read the email- authentication-glossary spoke alongside THIS page when the operator asks "what is the canonical definition of the DKIM- protocol-concept this pillar enumerates" — the answer is FOUR- LAYERED: THIS page documents the DKIM-protocol pillar, the email- authentication-glossary spoke documents the canonical DefinedTerm definition for every DKIM-protocol- concept the pillar enumerates. - DNS Record Generator — interactive wizard for building SPF, DKIM, DMARC, BIMI, MTA-STS, CAA, and TLS-RPT records with syntax validation and best-practice defaults.
- Domain Security Checker — live DNS lookups for SPF, DKIM, DMARC, MTA-STS, CAA, BIMI, and DNSSEC against any domain.
- Email Header Analyzer — paste a raw email header to see SPF, DKIM, and DMARC pass/fail results inline with explanation.
- DMARC attacker bypass techniques
— the 22-TECHNIQUE PER-PUBLISHER
PER-DOMAIN ATTACKER-BYPASS
CLASSIFICATION-FRAMEWORK companion
to this DKIM pillar reference. Where
THIS page documents the DKIM protocol
primer (RFC 6376 §3.5 DKIM-Signature
header tag layout, §3.7 per-selector
public-key TXT-record lookup,
canonicalization choice, body-hash
+ header-hash discipline, per-
publisher per-domain DKIM-signer
publication discipline), the
attacker-bypass spoke is the per-
publisher per-domain attacker-side
DKIM-evaluation-bypass technique-
classification documenting the FIVE
DKIM-targeted attacker-bypass
technique-classes the per-publisher
per-domain operator MUST defend
against at the per-message DKIM-
signature evaluation boundary: (i)
DKIM-replay-attack
exploitation via attacker-captured
per-publisher per-domain signed
message-flow re-emission —
attacker captures a legitimately-
signed per-publisher per-domain
message (newsletter, bulk-sender
marketing email, public mailing-list
broadcast) and re-emits the captured
message verbatim from attacker-
controlled per-source-IP infrastructure,
bypassing the per-publisher per-
domain DKIM-signature evaluation
because the cryptographic signature
still verifies; (ii) DKIM-
key-stripping via per-publisher per-
domain DKIM-Signature-header
removal in-flight —
attacker intercepts the per-publisher
per-domain outbound message in
transit at a compromised intermediate
MTA and strips the DKIM-Signature
header entirely, forcing the per-
receiver into
dkim=noneverdict which the per-publisher per- domain DMARC evaluator interprets as DKIM-side-no-rescue; (iii) DKIM-selector-cousin- publication via attacker-side compromised authoritative-nameserver DNS-record-injection — attacker compromises the per- publisher per-domain authoritative nameserver (or an upstream caching- resolver path) and injects a cousin-selector public-key TXT record whose private-key the attacker controls, enabling per-publisher per-domain forged DKIM-signed message-flow; (iv) DKIM-canonicalization exploitation via simple/simple body-canonicalization-strict whitespace-tolerance attacker body-mutation — attacker exploits the per-publisher per- domain DKIM-signature commit choice ofc=simple/simplecanonicalization (strict body whitespace preservation) to inject attacker-controlled body content downstream of the signed body-hash offset that the per-receiver body- hash verification does not detect; (v) DKIM-key-rotation-lag exploitation via attacker-targeted old-selector private-key compromise — attacker compromises a per-publisher per- domain old DKIM-selector private- key that has not yet been revoked from the per-publisher per-domain authoritative-nameserver public- key TXT-record publication and uses the compromised key to forge per- publisher per-domain DKIM-signed message-flow during the per-publisher per-domain rotation-grace-period. Read THIS page when AUTHORING the per-publisher per-domain DKIM protocol record + signer publication discipline; read the DMARC-attacker- bypass spoke when DESIGNING the per-publisher per-domain DKIM- evaluation-attacker-defence posture against the 22-technique attacker- bypass classification framework — the spoke is the canonical attacker- bypass technique catalogue the per- publisher per-domain DKIM posture THIS page documents must structurally defend against. - DMARC multi-domain strategy
— the PER-ORGANISATION-DOMAIN-FAMILY-
DKIM-COORDINATION companion to this
per-publisher per-domain DKIM
authoring reference. Where THIS page
documents the per-publisher per-domain
DKIM publication discipline (per-
selector key generation, per-domain
selector._domainkey.<domain>TXT publication, per-key rotation discipline, per-message signing coverage at the outbound MTA), the multi-domain-strategy spoke is the PER-ORGANISATION-DOMAIN-FAMILY-DKIM- COORDINATION companion documenting how the per-publisher per-domain DKIM publication discipline scales across the organisation's complete domain family at FOUR per-organisation- domain-family-DKIM-coordination dimensions: (i) per-active- sending-domain per-selector DKIM publication is the per-active-domain publication-execution instantiation of the per-publisher per-domain DKIM publication discipline — the multi-domain-strategy spoke documents how every actively-sending domain in the organisation's domain family (primary brand domain, per-product brand-extension domains, per-region brand-localized domains, per-business- unit operational domains) MUST independently publish per-selector DKIM TXT records following the per- publisher per-domain DKIM publication discipline THIS page documents; (ii) per-parked-or-defensive- registered domain DKIM-non-publication is the per-non-active-domain configuration-discipline instantiation — the multi- domain-strategy spoke documents how parked domains, defensive registrations, and cousin-domain catalogues MUST explicitly NOT publish DKIM TXT records (or publish only revocation-mode records with emptyp=tag) to prevent attacker-side DKIM publication on otherwise-unmonitored registrations — the inverse of the per- publisher per-domain DKIM publication discipline THIS page documents; (iii) per-organisation-wide-key- rotation-cadence coordination is the per-domain-family-wide DKIM-key- lifecycle instantiation — the multi-domain-strategy spoke documents how the per-publisher per-domain DKIM key rotation discipline THIS page documents scales when the organisation's domain family includes dozens of actively-sending domains each requiring independent per-selector key rotation at the per-organisation-wide operational cadence; and (iv) per-newly-acquired-domain DKIM-onboarding-discipline is the per-acquisition-event DKIM-coverage- instantiation — the multi- domain-strategy spoke documents how the per-publisher per-domain DKIM publication discipline THIS page documents extends to per-acquisition- newly-onboarded domains at the per- merger-and-acquisition operational boundary, where the per-newly- acquired-domain DKIM-publication onboarding discipline is the per- organisation-wide DKIM-coverage invariant the multi-domain-strategy spoke documents. Read the multi- domain-strategy spoke ALONGSIDE this DKIM reference whenever the per- publisher per-organisation operator scopes per-domain-family DKIM- coordination across multiple actively- sending domains — the per-publisher per-domain DKIM authoring discipline THIS page documents is the per-domain EXECUTION primitive; the per- organisation-domain-family DKIM- coordination posture is the per- organisation-wide SCALING primitive that closes the per-domain-family DKIM-coverage-coordination loop. - SPF DNS record syntax
— the PER-PUBLISHER-PER-DOMAIN-SPF-
TXT-RR-BYTE-GRAMMAR-PUBLICATION-
DISCIPLINE-AT-THE-AUTHORITATIVE-DNS-
ZONE-APEX-BOUNDARY-AS-STRUCTURAL-
SIBLING-AUTHENTICATION-RECORD-BYTE-
GRAMMAR-PUBLICATION-DISCIPLINE-TO-
THE-PER-PUBLISHER-PER-SELECTOR-DKIM-
KEY-RECORD-TXT-RR-BYTE-GRAMMAR-
PUBLICATION-DISCIPLINE companion
documenting the per-publisher per-
domain SPF TXT-RR byte-grammar
publication discipline at the
authoritative DNS zone apex boundary
whose four cross-protocol
authentication-record byte-grammar
publication-discipline parallel
dimensions structurally PARALLEL the
per-publisher per-selector DKIM
key-record TXT-RR byte-grammar
publication discipline THIS page
documents at the
<selector>._domainkey.<domain>FQDN boundary. Where THIS page documents the per-publisher per- selector DKIM key-record TXT-RR byte- grammar publication discipline (the RFC 6376 §3.6.1v=DKIM1; k=rsa; p=<base64-public-key>per- selector tag-list byte-grammar with the 255-octet-per-TXT-chunk concatenation rule for >255-octet 2048-bit RSA public keys, the per-publisher per- selector cardinality discipline, the RFC 8463k=ed25519algorithm-tag alternative, thep=-revocation-tombstone empty-string idiom for selector revocation), the SPF-DNS-syntax spoke documents the STRUCTURALLY-PARALLEL per-publisher per-domain SPF TXT-RR byte-grammar publication discipline at the AUTHORITATIVE DNS ZONE APEX boundary at four cross-protocol authentication-record byte-grammar publication-discipline parallel dimensions: (i) per-publisher- per-record-version-prefix-byte- sequence-as-load-bearing-protocol- magic-byte-sequence — both protocols mandate a per-record version- prefix-byte sequence at the per-record byte-grammar leading position (DKIM:v=DKIM1per RFC 6376 §3.6.1 leading tag; SPF:v=spf1per RFC 7208 §4.5 leading 6-byte sequence) that receiver-side parsers use as the per-record protocol-identifier MAGIC BYTE SEQUENCE distinguishing per-protocol records from per-record TXT-RR siblings sharing the same FQDN- target; per-publisher per-record version-prefix-byte sequence authoring defects (typo'dv=spf2/v=DKIM2, missingv=tag, leading-whitespace- before-version-prefix) collapse per-receiver-side parser per-record identification at the per-record protocol-identifier MAGIC BYTE SEQUENCE boundary; (ii) per-publisher- per-record-tag-list-byte-grammar-vs- per-publisher-per-record-mechanism- token-byte-grammar — DKIM records publish per-record tag-list byte-grammar (tag-name=tag-value ; tag-name=tag-valuesemicolon-separated per-record tag- list with per-tag whitespace tolerance) per RFC 6376 §3.2; SPF records publish per-record mechanism- token-byte-grammar (qualifier-prefix-byte + mechanism-token + : + operand-byte- sequencespace-separated per- record mechanism-list per RFC 7208 §4.6.1); both byte-grammar publication disciplines require per-publisher per- record per-token byte-correctness at the per-record byte-grammar publication boundary — per-publisher per-record per-token byte-grammar defects produce per-receiver-side parserpermerrorverdict on the per-record evaluation; (iii) per-publisher-per-record-TXT- RR-byte-length-budget-vs-per-record- cardinality-constraint — both protocols specify per-record TXT-RR byte-length budgets and per-publisher per-FQDN per-record cardinality constraints; DKIM per-selector per- FQDN cardinality is constrained to ONE canonical key-record per selector with the 255-octet-per-TXT-chunk concatenation rule for >255-octet public-key byte- sequences (RFC 6376 §3.6.2.2 multi- string TXT-RR semantics); SPF per-domain per-FQDN cardinality is constrained to ONEv=spf1-prefixed TXT-RR per organizational-domain per RFC 7208 §3.2 (multiplev=spf1TXT-RR siblings at the same FQDN produce per-receiver-side parserpermerror) with the same 255-octet-per-TXT-chunk concatenation rule for >255-octet SPF mechanism- list byte-sequences; both per-record per-FQDN cardinality constraints are load-bearing per-receiver-side parser determinism gates; (iv) per- publisher-per-domain-authoritative- DNS-zone-publication-event-coordination- as-load-bearing-per-protocol- authentication-record-publication- primitive — both per-protocol authentication-record publication disciplines require per-publisher per- domain authoritative DNS zone publication-event coordination at the per-domain authoritative DNS zone- editor boundary (per-publisher per- domain DKIM key-record at the<selector>._domainkey.<domain>sub-owner-name; per-publisher per- domain SPF record at the<domain>apex owner- name); per-publisher per-domain per- zone-edit per-record TTL discipline, per-publisher per-zone-edit per- publication-event timing coordination, and per-publisher per-zone-edit per- record per-RR-name lifecycle discipline are STRUCTURALLY-PARALLEL across both protocols. Read THIS page when AUTHORING per-publisher per-selector DKIM key-record TXT-RR byte-grammar publication discipline; read the SPF- DNS-syntax spoke when AUTHORING per- publisher per-domain SPF TXT-RR byte- grammar publication discipline as the per-publisher per-domain STRUCTURAL- SIBLING authentication-record-publication- discipline THIS DKIM pillar's per- publisher per-selector authoring discipline coexists with at the per-publisher per-domain authoritative DNS zone publication boundary. - SPF for Google Workspace
— the per-publisher per-selector
DKIM-Signature key-publication
discipline this DKIM pillar
documents pairs with the per-
Workspace-tenant per-domain SPF
include:_spf.google.compublication discipline as the two application-layer authentication legs both feeding the per-receiver DMARC composite verdict. Read the Workspace SPF spoke as the envelope-MAIL-FROM authorization leg companion to this page's per-message DKIM-Signature cryptographic-binding leg for the Workspace-tenant deployment surface. - SPF qualifiers (+ Four cross-protocol authentication-policy-declaration coupling dimensions:
(i) per-publisher per-domain DKIM-Signature publication as IMPLICIT authentication-policy declaration (no per-publisher per-domain qualifier-prefix; presence of valid signature = authentication-pass) vs SPF EXPLICIT per-publisher per-domain qualifier-choice declaration — where DKIM publishes per-publisher per-selector cryptographic-keypair primitives whose presence is the per-publisher attestation, SPF publishes per-publisher per-domain qualifier-prefixed mechanism tokens whose strictness is the per-publisher per-domain enforcement-intent declaration, and the per-publisher per-domain operator coordinates BOTH authentication-publication primitives within the unified per-publisher per-domain DMARC enforcement-posture;
(ii) per-publisher per-domain DKIM-fail verdict vs SPF Fail/SoftFail per-publisher per-domain qualifier-derived verdict semantics — DKIM evaluation produces binary pass/fail at the per-message cryptographic-signature-validation boundary, while SPF per-publisher per-domain evaluation produces five-state verdicts (pass/fail/softfail/neutral/none) whose semantic distinction is determined by per-publisher per-domain qualifier-prefix choice — the per-publisher per-domain Authentication-Results header consumer (downstream DMARC evaluator, downstream receiver-side anti-spam filter) must coordinate per-message disposition across the per-publisher per-domain DKIM binary-verdict and the per-publisher per-domain SPF qualifier-determined verdict;
(iii) per-publisher per-domain DMARC policy ramp p=none→p=quarantine→p=reject coordinated with per-publisher per-domain SPF qualifier ramp ?all/~all→-all — the per-publisher per-domain DMARC policy ramp parallels a per-publisher per-domain SPF qualifier ramp where Phase 1 monitoring uses
~all(SoftFail per-message verdict allowing downstream quarantine without hard-reject), Phase 2 partial enforcement maintains~allwhile p=quarantine pct=10/25 ramps, and Phase 3 terminal enforcement upgrades to-all(Fail per-message verdict at per-publisher per-domain envelope-MAIL-FROM authorization boundary) concurrent with p=reject pct=100; the per-publisher per-domain DKIM-signing posture remains unchanged across the ramp (already at terminal binary-pass discipline); (iv) per-publisher per-domain DKIM-Signature absence (no signing) vs SPF?all-neutral or absent-SPF None-verdict per-publisher per-domain authentication-publication-gap semantics — when a per-publisher per-domain operator has NOT published a DKIM-signing posture (no per-selector public-key TXT records), the per-message DKIM verdict is None and the DMARC composite verdict for the per-message authentication-leg falls back to SPF-alignment-only; when the per-publisher per-domain SPF posture is similarly weak (?all-neutral declaration or absent-SPF None-verdict), the per-publisher per-domain authentication-publication gap is wider AND the DMARC composite-verdict falls back to default-fail — the per-publisher per-domain operator coordinates BOTH authentication-publication completeness disciplines to close the gap. Read the SPF-qualifiers spoke alongside this DKIM-explained reference when the per-publisher per-domain operator is coordinating per-protocol authentication-publication-strength disciplines (DKIM per-selector key-publication completeness with SPF per-domain qualifier-strength), when planning the per-publisher per-domain DMARC ramp progression with concurrent SPF qualifier upgrade from~all-soft to-all-strict, or when authoring per-publisher per-domain authentication-publication runbooks that must coordinate per-protocol per-message authentication-evidence-emission discipline. - Email authentication ecosystem
— the per-publisher per-domain four-protocol
integration framework (SPF envelope-MAIL-FROM
authorization + DKIM per-message cryptographic-
signature + DMARC alignment-and-policy +
ARC forwarder-rescue) THIS DKIM protocol
primer is the per-message-cryptographic-
signing-layer chapter of, at four cross-
protocol ecosystem-integration coupling
dimensions: (i) per-publisher per-
selector DKIM signing as the per-message
cryptographic-binding-of-headers-and-body
attestation that survives forwarder envelope
rewrites (where SPF structurally fails per
RFC 7208 §2.6.6 forwarder break) —
the email-authentication-ecosystem framework
explicitly documents DKIM as the cryptographic-
complement protocol whose per-message verdict
per-receiver per-day RUA-row attribution
compensates for the SPF forwarder-break
failure-mode at the per-publisher per-domain
composite DMARC-aligned-pass-rate floor;
(ii) per-publisher per-selector DKIM
identifier-alignment-with-DMARC (RFC 7489
§3.1.1) as the per-message DKIM-leg
DMARC-composite-verdict input the ecosystem
framework treats as load-bearing peer to
per-publisher per-domain SPF identifier-
alignment — the DKIM
d=signing-identifier MUST align with the per-message RFC 5322 From: header domain (relaxed-mode same-organisational-domain or strict-mode byte-identical match per the publisher-publishedadkim=tag) for the DKIM leg to contribute a DMARC- aligned-pass verdict; (iii) per- publisher per-selector DKIM-Signature chain-of-custody preservation through RFC 8617 ARC sealing rescues per-message DKIM verdicts across legitimate forwarder / mailing-list / list-server hop boundaries the email-authentication ecosystem explicitly catalogues — the per-hop ARC-Authentication-Results + ARC-Message-Signature + ARC-Seal headers the ecosystem framework documents preserve the per-message DKIM-pass evidence the receiver-side DMARC evaluator consumes AFTER the forwarder hop that would otherwise nullify the per-message DKIM- Signature; (iv) per-publisher per-selector DKIM-Signature presence/ absence + DKIM-verdict surfacing in the per-receiver per-day per-source-IP per-rowauth_results.dkimRUA-XML evidence stream the ecosystem framework's monitoring layer materially consumes — the per-publisher per-domain operator's DKIM publication- discipline + key-rotation + canonicalization- mode-choice + selector-naming + signer- identity choices materially determine the per-rowauth_results.dkimevidence the email-authentication- ecosystem framework's per-publisher per- domain analytics dashboards consume. Read the email-authentication-ecosystem pillar alongside this DKIM protocol primer when the per-publisher per-domain operator is positioning DKIM within the broader per-publisher per-domain four-protocol authentication-publication discipline, when coordinating per-publisher per-domain DKIM publication with per-publisher per-domain SPF + DMARC + ARC publication-decisions, or when authoring per-publisher per-domain per-protocol authentication-publication runbooks that must coordinate the per- message DKIM signing-leg with the broader per-publisher per-domain authentication- publication discipline. - DMARC aggregate (RUA) reports
— the PER-PUBLISHER-PER-DOMAIN-DMARC-
RUA-XML-SCHEMA-AS-PER-MESSAGE-DKIM-
VERIFICATION-VERDICT-EVIDENCE-STREAM
companion to this DKIM-explained reference.
Where THIS page documents the per-publisher
per-domain DKIM protocol contract (per-
message Authentication-Results header
dkim=pass/dkim=fail/dkim=neutral/dkim=temperror/dkim=permerror/dkim=policyresult-value emission per RFC 6376 §3.9 + RFC 8601 §2.7.1), the DMARC-aggregate-RUA- reports spoke is the per-publisher per- domain operational-evidence stream per- publisher per-domain operators consult at FOUR per-message DKIM per-receiver observability coordination dimensions: (i) per-publisher per-domain DMARC RUA aggregate-report per-receiver per-message auth_results.dkim element as canonical per-publisher per-domain operational-evidence source for per- receiver per-message DKIM-verdict attribution — per-publisher operators monitoring per-publisher per- domain DKIM-signing posture consume per- publisher per-domain DMARC RUA aggregate-report XML rows whoseauth_results/dkimchild element carries per-receiver-side per- message DKIM result-value (per RFC 7489 §7.2 + the per-message DKIM-Signature- header per-selector resolution evidence the receiver-side DKIM evaluator emits) as the per-publisher per-domain canonical operational-evidence source — the per- publisher per-domain DMARC RUA aggregate-report stream IS the per- publisher per-domain per-receiver-side DKIM-verdict observability primitive; (ii) per-publisher per-domain DMARC RUA aggregate-report per-receiver per-source-IP per-author-domain row stream coordinated with per-publisher per-domain DKIM-failure-mode per- selector publication-discipline-floor verification — per-publisher per-domain operators audit per-publisher per-domain DMARC RUA aggregate-report's per-source-IP per-author-domain per- alignment-outcome row stream to detect per-publisher per-domain per-tenant-SaaS- platform per-selector DKIM-signing posture drift BEFORE the drift cascades into per-receiver per-message DKIM-fail- AND-SPF-fail per-message DMARC-failed dispositions at the per-publisher per- domain deliverability boundary; (iii) per-publisher per-domain DMARC RUA aggregate-report per-receiver per- message auth_results.dkim per-selector- attribution evidence stream as per- publisher per-domain per-tenant-SaaS- platform attribution-discipline source — per-publisher per-domain operators running per-tenant-SaaS- platform multi-vendor mail flow (Salesforce + Mailchimp + SendGrid + HubSpot + Mailgun + per-tenant SaaS platform N) consume per-receiver per- messageauth_results/dkim/ selectorattribution evidence from per-publisher per-domain DMARC RUA aggregate-report stream to verify per-publisher per-domain per-tenant- SaaS-platform per-selector DKIM- signing-posture-readiness across the per-publisher per-domain multi-vendor attribution boundary; (iv) per- publisher per-domain DMARC RUA aggregate-report per-receiver per- message auth_results.dkim verdict trend analysis as per-publisher per- domain DKIM-signing posture drift early-warning evidence stream — per-publisher per-domain operators monitor per-publisher per-domain DMARC RUA aggregate-report per-receiver per- message auth_results.dkim verdict trend (per-publisher per-domain dkim= fail / dkim=permerror / dkim=temperror rate trend across per-receiver per- author-domain rows) as the per- publisher per-domain DKIM-signing posture drift early-warning evidence stream — per-publisher per-domain operators consult per-publisher per- domain DMARC RUA aggregate-report per-message DKIM verdict trend to detect per-publisher per-domain per- selector key-rotation drift, per- publisher per-domain per-canonicalization- mode drift, or per-publisher per-domain per-tenant-SaaS-platform per-signing- cadence drift BEFORE per-publisher per- domain deliverability KPI degradation manifests at the per-publisher per- domain per-receiver-side per-message DMARC-failed disposition boundary. Read the DMARC-aggregate-RUA-reports spoke alongside this DKIM-explained reference when AUTHORING per-publisher per-domain DKIM-signing posture verification runbooks that integrate per-publisher per-domain DMARC RUA aggregate-report per-receiver per- message auth_results.dkim verdict survey discipline, when AUDITING per- publisher per-domain DKIM-signing posture across per-publisher per- domain per-tenant-SaaS-platform attribution boundaries, when EXECUTING per-publisher per-domain per-receiver- side per-message DKIM-verdict trend analysis as DKIM-signing-posture-drift early-warning discipline, or when ESTABLISHING per-publisher per-domain joint per-receiver-side DKIM-verdict- and-DMARC-alignment-outcome observability coordination discipline- floor. - RFC 6376 — DomainKeys Identified Mail (DKIM) Signatures — the DKIM specification itself. Obsoletes the older RFC 4871.
- DMARC policy modes (p=none / p=quarantine / p=reject)
— the PER-RECEIVER-DMARC-DISPOSITION-ACTION
downstream-consumer companion to this DKIM
protocol primer. Where THIS page documents
the per-publisher per-selector DKIM-Signature-
header + per-message body-hash + per-receiver
public-key TXT-record verification protocol
whose per-message verdict feeds the per-
receiver DMARC-alignment evaluator at the
RFC 7489 §6.6.2 OR-conjunction junction,
the policy-modes spoke is the per-receiver
DMARC-disposition-action reference
documenting what each
p=-tag value instructs the per-receiver to DO with the per-message DMARC-failed mail once the per-message DKIM-verdict + DKIM-d=- tag-vs-RFC5322-From-domain alignment-verdict have produced the per-message DMARC-fail outcome:p=noneyields per- receiver normal-delivery + per-row RUA aggregate-report entry only,p=quarantineyields per- receiver Junk-folder routing, andp=rejectyields per-receiver SMTP-time 550 rejection. The per-publisher DKIM verdict is the load-bearing input to the RFC 7489 §6.6.2 OR-conjunction that ultimately determines whether each per- receiver applies the per-publisherp=-tag action to per-message traffic. Read THIS page when AUTHORING the per-publisher per-selector DKIM key-pair + DKIM-Signature-header signing pipeline; read the policy-modes spoke when CHOOSING whichp=-tag value to publish once the per-publisher DKIM-signing infrastructure is steady-state and the per-row RUA aggregate-report DKIM-aligned- pass population is stable. - DMARC forensic reports
— the per-message DKIM-authentication-
failure forensic-evidence companion to
this DKIM operator-reference. Where THIS
page documents the per-publisher per-
selector DKIM-signing-discipline (the
per-selector RSA-2048 key strength, the
canonical canonicalization-mode choice,
the per-message DKIM-Signature header
publication composition, the per-receiver
per-message body-hash recomputation
verification), the DMARC-forensic-reports
spoke is the PER-MESSAGE-FORENSIC-EVIDENCE
REFERENCE documenting the RFC 6591 AFRF
MIME per-message failure-report envelope
whose
multipart/report; report-type= feedback-reportstructure carries the per-message DKIM-fail attribution evidence (the per-messageAuthentication-Results:header dump, the per-message DKIM- Signature header dump, the per-message envelope-MAIL-FROM-IP, the per-receiver verifier-sidedkim=failverdict and failure-reason-code attribution) the per-publisher per- domain operator MUST examine to distinguish per-message DKIM-fail attribution between (i) genuine per- message envelope-forwarding / intermediary-body-mutation footprint, (ii) per-selector key-rotation-overlap- window misstep, (iii) per-selector canonicalization-mode publication- discipline regression, and (iv) genuine per-message DKIM-spoofing-attempt attribution. Pair this page (the per- publisher per-selector DKIM-signing- discipline reference) with the DMARC- forensic-reports spoke (the per-message RFC 6591 AFRF MIME failure-report payload reference) when designing the per- publisher per-domain per-message DKIM- authentication-failure-root-cause forensic-investigation discipline — the spoke documents the per-message AFRF MIME envelope payload structure that is the operationally-grounded forensic- evidence stream every per-publisher per- selector DKIM-signing-discipline STRUCTURALLY DEPENDS on as the per- message DKIM-fail-vs-spoofing attribution feedback channel. - CAA records explained
— the per-publisher per-domain CAA-record
publication-discipline companion to this
DKIM-protocol-pillar reference. Where THIS
page documents the per-publisher per-
selector RFC 6376 DKIM-Signature header +
per-selector public-key TXT-record
publication discipline (the
<selector>._domainkey.<d-domain>per-selector TXT-RR publication at the authoritative-DNS zone apex, the per- publisher per-selector RSA-2048 / Ed25519 cryptographic-algorithm choice, the per- message DKIM-Signature header byte-grammar), the CAA-records spoke is the PER-PUBLISHER- PER-DOMAIN-RFC-8659-CA-ISSUANCE- AUTHORIZATION-PUBLICATION reference documenting the per-publisher per-domain<domain> CAA 0 issue "<ca>"/0 issuewild "<ca>"/0 iodef "mailto:<reporter>"per-CA-authorisation publication-discipline at the same per-publisher per-domain authoritative-DNS zone apex. Four PER- PUBLISHER-PER-DOMAIN-AUTHORITATIVE-DNS- PUBLICATION-DISCIPLINE-COUPLING dimensions the CAA-records spoke documents: (i) per-publisher per-domain authoritative-DNS zone-apex publication discipline parallel — both the per-publisher per-selector DKIM key-record TXT publication and the per-publisher per- domain CAA-record publication are authored at the publisher's authoritative-DNS zone, so the same zone-publication cadence + per- zone DNSSEC signing discipline + per-zone TTL choice that governs DKIM-selector publication also governs CAA-record publication; (ii) per-publisher per-domain cryptographic-asset-authorization scope parallel — DKIM publishes WHICH per-selector public key is authorized to verify per-message signatures for thed=domain, while CAA publishes WHICH per-CA is authorized to issue TLS certs for the same publisher domain, making both per-publisher per-domain cryptographic- asset-authorization-publication primitives at distinct cryptographic layers (per- message DKIM signing vs per-domain TLS cert issuance); (iii) per-publisher per- domain trust-anchor-publication-discipline coupling — the per-publisher per- selector DKIM public-key TXT publication and the per-publisher per-domain CAA-record publication are BOTH downstream consumers of the publisher's authoritative-DNS-zone integrity discipline; a CAA-publication mistake authorizes an attacker-controlled CA to mint TLS certs for the BIMI VMC-issuance / MTA-STS HTTPS-policy-host / DMARC-RUA HTTPS-endpoint trust chain that DKIM- aligned-pass mail downstream relies on; (iv) per-publisher per-domain zero- issuance-failure-mode parallel — CAA0 issue ";"publishes the empty per-CA authorization set (NO CA may issue certs for the domain), structurally paralleling DKIM'sp=empty- public-key revocation publication where the per-selector key is explicitly retired — both are per-publisher per-domain publication-discipline-as-explicit- revocation primitives. Read the CAA-records spoke alongside this DKIM-protocol-pillar reference when the per-publisher per-domain authoritative-DNS publication-discipline this page documents needs to be coordinated with the per-publisher per-domain CA- issuance-authorization publication- discipline that gates the TLS-cert-chain trust anchors every downstream cross- protocol-pillar (BIMI VMC + MTA-STS HTTPS policy host + DMARC RUA HTTPS endpoint) consumer of DKIM-aligned-pass mail depends on. - RFC 8301 — Cryptographic Algorithm and Key Usage Update to DKIM — deprecates SHA-1 and 1024-bit RSA for DKIM signing.
- RFC 8463 — Ed25519 Signature Algorithm for DKIM — defines the elliptic-curve signing algorithm as an alternative to RSA.
- SPF for Microsoft 365
— the per-M365-tenant per-accepted-domain
envelope-MAIL-FROM-layer SPF publication-
discipline companion to this DKIM pillar
reference. Where THIS page documents the
per-publisher per-domain RFC 6376 DKIM
application-layer cryptographic-binding
publication (per-selector
v=DKIM1TXT-RR publication discipline, per-message DKIM-Signature header emission withd=/s=/c=/bh=tag-vocabulary, per-publisher per-domain DKIM-aligned-pass DMARC composite-verdict leg), the SPF-for-Microsoft-365 spoke documents the structurally parallel per- M365-tenant per-accepted-domain envelope- MAIL-FROM-layer SPF publication (v=spf1 include:spf.protection.outlook.com -allcanonical baseline, per-tenant per- accepted-domain hybrid-Exchange dual- egressinclude:+ip4:composition, per-tenant per-third-party- sender SPF-flattening discipline against the RFC 7208 §4.6.4 ten-DNS-lookup ceiling). Four per-M365-tenant per- accepted-domain composite publication coupling dimensions matter at the per- tenant per-custom-domain composite authentication-publication boundary: (i) per-M365-tenant per-accepted-domain SPF envelope-MAIL-FROM-layer vs DKIM application-layer dual publication — the per-tenant per-accepted-domaininclude:spf.protection.outlook.comSPF publication coexists with the per- tenant per-custom-domainselector1._domainkey+selector2._domainkeydual- selector DKIM CNAME-delegated publication THIS page documents at the per-tenant per- accepted-domain shared DNS-publication boundary; (ii) per-M365-tenant per- accepted-domain DMARC-aligned-pass composite-verdict OR-leg cascade — the per-tenant per-accepted-domain DMARC composite-verdictpassrequires AT LEAST ONE aligned-pass leg (DKIM-aligned-pass OR SPF-aligned-pass) per RFC 7489 §3.1; the per-tenant DKIM- aligned-pass discipline THIS page documents IS the load-bearing leg-of- last-resort when the SPF-aligned-pass leg breaks at per-tenant forwarder-induced envelope-MAIL-FROM rewrite; (iii) per- M365-tenant per-accepted-domain Exchange Online egress dual-stack discipline — the per-tenant per-accepted-domain Exchange Online egress emits per-message DKIM- Signature headers withc=relaxed/relaxedcanonicalization while simultaneously authorizing the per-tenantspf.protection.outlook.comenvelope-MAIL-FROM authorization; the per- tenant DKIM signer-discipline THIS page documents IS the per-tenant application- layer authentication-publication companion to the per-tenant SPF envelope-layer authorization the SPF-for- Microsoft-365 spoke documents; (iv) per- M365-tenant per-accepted-domain composite publication-portfolio coordination — the per-tenant per-accepted-domain composite SPF + DKIM + DMARC + ARC + MTA-STS + TLS- RPT publication-portfolio THIS page's DKIM-publication-discipline component IS the per-tenant application-layer publication-portfolio component, the SPF- for-Microsoft-365 spoke's envelope-MAIL- FROM-layer publication-discipline IS the per-tenant envelope-layer publication- portfolio component, both consumed together at the per-tenant per-accepted- domain publication-portfolio-coordination floor. Read THIS page when AUTHORING the per-publisher per-domain DKIM application- layer cryptographic-binding publication discipline; read the SPF-for-Microsoft-365 spoke when AUTHORING the per-M365-tenant per-accepted-domain envelope-MAIL-FROM- layer SPF publication discipline that per-tenant per-accepted-domain DKIM publication THIS page documents structurally coordinates with at the per-tenant per- accepted-domain composite authentication- publication-portfolio coordination floor. - DMARC for Office 365 hybrid
— the M365-hybrid deployment spoke covering
the per-hybrid-tenant dual-transport-path
DKIM-coordination topology where two
independent DKIM-signing keys (the on-prem
Exchange-Edge-Transport operator-managed key
published as a TXT record on the operator's
own DNS authoritative server + the EOP
CNAME-delegated Microsoft-managed key
published as
selector1._domainkey/selector2._domainkeyCNAMEs) must both pass per-receiver DKIM verification AND both align with theFrom:header per RFC 7489 §3.1.1 before any DMARC policy advance. Read alongside this DKIM primer when operating a hybrid M365 deployment where the cloud-only DKIM-signing setup documented in the canonical DKIM-for-M365 spoke applies to one half of the dual-path topology and the on-prem operator-managed DKIM-signing setup applies to the other half — the hybrid spoke documents the rotation- cadence coordination operators must execute across the per-tenant per-customer-domain on-prem-vs-EOP dual-key-rotation boundary. - DMARC alignment
— read the DMARC-alignment spoke alongside
this DKIM primer when AUTHORING the per-
publisher per-domain composite SPF + DKIM
+ DMARC publication portfolio whose per-
publisher per-domain
adkim=relaxed-vs-strict alignment-mode publication decision determines whether per-publisher per-selector DKIM-signing operations emittingd=<sub-domain>signatures cascade through DMARC organisational-domain identifier-alignment evaluation into per-publisher per-domain DMARC-aligned-pass evidence-row attribution, when DIAGNOSING per-publisher per-domain DMARC-aligned-pass-rate-floor regression traceable to per-publisher per-selector DKIM-Signatured=-tag mis- publication (e.g. a marketing-stream egress signer emittingd=mail.<org>under a per-domainadkim=sstrict-mode publication that fails identifier-alignment), or when PLANNING the per-publisher per-selector DKIM key-rotation cadence under multi-stream egress where the per-publisher per-domain DMARC-aligned-pass- rate floor underpinning per-publisher per- domain DMARCp=quarantine/p=rejectenforcement-mode-ramp progression depends on overlapping selector rollovers preserving DKIM-aligned-pass survival under SRS-rewritten forwarder cascade and mailing-list relay. - DMARC for transactional-email senders
— the per-publisher per-transactional-
stream DMARC ramp companion to this DKIM
cryptographic-signature pillar. Where THIS
page documents the per-selector DKIM TXT-RR
publication discipline (the
v=DKIM1/k=/p=public-key publication, thea=rsa-sha256per RFC 8301 /a=ed25519-sha256per RFC 8463 signature-algorithm choice, thec=relaxed/relaxedbody- canonicalization choice surviving forwarder- cascade byte-modification, the per-selectorbh=body-hash binding to the signed-byte range), the transactional-email spoke documents the per-publisher per- transactional-stream DKIM-aligned- pass-rate-floor preservation discipline transactional-ESP onboarding consumes. Four coupling axes connect them: (i) per-stream subdomain isolation (marketing.<org>vsreceipts.<org>vssupport.<org>) underadkim=sstrict-mode identifier- alignment to prevent per-stream verdict contamination of the parent-domain DMARC composite-verdict; (ii) per-stream dual- selector overlap-rollover discipline preserving DKIM-aligned-pass-rate floor during high-volume bursts (millions of per- day receipt / password-reset / order- confirmation emails) where verdict-flap windows are commercially-load-bearing; (iii) per-stream key-strength target RSA-2048 as recommended by RFC 8301 + Ed25519 dual-algorithm per RFC 8463 §5 driving per-receiver per- mailbox-provider DKIM-verifier acceptance underpinning transactional-stream inbox- placement-vs-spam-routing decisions at scale; (iv) per-stream DKIM-Signature header coordination with ARC-Seal addition at the transactional-ESP queue-relay boundary preserving DKIM-aligned-pass into receiver- side DMARC composite-verdict computation. Read the transactional-email spoke alongside this DKIM pillar when AUTHORING per-publisher per-transactional-stream DKIM-Signature publication discipline, when DIAGNOSING transactional-stream DKIM-aligned-pass-rate floor regression at high-volume burst scale, or when PLANNING per-transactional-stream DMARC enforcement-mode rampp=none → p=quarantine → p=rejectprogression where the per-stream DKIM- aligned-pass-rate floor IS the load-bearing application-layer identity-authentication primitive underpinning per-receiver inbox- placement-floor preservation. - DMARC records explained
- SPF 10-DNS-lookup limit
- DMARC policy rollout
— the enforcement-deployment companion to
this DKIM protocol pillar. Where this page
documents the cryptographic signing mechanism
(the
DKIM-Signatureheader, thed=/s=/bh=/b=tag grammar, the relaxed-vs-simple canonicalisation choice, the selector-key publication and rotation discipline), the policy-rollout spoke documents the operational deployment path that consumes the DKIM-aligned-pass verdict this pillar produces: the operator first publishes DKIM signing and verifies a healthy DKIM-aligned-pass rate in the RUA aggregate stream atp=none, then advances top=quarantinewith a monotonically- rampedpct=, then top=rejectonly once the DKIM-aligned and SPF-aligned pass rates for every legitimate sending source are stable at the enforcement floor. A premature jump top=rejectbefore the DKIM signing discipline this pillar documents is correct for every legitimate stream blackholes legitimate mail — which is precisely why the rollout spoke gates each enforcement step on the per-source DKIM-aligned-pass evidence this DKIM pillar's signing-side discipline produces. Read the policy-rollout spoke once DKIM signing is healthy on this pillar and the operator needs the phased path to a self-enforcingp=rejectposture. - MTA-STS for Microsoft 365
- TLS-RPT record syntax — the PER-PUBLISHER-PER-DOMAIN-TRANSPORT-LAYER-DNS-TXT-RECORD-PUBLICATION-DISCIPLINE companion to this DKIM pillar: the
<selector>._domainkey.<domain>TXT-RR this page documents and the_smtp._tls.<domain>TXT-RR the TLS-RPT spoke documents are the same per-domain underscore-label DNS-TXT-record publication discipline applied at two different layers — one carries the application-layer DKIM public key that authenticates the message, the other carries the transport-layer reporting policy that surfaces the STARTTLS-handshake failures occurring on the hops that message traverses. Read the TLS-RPT-record-syntax spoke when extending a domain's DNS publication discipline from application-layer DKIM key publication into transport-layer TLS-reporting-endpoint publication. - Microsoft SNDS + JMRP monitoring — a valid DKIM signature does not outrank a bad IP reputation at Outlook.com: SNDS shows how Microsoft's consumer network actually graded each sending IP (GREEN/YELLOW/RED) and JMRP surfaces the Junk clicks behind a degraded verdict.
13. Audit your DKIM setup now
DMARC Analyzer's free Domain Security Checker performs
live DKIM selector lookups, validates the public-key
record syntax against RFC 6376, flags 1024-bit keys and the deprecated SHA-1 (RFC 8301), and surfaces
revoked or missing selectors. Imported DMARC aggregate
reports also show every d= signing domain
that has signed mail for your From:
header — the surest way to find unauthorised senders
missing from your DKIM key inventory.