はじめに

【9秒チャレンジ】
SPFは、送信に使われたメールサーバーの正当性を確かめる仕組み。よく誤解されるが、「送信者本人の正当性」ではなく、あくまでも「送信メールサーバーの正当性」を検証するもの。
仕組みは以下の通り:
- 受信サーバーは、SMTPの MAIL FROM(エンベロープFrom)フィールドのドメイン を確認する。
- そのドメインの DNSサーバー に問い合わせ、SPFレコード(TXTレコード)を取得する。
- SPFレコードには、そのドメインが許可する 送信元メールサーバーのIPアドレス が記載されている。
- 受信サーバーは、実際に送られてきたメールの 送信元IPアドレス が、そのリスト内にあるかをチェック。
- 一致していれば「正当なメールサーバーからの送信」と判定し、不一致なら「なりすましの可能性あり」と判断する。
👉 SPF = 送信メールサーバーの正当性をDNSで確認する仕組み!
更に詳しく知りたい場合↓
では、練習問題を通して実感していきましょう!
問題
設問1
SPF(Sender Policy Framework)は電子メールの送信ドメイン認証技術の一つであり、不正なメール送信を防ぐために使用される。SPFの基本的な仕組みについて、以下の問いに答えよ。
- SPFの認証プロセスにおいて、DNSに登録されるレコードの種類を答えよ。
- SPFレコードに指定される「
include
」の役割を説明せよ。 - SPFレコードの評価結果(
Pass
,Fail
,SoftFail
,Neutral
など)の違いを説明せよ。
設問2(SPFレコードの解析)
ある企業のメールサーバーの管理者が、以下のSPFレコードを設定した。
v=spf1 ip4:203.0.113.10 include:spf.example.net -all
このSPFレコードについて、以下の問いに答えよ。
- このSPFレコードが意味する内容を日本語で説明せよ。
-all
の意味を説明し、~all
や?all
との違いを述べよ。- 送信元IPアドレスが
203.0.113.20
であるメールが送信された場合、このSPFレコードに基づく認証結果はどうなるか。理由も含めて説明せよ。
設問3(SPFと他のメールセキュリティ技術との関係)
SPFは送信ドメインのなりすましを防ぐ技術の一つであるが、単独では完全なセキュリティ対策とはならない。そのため、DKIM(DomainKeys Identified Mail)やDMARC(Domain-based Message Authentication, Reporting, and Conformance)と組み合わせて運用されることが多い。
- SPFとDKIMの違いを説明せよ。
- DMARCがSPFやDKIMとどのように連携して動作するかを説明せよ。
- SPFの仕組みにおける「フォワードメール」の課題を説明し、それを解決するための方法を1つ挙げよ。
このような問題がネットワークスペシャリスト試験の午後問題として出題される可能性があります。さらに詳しく解説が必要な部分があれば教えてください。
解説
設問1
1. SPFの認証プロセスにおいて、DNSに登録されるレコードの種類を答えよ。
解答:
SPFレコードは TXTレコード としてDNSに登録される。
解説:
かつてSPF専用の SPF
レコードが提案されたが、現在は TXT
レコードを使用するのが一般的である。DNSに TXT
レコードとしてSPFポリシーを記述し、受信メールサーバーが送信元のIPアドレスと照合して認証を行う。

前提として、SPFレコードはそのメールドメインを管理する送信側のDNSサーバに登録する。これを念頭に置いて、軽くSPFの流れを頭に入れましょう。
- 送信元IP(
203.0.113.20
)がSPFレコードに含まれていなければ、SPF認証 Fail(失敗) となる。 user@example.com
からメールを送信。- 受信サーバーが送信元IPアドレスを取得(例:
203.0.113.20
)。 - 受信サーバーは 「example.com のDNSサーバー」 に問い合わせ、SPFレコードを取得。
- 取得したSPFレコードと、実際の送信元IPアドレスを照合。
2. SPFレコードに指定される「include」の役割を説明せよ。
解答:include
は、別のドメインのSPFレコードを参照し、そのドメインで許可された送信元IPアドレスも有効とみなすために使用される。
解説:
例えば、example.com
では、以下の2つのサーバーを使ってメールを送信しているとします。
- 自社サーバー(IPアドレス:
203.0.113.10
) - Google Workspace(Gmail の送信サーバーを利用)
この場合、SPFレコードは以下のようになります。
v=spf1 ip4:203.0.113.10 include:_spf.google.com -all
この設定の意味
- 自社のサーバー(
203.0.113.10
) からの送信を許可 - Google の SPF レコード(
_spf.google.com
)に記載されたサーバーも許可_spf.google.com
の中には、Gmailの正規の送信サーバーのIPアドレスが含まれている- これを 「そのまま」 参照できるので、管理が楽になる

つまり、「このメールは、Gmailの送信サーバーを使って送ることもあるから、Gmailの正規サーバーもSPFで許可してね!」 という意味で include:_spf.google.com
を使う、ということです!
こうすることで複数のメールサーバーを使うときも、それぞれのSPF設定を手動で書く代わりに 他のドメインのSPFレコードを簡単に参照できるというわけです。
3. SPFレコードの評価結果(Pass, Fail, SoftFail, Neutral など)の違いを説明せよ。
解答:
- Pass(合格): 送信元IPアドレスがSPFレコード内で明示的に許可されている。
- Fail(失敗): 送信元IPアドレスがSPFレコードで許可されていない(
-all
の指定時)。 - SoftFail(弱い失敗): 送信元IPアドレスが許可されていないが、厳格な拒否は行わない(
~all
の指定時)。 - Neutral(中立): SPFポリシーに適合するかどうかを示さない(
?all
の指定時)。
解説:-all
を使うと、SPF認証に失敗したメールがブロックされる可能性があるため、最初は ~all
を使用し、運用を確認してから -all
に変更するのが一般的である。
設問2(SPFレコードの解析)
1. このSPFレコードが意味する内容を日本語で説明せよ。
v=spf1 ip4:203.0.113.10 include:spf.example.net -all
解答:
このSPFレコードは、次のルールを指定している。
ip4:203.0.113.10
→ 送信元IPアドレスが203.0.113.10
の場合、メール送信を許可include:spf.example.net
→spf.example.net
のSPFポリシーを適用-all
→ 許可されていない送信元IPアドレスからのメールは拒否
2. -all の意味を説明し、~all や ?all との違いを述べよ。
解答:
-all
(Fail) → SPF認証に失敗した場合、メールを拒否または破棄する。~all
(SoftFail) → SPF認証に失敗した場合、メールは受け取るが、スパムとして扱われる可能性がある。?all
(Neutral) → SPFポリシーを適用しない(どの送信元でも許可・拒否の判定を行わない)。
解説:
厳格なポリシーを採用する場合 -all
を使用するが、導入直後は ~all
にして影響を観察することが推奨される。
3. 送信元IPアドレスが 203.0.113.20 であるメールが送信された場合、このSPFレコードに基づく認証結果はどうなるか。理由も含めて説明せよ。
解答:
SPF認証は Fail(失敗) となる。
理由:
ip4:203.0.113.10
にはマッチしない。spf.example.net
のSPFポリシーを参照するが、203.0.113.20
が含まれていなければ適合しない。-all
により、許可されていない送信元は拒否される。
解説:
この設定では、明示的に許可されたIPアドレス以外からのメール送信は許可されないため、メールがブロックされる可能性が高い。
設問3(SPFと他のメールセキュリティ技術との関係)
1. SPFとDKIMの違いを説明せよ。
解答:
- SPF → 送信元IPアドレスの正当性を検証する。
- DKIM → 電子署名を用いてメールの改ざんを防ぐ。
解説:
SPFはIPアドレスベースで認証を行うため、メール転送時に破綻する可能性がある。一方、DKIMはメールのヘッダーや本文に署名を付けることで、改ざんを防止できる。

SPFは 「送信者のメールアドレスが本物かどうか」 を直接チェックするのではなく、あくまでも送信メールサーバの正当性を確認する仕組みです。
例えば、攻撃者が user@example.com
を詐称してメールを送ったとしても、正規の example.com
のメールサーバーを経由すれば、SPF認証は PASS(成功) してしまいます。
つまり、SPFはメールサーバーの正当性は保証できるが、送信者本人が本当に正しいかどうかまでは保証できない ということです。
2. DMARCがSPFやDKIMとどのように連携して動作するかを説明せよ。
解答:
DMARCは、SPFおよびDKIMの認証結果を基に、受信メールの処理ポリシー(許可・隔離・拒否)を決定する。
解説:
DMARCポリシーは p=none
(監視のみ)、p=quarantine
(隔離)、p=reject
(拒否)などを指定できる。さらに、認証失敗時のレポートを受け取ることが可能である。

先ほども述べたように、SPFだけでは脆弱です。そこで、DKIM(電子署名)やDMARC(総合ポリシー)を組み合わせて使うことで、送信者のなりすましをより強力に防ぐことができます。
- SPF → メールを送った サーバー の正当性をチェック
- DKIM → メールに付与された 電子署名 をチェック(改ざん防止)
- DMARC → SPFとDKIMを組み合わせて、なりすまし対策のポリシーを設定
3. SPFの仕組みにおける「フォワードメール」の課題を説明し、それを解決するための方法を1つ挙げよ。
解答:
課題:
フォワードメールでは、元の送信者のIPアドレスが維持されないため、転送先の受信サーバーがSPF認証を失敗と判定する可能性がある。
解決策:
SPFの代替策として、DKIM を利用することで、電子署名によりメールの正当性を保証する。
解説:
SPFは転送メールと相性が悪いため、DMARCとDKIMを併用することで認証成功率を高めることができる。
まとめ
SPFはIPアドレスを基にした送信者認証を行うが、単独ではフォワードメールの問題などがあるため、DKIMやDMARCと組み合わせることが重要である。