技術解説 · 出典付きの回答
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になります。
一次情報源
- RFC 6376:DomainKeys Identified Mail(DKIM)の仕様 — RFC Editor
- Cloudflare DNSドキュメント — Cloudflare