4

我已经为我的 postfix 设置了 opendkim,现在所有外发邮件都有 DKIM-Signature 标题。我想要做的是手动验证,没有 DNS 和外部实用程序,最好只使用 openssl,消息正在获得正确的签名。所以作为输入数据我有:

  • 电子邮件的 DKIM 签名标头
  • DKIM 选择器,DKIM 域
  • DKIM 私钥
  • DKIM 公共签名,如果我需要将记录的形式放入 DNS

问题是如何使用诸如 openssl 之类的 CLI 实用程序使用 DKIM 公共签名解密和/或验证 DKIM 签名?

4

2 回答 2

1

直接从电子邮件的来源验证

  • 下载电子邮件,通常是一个.eml文件

  • 安装蟒蛇

  • pip install dkimpy

  • dkimverify < email_file.eml

    或者,您可以

    • dkimverify
    • 粘贴源
    • Ctrl+D

来源

其他方法

于 2021-04-02T18:24:59.273 回答
0

可以做到,但它很复杂,实用程序是最好的方法,但如果你坚持,这里是如何做到的。

  1. 准备验证所需的标头,并在末尾添加 dkim-signature,但不包含实际的签名哈希。

  2. 根据使用的规范化算法规范化标头。

  3. 如果为主体设置了限制,则需要将其剪切然后将其规范化。

  4. 计算正文哈希,如果它与 dkim 签名中的相同,则继续。

  5. 使用 OpenSSL 通过提供以下参数来验证标头哈希:

    一种。标头哈希。

    湾。规范化的标头。

    C。公钥

    d。使用的散列算法(SHA1 或 SHA256)。

我无法为您提供示例命令,因为我使用了 PHP 的 openssl_verify() 函数来执行此操作。

如果您告诉我您是否已经这样做以及如何做到这一点,我将不胜感激。

于 2013-11-16T23:45:55.790 回答