一、雅虎、Gmail
Domainkeys 是由雅虎公司推出的一项确保电子邮件来源的真实性和内容的完整性的技术,它能让电子邮件服务商确定某封信是否真实的来自某个域和帮助他们的用户免受“钓鱼欺诈邮件“的损害,比如用户常收到伪造这些机构的诈骗邮件,然后索取用户的信用卡卡号和密码。 而对于金融机构等公司也有保护用户的交易信息,提高用户满意度,减少客服咨询处理量和品牌保护的作用。
Domainkey的工作原理是:发信域的负责人首先生成一对公私钥用于对它发出的邮件进行签名,公钥需要部署到公共的DNS 服务器上供所有收信方查询。而私钥则用于加密自己发出的信。这样只有含有用这个私钥加密后的字符串的邮件才是该域发出的邮件。收信方在收到邮件时,可以通过公用DNS查询它的公钥,然后用该域的公钥来解密验证收到的邮件。如果验证是正确的,这封信就被投递到用户的邮箱里;如果验证失败,邮件将会被丢弃或者标志。这样用户在所收到的邮件就能确保邮件确实是该域发出。
Domainkey的验证过程:例如[email protected]发送给[email protected],a.com的mta会在每封发出的邮件里根据私钥生成一个签名.当b.com的mx服务器在接收邮件时会根据发送方邮件头里的签名查出selector(即s字段,用于签名.例如dk),则b.com的mx会查找dk._domainkey.b.com的txt记录得到公钥.然后使用公钥对签名进行核实。
DomainKeys的实现过程:
发送服务器经过两步:
1、建立。域所有者需要产生一对公/私钥用于标记所有发出的邮件(允许多对密钥),公钥在DNS中公开,私钥在使用DomainKey的邮件服务器上。
2、签名。当每个用户发送邮件的时候,邮件系统自动使用存储的私钥来产生签名。签名作为邮件头的一部分,然后邮件被传递到接收服务器上。
接收服务器通过三步来验证签名邮件:
1、准备。接收服务器从邮件头提取出签名和发送域(From:)然后从DNS获得相应的公钥。
2、验证。接收服务器用从DNS获得的公钥来验证用私钥产生的签名。这保证邮件真实发送并且没有被修改过。
3、传递。接收服务器使用本地策略来作出最后结果,如果域被验证了,而且其他的反垃圾邮件测试也没有决定,那么邮件就被传递到用户的收件箱中,否则,邮件可以被抛弃、隔离等。
DomainKeys技术通过防止邮件地址欺骗来解决困扰整个互联网的垃圾邮件问题,可以有效地阻止了各种各样经过改头换面的垃圾邮件; Domainkey是在接收方邮件运营商支持的情况下才有效,否则对接收双方是没有意义的,因此从本质上来说,也不能鉴定一个邮件是否是垃圾邮件。
二、微软 Hotmail
2004年,Gates曾信誓旦旦地预言微软能够在未来消灭垃圾邮件,他所期望的就是Sender ID技术,但是,最近他则收回了他的预言。这也就是标准之争,微软希望IETF能够采用Sender ID技术作为标准,并且得到了大量支持,比如Cisco, Comcast, IBM, Cisco,Port25,Sendmail,Symantec,VeriSign等,也包括后来又倒戈的AOL的支持,但是在开源社区,微软一直没有得到足够的支持,IETF最终否决了微软的提议。
SMTP协议本身是一个简化的邮件递交协议,缺乏必要的身份认证,这是造成垃圾邮件泛滥的原因之一。针对这种情况,人们提出了一系列方法,如SPF(发件人策略框架)、CallerID(呼叫者身份认证)等等。SenderID技术是由微软公司提出的,就是CallerID技术和SPF技术的结合体。顾名思义SenderID技术就是根据发送方所提供的表明来源的信息来决定接收与否。事实上,这种技术并不直接判断某封邮件是否是垃圾邮件,而是判断邮件的来源是否与其标称相符。也就是说,它不是用来阻止垃圾邮件的发送,而是正确回答“谁发送了邮件”这个基本问题,从而使得垃圾邮件的判定更加简单。
SenderID的工作流程大致分为四步(如图1):
第一步,发信人使用自己的PC机撰写一封邮件;
第二步,撰写完毕,P机通过SMTP协议,路由发送该邮件到接收邮件服务器;
第三步,接收邮件服务器通过SenderID技术对发信人所声称的身份进行检查(该检查通过DNS的特定查询进行);
第四步,如果通过检查,发现发信人所声称的身份和其发信地址相匹配,那么接收该邮件,否则对该邮件采取特定操作,比如直接拒收该邮件。
SenderID技术主要包括两个方面:发送邮件方的支持和接收邮件方的支持。其中发送邮件方的支持主要有三个部分:发信人对其DNS的修改,增加特定的DNS资源记录以表明其发信身份;发信人在其外发邮件服务器的发信通信协议中增加SUBMITTER扩展;发信人根据情况在其邮件中增加Re-sent-Sender、Resent-From、Sender和From等信头。接收邮件方的支持有:收信人对收到的邮件通信信息进行DNS查询,通过特定的DNS资源记录检查其发信身份。这些检查的通讯信息包括EHLO/HELO信息、MAIL FROM信息、信头中特定的字段信息等。
SenderID技术抓住了垃圾邮件发送的一个重要特征,那就是垃圾邮件总是想方设法地掩盖其发送来源,通过这一点可以避免被阻挡、追踪和逃避法律责任。因此,广泛实施的SenderID技术可以对垃圾邮件的生存造成致命的打击。
当然SenderID也有缺陷:其一,因为SenderID技术只是一个解决垃圾邮件发送源的技术,从本质上来说,并不能鉴定一个邮件是否是垃圾邮件。比如,垃圾邮件发送者可以通过注册廉价的域名来发送垃圾邮件,从技术的角度来看,一切都是符合规范的;还有,垃圾邮件发送者还可以通过别人的邮件服务器的漏洞转发其垃圾邮件,这同样是SenderID技术所不能解决的。其二,SenderID技术需要对DNS机制进行扩充,实施比较难
DomainKey和SenderID技术解决的问题是邮件地址是否合法有效,这样一则可拒绝邮件地址和签名不一致的邮件,二则可辅助“白名单”和“黑名单”进行过滤。这两项技术的缺陷是需要对现在所有的邮件服务器进行升级改造,需要业界的共同行动。