【问题标题】:Check DKIM Signature From Domain从域检查 DKIM 签名
【发布时间】:2021-08-10 04:33:38
【问题描述】:

有没有办法通过 Node JS 检查 DKIM 签名?

我尝试过类似的方法

dns.resolveTxt('acme.com', (err, addresses) => console.log(addresses));

但它只提供 SPF 记录。也许我需要在域下检查 DKIM 签名的子域?

我的最终目标是确定域是否设置了 DKIM。谢谢!

【问题讨论】:

  • DKIM 伪记录位于_domainkey 之下,但您需要知道要使用的选择器(在电子邮件中可见)。它不在域的顶点之下。混淆名称时也请使用example.com。另外,在这个阶段,您的问题与编程没有太大关系。 “我的最终目标是确定该域是否设置了 DKIM。”你不能,除非你知道选择器。或者你提前查看固定已知位置的 DMARC 记录,并在此基础上进行一些启发式分析。
  • 还有关于resolveTxt:可能还有很多其他TXT记录与SPF/DKIM/DMARC完全无关。您必须解析它们,在开始时找到v=something。仅仅做一个 DNS 查询是不够的。

标签: node.js express dns


【解决方案1】:

我创建了一个网络服务器。我可以发送电子邮件到 xxx@domain.com 因此我在 dns 上创建了一个这样的 dkim:mail._domainkey.domain.com。

例如,我可以使用 dig 来获取存储在 dns 上的 txt 数据。它是这样的:

$> dig mail._domainkey.domain.com. txt
...
mail._domainkey.domain.com. 3600 IN TXT "v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAO...yUgBBeewIDAQAB"
...

但您需要知道 dkim 的选择器。 (对我来说,它的“邮件”,但它可以是任何东西)电子邮件发件人选择它使用哪一个,并将其写在电子邮件标题中。

在 nodejs 中,这适用于我的域:

require('dns').resolveTxt('mail._domainkey.domain.com.', console.log);

在这里查看更多: https://serverfault.com/questions/625008/find-dkim-and-dmarc-records/832546

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 2019-02-23
    • 2017-11-09
    • 1970-01-01
    • 1970-01-01
    • 2014-07-20
    • 2011-01-31
    相关资源
    最近更新 更多