DKIM:失败正文哈希未验证,但DMARC:通过

问题描述

我收到了一封电子邮件(使用Office365),其中包含以下内容

spf=pass 
dkim=fail (body hash did not verify)
dmarc=pass action=none
compauth=pass reason=100

当DKIM失败时,Dmarc是否应该不会失败?

部分邮件标题(已编辑):

Authentication-Results: spf=pass (sender IP is 185.XXX.XXX.XXX)
 smtp.mailfrom=xxxxx.com; yyyyy.com; dkim=fail (body hash did not verify)
 header.d=xxxxx.com;yyyyy.com; dmarc=pass action=none
 header.from=xxxxx.com;compauth=pass reason=100
Received-SPF: Pass (protection.outlook.com: domain of xxxxx.com designates
 185.XXX.XXX.XXX as permitted sender) receiver=protection.outlook.com;
 client-ip=185.XXX.XXX.XXX; helo=xxxxx.com;
Received: xxxxx.com (185.XXX.XXX.XXX) by
 XXXXT057.mail.protection.outlook.com (10.152.5.104) with Microsoft SMTP
 Server (version=TLS1_2,cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.3370.16 via Frontend Transport; Tue,15 Sep 2020 09:28:04 +0000
Received: from [10.244.53.49] (unkNown [62.xxx.xxx.xxx])
    (Authenticated sender: [email protected])
    by xxxxx.com (Postfix) with ESMTPSA id 958xxxxxx
    for <[email protected]>; Tue,15 Sep 2020 09:27:59 +0000 (UTC)
DKIM-Filter: OpenDKIM Filter v2.11.0 xxxxx.com 95811831E7
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xxxxx.com;
    s=default; t=1600162079;
    bh=nuM3cWrinDLZjraJCy30WYG0ePetEpsDwkYbe7tHCOs=;
    h=Date:Subject:From:To:From;
    b=jJZ91ejcq4Tu3xV+PtcT1/pgwHbUXQRxFLbilFKFiYTnBi1Zn31vzAHbPe4o40HM0
     gi+7F9TdBu47MhNwTFIvY94M+uSx1U4B9Ci9hTSDwEaDGazONyB8ER1fFmD7LPRMvV
     oXdTEACywQrrYPPb15RkSUNg6m8+6AJjdMgDrRDU=

解决方法

简短答案:

否,仅当且仅当时,DMARC才会失败:

  1. SPF SPF对齐失败,
  2. DKIM DKIM对齐失败

如果其中只有一个失败而另一个通过,则DMARC将通过。

有关DMARC故障和一般协议的更多详细信息:

从DMARC角度要牢记的一个重要细节是SPF或DKIM的失败可能意味着两件事:

  1. 基础SPF或DKIM 身份验证 失败,或
  2. 基础SPF或DKIM 对齐方式 已失败。

身份验证很明显,因为它与基础协议本身有关。

对齐方式是DMARC引入的一项附加功能,该功能检查用于SPF / DKIM身份验证的域是否与RFC5322的域部分对齐。来自域(域部分)发件人的电子邮件地址,例如senderxyz @ domain.com)。
成功的SPF / DKIM对齐意味着这些域是相同的,或者SPF / DKIM域是RFC5321From域的子域。这分别称为 strict relaxed 对齐方式,可以通过DMARC记录中的aspfadkim标签进行控制。