邮件信任始于认证
原文来源:M3AAWG「Trust in Email Begins with Authentication」, Updated February 2015, Edited by Dave Crocker (M3AAWG Senior Technical Advisor) & Terry Zink (Microsoft). © M3AAWG。本文为中文意译,保留全部 RFC 引用和技术示例。
一、执行摘要
互联网的发展让我们能够与世界各地的用户自由交流。遗憾的是,并非所有参与者都是善意的邻居。在检测和过滤问题流量的同时,还有一个互补性的工作方向:识别值得信赖的参与者。用安全术语来说,前者试图识别"坏角色"(Bad Actors),而后者则试图建立区分"好角色"(Good Actors)的方法。
识别好角色可划分为两个活动:
- 标识参与者(如发件人或邮件服务运营者);
- 评估参与者的可信度。
前者是认证(Authentication),后者是声誉评估(Reputation Assessment)。
本白皮书聚焦第一步:对声称对邮件承担责任的参与者身份进行认证。它为理解当前保护互联网邮件的各项努力提供了背景知识,然后深入介绍了最主流的三种机制——SPF、DKIM 和 DMARC。
从宏观角度看,邮件信任的建立包含三个步骤:
- 标识(Identification)——确定邮件消息中哪些参与者身份可以被检视;
- 认证(Authentication)——验证这些身份声明的真实性;
- 声誉评估(Reputation Assessment)——基于认证后的身份,评估其历史行为以决定邮件处理策略。
二、引言
互联网邮件建立在开放设计之上。任何人都可以向任何 SMTP 服务器发送邮件,声明任何发件人身份。从一开始,这一开放性就是邮件系统成功的关键——但它也带来了被滥用的可能性。
早期的防御思路是建立两道防线:
- 过滤坏角色——通过内容分析(垃圾邮件过滤器)、发件人黑名单、IP 信誉等手段识别和拦截恶意邮件;
- 认证好角色——通过技术手段验证发件人身份的合法性,使接收方能够将声誉判断建立在可验证的身份之上。
这两条防线之间形成了一场持续的"军备竞赛":攻击者不断改进技术绕过过滤器,防御者不断升级检测手段。认证技术的出现为防御者提供了不对称优势——它不再仅仅被动地"猜测"哪些邮件是坏的,而是主动让"好"邮件有机会证明自己。
本白皮书提供一个综合性的认证评估框架,帮助读者理解:
- 邮件架构中的哪些身份可以被认证;
- 不同认证技术的工作原理;
- SPF、DKIM、DMARC 这三种主流机制如何协同工作。
三、基础技术
3.1 电子邮件架构
理解邮件认证之前,有必要回顾邮件系统的基本架构。邮件系统涉及三类主要组件:
- MUA(Mail User Agent,邮件用户代理)——用户用来撰写、阅读和管理邮件的客户端软件(如 Outlook、Thunderbird、Webmail);
- MHS(Message Handling System,消息处理系统)——核心邮件传输基础设施,由一系列 MTA 组成;
- MTA(Mail Transfer Agent,邮件传输代理)——负责接收、路由和转发邮件的服务器软件(如 Postfix、Sendmail、Exchange)。
一封邮件的典型旅程如下:发件人使用 MUA 撰写邮件,邮件通过 SMTP 提交协议(RFC 5321)发送给发件人域的 MTA。发件人 MTA 通过 DNS 查询目标域的 MX 记录,确定目标 MTA 的地址,并通过 SMTP 将邮件传递过去。目标 MTA 接收邮件后,将邮件投递到收件人的邮箱中,收件人通过 MUA 读取邮件。在此过程中的每一跳,MTA 都会在邮件头部添加一个 Received: 字段,记录该跳的详细信息。
3.2 邮件处理中的多重角色
一封邮件在传输过程中涉及多个参与者,每个参与者都有其对应的标识(identifier)。理解这些标识的区别是理解邮件认证的基础:
| 头部字段 | 含义 | 说明 |
|---|---|---|
From: | 发件人地址 | 邮件信封内容,由发件人 MUA 设置,可能是伪造的 |
Sender: | 实际发送者 | 当邮件以他人名义发送时标注真实发送者 |
Return-Path: | 退回路径 | 由目标 MTA 在信封末尾添加,用于退信(NDR)投递 |
Received: | 传输记录 | 每跳 MTA 按顺序添加,越靠近顶部的 Received 越新 |
需要特别强调身份(Identity)与标识符(Identifier)的区别。标识符是一个字符串,如 alice@example.com;身份则是这个标识符所代表的真实参与者。认证所做的就是从标识符出发,验证其是否真的对应了声称的参与者。
3.3 域名系统(DNS)
DNS(Domain Name System)是互联网的名称解析基础设施,它将人类可读的域名(如 example.com)映射为机器可读的 IP 地址或其它资源记录。邮件认证协议高度依赖 DNS:
- SPF 通过 DNS TXT 记录发布邮件发送授权策略;
- DKIM 通过 DNS TXT 记录发布公钥,供接收方验证签名;
- DMARC 通过 DNS TXT 记录发布域策略,报告接收方的认证结果。
DNS 中的区域(Zone)是域名空间的一个管理单元。资源记录(Resource Record, RR)是 DNS 中存储数据的容器。SPF 和 DKIM 最常使用 TXT 类型的资源记录。此外,这些协议常在域名中使用下划线子域名(underscore sub-domains),例如 _spf.example.com 或 selector1._domainkey.example.com,以避免与常规 DNS 记录发生冲突。
3.4 认证的承诺
邮件认证的核心承诺是:接收方能够知道一封邮件到底来自哪里。这里的"来自哪里"不是指邮件头部的 From: 字段(它可以被随意伪造),而是指经过技术验证后,接收方可以对发件人的某些属性建立确定性的认知。
这种确定性让声誉系统得以建立。如果接收方无法确定发件人的身份,就无法对其声誉做出判断——每一次评估都只能从零开始。通过认证,发件人的历史行为可以被持续跟踪:一个经过认证的域名如果在过去从未发送过垃圾邮件,它就更有可能被视为可信的发件方。声誉是邮件信任体系中的关键一环。
3.5 认证技术概览
邮件认证领域存在多种技术方案,它们在认证的对象、方法、复杂度等方面各有不同。以下是七种主要的认证技术:
| 技术 | 类型 | 认证对象 | 核心机制 | 标准化 |
|---|---|---|---|---|
| IP | 通道认证 | 发送 MTA 的 IP 地址 | IP 地址匹配(DNSBL / 自定义白名单) | 非标准 |
| PGP | 对象认证 | 消息内容 | 端到端数字签名,公钥通过 Web of Trust 分发 | RFC 4880 |
| S/MIME | 对象认证 | 消息内容 | 端到端数字签名,公钥通过 X.509 PKI 分发 | RFC 3851 |
| BATV | 退回路径认证 | Return-Path | 签名信封退回地址,防止退信炸弹 | 非标准/草稿 |
| SPF | 通道认证 | 发件 IP / 域名 | DNS 发布授权策略,匹配发件 MTA 的 IP | RFC 7208 |
| DKIM | 对象认证 | 邮件主体+特定头部 | 域名级数字签名,公钥通过 DNS 发布 | RFC 6376 |
| DMARC | 策略层 | From: 域 | SPF + DKIM 对齐 + 域策略发布 + 报告机制 | RFC 7489 |
这些技术可以分为两大类:通道认证(验证传输路径)和对象认证(验证消息内容的真实性和完整性)。以下两节将重点介绍这两类认证的代表性技术:SPF 和 DKIM。
3.6 通道认证(路径注册)基础——SPF 范式
SPF 是通道认证(Channel Authentication)的典型代表。它的核心思想是:域名所有者通过在 DNS 中发布一条 TXT 记录,明确声明哪些 IP 地址被授权代表该域名发送邮件。
SPF 的工作流程如下:
- 发件人 MTA 通过 SMTP 将邮件发送到收件人 MTA。
- 收件人 MTA 从邮件信封中提取
MAIL FROM(即 Return-Path)中的域。 - 收件人 MTA 查询该域的 DNS,获取 SPF 记录。
- 收件人 MTA 将发件 MTA 的源 IP 与 SPF 记录中的授权 IP 列表进行匹配。
- 如果源 IP 匹配授权列表,SPF 检查通过;否则根据策略(如
-all或~all)返回失败或软失败。
SPF 本质上是在回答一个问题:"这个 IP 地址是否有权代表该域发送邮件?"
SPF 的局限性:SPF 仅验证 SMTP 信封域(MAIL FROM),而非邮件头部 From: 字段中用户可见的发件人地址。这意味着攻击者可以注册一个自己的域,在其 SPF 记录中授权自己的服务器,然后在 From: 字段中伪造一个知名企业的域名。SPF 本身无法检测这种「显示名伪造」攻击——这正是 DMARC 试图解决的问题。
3.7 对象(密码学)认证基础——DKIM 范式
DKIM(DomainKeys Identified Mail)是对象认证(Object Authentication)的典型代表。它使用密码学数字签名来验证邮件内容的完整性和声称的发送域。
DKIM 的核心概念是数字签名:
- 发件方使用私有密钥对邮件的选定头部(如
From:、Subject:)和邮件主体进行签名,生成DKIM-Signature头部; - 签名过程中使用哈希函数(通常为 SHA-256)对邮件内容生成摘要,再用私钥对摘要进行加密;
- 接收方从邮件的
DKIM-Signature头部中提取签名域(d=)和选择器(s=),进而通过 DNS 查询获取该域名的 DKIM 公钥; - 接收方使用公钥解密签名,对比重新计算的消息哈希值,如果一致则签名验证通过。
DKIM 本质上是在回答:"这封邮件在被签名后是否被篡改过?它是否真的来自声称的域?"
DKIM 提供了非否认性(non-repudiation):一旦 DKIM 签名通过验证,发件方域无法否认该邮件是由其授权系统签发的(前提是私钥未泄露)。这对声誉系统的建立至关重要。
3.8 SPF、DKIM 与 DMARC 的交互
SPF 和 DKIM 是独立的认证机制,它们各自验证不同的东西。DMARC 在此基础上增加了一个策略层,将这两者统一到一个框架中:
- SPF:验证发送 MTA 的 IP 是否被域授权;
- DKIM:验证邮件内容在传输途中是否被篡改,以及签名是否来自声称的域;
- DMARC:要求 SPF 或 DKIM 中至少有一项检查通过,且认证结果必须与
From:头部中的域"对齐"(Alignment),否则按照域所有者发布的策略(无操作/隔离/拒收)处理未认证邮件。
DMARC 的对齐(Alignment)概念是理解其价值的关键。SPF 检查的是 MAIL FROM 域,DKIM 检查的是签名域 d=,而普通用户看的是 From: 头部中的域。DMARC 要求 SPF 或 DKIM 的认证域与 From: 域匹配(严格对齐或宽松对齐),从而统一了认证和用户体验。
四、发件人策略框架(SPF)
4.1 认证的身份对象
SPF 认证的身份是 SMTP 信封中的 MAIL FROM 域名(也称为信封发件人域或 Return-Path 域)。注意这个域与用户看到的 From: 头部中的域可能是不同的。
4.2 DNS 查询机制
接收方 MTA 收到邮件后,提取 MAIL FROM 中的域,查询该域的 TXT 记录中是否存在以 v=spf1 开头的记录。如果存在,解析其中的机制和限定符,将发件 MTA 的源 IP 与授权规则进行匹配。
SPF 记录的基本语法如下:
v=spf1 ip4:192.0.2.0/24 include:_spf.example.com ~all
各机制含义:
ip4:/ip6:——直接授权特定 IP 地址或网段;include:——引用其他域的 SPF 策略(通常用于第三方邮件服务商);a:/mx:——授权域名的 A 记录或 MX 记录中列出的 IP 地址;exists:——基于 DNS 查询存在性进行条件匹配;all——匹配所有 IP(通常放在末尾作为默认策略)。
限定符决定了匹配后的动作:
+(默认)——通过(Pass);-——失败(Fail),明确拒绝;~——软失败(SoftFail),标记但不拒绝;?——中立(Neutral),不做判断。
4.3 实施难点
SPF 在实际部署中面临以下挑战:
- 邮件转发(Forwarding)问题:SPF 最大的软肋。当邮件从原始发送者经过转发服务器(如用户设置的自动转发)投递到最终目标时,转发服务器的 IP 通常不在原始域的 SPF 授权范围内,导致 SPF 检查失败。这个问题催生了 SRS(Sender Rewriting Scheme)等解决方案。
- 移动用户问题:当用户通过移动设备(手机、平板)在公司邮件系统中发信时,设备的 IP 地址可能是移动运营商分配的动态 IP,不在公司 SPF 记录中。
- 外包和第三方服务问题:许多组织将邮件服务外包给第三方(如邮件营销平台、SaaS 通信服务),每个第三方都有自己的发件 IP 池。组织必须确保所有这些 IP 都已包含在 SPF 记录中,且 IP 变更时要及时更新。
- DNS 查询次数限制:SPF 规范规定解析过程中的 DNS 查询总数不得超过 10 次(包括
include:和a:/mx:等机制引发的递归查询)。过深的 include 链可能导致解析被截断。
4.4 典型 SPF 记录示例
example.com. TXT "v=spf1 mx ip4:198.51.100.0/24 include:_spf.thirdparty.com ~all"
此记录含义:授权本域的 MX 服务器和 198.51.100.0/24 网段发送邮件,同时引用第三方服务商的 SPF 策略。未匹配的 IP 将被标记为软失败。
五、域名密钥识别邮件(DKIM)
5.1 认证的身份对象
DKIM 认证的身份是 DKIM 签名头部中 d= 参数声明的域名。该域名是签署邮件并对邮件内容负责的域。
5.2 数字签名与 DNS 查询
DKIM 将密码学签名引入邮件认证,工作流程如下:
- 发件方 MTA(或出站网关)使用私钥对邮件的特定头部和主体进行签名;
- 签名结果以
DKIM-Signature头部字段的形式附加到邮件中; - 接收方 MTA 从 DKIM-Signature 头部中提取选择器(
s=)和签名域(d=); - 接收方构造 DNS 查询:
s._domainkey.d,获取该选择器对应的公钥 TXT 记录; - 接收方使用公钥验证签名,确认邮件未被篡改且签名确实来自声称的域。
5.3 选择器(Selector)与密钥轮转
选择器是 DKIM 管理私钥的关键机制。域名所有者可以为不同的邮件流(如营销邮件、事务邮件、内部邮件)使用不同的选择器,每个选择器对应不同的私钥/公钥对。
选择器的主要用途是支持密钥轮转(Key Rotation)。定期更换签名私钥是一项安全最佳实践,通过部署新选择器、发布新公钥到 DNS、逐步淘汰旧选择器的方式,可以在不影响邮件正常签名的情况下实现密钥的平滑过渡。
5.4 DKIM 签名示例
以下是 DKIM-Signature 头部的实际示例(摘自 RFC 6376):
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
d=authorscompany.com; i=@authorscompany.com;
q=dns/txt; s=jan2015; t=1423253481; h=from:to:subject;
bh=MzBfNjQ1Rjc4OUVhNkMzMkI=;
b=jBcX7hYKwUoH2JkL9Q8MmZ...
各参数含义:
v=1——DKIM 版本;a=rsa-sha256——签名算法;c=relaxed/simple——规范化算法(头部 relaxed,主体 simple);d=authorscompany.com——签名域;i=@authorscompany.com——签名身份(可选);q=dns/txt——公钥查询方法;s=jan2015——选择器;t=1423253481——签名时间戳;h=from:to:subject——签名的头部字段列表;bh=...——邮件主体哈希值(body hash);b=...——数字签名值。
接收方通过构造 DNS 查询 jan2015._domainkey.authorscompany.com 获取公钥:
$ nslookup -type=txt jan2015._domainkey.authorscompany.com
jan2015._domainkey.authorscompany.com text = "v=DKIM1; h=sha256; k=rsa; p=MIGfMA0GCSqGSIb4...DQAB"
DNS 返回的 TXT 记录包含了公钥数据(p=),接收方可以用此公钥验证签名值 b= 是否与邮件内容匹配。
5.5 DKIM 的失败场景
DKIM 签名验证可能因以下原因失败:
- 内容修改:如果在签名完成后,传输路径上的任何环节(如邮件列表、反垃圾邮件网关、转发服务器)修改了邮件主体或签名的头部字段内容,DKIM 签名将失效。这是 DKIM 在实际部署中最常见的问题。邮件列表服务(Mailing List)通常会添加页脚或修改 Subject 头,导致签名破裂。
- DNS 不可用:如果接收方无法查询到签名域的 DKIM 公钥记录(DNS 超时或记录不存在),验证无法完成。
- 密钥已过期:如果选择器对应的公钥已从 DNS 中删除(密钥轮转后未保留足够长的过渡期),旧签名将无法验证。
六、基于域的消息认证、报告与一致性(DMARC)
6.1 对齐(Alignment)概念
DMARC 的核心创新是对齐(Alignment)的概念。它规定了认证结果中的域必须与用户可见的 From: 头部中的域保持一致。对齐有两种模式:
- 严格对齐(Strict Alignment,
s):认证域必须与From:域完全一致。例如,SPF 的MAIL FROM域或 DKIM 的d=域必须恰好等于From:域。 - 宽松对齐(Relaxed Alignment,
r):认证域可以是From:域的子域。例如,SPF 的mailing.example.com可以与From:的example.com对齐。 - 接收方先独立执行 SPF 和 DKIM 检查;
- 检查 SPF 或 DKIM 是否至少有一项通过;
- 对通过的检查进行对齐验证——认证域是否与
From:域对齐; - 如果至少一个认证通过对齐检查,则 DMARC 通过;否则根据域策略处理邮件。
p=none——不采取行动,仅收集报告(监控模式);p=quarantine——将未认证邮件标记为垃圾邮件/隔离;p=reject——直接拒收未认证邮件。- 聚合报告(Aggregate Reports, RUA):XML 格式的每日报告,由接收方生成并发送给域所有者指定的邮箱。报告包含:认证通过的邮件量、未通过的邮件量、失败原因(SPF 失败/DKIM 失败/对齐失败)、发件源 IP 分布等信息。
- 失败报告(Failure Reports, RUF):实时发送的失败详情报告,包含完整的邮件头部,帮助域所有者快速调查认证失败的原因(由于隐私原因,RUF 在实际部署中不如 RUA 普及)。
DMARC 的工作流程是:
6.2 SPF + DKIM 的策略覆盖层
DMARC 不是一个独立的认证技术,而是建立在 SPF 和 DKIM 之上的策略层。它让域所有者能够明确告诉接收方:如果我的邮件没有通过 SPF 或 DKIM 认证且对齐,你们应该怎么做。
DMARC 策略有三种:
域所有者可以逐步提升策略:从 p=none 开始监控、到 p=quarantine 隔离有问题的邮件、最终达到 p=reject 的最强保护级别。
6.3 报告机制
DMARC 提供了强大的报告机制,让域所有者了解认证的实施效果:
6.4 DNS 查询
DMARC 策略通过 DNS TXT 记录发布,位于 _dmarc.<domain> 子域名下。例如:
_dmarc.example.com. TXT "v=DMARC1; p=reject; rua=mailto:dmarc@example.com; ruf=mailto:dmarc-ruf@example.com; pct=100; fo=1"
参数含义:
v=DMARC1——DMARC 版本标识;p=reject——域策略:拒收未认证邮件;rua=mailto:...——聚合报告的接收地址;ruf=mailto:...——失败报告的接收地址;pct=100——策略应用的邮件百分比;fo=1——失败报告触发条件(SPF 或 DKIM 任一失败即触发)。
6.5 实施难点
DMARC 的部署并不是一个简单的"开箱即用"过程:
- 转发链路破坏 SPF:如前所述,邮件转发会导致 SPF 检查失败。如果域只依赖 SPF 进行 DMARC 对齐,转发后的邮件将无法通过 DMARC 验证。解决方法是确保 DKIM 签名在转发后仍然有效(使用 relaxed 规范化),或者部署 ARC(Authenticated Received Chain, RFC 8617)来保留上游认证结果。
- 内容修改破坏 DKIM:邮件列表、网关安全扫描、添加法律声明免责页脚等操作都可能破坏 DKIM 签名。
- 识别所有第三方发件方:在将策略从
p=none升级到p=quarantine或p=reject之前,域所有者必须确保所有代表该域发送邮件的合法来源都已正确配置 SPF 和/或 DKIM。DMARC 聚合报告是识别未覆盖发件源的关键工具。
七、结论
互联网邮件是这个星球上最广泛部署的互联网应用之一。它的开放设计使其强大而灵活,但也使其容易被滥用。经过二十年围绕垃圾邮件的"军备竞赛",邮件行业逐渐认识到:仅靠检测和过滤"坏东西"是不够的,还必须有一套机制来识别和验证"好东西"。
邮件认证提供了这个基础。SPF、DKIM 和 DMARC 三者构建了一个从传输路径到消息内容再到策略执行的完整认证栈。SPF 验证发件 MTA 是否被授权,DKIM 验证消息完整性和发送域,DMARC 将这两者统一到一个以用户可见的 From: 域为核心的策略框架中,并提供报告机制来支撑持续改进。
认证本身不是目的,而是一个手段。它的最终价值在于支撑声誉系统——一旦接收方可以确定性地知道一封邮件来自哪个域,就可以对该域的历史行为进行跟踪和评估。好的发件方因其良好的声誉而获得更高的送达率,恶意发件方则因缺乏信誉而被拒之门外。
邮件认证的部署需要一个系统的、渐进的过程。从 SPF 和 DKIM 的基础部署开始,到 DMARC 的 p=none 监控,再到逐步收紧策略至 p=reject。这个过程需要组织内部的协调(IT、法务、业务部门),需要对第三方发件方的审计,更需要持续的监控和调整。
正如本白皮书标题所言:邮件信任始于认证。没有认证,就没有可验证的身份;没有可验证的身份,就没有可靠的声誉;没有可靠的声誉,邮件的信任体系就无从建立。
八、参考资料
| RFC | 标题 | 与本白皮书的关系 |
|---|---|---|
| RFC 5321 | Simple Mail Transfer Protocol | 定义 SMTP 信封、MAIL FROM、Return-Path 等核心概念 |
| RFC 5322 | Internet Message Format | 定义邮件消息格式、From:、Sender: 等头部字段 |
| RFC 2045 | MIME Part One | 定义多用途互联网邮件扩展格式 |
| RFC 1939 | Post Office Protocol - Version 3 (POP3) | 邮件接收协议之一 |
| RFC 2060 | Internet Message Access Protocol (IMAP4) | 邮件接收协议之二(已由 RFC 3501 替代) |
| RFC 2222 | Simple Authentication and Security Layer (SASL) | 邮件认证安全层框架 |
| RFC 2246 | TLS Protocol Version 1.0 | 传输层安全协议,保障 SMTP 通信加密 |
| RFC 4033–4035 | DNS Security (DNSSEC) | DNS 安全扩展,防止 DNS 欺骗和缓存污染 |
| RFC 4880 | OpenPGP Message Format | 端到端邮件加密与签名(PGP) |
| RFC 3851 | Secure/Multipurpose Internet Mail Extensions (S/MIME) v3.1 | 基于 PKI 的邮件加密与签名 |
| RFC 1034 | Domain Names - Concepts and Facilities | DNS 基础概念 |
| RFC 1035 | Domain Names - Implementation and Specification | DNS 实现规范 |
| RFC 7208 | Sender Policy Framework (SPF) v1 | SPF 正式标准 |
| RFC 6376 | DomainKeys Identified Mail (DKIM) Signatures | DKIM 正式标准 |
| RFC 7489 | Domain-based Message Authentication, Reporting, and Conformance (DMARC) | DMARC 正式标准 |
注意:本白皮书发布时 DMARC 的标准编号为 RFC 7489。2026 年 DMARC 标准已更新至 RFC 9902(STD 110)和 RFC 9901(STD 109),建议读者查阅最新标准。本白皮书中文版保留原始 RFC 引用以忠实反映原文撰写时的技术状态。
九、附录:IP/PGP/S/MIME/BATV 简要说明
以下是邮件认证技术路线图上另外四种技术的简要概述,它们虽然不如 SPF/DKIM/DMARC 普及,但在特定场景中仍然具有重要价值:
IP 地址认证
最朴素也是最古老的认证方式。收件方通过维护一个信任发件 IP 列表(或反向查询 IP 声誉数据库如 DNSBL)来判断邮件是否来自已知的可信来源。简单直接,但难以在大型互操作环境中规模化,且不支持 IP 地址动态变化的发件方。
PGP(Pretty Good Privacy)
基于端到端密码学的邮件安全方案,由 Phil Zimmermann 于 1991 年开发。PGP 使用公钥密码术对邮件内容进行签名和加密,信公钥通过"信任网络"(Web of Trust, WoT)机制分发——用户可以相互签名对方的公钥来建立信任链。PGP 提供了强大的端到端安全保证,但部署门槛高(需要用户管理密钥),未能在企业环境中广泛普及。
S/MIME(Secure/Multipurpose Internet Mail Extensions)
结构化程度更高的端到端安全方案,基于 X.509 公钥基础设施(PKI)。与 PGP 的信任网络不同,S/MIME 依赖证书颁发机构(CA)来签发和验证身份证书。S/MIME 在企业环境中应用较广,但同样存在密钥管理和用户体验方面的挑战。
BATV(Bounce Address Tag Validation)
为解决退回邮件(退信炸弹/Backscatter)问题而设计的方案。BATV 在 Return-Path 中加入签名标记(tag),发件 MTA 在投递前对退回地址进行签名。当退信到达时,发件 MTA 可以验证退信地址的签名是否有效,从而区分真实的退信和伪造的退信。BATV 不提供消息内容保护,仅解决退信溯源问题。
十、国内场景补充:邮件认证在中国的部署现状
本白皮书描述了邮件认证的通用原理和最佳实践。以下结合国内邮件行业的实际情况,补充几点差异化分析:
SPF 普及度高,但 "-all" 部署率偏低
在中国主流邮件服务商和企业邮件系统中,SPF 记录的发布率已经相当高,绝大多数发件域名都发布了 SPF 记录。然而,一个值得注意的现象是,大量 SPF 记录的末尾使用 ?all(中立)或 ~all(软失败),而非严格拒绝的 -all。这一方面反映出运维人员对 SPF 策略的谨慎态度(担心误拦合法业务邮件),另一方面也表明国内邮件行业距离"最大保护"的成熟运维阶段还有差距。推动 SPF -all 的全面部署,需要更好的运维工具和更完善的测试流程。
DKIM 签名与信创体系中的国密算法替代
DKIM 的主流签名算法是 RSA(rfc 6376),密钥长度通常为 1024 或 2048 位。随着国内信创产业的发展,采用国密算法(SM2/SM3/SM4)的邮件系统逐渐增多。SM2 基于椭圆曲线密码体制(ECC),在等效安全强度下相较于 RSA 具有更短的密钥长度和更高的性能,但 DKIM 标准目前尚未正式定义 SM2 的算法标识符。对此,国内部分厂商通过扩展 DKIM 的 a= 参数(如 a=sm2sm3)实现国密算法签名,但这在跨系统互操作时可能造成兼容性问题。建议相关标准化组织推动将国密算法纳入 DKIM 算法注册表(IANA DKIM Algorithm Registry)。
DMARC p=reject 推行缓慢的原因
DMARC p=reject 策略在国内主流邮箱服务商(尤其是企业邮箱领域)的部署率明显低于北美和欧洲。主要原因包括:
- 第三方生态碎片化:国内企业倾向于使用大量第三方邮件服务(营销平台、通知推送、工单系统等),这些第三方对 SPF 和 DKIM 的支持参差不齐,导致企业难以在升级策略前完成全面审计;
- 邮件转发场景复杂:国内邮件转发、别名转发、邮件网关中转的使用场景较为普遍,SPF 因转发破裂的问题在国内尤为突出;
- 运维意识有待提升:许多企业的邮件运维仍停留在"能用就行"的阶段,对 DMARC 报告的分析和策略迭代缺乏足够的资源和流程支持;
- 兼容性顾虑:部分大型企业的邮件系统历史悠久、系统架构复杂,迁移到严格认证策略涉及多个部门和系统,决策周期较长。
不过,近年来随着信创邮件系统的推广和《网络安全法》《数据安全法》等法律法规的完善,国内邮件安全水平正在稳步提升,DMARC 的采用率也在逐年增长。
参考文献
- Dave Crocker & Terry Zink (eds). "Trust in Email Begins with Authentication." M3AAWG White Paper, Updated February 2015. © M3AAWG.
- RFC 7208, "Sender Policy Framework (SPF) for Authorizing Use of Domains in Email", IETF.
- RFC 6376, "DomainKeys Identified Mail (DKIM) Signatures", IETF.
- RFC 7489, "Domain-based Message Authentication, Reporting, and Conformance (DMARC)", IETF.
- RFC 5321, "Simple Mail Transfer Protocol", IETF.
- RFC 5322, "Internet Message Format", IETF.
- RFC 9902 / STD 110, "DMARC", IETF, 2026.
