[ SPF ]

SPF包括循环和循环重定向

跟踪递归SPF引用,区分包含和重定向,并仅通过支持的替换证据删除循环依赖项。

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

[ 要点 ]

  • 图循环必须与可达的评估路径相关联。
  • 包含和重定向返回结果的方式不同。
  • 不要发明特殊的规范循环错误结果。
在此页面上

无需发明错误类即可识别递归

一个 SPF 当递归引用导致评估回到活动路径上已有的策略时,就会发生循环。图表可以显示直接的自引用或涉及多个领域的较长周期。这种结构观察是有价值的,但诊断还必须表明具体评估是否达到了这些参考值。较早的匹配机制可以在进入循环之前停止路径。

RFC 7208指定了递归处理和评估限制。它没有定义名为cycleerror 的单独标准结果。使用定义的SPF词汇描述观察到的结果,并解释支持它的路径。合格评估员必须适用总任期限制;无界递归不是可接受的解释。工具自己的“检测到循环”标签可以成为有用的诊断元数据,而不会成为新的规范SPF结果。 RFC 7208 ,第 4.6.4、5.2 和 6.1 节

纳入并非政策替代

Include 使用相同的客户端地址和发件人输入递归地评估另一个域。它的子通道创建一个匹配;失败、 softfail和中性会产生不匹配。错误根据指定的映射传播,并且没有映射到 permerror。在不匹配之后,父级可以在下一个机制中恢复,并恢复其先前的域。

这种区别有助于解释明显的循环。子级可能仅在某些发送者永远无法到达的较晚分支上引用回父级。该图仍然是一个维护问题,但特定的早期传递并不能证明循环分支已被执行。保留有序机制和子到父返回映射,而不是绘制未标记的箭头并声明每条消息已损坏。 RFC 7208 ,第 5.2 节

重定向具有不同的终止语义

当没有机制匹配且修饰符适用时,将应用重定向。它将结果委托给目标策略,而不是仅询问子项是否通过包含。该标准规定,当记录中存在所有机制时,无论顺序如何,都会忽略重定向。因此,用于重定向的文本搜索并不能确定边缘可以执行。

不产生任何结果的重定向目标是错误情况,而不是隐式授权或中立回退。记录扩展的目标及其政策状态。如果一个域重定向到另一个重定向回来的域,则审查必须解释沿所示路线缺乏终止匹配以及递归处理消耗的共享预算。不要仅仅因为删除了一个可见箭头就声称更正成功。 RFC 7208 ,第 6.1 节

使用活动路径工作表

对于每个建议的诊断路径,保留起始标识、连接地址、发送者参数、当前域、精确记录、有序术语和扩展目标。维护域和引用类型的活动堆栈。当目标已出现在该堆栈上时,用第一个和第二个入口点注释重复的段。单独的访问节点集可以描述发现,但它不应取代用于解释递归的活动堆栈。

包括已评估的 DNS 引发术语的运行计数,并识别任何早期语法、缺失策略或临时 DNS 错误。最早支持的终止事宜。图中其他地方发现的静态循环不应被视为已因其他原因停止的消息的原因。相反,早期通过示例不应用于消除影响另一条路由的可达循环分支。

工作表应以三个明确标记的输出之一结束:实际保留的跟踪、静态结构发现或虚构的推理示例。只有第一个可以证实执行的诊断,并且只能在其输入和时间范围内。本文提供的方法和虚构的例子,并非真实的痕迹。

虚构的诊断:相互包括

假设虚构策略 A 包括 B,并且 B 在假设客户端的任何匹配机制之前包括 A。未执行任何查询或评估器执行。活动路径是 A,然后是 B,然后再次是 A。重复域揭示了这些假设下的可达循环。每个评估的内容都会对共享的计期预算做出贡献;当前域更改时,递归不会重置容差。

如果报告“第二次访问始终是强制循环错误”,则会产生误导。标准的结果词汇和限制必须保持完整。提议的评估器可以尽早检测递归以进行诊断,但任何有关其实际返回结果的声明都需要其实现证据。相反,手稿解释说,如果没有所需的限制,则不允许假设路径递归。

现在,为不同的假设发送者将早期匹配的 ip4 机制添加到 B。该路径可以在返回到 A 之前通过。结构循环仍然存在于策略图中,但该发送者没有执行它。有用的修复审查会考虑失败路径和合法的早期匹配路由,因此修复不会意外删除仍然重要的授权。

在重写记录之前修复所有权

循环引用通常跨越行政边界。确定谁控制每条记录以及引入这种关系的原因。不应仅仅因为名称看起来相关而将客户策略替换为供应商依赖性。要求提供者支持的授权目标或通过批准的支持流程确认的更正;本手稿既没有联系供应商,也没有提出通用的更换价值。

支持的最小修复可能是删除过时的相互依赖性、纠正错误的目标或提供商维护的策略更改。根据所有权和合法发件人证据进行选择,而不仅仅是减少图边缘。保留之前的状态和预期的授权集,并记录需求仍未解决的任何服务。

验收需要周期说明和最低限度的提供商确认的更换评估。如果建议的记录不再授权所需的路线,则没有循环的新图表是不够的。比较单独批准的变更前后的预期路线、错误处理和预算。避免声称各地的DNS缓存会立即反映更正。

未经证实的证据和出版界限

目录的原始证据要求仍然开放:显示周期和最低限度的供应商确认的更换评估。对于虚构的示例,不存在提供商确认、生产DNS编辑、外部查询或执行结果。他们解释如何推理,而不是解释指定供应商当前的行为方式。

所有六个发布大门均保持开放,包括原始证据、人工审查、来源适用性、生产路线、视觉可及性和所有者发布。稍后的可操作文章应保留相关的源快照、变更批准和有限验证证据。在此之前,适当的结论是建议的诊断和修复工作流程,而不是已解决的事件或保证每个接收器都会报告相同的特定于实现的细节。

[ 外卖 ]

在进行真正的更改之前,显示可达到的周期并获得提供商确认的最低限度的更换。

[ 按角色 ]

这对您意味着什么

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

DNS管理员

确定控制边界

一个周期可以跨越客户和供应商记录。

后续步骤

  1. 保留每个保单所有者。
  2. 避免猜测替换域。

供应商联络

请求支持的更正

最小限度的编辑必须保留合法授权。

后续步骤

  1. 获取提供商确认的值。
  2. 记录受影响的路线。

评审员 评审员

准确解释递归

诊断标签不得发明标准结果代码。

后续步骤

  1. 显示活动路径。
  2. 验证预算和终止处理。

[ 常见问题解答 ]

常见问题

SPF是否定义了循环误差?

否。使用定义的SPF结果并通过适用的评估规则解释递归。

RFC 7208 :发件人策略框架

每个图表周期是否针对每个发送者执行?

不可以。较早的匹配可以在循环分支之前停止计算。

RFC 7208 :发件人策略框架

递归会重置期限预算吗?

否。总体评估限制适用于整个递归处理。

RFC 7208 :发件人策略框架

include 相当于重定向吗?

否。 Include 将子结果映射到匹配;根据自己的规则重定向代表评估。

RFC 7208 :发件人策略框架

如果all 和redirect 都存在怎么办?

当存在 all 机制时,无论顺序如何,重定向都会被忽略。

RFC 7208 :发件人策略框架

丢失的重定向目标能否安全地授权邮件?

不会。在重定向处理下,不产生任何结果的目标会产生permerror 。

RFC 7208 :发件人策略框架

供应商更换是否得到验证?

不需要。提供商确认的更换评估仍然需要且开放。

循环工作表应该保留什么?

主动递归路径、有序引用、计数、输入和精确的终止证据。

[ 来源 ]

来源

  1. RFC 7208 :发件人策略框架

    部分 §2.3 HELO身份 · §2.4 来自身份的邮件 · §3.2 多个DNS记录 · §3.3 单个DNS记录中的多个字符串 · §4.5 选择记录 · §4.6 记录评估 · §4.6.4 DNS查找限制 · §5.1 “全部” · §5.2 “包含” · §5.3 “a” · §5.7 “存在” · §6修饰符定义 · §6.1 重定向:重定向查询 · §8 结果处理 · §8.4 失败 · §8.7 权限错误 · §10 对基础设施的影响

[ 词汇表 ]

词汇表

活动路径
当前嵌套的策略引用用于识别重复的递归段。
包括映射
子SPF结果到匹配、不匹配或错误的标准转换。

RFC 7208 :发件人策略框架

重定向
用于在指定条件适用时委托策略评估的修饰符。

RFC 7208 :发件人策略框架

结构循环
图表中的重复引用,与执行的失败路径的证明不同。

企业出处

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

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

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

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

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

知识库