← RFC Reference

RFC 5617:ADSP — 作者域签名实践

Deprecated by DMARC Email Authentication Published March 2026
ELI5: 想象你经营一家公司,在寄出的每封信上都盖上蜡封。ADSP 是向世界宣布的一种方式:"我们的每封信都有封印。如果你收到没有封印的信,那就是伪造的。"这是个好主意,但宣布机制过于僵化——它无法优雅地处理邮件列表、转发或第三方发件人。DMARC 最终用更灵活的方法解决了同样的问题,ADSP 随之被淘汰。

为什么存在这个协议

DKIM (RFC 6376) 让域名能够对其发出的邮件进行签名,但它没有告诉接收方当邮件缺少有效签名时应该做什么。没有政策层,接收方无法判断来自 bank.example.com 的未签名邮件是否合法(也许其出站路径并不总是签名)或欺诈(钓鱼者冒充银行)。

ADSP 是首次尝试填补这一空白。它让域名所有者发布 DNS 记录声明其签名实践:

发布于 2009 年 8 月,ADSP 的采用率有限,2013 年 11 月被 RFC 5863 转移为"历史"状态。其后继者 DMARC 解决了 ADSP 的缺陷,并成为标准的电子邮件身份验证政策机制。

工作原理

DNS 查询

ADSP 记录在 _adsp._domainkey.<domain> 处发布为 DNS TXT 记录。当接收方收到 From: 标头为 alice@example.com 的邮件时,它会查询:

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

政策值

政策 DNS 记录 含义
Unknown dkim=unknown(或无记录) 域名可能签名部分或全部邮件。对未签名邮件没有声明。
All dkim=all 来自此域名的所有邮件均使用作者签名进行签名。未签名邮件可疑但不一定是伪造。
Discardable dkim=discardable 所有邮件均签名。未签名邮件应静默丢弃。这是最严格的政策。

作者签名与第三方签名

ADSP 中的一个关键概念是作者签名 — 一种 DKIM 签名,其中 DKIM-Signature 标头中的 d= 标签与 From: 标头中的域名完全匹配。这比通用 DKIM 更严格,后者允许任何域名签名:

; 作者签名(ADSP 关心这个) From: alice@example.com DKIM-Signature: v=1; a=rsa-sha256; d=example.com; ... ; d=example.com 与 From 域相匹配 → 作者签名:是 ; 第三方签名(ADSP 忽略这个) From: alice@example.com DKIM-Signature: v=1; a=rsa-sha256; d=esp-provider.com; ... ; d=esp-provider.com 与 From 域不匹配 → 作者签名:否

这意味着如果您使用 ESP(电子邮件服务提供商)以 d=esp.com 而不是 d=yourdomain.com 进行邮件签名,ADSP 会将这些邮件视为未签名 — 即使它们具有完全有效的 DKIM 签名。

验证流程

  1. 接收邮件并提取 From: 标头域名。
  2. 查找 d= 与 From 域相匹配的 DKIM-Signature 标头(作者签名)。
  3. 如果存在有效的作者签名且验证通过,正常接受邮件。
  4. 如果不存在有效的作者签名,查询 DNS 获取 _adsp._domainkey.<domain>。
  5. 应用政策:unknown 表示不采取行动,all 表示怀疑处理,discardable 表示拒绝或静默丢弃。

关键技术细节

ADSP 失败的原因

ADSP 的设计存在根本局限性,阻止了有意义的采用:

ADSP 与 DMARC:关键差异

功能 ADSP (RFC 5617) DMARC (RFC 7489)
身份验证方法 仅 DKIM DKIM 或 SPF(任一可通过)
对齐模式 仅严格(From 精确匹配) 严格或宽松(允许子域名)
子域名政策 无 sp= 标签用于子域名
汇总报告 无 rua= 标签用于日报 XML 报告
取证报告 无 ruf= 标签用于按失败报告
渐进式推出 无 pct= 标签将政策应用于邮件百分比
政策操作 unknown、all、discardable none、quarantine、reject
DNS 位置 _adsp._domainkey.<d> _dmarc.<d>
状态 历史(2013 年停用) 活跃,广泛部署

DNS 记录详解

; ADSP 记录语法 _adsp._domainkey.example.com. IN TXT "dkim=discardable" ; 唯一识别的标签是"dkim=",其值为: ; unknown - 默认,无声明 ; all - 所有邮件均经作者签名 ; discardable - 所有邮件均签名;未签名则丢弃

常见错误

可递送性影响

Related RFCs