[ 标准和DMARCbis ]

测试旧版和更新版DMARC互操作性

设计一个版本化比较,冻结输入并将发现、对齐、测试、报告和最终接收器处理分开。

由EmailAuth研究团队提供 · 6 分钟阅读

[ 要点 ]

  • 使用等效的受控消息、信封、 DNS和配置输入。
  • 在解释交付差异之前诊断最早的不同协议阶段。
  • 聚合和故障报告是独立的功能,具有独立的覆盖范围和隐私限制。
在此页面上

使互操作性成为可重复的比较

接收器支持更新的声明 DMARC 不是互操作性结果。有用的问题是,在给定受控等效输入的情况下,确定的实现是否会产生预期的发现, 结盟、政策和报告行为。比较需要保留这些阶段,而不是将实验简化为两条消息是否到达收件箱。

从版本化的案例目录和指定的测试所有者开始。记录接收器软件或服务、配置、可访问的版本信息和任何未知信息。托管服务不得公开其实现版本;该限制属于矩阵。请勿使用源自产品公告或最近报告时间戳的采用声明来替换缺失的信息。

冻结可能改变结果的输入

对于每种情况,保留消息字节、信封和连接源假设、相关DNS数据、观察时间和配置文件。使两次测试运行之间的差异有意且可见。如果一条路由修改了签名消息或使用不同的信封域,则比较不再仅仅与DMARC实现行为有关。

仅使用授权域、接收者和受控非敏感消息。将虚构的设计案例与可执行装置和实际交付样品分开。在运行测试之前写下预期结果及其规范参考;否则,令人惊讶的结果可以追溯性地描述为预期的。未运行的案例应明确保持不运行,不接收从文档推断的通行证。

发件人库存也很重要。在决定实验室覆盖范围是否与生产变化相关时,包括代表性的合法途径,尤其是间接和定期服务。协议案例可以是正确的,同时忽略实际会受到影响的业务流程。

在处置前比较发现和对齐

RFC 9989第 4.10 节 描述了DNS树遍历行为,而早期的实现可以使用其支持的遗留发现方法。案例应涵盖明确的作者域政策和受控的后备安排。仅在明确指定DNS条件的情况下添加适用的子域和不存在域策略案例;表示子域的标签不足以定义预期的策略。

捕获所选记录和用于对齐的经过身份验证的标识符。然后记录所选的p、sp或np策略和测试状态。 RFC 9989第 4.4 节 定义对齐关系。通过 SPF 或者 DKIM 对于不相关的身份,不得仅仅因为接收者最终接受了该消息而将其错误地标记为成功的DMARC 。

最后将本地覆盖和实际处置记录为单独的结果。即使普通DMARC计算一致,内容过滤、路由和本地决策也可能会产生不同的传送结果。诊断最早的不同阶段,而不是将每个邮箱差异归因于策略发现。

包括测试转换而不假设等效性

一个有用的案例比较了确定的实施过程 一个记录 含有 p=reject 且t=y.在下面 RFC 9989第 4.7 节,对失败邮件的测试处理是低一级的,即隔离。无法识别的遗留实现可能遵循不同的支持逻辑。这是一个需要测量的预期兼容性问题,而不是将该记录部署为通用安全开关的原因。

将历史 pct 案例与 t 案例分开。一个曾经请求采样的计划不应该仅仅因为更新的接收器忽略旧的控制而没有语法错误而被声明为兼容。预期的业务效果、指定的机制和观察到的结果都需要有自己的字段。

将未知标签、缺失策略和格式错误的输入案例保留在受控测试范围内。不要使用生产域作为故意模糊记录的实验目标。测试设计本身应在任何操作执行之前确定相关的批准和恢复要求。

测试报告作为一项单独的功能

RFC 9990 定义聚合报告结构,包括可选的 discovery_method 和测试上下文。包含这些字段的报告可以支持对该报告的观察;省略的可选字段并不能证明遗留行为。保留原始报告和解析器配置文件,因为即使接收者正确生成信息,消费者也可能会丢失信息。

报告期可能包括政策转变,因此一个汇总并不总是单个冻结政策的记录。在使用计数来解释特定消息之前,请调整比较的时间窗口和来源证据。重复数据删除和架构兼容性属于报告测试计划,而不是隐藏在仪表板中。

故障报告是另一个独立的维度。 RFC 9991 让一代人受到接收者意愿和隐私限制。不 故障报告 不足以证明互操作性测试失败。记录报告是否被请求、支持、授权、接收和解释,而无需收集不必要的消息内容。

没有观察到结果细胞的虚构矩阵

虚构的工作表将接收器 A 命名为当前语义参考,将接收器 B 命名为旧配置文件。为p=reject;分配了相同的发明消息和DNS快照; t=y情况。 A 的预期策略列源自规范。 B的执行情况和一切实际效果还需要证据;没有任何产品被认为具有与标签相同的行为。

计划的矩阵还包括直接对齐控制、不相关的认证域案例、后备发现案例和聚合格式案例。每个执行单元仍然不运行。这使得工作表变得有用,无需制造一致性证明或接收器采用。

保留确切的发布要求

最初的证据门是:保留具有相同输入案例和完整观察结果的版本化互操作性矩阵。调试要求是:验证当前的主要规范并在起草之前保留一个工作示例。保留的虚构矩阵既不能满足实时观察,也不能满足生产准备。指定的实施证据、受控结果、中小企业审核、业务推出批准和发布授权仍然开放。本手稿未进行接收器测试、 DNS更改或消息传输。

[ 外卖 ]

互操作性声明需要确定的实现和观察到的结果,而不是公告或填写的期望栏。

[ 按角色 ]

这对您意味着什么

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

测试负责人

执行前冻结案件

看到结果后不得重建预期行为。

后续步骤

  1. 输入案例和规范参考的版本。
  2. 明确标记所有未运行和无法访问的观察结果。

接收操作员

公开相关的实现上下文

仅产品身份不足以解释协议行为。

后续步骤

  1. 记录配置和可用的软件版本证据。
  2. 将本地覆盖与普通协议计算分开。

推出审批者

将实验室覆盖范围与业务路线连接起来

正确的合成案例仍然可以忽略重要的合法发件人。

后续步骤

  1. 根据库存检查定期和间接路线。
  2. 释放前需要观察到的结果和恢复证据。

[ 常见问题解答 ]

常见问题

供应商公告是否确定特定接收器使用RFC 9989 ?

否。记录可用的实施和配置证据,并明确标记托管服务版本的不确定性。

为了公平比较需要保留哪些输入?

保留消息字节、信封、连接源假设、相关DNS状态、计时和配置文件。让故意的差异变得可见。

为什么要在最终处置之前比较发现结果?

不同的选择政策可以解释下游差异。当普通DMARC计算一致时,本地过滤还可以更改最终处理。

当前规范对于p=reject和t=y?

检测处理为隔离,比拒绝低一级。遗留实现的行为仍然需要它自己的证据。

省略的 discovery_method 是否证明报告来自旧接收器?

否。在当前聚合格式中它是可选的。单独缺席无法建立实施版本。

一份汇总报告是否可以被视为一项未更改政策的记录?

未必。政策转变可能会在报告期内产生混合的观察结果。保留时间和源上下文。

缺少故障报告是否会导致互操作性案例自动失败?

不可以。出于接收者政策和隐私原因,报告可能会受到限制或不存在。分别记录请求、支持、授权和收据。

工作表的预期单元格是实际结果吗?

不会。所有执行单元仍然不运行。仍然需要具有相同案例和完整观察结果的版本化矩阵。

[ 来源 ]

来源

  1. RFC 9989 :基于域的消息身份验证报告和一致性
  2. RFC 9990 : DMARC聚合报告
  3. RFC 9991 : DMARC故障报告

[ 词汇表 ]

词汇表

互操作性矩阵
等效输入、预期协议行为和跨实现的实际结果的版本化记录。
冻结输入
保留的消息、 DNS和配置上下文用于使比较可重现。
发现结果
在后续DMARC评估之前选择的策略记录和域上下文。
预期成果
根据相关规范和声明案例得出的预测,与测量结果不同。
未运行
显式执行状态,指示尚未收集该案例的观察结果。

企业出处

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

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

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

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

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

知识库