反垃圾邮件技术之SPF介绍
SPF 是发送方策略框架 (Sender Policy Framework) 的缩写,希望能成为一个防伪标准,来防止伪造邮件地址。这篇文章对 SPF 进行了简单介绍,并介绍了它的一些优点和不足。
SPF 诞生于2003年,它的缔造者 Meng Weng Wong 结合了反向 MX 域名解析(Reverse MX) 和 DMP (Designated Mailer Protocol) 的优点而付予了 SPF 生命。
SPF 使用电子邮件头部信息中的 return-path (或 MAIL FROM) 字段,因为所有的 MTA 都可以处理包含这些字段的邮件。不过微软也提出了一种叫做 PRA (Purported Responsible Address)的方法。PRA 对应于 MUA (比如 thunderbird) 使用的终端用户的地址。
这样,当我们把 SPF 和 PRA 结合起来的时候,就可以得到所谓的“Sender ID”了。Sender ID 允许电子邮件的接收者通过检查 MAIL FROM 和 PRA 来验证邮件的合法性。有的说法认为,MAIL FROM 检查由 MTA 进行,而 PRA 检查由 MUA 来完成。
事实上,SPF 需要 DNS 以某种特定的方式来工作。也就是必须提供所谓的“反向 MX 解析”记录,这些记录用来解析来自给定域名的邮件对应的发送主机。这和目前使用的 MX 记录不通,后者是用来解析给定域名对应的接收邮件的主机的。
怎么使用SPF?
要想用 SPF 来保护你的系统,你必须:
- 配置 DNS,添加 TXT 记录,用于容纳 SPF 问询的信息。
- 配置你的电子邮件系统(qmail, sendmail)使用 SPF,也就是说对服务器上每封进入的邮件进行验证。
SPF 的 TXT 记录
SPF 记录包含在一个 TXT 记录之中,格式如下:
v=spf1 [[pre] type [ext] ] ... [mod]
每个参数的含义如下表所示:
参数 | 描述 | ||||||||||||||||||
v=spf1 | SPF 的版本。如果使用 Sender ID 的话,这个字段就应该是 v=spf2 | ||||||||||||||||||
pre | 定义匹配时的返回值。 可能的返回值包括:
|
||||||||||||||||||
type | 定义使用的确认测试的类型。 可能的值包括:
|
||||||||||||||||||
ext | 定义对 type 的可选扩展。如果没有这个字段,那么仅使用单个记录进行问询。 | ||||||||||||||||||
mod | 这是最后的类型指示,作为记录的一个修正值。
|
邮件传输过程