自分のメールアドレスは守られているのか、送られてくるメールはなりすましじゃないのか、こう不安に思うことはありませんか?
そんなメールセキュリティの要となる技術の一つが「SPF」です。
日焼け止めの指標みたいですが、一言で言えば電子メールの検証フレームワークです。
SPFの基本概念と仕組み
SPFとは何か – メール認証の守護者
SPF(Sender Policy Framework)は、電子メールのなりすましを検出し防止するための検証プロトコルです。
Pobox.comの共同設立者であるMeng Weng Wongによって開発されたこの技術は、送信元を偽装したフィッシングメールやスパムメールから受信者を守る役割を果たしています。
簡単に言えばSPFはメールの「身分証明書」のようなもの。あるドメイン(例:example.com)からのメールが、そのドメインの管理者によって承認された正規のサーバーから送信されたものかどうかを確認する仕組みです。
これによって「〇〇銀行」や「大手ECサイト」などになりすました詐欺メールを検出しやすくなります。

SPFの動作メカニズム – 検証の流れ
SPFはどのように動作するのでしょうか?その仕組みは以下のような流れになっています
- ドメイン管理者が、そのドメインからメールを送信できる正規のメールサーバーのIPアドレスリストを「SPFレコード」としてDNS(ドメインネームシステム)に登録します。
- メールを受信したサーバーは、メールヘッダーに記載された送信元ドメインのSPFレコードをDNSサーバーに問い合わせます。
- 受信サーバーは、実際にメールを送信したサーバーのIPアドレスが、SPFレコードに登録されているIPアドレスリストに含まれているかを確認します。
- 含まれている場合は「正規の送信元」と判断され、含まれていない場合は「なりすましの可能性あり」と判断されます。
例えば、Amazonを装ったフィッシングメールの送信者が、本文やFromアドレスをamazon.comに偽装したとしても、実際の送信元IPアドレスはamazon.comのSPFレコードに登録されていないため、なりすましとして検出できるわけです。
SPFレコードの活用方法と設定
SPFレコードの形式と実例
SPFレコードはTXTレコードとしてDNSに登録され、特定の構文で記述されます。典型的なSPFレコードは以下のような形式です
v=spf1 ip4:192.168.0.1/24 ip6:2001:db8::/32 include:thirdparty.com -all
この例では
v=spf1– SPFのバージョンを示しますip4:192.168.0.1/24– このIPv4アドレス範囲からの送信を許可ip6:2001:db8::/32– このIPv6アドレス範囲からの送信を許可include:thirdparty.com– thirdparty.comのSPFレコードも参照する-all– 上記以外の送信元はすべて拒否
大手企業のSPFレコードはさらに複雑です。例えばGoogleのSPFレコードには、Google Workspaceやその他のGoogleサービスからメールを送信するすべてのサーバーのIPアドレスが含まれています。これにより、google.comドメインを詐称することが難しくなり、Gmailユーザーは多くのフィッシング詐欺から自動的に保護されています。
SPFレコードの設定方法と注意点
自分のドメインにSPFレコードを設定する場合、以下の点に注意する必要があります
- 網羅性の確保: 自社が使用するすべてのメールサーバー(外部サービスを含む)のIPアドレスを登録します。
- 定期的な更新: 新しいメールサービスを追加した場合や、サーバーのIPアドレスが変更された場合は、SPFレコードも更新する必要があります。
- ルックアップ制限: DNSのルックアップ回数には制限があり、SPFレコードが複雑すぎると検証に失敗する可能性があります。10回以内に収めることが推奨されています。
- 適切な終了タグ:
-all(すべて拒否)、~all(ソフトフェイル)、?all(中立)のいずれかを選択します。セキュリティとメール配信のバランスを考慮して設定しましょう。
ある電化製品小売企業の例では、マーケティングメールの到達率が低いという問題がありました。調査の結果、SPFレコードが古く、一部のサーバーのIPアドレスが欠落していたことが判明。SPFレコードを更新したところ、メールの到達率が向上し問題が解決しました。このように、適切な管理がなければセキュリティ技術も逆効果になり得るのです。
SPFと他のメール認証技術の連携
DMARCとDKIMとの関係性
SPFはメール認証技術の一つですが、単独ではなく他の技術と組み合わせることでより効果的になります。特に重要なのがDMARC(Domain-based Message Authentication, Reporting & Conformance)とDKIM(DomainKeys Identified Mail)です。
DKIMは、送信元のメールサーバーが電子署名をメールに付加し、受信側がその署名を検証する仕組みです。SPFがメールの「封筒」(送信元IPアドレス)を確認するのに対し、DKIMはメールの「内容」に対する署名を確認します。
DMARCは、SPFとDKIMの検証結果に基づいて、不正なメールに対してどのように対処するかを指定するフレームワークです。さらに、検証結果のレポートを送信元ドメインの管理者に送信する機能も持っています。
これら3つの技術を組み合わせることで、より強固なメール認証システムを構築できます。例えば
- SPFでメール送信元IPアドレスを検証
- DKIMでメール内容の改ざんがないことを検証
- DMARCで検証失敗時の処理ポリシーを定義
大手企業や金融機関では、これら3つの技術を併用することが一般的になってきています。
SPFの限界と補完技術の必要性
SPFには以下のような限界があります
- メール転送時の問題: メールが転送されると、送信元IPアドレスが変わり、SPF検証に失敗する可能性があります。
- Fromヘッダーとの不一致: SPFはメールの「エンベロープFrom」を検証するもので、ユーザーが目にする「ヘッダーFrom」とは異なる場合があります。
- メール内容の検証なし: SPFはメールの送信元を確認するだけで、内容が改ざんされていないかは検証できません。
これらの限界を補うため、DKIMやDMARCとの併用が推奨されています。特にDMARCは、SPFとDKIMの両方を活用し、送信ドメインの管理者が明示的な処理ポリシーを設定できる点で、メールセキュリティの包括的なソリューションとなっています。
実際の運用事例とトラブルシューティング
大手メールサービスでのSPF活用例
GoogleやMicrosoftなどの大手メールサービスプロバイダーは、SPFを含むメール認証技術を積極的に活用しています。
GmailではSPF検証を含む複数の要素を考慮して、メールが正規のものか、スパムか、フィッシングかを判断しています。SPF検証に失敗したメールは、必ずしも拒否されるわけではありませんが、スパムスコアに影響し、スパムフォルダに振り分けられる可能性が高まります。
Microsoft 365も同様に、SPF、DKIM、DMARCを使用してメールの信頼性を判断しています。さらに、Exchange Online Protection(EOP)というサービスで、これらの検証結果に基づいた詳細なフィルタリングを提供しています。
こうした大手サービスの取り組みによりユーザーは日々、多くのフィッシング詐欺から自動的に保護されているのです。もちろん完璧ではないものの、SPFなどの技術がなければ、はるかに多くの詐欺メールが受信トレイに届くことになるでしょう。
一般企業でのSPF導入事例と問題解決
一般企業がSPFを導入する際には、いくつかの課題に直面することがあります。ある中規模のEC企業の事例を見てみましょう:
この企業は、顧客への注文確認メールが届かないという問題に悩まされていました。調査の結果、以下の問題が発見されました:
- SPFレコードが設定されていなかった
- 外部のマーケティングツールやCRMからのメールがSPF検証に失敗していた
- 社内のIT部門がメール認証の重要性を十分に認識していなかった
対策として:
- 適切なSPFレコードを設定
- 使用しているすべてのサービスのIPアドレスを含めるよう更新
- DMARCも導入し、メール配信の問題を監視
- IT部門向けにメール認証についての教育を実施
これらの対策により、メール配信率が向上し、顧客からの信頼性も高まりました。さらに、同社のドメインを詐称したフィッシングメールも減少したとのことです。
Q&A
Q: SPFレコードが正しく設定されているか確認する方法はありますか?
A: いくつかの便利なオンラインツールが利用できます。「MXToolbox」や「DMARCIAN SPF Survey」などのウェブサイトでは、ドメイン名を入力するだけでSPFレコードの検証結果を確認できます。
また、コマンドラインからは「dig txt example.com」や「nslookup -type=txt example.com」といったコマンドでSPFレコードを確認できます。定期的に確認して、設定が最新かつ正確であることを確認しましょう。
Q: SPF検証に失敗したメールはすべて拒否されるのですか?
A: 必ずしもそうではありません。SPFレコードの末尾にある指定(「-all」「~all」「?all」など)によって、検証失敗時の推奨処理が異なります。
「-all」は「拒否を推奨」、「~all」は「疑わしいと判断するが拒否までは推奨しない」、「?all」は「中立」を意味します。さらに、受信側のメールサーバーの設定によっても処理が異なります。
多くの場合SPF検証に失敗したメールはスパムフォルダに振り分けられるか、スパムスコアが上昇するだけで、完全に拒否されるわけではありません。
Q: 小規模な個人サイトや小さなビジネスでもSPFレコードを設定するべきですか?
A: はい、サイズに関わらずSPFレコードの設定をお勧めします。小規模なサイトやビジネスでも、ドメインがなりすましに使われる可能性はあります。
SPFレコードを設定することで、自分のドメインの信頼性を高め、なりすましの危険性を減らすことができます。多くのレンタルサーバーやドメイン登録サービスでは、簡単なウェブインターフェースからSPFレコードを設定できるようになっています。小規模な場合は複雑な設定は必要なく、「v=spf1 include:_spf.your-mail-provider.com -all」のような簡単な設定で十分な場合が多いです。
Q: SPFとホワイトリスト/ブラックリストは関連していますか?
A: SPFはドメインの正規の送信元を定義するものであり、一種のホワイトリストと考えることもできますが、従来の意味でのメールのホワイトリスト/ブラックリストとは異なります。
従来のリストは受信者が手動で設定する特定の送信者の許可/拒否リストですが、SPFはドメイン所有者が設定する認証メカニズムです。
ただし、SPF検証結果は多くのメールサーバーのフィルタリングシステムによって、ホワイトリスト/ブラックリスト判断の一要素として使用されることがあります。両者は補完的な関係にあると言えるでしょう。

