2.5. 发件人授权方案

已开发出各种发件人验证方案,不仅检查有效性,还检查发件人地址的真实性。互联网域名的所有者指定了必须满足的特定标准,以便验证来自该域名内发件人的邮件是否为真实邮件。

早期提出的两种此类方案是

在这两种方案下,来自的所有邮件都必须来自的 DNS 区域中指定的主机。

这些方案已经发展。唉,它们也分叉了。

2.5.1. 发件人策略框架 (SPF)

“发件人策略框架”(之前称为 “发件人许可来源”)可能是最著名的发件人授权方案。它大致基于上述原始方案,但在域名持有者可以发布的标准方面允许更大的灵活性。

SPF 信息以TXT记录的形式发布在域名的顶级 DNS 区域中。此记录可以指定

TXT 记录的结构仍在开发中,但是完成上述基本功能的功能已经到位。它以字符串开头v=spf1,后跟诸如以下修饰符:

每个修饰符都可以加上加号 (+)、减号 (-)、问号 (?) 或波浪号 (~) 前缀,以分别指示它是指定权威来源、非权威来源、中立立场还是可能的非权威来源。

每个修饰符也可以用冒号扩展,后跟备用域名。例如,如果您是 Comcast 的用户,您自己的 DNS 区域可能包含字符串 -ptr:client.comcast.net ptr:comcast.net 以指示您的外发电子邮件永远不会来自解析为任何.client.comcast.net 的主机,但可能来自解析为任何.comcast.net 的其他主机.

SPF 信息目前已为许多知名互联网域名发布,例如 aol.com、altavista.com、dyndns.org、earthlink.net 和 google.com。

发件人授权方案(尤其是 SPF)尚未被普遍接受。特别是,一种反对意见是,域名持有者可能会有效地垄断从其用户/客户转发外发邮件的行为。

另一种反对意见是,SPF 破坏了传统的电子邮件转发 - 转发主机可能没有权限根据信封发件人域中的 SPF 信息执行此操作。这部分通过 SRS发件人重写方案解决,其中邮件的转发者将修改信封发件人地址为以下格式

user=source.domain@forwarder.domain

2.5.2. Microsoft 电子邮件发件人 ID

与 SPF 类似,接受标准通过发送域的 DNS 区域中的 TXT 记录发布。但是,MS CIDE 信息不是依赖于简单的关键字,而是由以 XML 编码的相当大的结构组成。XML 模式由 Microsoft 获得许可发布。

虽然 SPF 通常用于检查电子邮件的信封发件人地址,但 MS CIDE 主要是一种验证消息本身的 RFC 2822 标头的工具。因此,可以应用此类检查的最早时间点是在消息数据已传递之后,在发出最终 250 响应之前。

坦率地说,生来就夭折了。受到专利问题和纯粹的复杂性阻碍。

话虽如此,http://spf.pobox.com/ 上发布的最新 SPF 工具除了 SPF 之外,还能够检查 MS 发件人 ID 信息。

2.5.3. RMX++

简单呼叫者授权框架 - SCAF 的一部分)。此方案由 Hadmut Danisch 开发,他也是原始 RMX 的构思者。

RMX++ 允许通过 HTTP 服务器进行动态授权。域名所有者通过 DNS 发布服务器位置,接收主机联系该服务器以获取授权记录,从而验证呼叫者的真实性。

此方案允许域名所有者更精细地控制用于验证发件人地址的标准,而无需公开其网络的结构(如静态 TXT 记录中的 SPF 信息)。例如,Hadmut 提出的一个示例是授权服务器,该服务器允许每个地址在工作时间后每天发送不超过五条消息,然后在达到限制后发出警报。

此外,SCAF 不仅限于电子邮件,还可以用于为其他服务(如网络电话 (VoIP))提供呼叫者身份验证。

Rick Stewart 指出的 RMX++ 的一个可能的缺点是,它对机器和网络资源的影响:来自 HTTP 服务器的回复不像直接通过 DNS 获取的信息那样被广泛缓存,并且发出 HTTP 请求比 DNS 请求的成本高得多。

此外,Rick 指出 RMX++ 的动态性质使得故障更难跟踪。如果存在每天五条消息的限制,如上面的示例所示,并且一条消息被检查五次,则一条消息就达到了限制。这使得重新检查消息变得不可能。

有关 RMX、RMX++ 和 SCAF 的更多信息,请参阅:http://www.danisch.de/work/security/antispam.html