根据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-sha256
)ed25519-sha256
,但去年我看到了第一个来自非学术机构的 EC 签名,因此采用可能终于发生了。