メール認証DMARC中小企業

SPF・DKIM・DMARCの違いをわかりやすく解説

ドメイン番人7 分で読めます
目次

この記事でわかること

  • SPF・DKIM・DMARCの3つの技術がそれぞれ何を担当しているか
  • なぜ1つだけでは不十分で、3つを組み合わせる必要があるのか
  • どの順序で設定すべきか、よくある誤解と合わせて整理

そもそも、なぜ3つも必要なのか

「メール認証ってSPFとかDKIMとかDMARCとか、結局どれを設定すればいいの?」という相談をよくいただきます。結論から言うと、3つは役割が全く違うため、1つだけでは足りません。順番に見ていきます。

SPF・DKIM・DMARCの役割と関係

郵便物に例えると、

  • SPFは「この郵便局から出した手紙は本物です」と受付名簿で認可する仕組み
  • DKIMは「封筒と中身に改ざん防止の封印が押されている」ことを検証する仕組み
  • DMARCは「封印や認可の確認が失敗した手紙をどう扱うか」という配送ルール

3つを個別に設定し、組み合わせて初めて「なりすましを拒否し、配送性も保つ」という目的を達成できます。以下の表に主な違いをまとめます。

技術 略称の意味 検証対象 仕組み 保護内容
SPF Sender Policy Framework 送信元サーバーのIPアドレス DNS TXTレコードで認可リストを公開 送信元偽装の防止
DKIM DomainKeys Identified Mail メール本文・ヘッダーの電子署名 送信時に暗号署名、公開鍵をDNSで公開 経路上の改ざん検知
DMARC Domain-based Message Authentication, Reporting and Conformance SPF/DKIMの結果とFromドメインの一致(アラインメント) DNS TXTで処理方針を公開、集計レポートを受信 なりすましへのポリシー適用

DMARCの全体像はDMARCとは?中小企業が今すぐ対応すべき理由でも解説しています。

3つの技術を1つずつ見る

3つの技術はそれぞれ独立したRFCで仕様化されており、検証対象も設定方法も異なります。

SPF: 送信元サーバーを認可する

SPF(Sender Policy Framework、RFC 7208)は、「このドメインからメールを出してよいサーバーはここだけ」というホワイトリストをDNSに公開する仕組みです。受信側はSMTP通信のMAIL FROM(エンベロープFrom)のドメインに対してSPFレコードを引き、送信元IPアドレスが許可リストに入っているかを確認します。

example.com. TXT "v=spf1 include:_spf.google.com -all"
  • include: で他サービスのSPFを取り込む
  • 末尾の -all は「列挙外は全て拒否」、~all は「疑わしい(softfail)」
  • includeは合計10個まで(RFC 7208 §4.6.4)。超過するとPermerrorでSPF全体が無効化されます

ここで気をつけるべきは、SPFは転送に弱い点です。メーリングリストや自動転送ではMAIL FROMが書き換わり、SPFが失敗することがよくあります。そのため、SPF単独で認証を成立させることは現実的に難しく、DKIMとの併用が推奨されます。

DKIM: 本文と署名で改ざんを検知する

DKIM(DomainKeys Identified Mail、RFC 6376)は、送信時にメールの本文・ヘッダーを元に電子署名を作成し、受信側がDNSで公開鍵を取得して検証する仕組みです。

  • 送信側: 秘密鍵で署名 → メールヘッダーにDKIM-Signatureを付加
  • 受信側: <selector>._domainkey.<domain>のTXTレコードから公開鍵を取得して検証
  • 検証成功 → 「署名ドメインの責任下にある、経路で改ざんされていないメール」と判断

SPFと違い、DKIMはメール転送されても署名が残るため、メーリングリスト経由でも検証が通りやすいのが強みです。一方で、DKIM単独では「署名ドメインがFrom欄のドメインと一致しているか」を保証しません。署名はd=タグの別ドメインで成立することもあり、なりすましの検知にはDMARCとの組み合わせが必要です。

設定で最もつまずくのは セレクタ名 です。Google Workspaceはgoogle、Microsoft 365はselector1/selector2、Resendはresend、と送信サービスごとに異なります。推測で設定せず、必ず各サービスの管理画面で指定された値を使います。

DMARC: SPF/DKIMの結果にポリシーを適用する

DMARC(RFC 7489)は、SPFかDKIMのどちらかがパスし、かつそのドメインがFrom欄のドメインとアラインメント(一致)していた場合にDMARC passとする仕組みです。SPFとDKIMの結果を「どう使うか」を決める、上位レイヤの約束事と考えると理解しやすくなります。

_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:reports@example.com"
  • p=none: 認証失敗でも通常配送(監視モード)
  • p=quarantine: 迷惑メールフォルダに振り分け
  • p=reject: 受信拒否
  • rua=: 集計レポート(各受信サーバーから毎日XMLで届く)の送付先

DMARCの肝は アラインメント です。たとえばFrom欄がsales@example.comでも、SPFが評価するMAIL FROMがbounce.mailservice.comだった場合、SPF自体はパスしても「From側のドメインと一致していない」ためDMARCは失敗します。これがSPF/DKIM単独ではなりすまし対策として不十分な理由です。

受信側はどういう順で判定するか

3つの技術は、受信サーバーで順序よく評価されます。全体の流れを図で見ます。

メール認証の判定フロー

  1. SPFチェック: 送信元IPが認可リストに入っているか
  2. DKIMチェック: 署名が公開鍵で検証でき、改ざんされていないか
  3. DMARC評価: SPFかDKIMのいずれかがパスし、かつFromドメインとアラインメントしているか
  4. ポリシー適用: DMARCが失敗した場合、p=の指示に従って配送・隔離・拒否を決定

Gmailは2024年2月から、Outlookは2025年5月から、この判定を厳格化しました。詳細はDMARC義務化はいつから?でまとめています。

設定の順序と、よくある誤解

「全部いっぺんにやる」よりも、段階的に進めるほうが安全です。

SPF→DKIM→DMARCの導入順序

ステップ1: SPFレコードの整備

既存のSPFレコードの有無を確認し、メール送信サービスをinclude:で追加します。既存にもう1行追加するのではなく、1ドメインに1レコードに統合します。include:の総数が10個を超えないか必ず確認します。

ステップ2: DKIMの有効化

Google Workspaceなら管理コンソール、Microsoft 365なら Exchange Admin Center、Resendならダッシュボードから、発行されたTXTレコードをDNSに追加します。セレクタ名はサービスの指示通りに。

ステップ3: DMARCはp=noneから始める

最初は必ずp=noneで監視モードで運用し、rua=で受け取る集計レポートを1〜2か月観察します。正規のメールがすべてpassしていることを確認してから、p=quarantinep=rejectと段階的に強化します。詳細な手順はDMARC設定方法を徹底解説にまとめています。

よくある3つの誤解

  • 「SPFだけ設定すれば十分」: 転送やメーリングリストでSPFは失敗しやすく、単独では配送性も改ざん検知も保証できません。最低でもDKIMと併用、できればDMARCまで設定するのが前提です。
  • 「DKIMだけあれば改ざん防止できるから大丈夫」: DKIMは改ざん検知には有効ですが、署名ドメインとFrom欄の一致を自動では保証しません。なりすまし対策にはDMARCのアラインメントが必要です。
  • 「DMARCを設定すれば迷惑メールが全部止まる」: DMARCは「自社ドメインを騙った偽メール」を弾くための仕組みで、他社ドメインからの迷惑メールには無関係です。自社を守るために設定するもの、と理解してください。

まずは自社の設定状況を確認しましょう

要点を整理すると次のとおりです。

  • SPF・DKIM・DMARCは役割が違い、組み合わせて初めてなりすまし対策が成立する
  • SPFは送信元認可、DKIMは改ざん検知、DMARCはポリシー適用とレポート収集
  • 設定は「SPF → DKIM → DMARC p=none監視 → 段階強化」の順で進める
  • SPF単独・DKIM単独はいずれも不十分。アラインメントを担うのはDMARC

無料のドメイン診断ツールで、自社ドメインの3技術の設定状況と改善すべき優先順位を数十秒で把握できます。複数サービスが絡んで判断が難しい場合は、お問い合わせフォームから状況をお知らせください。設定の優先度と段取りを一緒に整理してお渡しします。

次の一歩は無料診断から。