Skip to content
Porter 的流水账
Go back

Email Authentication 笔记

作为兼职 admin,经历了几次配置 Email Authentication 的过程,发现每做一次的时候、上一次的经验已经基本忘光了。还是记一笔吧,好记性不如烂笔头。

Email Authentication 的作用

Email Authentication 是一套基于 DNS(域名系统)的底层协议,旨在解决电子邮件发明初期的一个核心缺陷:SMTP(简单邮件传输协议)默认不验证发件人的身份,这导致任何人都可以在发件人一栏伪造你的域名。

为了防御垃圾邮件、钓鱼攻击并提升邮件投递率,SPF,DKIM,DMARC 和 BIMI 这四项技术互为补充,形成了一个完整的防御链条。

注意这四个协议都是围绕着 DNS Records 展开的,所以配置的时候也要在你 domain 的 DNS service provider 那里进行。

SPF (Sender Policy Framework)

一句话解释

SPF 是在 DNS 记录中列出所有获得授权、可以代表你的 domain 发送 email 的服务器 IP 地址的一条 TXT 记录。

一个例子:

v=spf1 ip4:192.0.2.0/24 ip4:198.51.100.123 a -all

构成:

查询方法:

dig txt example.com +short | grep spf

DKIM (DomainKeys Identified Mail)

一句话解释

DKIM 为邮件内容添加一个不可见的数字加密签名。发信服务器用私钥对邮件头和正文签名;收信服务器去 DNS 查你的公钥(包含在一个 TXT 的 DKIM 记录中)。如果签名能对上,说明邮件在传输过程中没有被篡改,且确实来自你的域名。

一个例子:

v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtOzIjTYVUYZDbm03lsL4MGxSUVJWALTSueNRnCvCdM5d0i26EVUH7jprqIFdBSnMXQDHCkwcH1bFjtbfHCzFfWlpzOWducPPU0E+ut0rRqIy4NKY8CJlW39Q+AHJ70h+k2VadmQt0A1Yijg/Dk73NuJAz8KDNgz2x14nDVkINRlynAU7EosarRRhVGKqlNrYdp/os6QYaetfYNdQRJDecOARNObGRET/sW0m5Ya5SBGsaw8VSGluCwSZh+zShTXaOyA1WnpHNtAoCQClFPn9vmm6Cb0Z2gYF0g/+qZ1FCnaj1+aaJGzhqVOXGtHGWM3dLpwC7Rul6STfFD521JeqpQIDAQAB

构成:

DKIM 的实现分成两部分,上面 DNS 记录里的公钥以及发件服务器上的私钥,和邮件头里的 DKIM-Signature。

一个例子:

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774848665; x=1775453465; dara=google.com; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=o6Z+SMxBboMX1BthWuCxMAtw9xjGC/+V/mmsl1QfJoY=; b=Y1/TdHMrtWknMINw237KxL3ehZEPrp1plnQ2HEHQIvF+sHQdz+NM03KhHcIeo5KEuk iwy9u0Gy0NyCFrtFpZ56Z6l49PvugjFLDNpQc/YWXKzlgfjAz+rsKWjVaaRjMXrJnsz1 8yxfvDwN4Jz8y/pJ9dCSo6D4zkzcn9kknNVZph+oP7VG2hhF6zZODvwNBIRe/Aa5ZbHr +O4POjMMKpAO9A9WvfSzIlSe36M9ivq9X8ynqPAqsjU1TOMEgKryZWjf/JhtdinFXBfr eV/KiaFp9IgP90utdQ6FTIkrE/xbGOSaSgldJj3h8K7fU3Hl8zs0BFcQXhDeNeRanQPI jsTQ==

注意:上例中的 dara= 是 Google 的私有扩展标签,不属于 DKIM 标准(RFC 6376)。

构成:

查询方法:

dig txt 20251104._domainkey.gmail.com +short

注意,DKIM 不是挂在根 domain 上,而是挂在 <selector>._domainkey.<domain> 上,所以必须知道 selector 才能查询。selector 可以从邮件头的 DKIM-Signature 里找到。

DMARC (Domain-based Message Authentication, Reporting, and Conformance)

一句话解释

DMARC 是电子邮件安全体系中的“决策层”。它不直接执行验证,而是告诉收件服务器,如果前面的 SPF 或 DKIM 验证失败了,该如何处理这封邮件。这就提供了反馈机制(Reporting),让域名所有者知道谁在冒用自己的名义发信。

一个例子:

v=DMARC1;p=reject;sp=reject;adkim=s;aspf=s

构成:

查询方法:

dig txt _dmarc.example.com +short

位置通常是 _dmarc.<domain>

BIMI (Brand Indicators for Message Identification)

一句话解释

在 DMARC 设置为严格模式(拒绝或隔离)的前提下,BIMI 允许你在收件人的收件箱里直接显示经过认证的品牌 Logo。从而提高品牌辨识度,同时向用户证明这封邮件是 100% 真实可信的。

一个例子:

v=BIMI1;l=https://www.apple.com/bimi/v2/apple.svg;" "a=https://www.apple.com/bimi/v2/apple.pem;

构成:

配置 BIMI 记录本身很简单,但要让它生效,你的域名必须满足以下条件:

查询方法:

dig txt default._bimi.apple.com +short

位置通常是 default._bimi.<domain>


Share this post on:

Previous Post
在 Mac mini 上使用 Rapid-MLX 本地运行 Qwen 大模型
Next Post
uv 笔记