[ SPF ]

为什么SPF -all本身不能保证接收者拒绝

了解SPF -all断言、评估何时达到,以及为什么接收者的最终处置需要单独的证据。

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

[ 要点 ]

  • reach -all会产生SPF失败,而不是通用传送命令。
  • 包含的策略失败不会自动使其父策略失败。
  • 接收器配置和DMARC对齐需要单独的证据。
在此页面上

从评估的身份开始

“我们发布了-all ,因此接收者必须拒绝冒充”这一声明结合了三个不同的决定。域发布授权策略,评估者获取 SPF 连接地址和身份的结果,接收者决定如何处理该消息。将这些决策分开可以使故障排除更加准确,并防止配置更改成为不受支持的安全承诺。

SPF评估 HELO身份 或 邮件来自 身份,而不仅仅是消息“发件人”字段中显示的地址。在解释任何策略之前,记录连接地址、身份类型、评估域和时间。提供商的信封域的结果不会自动描述可见的品牌域。对于空反向路径,还需要捕获身份处理,而不是从屏幕截图中猜测。 RFC 7208 ,第 2.3 和 2.4 节

all 机制实际上做了什么

all 机制始终匹配。使用减号限定符,达到-all收益都会失败。该说法是精确的,但有条件:较早的匹配机制可以首先完成评估,并且错误可以在到达终端机制之前中断评估。将终端令牌称为“硬拒绝开关”隐藏了这两个条件。它的含义是授权断言,而不是在每个收件人的邮件系统内执行的命令。

机制按其指定的顺序进行处理。允许的地址可能与早期的 ip4 或 ip6 机制匹配,并在未到达-all情况下生成通过。包含也可能匹配。相反,无效的政策或耗尽的评估预算可能会产生 permerror 而不是有人期望通过读取最终令牌而失败。记录的最后一个字符不能替换实际的评估路径。 RFC 7208 ,第 4.6、5.1 和 8 节

将子结果与父结果分开

包含是一种递归检查,其结果被映射到父机制中。它不是粘贴到父策略中的文本。子传递使包含匹配;子失败、 softfail或中性使其不匹配。然后父级继续其下一个适用的机制。一个孩子 temperror 或permerror作为错误传播,而子 none 被视为包含的permerror 。

当供应商以-all结束其自己的策略时,这一点很重要。未经该供应商授权的发件人不会自动使客户的整个保单失效。另一个授权服务稍后可能会出现在父记录中。在诊断工作表中单独保留子结果和父延续。否则,合法的多服务设计可能会被错误地描述为矛盾或损坏。 RFC 7208 ,第 5.2 节

接收者策略是另一个证据层

RFC 7208将失败描述为显式声明,表明客户端无权使用给定身份中的域。其结果处理指南将处置留给接收者的策略。接收者可以在SMTP期间拒绝、接受并标记,或者将结果与其他信息一起使用。仅靠公共DNS无法证明确切的操作。接受报告并不表明已发布的机制被忽略;它可能反映了评估的身份、较早的匹配或接收者选择的治疗方法。

不要把这种区别变成不加区别地削弱SPF建议。准确的政策仍然很重要。首先清点合法路由,包括转发行为和第三方发送,然后将授权不匹配与特定接收者选择的处理方式区分开来。关于的声明 DMARC 此外还需要自己的身份认同和政策证据。 SPF失败本身并不是完整的DMARC诊断。 RFC 7208 ,第 8.4 节和第 10 节

拟议审查的验收工作表

每个授权消息示例创建一行,而不是每个屏幕截图创建一行。捕获路由所有者、连接地址、 HELO名称、信封发件人、评估的域、准确的 TXT记录 设置、检索时间、解析器版本和最终SPF结果。附上有序机制路径并解释评估停止的原因。保留接收者的 Authentication-Results 信任边界和来源与发送者提供的任何不可信标头分开。

添加第二部分进行处理: SMTP响应(如果可用)、接收系统、时间戳、队列或事件标识符,以及证据是否表明接受、拒绝、隔离或仅仅是应用程序状态。编辑不必要的收件人和消息内容。发送应用程序的“已送达”状态不会自动建立收件箱放置。将不可用的字段标记为不可用,而不是根据期望填充它们。

审查仅通过实际证明的主张。完整的策略跟踪可以支持SPF结论,同时接收器处理仍未解决。 SMTP拒绝可以确定特定事务的结果,而无需证明所有接收方的行为都相同。独立记录这两个验收决定,并保留缺失证据的所有者。

虚构诊断:两业务一终端故障

考虑一个虚构的组织,其父策略先检查新闻通讯供应商,然后检查交易供应商,然后-all 。对于此示例,未查询任何DNS ,也未发送任何消息。时事通讯子项返回交易地址失败。正确的下一步是恢复父级,而不是声明最终失败。如果事务性包含返回通过,则普通正包含匹配且父项返回通过。

现在想象一个与供应商都不匹配的不同地址。如果没有发生较早的错误,则评估达到-all并返回失败。特定接收者是否拒绝该消息是一个单独的观察。说明“供应商-all阻止了我们”的支持说明在第一种情况下为时过早,在第二种情况下则不完整。有用的修正是分别标记子结果、父结果和接收者动作。

第三个假设案例在评估第一个供应商时出现临时DNS故障。不能通过直接跳到最后的-all来诊断该策略。保留错误路径并避免仅仅为了强制采用首选解释而更改记录。这些例子仅说明推理;它们不是收到的消息证据或测试结果。

出版和运营保留

本手稿并未建立任何真实发送者或接收者的行为。在发布操作诊断之前,通过授权工作流程获取目录所需的特定结果示例及其DNS或消息证据。合格的审核者应该检查完整的路径并确认接收者证据属于同一交易和时间窗口。

将变更与诊断分开。删除合法服务、更改限定符或添加广泛授权可能会影响真实邮件,需要自行审核。该草案的原始证据、人类专业知识、来源适用性、生产路线、视觉可达性和所有者发布大门仍然开放。一个虚构的例子并不能替代这些门,即使它的逻​​辑遵循标准。

[ 外卖 ]

在将拒绝归因于-all之前,解释评估的身份和SPF结果。

[ 按角色 ]

这对您意味着什么

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

DNS管理员

发布精准授权

终端限定符不能替代发送者库存。

后续步骤

  1. 识别每条合法路线。
  2. 在更改之前查看完整的政策。

邮件操作员

追踪结果及处置

身份验证结果和交付处理是不同的观察结果。

后续步骤

  1. 保留身份和连接地址。
  2. 将SMTP证据链接到同一事务。

安全审查员

约束保护主张

SPF并不是普遍排斥或完全模仿保护。

后续步骤

  1. 单独检查对齐情况。
  2. 拒绝不受支持的接收方范围的保证。

[ 常见问题解答 ]

常见问题

-all是否会强制每个接收者拒绝?

不。A 达到-all产量SPF失败;接收方应用自己的处置政策。

RFC 7208 :发件人策略框架

可见的发件人地址是否定义SPF身份?

不是靠它自己。 HELO和 MAIL FROM 身份在SPF下进行评估。

RFC 7208 :发件人策略框架

早期的机制可以阻止到达-all吗?

是的。匹配机制可以首先终止评估。

RFC 7208 :发件人策略框架

孩子-all失败了,父母也包括在内吗?

子级失败会导致包含不匹配,从而允许父级评估继续进行。

RFC 7208 :发件人策略框架

缺少包含目标是否意味着失败?

递归的 none 结果映射到包含的permerror 。

RFC 7208 :发件人策略框架

permerror等同于失败吗?

不会。它们表现出不同的SPF结果并需要不同的诊断。

RFC 7208 :发件人策略框架

本文是否对接收器进行了测试?

否。所有示例均为虚构,未执行DNS或SMTP测试。

还需要什么证据?

具有支持DNS或消息证据的特定结果示例仍然开放。

[ 来源 ]

来源

  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 :发件人策略框架

父延续
不匹配包含后恢复封闭策略。

RFC 7208 :发件人策略框架

处置证据
对特定接收者如何处理交易的观察。

企业出处

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

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

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

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

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

知识库