opendkim-genkey 中的“--[no]subdomains”选项是什么意思?

opendkim-genkey 中的“--[no]subdomains”选项是什么意思?

根据文档--nosubdomains“不允许使用此密钥对子域名进行签名”。但是,我们不是无论如何都需要为子域名创建单独的 DKIM 记录吗?

如果我理解错误,请纠正我。将域(d 字段)设置为组织的电子邮件签名和一个选择器(签名中的字段 s)将用于查询密钥,以通过将数字签名(签名中的字段 b)与规范化正文进行比较来验证数字签名。因此,整个过程到目前为止还没有以任何形式考虑子域,只有当 d 字段中提到子域而不是组织域或签名中存在 i 字段时,子域才能出现。在前一种情况下,子域和组织域需要有单独的记录,而在后一种情况下,如果在 TXT 记录中使用 t=s,则验证器应将签名字段 i 的域中的值与 d 字段中的值进行比较。但在任何一种情况下,都可以使用相同的密钥进行验证。

答案1

默认情况下,所有子域都会继承 DKIM,具体定义见RFC 6376, 3.10

按父域签名

在某些情况下,域最好代表其任何子域应用签名,而无需在每个子域中维护单独的选择器(密钥记录)。默认情况下,与密钥记录相对应的私钥可用于为它们所在域的任何子域签名消息;例如,域 example.com 的密钥记录可用于验证 AUID(签名的“ i=”标签) 为 的消息sub.example.com,甚至sub1.sub2.example.com

为了在不期望的情况下限制此类密钥的功能,s可以在t=密钥记录的“ ”标签中设置“ ”标志,以限制 AUID 域的有效性。如果引用的密钥记录包含“ s”标志作为“ ”标签的一部分t=,则 AUID 的域(“ i=”标志)必须与 SDID(d=)域的域相同。如果此标志不存在,则 AUID 的域必须与 SDID 相同,或者是 SDID 的子域。

作为opendkim-genkey还创建 DNS 密钥记录它具有设置标志的能力t=s

−S( −−[no]subdomains) 禁止使用此密钥对子域进行签名。默认情况下,将生成密钥记录,以便告知验证者允许子域签名。请注意,出于向后兼容的原因, 的−S含义与 相同−−nosubdomains

这意味着:

  • 如果没有,也t=s可以使用它d=example.com;s=selector来验证来自子域的消息([email protected])。
  • t=s标志被设置时,只能签名

实际上,DKIM 并不关心签名中的 ID 是否与From标头匹配。因此,它与 DMARC 一起使用,后者具有放松模式RFC 7489, 3.1.1) 其中d=example.com和被认为是From: <[email protected]>对齐因为他们分享的是同一个组织域3.2)。

OpenDKIM 似乎没有实现i=,可能是因为米尔特没有关于用户的可信赖信息来验证。不实现 就实现确实local-part有点奇怪。t=si=

相关内容