为什么三项检查缺一不可
仅靠SPF,攻击者仍可以从域名授权列表中的服务器发送邮件,同时伪造显示名称来绕过检测;仅靠DKIM,也无法验证显示出来的"发件人"地址是否与签名域名一致。DMARC通过要求显示发件人与实际通过SPF或DKIM验证的域名保持一致,填补了这个漏洞。这正是注重安全的组织不满足于只用其中一项、而要把三者组合配置起来的原因。
配置不当的严格DMARC策略会付出什么代价
如果在还没有把第三方营销工具、CRM系统等所有合法发件来源正确授权之前,就把DMARC策略过于激进地设为拒绝(reject),可能会导致本组织自己的合法邮件被其他邮件服务器悄无声息地拒收。多数组织通常会先从"none"(不采取行动)策略开始,收集报告以确认所有合法发件来源都已被识别,然后再逐步过渡到隔离(quarantine),最终升级到拒收(reject)。
落地顺序:不要一上来就设成reject
实际操作中通常按下面的顺序推进。先盘点所有在用的发信来源(自有服务器、群发平台、工单系统、发票系统等)并登记到SPF;再在每个服务中启用DKIM签名,并让签名域名与自己的域名一致;然后发布p=none加rua,收集几周的报告,确认没有合法来源验证失败后,再升到quarantine,一切稳定后才考虑reject。如果希望子域名适用不同策略,可以使用sp标签。检查记录可以用nslookup或dig查询TXT记录,也可以使用免费的在线检测站点。
验证通过不等于邮件可信
SPF、DKIM、DMARC能证明的只是“发信方有权使用这个域名”,并不判断邮件内容是否安全。如果攻击者自己注册了一个长得很像的域名(比如替换了一个字母),从这个域名发出的邮件完全可以通过它自己的验证;被盗用的正规账号发出的邮件同样能通过验证。换句话说,这些技术防的是对域名的直接冒用,而相似域名、内容诈骗仍需要用户自己留意,比如核对链接指向的域名,并通过另一条渠道向对方求证。
常见问题
SPF验证通过,是否就能确定这封邮件一定是真实的?
不能仅凭这一点判断。SPF只能确认发件服务器是否获得了该域名的授权,并不能验证显示的"发件人"地址是否一致,也无法确认内容在传输过程中是否被篡改过。DKIM和DMARC正是用来弥补这些缺口的,所以这三者通常需要配合使用。
明明是合法邮件,为什么DMARC验证还会失败?
这种情况常见于通过第三方服务(比如营销平台或工单系统)发送邮件,却没有把该服务正确添加到域名的SPF记录中,或者没有为其配置专属的DKIM签名。负责管理某个域名邮件系统的人,需要把所有合法的发件来源都纳入授权范围,而不只是自己的邮件服务器。
怎么确认自己域名的配置是否正确?
最基本的办法是直接查询TXT记录:SPF查域名本身,DMARC查_dmarc.域名,DKIM查选择器._domainkey.域名,可用nslookup或dig。更可靠的做法是用自己的域名给Gmail等邮箱发一封测试邮件,查看“显示原始邮件”中的Authentication-Results,确认spf=pass、dkim=pass、dmarc=pass。
个人域名发信量很小,也需要配置吗?
建议配置。没有SPF和DKIM的邮件更容易被判为垃圾邮件;发布了DMARC之后,别人冒用你的域名发出的邮件也更容易被收件方拒收。可以先从p=none开始,边看报告边调整,这样误伤合法邮件的风险较小。