[ DNS和域名 ]

DNS控制面板中的TXT记录长度和标签长度错误

在缩短或分割身份验证值之前区分TXT字符串限制、 DNS标签限制和记录边界。

由EmailAuth研究团队提供

[ 要点 ]

  • 测量每个不同DNS结构的编码八位字节。
  • 在一条记录中拆分TXT字符串,而无需创建多个SPF策略。
  • 保留预期的密钥和策略字节;测试实际发布的边界。
在此页面上

DNS表单的长度错误可能涉及多种不同的限制。长TXT值、单个名称标签和整个DNS名称的测量方式不同。缩短一个 DKIM 钥匙或拆分一把 SPF 将策略分成单独的记录可能会将输入问题转变为身份验证失败。

识别哪个物体太长

参考: RFC 1035 §2.3.4, RFC 1035 §3.3, RFC 1035 §3.3.14, RFC 2181 §11.

RFC 1035将DNS标签限制为 63 个八位字节,将完整有线格式名称限制为 255 个八位字节,包括其长度字段和终止根标签。表示标点符号和 Unicode 输入可能会掩盖这些测量结果。计算编码的DNS形式,而不仅仅是浏览器文本框显示的内容。不要盲目地将主机名字符规则应用于包含下划线的服务标签。

TXT RDATA 由一个或多个字符串组成,每个字符串的长度为 1 个八位位组,因此最多为 255 个八位位组。这并不是整个 255 个字符的总括限制。 TXT记录。提供商可以通过在其中存储多个字符串来支持更长的记录,但须遵守DNS消息和服务限制。

拆分字符串而不拆分策略

参考: RFC 7208 §3.3, RFC 7208 §4.5, RFC 6376 §3.6.2.1, RFC 6376 §3.6.2.2.

对于SPF ,一条TXT记录中的字符串会连接在一起,不带额外的空格。在分割边界处保留所需的空间。夹具 "v=spf1 ip4:192.0.2.10" " -all" 重建一项政策。两个单独的TXT资源记录,每个记录均以开头 v=spf1 不是受支持的扩展方式; SPF选择多个策略并返回永久错误。

DKIM密钥数据还需要保留其预期值。使用提供商记录的长 TXT 输入方法,而不是手动截断。请勿分割较长的 选择器 通过插入点来添加标签:这会更改验证程序查询的DNS名称,除非实际的选择器配置一致更改。

运行以边界为中心的装置

参考: RFC 1035 §2.3.4, RFC 1035 §3.3.

创建正好 255 ASCII 的字符串 a 八位位组和 256 ASCII a 八位位组。单个DNS字符串可以对第一个字符串进行编码,但不能对第二个字符串进行编码。 一个记录 包含两个 128 个八位位组的字符串,每个字符串都是不同的有效字符串结构,总共 256 个数据八位位组。这些标记不是身份验证策略。

对于名称,将 63 八位字节 ASCII 标签与 64 八位字节标签进行比较,然后独立测试完整的线路名称长度。保留每个被拒绝案例的验证错误。在一个单独的测试区,发布一个 SPF记录 带有两个字符串,然后是故意无效的双策略记录变体。在更正的单记录发布之前和之后捕获权威 RR 边界。预期的应用结果是单策略处理与多策略处理 permerror.

这些装置指定边界行为。本地编码测试可以演示长度,但无法证明DNS提供商接受表单、活动区域发布预期的 RRset 或接收器验证消息。这些执行结果必须单独捕获。

验证生成的线路数据

参考: RFC 7208 §3.3, RFC 6376 §3.6.2.2.

查询所有活动权限的确切所有者和类型。使用保留每个资源记录及其字符串列表的DNS解析器。根据使用协议重建值,而不是连接每个输出行。然后比较相关的递归答案并测试邮件流。

如果表单仍然拒绝有效数据,请捕获确切的错误并查阅其当前特定于提供商的限制。请勿添加广泛的SPF授权、削弱密钥或创建其他策略作为权宜之计。正确的修复会保留预期的字节和DNS结构。

执行的解析器和 RRset 证据

2026 年 11 月 7 日保留的历史捕获(已检查但未重新运行本次审查)记录 dnspython 解析器接受 63 八位字节标签和 255 八位字节线路名称,并拒绝相应的 64 和 256 八位字节情况(长度例外)。实际的 UDP 权限捕获将之前的状态显示为两个单独的SPF TXT记录,然后将更正后的状态显示为包含两个有序字符串的一个TXT记录。环回转发器返回相同的边界。这是本地控制的出版物,而不是提供商面板的更改。两种策略情况下的SPF permerror仍然是源定义的预期结果,因为没有执行SPF评估器。边界和记录捕获证据不应被误认为是现场交付证据。

保持证据范围明确

存档的解析器和DNS捕获保持不变。这次审查检查他们记录的结果并单独计算本地字节边界;它不会重复 UDP 发布、运行SPF评估程序或测试提供程序表单。两条记录的SPF结果是规范预期,而不是捕获的身份验证执行。

[ 外卖 ]

测量每个不同DNS结构的编码八位字节。在一条记录中拆分TXT字符串,而无需创建多个SPF策略。保留预期的密钥和策略字节;测试实际发布的边界。

[ 按角色 ]

这对您意味着什么

选择您的角色以执行后续实际步骤。

IT/邮件管理员

测量正确的单位

标签、 TXT字符串和整个记录具有不同的边界。

后续步骤

  1. 分别测量编码标签和字符串。
  2. 保留单记录边界。
  3. 捕获前后的权威数据。

CISO / SecOps

保留身份验证语义

格式化修复必须保留预期的身份、密钥和策略字节。

后续步骤

  1. 拒绝弱化的钥匙和广泛的政策捷径。
  2. 检查选择器身份的更改。
  3. 将本地检查与现场证据分开。

创始人/非技术人员

避免破坏性的捷径

输入限制并不能证明弱化密钥或扩大​​授权是合理的。

后续步骤

  1. 在解决方法之前需要进行结构诊断。
  2. 记录提供商的限制。
  3. 保护预期的身份验证设计。

[ 常见问题解答 ]

常见问题

整个TXT记录是否限制为 255 个八位位组?

不可以。这是TXT数据中每个字符串的限制。

RFC 1035 §3.3 RFC 1035 §3.3.14

两根弦可以写一张唱片吗?

是的。保留它们的顺序和应用程序的串联规则。

RFC 7208 §3.3 RFC 6376 §3.6.2.2

两条SPF记录可以延长一份保单吗?

否。多个选定的SPF策略会导致permerror 。

RFC 7208 §4.5

标签长度和TXT长度限制相同吗?

不可以。DNS DNS仅限于 63 个八位位组;一个TXT字符串到 255。

RFC 1035 §2.3.4 RFC 1035 §3.3

计算显示的 Unicode 字符数就足够了吗?

不可以。限制适用于编码的八位字节和DNS表示。

RFC 1035 §2.3.4

我可以缩短DKIM公钥以适应吗?

不会。这会更改或损坏密钥材料。

RFC 6376 §3.6.1

添加点可以安全地修复长选择器吗?

不是靠它自己。它更改查询的DNS名称。

RFC 6376 §3.6.2.1

有什么证据证明修复过?

正确的权威 RR 边界和重构字节,然后进行相关的递归和邮件测试。

[ 来源 ]

来源

  1. RFC 1035

    部分 §2.3.4 · §3.3 · §3.3.14

  2. RFC 2181

    部分 §11

  3. RFC 7208

    部分 §3.3 · §4.5

  4. RFC 6376

    部分 §3.6.1 · §3.6.2.1 · §3.6.2.2

[ 词汇表 ]

词汇表

DNS标签
DNS名称的组成部分,在普通标签格式中仅限于 63 个八位字节。

RFC 1035 §2.3.4

TXT字符串
最多包含 255 个数据八位字节的长度分隔字符串;一条TXT记录包含一个或多个字符串。

RFC 1035 §3.3 RFC 1035 §3.3.14

企业出处

为什么顶级金融机构和政府 退役了他们的电子邮件安全仪表板。

传统的电子邮件身份验证平台会向您出售仪表板并要求您的工程师来完成这项工作。在高风险环境中,手动监督意味着延迟执行、配置漂移和不受监控的影子域。

EmailAuth是代理电子邮件来源平台。 我们的代理人强制执行 p=reject,保持第三方发件人一致并将您的域名移至完整状态 RFC 9989 合规性、新的DMARC标准,以及人机交互审核能力。

政府 大型企业 一级金融机构

SaaS · 专用租赁 · 气隙本地部署 · BYOK 加密

知识库