技術解説 · 出典付きの回答

DKIMセレクターとは?

DKIMセレクターとは、ドメインのDNSレコード内で特定の公開鍵を識別するための一意の文字列です。セレクターを使うと、1つのドメインで複数のDKIMキーを利用できるため、DNSエントリを競合させることなく、鍵のローテーションや複数の署名サービスの併用が可能になります。

仕組み

セレクターはDNSクエリにおけるポインターとして機能します。受信サーバーはメールヘッダー内にDKIM署名を見つけると、署名からセレクターの値を探します。そしてselector._domainkey.example.comのレコードに対するDNSクエリを組み立てます。これにより、受信側はそのメッセージの暗号署名を検証するのに必要な公開鍵を正確に取得できます。

送信者にとっての重要性

セレクターは運用の継続性にとって非常に重要です。セレクターを使えば、認証の失敗を起こすことなく定期的に鍵をローテーションしてセキュリティを維持できます。鍵が漏えいした場合は、新しいセレクターを展開しながら古いセレクターを段階的に廃止できます。これによりダウンタイムを防ぎ、移行期間中も正当なメールが認証チェックに合格し続けるようにできます。

運用でよくある間違い

よくある間違いは、署名サーバーが使うセレクターとDNSレコードに公開したセレクターが一致していないことです。署名ツールがselector1を使っているのにDNSレコードがselector2で公開されていると、検証は失敗します。もう1つのよくある間違いはDNSの反映タイミングで、DNSレコードが世界中のリゾルバーに行き渡る前に新しいセレクターでメールを送信してしまうケースです。

具体例

企業が2つの異なるサービスを使っている場合、ニュースレターツールにはselector-marketing、アプリの通知にはselector-transactを使うといった運用が考えられます。この場合のDNSレコードはmarketing._domainkey.example.comとtransact._domainkey.example.comになります。https://sendhq.cc/tools の無料ツールを使ってこれらのレコードを確認し、公開鍵が正しく公開されていることを確かめられます。

鍵のローテーション戦略

ベストプラクティスは、新しい鍵ペアを生成し、新しいセレクター名で公開することです。新しいセレクターが反映されたら、送信サーバーを新しい鍵で署名するように更新します。古いセレクターのレコードは、切り替え直前に送信されたメッセージを受信者が検証できるよう短期間残しておき、その後安全に削除します。

よく寄せられる質問

1つのドメインに複数のDKIMセレクターを設定できますか?

はい、異なる送信サービスに対応したり、鍵のローテーションをスムーズに行ったりするために、1つのドメインに複数のセレクターを設定できます。

セレクターはメールのどこにありますか?

セレクターはメールのDKIM-Signatureヘッダー内、具体的にはs=タグにあります。

セレクターを変更するとSPFに影響しますか?

いいえ、DKIMセレクターはSPFレコードとは独立しており、SPFの設定や検証には影響しません。

DNSにセレクターが存在しない場合はどうなりますか?

受信サーバーは公開鍵を見つけられず、DKIMの結果はpermerrorまたはfailになります。

一次情報源