为什么 DMARC 会出现 DKIM 故障?

为什么 DMARC 会出现 DKIM 故障?

我已为我的服务器启用 DMARC 反馈。我收到了以下消息,在本例中来自 Google,但我也收到了来自 att.net、Microsoft 和其他公司的类似消息:

Email Provider: google.com
Report Id: 7844382628123659573
Report Start Date:  2022-08-25 20:00:00
Report End Date:  2022-08-26 19:59:59
Domain: mercureytech.com
<adkim> DKIM Alignment: r Relaxed
<aspf> SPF Alignment: r Relaxed
<p> Public Key: none
<sp> Subdomain Policy: none
<pct> Policy Applies: 100%
Source IP: 24.142.169.11
Email Volume: 1
Policy Disposition: none
DKIM Disposition: fail
SPF Disposition: pass
Header From: mercureytech.com 
DKIM Auth. Domain: mercureytech.com
DKIM Results: fail
DKIM Selector: mercmail
SPF Auth. Domain: mercureytech.com

请注意“DKIM 处置:失败”和“DKIM 结果:失败”。为什么我会收到此信息?第三方工具(如 dmarcanalyzer.com 等)指示有效的 DKIM 记录,如果我检查来自此域的标头,它会显示“dkim=pass(1024 位密钥)header.d=mercureytech.com[电子邮件保护]

那么为什么这些服务提供商的 DMARC 报告中会报告 DKIM 失败?

9月12日

好的,我收集了一些信息。我检查了您的 dnsviz.net,标记为“错误”的通知显示“响应的 RCODE 无效...”,列出的服务器是 Network Solutions 的名称服务器。我查找了这个错误,发现“这表明 DNS 服务器在尝试在 DNS 中查找域时返回了‘SERVFAIL’错误。”

不知道我能做些什么。域名 mercureytech.com 在 Network Solutions 注册,错误中指定的服务器 (162.159.26.132) 是 Network Solutions 的名称服务器 ns23.worldnic.com。

截至今天早上,我收到了一份来自昨天发送的电子邮件的最新 Gmail DMARC 报告:

Email Provider: google.com
Report Id: 6687317408563956953
Report Start Date:  2022-09-10 20:00:00
Report End Date:  2022-09-11 19:59:59
Domain: mercureytech.com
<adkim> DKIM Alignment: r Relaxed
<aspf> SPF Alignment: r Relaxed
<p> Public Key: none
<sp> Subdomain Policy: none
<pct> Policy Applies: 100%
Source IP: 24.142.169.11
Email Volume: 30
Policy Disposition: none
DKIM Disposition: fail
SPF Disposition: pass
Header From: mercureytech.com 
DKIM Auth. Domain: horeb-wright3.org
DKIM Results: fail
DKIM Selector: horeb
SPF Auth. Domain: mercureytech.com

我不知道 Gmail 上收到的邮件头,但我的服务器也收到了这封邮件,我想邮件头应该类似。如果没有,我可以安排将邮件发送到我拥有的 Gmail 帐户。以下是我在邮件服务器上收到的这封邮件的邮件头:

From [email protected]  Sun Sep 11 06:00:07 2022
Return-Path: <[email protected]>
Received: from mail.mercureytech.com (rrcs-24-142-169-11.mail.mercureytech.com [24.142.169.11] (may be forged))
        by server.novatec-inc.com (8.15.2/8.15.2) with ESMTPS id 28BA05hp008998
        (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO)
        for <[email protected]>; Sun, 11 Sep 2022 06:00:05 -0400
Authentication-Results: server.novatec-inc.com;
        dkim=fail reason="signature verification failed" (1024-bit key) header.d=horeb-wright3.org [email protected] header.b=oxKZuL5k
Received: from mail.mercureytech.com (localhost [127.0.0.1])
        by mail.mercureytech.com (8.17.1/8.15.2) with ESMTP id 28BA025T020199
        for <[email protected]>; Sun, 11 Sep 2022 06:00:04 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=horeb-wright3.org;
        s=horeb; t=1662890404;
        bh=mavbdSeWGydRvJ1XB+84YVwYKuor+lsP2JEciknt0Yk=;
        h=Date:From:To:Subject;
        b=oxKZuL5k1zAhr9bf7mKR6gzH2/a9jA/loJcw+6qgiGEsmCFAydHtrAZdoOzruJqxH
         oV3qMBvs4jHa58pPWrfXfAAF+UCGZ85Jx+J0PAnDapryWT8LltpA6yuaRgCGsVhY1F
         tlv2p+cS/LyJWRGBZfYaNzbKCJUm/C4EzXOpvL80=
Received: (from root@localhost)
        by mail.mercureytech.com (8.17.1/8.17.1/Submit) id 28BA01H9020010
        for [email protected]; Sun, 11 Sep 2022 06:00:01 -0400

它说 dkim 身份验证失败。我会调查一下,因为我之前以为这是可行的。

答案1

TL,DR:DKIM 检查失败,因为电子邮件签名未经验证。

长答案:

看看Authentication-Results标题:

server.novatec-inc.com;
   dkim=fail reason="signature verification failed" (1024-bit key)
   header.d=horeb-wright3.org [email protected] header.b=oxKZuL5k

此处的“签名验证失败”表示 DKIM 失败,因为签名未使用从 DNS 加载的公钥进行验证。公钥是使用 DKIM 选择器 ( s=) 标签在DKIM 签名标头)和签名域(d=)。更具体地说,密钥是从 处的 DKIM 记录加载的horeb._domainkey.horeb-wright3.org

因此,要解决这个问题,您需要确保发送电子邮件的任何服务器都使用与 DNS 上发布的公钥相对应的私钥。

注意:即使 DKIM 检查失败,DMARC 也会不是,因为 SPF 通过了。

相关内容