ed25519 是否很好地支持 DKIM 验证?

Nar*_*asK 8 gmail exim dkim

根据Exim4 文档我有以下脚本:

#! /bin/bash --

ED="dkim_ed25519_$(date +'%Y%m%d')"
RSA="dkim_rsa_$(date +'%Y%m%d')"

## Generate private key
openssl genpkey -algorithm ed25519 -out "${ED}.private"
openssl genrsa -out "${RSA}.private" 2048

## Use private key to generate the public DNS TXT record:
## 20200701._domainkey.example.com IN TXT "k=[ed25519|rsa]; p=[pub_key_content]"
openssl pkey -in "${ED}.private" -pubout -outform DER | tail -c +13 | base64 > "${ED}.public"
openssl rsa -in "${RSA}.private" -pubout -outform PEM | sed '/^-----/d' | tr -d '\n' > "${RSA}.public"
Run Code Online (Sandbox Code Playgroud)

这会生成一对私钥+公钥。公共的有:

dkim_ed25519_20200701.public

ICkF+6tTRKc8voK15Th4eTXMX3inp5jZwZSu4CH2FIc=
Run Code Online (Sandbox Code Playgroud)

dkim_rsa_20200701.public

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtZMwFIfqRCUPAp6Jz5OPC9GC68JWsVA5VF2RBGH8Bx7rIRE6vekhejwqK4rmiaMswfuJEMKErWE0ZwYz7bhSsBMnv0G1xC7OLgOTCziUO1EjMp/R5/aUno1Y0txFcJJdbSNEpZYc0jMLW3TqNn3VN6glVpnPId2Rb6SqfweS7zYp04LrX+pT43pCEn9pHxVOmWfmz8AJav1kuYM5KvU7gsC3ytzaxW+QlHTaWH9vGtgK1GVg0NGQmPS2/nLSDABjJPATDN/d3PagpsPdwGtOPfe4ShW32FBhRVL9X3ZeeUP4y1iZn0Si4sQiWYAfwekxLh2lsvALAHPc7er8RxJ4yQIDAQAB
Run Code Online (Sandbox Code Playgroud)

当我尝试将这些插入域的 TXT 记录时,如下所示:

RSA

k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtZMwFIfqRCUPAp6Jz5OPC9GC68JWsVA5VF2RBGH8Bx7rIRE6vekhejwqK4rmiaMswfuJEMKErWE0ZwYz7bhSsBMnv0G1xC7OLgOTCziUO1EjMp/R5/aUno1Y0txFcJJdbSNEpZYc0jMLW3TqNn3VN6glVpnPId2Rb6SqfweS7zYp04LrX+pT43pCEn9pHxVOmWfmz8AJav1kuYM5KvU7gsC3ytzaxW+QlHTaWH9vGtgK1GVg0NGQmPS2/nLSDABjJPATDN/d3PagpsPdwGtOPfe4ShW32FBhRVL9X3ZeeUP4y1iZn0Si4sQiWYAfwekxLh2lsvALAHPc7er8RxJ4yQIDAQAB
Run Code Online (Sandbox Code Playgroud)

ED25519

k=ed25519; p=ICkF+6tTRKc8voK15Th4eTXMX3inp5jZwZSu4CH2FIc=
Run Code Online (Sandbox Code Playgroud)

我发现我的 DKIMrsa版本可以很好地使用gmail,但ed25519只是失败了。

我的代码/配置有错误吗?还是这种情况ed25519没有被广泛采用?

anx*_*anx 6

截至 2022 年 1 月,没有一家大型邮件提供商定期验证 ed25519 签名,尽管报告的结果不一致,我在 DMARC 报告中看到(以及pass其他签名):

  • fail
  • permerror
  • temperror
  • neutral

您的配置对我来说看起来不错,并且使用它作为2048 位 RSA 签名的补充绝对不会出现任何问题。我正在发送每个签名之一,这也是采用新算法的其他人似乎正在做的事情,以测试过渡的准备情况。

所有常见的软件都会正确解析签名(因此它可以报告名称)并忽略它尚未学习的签名算法。我仍然没有收到来自公共邮件提供商的任何 DMARC 报告,确认任何经过验证的 ed25519 签名。

我的接收经验仍然有更多的rsa-sha1签名(现在不太有用,应该很快就会被 继承rsa-sha256ed25519-sha256,但去年我看到了来自非学术机构的第一个 EC 签名,所以采用可能最终会发生。

  • @RobertSiemer 微软、雅虎、谷歌仍然没有正式使用它们,并且在他们的汇总报告中明确说明了这一点。有趣的事实:我尚未验证收到的 EC 签名失败 - 似乎只有获得规范化顺序正确的环境才支持新算法(并且:每个使用它的人都对 rsa+ed25519 进行双重签名)。 (2认同)