一、邮件安全主流的三种身份认证方法

混合部署完成后,微软最佳实践推荐建立以SPF、DKIM、DMARC三种邮件身份认证方法的邮件身份认证处理策略,来防止仿冒邮件攻击。

接下来,我们一起来了解一下这三种邮件身份认证策略。

针对互联网上的邮件来源身份认证,目前主流有三种方式:

  1. SPF:全称为 Sender Policy Framework,即发件人策略框架。SPF 主要作用是提供一组由发件方提供的IP清单,来帮助收件方验证接收的邮件来源是否正确。同时,这也是实现SPF、DKIM、DMARC三种身份认证方法的第一步。
  2. DKIM:全称DomainKeysIdentified Mail,即 域名密钥标识的邮件。DKIM基于这公钥和私钥来防止身份欺诈。首先在公网域名的DNS记录中添加TXT记录用来存放公钥,私钥存放在邮件服务器,邮件服务器上的用户发出的邮件头中会自动添加数字签名,数字签名中包含了加密版本、加密方法、域名等信息,邮件接收方收到邮件后会利用数字签名中的信息根据特定规则获取公钥等信息,然后使用其公钥来验证邮件头中的哈希值,从而验证是否为身份欺诈邮件,从这里能了解更多。
  3. DMARC:全称Domain-based MessageAuthentication, Reporting & Conformance,翻译过来就是基于域名的消息认证、报告和合规。这个策略是基于SPF和DKIM的协议, DMARC 策略主要作用是表明发件方其邮件是受SPF和/或DKIM保护的,并告诉接收方如果这些身份验证方法均未通过(如垃圾或拒绝消息)的情况下该如何处理这些邮件。

二、三种身份认证策略的语法格式

2.1 SPF语法格式

还记得我们做混合部署时的SPF记录吗?

v=spf1ip4:120.70.163.11/32 include:spf.protection.outlook.com –all

我们来用这条记录来简单说明一下SPF语法:

v=spf1:

这是必须的,这个表示采用 SPF1版本,现在它的最新版本也就是第 1 版

ip4:

允许对外发送邮件的邮件服务器的公网IP地址,有ip4当然有ip6啦。示例中120.70.163.11/32地址就表示它是我们发件方认可的地址之一。

Include:

表示引入该域名下的 SPF 记录,即示例中,发件方表示我们认可spf.protection.outlook.com域名下的所有IP地址为可信地址。

-all:

“-”表示对未通过认可的IP地址的邮件进行全部拒绝。即强硬拒绝。

相对应的还有“~”表示软拒绝,可以接收,但是标为垃圾邮件。“?”表示中立,不处理它。不过一般也不会用这种策略。

2.2 DKIM语法格式

SPF和DMARC是TXT记录,DKIM是CNAME记录,请注意区分。

还是以我们混合部署实战中的例子:

Host Name : 
selector1._domainkey
value:
selector1-mooing-cc._domainkey.mooing2c.onmicrosoft.com

Host Name :
selector2._domainkey
value:
selector2-mooing-cc._domainkey.mooing2c.onmicrosoft.com

 语法说明:

DKIM其实没什么语法,字段意思介绍一下:

selector: 它通常是具有密钥证书的SMTP服务器。
domain GUID: 基于您的域名,并用“-”替换域名中的“.”。
Initial domain:O365中的租户名称。

 

2.3 DMARC语法格式

来看下实战中的DMARC语句:

v=DMARC1; p=quarantine; rua=mailto:mooing@mooing.cc;ruf=mailto:mooing@mooing.cc; fo=1

 

v:版本,目前也只有DMARC1版本

p:对未通过验证的邮件的处理策略。

none:对于消息的传递不采取任何具体的操作。

Quarantine:DMARC检查失败的电子邮件应被认为是可疑的。

Reject:DMARC检查失败的电子邮件应该被拒绝。

rua:汇总报告的地址

ruf:失败消息报告的地址

fo:提供生成失败报告所需的选项-可选,如果省略,默认为0,通常我们设置为1。

0:如果所有SPF和DKIM检测都失败,则生成DMARC失败报告。

1:如果任意一个检测失败,则生成DMARC失败报告。

d:如果邮件的签名未通过评估,则生成DKIM失败报告。

s:如果SPF检测失败,则生成SPF故障报告。

接下来,我们来看下如何实战设置三种策略

三、实战添加三种身份认证策略

3.1 添加SPF记录(TXT)

按SPF语法构建SPF记录,在混合部署项目中,我们不仅需要引入微软的SPF记录,还需要添加本地邮件服务器出口IP,示例:

v=spf1 ip4:125.70.163.94/32include:spf.protection.outlook.com –all

Office365混合部署进阶系列教程一:使用SPF+DKIM+DMARC技术提升邮件安全_邮件安全

3.2 添加DKIM记录(CNAME)

在Microsoft 365 中为自定义域启用 DKIM 签名

1.Microsoft 365Defender 门户网站

2. 转到“策略和规则“部分的“威胁策略”>“规则“>DKIM。 或者,也可以使用后面的URL直接转到 DKIM 页面。 找到要设置的域名,如图:

https://security.microsoft.com/dkimv2

Office365混合部署进阶系列教程一:使用SPF+DKIM+DMARC技术提升邮件安全_Office365混合部署进阶系列教程_02

3. 选择相应的域名后,点击“创建DKIM密钥”

Office365混合部署进阶系列教程一:使用SPF+DKIM+DMARC技术提升邮件安全_邮件安全_03

4.在弹出的DKIM窗口中,会显示需要添加的CNAME记录。

Office365混合部署进阶系列教程一:使用SPF+DKIM+DMARC技术提升邮件安全_Office365混合部署进阶系列教程_04

Host Name : 
selector1._domainkey
Points to address or value:
selector1-mooing-cc._domainkey.mooing2c.onmicrosoft.com

Host Name :
selector2._domainkey
Points to address or value:
selector2-mooing-cc._domainkey.mooing2c.onmicrosoft.com

 

5.在DNS域名服务提供商后台,按要求添加CNAME记录。

Office365混合部署进阶系列教程一:使用SPF+DKIM+DMARC技术提升邮件安全_邮件安全_05

6.添加完成后,等待10分钟左右,就可以成功启用DKIM签名。

Office365混合部署进阶系列教程一:使用SPF+DKIM+DMARC技术提升邮件安全_邮件安全_06

Office365混合部署进阶系列教程一:使用SPF+DKIM+DMARC技术提升邮件安全_邮件安全_07

3.3 添加DMARC(TXT)记录

DMARC记录可以自己按规则构建,也可以使用一些生成器来生成,推荐网站: https://www.kitterman.com/dmarc/assistant.html

我们实战的混合部署项目中,我们构建了以下记录:

v=DMARC1;p=quarantine; rua=mailto:mooing@mooing.cc; ruf=mailto:mooing@mooing.cc; fo=1

 

Office365混合部署进阶系列教程一:使用SPF+DKIM+DMARC技术提升邮件安全_Office365混合部署进阶系列教程_08

四、验证策略

设置完三种身份认证方法之后,我们来验证一下我们从o365test1@mooing.cc发送一封邮件到腾讯邮箱,来观察一下策略是否成功。

Office365混合部署进阶系列教程一:使用SPF+DKIM+DMARC技术提升邮件安全_邮件安全_09

 

通过查看邮件头,我们看到SPF、DKIM、DMARC三种策略都开始生效了,说明已经配置成功,另外这三种策略的配置顺序没有固定的,你甚至可以先配置DMARC策略,用DMARC策略工作结果来验证和观察另外两条基础策略的工作原理。

 

这一章我们说到了邮件的身份认证方式,下一章,我们来补充说一下混合部署环境下的用户身份认证方式,我们前面实战项目中使用的是直通身份认证,另外还有两种,联合身份认证和无缝身份认证,期待一下吧。