邮件的安全认证(dkim/spf/dmarc)

dkim

dkim是用来识别电子邮件合法以及完整性的一种技术手段,主要方式是通过非对称加密对邮件本身进行签名,邮件接收方可以使用发送方提供的公钥对签名进行校验,来确认邮件是否伪造或者被篡改。

如何查看dkim

dkim签名被放在邮件原始内容的header DKIM-Signature中。用来验证签名的公钥放在指定域名的txt记录中,域名格式为:[selector]._domainkey.[domain],其中selector和domain两个字段我们可以从签名里面获得。

如下是DKIM-Signature的样本:

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=okta.com; h=content-type:from:mime-version:subject:reply-to:list-unsubscribe: list-unsubscribe-post:to:cc:content-type:from:subject:to; s=cs1; bh=ypeqONcClQagR0kT04HrbN3qC+qUicpfaZbwpvfEk4g=; b=CtgFBpVnIQICeGi5jNo4ih4jmvIkqeME229RRxP7ZuUx3W/oo9efsVXq5fxInlxHD8+C o2xAvL7WzEA6uqQdT3qZ5hGYDx8FDg8aBJBsa4R3NilKqt/ke9rxwzIXSIiUchV4In2+ev N7YhwbM0wSVEkBY3pPLOmnPkk9cPMY/2zT7ySxoNrOLvF3l7mnBrXp/O9xi3P3U/FVuF4N F8cUzSkD3nj4ic9VftCiZGwB9tdv+1cIPTFothrwbsk/6zfd2Ecc88jMAcC4V36XPqTmVQ WixvOZf3R0zK/v69gdd0jBHpZjlY18rWFysE6wltYV9ALFay0YLpBRBNEYcxbbZw==

d: 获取公钥的根域名

s: 获取公钥域名的selector

以上面的签名内容为例,那么我们可以从域名cs1._domainkey.okta.com中获取公钥。

h:列出了用于创建数字签名的字段

bh:邮件正文的hash值

b:邮件签名内容,使用b和bh生成,并使用私钥签名。

SPF

SPF是用来验证发送邮件的服务器合法性的一套机制。通过声明指定域名的邮件服务器ip地址列表,收件人可以根据发送着封邮件的服务器ip地址来判断这封邮件是否来自合法的发送方。

spf如何工作

当服务器a发送电子邮件到服务器b时,服务器b会读取电子邮件的返回路径email@xxreturn.com (返回地址不同于“发件人”地址,专用于收集和处理退回的消息)。之后搜寻该邮箱域名的spf记录,之后验证服务器a的ip地址是否在spf记录中,如果不在则说明该邮件并不来自于合法的发件服务器。

如何查询spf记录

spf记录存放于邮箱域名的txt记录中,以v=spf1开头。spf记录支持引用关系,很多时候一条spf记录会引用其他记录,只要是在被引用的列表中的ip都认为是合法ip地址。

以gmail.com为例,首次查询txt记录时会看到如下结果:

"v=spf1 redirect=_spf.google.com"

我们再次查询 _spf.google.com的spf记录

v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all

 继续查询_netblocks.google.com的spf记录

"v=spf1 ip4:35.190.247.0/24 ip4:64.233.160.0/19 ip4:66.102.0.0/20 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:74.125.0.0/16 ip4:108.177.8.0/21 ip4:173.194.0.0/16 ip4:209.85.128.0/17 ip4:216.58.192.0/19 ip4:216.239.32.0/19 ~all"

这里所列出来的ip地址均为gmail.com邮件服务器合法ip。当然不止这些,我们需要把所有被引用的记录都遍历一遍才能拿到所有的ip列表。

DMARC

DMARC政策用来告诉邮件服务器如何处理那些spf或者dkim校验失败的邮件。是忽略这些失败的校验,还是放到垃圾邮箱或者不做转发。

如何查询DMARC记录

dmarc记录可以在邮箱域名的_dmarc子域名的txt记录中找到,比如邮箱@gmail.com, 对应的dmarc记录在_dmarc.gmail.com的txt记录中,以v=DMARC1开头。如下是gmail邮箱的dmarc记录

"v=DMARC1; p=none; sp=quarantine; rua=mailto:mailauth-reports@google.com"

DMARC的定义

  • p=quarantine 表示电子邮件服务器应当“隔离”未通过 DKIM 和 SPF 的电子邮件,将它们视为潜在的垃圾邮件。其他可能的设置包括 p=none,它允许未通过检查的电子邮件仍然传递,以及 p=reject,它指示电子邮件服务器阻止未通过检查的电子邮件。
  • adkim=s 意味着 DKIM 检查是“严格的”。将 s 改为 r,即可将其设置为“宽松的”,比如 adkim=r
  • aspf=s 与 adkim=s 的意义相同,但是针对 SPF
  • sp 用于设定该域名下其他子域名邮箱的策略
  • rua=mailto:mailauth-reports@google.com 当出现邮件的安全校验未通过时,发送报告到邮箱mailauth-reports@google.com

 

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值