SPF, DKIM和DMARC,它们是什么,以及它们是如何工作的?
文章转自April的公众号文章《SPF, DKIM和DMARC,它们是什么,以及它们是如何工作的?》
April是红板砖的老朋友,也是Ben的好朋友。她在开发信上的理解、认知、操作、经验非常深入和专业,也是用开发信拿到大结果的人。
在此感谢April的创作!也希望下面的内容对有启发有价值。
随着Google,Yahoo等各家电子邮件服务商在更加智能和精准的电子邮件过滤技术加持下,像SPF, DKIM 和DMARC 这些以前并未强制要求的规范从2024年起将会成为收发电子邮件的必备条件,以便更好地区分垃圾邮件、钓鱼邮件、欺诈邮件和正常的、有价值的邮件,从而提升用户体验。
SPF、DKIM和DMARC是三种电子邮件验证技术,它们通过验证发件人所声称的域名确保电子邮件确实来自其声明的来源。验证电子邮箱,是向互联网和电子邮件服务提供商确认电子邮箱真实有效,且归属正确的过程。通过这三种验证方法的协同作用,可以有效防止垃圾邮件发送者、网络钓鱼者以及其他未经授权的人员冒充他们并不拥有的域名发送邮件。
具体来说:
SPF:是Sender Policy Framework的缩写,是一种用于验证发件人电子邮件地址的技术,它通过在发件人的DNS记录中添加特定的TXT记录来验来自你域的邮件是否是由你授权的邮件服务器和IP 地址发送。
一个域只能有一条SPF 记录,但在一条SPF 记录中可以有多个服务器和IP 地址,因为同一个域下面的邮箱可能会通过多个邮件平台来发送邮件。
在你域名的DNS 面板上,它长这样:
在这条记录中,它列出了有权代表域发送邮件的IP 地址。当你发送邮件时,接收系统将检查你邮箱的SPF 记录。
- 如果SPF 记录有效,且你的IP 地址在列表中,则你发送的邮件将会被通过。
- 如果你的发件IP 地址不在列表中,则SPF 检查失败,你的发件可能会被拒绝,或被放入垃圾邮件箱(Spam)中。
April 大白话:假设你是一栋写字楼的门卫或前台,每当有快递小哥来送包裹时,你得先核对一下这位小哥是哪家快递公司的。如果这位小哥所属的快递公司已经在邮政部门注册,是被认可的(也就是说不是野鸡快递公司),那么可以为这位小哥放行,让他进入大楼并进行配送。如果不是,就只能将小哥拒之门外了。SPF 就是这样一个列表,它告诉所有收邮件的服务器:“嘿,这些发邮件的服务是我认可的,你们可以信任。”
DKIM:是DomainKeys Identified Mail的缩写,是一种用于数字签名电子邮件消息的技术,它通过在电子邮件消息头中添加加密签名来验证消息的完整性和真实性。
在你域名的DNS 面板上,它长这样:
在电子邮件收发系统中,DKIM 记录就是你的ID, 它通过加密数字身份验证和消息关联域的方法来验证你的发件人身份。当你发送邮件时,发件服务器会附加DKIM,以便接收服务器可以验证你身份的真实性,并识别邮件在传输过程中是否被篡改。
April 大白话:这就像是快递包裹上印有品牌logo的封条,它防止快递在运输过程中被拆开、包裹中物品被偷被换。当你收到这个包裹时,看到这个封条完好无缺,你就知道这个包裹在运动过程中没被人拆开过,可以放心接收。
每年都有多起通过仿造相似电子邮件帐号,进而伪造通信、篡改收款帐号的大额诈骗发生,如果邮件帐号的SPF和DKIM 值得到妥善设置,电子邮件帐号就不会被仿造,邮件不会被篡改,被诈骗大额货款的悲剧也就不会发生。
DMARC:是Domain-based Message Authentication, Reporting, and Conformance 的缩写,是一种用于验证电子邮件域名所有权并提供报告的技术,它结合了SPF和DKIM,并允许域所有者指定如何处理未通过验证的电子邮件。
在你域名的DNS 面板上,它长这样:
DMARC在SPF和DKIM的基础上,给收取电子邮件设置了一个规则,如果邮件没能通过SPF和DKIM的验证,收件服务器就会根据DMARC 里的指示来处理这些邮件。
DMARC在域名的DNS 记录中可以设置三个选项:
- Policy=(P=None):无需操作,正常投递邮件
- Policy=(P=Quarantine):将邮件放入垃圾邮件箱(Spam)或隔离文件夹
- Policy=(P=Reject):邮件被拒绝或退回
April 大白话:假设你所在的写字楼有规定,所有收到的快递包裹必须先送至物业中心,然后再由物业中心的工作人员根据:1)快递公司是否已经合法注册,和 2)每个包裹的封条是否完好无损,来检查和判断这些包裹是否安全,然后再由物业中心决定是否转交至对应的收件人。
如果在检查的过程中工作人员发现某些包裹不合规,有安全风险,他们就根据相应的三个选项来处理这些包裹:正常转交给收件人、放入疑难杂件筐,或者退回收件人。
综上,SPF和DKIM是用于验证邮件发出者身份的技术规范,而DMARC则是结合了SPF和DKIM的标准,用于指导收件服务器如何处理不符合这些验证的邮件。
SPF, DKIM和DMARC这些邮件验证记录通常需要域名的所有者或管理员手动设置,并添加到域名的DNS记录中(这个过程通常被称为域名解析)。一些域名提供商或邮件服务提供商可能会提供工具或向导来帮助生成这些记录,但通常情况下,它们不会自动生成。
有些服务提供商可能会提供一些默认的SPF记录,但是DKIM和DMARC通常需要更加个性化的配置,以符合邮件发送实践。
看完是不是觉得SPF、DKIM和DMARC其实也不是什么新鲜事,无论是镖局时代、邮政时代,还是当下的电子邮件时代,都有类似的规范来保证信息传递的正确和安全。