MX records
根据发往收件人的域名,查询DNS记录,得知对应的接受服务器地址,并发送
示例
Hostname: contoso-com.mail.protection.outlook.com
Priority: 0
TTL: 1 hour
MX记录本身没有安全性保护,但可以结合其他DNS记录和安全协议(如SPF、DKIM、DMARC等)提高电子邮件系统的安全性,防止伪造和未授权的邮件发送。
SPF(Sender Policy Framework)
记录用于指定哪些邮件服务器被授权代表你的域名发送电子邮件,通过设置SPF记录,可以防止伪造发件人地址
v=spf1 ip4:192.168.0.10 ip4:192.168.0.12 include:spf.protection.outlook.com -all
ip4: 指定的IPv4地址范围。
ip6: 指定的IPv6地址范围。
a: 发件域名的A记录IP地址。
mx: 发件域名的MX记录IP地址。
include: 包含其他域名的SPF记录。
all: 通配符,匹配所有地址(通常在最后使用)。
根据匹配结果和SPF记录中的修饰符(+, -, ~, ?),接收服务器决定如何处理邮件。
+(Pass):通过SPF验证。
-(Fail):SPF验证失败,通常拒绝邮件。
~(SoftFail):SPF验证软失败,邮件可能标记为可疑或垃圾邮件。
?(Neutral):中性结果,不做特殊处理。
DKIM(DomainKeys Identified Mail)
是一种电子邮件认证方法,用于验证邮件是否来自被授权的邮件服务器,并且邮件内容在传输过程中没有被篡改。它通过使用数字签名技术,增强了邮件传输的安全性和完整性。
DKIM的工作原理涉及两个主要部分:签名过程和验证过程。
- 签名过程(Signing Process):
○ 当发件人的邮件服务器发送邮件时,它会对邮件的某些部分(如头部和主体)进行加密哈希(rsa-sha256)处理,生成一个唯一的散列值,这些部分包括
■ 发件人、收件人、主题、MIME 版本、内容类型、日期和其他邮件头字段(取决于源电子邮件系统)。
■ 消息正文
○ 这个散列值通过发件人域的私钥进行加密,生成一个数字签名,并将其添加到邮件头部中的DKIM-Signature字段。
○ 发件人的邮件服务器将公钥发布在DNS记录中,以便接收方可以使用它来验证邮件。 - 验证过程(Verification Process):
○ 当接收方的邮件服务器接收到邮件时,它会提取邮件头部中的DKIM-Signature字段。
○ 接收方的邮件服务器从发件人域的DNS记录中获取公钥。
○ 使用公钥解密签名:使用从DNS中获取的公钥,解密 b 字段中的签名。这个解密操作会还原出发送邮件时对规范化头部字段的哈希值。
○ 生成邮件的哈希值:接收方按照 DKIM-Signature 字段中指定的头部字段和规范化算法,计算接收到的邮件头部字段的哈希值。
○ 比较解密出的哈希值和计算出的哈希值:如果两个哈希值匹配,则说明签名验证成功,表明邮件内容未被篡改且确实由声明的发送域名发送。
DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=default; c=relaxed/relaxed;
h=from:to:subject:date:message-id;
bh=base64hashedbody;
b=base64signature;
d=example.com:签名域名。
s=default:选择器。
bh=base64hashedbody:邮件正文的哈希值。
b=base64signature:签名本身。
DMARC(Domain-based Message Authentication, Reporting, and Conformance)
记录帮助邮件域名所有者防止域名欺诈
DMARC依赖SPF和DKIM进行校验,又弥补了二者的不足
● 协同SPF和DKIM
○ DMARC通过结合SPF和DKIM来验证邮件。即使一个机制验证失败,另一个机制的成功验证也可以让邮件通过。这种协同机制增强了邮件验证的可靠性。
● 验证 MAIL FROM 和 FROM 地址中的域是否一致
○ SPF对齐:SPF对齐检查邮件的MAIL FROM域名与From头部中的域名是否匹配。
○ DKIM对齐:DKIM对齐检查邮件的签名域(d=标签中的域名)与From头部中的域名是否匹配。
● DMARC提供了认证报告
○ rua=mailto:接收聚合报告的电子邮件地址(汇总报告)
○ ruf=mailto:接收失败报告的电子邮件地址(取证报告、故障报告)
● DMARC提供策略的定义和执行
Hostname: _dmarc
TXT value: v=DMARC1; p=reject; pct=100; rua=mailto:rua@contoso.com; ruf=mailto:ruf@contoso.com
- pct: 标签在DMARC策略中用于控制策略应用的邮件百分比,帮助域名所有者逐步实施和调整DMARC策略。通过合理使用 pct 标签,域名所有者可以逐步验证和优化配置,从而避免对所有邮件立即应用严格策略,确保电子邮件通信的安全性和可靠性。
- adkim=s:DKIM对齐方式为严格(strict)
- aspf=s:SPF对齐方式为严格(strict)