SPF(送信ドメイン認証)(Sender Policy Framework)

分類
テクノロジ系 セキュリティ
出る試験
基本情報応用情報
重要度
★★★★☆

そのドメインから送ってよいサーバのIPアドレスをDNSに公開し、受信側が差出人の正しさを確かめる仕組み。

もう少し詳しい説明

SPF(Sender Policy Framework)は、そのドメインから送ってよいメールサーバを、あらかじめ公開しておく仕組みです。送信ドメイン認証と呼ばれるものの1つです。

なぜ必要なのか

電子メールのプロトコルであるSMTPには、差出人が本物かを確かめる仕掛けがありません。

封筒に書く差出人は、書いた本人が自由に決められます。[email protected] と名乗って送ることを、SMTPは止めません。

この穴を、外から塞ぐのがSPFです。SMTP自体を作り直すのではなく、DNS(名前からIPアドレスを調べる仕組み。インターネット上の住所録にあたる)を使って「このドメインから送るのはこのサーバだけ」と宣言します。

仕組み

メール問い合わせ送信サーバ203.0.113.10 から送る受信サーバ送信元IPを照合するDNS許可IPの一覧(TXT)
受信側は、差出人のドメインのDNSに問い合わせ、返ってきた許可一覧に送信元のIPアドレスがあるかを確かめます。見ているのは送ってきたサーバであって、本文が書き換えられていないかではありません。そこを見るのはDKIMのほうです。
誰がやるか何をするか
準備送る側のドメイン管理者許可するサーバのIPアドレスをDNSに書く
1送信サーバメールを送る
2受信サーバ差出人のドメインをDNSに問い合わせる
3受信サーバ返ってきた一覧に、送ってきたIPアドレスがあるか照合する
4受信サーバ無ければ、拒否するか迷惑メール扱いにする

DNSには、こんな形で書きます。

example.com.  IN TXT  "v=spf1 ip4:203.0.113.10 include:_spf.example.net -all"

この1行を、前から順に読んでいきます。

まず example.com. が、この設定を書いているドメイン(インターネット上の住所にあたる名前)です。続く IN TXT は、DNSに置く情報の種類で、文字列をそのまま置く欄を指します。SPFは専用の欄を持たず、この文字列の欄を借りて書きます。

残りの引用符の中が、SPFの中身です。

部分意味
v=spf1ここからがSPFの設定だという目印。version(版)の v
ip4:203.0.113.10このIPアドレス(機器1台1台に割り当てられる番号)から送られたものは許可する
include:_spf.example.net別のドメインに書いてある設定も、ここに取り込む。メール配信を外の業者に任せているときに使う
-allここまでに当てはまらなかったものは拒否する

つまりこの1行は、「example.com を名乗るメールは、203.0.113.10 と、_spf.example.net に書いてあるサーバからのものだけが本物。それ以外は拒否してよい」と宣言しています。

末尾の指定で、受信側にどう扱ってほしいかが変わります。

書き方意味
-all拒否してよい(厳しい)
~all疑わしい扱い(迷惑メール行き)
?allどちらとも言わない(事実上、意味がない)

確かめているのは「サーバ」

ここが取り違えの中心です。

SPFが照合するのは、送ってきたサーバのIPアドレスです。本文が改ざんされていないかは見ていません。

確かめられること確かめられないこと
正しいサーバから送られたか本文が途中で書き換えられていないか
本文が暗号化(中身を、決まった手順で読めない形に変えること)されているか
書いてある内容が本当か

SPFを通ったメールが安全とは限りません。 攻撃者が自分のドメインを取得して、そのドメインにSPFを正しく設定すれば、SPFは通ります。通るのは「そのドメインの正規のサーバから送られた」ということだけです。

転送されると失敗する

SPFの弱点として、試験にも出ます。

メールが途中で別のアドレスへ転送されると、最後に届けるのは転送したサーバになります。そのサーバは、もとのドメインのDNSには載っていません。

本物のメールなのに、SPFでは失敗します。 この弱点を補うのが、次のDKIMです。

DKIMとDMARC

送信ドメイン認証は、3つを組にして使います。

何で確かめるか本文の改ざんを見るか
SPF送信元のIPアドレス見ない
DKIMデジタル署名見る
DMARCSPFとDKIMの結果をどう扱うか—

DKIMは、送信側が本文にデジタル署名を付け、受信側が公開鍵(これもDNSに置かれます)で検証します。本文が書き換えられていれば検証に失敗します。転送されても署名は残るので、SPFの弱点を埋めます。

DMARCは、SPFかDKIMが失敗したときにどうしてほしいかをドメイン側が指定する仕組みです。「何もしない」「隔離する」「拒否する」の3つから選び、結果の報告も受け取れます。

3つの役割分担がそのまま出題されます。

試験ではこう出る

科目A(旧・午前)では、SPFの仕組みの説明を選ばせる形が出ます。「DNSに登録した許可IPアドレスと照合する」が答えです。

DKIMとの違いも頻出です。IPアドレスで見るのがSPF、デジタル署名で見るのがDKIMです。「本文の改ざんを検知できる」と書いてあればDKIMです。

DMARCの位置づけ(SPFとDKIMの結果の扱いを決める)も出ます。

応用情報では、なりすましメール対策として何を組み合わせるかという形で出ます。SPFだけでは転送で失敗する、という弱点が根拠になります。

関連する用語

DNS
許可するIPアドレスの一覧は、DNSのレコードとして公開する
電子メールのプロトコル
SMTPには差出人を確かめる仕掛けがない。その穴を外から塞ぐ
デジタル署名
DKIMはこの考え方でメールを署名する。SPFとは別の角度
IPアドレス
SPFが照合するのは、送ってきたサーバのこの値

ミニクイズ

SPF(Sender Policy Framework)の仕組みとして、適切なものはどれか。

正解は 3番:送信元ドメインのDNSに登録された許可IPアドレスと、実際の送信元を照合する

SPFは、そのドメインから送ってよいメールサーバのIPアドレスを、あらかじめDNSのTXTレコードとして公開しておく仕組みです。受信側は、届いたメールの送信元IPアドレスがその一覧に入っているかを確かめます。本文に署名を付けて検証するのはDKIM、本文を暗号化するのはS/MIMEやPGP、過去の送信元を一覧で拒否するのはブラックリスト方式で、どれもSPFとは別の仕組みです。SPFが確かめるのは送ってきたサーバであって、本文が改ざんされていないかではありません。

間違えた用語の復習リストを見る →

この分野をまとめて解く → セキュリティのミニテスト(全47問)

最終更新:2026-10-20