目标邮件服务器如何知道 DKIM 选择器

目标邮件服务器如何知道 DKIM 选择器

可以在 DKIM DNS 记录名称中设置“子域”。此“子域”称为选择器。它允许同一域拥有多个 DKIM 密钥。

DKIM 验证期间有一些我不明白的事情。

假设 Bob 向 Alice 发送了一封邮件。Alice 邮件服务器如何知道这个选择器?此选择器未显示在 DMARC 记录中(以及其他地方),那么目标邮件服务器如何知道选择器名称?

谢谢

答案1

它包含在 DKIM 标头中。

例子:

DKIM 签名:v=1;a=rsa-sha256;c=宽松/宽松;d=示例.com; s=默认

这对应于以下 DNS 记录下的 txt 记录:

默认._域名密钥。示例.com

答案2

如果您有电子邮件,您可以查看该s=字段。如果没有,或者电子邮件太旧以至于选择器不再存在,您可以在注册.证明.电子邮件,其中包含超过 900,000 个唯一域选择器对。如果有人之前贡献过该选择器,您可以获取该域的历史 DKIM 键值。您可以实时访问 DNS,但对于过去的电子邮件,您需要访问这样的历史注册表。

答案3

电子邮件消息本身中的 DKIM-Signature 标头字段包含用作签名/标头的强制部分的选择器(以及 d= 域):

RFC 6376

s= The selector subdividing the namespace for the "d=" (domain) tag
  (plain-text; REQUIRED).

  Internationalized selector names MUST be encoded as A-labels, as
  described in Section 2.3 of [RFC5890].

  ABNF:

  sig-s-tag    = %x73 [FWS] "=" [FWS] selector
  ... 
    INFORMATIVE EXAMPLE of a signature header field spread across
    multiple continuation lines:

   DKIM-Signature: v=1; a=rsa-sha256; d=example.net; s=brisbane;
      c=simple; q=dns/txt; [email protected];
      t=1117574938; x=1118006938;
      h=from:to:subject:date;
      z=From:[email protected]|To:[email protected]|
       Subject:demo=20run|Date:July=205,=202005=203:44:08=20PM=20-0700;
      bh=MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=;
      b=dzdVyOfAKCdLXdJOc9G2q8LoXSlEniSbav+yuU4zGeeruD00lszZVoG4ZHRNiYzR

对应于brisbane._domainkey.example.netDNS 记录

答案4

选择器位于DKIM-Signature签名者添加到电子邮件的标题上,与签名域标识符 (SDID) 一起。

选择器位于s=标签上,与标签中的域一起d=,您拥有在 DNS 上查找记录所需的一切。

此选择器未显示在 DMARC 记录中

选择器应该出现在<record><auth_results><dkim><selector>...</selector></dkim></auth_results></record>元素中。虽然我不明白为什么报告服务器会忽略选择器,但它的存在并不是一个严格的要求。

相关内容