作者按:本文为 Proton Mail 系列第31篇,探讨邮件身份验证体系与防伪链。
你收到一封邮件,发件人显示为「boss@yourcompany.com」,语气紧急让你转账。点击发件人名字,邮箱地址看起来完全正确。但你有没有想过——这个地址可以被任何人伪造?
SMTP 协议天然不验证发件人身份。任何人只需要一台能联网的电脑,用 Python 的 smtplib 库,用 5 行代码就可以把发件人改成任意地址:
import smtplib
msg = MIMEText('内容')
msg['From'] = 'boss@yourcompany.com' # 随便填
msg['To'] = 'victim@target.com'
# 发出去,对方邮箱会显示来自 boss@yourcompany.com
这不是漏洞,这是 SMTP 协议设计时的默认行为。传统邮件服务商靠什么弥补?DKIM、SPF。但它们验证的是「邮件服务器是否有权发送这个域名」,而不是「发件人是否真的是这个人」。
| 验证层 | 验证什么 | 传统邮箱 | Proton Mail |
|---|---|---|---|
| SPF | 发送服务器是否有权使用该域名 | ✅ 有 | ✅ 有 |
| DKIM | 邮件内容是否被发送服务器篡改 | ✅ 有 | ✅ 有 |
| PGP 指纹/WKD | 发件人是否真的持有对应私钥 | ❌ 无 | ✅ 有 |
| E2EE 内容加密 | 邮件内容是否被服务器/第三方读取 | ❌ 无(明文) | ✅ 有 |
前两层(SPF/DKIM)解决的是「邮件在传输途中有没有被改」;第三层(PGP 指纹)解决的是「这封邮件是不是真的是那个人发的」——这才是防冒充的核心。
Proton Mail 基于 OpenPGP 标准,每个用户的公钥有一个唯一的指纹(fingerprint),类似于 RSA-4096 位密钥的「哈希摘要」。
当你第一次给某人发加密邮件,Proton Mail 会:
这一步的意义极其重大:即使攻击者伪造了发件人邮箱地址,他也无法伪造对应的 PGP 私钥——因为私钥只在收件人手里。而没有私钥,他就无法生成能被公钥验证的签名。
传统 PGP 需要手动交换公钥,非常繁琐。WKD(Web Key Directory)解决了这个问题:
openpgpkey.yourdomain.com 记录www.yourdomain.com/.well-known/openpgpkey/ 查询这让加密邮件的易用性大幅提升——你不需要手动交换密钥,系统自动搞定。
这四层环环相扣:传统邮箱最多有第一层;主流加密邮箱有第一+四层;Proton Mail 有全部四层。
| 功能 | Gmail | QQ邮箱 | Outlook | Proton Mail |
|---|---|---|---|---|
| SPF 验证 | ✅ | ✅ | ✅ | ✅ |
| DKIM 签名 | ✅ | ✅ | ✅ | ✅ |
| PGP 指纹验证 | ❌ | ❌ | ❌ | ✅ |
| WKD 自动公钥发现 | ❌ | ❌ | ❌ | ✅ |
| 端到端加密 | ❌(仅传输加密) | ❌(明文存储) | ❌(传输加密) | ✅ |
| 防发件人伪造 | 部分(DMARC) | 弱 | 部分(DMARC) | ✅(最强) |
步骤:
4A3B B2F9 1D7A F8C3 E2B1 0948 7FC9 00D4 8F7E 2C1B)这个过程只需要做一次,但换来的保护是终身的——即使有人在 DNS 层面做了劫持,他也无法伪造对应的私钥来通过 PGP 签名验证。
大多数人对邮件隐私的理解停留在「内容加密」层面。但真正的邮件安全,必须同时解决两个问题:内容保密(不被读取)和身份可信(不被冒充)。
Proton Mail 的发件人身份验证链,是目前民用邮件体系中完整性最高的方案之一。PGP 指纹 + WKD 自动公钥发现 + E2EE 三位一体,让「冒充发件人」这个最常见的攻击手段在 Proton Mail 生态中几乎失效。
现在就注册 Proton Mail,用上这套完整的邮件身份验证体系:
👉 点击这里注册 Proton Mail(使用我的邀请链接)
邀请链接:https://pr.tn/ref/KMW8V941
注册后即可获得额外存储空间和高级功能,一起加入全球 7000万用户的隐私保护阵营。
本文为 Proton Mail 系列第31篇,每日一篇,从不同角度深度解析隐私邮箱的价值与使用方法。