SPFとは?送信ドメイン認証の基本

SPFとは?

SPFの仕組みと役割を理解してメールのなりすましを防ごう

メールセキュリティ対策において、現在必須とも言える技術の一つがSPF(Sender Policy Framework)です。

企業や組織のドメインを悪用したなりすましメールは年々増加しており、フィッシング詐欺やマルウェア配布など様々な攻撃に利用されています。

こうした問題を防ぐために利用されるのが送信ドメイン認証です。

その中でも最も基本となる技術がSPFです。

本記事ではSPFの仕組みや設定方法、SPFだけでは防げない問題について解説します。

SPFとは

SPF(Sender Policy Framework)は送信ドメイン認証技術の一つです。

メール送信元ドメインが、実際にそのメールサーバから送信してよいかを確認する仕組みです。

DNSへ登録されたSPFレコードを利用して判定を行います。

なりすましメール対策として広く利用されています。

なぜSPFが必要なのか

SMTPでは送信者アドレスを自由に設定できます。

例えば攻撃者は以下のようなメールを送信できます。

From: president@example.com

受信者は本当にexample.comから送信されたメールだと誤解する可能性があります。

SPFはこのようななりすましを判定するための仕組みです。

なりすましメールの例

攻撃者は実際には別のサーバを利用しながら、送信者だけを偽装します。

攻撃者サーバ
      ↓
From: ceo@example.com
      ↓
受信者

メールアドレスだけでは正当性を判断できません。

SPFの基本的な仕組み

SPFでは受信側メールサーバがDNSへ問い合わせを行います。

処理の流れは以下の通りです。

メール受信
     ↓
送信元ドメイン確認
     ↓
DNSへSPF問い合わせ
     ↓
送信元IP確認
     ↓
許可または拒否

DNSに登録された送信許可サーバと照合します。

SPFレコードとは

SPFはDNSのTXTレコードとして登録します。

例えば以下のような設定です。

example.com. IN TXT "v=spf1 ip4:192.168.1.10 -all"

この設定は192.168.1.10からの送信のみ許可するという意味になります。

SPFレコードの構成

SPFレコードは複数の要素で構成されます。

v=spf1 ip4:192.168.1.10 -all
要素意味
v=spf1SPFバージョン
ip4IPv4許可
-allそれ以外拒否

まずはこの基本構文を覚えましょう。

ip4の意味

特定のIPv4アドレスを許可します。

v=spf1 ip4:203.0.113.10 -all

このIPアドレスから送信されたメールのみ許可されます。

ip6の意味

IPv6アドレスを許可します。

v=spf1 ip6:2001:db8::1 -all

IPv6環境で利用します。

mxの意味

MXレコードで定義されたメールサーバを許可します。

v=spf1 mx -all

メールサーバ構成変更時の管理が容易になります。

aの意味

Aレコードで登録されたサーバを許可します。

v=spf1 a -all

比較的小規模な環境で利用されます。

includeの意味

別ドメインのSPF設定を参照します。

v=spf1 include:_spf.google.com -all

Google Workspaceなどでよく利用されます。

allの意味

最後に判定を行う項目です。

代表的な指定方法です。

記号意味
-all拒否
~allソフト拒否
?all判定なし
+all全許可

通常は「-all」または「~all」が利用されます。

Google Workspaceの例

Google Workspaceでは次のような設定が推奨されています。

v=spf1 include:_spf.google.com ~all

Googleのメールサーバからの送信を許可します。

Microsoft 365の例

Microsoft 365では次のような設定です。

v=spf1 include:spf.protection.outlook.com -all

Microsoftの送信サーバを許可します。

SPF確認方法

digコマンドで確認できます。

# dig TXT example.com

または
# dig example.com TXT

登録済みSPFレコードが表示されます。

nslookupで確認する

Windows環境ではnslookupも利用できます。

> nslookup -type=TXT example.com

DNS登録状況を確認できます。

SPFの判定結果

受信側では以下の結果が返されます。

結果意味
Pass認証成功
Fail認証失敗
SoftFail疑わしい
Neutral判定なし
NoneSPF未設定

受信サーバはこの結果を参考に判定します。

SPFだけでは防げない問題

SPFは非常に有効ですが万能ではありません。

例えばメール転送時に問題が発生することがあります。

送信者
   ↓
転送サーバ
   ↓
受信者

転送後の送信元IPが変わるためSPF失敗となる場合があります。

メール転送問題とは

メール転送では転送サーバのIPアドレスから再送されます。

そのため受信側ではSPF認証に失敗することがあります。

これがSPFの代表的な弱点です。

DKIMとの違い

SPFは送信元IPアドレスを検証します。

一方DKIMは電子署名を利用します。

技術確認対象
SPF送信元IP
DKIM電子署名

両方を組み合わせることが推奨されています。

DMARCとの関係

DMARCはSPFやDKIMの結果を利用して最終判定を行います。

現在のメールセキュリティでは次の3つがセットです。

  • SPF
  • DKIM
  • DMARC

企業ドメインでは導入が推奨されています。

実務での導入例

現在では以下のような環境で利用されています。

  • 企業メールサーバ
  • Google Workspace
  • Microsoft 365
  • レンタルサーバ
  • クラウドメールサービス

事実上の標準技術となっています。

まとめ

SPFは送信ドメイン認証技術の一つで、送信元IPアドレスを検証することでなりすましメールを防止します。

DNSのTXTレコードへSPF情報を登録し、受信側メールサーバが認証を行います。

ただしSPFだけでは完全な対策にはならないため、DKIMやDMARCと組み合わせて利用することが重要です。

現在のメールセキュリティでは、SPFは導入必須の技術と言えるでしょう。