SPFとは
SPF (Sender Policy Framework)とは、 電子メールの送信元ドメインが詐称されていないかを検査するための仕組みです。 SPFの仕様は、 RFC4408(*1)で定められています。
インターネットでメール送信に使用されるプロトコルであるSMTP (Simple Mail Transfer Protocol)は、 差出人のメールアドレス(Fromアドレス)を自由に設定することが可能です。 このため、 送信元を偽った「なりすましメール」を簡単に送ることができてしまい、 これが迷惑メールに利用されてきました。
SPFは、こうしたメールアドレスにおけるなりすましを防ぐための技術の一つで、 DNSを利用するのが特徴です。 ドメインをSPFに対応させるには、 そのドメインのゾーンデータにSPFレコード(*2)という情報を追加します。 SPFレコードには、 そのドメイン名を送信元としてメールを送ってもよいサーバのIPアドレス等を記述します。
一方、SPFに対応したメール受信サーバは、 メールの受信時にそのメールの送信元となっているドメイン(*3)のSPFレコードを、 DNSで問い合わせます。 送信元のサーバ(*4)がSPFレコード中で許可されていない場合は、 送信ドメインの詐称が行われたと判断して、 受信を拒否するなどの処理を行います。
つまりSPFは、送信元サーバのIPアドレスとDNSを利用して、 あらかじめ想定された送信元以外からのなりすましメールを検出できるようにする機構で、 より多くのドメインがこの仕組みに対応することで、 その効果が高くなります。
*1 Sender Policy Framework (SPF) for Authorizing Use of Domains in E-Mail, Version 1
http://www.ietf.org/rfc/rfc4408.txt
*2 SPFレコードのためのRR(リソースレコード)として"SPF"がRFC4408で定義されていますが、 これを扱えないプログラムのために、 同RFCでは併せてTXTレコードでも同一の内容を記述するべきとされています。
*3 RFC4408では、 envelope from (SMTPのMAILコマンドで使用されたメールアドレス)のチェックは必須で、 HELOドメイン(SMTPのHELOコマンドで使用されたドメイン名)のチェックも推奨されていますが、 どのドメイン名を使うかは実装により異なります。
*4 ここでの送信元のサーバとは、 受信側ネットワークのサーバにSMTPのセッションを確立して接続してきたサーバのことを指します。