主なポイント
- SPF(Sender Policy Framework)は、ドメイン所有者がDNSに承認されたメールサーバーのリストを公開できるようにする電子メール認証プロトコルです。
- SPFレコードとは、許可されたIPアドレスと送信元サービスを列挙したDNSのTXTレコードのことです。このレコードは「v=spf1」で始まり、正しいSPF構文に従い、単一のレコードとして公開されなければなりません。
- SPFには実際の制限があります。転送メールでは機能せず、ユーザーに表示される「From」アドレスを保護できず、DNS検索の回数には10回という厳格な上限があります。この上限を超えるとPermErrorが発生し、正当なメールが通知なしに失敗する可能性があります。
- SPFだけでは不十分です。メールのなりすまし、フィッシング攻撃、ドメインの悪用から完全に保護するためには、DKIMおよびDMARCと組み合わせて使用する必要があります。
メールのなりすましは、攻撃者が用いる最も古くからある手口の一つですが、ドメイン数が多すぎるために依然として容易に行われており、その手口は今も通用しています。Sender Policy Framework(SPF)は、その第一の防衛線となります。これは、受信メールサーバーに対し、どのIPアドレスが実際にあなたの代理としてメールを送信する権限を持っているかを通知する、メール認証の基盤となるプロトコルです。
このガイドでは、SPFとは何か、SPFプロトコルの仕組み、正しい設定方法、そしてその限界について解説します。
SPF(Sender Policy Framework)とは何ですか?
Sender Policy Framework(SPF)は、 メールのなりすましを防止するために設計された電子メール認証プロトコルであり、フィッシング攻撃やスパムキャンペーンで最も一般的に使用される手法の一つです。
この仕組みは、ドメイン所有者がDNSに承認済みメールサーバーのリストを公開できるようにすることで機能し、受信サーバーは受信したメッセージが本当に承認された送信元から送られてきたものかどうかを確認できるようになります。
SPFは 電子メール認証の 。なぜなら、SPFは受信システムに対し、「このサーバーはこのドメインのメールを送信する権限があるか?」という単純な問いに対して、明確かつ権威ある回答を提供するからです。
メールセキュリティ全体の中でSPFが果たす役割
SPFは単独では機能しません。これは、以下の3つの主要な電子メール認証プロトコルのうちの1つです。 DomainKeys Identified Mail (DKIM) および Domain-based Message Authentication, Reporting, and Conformance (DMARC)と並び、3つの主要な電子メール認証プロトコルの1つです。これら3つのプロトコルが連携することで、電子メール詐欺に対する完全な防御体制を構築します。
| プロトコル | 検証対象 |
|---|---|
| SPF | 送信サーバーがドメイン所有者によって承認されているかどうか |
| DKIM | メッセージの内容が転送中に変更されたかどうか |
| DMARC | SPFおよびDKIMが「From」アドレスと一致しているかどうか、および一致しない場合の対処法 |
SPFは、DMARCを設定するために必要な要素でもあります。有効なSPFレコードが設定されていないと、DMARCは正常に機能しません。
おすすめ記事: SPF、DKIM、DMARC:その連携の仕組み
SPFプロトコルの仕組み
SPFは完全にDNSを通じて機能します。メールが送信されると、受信側のメールサーバーは一連のチェックを行い、そのメッセージを信頼できるかどうかを判断します。以下に、そのプロセスの全容を説明します。
SPF検証プロセス
- サーバーから送信される電子メールには、Return-Path アドレスに送信者のドメインが含まれています
- 受信サーバーは、そのReturn-Pathアドレスから送信者のドメインを特定します
- 受信サーバーは SPFレコードの照会 を行い、公開されているSPFレコードを検索します
- 送信元のサーバーのIPアドレスが、SPFレコード内の許可されたIPアドレスのリストと照合されます
- 一致した場合、そのメールはSPF認証を通過します。一致しない場合、ドメインのポリシーに応じて、そのメールは不審なメールとしてマークされるか、拒否される可能性があります。
SPF認証の結果
| 結果 | 意味 |
|---|---|
| パス | SPFレコードにおいて送信元IPが許可されています |
| 失敗 | 送信元IPアドレスは許可されていません |
| ソフトフェイル | IPアドレスは許可されていませんが、ドメイン側では拒否処理が行われていません |
| ニュートラル | ドメイン所有者は、送信元IPアドレスについて何ら主張を行っていない |
| なし | そのドメインのSPFレコードが見つかりませんでした |
| 一時的なエラー | 確認中にDNS検索エラーが発生しました |
| PermError | SPFレコードに構文エラーがあるか、または検索制限を超えています |
SPFは送信サーバーのIPアドレスのみを検証する点に留意することが重要です。SPFは、送信者の実際の身元やメッセージの内容を認証するものではありません。そこで DKIMとDMARC がその役割を担います。
SPFレコードはどのようなものですか?
SPFレコードとは DNS TXTレコード であり、ドメインのDNS設定に公開されます。これは、どのサーバーが当該ドメインのメール送信を許可されているかを定義する、特定の構文やメカニズム、修飾子に従っています。
SPFレコードの基本構造
v=spf1 ip4:192.0.2.0/24 include:mailprovider.com -all
| コンポーネント | 意味 |
|---|---|
| v=spf1 | バージョンタグは、すべてのSPFレコードの先頭に記載する必要があります |
| IPv4: | 特定のIPv4アドレスまたはアドレス範囲を許可する |
| ip6: | 特定のIPv6アドレスまたはアドレス範囲を許可する |
| を含む: | サードパーティの送信者のSPFレコードを承認する |
| a: | ドメインのAレコードのIPアドレスを承認する |
| mx: | ドメインのメール交換サーバーを承認する |
| -すべて | 完全な失敗:レコードと一致しないメールをすべて拒否する |
| ~すべて | ソフトフェイル:フラグを立てるが、レコードと一致しないメールも配信する |
| すべて | 中立:一致しないメールに対するポリシーなし |
送信元ではないドメインのSPFレコード
メールを一切送信しないドメインであっても、なりすましを防ぐために、制限的なSPFレコードを公開する必要があります:
v=spf1 -全て
これにより、受信サーバーは、そのドメインから送信されたと主張するすべてのメールを拒否するよう指示されます。
DNS検索の制限数(10件)
SPFでは、レコードの評価ごとにDNSルックアップが10回までと制限されています。各 には以下が含まれます:, a:, mx:, および redirect: メカニズムが検索をトリガーします。
この制限を超えるとPermErrorが発生し、その結果、正当なメールが SPF認証に失敗する 。これは、特に複雑なメール環境を持つ組織において、最も一般的でありながら見過ごされがちなSPF設定の問題の一つです。
PowerDMARCでSPFを設定する!なぜ他のSPFツールではなくPowerDMARCを選ぶべきなのでしょうか?
|
SPFレコードの作成と公開方法
SPFレコードの作成と公開は、ドメインのメールセキュリティを確保する上で最も重要な手順の一つです。
正しく設定すれば、受信側のメールサーバーに対して、どの送信元があなたに代わってメールを送信する権限を持っているかを正確に伝えることができます。しかし、設定を誤ると、あなた自身の正当なメールの認証が、何の前触れもなく失敗してしまう可能性があります。ここでは、正しい設定方法について説明します。
ステップ1:すべてのメール送信元を監査する
SPFレコードを1行でも記述する前に、自社のドメインからメールを送信するすべてのサービスとシステムを特定してください。多くの組織がこの手順を急いで済ませてしまいがちですが、これがSPFレコードを公開した後にエラーが発生する最も一般的な原因となっています。
監査の対象範囲は以下の通りです:
- メインのメールサーバー
- メールマーケティングプラットフォーム
- CRMおよび営業ツール
- ヘルプデスクおよびサポートソフトウェア
- 請求および取引関連のメールサービス
- お客様に代わって送信を行う第三者業者
各送信元について、そのサービスから提供される具体的な送信元IPアドレス、またはSPFインクルード文字列のいずれかを収集してください。
ステップ2:SPFレコードを作成する
承認されたすべての送信元を、正しいSPF構文を使用して単一のDNS TXTレコードにまとめます。基本的な例は次のようになります:
v=spf1 ip4:192.0.2.1 include:sendingservice.com include:marketingplatform.com -all
起草の際に守るべき主なルール:
| 規則 | なぜそれが重要なのか |
|---|---|
| 必ず v=spf1 から始めてください | これは必須のバージョンタグです。これがなければ、レコードは無効となります |
| 1つのレコードのみを使用してください | 同じドメインに複数のSPFレコードが存在すると、PermErrorが発生し、認証が失敗します |
| DNS検索は10回以内に抑えてください | 「include:」、「a:」、「mx:」の各メカニズムは、制限数にカウントされます。制限数を超えると、PermErrorが発生します。 |
| 末尾が -all または ~all で終わる | 条件に一致しないメールの処理方法を指定します。強制的に失敗させるには -all を使用してください |
ステップ3:DNSにレコードを登録する
レコードの作成が完了したら、DNSプロバイダーにログインし、ルートドメインにTXTレコードとして追加してください。
このレコードは次の場所に追加する必要があります @ または yourdomain.comに追加する必要があります。サブドメイン用に個別のレコードを特に作成する場合を除き、サブドメインには追加しないでください。
異なる送信サービスごとに個別のサブドメインを使用する場合、各サブドメインには独自のSPFレコードが必要です。これは、複数のサードパーティ送信者を管理する際に、10件というルックアップ制限内に収めるためにも有効な手法です。
ステップ4:公開後にレコードをテストする
レコードを公開しても、それで終わりではありません。公開後は必ず確認を行い、以下の点を確認してください:
- レコードの形式は正しく、構文エラーはありません
- すべての許可されたIPアドレスとインクルード文字列が存在します
- DNS検索の制限を超えていません
- 同じドメイン内に重複するSPFレコードは存在しません
使用方法 PowerDMARCのSPF検索ツール を使用して、公開直後にこのチェックを実行し、変更を加えるたびに再度実行してください。
ステップ5:記録を常に最新の状態に保つ
SPFレコードの設定は、一度設定すればそれきりというものではありません。
新しい送信プラットフォームを追加したり、メールサービスプロバイダーを変更したり、古いものを廃止したりするたびに、SPFレコードを更新する必要があります。古いIPアドレスや存在しないサービスを参照している古いレコードは、正当なメールがSPF認証に失敗する最も一般的な原因の一つです。
SPFレコードを定期的に確認するスケジュールを設定してください。特に、メールインフラに変更を加えた後は必ず確認してください。
SPFとメールの配信率
SPFを導入することによる最も直接的なメリットの一つは、 メールの配信率の向上です。ここでは、SPFがメールの送信から受信トレイへの到達までのプロセスにどのような影響を与えるかについて説明します。
SPFが配信率を向上させる仕組み
- 受信メールサーバーやメールボックスプロバイダーは、受信メールを配信するか、フィルタリングするか、または拒否するかを判断する際、SPFを信頼性の指標として利用します
- 有効なSPFレコードを設定することで、正当なメールがスパムとして判定される可能性を減らすことができます
- SPF認証を継続的に実施することで、時間の経過とともにドメインの信頼性が向上し、メールがブロックされたり迷惑メールフォルダに振り分けられたりする可能性が低くなります
- SPFを導入することは、ISPに対してメールセキュリティへの取り組みを示すものであり、送信者の評判向上に寄与します
SPFの設定ミスが配信率に悪影響を及ぼす仕組み
| 問題 | インパクト |
|---|---|
| SPFレコードが見つかりません | ドメインは自由に偽装可能であり、受信者に対する信頼の指標はない |
| PermError(検索制限を超えました) | 正当なメールでもSPF認証に失敗する場合があります |
| 有効期限が切れた許可済みIPアドレス | 送信元が新規または変更されたメールは、SPF検証に失敗します |
| 複数のSPFレコード | PermError が発生し、認証機能が完全に停止する |
| 過度に寛容な ~all または ?all | その記録の保護価値を低下させる |
正確かつ最新のSPFレコードを維持することは、ドメインの評判を守り、メールの配信率を安定させるために不可欠です。
SPFの限界
SPFは基本的な メール認証 手法ですが、すべてのドメイン所有者が理解しておくべき、よく知られた制限があります。SPFのみに依存すると、メールセキュリティ体制に重大な穴が残ってしまいます。
SPFではできないこと
| 制限 | なぜそれが重要なのか |
|---|---|
| 「差出人」欄の表示を非表示にすることはできません | SPFは、受信者が目にする「From」ヘッダーではなく、「Return-Path」を認証します |
| 転送メールの改行 | 転送サーバーのIPアドレスが元のSPFレコードに含まれていないため、エラーが発生しています |
| メッセージの内容を確認できません | SPFは送信元のIPアドレスのみを確認し、メッセージが改ざんされたかどうかは確認しません |
| 類似ドメインによるフィッシングをブロックできません | 攻撃者は、独自の有効なSPFレコードを持つ類似のドメインを登録することができる |
| DNS検索は10回まで | 複雑な環境では制限値を超え、PermErrorsが発生する可能性があります |
SPFは始まりであって、終わりではありません
SPFだけでは、ユーザーに表示される「差出人」アドレスを保護することはできず、転送にも耐えられず、メッセージの内容を認証することもできません。
ドメインスプーフィングやフィッシング攻撃から完全に防御するためには、SPFをDKIMおよびDMARCと組み合わせて使用する必要があります。特にDMARCは、送信元アドレスが認証された送信者情報と一致することを要求することで、SPFではカバーしきれない脆弱性を補完します。
| 専門家からのアドバイス: 私はクライアントに対し、特に複数のメールサービスが混在する複雑な環境においては、すべての変更を記録したSPF変更ログを常に維持するようアドバイスしています。これにより、設定のずれを防ぎ、トラブルシューティングを大幅に容易にすることができます。 |
SPFとPowerDMARCでドメインを保護しましょう
SPFはメール認証の第一歩ですが、それはパズルのほんの一部に過ぎません。
SPFレコードを適切に設定し、送信インフラの進化に合わせて常に正確な状態を維持し、DKIMやDMARCと組み合わせて運用することこそが、ドメインをなりすまし、フィッシング、および配信障害から実際に守るための方法です。
あるクライアントが次のように語っています:
「PowerDMARCのおかげで、ITチームのSPF管理が格段に楽になりました。メールの配信率とセキュリティが一夜にして向上しました。」 – 金融機関 CISO
PowerDMARCなら、そのプロセス全体を効率的に管理できます。SPFレコードの作成や検証から、すべての送信ドメインにおける認証結果の監視、さらにはDMARCの完全な適用に向けた取り組みに至るまで、PowerDMARCは、最初から正しく設定し、長期的に維持するための可視性と制御機能を提供します。
今すぐPowerDMARCを使い始めましょう 今すぐ始めましょう!
よくあるご質問
1. SPF(Sender Policy Framework)とは何ですか?
SPF(Sender Policy Framework)は、ドメイン所有者が、そのドメインに代わってメールを送信することを許可されたメールサーバーを指定できるメール認証プロトコルです。これは、承認された送信元を列挙したDNS TXTレコードを公開することで機能し、受信サーバーがメールの真正性を確認し、なりすましを防ぐのに役立ちます。
2. SPFはDKIMやDMARCとどう違うのですか?
SPFは送信サーバーのIPアドレスを検証し、DKIMは暗号署名を用いてメッセージの完全性を確認し、DMARCはポリシーの適用とレポート機能を提供します。SPFはエンベロープ送信者をチェックし、DKIMはメッセージの内容が改ざんされていないことを検証し、DMARCはSPFやDKIMの検証に失敗した場合に受信サーバーがどう対応すべきかを指示します。これら3つは連携して、包括的な電子メール認証を実現します。
3. Sender Policy Framework(SPF)はどのように使用すればよいですか?
ドメインからメールを送信するすべてのサービスを特定し、それらの承認済みIPアドレスを収集した上で、v=spf1で始まる単一のDNS TXTレコードを公開してください。公開後はテストを行い、送信インフラに変更があった場合は随時更新してください。
4. SPFメールレコードにはどのような制限がありますか?
SPFは送信サーバーのみを検証するものであり、送信者の身元やメッセージの内容は検証しません。転送されたメールでは正常に機能せず、DNSルックアップの回数に10回という厳格な制限があり、これを超えると認証が失敗しても通知されない場合があります。
5. SPFとDKIMは同じものですか?
いいえ。SPFは送信サーバーのIPアドレスを確認します。DKIMは暗号署名を用いて、メッセージの内容が転送中に改ざんされていないことを確認します。
6. なぜメールがSPF検証に失敗するのでしょうか?
最も一般的な原因としては、不正な送信サーバー、正当な送信者が記載されていない古いSPFレコード、レコードの構文エラー、またはDNSルックアップの制限数(10回)を超えていることが挙げられます。
- フィッシングメールとDMARC統計:2026年メールセキュリティ動向 - 2026年1月6日
- 2026年に「SPFレコードが見つかりません」を修正する方法 - 2026年1月3日
- SPF パーエラー:DNS ルックアップが多すぎる場合の修正方法 - 2025年12月24日
