OpenDKIM 和引文规范化

OpenDKIM 和引文规范化

在与服务器上生成的签名中大量 DKIM 失败的长期斗争中,我注意到一个有趣的现象。今天我收到了这个 DKIM 失败报告:

User-Agent: OpenDKIM-Filter/2.10.3
Version: 0.1
...
Delivery-Result: other
Feedback-Type: auth-failure
Auth-Failure: signature (signature verification failed)
DKIM-Failure: signature
...
DKIM-Canonicalized-Header: (base64 string)
DKIM-Canonicalized-Body: (another base64 string)

我注意到,DKIM-Canonicalized-Header其中又包含以下内容:

cc: Alice A <[email protected]>,
        Bob B-B <[email protected]>,
        "'Charlie C'" <[email protected]>

实际标题cc报告如下:

cc: Alice A <[email protected]>,
        Bob B-B <[email protected]>,
        "'Charlie C'"
        <[email protected]>

幸运的是,我能够准确地发现导致失败的原因。我的签名服务器保留了临时文件 /tmp/dkim.*,该文件表明相同的标头被规范化了,但略有不同:

cc: Alice A <[email protected]>,
        Bob B-B <[email protected]>,
        'Charlie C' <[email protected]>

现在到了有趣的部分。我的签名服务器运行与验证远程服务器非常相似的版本(opendkim-2.10.3-1.el6.x86_64.rpm),我无法使其重复这种错误行为,即导致规范化"'something'"。那么远程服务器如何实现这种规范化?真实的标头(我没有在我的服务器上存档)怎么会是这样的字符串,它以某种方式在"'something'"远程服务器和'something'我的服务器上解码并规范化?或者也许某些附加软件会在 MTA 处理过程中改变这些引号?欢迎提出合理的猜测。

答案1

DKIM 规格。“简单”算法根本不改变标题,而“宽松”算法除了将标题字段名称转换为小写外,仅影响空格。

因此,我发现它不太可能与 OpenDKIM 有关。

我调查了RFC 5322。虽然似乎是允许的,但它被标记为过时(遵循 ABNF:-> -> -> -> -> -> )。这可能是某些东西将其更改为 的原因。您应该尝试改用双引号 ( )。'Charlie C' <[email protected]>address-listaddressmailboxname-addrdisplay-namephraseobs-phrasequoted-string"Charlie C" <[email protected]>

相关内容