Valimail:DKIM 验证失败(dkim=fail)的成因、类型、真实案例与修复指南
Valimail 系统梳理 DKIM 验证失败(dkim=fail)的成因:接收服务器无法验证出站邮件的 DKIM 签名,Authentication-Results 头显示 dkim=fail。文章归纳七种失败类型,指出最常见两类为「签名后内容被篡改(body hash did not verify)」与「DNS 缺失公钥(no key for signature)」,并结合大学选错 selector、转发追加页脚、密钥过期、安全网关在签名后改内容等真实案例给出修复与预防方法。
📖 原文翻译与解读。原文:DKIM fail: Reasons, types, examples, and how to fix it(Valimail,2026 年 7 月 29 日)
一、执行摘要
DomainKeys Identified Mail(DKIM)是保证邮件真实性与完整性的核心认证协议之一。当接收邮件服务器无法验证出站邮件所附的 DKIM 签名时,邮件头中的 Authentication-Results 会显示 dkim=fail,即「DKIM 验证失败」。这会导致邮件信任链断裂,轻则进入垃圾箱,重则被直接拒收。Valimail 在这篇指南中系统梳理了 DKIM 失败的定义、七种常见失败类型、真实故障案例,以及对应的修复与预防方法。
二、DKIM 失败的两类核心诱因
绝大多数 DKIM 失败可归为两类:
- 签名后内容被篡改(body hash did not verify):邮件在签名之后、投递之前被某系统修改,导致接收方计算的 Body 哈希与 DKIM-Signature 头中的 bh= 不一致;
- DNS 中找不到公钥(no key for signature):接收方按 DKIM-Signature 头中的 selector 与域名查 DNS,未找到对应 TXT 记录。
根据发送域的 DMARC 策略,一次 DKIM 失败可能使邮件被投递、被隔离,或被拒绝——若 DMARC 设为 p=reject,验证失败的邮件将被直接阻断。
三、七种 DKIM 失败类型与成因
- 签名不匹配:邮件头中的 DKIM 签名与 DNS 公钥不匹配,多由配置错误或内容变更导致;
- 密钥未找到:DNS 中缺少验证所需的公钥,通常因 selector 与已发布记录不对应;
- 密钥过期:DKIM 密钥到期未更新,所有用旧密钥签名的邮件均失效;
- DNS 问题:DNS 解析延迟或配置错误,导致签名公钥暂时无法获取;
- 配置错误:密钥长度错误或记录格式不当,造成持续验证失败;
- 正文哈希未验证(body hash did not verify):最常见错误之一,签名后内容被修改;
- 无签名密钥(no key for signature):按 selector 与域名查 DNS 无记录,记录根本不存在。
四、真实故障案例与修复
Valimail 列举了多个典型场景:
- 大学选错 selector:更换邮件系统后 DNS 记录填错 selector,所有新签名邮件验证失败——需更正 selector 与密钥对应;
- 转发追加免责声明:营销邮件被转发时客户端追加页脚,导致 DKIM 失效——应避免在签名后修改内容;
- 密钥过期:非营利组织忘记轮换,一年后密钥失效——需建立密钥轮换计划;
- DNS 传播延迟:初创公司刚更新记录就用来签名,部分供应商暂找不到公钥——应等待传播完成;
- 密钥长度不匹配:企业从 1024 位升级到 2048 位却误发 1024 位公钥——需核对发布的公钥长度;
- 签名后添加安全头:金融机构在签名后追加安全头,头不一致致失败——应在签名前添加;
- 未授权发送源:学区发现冒用域名的第三方服务未正确签名——需关停或规范其 DKIM 配置。
五、邮件系统防护启示
对邮件系统运维与信创邮件建设者的直接启示:
- 安全网关勿在签名后改内容:SEG(安全邮件网关)或防病毒工具常在出站邮件签名后追加页脚或免责声明,触发 body hash did not verify。应将页脚或免责声明配置在 DKIM 签名之前添加,或把 DKIM canonicalization 切换为 relaxed/relaxed 以容忍轻微空白与头部变化;
- 密钥长度与轮换:私钥与公钥长度需一致,推荐 1024 或 2048 位,短于 1024 位视为安全风险;建立自动轮换机制避免过期;
- DNS 双查:保证 selector 与 ._domainkey 下的 TXT 记录一致,发布新记录后等待 DNS 传播再用于签名;
- 与 DMARC 联动:DKIM 失败叠加 DMARC p=reject 会直接拒收,破坏投递。本地或信创邮件系统应在上线前完成 DKIM、SPF、DMARC 全链路校验;
- 持续监控:对多发送源场景,监控哪些服务在通过或失败 DKIM,及时发现未授权发送源。
参考来源
了解更多行业资讯,请访问 行业资讯首页 或致电 021-69753778 获取安全咨询服务。
相关文章
—— ztpop.net 编辑团队 译
