什么是电子邮件身份验证?
电子邮件身份验证是一组用于验证邮件是否确实来自其声称域名的技术标准和协议。这些机制通过 DNS 记录和加密签名,让收件方邮件服务器能够验证发件人身份,从而帮助防止邮件伪造、网络钓鱼和垃圾邮件。
电子邮件身份验证的三大支柱
SPF(发件人策略框架)
规定哪些服务器获准代表你的域名发送邮件。
SPF 的工作方式:1. 域名在 DNS 中发布 SPF 记录
2. 收件服务器检查发件人的 IP
3. 将该 IP 与授权列表进行比对
4. 返回通过、失败或软失败结果
SPF 记录示例:v=spf1 ip4:192.168.1.0/24 include:_spf.google.com -all
DKIM(域名密钥识别邮件)
通过加密方式为邮件签名,验证邮件的完整性和真实性。
DKIM 的工作方式:1. 发送服务器使用私钥为邮件签名
2. 将公钥发布到 DNS
3. 收件服务器获取公钥
4. 对照邮件内容验证签名
DKIM DNS 记录:selector._domainkey.example.com. TXT "v=DKIM1; k=rsa; p=MIGfMA0..."
DMARC(基于域名的消息身份验证)
作为策略层,告诉收件服务器应如何处理身份验证失败的邮件。
DMARC 记录示例:_dmarc.example.com. TXT "v=DMARC1; p=reject; rua=mailto:[email protected]"
身份验证流程
Email Sent → SPF Check → DKIM Check → DMARC Policy
↓ ↓ ↓
Pass/Fail Pass/Fail Deliver/Quarantine/Reject
身份验证结果
| 结果 | SPF | DKIM | DMARC |
|---|---|---|---|
| pass | IP 已授权 | 签名有效 | 已对齐且通过 |
| fail | IP 未授权 | 签名无效 | 违反策略 |
| softfail | IP 存疑 | - | - |
| none | 没有记录 | 没有签名 | 没有策略 |
为什么身份验证很重要
对发件人
- 提高邮件送达率
- 保护品牌
- 减少邮件伪造
对收件人
- 减少垃圾邮件
- 防范网络钓鱼
- 验证发件人身份
实施最佳实践
SPF
1. 先为邮件服务商添加 include 语句
2. 为邮件服务器添加明确的 IP
3. 测试期间使用 ~all,确认无误后使用 -all
4. 将 DNS 查询次数控制在 10 次以内
DKIM
1. 至少生成 2048 位密钥
2. 定期轮换密钥
3. 为每项服务使用唯一 selector
4. 监控签名失败情况
DMARC
1. 从 p=none 开始监控
2. 查看报告以识别问题
3. 逐步改用 p=quarantine
4. 确认无误后实施 p=reject
常见身份验证问题
| 问题 | 原因 | 解决方案 |
|---|---|---|
| SPF 失败 | 使用了错误的发件 IP | 更新 SPF 记录 |
| DKIM 失败 | 密钥不匹配 | 重新生成密钥 |
| DMARC 失败 | 对齐问题 | 检查 From 与信封域名的对齐 |
电子邮件身份验证对于保护域名声誉、确保邮件到达收件箱至关重要。