DKIMレコードとは?
DKIMは送信メールに暗号署名を付加し、受信側はDNS上のselector._domainkey.your-domainに公開した公開鍵で検証します。DNSにはセレクターを列挙する手段がないため、IPeekはGoogle、Microsoft、Amazon SESなど主要プロバイダーが使用するセレクターを探索します。
DKIMの署名と検証の仕組み
メールを送信すると、プロバイダーは秘密鍵で選択したヘッダーと本文に署名し、メッセージにDKIM-Signatureヘッダーを追加します。受信側はそのヘッダーからd=(ドメイン)とs=(セレクター)タグを読み取り、selector._domainkey.d にある対応する公開鍵を取得して署名を検証します。検証に成功すれば、コンテンツが転送中に改ざんされておらず、そのドメインの鍵保有者から確かに送られたことが分かります。秘密鍵は送信サーバーに留まり、DNSに置かれるのは公開鍵だけです。
セレクターとDNS上の公開鍵
セレクターを使うと、1つのドメインで複数のDKIM鍵を公開できます。鍵のローテーションや、異なる送信サービスごとの使い分けに便利です。公開鍵はselector._domainkey.your-domain(例:google._domainkey.example.com)のTXTレコードで、v=DKIM1; k=rsa; p=<base64公開鍵> を含みます。DNSにはセレクターの一覧がないため、ドメインがどのセレクターを使っているかを単純に問い合わせることはできません。そのためIPeekは、Google(google)、Microsoft、Amazon SESなど主要プロバイダーが使う一般的なセレクターを探索し、公開された鍵を見つけ出します。
DKIMとSPF・DMARCの関係
DKIMは3層のうちコンテンツ認証を担う層です。SPFが送信ホストをIPで認可するのに対し、DKIMはメッセージのヘッダーと本文が改ざんされていないことを暗号的に証明し、署名ドメインに結び付けます。DMARCはその後、DKIMの署名ドメインが表示上のFromアドレスと整合しているかを確認します。DKIMにはSPFに対する大きな利点があります。署名がメッセージとともに移動するため、SPFが壊れがちな転送を生き延びるのです。強固な到達率のためには、DKIMを公開し、DMARCの下で整合させてください。