我正在使用OpenDKIM来验证传入我的邮件服务器的签名邮件,并将其用作垃圾邮件附件(如果dkim被破坏,邮件就会落入垃圾邮件中)。然而,我得到了很多错误的DKIM (签名验证失败),其主要原因是邮件列表软件,它添加了自己的标题/修改内容等。
我想知道在OpenDKIM中是否有任何内置功能(如白名单)允许我减少假阳性,因为不可能联系每个邮件列表的每个管理员,并说他们有一个不适当的设置破坏了DKIM。
示例标题如下:
Return-Path: <ubuntu-translators-bounces@lists.ubuntu.com>
Delivered-To: receiver@example.com
Received: from localhost (localhost [127.0.0.1])
by example.com (Postfix) with ESMTP id 6AEAD20DC
for <receiver@example.com>; Sat, 12 Oct 2013 23:51:05 +0200 (CEST)
X-Virus-Scanned: amavisd-new at qhost.pl
Received: from example.com ([127.0.0.1])
by localhost (example.com [127.0.0.1]) (amavisd-new, port 10024)
with LMTP id Ly8eSJhPPnln for <receiver@example.com>;
Sat, 12 Oct 2013 23:51:04 +0200 (CEST)
Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19])
by example.com (Postfix) with ESMTP id 1B86E20DB
for <receiver@example.com>; Sat, 12 Oct 2013 23:51:04 +0200 (CEST)
Authentication-Results: example.com;
dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=qOy78FPq;
dkim-adsp=none (unprotected policy)
Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com)
by huckleberry.canonical.com with esmtp (Exim 4.76)
(envelope-from <ubuntu-translators-bounces@lists.ubuntu.com>)
id 1VV754-0003E4-AB; Sat, 12 Oct 2013 21:50:38 +0000
Received: from mail-pd0-f182.google.com ([209.85.192.182])
by huckleberry.canonical.com with esmtp (Exim 4.76)
(envelope-from <geochr22@gmail.com>) id 1VV74z-0003Dp-8S
for ubuntu-translators@lists.ubuntu.com; Sat, 12 Oct 2013 21:50:33 +0000
Received: by mail-pd0-f182.google.com with SMTP id r10so5800218pdi.13
for <ubuntu-translators@lists.ubuntu.com>;
Sat, 12 Oct 2013 14:50:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
h=mime-version:in-reply-to:references:date:message-id:subject:from:to
:cc:content-type;
bh=KsrgBYUoHW9iFEkIxojUNYYil4nlGAF8VpF6y+iwNd4=;
b=qOy78FPqJq/UqF2WTo50Z+qfLPjsweQqu6r6nnmoeMnnx7FGp7jaFfCD83FObGSjDU
TFHC8/+LU4PfV1xrAqDYHuTvvQbIxHwD7xGSYiEjYGPuHYln+dGd0Y7Kp7NGCWrega9m
8W6iKf8QiggPYj4JJpweB9dThWvbytVrDPjy9aHPAHHvPbZJ1mj7yNMjydPwJJnJ/wId
4qTu961jZZV5FuG+yatDW1imSbYO97HeeZnAIvNRpMQhMZbLbeY1bLVePbBwQ+hbBurU
f+kqRjk15s5a+ih/HNRI1KeCQFqYsca3Pa6WvLJN0PCjPpTxCV886FatSR8SzTZaUaxx
MkVg==
MIME-Version: 1.0
X-Received: by 10.66.218.226 with SMTP id pj2mr29160511pac.62.1381614632237;
Sat, 12 Oct 2013 14:50:32 -0700 (PDT)
Received: by 10.68.143.69 with HTTP; Sat, 12 Oct 2013 14:50:32 -0700 (PDT)
In-Reply-To: <CAKnT5bMdetLwWU1Q4RQ_NdKDLDUgq8H0zRNawXs8rWNiXW0nVw@mail.gmail.com>
References: <CADFCDMTBhMxn+e4OJvZD7QN1joYrhCR3-CgH2weEhOSu36UkrQ@mail.gmail.com>
<CAKnT5bMdetLwWU1Q4RQ_NdKDLDUgq8H0zRNawXs8rWNiXW0nVw@mail.gmail.com>
Date: Sun, 13 Oct 2013 00:50:32 +0300
Message-ID: <CAHyzMMutO3_4wKNT-G3=-m+bHQTiqoT74OWBNis=kMRXAPWfSg@mail.gmail.com>
Subject: Re: nothing here
From: nobody <nobody@gmail.com>
To: nobody <nobody@ubuntu.com>
Cc: "Translators, Ubuntu" <ubuntu-translators@lists.ubuntu.com>
X-BeenThere: ubuntu-translators@lists.ubuntu.com
X-Mailman-Version: 2.1.14
Precedence: list
List-Id: Discussion about translating Ubuntu
<ubuntu-translators.lists.ubuntu.com>
List-Unsubscribe: <https://lists.ubuntu.com/mailman/options/ubuntu-translators>,
<mailto:ubuntu-translators-request@lists.ubuntu.com?subject=unsubscribe>
List-Archive: <https://lists.ubuntu.com/archives/ubuntu-translators>
List-Post: <mailto:ubuntu-translators@lists.ubuntu.com>
List-Help: <mailto:ubuntu-translators-request@lists.ubuntu.com?subject=help>
List-Subscribe: <https://lists.ubuntu.com/mailman/listinfo/ubuntu-translators>,
<mailto:ubuntu-translators-request@lists.ubuntu.com?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1762773400059964515=="
Errors-To: ubuntu-translators-bounces@lists.ubuntu.com
Sender: ubuntu-translators-bounces@lists.ubuntu.com我修改了上面的消息(删除了IP和登录),所以它可能确实有一个损坏的DKIM,但最初它没有被访问-只通过邮件列表软件@ ubuntu.com。
因此,是否有一种方法可以设置OpenDKIM以不同的方式来容忍/忽略/验证这类邮件的DKIM签名?
发布于 2014-06-25 00:06:39
有一种标准机制可以使DKIM验证对格式修改(例如通过过滤器或中继)更宽容,但它必须在发送端进行,而不是在接收端,而且它所做的只是对诸如空格变化之类的事情变得更宽容,而不是对实际消息的更改。基本上,您可以在签名时为头和正文选择轻松(更宽容)和简单(更严格)的模式,验证系统稍后将使用适当的模式来成功验证。这不能在接收端进行修改,因为不可能知道不同处理模式下的签名是什么。
发送方的签名系统选择要包含或从签名中排除的标头,因此如果您知道中继或列表将修改或删除标头,则发件人应将其排除在验证之外。
但是,考虑到邮件列表通常会更改消息和标头,包括像Subject这样的重要标头,来自原始发件人的DKIM报头应该无法通过验证。
理想情况下,邮件列表软件应该是DKIM -感知的,它将删除旧的DKIM头,并替换它自己的一个,相应地改变从头,有效地现在承担责任的消息,而不是原来的发件人。
在没有此功能的情况下,如果您处于接收端,则只能做白名单特定的服务器。
这是一个采用DKIM的鸡与蛋场景:很少有人在接收端强制DKIM错配,因为它会出现假阳性,但这会减缓DKIM的采用,因为对于邮件列表主机等各方来说,解决这些问题的压力很小。现在,如果在接收端严格执行DKIM不匹配,那么您仍然是个小白鼠,尽管DKIM已经存在多年了。对于邮件主机来说,使用DKIM不匹配作为垃圾邮件检测的一个因素似乎更常见,而IMO对DKIM的采用是不利的,但我理解其背后的鸡肉和鸡蛋问题。
https://serverfault.com/questions/545803
复制相似问题