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

ed25519 是否能很好地支持 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"

这将生成一对私钥和公钥。公钥包括:

dkim_ed25519_20200701.公开

ICkF+6tTRKc8voK15Th4eTXMX3inp5jZwZSu4CH2FIc=

dkim_rsa_20200701.公共

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtZMwFIfqRCUPAp6Jz5OPC9GC68JWsVA5VF2RBGH8Bx7rIRE6vekhejwqK4rmiaMswfuJEMKErWE0ZwYz7bhSsBMnv0G1xC7OLgOTCziUO1EjMp/R5/aUno1Y0txFcJJdbSNEpZYc0jMLW3TqNn3VN6glVpnPId2Rb6SqfweS7zYp04LrX+pT43pCEn9pHxVOmWfmz8AJav1kuYM5KvU7gsC3ytzaxW+QlHTaWH9vGtgK1GVg0NGQmPS2/nLSDABjJPATDN/d3PagpsPdwGtOPfe4ShW32FBhRVL9X3ZeeUP4y1iZn0Si4sQiWYAfwekxLh2lsvALAHPc7er8RxJ4yQIDAQAB

当我尝试将它们插入到域的 TXT 记录中时,如下所示:

RSA

k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtZMwFIfqRCUPAp6Jz5OPC9GC68JWsVA5VF2RBGH8Bx7rIRE6vekhejwqK4rmiaMswfuJEMKErWE0ZwYz7bhSsBMnv0G1xC7OLgOTCziUO1EjMp/R5/aUno1Y0txFcJJdbSNEpZYc0jMLW3TqNn3VN6glVpnPId2Rb6SqfweS7zYp04LrX+pT43pCEn9pHxVOmWfmz8AJav1kuYM5KvU7gsC3ytzaxW+QlHTaWH9vGtgK1GVg0NGQmPS2/nLSDABjJPATDN/d3PagpsPdwGtOPfe4ShW32FBhRVL9X3ZeeUP4y1iZn0Si4sQiWYAfwekxLh2lsvALAHPc7er8RxJ4yQIDAQAB

ED25519

k=ed25519; p=ICkF+6tTRKc8voK15Th4eTXMX3inp5jZwZSu4CH2FIc=

我发现我的 DKIMrsa版本可以正常运行gmail,但ed25519就是失败了。

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

答案1

截至 2022-01,没有一家大型邮件提供商定期验证 ed25519 签名虽然报告的结果不一致,但我在 DMARC 报告中看到了(以及pass其他签名):

  • fail
  • permerror
  • temperror
  • neutral

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

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

我的接收经验继续有更多的rsa-sha1签名(现在用处不大了,应该早就被取代了rsa-sha256ed25519-sha256,但去年我看到了第一个来自非学术机构的 EC 签名,因此采用可能终于发生了。

相关内容