关于DMARC协议

2016/4/27 22:03:26      点击:

   据统计,全球范围内被投递的钓鱼邮件每天约达到1亿封,经常会遇到一些邮件发送方,被spammer利用于伪造各种钓鱼/诈骗邮件,如:伪造银行、保险等金融企业,支付宝、Paypal等支付商,知名网站、政府网站等发送钓鱼邮件、诈骗邮件,威胁着用户的信息和财产安全。DMARC协议会更好的降低他们的域名被伪造的可能性。

什么是DMARC?

    DMARC,全称Domain-based Message Authentication, Reporting and Conformance ,是基于现有的DKIM和SPF两大主流电子邮件安全协议发展而来的。

目的:主要是识别并拦截钓鱼邮件,从而确保用户的个人信息安全。

原理:由发送方在DNS里声明自己采用该协议,接收方收到该域发送过来的邮件时,则进行DMARC校验,从而判断当前邮件来源是否合法。

DMARC校验的核心过程:

    1)从信头提取From字段的domain,称域名A。此字段只存在一个域名。

    2)查询DNS,获取域名A的DMARC记录。若该域无设置DMARC记录,忽略本次DMARC校验。

    3)校验DKIM,若验证成功,则获取DKIM签名中的“d=”字段值,称域名B。信头中如果有多个DKIM签名验证通过,则域名B会存在多个。

    4)校验SPF,若验证成功,则获取本次SMTP会话中MAIL FROM字段的domain,称域名C。此字段只存在一个域名。

注意:DMARC是基于DKIM和SPF的,所以开启DMARC必须先开启DKIM或SPF任意一种。

实际操作:DMARC 和 DKIM & SPF 相似,都需要发件方在DNS里声明TXT记录,只是DKIM & SPF校验结果处理策略比较单一(accept/reject…),而DMARC策略更灵活(多种组合策略,支持百分比等),DMARC 支持report功能。

例如:v=DMARC1; p=none; fo=1; ruf=mailto:dmarc@qiye.com; rua=mailto:dmarc_report@qiye.com

p:用于告知收件方,当检测到某邮件存在伪造我(发件人)的情况,收件方要做出什么处理,处理方式从轻到重依次为:none为不作任何处理;quarantine为将邮件标记为垃圾邮件;reject为拒绝该邮件。初期建议设置为none。

sp:DMARC记录对子域名生效,同时声明子域名在有被伪造时,收件方须做出的处理方式。

rua:用于在收件方检测后,将一段时间的汇总报告,发送到哪个邮箱地址。

ruf:用于当检测到伪造邮件时,收件方须将该伪造信息的报告发送到哪个邮箱地址