
## この記事でわかること

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

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

「メール認証ってSPFとかDKIMとかDMARCとか、結局どれを設定すればいいの？」という相談をよくいただきます。結論から言うと、**3つは役割が全く違うため、1つだけでは足りません**。順番に見ていきます。メール認証（送信ドメイン認証）の全体像から押さえたい方は、先に[メール認証とは？図解でわかる入門](/blog/email-auth-basics)をご覧ください。

![SPF・DKIM・DMARCの役割と関係](/blog/spf-dkim-dmarc-difference/roles-overview.svg)

郵便物に例えると、

- **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とは？Web 担当者が今すぐ対応すべき理由](/blog/what-is-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つの技術は、受信サーバーで順序よく評価されます。全体の流れを図で見ます。

![メール認証の判定フロー](/blog/spf-dkim-dmarc-difference/auth-flow.svg)

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

Gmailは2024年2月から、Outlookは2025年5月から、この判定を厳格化しました。詳細は[DMARC義務化はいつから？](/blog/dmarc-mandatory)でまとめています。

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

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

![SPF→DKIM→DMARCの導入順序](/blog/spf-dkim-dmarc-difference/setup-order.svg)

### ステップ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=quarantine`、`p=reject`と段階的に強化します。詳細な手順は[DMARC設定方法を徹底解説](/blog/dmarc-setup-guide)にまとめています。

### よくある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

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