之前我们介绍了利用商业产品解决方案解决邮箱安全问题,鉴于SMTP传统邮件的安全性不足,我们将为大家介绍利用SPF,DKIM,rDNS, DMARC等邮件协议认证的手段解决邮箱安全问题。本期分别为大家做一些简单的介绍。
1rDNS
rDNS是什么?
rDNS(Reverse DNS)指得是反向解析,就是把IP解析成域名。反向解析在邮件服务器应用中相当于对你的邮件服务器进行身份验证,这样的策略可以很好的减少垃圾邮件。
为什么需要做rDNS?
因为有些应用程序需要反向来认证对方,如SMTP,也就是为什么国外很多SMTP发往国外的邮件被退信的主要原因。做了rDNS会好很多。DNS服务器里有两个区域,即“正向查找区域”和“反向查找区域”,反向查找区域即是这里所说的IP反向解析,它的作用就是通过查询IP地址的PTR记录来得到该IP地址指向的域名,当然,要成功得到域名就必需要有该IP地址的PTR记录。
技术原理浅析
举例说,有一天,danny到拜访某用户,他递上一张名片,名片上写着他来自“杭州安恒信息有限公司”以及电话号码等信息,客户觉得应该对danny的来历做个简单调查,于是打电话到danny名片上的电话号码所属通信部门进行查实,如果通信管理部门告诉客户其电话号码不属于“安恒信息”,则客户将拒绝danny的拜访,如果其电话号码的确属于““安恒信息”,客户可能接受danny的拜访,也可能进一步查实,于是就打电话到““安恒信息”所属注册机构查询,如果得到的答复确认确有此电话号码,则客户将接受danny的拜访,否则仍将拒绝danny的拜访。例子中,danny好比是我们的邮件服务器,客户是对方邮件服务器,““安恒信息”就是我们邮件服务器与对方邮件服务器通信时所使用的HELO域名(不是邮件地址@后的域名),名片上的电话号码就是我们邮件服务器出口的公网IP地址。客户对danny进行调查的过程就相当于一个反向解析验证过程。由此看出,反向解析验证其实是对方服务器在进行的,如果我们没有做反向解析,那么对方服务器的反向解析验证就会失败,这样对方服务器就会以我们是不明发送方而拒收我们发往的邮件,这也就是我们排除其它原因后(如被对方列入黑名单、没有MX记录、使用的是动态IP地址等等)在没做反向解析时无法向163.com、126.com等发信的原因。
2
SPF
SPF是什么?
SPF(Sender Policy Framework)是以IP地址认证电子邮件发件人身份的技术,是一种通用的反垃圾技术之一。 接收邮件方会首先检查域名的SPF记录,来确定发件人的IP地址是否被包含在SPF记录里面,如果在,就认为是一封正确的邮件, 否则会认为是一封伪造的邮件进行退回。
为什么要用SPF?
SPF 出现的目的,就是为了防止随意伪造发件人。
技术原理浅析
假设邮件服务器收到了一封邮件,来自主机的 IP 是178.111.24.121,并且声称发件人为email@example.com。为了确认发件人不是伪造的,邮件服务器会去查询example.com的 SPF 记录。如果该域的 SPF 记录设置允许 IP 为178.111.24.121的主机发送邮件,则服务器就认为这封邮件是合法的;如果不允许,则通常会退信,或将其标记为垃圾/仿冒邮件。因为不怀好心的人虽然可以「声称」他的邮件来自example.com,但是他却无权操作example.com的 DNS 记录;同时他也无法伪造自己的 IP 地址。因此 SPF 是很有效的,当前基本上所有的邮件服务提供商(例如 Gmail、QQ 邮箱等)都会验证它。
3
DKIM
DKIM是什么?
DKIM(DomainKeys Identified Mail),是一种电子邮件的验证技术,使用密码学的基础提供了签名与验证的功能。
为什么要用DKIM?
邮件的接收端将会对邮件头中的签名和从DNS获取公钥进行验证, 检查邮件是否被伪造。 DKIM签名是现行通用的反垃圾技术之一,有了该配置, 邮件的到达率将会显著提升。
技术原理浅析
DKIM的基本工作原理同样是基于传统的密钥认证方式,它的具体做法是生成一对公钥和私钥,私钥由发送者保存,公钥存放在From字段指定域名的txt记录中。邮件发送时,用私钥加密邮件头的某些字段,并附上邮件内容的hash值,让用户收到邮件时,查找此原来的公钥,对加密的内容进行解密,然后比对相应的内容,整个过程如下图所示。收信的服务器,将会收到夹带在邮件头中的私钥和在DNS上自己获取公钥,然后进行比对,比较寄信者的域名是否合法,如果不合法,则判定为垃圾邮件。
图:DKIM原理
4DMARC
DMARC是什么?
DMARC 全称是 Domain-based Message Authentication, Reporting and Conformance,是一个构建在 SPF 和 DKIM 技术之上的解决方案。
为什么要用DMARC?
DMARC 的核心思想是邮件的发送方通过特定方式 (DNS) 公开标明自己会用到的发件服务器 (SPF)、并对发出的邮件内容进行签名 (DKIM),而邮件的接受方则检查收到的邮件是否来自发送方授权过的服务器、并且核对签名是否有效。对于未能通过前述检查项目的邮件,接受方则按照发送方指定的策略进行处理【比如直接投入垃圾箱或者拒收】,从而有效避免伪造的钓鱼邮件进入用户的收件箱。
技术原理浅析
发件方在投递邮件之前,先申明自己所有会用到的邮局,并且对自己的邮件加上防伪签名。收件方邮局在接收到邮件时,会做两件事:
1、 检查信笺内写的发件人地址,并根据这个地址去查对应的发件人指定了哪些邮局、这封邮件是否是从那些邮局中的某一个转寄过来的;
2、检查信笺的防伪签名是否被篡改过。如果前述两项都失败了,接受方邮局则根据发送方指定的策略对伪造的邮件做相应的隔离或者拒收处理。当然实际部署的情况比这里描述的要复杂得多,我们将在之后内容中重点介绍DMARC。