← RFC Reference

RFC 5617: ADSP — Author Domain Signing Practices

DMARC Email Authentication Published August 2009
ELI5: Imagine you run a company and stamp every letter you send with a wax seal. ADSP was a way to announce to the world: “Every letter from us has a seal. If you get one without it, it’s a forgery.” Good idea, but the announcement mechanism was too rigid — it couldn’t handle mailing lists, forwarding, or third-party senders gracefully. DMARC eventually solved the same problem with a more flexible approach, and ADSP was retired.

Why This Exists

DKIM (RFC 6376) lets a domain sign its outgoing messages, but it doesn't tell receivers what to do when a message lacks a valid signature. Without a policy layer, a receiver has no way to know if an unsigned message from bank.example.com is legitimate (maybe their outbound path doesn't always sign) or fraudulent (a phisher spoofing the bank).

ADSP was the first attempt to fill this gap. It let domain owners publish a DNS record declaring their signing practice:

Published in August 2009, ADSP saw limited adoption and was moved to "Historic" status in November 2013 by RFC 5863. Its successor, DMARC, addressed ADSP's shortcomings and became the standard email authentication policy mechanism.

How It Works

The DNS Lookup

ADSP records are published as DNS TXT records at _adsp._domainkey.<domain>. When a receiver gets a message with a From: header of alice@example.com, it looks up:

_adsp._domainkey.example.com. IN TXT "dkim=all"

Policy Values

Policy DNS Record Meaning
Unknown dkim=unknown (or no record) The domain may sign some or all mail. No assertion about unsigned messages.
All dkim=all All mail from this domain is signed with an Author Signature. Unsigned messages are suspicious but not necessarily forgeries.
Discardable dkim=discardable All mail is signed. Unsigned messages should be silently discarded. The strongest policy.

Author Signature vs. Third-Party Signature

A key concept in ADSP is the Author Signature — a DKIM signature where the d= tag in the DKIM-Signature header exactly matches the domain in the From: header. This is stricter than general DKIM, which allows any domain to sign:

; Author Signature (ADSP cares about this) From: alice@example.com DKIM-Signature: v=1; a=rsa-sha256; d=example.com; ... ; d=example.com matches From domain → Author Signature: YES ; Third-party Signature (ADSP ignores this) From: alice@example.com DKIM-Signature: v=1; a=rsa-sha256; d=esp-provider.com; ... ; d=esp-provider.com does not match From domain → Author Signature: NO

This meant that if you used an ESP (Email Service Provider) that signed mail as d=esp.com rather than d=yourdomain.com, ADSP would treat those messages as unsigned — even though they had a perfectly valid DKIM signature.

The Verification Flow

  1. Receive the message and extract the From: header domain.
  2. Look for DKIM-Signature headers where d= matches the From domain (Author Signatures).
  3. If an Author Signature is present and validates, accept the message normally.
  4. If no valid Author Signature exists, query DNS for _adsp._domainkey.<domain>.
  5. Apply the policy: unknown means take no action, all means treat with suspicion, discardable means reject or silently drop.

Key Technical Details

Why ADSP Failed

ADSP's design had fundamental limitations that prevented meaningful adoption:

ADSP vs. DMARC: Key Differences

Feature ADSP (RFC 5617) DMARC (RFC 7489)
Authentication methods DKIM only DKIM or SPF (either can pass)
Alignment mode Strict only (exact From match) Strict or relaxed (subdomains allowed)
Subdomain policy None sp= tag for subdomains
Aggregate reporting None rua= tag for daily XML reports
Forensic reporting None ruf= tag for per-failure reports
Gradual rollout None pct= tag to apply policy to a percentage of mail
Policy actions unknown, all, discardable none, quarantine, reject
DNS location _adsp._domainkey.<d> _dmarc.<d>
Status Historic (retired 2013) Active, widely deployed

The DNS Record in Detail

; ADSP record syntax _adsp._domainkey.example.com. IN TXT "dkim=discardable" ; The only recognized tag is "dkim=" with values: ; unknown - default, no assertion ; all - all mail is Author Signed ; discardable - all mail is Author Signed; discard if not

Common Mistakes

Deliverability Impact

Related RFCs