Re: dkimについて

From: Norikatsu Shigemura <nork_at_ninth-nine.com>
Date: Thu, 27 Nov 2025 14:50:33 UTC
重村法克です。

On 2025/11/22 21:25:42, Masachika ISHIZUKA wrote:
>    すみません。同じメールへの2回目のreplyです。
>    先程、書き忘れたのですが、上記のメールですが、
> Received: from mx2.freebsd.org (mx2.freebsd.org [96.47.72.81])
> 	by peach.ish.org (8.18.1/8.18.1) with ESMTPS id 5AM4DCZC076545
> 	(version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=FAIL)
> 	for <ish@ish.org>; Sat, 22 Nov 2025 13:13:14 +0900 (JST)
> 	(envelope-from freebsd-users-jp+bounces-489-ish=ish.org@FreeBSD.org)
> Authentication-Results: peach.ish.org;
> 	dmarc=fail (p=none dis=none) header.from=ninth-nine.com
> Authentication-Results: peach.ish.org;
> 	spf=pass smtp.mailfrom=FreeBSD.org
> Authentication-Results: peach.ish.org;
> 	dkim=pass (2048-bit key;
> 	unprotected) header.d=freebsd.org header.i=@freebsd.org header.b=vo5SeNI6;
> 	dkim=permerror (0-bit key) header.d=ninth-nine.com header.i=@ninth-nine.com header.b=KGZoeKzv;
> 	dkim=temperror (0-bit key;
> 	unprotected) header.d=ninth-nine.com header.i=@ninth-nine.com header.b=DQd5crrU
> とdmarcがfailしてしまいます。spfとdkimは正常にpassしています。(dkimの
> 2個目、3個目のエラーはもちろん気にする必要はありません。)
>    自分がfreebsd-user-jpへ送ったものやその他のMLもdmarc=passなのでこち
> らのサーバの設定は大丈夫なんだろうと思っていたのですが、何か設定をミス
> っているのか不安になりました。
>    何かお気づきの点があればご教示戴けると幸いです。

エラーメッセージとか、この手のヘッダーの解析をAIに説明させると参考になるので今度試してみてください。
二つ以上で確認するのが吉です(回答が不安定の時があるので)。今はジェミニが安定的かな。

> Authentication-Results: peach.ish.org;

peach.ish.org がこの認証結果を生成しています。
ご自身のメールがMLを経由して戻ってきたケースで失敗しているのは以下の理由からです。

> 	dkim=pass (2048-bit key; unprotected) header.d=freebsd.org header.i=@freebsd.org header.b=vo5SeNI6;

MLサーバー(FreeBSD.org)自身が付与したDKIM署名は正常にパスしています。MLが正当な中継者であることは担保されています。

> 	dkim=permerror (0-bit key) header.d=ninth-nine.com header.i=@ninth-nine.com header.b=KGZoeKzv;
> 	dkim=temperror (0-bit key; unprotected) header.d=ninth-nine.com header.i=@ninth-nine.com header.b=DQd5crrU

送信元ドメイン(ninth-nine.com)のDKIM署名が恒久的エラーと一時的エラーとなっているのは、
MLによってメールの件名や本文を改変したため(MLの正常な動作)、元の署名が破損したことによるものです。
一時的エラーについては、おそらくED25519署名のせいだと思います(未対応が多いので)。。
いずれにせよML経由で署名が壊れた結果を意味する程度の話なので、それ自体は無視して問題ありません。

> 	dmarc=fail (p=none dis=none) header.from=ninth-nine.com

そのため、石塚さんのサーバー「では」、元の署名が破損かつSPF認証のアライメントも不一致
(header.from と smtp.mailfrom の内容が不一致)となったため、DMARCは失敗と判定されました。

これが懸念なのはその通りで、ML経由のメールを、あるいは転送されたメールが、DMARC成功と判断させる仕組みがARCとなります。

例えばこの(石塚さんが送った)メールのヘッダーの結果は、自分の所では下記の通りとなります。

> Authentication-Results: dummy;
>     arc=pass (ams.1.freebsd.org=pass, as.1.freebsd.org=pass) smtp.remote-ip=96.47.72.81;
>     dkim=pass (1024-bit rsa key sha256) header.d=ish.org header.i=@ish.org header.b=ISyh3tQw header.a=rsa-sha256 header.s=54d26185-a057-8857-582c-09c040ed7013;
>     dkim=pass (2048-bit rsa key sha256) header.d=freebsd.org header.i=@freebsd.org header.b=TXsGg0Mt header.a=rsa-sha256 header.s=dkim;
>     dmarc=pass policy.published-domain-policy=reject policy.applied-disposition=none policy.evaluated-disposition=none (p=reject,has-list-id=yes,d=none,d.eval=none) policy.policy-from=p header.from=ish.org;
>     iprev=pass smtp.remote-ip=96.47.72.81 (mx2.freebsd.org);
>     spf=pass smtp.mailfrom="freebsd-users-jp+bounces-491-nork=ninth-nine.com@FreeBSD.org" smtp.helo=mx2.freebsd.org;
>     x-ptr=pass smtp.helo=mx2.freebsd.org policy.ptr=mx2.freebsd.org;
>     x-return-mx=pass header.domain=ish.org policy.is_org=yes (MX Records found: mail4.ish.org,mail.ish.org,mail6.ish.org);
>     x-return-mx=pass smtp.domain=freebsd.org policy.is_org=yes (MX Records found: mx1.freebsd.org,mx66.freebsd.org)

ML側で受けた時のDKIM情報(この場合石塚さんのサーバーからのメール)をML側でARC署名して保存します。
自分のメールサーバーではMLが付与したARC署名を検証し、DMARCの結果を pass に「救済」しています。

ARC情報(署名)についてはMLにて付与されていますので、石塚さんのサーバーでもARCの検証機能を実装することで、このDMARC失敗の問題を解消できます。
この辺りの対応は p5-Mail-Milter-Authentication を導入、ARC検証するのが確実です。

現在の石塚さんのサーバーがDMARC失敗を元に何らかの処理(破棄や迷惑メール判定など)を行っていなければ、運用上の問題はありません。
ただしメールを転送すると、メール転送を受け入れてくれる相手メールサーバーが、今後どんどん少なくなっていく可能性はあります。
そこまで考慮すると石塚さんのメールサーバーでARC署名まで設定頑張る価値はあります。

以上よろしくお願いいたします。

-- 
Norikatsu Shigemura <nork@ninth-nine.com>