一、摘要

DKIM(DomainKeys Identified Mail,RFC 6376)通过数字签名机制验证邮件在传输过程中是否被篡改。发件方使用私钥对邮件进行签名,收件方通过 DNS 查询公钥来验证签名。由于 DKIM 公钥在 DNS 中以 TXT 记录形式对外公开,任何能够获取该公钥的人都可以将其作为攻击面加以利用。为降低活跃 DKIM 密钥被破解或泄露的风险,密钥应定期更换——这一过程称为密钥轮换(Key Rotation)

本文基于 M3AAWG(Messaging, Malware and Mobile Anti-Abuse Working Group)发布的 DKIM Key Rotation Best Common Practices(文档编号 M3AAWG078,2019 年 3 月修订),系统性地解读 DKIM 密钥轮换的最佳实践,涵盖轮换频率、运维流程、DNS 准备要求、第三方发送场景的三种域名委托方式,以及审计检查清单。

二、问题陈述:为什么 DKIM 密钥需要轮换

2.1 DKIM 公钥的安全风险

DKIM 的安全模型建立在非对称加密之上:发件方持有私钥签名,收件方从 DNS 获取公钥验签。这一模型的根本弱点在于公钥是完全公开的——DNS 中的 DKIM 公钥可被任何人查询和获取。当攻击者获取公钥后,可能通过以下途径实施攻击:

  • 暴力破解私钥:通过公钥反推私钥。虽然 RSA 加密算法在数学上保证了由公钥推导私钥的计算不可行性,但密钥长度不足时仍然存在被破解的风险。
  • 利用已泄露的私钥:服务器的安全漏洞可能导致私钥被窃取。一旦私钥泄露,攻击者可以使用该私钥伪造合法的 DKIM 签名,冒充合法域名发送垃圾邮件或钓鱼邮件。
  • 攻击 DNS 基础设施:针对 DNS 缓存投毒或 DNSSEC 绕过等攻击,可能使攻击者替换公钥记录,从而控制签名验证过程。

2.2 密钥长度:历史教训

表 1:DKIM 密钥长度安全演进
密钥长度状态说明
512 位 RSA废弃(RFC 8301)2012 年数学家用约 72 小时和 75 美元成本成功破解(Wired 报道)
768 位 RSA废弃(RFC 8301)与 512 位一并被 RFC 8301 明确禁止
1024 位 RSA推荐最低长度当前推荐的平衡性选择,在安全性与 DNS 记录长度之间取得平衡
2048 位 RSA强力推荐在当前计算环境下被视为"不可破解",需要确认 DNS 服务商支持处理长 TXT 记录
Ed25519(RFC 8463)现代替代方案更高安全性、更短的签名,但 DNS 实现支持尚在推广中

2012 年著名的事件是研究人员使用约 72 小时的计算时间和仅 75 美元的计算成本,成功破解了 512 位的 DKIM 密钥。这一事件直接推动了业界废弃短密钥的共识。RFC 8301(2018 年 1 月发布)明确禁止了 512 位和 768 位的 RSA DKIM 密钥。

2.3 轮换的价值

即使是 2048 位的 RSA 密钥,由于私钥可能因系统安全漏洞而被窃取,定期轮换可将密钥泄露后的危害窗口缩小到可控的时长。如果密钥每 6 个月轮换一次,即使私钥在轮换后的第 5 个月泄露,攻击者能够使用该密钥进行签名攻击的有效窗口最多也只有 1 个月(至下次轮换)。如果不轮换,这个窗口可能长达数年。

三、轮换频率:每 6 个月的最佳平衡

3.1 从季度到半年的演进

M3AAWG 在 2019 年修订版中将推荐轮换频率从每季度调整为每 6 个月。这一调整是基于多年运维经验的总结:

  • 运维工作量:每季度轮换意味着每年 4 次操作,包括密钥生成、DNS 更新、DNS 传播等待、签名切换、旧密钥清理。对拥有多个域名和大量选择器的组织而言,这一工作量不可忽视。
  • DNS 传播延迟:公钥发布至 DNS 后需要传播时间。在全球 DNS 环境中,TXT 记录(尤其是长记录)的完全传播可能需要数小时甚至更长时间。
  • 风险窗口:6 个月的密钥有效性被认为在安全性和运维负担之间取得了合理的平衡。对于大多数邮件系统而言,半年的轮换周期足以将密钥泄露风险控制在可接受范围内。
  • 对接第三方:当域名与第三方 ESP 共享发信权限时,过于频繁的轮换会增加双方协调传递密钥的难度。

3.2 推荐时间窗口

表 2:DKIM 轮换时间窗口建议
轮换时段月份备注
上半年轮换四月避开春节、情人节、Q1 电商促销等大型邮件发送高峰
下半年轮换十月避开双 11、黑色星期五、圣诞/元旦等全球电商旺季

3.3 关键原则

  • 交叉部门效能:轮换流程应作为标准运维 SOP,而非依赖个人经验。制定清晰的轮换日历和责任分工。
  • 交叉供应商效能:如果使用多个邮件服务商(多个 ESP),确保每个供应商的轮换流程与你的时间窗口对齐。
  • 合规性:某些行业(如金融、医疗、政府)可能有额外的密钥管理要求。轮换策略应符合相关合规框架。
  • 自动化:尽量将轮换流程自动化,减少人为操作风险。可编写脚本自动生成密钥、发布 DNS、验证传播状态。
  • 冗余:在新密钥发布后、旧密钥移除之前,保持过渡期内的双密钥同时有效,确保签名和验证的连续可用。
  • 人才培养:确保团队中至少两人熟悉密钥轮换流程,防止关键人员离岗导致流程中断。

四、运维要点:密钥轮换流程与 DNS 就绪检查

4.1 DNS 就绪检查

在开始轮换之前,首先确认你的 DNS 基础设施能够处理 DKIM 公钥记录(尤其是 2048 位 RSA 公钥的长度要求):

表 3:DNS 就绪检查清单
检查项说明
EDNS0 支持DNS 服务器和权威解析器必须支持 EDNS0(RFC 6891)以传递超过 512 字节的 DNS 响应。2048 位 RSA 公钥的 Base64 编码长度约 400~500 字符,加上 DKIM 标签框架后 TXT 记录总长度可能超过 512 字节。
TCP 回退对于超长的 DNS 响应,如果 UDP 无法承载,服务器应支持通过 TCP 查询。确认权威 NS 和递归解析器均配置了 TCP 查询支持。
TXT 记录最大长度某些 DNS 服务商对单条 TXT 记录有长度限制(如 255 或 512 字符)。长公钥可能需要拆分为多条字符串(DNS 支持将同一 TXT 记录拆分为多个引用字符串的拼接)。
DNSSEC 签名强烈建议对 DKIM 公钥所在的 DNS 区域实施 DNSSEC 签名,防止 DNS 响应的篡改和缓存投毒攻击。
TTL 设置在轮换前将 DKIM TXT 记录的 TTL 降低(如降至 300 秒),以加速 DNS 传播。轮换完成后可恢复至较长 TTL。

4.2 轮换流程时间轴

DKIM 密钥轮换时间轴

Day 0:  准备阶段
  ├── 确认 DNS 就绪(EDNS0、TCP 回退、DNSSEC)
  ├── 降低当前 DKIM TXT 记录的 TTL(如 86400 → 300)
  └── 等待 TTL 老化

Day 1:  新密钥发布
  ├── 使用选择器 s2(如 sales-202604-2048)生成新 RSA 密钥对
  ├── 将新公钥发布至 DNS:s2._domainkey.example.com TXT
  ├── 等待 DNS 完全传播(按新 TTL 计算)
  └── 验证新记录可被外部查询

Day 2:  签名切换
  ├── 配置 MTA 使用新私钥(选择器 s2)签署邮件
  ├── 旧选择器 s1 仍然保留在 DNS 中
  └── ◀── 在此之后发出的邮件将使用 s2 签名

Day 9:  旧密钥下架(Day 2 + 7 天)
  ├── 建议保留旧公钥 7-30 天以验证过渡期未认证邮件
  ├── 确认旧选择器 s1 不再被任何 MTA 用于签名
  ├── 从 DNS 中移除旧公钥记录(s1._domainkey.example.com)
  └── 轮换完成 ✓

4.3 选择器命名约定

选择器(selector)是 DKIM 记录的核心标识,建议采用包含足够信息的命名约定,便于运维管理和轮换追溯:

; 推荐命名格式:{部门}-{日期}-{密钥长度}

; 范例:销售部门 2026 年 4 月轮换,2048 位密钥
sales-202604-2048._domainkey.example.com.  IN  TXT  "v=DKIM1; h=sha256; k=rsa; p=MIGfMA0GCSqGSIb4DQEBAQUAA4GNADCBiQKBgQC4h5HOFJ3x7bLcHV5Zz3Wl7c2F3yq4jH8LXT1S2b6NXv9R0m8K5dAqywZ5wP3vN6cxjKGsR7pQo2JZ4WtD3gFUaP8cHmB9v1GxS7L5TqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iVnN3pF2KQ3U9b5cHkLpS6fTqR8Y0iV")
; 命名建议要点:
; {部门} - 标识签名的组织单元,如 sales、support、noreply
; {日期}  - 轮换年月(YYYYMM),便于排序和追溯
; {长度}  - 密钥强度标识,如 1024 或 2048

; 范例对比:
support-202410-2048._domainkey.example.com
noreply-202604-1024._domainkey.example.com

; 绝对禁止的操作:
; ❌ 在同一个域名上重用之前使用过的选择器名称
; ✅ 每次轮换使用全新的选择器名称

; 错误示范(选择器重用导致旧 DNS 缓存与新签名冲突):
; s1._domainkey.example.com  → 2024 年使用过
; s1._domainkey.example.com  → 2026 年再次使用 ← 危险!

4.4 完整轮换流程

  1. 降低 TTL:将当前 DKIM TXT 记录的 TTL 从默认值(如 86400 秒/1 天)降低到 300 秒(5 分钟),等待当前 TTL 老化。
  2. 生成新密钥对:使用 openssl 或其他工具生成新的 RSA 2048 位密钥对,使用全新的选择器名称。
  3. 发布公钥到 DNS:在 DNS 区域中添加新的 TXT 记录:新选择器._domainkey.example.com IN TXT "v=DKIM1; h=sha256; k=rsa; p=公钥Base64"
  4. 等待 DNS 传播:使用 dig 或其他 DNS 查询工具从多个地理位置的公共 DNS(如 8.8.8.8、114.114.114.114)验证新记录已生效。
  5. 切换签名密钥:配置 MTA 使用新私钥对出站邮件进行签名。
  6. 保留旧公钥:旧公钥继续保留在 DNS 中 7~30 天,以确保过渡期内的邮件仍可通过 DKIM 验证。
  7. 清空旧记录:确认旧公钥无缓存使用后,从 DNS 中移除旧的 TXT 记录。
# 生成 RSA 2048 位私钥
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 \
  -out dkim-private-sales-202604-2048.pem

# 提取公钥并格式化为 DKIM DNS 记录
openssl rsa -pubout -in dkim-private-sales-202604-2048.pem \
  | sed 's/-----BEGIN PUBLIC KEY-----//' \
  | sed 's/-----END PUBLIC KEY-----//' \
  | tr -d '\n' > dkim-public-base64.txt

echo "v=DKIM1; h=sha256; k=rsa; p=$(cat dkim-public-base64.txt)"

五、第三方发送场景与域名委托方式

当企业使用第三方 ESP(邮件服务提供商)代表其域名发送邮件时,存在三种 DKIM 密钥管理方式。每种方式在安全性和运维复杂度上各有取舍。

5.1 方式一:域/子域委托(Domain/Sub-domain Delegation)

域主生成密钥对,然后将私钥安全传输给第三方 ESP。这是最直接的方式,但对私钥的安全性要求最高。

流程

  1. 域主在自己的 DNS 中发布 DKIM 公钥记录
  2. 域主使用 GPG 加密邮件SFTP 等方式将私钥安全传递给第三方
  3. 第三方 ESP 使用收到的私钥签署以域主域名为 From 地址的邮件
  4. 收件方通过域主的 DNS DKIM 记录验证签名

关键安全要求

  • 私钥传输必须加密(切忌明文邮件发送!)
  • 第三方 ESP 应严格限制私钥的访问权限
  • 轮换时域主必须再次向 ESP 发送新私钥
; 配置示例:域主 example.com 委托 ESP 发送邮件

; 1. 域主在 example.com DNS 中添加 DKIM 公钥记录
esp1._domainkey.example.com.  IN  TXT  "v=DKIM1; h=sha256; k=rsa; p=MIGfMA0GCSqGSIb4..."

; 2. 域主通过 GPG 加密邮件将私钥发送给 ESP
;    或通过 SFTP 上传至 ESP 的安全目录

; 3. ESP 配置 MTA 使用该私钥签署邮件
;    DKIM-Signature 将显示 d=example.com; s=esp1;

5.2 方式二:委托子域(Sub-domain Delegation)

域主将 DNS 子域完全委托给第三方 ESP 自行管理,ESP 可以完全控制子域的 DNS 记录,包括 DKIM 记录。

流程

  1. 域主在 DNS 中创建一个子域(如 mail.example.com
  2. 将该子域的 NS(名称服务器)记录指向第三方 ESP 的 DNS 服务器
  3. 第三方 ESP 自行在子域中管理 DKIM 公钥记录
  4. 邮件仍然使用主域(example.com)作为 From 域
  5. DKIM 签名时使用子域的相关记录进行验证
; 配置示例:域主 example.com 委托子域给 ESP

; 1. 域主 DNS 中创建子域委托
mail.example.com.  IN  NS  ns1.esp-mail-service.com.
mail.example.com.  IN  NS  ns2.esp-mail-service.com.

; 2. ESP 在 mail.example.com 区域中自行管理 DKIM 记录
k1._domainkey.example.com.  IN  TXT  "v=DKIM1; h=sha256; k=rsa; p=A..."
k2._domainkey.example.com.  IN  TXT  "v=DKIM1; h=sha256; k=rsa; p=B..."

; 注意:_domainkey 记录仍须在主域下(_domainkey.example.com),
; 而非子域(_domainkey.mail.example.com),以确保 DKIM 对齐检查通过

优点:ESP 可以独立完成密钥生成和轮换,无需每次与域主协调。

注意:DKIM 的 _domainkey 记录位置取决于签名域(d=)的值。如果签名域为 example.com,_domainkey 记录必须在 example.com 域下,即使 DNS 管理委托给 ESP,域主仍需确保该记录在父域中存在或通过委托子域的方式妥善处理。

5.3 方式三:CNAME 委托(CNAME Delegation)

域主在域名中创建三个固定名称的 CNAME 记录,指向第三方 ESP 管理的 DNS 区域。这种方式使 ESP 能够独立轮换密钥,而域主无需每次参与。

流程

  1. 域主在主域 DNS 中创建三个 CNAME 记录:key1._domainkey.example.comkey2._domainkey.example.comkey3._domainkey.example.com
  2. 这些 CNAME 指向第三方 ESP 管理的域名(如 key1.example.esp-dkim.com
  3. 第三方 ESP 在 example.esp-dkim.com 域下管理实际的 DKIM TXT 记录
  4. 轮换时,ESP 只需更新自己域下的 TXT 记录,域主无需做任何操作
; 配置示例:CNAME 委托方式

; 1. 域主 example.com DNS 中的 CNAME 记录
key1._domainkey.example.com.  IN  CNAME  key1.example.esp-dkim.com.
key2._domainkey.example.com.  IN  CNAME  key2.example.esp-dkim.com.
key3._domainkey.example.com.  IN  CNAME  key3.example.esp-dkim.com.

; 2. ESP 在 esp-dkim.com 域下管理的实际 DKIM 记录
key1.example.esp-dkim.com.  IN  TXT  "v=DKIM1; h=sha256; k=rsa; p=MIGfMA..."

; 3. MTA 配置使用选择器 key1 签名
;    DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=key1; t=...
;
; 4. 轮换时,ESP 只需添加新记录并切换选择器:
;    - 添加 key2.example.esp-dkim.com 的 TXT 记录
;    - 将 MTA 签名切换至 s=key2
;    - 保留 key1 的 TXT 记录作为过渡(7-30天)
;    - 过期后移除 key1 的 TXT 记录

优点

  • ESP 可以独立完成密钥轮换,域主 DNS 无需任何变更
  • 三个选择器(key1/key2/key3)提供了足够的轮换空间
  • CNAME 机制本身验证了域主的授权意图,降低了子域委托中 DNS 管理失控的风险

六、审核与持续监控

6.1 定期审计

在每次密钥轮换完成后,建议进行以下审计检查:

表 4:轮换后审计清单
#审计项检查方法
1DNS 记录正确性使用 dig 从多个公共 DNS 检查新选择器的 TXT 记录是否返回正确的公钥
2签名有效性发送测试邮件至多个邮箱(Gmail、Outlook、QQ、163)并检查 DKIM 签名状态
3旧记录仍可验证在过渡期内确认旧选择器的邮件仍可通过 DKIM 验证
4DMARC 报告检查查看 DMARC 聚合报告(rua),确认新签名域的对齐状态
5第三方对接状态如使用第三方 ESP,确认对方已完成新私钥的配置
6选择器名称冲突检查确认新的选择器名称未被该域的历史记录使用过

6.2 利用 DMARC 报告辅助审计

DMARC 聚合报告(DMARC Aggregate Reports,rua)是监测 DKIM 认证状态的无价之宝。通过解析 DMARC 报告,可以:

  • 发现未认证的邮件流:报告中的 dkim=fail 条目可能指示某些合法的发信源尚未更新 DKIM 签名
  • 验证对齐状态:确认所有签名是否使用了与 From 域对齐的签名域
  • 定位客户端错误:如果某些邮件客户端的签名选择器与 DNS 记录不一致,可通过报告追踪
  • 发现新发信源:识别出未经授权的第三方尝试使用你的域名发信
; DMARC 报告分析示例(XML 格式片段)

<record>
  <row>
    <source_ip>203.0.113.45</source_ip>
    <count>250</count>
    <policy_evaluated>
      <disposition>none</disposition>
      <dkim>pass</dkim>
      <spf>pass</spf>
    </policy_evaluated>
  </row>
  <identifiers>
    <header_from>example.com</header_from>
  </identifiers>
  <auth_results>
    <dkim>
      <domain>example.com</domain>
      <result>pass</result>
      <selector>sales-202604-2048</selector>  <!-- 确认新选择器已生效 -->
    </dkim>
  </auth_results>
</record>

6.3 建议审计频率

  • 轮换后一周内:执行完整的审计清单(表 4)
  • 每月:快速检查 DMARC 报告,追踪新的 DKIM 认证异常
  • 每季度:检查所有活跃选择器的密钥强度,确认无老旧短密钥残留
  • 每年:回顾轮换策略是否满足当前安全需求,检查是否有新标准(如 Ed25519)需要纳入

七、国内场景补充

📌 国内 DNS 对长 TXT 记录的支持

  • 国内主流 DNS 服务商(阿里云 DNS、腾讯云 DNSPod、华为云 DNS、百度云 DNS、火山引擎 DNS)均已支持 EDNS0 和 TCP 查询。但在配置 2048 位 RSA 公钥时,建议提前向 DNS 服务商确认单条 TXT 记录的最大长度限制。
  • 部分传统 DNS 托管商(尤其是使用较早版本 Bind 的代理服务商)可能对 TXT 记录长度有 255 字符的限制。如遇此情况,可将公钥拆分为多段引用字符串(如 "v=DKIM1; h=sha256; k=rsa; " "p=MIGfMA0GCSqGSIb4..."),DNS 协议会自动将同一 TXT 记录的多个字符串拼接为完整值。
  • 国内递归 DNS 对 DNSSEC 的普及率仍低于海外。虽然 DNSSEC 不是 DKIM 的强制要求,但建议在条件允许的情况下启用,以防御 DNS 缓存投毒攻击。
  • 建议在轮换关键操作(如 DNS 发布后)使用 dig @8.8.8.8dig @114.114.114.114dig @223.5.5.5(阿里 DNS)多点验证,确保国内及海外解析均正确。

📌 国内第三方 ESP 场景

  • 腾讯企业邮 / 阿里企业邮 / 网易企业邮:国内主流 ESP 通常提供 DKIM 配置向导,但各自支持的选择器命名规则和密钥长度要求可能不同。在轮换前应查阅 ESP 官方文档或联系技术支持确认兼容性。
  • CNAME 委托方式在国内 ESP 中的支持:目前国内 ESP 对 CNAME 委托(方式三)的支持尚不统一,部分 ESP 仅支持方式一(域主传输私钥)。实施前应向 ESP 确认其支持的委托模式。
  • 银保监会和证券业的合规要求:金融行业邮件系统在密钥管理方面可能面临额外的合规审查(如《网络安全等级保护 2.0》对密钥生命周期的管理要求)。DKIM 轮换记录应作为密钥管理审计的一部分存档。
  • SPF 与 DKIM 的协同:在国内环境下,多个发信渠道(自建 MTA + 企业邮 + 营销 ESP)同时使用同一域名的情景非常普遍。DKIM 密钥轮换时,需确认所有发信渠道均已更新签名配置,否则将出现部分合法邮件 DKIM 验签失败的情况。
  • 邮件迁移场景:从自建 Postfix 迁移至企业邮箱服务时,新旧系统的 DKIM 选择器不同,需在过渡期内保留两个域名的 DKIM 记录同时有效,避免迁移过程中邮件认证失败。

八、参考文献与延伸阅读

参考文献

  1. M3AAWG — DKIM Key Rotation Best Common Practices (M3AAWG078). Revised March 2019.
  2. RFC 6376 — DomainKeys Identified Mail (DKIM) Signatures. IETF, September 2011. (Updated by RFC 8301, RFC 8463)
  3. RFC 8301 — Cryptographic Algorithm and Key Usage Update to DKIM. IETF, January 2018.
  4. RFC 8463 — Ed25519-SHA256 for DKIM. IETF, September 2018.
  5. RFC 5585 — DomainKeys Identified Mail (DKIM) Service Overview. IETF, July 2009.
  6. RFC 5863 — DKIM Development, Deployment, and Operations. IETF, May 2010.
  7. RFC 6891 — Extension Mechanisms for DNS (EDNS0). IETF, April 2013.
  8. RFC 7489 — Domain-based Message Authentication, Reporting, and Conformance (DMARC). IETF, March 2015.
  9. NIST SP 800-177 Rev. 1 — Trustworthy Email. January 2026 Draft.
  10. Adrian Sanabria — "RSA 512-bit Keys Cracked for $75". Wired, 2012.

本文基于 M3AAWG078 报告翻译整理,原文版权归 M3AAWG 所有。中文解读与国内场景分析由 ztpop.net 知识库编辑团队撰写,采用 CC BY 4.0 协议共享。