SPFとは?メールのなりすましを防ぐ仕組みを初心者向けにわかりやすく解説【図解付き】SPFとは
はじめに
| 用語 | 意味 |
|---|---|
| SPF | 送信元ドメインが許可したメールサーバーから送信されたかを確認する認証技術 |
メールを受信したとき、差出人欄に有名企業のメールアドレスが表示されていると、本物のメールだと思ってしまいがちです。
しかし、メールの差出人情報は、仕組み上なりすまされる可能性があります。
そのため、受信側では、
- 本当にその会社が認めたメールサーバーから送られたのか
- 無関係なサーバーが会社のドメインを勝手に名乗っていないか
- メールを迷惑メールとして扱うべきか
- DKIMやDMARCとは何が違うのか
といった点を確認する必要があります。
この確認に使われる代表的な仕組みの一つが、SPFです。
SPFを一言で表すと、
「そのドメインのメールを送信してよいメールサーバーか、送信元IPアドレスを使って確認する仕組み」
です。
ただし、SPFについては、次のような点が特に誤解されやすくなっています。
- メールを送った個人のパソコンのIPアドレスを確認するわけではない
- 画面に表示されるFromアドレスを直接確認するとは限らない
- SPFに成功しても、メールが完全に安全とは限らない
- SPFだけですべてのなりすましを防げるわけではない
- GmailやYahoo!メールを使う個人でも、SPFの仕組み自体は利用している
この記事では、SPFの意味、DNSやドメインとの関係、SPFレコードの見方、DKIM・DMARCとの違いについて、会話を中心に初心者向けにわかりやすく解説します。
SPFとは?

SPFは、メールの送信元を確認するための、送信ドメイン認証技術の一つだよ。

メールを送ってきた人が大丈夫か確認するんだね。
でも、送信ドメイン認証って?

そのメールが、本当にそのドメインから送信を許可されたメールサーバーを経由しているか確認する仕組みだね。
SPFは、Sender Policy Frameworkの略です。
ドメインの管理者は、DNSに、
「このドメインのメールは、このメールサーバーから送信します」
という情報を公開します。
メールを受け取ったサーバーは、実際に接続してきた送信メールサーバーのIPアドレスと、DNSに公開された情報を比較します。

SPFは、ドメイン管理者が自分のドメインを使用してよい送信ホストを明示し、受信側がその許可を確認する仕組みとしてRFC 7208で定義されています。
SPFを会社の入館受付で例えてみよう

会社の入館受付で考えてみよう。
ある会社では、荷物を運び込んでよい配送業者を、あらかじめ受付へ登録しているとします。
登録されている配送業者が荷物を持ってきた場合、受付は、
「この会社から許可されている配送業者ですね」
と確認できます。
一方、見覚えのない配送業者が、
「この会社に頼まれて荷物を持ってきました」
と言っても、登録一覧に載っていなければ疑われます。
SPFでも、これと似た確認を行います。

| 入館受付の例 | SPF |
|---|---|
| 荷物を出す会社 | メールのドメイン |
| 許可された配送業者 | 許可された送信メールサーバー |
| 配送業者の識別情報 | 送信元IPアドレス |
| 受付の登録一覧 | DNSのSPFレコード |
| 受付での照合 | SPF認証 |

会社名を名乗っているだけではなく、登録済みの業者かどうかも確認するんだね。

そう。それがSPFの基本的な考え方だよ。
SPFでいうドメインとは?

ドメインって、GmailやYahoo!のこと?

メールアドレスでは、基本的に@より後ろの部分がドメインだよ。
例えば、次のメールアドレスを見てみましょう。
taro@example.com
この場合、それぞれの部分は次のようになります。
| 部分 | 内容 |
|---|---|
| taro | ローカルパート |
| @ | 区切り記号 |
| example.com | ドメイン |
例えば、
gmail.comyahoo.co.jpexample.co.jp
などがドメインです。
会社が独自ドメインを利用している場合は、
employee@company-example.co.jp
のように、@より後ろへ会社独自のドメインが入ります。


@の後ろが会社やサービスを表す部分なんだね。

そう。ただし、SPFでは画面に表示されるメールアドレスのドメインを、そのまま確認するとは限らない点に注意が必要だよ。
SPFは何と何を照合するの?
SPFでは、主に次の二つを照合します。
- メールを送信してきたメールサーバーのIPアドレス
- 送信に使われたドメインがDNSで公開しているSPFレコード

つまり、会社のドメインと送信元IPアドレスの組合せを確認するの?

大まかにはその理解でいいよ。
例えば、example.comのSPFレコードに、
192.0.2.10からの送信を許可する
という内容が登録されていたとします。
実際に192.0.2.10のメールサーバーからexample.comを使ったメールが届けば、SPF認証に成功する可能性があります。
一方、登録されていない203.0.113.50から届けば、SPF認証に失敗する可能性があります。

SPFが確認するのは送信したパソコンのIPアドレス?

SPFは、メールを書いた社員のパソコンに割り当てられたIPアドレスを確認するの?

通常は違うよ。確認するのは、受信メールサーバーへ接続してきた送信メールサーバーのIPアドレスだよ。
会社員がパソコンからメールを送る場合、一般的には次のような流れになります。
社員のパソコン
↓
会社やメールサービスの送信メールサーバー
↓
相手の受信メールサーバー
受信側がSPFで確認するのは、通常、中央にある送信メールサーバーです。

社員のパソコン、スマートフォン、自宅のWi-Fiなどに割り当てられたIPアドレスを、相手の受信メールサーバーがSPFで直接確認するわけではありません。
| IPアドレス | SPFとの関係 |
|---|---|
| 利用者のパソコンのIPアドレス | 通常は直接の確認対象ではない |
| 自宅ルーターのグローバルIPアドレス | 通常は直接の確認対象ではない |
| 送信メールサーバーのIPアドレス | SPFの主な確認対象 |
| 受信メールサーバーのIPアドレス | 判定する側であり、照合対象ではない |

自宅から送信しても、会社のメールサーバーを経由すれば、会社のメールサーバーのIPアドレスが確認されるんだね。

その通り。テレワークでも基本的な考え方は同じだよ。
SPFの仕組み
SPFによる確認は、次のような流れで行われます。
1.ドメイン管理者がSPFレコードを公開する
メールを送信する組織は、DNSにSPFレコードを登録します。
SPFレコードには、そのドメインからメールを送信してよいサーバーのIPアドレスや参照先などを記述します。

2.送信メールサーバーがメールを送る
利用者がメールを作成すると、契約しているメールサービスや会社の送信メールサーバーから、相手のメールサーバーへメールが送られます。

3.受信メールサーバーが接続元IPアドレスを確認する
受信側は、どのIPアドレスのメールサーバーから接続されたのか確認します。

4.DNSからSPFレコードを取得する
受信側は、確認対象となるドメインのDNSを参照し、SPFレコードを取得します。

5.IPアドレスが許可されているか判定する
送信元IPアドレスがSPFレコードで許可されていれば、SPF認証は成功します。
許可されていなければ、失敗や中立などの判定になります。
送信メールサーバー
IP:192.0.2.10
↓
受信メールサーバー
↓
example.comのDNSを確認
↓
192.0.2.10は許可済み?
↓
一致すればSPF認証成功

SPFレコードとは?
SPFレコードは、DNSのTXTレコードとして公開されます。
例えば、次のような形式です。
v=spf1 ip4:192.0.2.10 -all
各部分のおおまかな意味は次のとおりです。
| 記述 | 意味 |
|---|---|
v=spf1 | SPFバージョン1を使用する |
ip4:192.0.2.10 | 指定したIPv4アドレスからの送信を許可する |
-all | それ以外からの送信を許可しない |

DNSにメールサーバーの一覧を登録するんだね。

そう。ただし、IPアドレスを直接書く方法だけではなく、別のドメインの設定を参照する方法もあるよ。

SPFレコードの主な仕組み
SPFレコードでは、送信を許可する対象をさまざまな方法で指定できます。
| 仕組み | 概要 |
|---|---|
ip4 | IPv4アドレスを指定する |
ip6 | IPv6アドレスを指定する |
a | ドメインのA・AAAAレコードを参照する |
mx | ドメインのMXレコードを参照する |
include | 別のドメインのSPF設定を参照する |
all | それまでに一致しなかったすべてを対象にする |
例えば、外部のメール配信サービスを利用する場合、次のようにincludeを使うことがあります。
v=spf1 include:_spf.example-mail.com -all
これは、_spf.example-mail.com側で公開されているSPF設定を参照するという意味です。

外部サービスの送信サーバーを、一台ずつ自分で登録しなくてもよい場合があるんだね。

SPFレコードの記号の違い
SPFレコードでは、仕組みの前に記号を付けて判定を指定できます。
| 記号 | 判定 | 大まかな意味 |
|---|---|---|
+ | Pass | 許可する |
- | Fail | 許可しない |
~ | SoftFail | 許可されていない可能性が高い |
? | Neutral | 判断しない |
+は省略できるため、次の二つは同じ意味です。
+ip4:192.0.2.10
ip4:192.0.2.10
末尾では、次のような記述がよく使われます。
| 記述 | 意味 |
|---|---|
-all | 一致しなかった送信元をFailとする |
~all | 一致しなかった送信元をSoftFailとする |
?all | 一致しなかった送信元について判断しない |
+all | すべての送信元を許可する |
+allは、事実上どのIPアドレスからでも送信を許可するため、なりすまし対策としての効果を失わせます。
SPFの主な判定結果
SPFでは、単純な成功・失敗だけでなく、複数の結果があります。
| 結果 | 内容 |
|---|---|
| Pass | 送信元IPアドレスが許可されている |
| Fail | 送信元IPアドレスが明確に許可されていない |
| SoftFail | 許可されていない可能性が高い |
| Neutral | ドメイン側が判断を示していない |
| None | SPFレコードが存在しない |
| TempError | DNS障害など一時的な問題が起きた |
| PermError | SPFレコードの記述などに恒久的な問題がある |

Failなら必ずメールが拒否されるの?

必ずとは限らないよ。SPFの結果を受信側がどう扱うかは、受信メールサービスのポリシーやDMARCなどによって変わるんだ。
SPFは画面に表示されるFromを確認する?
ここは、SPFを理解するうえで特に重要です。
メールには、利用者の画面に表示されるFromアドレスとは別に、配送処理で使われる送信者情報があります。
ヘッダーFrom
メールソフトの差出人欄に表示されるアドレスです。
From: support@example.com
エンベロープFrom
SMTPによるメール配送やエラー通知の返送先として使われるアドレスです。
一般に、受信後のメールヘッダーではReturn-Pathとして確認できることがあります。
SPFが主に確認するのは、SMTPのMAIL FROMで指定されたエンベロープFromのドメインです。MAIL FROMが空の場合などには、HELO/EHLOで示されたドメインが確認対象になります。

| 項目 | ヘッダーFrom | エンベロープFrom |
|---|---|---|
| 主な用途 | 利用者に差出人を表示する | メール配送やエラー通知に使う |
| 利用者から見えるか | 通常見える | 通常は意識されにくい |
| SPFの主な確認対象 | 直接の対象ではない | 主な確認対象 |
| DMARCとの関係 | 認証ドメインとの一致を確認する | SPF側の認証ドメインになる |

画面に表示される会社のアドレスと、SPFが確認するドメインが違う場合もあるの?

あるよ。だからSPFだけでは、表示上のFromアドレスのなりすましを十分に防げない場合があるんだ。
なぜSPFだけでは不十分なの?
攻撃者が、画面に表示されるヘッダーFromだけを有名企業のアドレスへ変更し、エンベロープFromには攻撃者自身が管理するドメインを使う場合があります。
例えば、次のような状態です。
画面に表示されるFrom:
support@example-bank.co.jp
SPFで確認されるエンベロープFrom:
bounce@attacker-example.com
攻撃者がattacker-example.comのSPFを正しく設定していれば、SPF自体は成功する可能性があります。
しかし、利用者にはexample-bank.co.jpから届いたように見えるかもしれません。


SPFに成功しているのに、画面の差出人は偽装されている可能性があるんだね。

そう。この問題を補うためにDMARCが使われるんだ。
SPFとDKIMの違い
DKIMは、DomainKeys Identified Mailの略です。
送信側がメールへ電子署名を付け、受信側がDNSに公開された公開鍵を使って署名を検証します。
DKIMによって、主に次の点を確認できます。
- 署名したドメイン
- 署名後にメールの対象部分が改変されていないか
DKIMは、署名ドメインがそのメールについて一定の責任を表明できるよう、ドメインとメッセージを暗号学的な署名で関連付ける仕組みです。

| 項目 | SPF | DKIM |
|---|---|---|
| 主な確認対象 | 送信メールサーバーのIPアドレス | メールに付けられた電子署名 |
| DNSに登録するもの | 許可する送信元の情報 | 署名検証用の公開鍵 |
| 確認するもの | そのサーバーから送信してよいか | 正しい秘密鍵で署名されたか |
| 改ざん検知 | 基本的に行わない | 署名対象部分の改ざんを検知できる |
| 転送への強さ | 転送で失敗することがある | 内容が変わらなければ維持されやすい |
| 主な弱点 | 表示Fromを直接保証しない | 署名ドメインと表示Fromが違う場合がある |
DKIMを封筒の封印で例えてみよう

SPFは配送業者の確認、DKIMは封筒の封印確認だと考えると分かりやすいよ。
SPF
荷物を運んできた配送業者が、送り主から許可された業者か確認します。
DKIM
封筒に送り主の特別な封印が付いており、途中で内容が変えられていないか確認します。


SPFは運んできた経路、DKIMはメールに付けられた署名を見るんだね。
SPFとDMARCの違い
DMARCは、Domain-based Message Authentication, Reporting, and Conformanceの略です。
DMARCでは、SPFやDKIMの認証結果に加えて、認証に使われたドメインと、利用者に表示されるヘッダーFromのドメインが整合しているかを確認します。
このドメインの一致関係をアライメントと呼びます。
また、認証に失敗したメールについて、
- そのまま受信する
- 隔離する
- 拒否する
といった処理方針を、ドメイン所有者がDNSで示せます。
DMARCは、SPF・DKIMの結果とFromドメインの整合性を使い、認証に失敗したメールの扱いやレポートの方針を示す仕組みです。

| 項目 | SPF | DMARC |
|---|---|---|
| 主な役割 | 送信元IPアドレスの許可を確認する | SPF・DKIMと表示Fromの関係を確認する |
| 表示Fromとの一致 | 単独では要求しない | アライメントを確認する |
| 失敗時の方針 | SPF結果を返す | none・quarantine・rejectなどを示す |
| レポート | 基本機能ではない | 認証結果のレポートを受け取れる |
| 使用する認証 | SPF | SPFとDKIMの一方または両方 |
SPF・DKIM・DMARCの関係
三つの技術を、会社から届く荷物に例えると次のようになります。

| 技術 | 荷物の例 | 確認すること |
|---|---|---|
| SPF | 配送業者の確認 | 許可されたメールサーバーか |
| DKIM | 封印・署名の確認 | 正しい署名があり、対象部分が改変されていないか |
| DMARC | 送り状と会社名の総合確認 | 認証されたドメインと表示Fromが整合しているか |

三つのうち、一つだけ設定すればいいの?

それぞれ確認する内容が違うから、組み合わせることが大切だよ。
Googleも、ドメインから送るメールについてSPF・DKIM・DMARCを設定することを推奨しています。
DMARCのポリシー
DMARCでは、認証に失敗したメールをどのように扱ってほしいかを、ポリシーとして示します。
| ポリシー | 大まかな意味 |
|---|---|
p=none | 通常どおり扱いながら結果を確認する |
p=quarantine | 迷惑メールなどとして隔離するよう求める |
p=reject | 受信を拒否するよう求める |
ただし、最終的にメールをどう扱うかは受信側の判断も関係します。
DMARCを導入するときは、正規のメールがすべてSPFまたはDKIMに対応していることを確認しながら、段階的にポリシーを強化するのが一般的です。
SPFのメリット
送信元ドメインのなりすまし対策になる
無関係なメールサーバーが、他社のドメインをエンベロープFromとして使用する行為を検出しやすくなります。
DNSへ設定できる
SPFはDNSのTXTレコードとして公開できるため、ドメイン単位で送信元を管理できます。
受信側が自動的に確認できる
利用者がメールを一通ずつ確認しなくても、受信メールサーバーが認証を実行できます。
正規メールの到達性向上につながる
適切なSPF設定は、受信側が正規のメールであるか判断する材料になります。
ただし、SPFに成功しただけで必ず迷惑メール判定を避けられるわけではありません。
比較的導入しやすい
独自ドメインとDNSの管理権限があれば、利用中の送信サービスを確認し、SPFレコードを設定できます。
SPFのデメリット・注意点
SPFだけでは表示Fromを保証できない
SPFは主にエンベロープFromのドメインを確認します。
利用者に表示されるヘッダーFromとの一致は、DMARCで補う必要があります。
メール転送で失敗することがある
メールが別のメールサーバーを経由して転送されると、受信側から見える接続元IPアドレスが転送サーバーのものになります。
転送サーバーが元の送信ドメインのSPFレコードに含まれていなければ、SPF認証に失敗する可能性があります。
外部サービスの登録漏れが起きる
会社では、次のような複数のサービスからメールを送ることがあります。
- 社内メールシステム
- メールマガジン配信サービス
- 問い合わせフォーム
- CRM
- 採用管理システム
- 請求書送信サービス
- 監視システム
一つでもSPFへ反映されていないと、そのサービスから送る正規メールが認証に失敗する可能性があります。
DNS参照回数に制限がある
SPFの評価では、include、a、mxなどによるDNS参照回数に制限があります。
複数の外部サービスを無計画に追加すると、SPFの評価がエラーになる可能性があります。
設定が広すぎると効果が弱くなる
許可するIPアドレスやサービスの範囲を広げすぎると、その中に含まれるサーバーからドメインを利用される可能性が広がります。
会社が独自のメールサーバーを持つ場合だけ使う?

SPFは、会社が自分でメールサーバーを持っている場合だけ使うの?

違うよ。外部のメールサービスを使っていても、独自ドメインからメールを送るならSPF設定が関係するよ。
例えば、会社が次のようなサービスを使っている場合です。
- Google Workspace
- Microsoft 365
- レンタルサーバーのメール機能
- メール配信サービス
- CRMのメール送信機能
会社が自前でサーバーを所有していなくても、その会社のドメインからメールを送るサービスをSPFで許可します。
| メール環境 | SPF設定 |
|---|---|
| 自社運用のメールサーバー | 自社サーバーの送信元を登録する |
| Google Workspace | Googleの指定する送信元を許可する |
| Microsoft 365 | Microsoftの指定する送信元を許可する |
| 外部配信サービス | サービス指定のSPF情報を追加する |
| 複数サービスを併用 | 正規の送信元をまとめて許可する |

サーバーを自社で所有しているかではなく、独自ドメインからどのサービスがメールを送るかが重要なんだね。
個人には関係のない仕組み?

個人でGmailやYahoo!メールを使うだけなら、SPFは関係ないの?

仕組み自体は利用しているけれど、普通の利用者が設定する場面は少ないよ。
例えば、個人がexample@gmail.comからメールを送る場合、gmail.comのDNSや送信メールサーバーはGoogle側が管理します。
利用者は、Googleが適切に設定した仕組みを利用しているため、自分でgmail.comのSPFを変更することはできません。
一方、個人でも次のような場合はSPF設定を意識する必要があります。
- 独自ドメインを取得した
- ブログのお問い合わせメールを送信する
- メールマガジンを配信する
- レンタルサーバーからメールを送る
- Google Workspaceなどで独自ドメインを使う
- WordPressから通知メールを送る

個人でも使っているけれど、独自ドメインを持っていなければ自分で設定することは少ないんだね。
会社がYahoo!メールやGmailを使っていればSPFは無意味?

会社がYahoo!メールや無料のGmailを使っていたら、なりすまし対策の効果は弱いの?

SPFそのものが無意味になるわけではないよ。ただし、会社独自のドメインを守るという効果は得られない場合があるね。
例えば、会社が、
company-example@gmail.com
を使っている場合、SPFで管理されるドメインはgmail.comです。
gmail.comはGoogleが管理しているため、その会社が自分でSPFポリシーを設定するわけではありません。
また、メールアドレスだけを見ても、その会社が本当にそのGmailアカウントを所有しているかは、会社独自ドメインほど判断しやすくありません。
一方、
contact@company-example.co.jp
のような独自ドメインであれば、会社自身がSPF・DKIM・DMARCを設定し、ドメインの信頼性を管理できます。
| 利用方法 | SPFの管理者 | 会社独自ドメインの保護 |
|---|---|---|
| 無料Gmail | 対象外 | |
| Yahoo!メール | Yahoo!側 | 対象外 |
| 独自ドメイン+Google Workspace | ドメイン所有者とGoogle | 可能 |
| 独自ドメイン+Microsoft 365 | ドメイン所有者とMicrosoft | 可能 |
| 独自メールサーバー | ドメイン所有者 | 可能 |
SPFが成功したメールは安全?

SPFに成功していれば、安全なメールと考えていい?

SPFに成功したことだけでは、安全とは断定できないよ。
SPFの成功が示すのは、
「そのドメインのSPF設定上、その送信元IPアドレスは許可されている」
ということです。
次のような危険までは防げません。
- 攻撃者が自分で取得したドメインを正しくSPF設定している
- 正規のメールアカウントが乗っ取られている
- メール本文に危険なリンクが含まれている
- 表示名だけが有名企業名になっている
- 正規サービスの送信機能が悪用されている
- SPFの確認対象と表示Fromのドメインが異なる


SPFは安全性を判断する材料の一つであって、安全証明書ではないんだね。

その通り。迷惑メール判定では、DKIM、DMARC、送信元の評判、本文、リンクなども確認されるよ。
SPFとIPアドレス制限の違い
SPFはIPアドレスを利用しますが、一般的なアクセス制御のIPアドレス制限とは目的が異なります。
| 項目 | SPF | IPアドレス制限 |
|---|---|---|
| 主な目的 | メール送信元の認証 | システムへのアクセス制御 |
| 対象 | 送信メールサーバー | 利用者や接続元端末 |
| 設定場所 | DNS | ファイアウォールやアプリケーション |
| 成功時 | 正規の送信元と判断する材料になる | システムへの接続を許可する |
| 失敗時 | 認証失敗として処理する | 接続を拒否する |
SPFと迷惑メールフィルターの違い

SPFは迷惑メールフィルターなの?

SPFは認証結果を提供する仕組みで、迷惑メールを総合判断するフィルターそのものではないよ。
迷惑メールフィルターは、例えば次の情報を組み合わせて判定します。
- SPFの結果
- DKIMの結果
- DMARCの結果
- 送信元IPアドレスの評判
- ドメインの評判
- メール本文
- URL
- 添付ファイル
- 過去の受信実績
- 利用者からの迷惑メール報告
| 項目 | SPF | 迷惑メールフィルター |
|---|---|---|
| 主な役割 | 送信元の許可を確認する | メール全体の危険性を判定する |
| 判断材料 | IPアドレスとDNS | 認証結果、本文、URL、評判など |
| 結果 | Pass、Failなど | 受信、隔離、拒否など |
| 関係 | 判定材料の一つ | SPFを利用することがある |
メール転送でSPFが失敗する理由

どうして転送するとSPFに失敗することがあるの?

受信側から見える接続元IPアドレスが、元のメールサーバーではなく、転送サーバーになるからだよ。
例えば、次の流れを考えてみましょう。
example.comの正規メールサーバー
↓
転送メールサーバー
↓
最終的な受信メールサーバー
最終的な受信側から見ると、接続してきたのは転送メールサーバーです。
しかし、example.comのSPFレコードには、通常その転送サーバーは登録されていません。
そのため、SPF認証に失敗する可能性があります。
この問題への対策として、DKIMやDMARCとの併用、転送側でのSRSなどが利用される場合があります。

SRSとは?
SRSは、Sender Rewriting Schemeの略です。
メールを転送する際に、エンベロープFromを書き換え、転送先でSPF認証が失敗しにくくする仕組みです。

表示されるFromまで書き換えるの?

通常は利用者が見るヘッダーFromではなく、配送に使うエンベロープFromを書き換えるよ。
ただし、SRSの導入状況はメールサービスによって異なります。

SPF設定時の注意点
正規の送信元をすべて洗い出す
メールサーバーだけでなく、Webサイトやクラウドサービスから送信されるメールも確認します。
SPFレコードを複数作らない
同じドメインに複数のv=spf1レコードを登録すると、PermErrorになる可能性があります。
原則として、必要な送信元を一つのSPFレコードへまとめます。
不要な送信元を残さない
利用を終了したサービスのincludeなどを残すと、許可範囲が無駄に広がります。
DNS参照回数を確認する
includeを追加すると、その参照先がさらに別のDNS参照を行う場合があります。
見た目の記述が短くても、評価時の参照回数が多くなることがあります。
いきなり厳しい設定にしない
現在利用している送信元を把握せずに-allを設定すると、正規メールがFailになる可能性があります。
SPF・DKIMを確認し、DMARCのレポートなども利用しながら段階的に整備することが大切です。
ITパスポート・基本情報・応用情報の試験対策
SPFは、電子メールセキュリティや送信ドメイン認証に関する用語として、情報処理技術者試験で問われる可能性があります。
特に、SPF・DKIM・DMARCの違いを整理しておきましょう。
試験別に押さえたい内容
| 試験 | 主な対策ポイント |
|---|---|
| ITパスポート | SPFがメールのなりすまし対策であること |
| 基本情報技術者 | DNSと送信元IPアドレスを使う仕組み |
| 応用情報技術者 | DKIM・DMARCとの違い、転送時の課題、アライメント |
試験で覚えたい比較表
| 用語 | 主な確認方法 | 確認対象 |
|---|---|---|
| SPF | DNSの許可情報とIPアドレスを照合 | 送信メールサーバー |
| DKIM | 公開鍵で電子署名を検証 | メールの署名と署名ドメイン |
| DMARC | SPF・DKIMと表示Fromを照合 | ドメインのアライメント |
| S/MIME | 証明書と公開鍵暗号を利用 | 個人・組織の署名や暗号化 |
| 迷惑メールフィルター | 複数の情報を総合評価 | メール全体 |
試験問題で注目する表現
| 問題文の表現 | 考えられる答え |
|---|---|
| DNSに送信可能なIPアドレスを登録する | SPF |
| メールへ電子署名を付ける | DKIM |
| SPF・DKIMとFromドメインの整合性を確認する | DMARC |
| 公開鍵証明書を使ってメールを署名・暗号化する | S/MIME |
| 未承認の送信メールサーバーを検出する | SPF |
| メールの改ざんを検知する | DKIM |
| 認証失敗時に隔離や拒否の方針を示す | DMARC |
SPF・DKIM・DMARCの覚え方

3つは次のように覚えるといいよ。
- SPF:どこから来たか
- DKIM:誰が署名したか、途中で変わっていないか
- DMARC:表示された差出人と認証結果が合っているか
より具体的には、次のように整理できます。
| 技術 | 覚え方 |
|---|---|
| SPF | 送信サーバーの名簿 |
| DKIM | メールに付ける電子的な封印 |
| DMARC | 差出人表示まで含めた総合審査 |
よくある誤解
✖️SPFは送信したパソコンのIPアドレスを確認する
Bさん
「SPFは社員のパソコンのIPアドレスを登録するんだよね?」
Aさん
「通常は違うよ。登録するのは、相手の受信メールサーバーへ接続する送信メールサーバーのIPアドレスや送信サービスだよ。」
テレワークで社員の接続元が変わっても、同じ会社の送信メールサーバーを経由するのであれば、通常は社員ごとのIPアドレスをSPFへ追加する必要はありません。
✖️SPFに成功すれば表示された差出人も本物
SPFは、主にエンベロープFromのドメインを確認します。
表示されるヘッダーFromが同じドメインであることを、SPF単独では保証しません。
この違いを補うのがDMARCのアライメントです。
✖️SPFに成功したメールには危険な内容がない
SPFは、メール本文、URL、添付ファイルの安全性を確認する仕組みではありません。
攻撃者自身のドメインでSPFを正しく設定し、フィッシングメールを送ることも可能です。
✖️SPFを設定すれば迷惑メールが届かなくなる
SPFは、自分のドメインがなりすましに使われることを防ぎやすくする仕組みです。
世の中の別のドメインから送られる迷惑メールを、すべて止める仕組みではありません。
受信側では迷惑メールフィルターなどが別途必要です。
✖️SPFはメールアドレスごとに設定する
SPFは、通常、taro@example.comやhanako@example.comのような個別アドレスごとではなく、ドメイン単位でDNSに設定します。
✖️SPFはメールサーバーを自社で持つ会社だけが使う
外部のメールサービスを使っていても、独自ドメインからメールを送る場合はSPFが関係します。
サービス事業者が指定するincludeなどをDNSへ登録することがあります。
✖️SPFレコードは多いほど安全
同じドメインに複数のSPFレコードを作成すると、正しく評価できなくなる可能性があります。
また、許可するサービスを増やしすぎると、送信を許可する範囲も広くなります。
必要な送信元だけを、一つの適切なSPFレコードへまとめることが大切です。
✖️~allなら設定は完成している
~allは、登録されていない送信元をSoftFailとする記述です。
導入初期や移行中に使われることもありますが、常に最適とは限りません。
正規の送信元を確認したうえで、DKIM・DMARCを含めた全体設計を考える必要があります。
✖️SPFがあればDKIMやDMARCは不要
SPF・DKIM・DMARCは、それぞれ異なる弱点を補います。
SPFだけでは表示Fromのなりすましや、メール内容の改ざんを十分に確認できません。
そのため、三つを組み合わせることが重要です。
まとめ
SPFとは、メールを送信してきたメールサーバーのIPアドレスが、そのドメインからの送信を許可されているか確認する仕組みです。
ドメインの管理者は、DNSにSPFレコードを公開します。
受信メールサーバーは、実際に接続してきた送信メールサーバーのIPアドレスと、SPFレコードの内容を照合します。
ただし、SPFが主に確認するのは、利用者の画面に表示されるヘッダーFromではなく、メール配送に使われるエンベロープFromのドメインです。
そのため、SPFに成功しただけでは、画面に表示された差出人アドレスが本物であるとは断定できません。
SPFの弱点を補うために、メールへ電子署名を付けるDKIMや、SPF・DKIMと表示Fromのドメインを照合するDMARCが利用されます。
最後に要点を整理します。
| 項目 | 内容 |
|---|---|
| 用語 | SPF |
| 正式名称 | Sender Policy Framework |
| 一言でいうと | 許可されたメールサーバーから送られたか確認する仕組み |
| 主な目的 | 送信ドメインのなりすまし対策 |
| 確認に使うもの | 送信メールサーバーのIPアドレスとDNS |
| DNSの設定 | TXTレコードとしてSPFレコードを公開する |
| 主な確認ドメイン | エンベロープFromのドメイン |
| 確認しないもの | 利用者のパソコンのIPアドレス、本文の安全性 |
| SPFの弱点 | 表示Fromを直接保証しない、転送に弱い |
| DKIMとの違い | DKIMは電子署名を検証する |
| DMARCとの違い | DMARCは表示Fromとのアライメントを確認する |
| 個人との関係 | 通常はサービス側が設定するが、独自ドメインでは自分も関係する |
| 試験対策 | 「DNSに許可する送信元IPアドレスを公開」と覚える |
| 覚え方 | SPFは送信メールサーバーの名簿確認 |

SPFは、メールを書いたパソコンのIPアドレスを確認する仕組みではないんだね。

そう。基本的には、相手の受信サーバーへ接続した送信メールサーバーのIPアドレスを確認するんだ。

そのIPアドレスが、ドメインのDNSに登録された許可済みの送信元か調べるんだね。

そうだね。

でも、SPFが成功しても、画面に表示されたFromアドレスまで本物とは限らないんだね。

そう。だからDKIMやDMARCも組み合わせることが大切なんだ。

SPFは送信サーバーの名簿、DKIMは電子的な封印、DMARCは表示された差出人まで含めた総合審査だね。

完璧だよ。その三つの役割を区別できれば、メール認証の基本をしっかり理解できているよ。

