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

送信ドメイン認証とは?SPF・DKIM・DMARCを解説

送信ドメイン認証とは、メールメッセージの送信者の身元を検証するために使われる、DNSベースのプロトコル群です。受信側のメールサーバーが、送信サーバーにFromヘッダーに記載されたドメインに代わってメールを送信する権限があることを検証できるようにし、ドメインのなりすましやフィッシングを防ぎます。

SPF(Sender Policy Framework)とは

SPFは、特定のドメインのメール送信を許可されたすべてのIPアドレスとドメインを列挙するDNSレコードです。サーバーはメッセージを受け取ると、Return-Pathアドレスのドメインに設定されたSPFレコードを確認します。送信サーバーのIPがSPFレコードに記載されていない場合、レコードの修飾子に応じて、メッセージが迷惑メールと判定されたり拒否されたりすることがあります。

DKIM(DomainKeys Identified Mail)とは

DKIMはメールに暗号署名を付与します。送信者は秘密鍵を使ってメッセージのヘッダーと本文に署名し、受信者はドメインのDNSレコードに公開された公開鍵を使って署名を検証します。これにより、配送中にメールの内容が改ざんされていないことが保証され、そのメッセージがドメインのものであることが確認されます。

DMARC(Domain-based Message Authentication, Reporting, and Conformance)とは

DMARCはSPFとDKIMを結び付け、認証に失敗したメッセージをどう処理するかを受信サーバーに指示します。表示されるFromアドレスとSPFまたはDKIMのドメインとの間のアライメントが必要です。DMARCポリシーは、none(監視)、quarantine(迷惑メールフォルダへ)、reject(完全にブロック)のいずれかに設定できます。

導入と確認

送信ドメイン認証を導入するには、DNSプロバイダーにTXTレコードを追加する必要があります。開発者は、利用するすべての外部の送信サービスをSPFレコードに含め、DKIMキーを定期的にローテーションするようにしてください。SendHQの無料ツール(https://sendhq.cc/tools)を使って、DNSレコードが正しい形式で有効になっていることを確認できます。

よく寄せられる質問

SPFはDKIMの代わりになりますか?

いいえ。SPFは送信サーバーのIPを検証し、DKIMは暗号技術によってメッセージの内容と送信元を検証します。完全な認証には両方が必要です。

DMARCを設定していない場合はどうなりますか?

DMARCがなくても受信サーバーはSPFとDKIMを使うことがありますが、失敗したメッセージを拒否すべきか隔離すべきかについての明示的な指示はありません。

1つのドメインに複数のSPFレコードを設定できますか?

いいえ。1つのドメインに設定できるSPFレコードは1つだけです。複数の許可された送信者は、includeメカニズムを使って1つのTXTレコードにまとめる必要があります。

一次情報源