邮件传输协议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: SUBMITTER=alice@example.com。通过这个扩展,可以告诉支持SUBMITTER扩展的接收邮件服务器用于参考的发件人。
如果不是普通的邮件发送,发信人还要针对特定的邮件发送行为增加特定的邮件信头,它也需要对邮件服务器软件进行修改才能支持。比如在邮件列表服务器发信时,应在信头中增加Sender字段;在邮件转发时,应在信头中增加Resent-From字段;在发送来自手机、旅馆、网吧等移动式用户的邮件时,应在信头中增加Sender字段。通过这些字段,接收邮件服务器能有效地甄别发信人信息,并据此进行验证。接收邮件服务器也要对邮件服务器软件进行修改,以支持SUBMITTER扩展和对SPF资源记录的检查。
目前只有Sendmail正式宣布支持SenderID,其他的一些MTA软件厂商和开发者还在观望中,这个情况有望在SenderID通过审核成为标准后改变。
SenderID也有缺陷 SenderID技术抓住了垃圾邮件发送的一个重要特征,那就是垃圾邮件总是想方设法地掩盖其发送来源,通过这一点可以避免被阻挡、追踪和逃避法律责任。因此,广泛实施的SenderID技术可以对垃圾邮件的生存造成致命的打击。
那么,是不是SenderID技术就是垃圾邮件的的克星了?不是。因为SenderID技术只是一个解决垃圾邮件发送源的技术,从本质上来说,并不能鉴定一个邮件是否是垃圾邮件。比如,垃圾邮件发送者可以通过注册廉价的域名来发送垃圾邮件,从技术的角度来看,一切都是符合规范的;还有,垃圾邮件发送者还可以通过别人的邮件服务器的漏洞转发其垃圾邮件,这同样是SenderID技术所不能解决的。
SenderID有效打击垃圾邮件 如果IETF能够及时通过SenderID标准的话(目前来看,该技术获得通过的可能性很大),那么,在主要的ISP的支持下获得大范围的应用后,可以说,现在的这种通过伪造发信身份以躲避垃圾邮件追踪的垃圾邮件发送方式将不再可行。再辅助以法律手段和国际间的合作,可以有效降低现有的垃圾邮件数量。
反垃圾邮件工作是一个长期而艰苦的工作,垃圾邮件发送者也会因为根本的利益驱动来想方设法地绕开反垃圾邮件手段来继续寻求新的垃圾邮件发送方式。但是,至少SenderID是一个在SMTP协议出现以来最直接的反垃圾邮件手段,我们对其发展抱有良好的期望。
SenderID技术原理图(来自microsoft.com)
,