IT用語

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.com
  • yahoo.co.jp
  • example.co.jp

などがドメインです。

会社が独自ドメインを利用している場合は、

employee@company-example.co.jp

のように、@より後ろへ会社独自のドメインが入ります。

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

そう。ただし、SPFでは画面に表示されるメールアドレスのドメインを、そのまま確認するとは限らない点に注意が必要だよ。

SPFは何と何を照合するの?

SPFでは、主に次の二つを照合します。

  1. メールを送信してきたメールサーバーのIPアドレス
  2. 送信に使われたドメインが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=spf1SPFバージョン1を使用する
ip4:192.0.2.10指定したIPv4アドレスからの送信を許可する
-allそれ以外からの送信を許可しない

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

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

SPFレコードの主な仕組み

SPFレコードでは、送信を許可する対象をさまざまな方法で指定できます。

仕組み概要
ip4IPv4アドレスを指定する
ip6IPv6アドレスを指定する
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ドメイン側が判断を示していない
NoneSPFレコードが存在しない
TempErrorDNS障害など一時的な問題が起きた
PermErrorSPFレコードの記述などに恒久的な問題がある

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は、署名ドメインがそのメールについて一定の責任を表明できるよう、ドメインとメッセージを暗号学的な署名で関連付ける仕組みです。

項目SPFDKIM
主な確認対象送信メールサーバーの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ドメインの整合性を使い、認証に失敗したメールの扱いやレポートの方針を示す仕組みです。

項目SPFDMARC
主な役割送信元IPアドレスの許可を確認するSPF・DKIMと表示Fromの関係を確認する
表示Fromとの一致単独では要求しないアライメントを確認する
失敗時の方針SPF結果を返すnone・quarantine・rejectなどを示す
レポート基本機能ではない認証結果のレポートを受け取れる
使用する認証SPFSPFと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の評価では、includeamxなどによるDNS参照回数に制限があります。

複数の外部サービスを無計画に追加すると、SPFの評価がエラーになる可能性があります。

設定が広すぎると効果が弱くなる

許可するIPアドレスやサービスの範囲を広げすぎると、その中に含まれるサーバーからドメインを利用される可能性が広がります。

会社が独自のメールサーバーを持つ場合だけ使う?

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

違うよ。外部のメールサービスを使っていても、独自ドメインからメールを送るならSPF設定が関係するよ。

例えば、会社が次のようなサービスを使っている場合です。

  • Google Workspace
  • Microsoft 365
  • レンタルサーバーのメール機能
  • メール配信サービス
  • CRMのメール送信機能

会社が自前でサーバーを所有していなくても、その会社のドメインからメールを送るサービスをSPFで許可します。

メール環境SPF設定
自社運用のメールサーバー自社サーバーの送信元を登録する
Google WorkspaceGoogleの指定する送信元を許可する
Microsoft 365Microsoftの指定する送信元を許可する
外部配信サービスサービス指定の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の管理者会社独自ドメインの保護
無料GmailGoogle対象外
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アドレス制限とは目的が異なります。

項目SPFIPアドレス制限
主な目的メール送信元の認証システムへのアクセス制御
対象送信メールサーバー利用者や接続元端末
設定場所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との違い、転送時の課題、アライメント

試験で覚えたい比較表

用語主な確認方法確認対象
SPFDNSの許可情報とIPアドレスを照合送信メールサーバー
DKIM公開鍵で電子署名を検証メールの署名と署名ドメイン
DMARCSPF・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.comhanako@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は表示された差出人まで含めた総合審査だね。

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

ABOUT ME
クマノくらげ
クマノくらげ
難しいIT用語やビジネス用語を、できるだけ身近な例えで解説するブログです。 「専門用語を見ると眠くなる人」でも読めるように、画像や会話形式を多めにしています。 AWS12冠達成済み。
記事URLをコピーしました