SPF とは、なりすましメール対策で利用されている送信元メールサーバの正当性を確認する仕組みのことです。
もう少し詳しく言うと、送信元メールのドメインが正当なドメインから送られてきたものかをDNSの仕組みを利用して確認する仕組みのことです。
Sender Policy Framework を直訳すると「メール送信者に対する方策」となります。
もう少し詳しく説明していきます。
SPF を利用したメール送受信の流れ
SPF を利用しない場合と、利用した場合の違いについてみてみましょう。
SPFを利用しない場合のメール送受信の流れ
- A さんが B さんにメールを送る
- A さんのメールが、A さん側のメールサーバ (送信元メールサーバ) に届く
- A さん側のメールサーバから B さん側のメールサーバ (宛先メールサーバ) へメールが配送される
- B さん側のメールサーバから、B さんへメールを配送する
SPFを利用した場合のメール送受信の流れ
- A さんが B さんにメールを送る
- A さんのメールが、送信元メールサーバに届く
- 送信元メールサーバから、宛先メールサーバへ配送される
- 宛先メールサーバが送信元ドメインの DNS サーバに、送信元メールサーバの IP アドレスの開示要求をする(メールサーバの正当性を調べる)
- 送信元ドメインの DNS サーバが宛先メールサーバへ、送信元メールサーバの IP アドレスを返答する
- 宛先メールサーバは、送信元ドメインの DNS サーバから送られてきた IP アドレスを基にMAIL FROM のメールアドレスのドメインを検証し、正当性が確認できれば宛先メールサーバは B さんへメールを配送し、正しくなければ迷惑メールなどとして取り扱う
上記が SPF (メール送信者に対する方策・仕組み) です。
▼ 以下は、SPF の流れ(簡易図)です。
ポイントは、送信元ドメインの DNS サーバに、送信元メールサーバ情報が登録されているかどうかを確認するところにあります。
SPF 設定方法について
では、SPF は具体的にどのように設定されているのでしょうか。
それは、送信元ドメインの DNS サーバのゾーンデータに送信元メールサーバの IP アドレスが TXT レコードとして登録されています。
▼ TXT レコードの例
example.com. IN TXT "v=spf1 ip4:192.168.123.1 -all"
設定はこれだけです。
SPF 有効性の確認方法
DNS サーバに設定した SPF レコードの確認と有効性の検証は、以下のサイトで実施することができます。
SPF Query Tool
https://www.kitterman.com/spf/validate.html
上記サイトの使い方
以下のメッセージが表示されれば、SPF 検証テストに合格です。
SPF record passed validation test with pySPF
(SPF レコードが pySPF で検証テストに合格しました)
最後に
昨今では、ほとんどの送信元ドメインに SPF が導入されています。
むしろ SPF が導入されていなければ、送信したメールが受信者側で迷惑メールとして扱われてしまう可能性が高くなるので、導入していないところは、ほぼないと言ってもいいでしょう。
他にも、送信元を偽った「なりすましメール」を防ぐ手段として「DKIM」や「DMARC」などがありますが、これらについては特に日本ではあまり普及していないようです。
ちなみに SPF は、RFC 7208 で規定されています。