邮件传输协议SMTP允许伪造发信人特征信息,给垃圾邮件制造者以可乘之机,造成了大量的网上垃圾肆虐。
Sender ID是目前诸多反垃圾邮件技术中的后来者。今年6月底,美国微软公司和Pobox.com公司联合向IETF(Internet Engineering Task Force,互联网工程任务组)提出一个关于反垃圾邮件技术Sender ID的标准提案,并成为IETF草案。该技术还得到了得到了美国在线、Yahoo、Sendmail、VeriSign等诸多知名公司的支持。
SMTP缺陷帮了垃圾邮件制造者
垃圾邮件之所以能够如此猖獗,与上个世纪70年代制定的电子邮件协议SMTP协议(简单邮件传输协议)本身的缺陷有关。SMTP协议本身是一个简化的邮件递交协议,缺乏必要的身份认证,这是造成垃圾邮件泛滥的原因之一。由于SMTP协议中,允许发信人伪造绝大多数的发信人特征信息,如:发信人、信件路由等,甚至通过匿名转发、开放转发和开放代理等手段,可以近乎完全地抹去垃圾邮件的发信人特征,这对于发现并制止垃圾邮件的传播造成了很大的困难。
虽然SMTP的缺陷在互联网发展初期并不是一个严重的问题,甚至是符合当时的实际情况的,但是随着互联网的发展,其先天不足越发凸显。但是,出于兼容性的要求,几乎不可能采用新协议替代它。为了解决认定邮件真实来源的问题,人们提出了各种解决方案,如根据SMTP通讯中所声称的发信人信息(HELO信息和MAIL FROM信息)和实际的连接IP地址反向解析结果相比较。但是,IP反向解析往往由于很多DNS没有正确配置和涉及虚拟域名的一些技术障碍,这种方法有较大的局限性。
针对这种情况,人们提出了一系列的方法,如RMX(反向邮件交换记录)、SPF(发信人策略框架)、CallerID(呼叫者身份认证)和DomainKey(域键)等。目前得到较多支持的是由Pobox.com提出的SPF技术和Microsoft提出的CallerID技术融合形成的SenderID(发信人身份认证)技术。该技术已经被IETF下属的MARID工作组(DNS扩展MTA认证记录)审核,随后将它提交给IESG(互联网工程指导组)审核。如果没有问题则把它提交给IETF作为互联网标准发布。
SenderID抓住“漏网之鱼”
所谓SenderID技术,是指SMTP通信过程中对邮件来源进行检查的一种技术,主要归类于连接控制型技术的DNS信息检查类。其基本的工作流程如下:
第一步,发信人使用自己的PC机撰写一封邮件;第二步,撰写完毕,PC机通过SMTP协议,路由发送该邮件到接收邮件服务器;第三步,接收邮件服务器通过SenderID技术对发信人所声称的身份进行检查(该检查通过DNS的特定查询进行);第四步,如果通过检查,发现发信人所声称的身份和其发信地址相匹配,那么接收该邮件,否则对该邮件采取特定操作,比如直接拒收该邮件。
SenderID技术主要包括两个方面:发送邮件方的支持和接收邮件方的支持。其中发送邮件方的支持主要有三个部分:发信人对其DNS的修改,增加特定的DNS资源记录以表明其发信身份;发信人在其外发邮件服务器的发信通信协议中增加SUBMITTER扩展;发信人根据情况在其邮件中增加Resent-Sender、Resent-From、Sender和From等信头。
接收邮件方的支持有:收信人对收到的邮件通信信息进行DNS查询,通过特定的DNS资源记录检查其发信身份。这些检查的通讯信息包括EHLO/HELO信息、MAIL FROM信息、信头中特定的字段信息等。
由于SenderID技术目前还没有通过IETF成为标准,所以一些部分还在不断地改变。比如,SenderID技术最重要的环节——DNS相应资源记录的修改就进行过大的改变。因此,下面所描述的DNS修改有可能在实际标准发布时候有所变动,请参考将来发布的具体标准内容(以下信息来自2004年8月30日提交的最新标准草案)。
为DNS增加SPF2记录
发信人对其DNS的修改,主要是对相应的发信域加特定的SPF2资源记录来申明发信域的发信服务器地址。比如对于example.com域,增加:example.com. IN SPF2:“spf2.0/pra +mx +a:11.22.33.44/24 -all”,其意思是,该记录是SPF2版本的记录,该域的外发邮件服务器的地址包括接收邮件服务器(MX)的地址和11.22.33.44/24这个网段(举例说明),除此之外没有其他的外发邮件服务器。现行版本的DNS服务器软件大多尚未支持新的SPF2资源记录,出于兼容的原因,允许使用同样内容的TXT资源记录来出版SPF2信息。检查该信息的MTA会检查SPF2资源记录和TXT资源记录,并在SPF2资源记录不可用的情况下使用TXT资源记录。
MTA对DNS的SPF2/TXT记录的检查是通过IP地址(IPv4或IPv6)、域名和发信人邮箱来检查的,检查结果可能有4种:不明确、允许、拒绝、准拒绝。如果结果是允许,那么该邮件应该被正确接纳。
为邮件服务器软件增加SUBMITTER扩展
发信人要在邮件通信的MAIL FROM指令中增加SUBMITTER扩展,它需要对邮件服务器软件进行修改才能支持。比如,在通常的MAIL FROM指令:MAIL FROM: alice@example.com后面增加SUBMITTER部分:MAIL FROM:
