SPF

読み:えすぴーえふ / 英語表記:Sender Policy Framework

送信ドメイン認証の方式の1つ。ドメインの管理者が、そのドメインのメールを送信してよいメールサーバのIPアドレスを、DNSにSPFレコードとして公開しておき、受信側がそれと照合して、なりすましを検出する。

イマシルちゃんの解説

手紙の差出人の欄には、誰でも好きな名前を書けちゃうよね。メールも同じで、送信者のアドレスはかんたんに偽れちゃうんだ。

そこでSPFでは、ドメインの持ち主が「うちのメールは、このサーバからしか出しませんよ」っていうリストを、インターネット上に公開しておくんだ。
メールを受け取った側は、そのリストを見て、
「このメール、リストにないサーバから来てる!なりすましかも?」って見破れるんだよ!

より深い解説

定義

SPF(Sender Policy Framework)は、RFC 7208で定められた送信ドメイン認証の技術である。メールの送信元のドメインの管理者が、そのドメインのメールを送信する正規のメールサーバのIPアドレスを、DNSのTXTレコード(SPFレコード)に記述して公開する。受信側のメールサーバは、メールを送ってきたサーバのIPアドレスが、そのリストに含まれているかを確認する。

仕組み

  1. 送信側のドメインの管理者が、DNSにSPFレコードを登録する
  2. メールを受信したサーバは、SMTPのMAIL FROMコマンドで示された送信者(エンベロープの送信者)のドメインを取り出す
  3. そのドメインのSPFレコードを、DNSに問い合わせる
  4. メールを送ってきたサーバ(SMTPの接続元)のIPアドレスが、SPFレコードに含まれているかを照合する

SPFレコードの例

example.jp.  IN TXT  "v=spf1 ip4:192.0.2.10 include:_spf.mail.example.net -all"
記述意味
v=spf1SPFのバージョン
ip4:192.0.2.10このIPアドレスからの送信を認める
include:…指定したドメインのSPFレコードの内容も含める(外部のメール配信サービスを使う場合など)
-allそれ以外からの送信は認めない(fail)
~allそれ以外は、認めないが受け取りはする(softfail)

認証の結果

結果意味
pass正規のサーバから送られた
fail正規のサーバではない(なりすましの可能性が高い)
softfail正規のサーバではないが、厳密には判断しない
noneSPFレコードがない

結果をどう扱うか(拒否、隔離、受信して印を付けるなど)は、受信側が決める。この扱いを送信側が指定できるようにしたのがDMARCである。

SPFの弱点

弱点内容
転送に弱いメールが転送されると、転送したサーバのIPアドレスから送られるため、認証に失敗する
ヘッダーの送信者は確認しないSPFが確認するのはエンベロープの送信者で、利用者が画面で見るヘッダーのFromは確認しない
改ざんは検出できない送信元のサーバを確認するだけで、メールの内容の改ざんは検出できない

これらを補うため、DKIM(電子署名による認証)やDMARC(ヘッダーのFromとの整合の確認)と組み合わせて使う。

送信ドメイン認証の比較

技術確認の方法確認するドメイン
SPF送信元サーバのIPアドレスエンベロープの送信者(MAIL FROM)
DKIM電子署名署名に記載されたドメイン(d=)
DMARCSPFとDKIMの結果と、ヘッダーのFromとの一致ヘッダーのFrom

実際の試験ではここに出る!

この用語が出てくる記事

↑