DKIM 记录在电子邮件验证中的作用
DKIM(域名密钥识别邮件)是现代电子邮件安全体系的核心支柱之一。它通过在 DNS 中发布公开密钥,允许接收方邮件服务器验证邮件是否确实由声称的域名发送,且在传输过程中未被篡改。
一个完整的 DKIM 验证流程依赖于 DNS 中的 TXT 记录。发送方使用私钥对邮件头进行数字签名,而接收方则通过查询发送方域名的 DNS,获取 DKIM TXT 记录中的公钥来解密并验证签名。如果 DKIM 记录配置错误,接收方将无法正确提取公钥,从而导致邮件退信或被归入垃圾邮件箱。
DKIM TXT 记录的结构与组件
DKIM 记录以特定的标签-值(tag-value)对形式存在,各标签之间用分号隔开。了解这些组件有助于管理员准确配置解析:
- v(版本):定义使用的 DKIM 版本。如果存在该标签,其值必须精确为
DKIM1,且必须作为记录的第一个标签出现。 - k(密钥类型):指定加密算法类型,目前主流支持
rsa和ed25519。 - p(公钥):这是记录的核心,包含 Base64 编码的公钥数据。如果
p的值为空,则表示该 DKIM 密钥已被撤销。 - s(服务类型):限制该密钥适用的服务类型,其值必须包含
email或*(代表所有服务)。 - h(哈希算法):指定允许的签名哈希算法。为了确保安全性,该标签必须允许
sha256,而过时的sha1则不应再被使用。
DNS TXT 记录的 255 字节限制
在配置较长的 DKIM 记录(例如 2048 位或更长的 RSA 密钥)时,管理员经常会遇到 DNS 协议的物理限制。
根据 DNS 规范,一个 TXT 记录可以包含多个字符字符串,但单个独立字符串的长度限制为 255 字节。为了解决这一限制,长记录必须被拆分为多个带引号的 TXT 分段。DNS 服务器和解析工具在读取时会将这些分段按顺序重新连接。如果分段格式不正确,或者单个分段在未拆分的情况下超过了 255 字节限制,就会导致解析失败。
常见配置错误与警告
在配置或排查 DKIM 记录时,以下是常见的格式与安全问题:
- 密钥强度不足:RSA 密钥如果低于 1024 位会被判定为无效;如果低于 2048 位,虽然可以使用,但会被警告为弱密钥,建议升级至 2048 位或更高以保证安全性。
- 格式与语法错误:例如标签缺少等号、标签名格式错误、或者必需的
p标签缺失。 - 重复标签:同一个标签(如
k或p)在记录中出现多次。 - 算法过时:继续使用已被淘汰的
sha1哈希算法。 - 分段引号异常:在区域文件中使用的引号未闭合,或在引号外部夹杂了无用文本。
本地解析与完整 DNS 验证的区别
本工具提供的是一种纯粹的本地静态分析服务。
当您将 DKIM TXT 记录内容粘贴到输入框中时,所有的解析、分段合并、标签检查以及密钥长度计算均完全在您的浏览器中进行。BroBroGo 不会上传或保存您的记录。
需要注意的是,这种本地检查与实际的 DNS 查询或邮件签名验证不同。它无法确认您的域名解析服务器是否已经生效,也无法验证特定的选择器(Selector)是否正确配置,其主要用于在您将记录发布到 DNS 之前,对文本格式和密钥合规性进行预检。
常见问题
为什么长的 DKIM 记录要拆分为引用字符串?
一个 DNS TXT 记录可以包含多个字符字符串,每个字符串限制为 255 字节。DNS 按顺序连接这些字符串,因此所有块必须保持在一个 TXT 记录内。
这个检查器识别哪些 DKIM 密钥类型?
它识别 RSA 和 Ed25519 公钥,检查它们的 Base64 形式,并报告低于 1024 位的 RSA 密钥为无效,以及低于 2048 位的密钥比推荐值弱。
干净的结果能证明 DKIM 正常工作吗?
不能。本页面仅检查你粘贴的记录文本。它不会查询 DNS,验证消息签名,确认选择器名称或证明邮件接收者可以检索记录。