什么是DKIM
DKIM,是DomainKeys Identified Mail的缩写,是电子邮件验证标准——域名密钥识别邮件标准。
DKIM的发展背景和机制
一直以来,许多知名厂商均在建立电子邮件验证技术。其中最著名的包括Yahoo的DomainKeys技术、微软的SenderlD技术与思科系统的identified internet mail技术。其中,DomainKeys技术受到SBC、英国电信与Google Gmail的支持;而MSN Hot mail、AOL、美国银行及eBay皆响应SenderlD技术。微软曾一度打算说服IETF工作小组通过SenderlD技术成为业界标准,最后却因为各家担心全球通用的技术为一家完全垄断而使微软的愿望落空。如今,由Yahoo与思科系统合作发表的DKIM技术,既结合两家各自的技术,也不会有垄断于一家的争议。DKIM技术是现阶段在IETF内部讨论的方案,并且有望在今后成为国际标准。
域密钥识别邮件定义了一种机制,通过对邮件信息加密并签名,从而允许实施签名的域名对将该邮件引入邮件传输流负责。邮件接收者可以通过直接查询签名者的域名得到相应的公共密钥,进而校验邮件的签名,以此验证邮件是否属于拥有签名域名的私有密钥的一方。DKIM允许一个机构对邮件负责。这个负责的机构是一个邮件传输过程中的处理者,可以是邮件的发起者或中介。负责的机构在邮件中添加一个数字签名,并把这个签名与机构的一个域名相关联。通常,签名会由一个服务代理在邮件发起人的行政管理域(ADMD)的授权下,由这个环境中的任何一个功能组件来执行,包括邮件客户端(MUA)、邮件提交代理(MSA)、网界邮件传输代理(MTA)。DKIM也允许签名由授权第三方来进行。邮件签名后,在邮件传输途径中的任何代理均可被选择用来执行对签名的验证。通常验证会由邮件接收者的行政管理域代理完成。与签名时相同,可以由这个环境中的任何功能组件来完成。特别地,这样意味着签名可以由邮件接收者的行政管理域的过滤软件来处理,而不是要求邮件接收者的用户终端来进行判断。用来进行数字签名的域名所有者是以其信誉为基础的。接收者成功验证签名后可以利用签名者的身份信息作为限制垃圾邮件、欺骗、钓鱼网站或其他不受欢迎行为的软件的一部分。
DKIM的特点
基于对DKIM概念的介绍,可以发现DKIM利用以下几点定义了一个邮件认证机制:公共密钥加密、基于DNS的公共密钥发布服务、域名标志符。DKIM所采用的途径与传统的邮件签名方法(如s/MIME、OpenPGP)相比,有以下一些主要特点:
a)DKIM不修改邮件正文,而是将邮件签名参数信息放在一般不显示给接收者的邮件头部。S/MIME和OpenPGP同时要求对邮件正文进行修改,将正文部分作为MIME类型进行封装。因此签名邮件对于软件不支持DKIM的终端用户是透明的,而不像S/MIME和OpenPGP由于修改了正文会造成邮件内容在不支持协议的客户端上无法识别。
b)没有对分发公有/私有密钥对的可信证书权威的依赖。签名程序要求一定级别确保验证时采用的公共密钥是与声称的签名者相关联。许多程序通过一个可信第三方的证书授予来实现这一点。但是由于DKIM的使用范围有限,并不需要通用的、强大的、长期的由独立权威颁发的证书。DKIM通过使验证者简单地向签名者的DNS发出查询来获取公共密钥,实现了一个足够的安全级别。这样就使得它使用的成本更低。
c)没有对任何新的有关公共密钥分发撤回的互联网协议或服务部署的依赖。现在已经定义的是一种单一绑定的利用DNS.rXT记录来分发密钥,其他的方式可能会在以后被定义。
d)DKIM是基于域名的,而不是整个邮件地址。签名是由域名的管理者控制而不是单独的邮件用户。
e)签名的校验失败不会导致邮件被拒绝。DKIM没有规定收件人必需的操作,可以将对邮件的判断提交给邮件过滤的其他组件。
f)机制中不包括加密算法。DKIM支持多种数字签名算法。目前主要采用的是RSA-SHA。可以随着算法的进步而采用新的加密算法。
g)存档并不是设计目标。DKIM是为了满足邮件传输认证的短期需求。
DKIM面临的威胁和发展前景
就像其他任何试图阻止垃圾邮件传播的机制一样,DKIM也会受到各种攻击。一方面有针对DKIM协议本身的攻击,比如错误的邮件长度限制(1属性)、错误的私有密钥、DKIM签名头部域格式错误等无意或有意的属性赋值错误,均可能造成的认证失败;另一方面,DKIM机制所依赖的DNS服务本身也具有很多不安全的因素¨。各种针对DNS的攻击均有可能使得DKIM签名失效甚至被伪造。对于这些可能的攻击,DKIM工作组发表了针对各种攻击行为的分析?。如何完善DKIM协议以应对对于协议本身的攻击也是DKIM今后改进的重要内容。对于通过DNS服务所进行的攻击,已经超出了DKIM本身所考虑的范畴。因此DKIM一方面寄希望于DNSSEC的出现和使用解决现有的一部分问题;另一方面DKIM的设计初衷认为各种通过DNS的针对DKIM的攻击行为相对于攻击建立在DNS基础上的其他应用成本高且回报很少。想要系统性地威胁DKIM的设计目标,攻击者必须在DNS服务的多个部分进行长时间高成本的攻击。这种行为的非经济性会在某种程度上阻止对DKIM的攻击。
DKIM只是为了实现一定程度上足够的认证,而并不是为了提供一种强大的加密认证机制。这种在安全性上的不完全可靠,对于网络钓鱼等涉及隐私程度高可能造成巨大损失的欺骗行为,DKIM所得出的结论是具有风险和不可信赖的。因此DKIM的主要应用前景是在即使被攻击或认证失败也不会有很大损失的反垃圾邮件等低危险性领域。在反垃圾邮件方面,DKIM能够有效地限制垃圾邮件发送者盗用其他机构或域名的名义,为邮件过滤提供鉴别手段,并且能够在现有邮件体系下快速进行低成本的部署。IETFDKIM工作组正在致力于完善DKIM协议,积极推动DKIM草案成为正式的RFC标准,并且已经取得了阶段性的成果。在开发部署上面,已经有Sendmail、Postfix、Apache等多家公司和组织参与开发了可用的稳定版本,并且正在继续进行改进和标准化工作。