今回は、DNSを利用して行われるSPF (Sender Policy Framework)について整理して書き留めておきたいと思います。
まず、SPFとは何かについて確認します(
『インターネット用語1分解説~SPFとは~ - JPNIC』)。
SPF (Sender Policy Framework)とは、 電子メールの送信元ドメインが詐称されていないかを検査するための仕組みです。
インターネットでメール送信に使用されるプロトコルであるSMTP (Simple Mail Transfer Protocol)は、 差出人のメールアドレス(Fromアドレス)を自由に設定することが可能です。 このため、送信元を偽った「なりすましメール」を簡単に送ることができてしまい、 これが迷惑メールに利用されてきました。 SPFは、こうしたメールアドレスにおけるなりすましを防ぐための技術の一つで、 DNSを利用するのが特徴です。
このSPFではDNSが利用されます。
そして、DNSの使用に当たっては下記の2つのレコードを使用する方法があります。
1.SPFリソースレコード(SPF RR)
2.TXTリソースレコード(TXT RR)
しかし、上記1の「SPFリソースレコード(SPF RR)」という新しいリソースレコードを取り扱えないプログラムが存在するため上記2の「TXTリソースレコード(TXT RR)」と両方同じ内容を記述する必要があるようです。
ここでは、実務上、「TXTリソースレコード(TXT RR)」のみの設定を行えば良いと思いますので、こちらについてまとめていきたいと思います。
まず、TXTレコードとは何かを見ていきます(
『TXTレコードとは|TeXT record - 意味/定義 : IT用語辞典』)。
TXTレコードとは、DNSで定義されるそのドメインについての情報の種類の一つで、あるホスト名の付加情報、関連情報を定義するためのもの。
DNSの範疇では特定の用途や書式は定められておらず、任意の文字データを定義することができる。このため、特定のプロトコルやアプリケーションが必要とする情報の定義などに使われることが多く、ドメインの所有権確認や、SPFやDKIMなどのメール送信元認証・確認などの技術で利用法が定められている。
定義に「DNSの範疇では特定の用途や書式は定められておらず」とありますが、逆に、特定の書式で情報を書くことで特別な意味を持たせるといった使い方が可能となります。
これを利用して、SPFの設定が行われます。
それでは、下記の代表的な記述を例に説明を行いたいと思います。
v=spf1 +mx +ip4:192.0.2.123 ~all
「
v=spf1」
SPFレコードの定義に使用される文法のバージョンを表します。
なお、現在、 RFC 4408で定義されているSPFレコードの文法はバージョン1のみとなっています。
このため、v=spf1以外を指定すると(例えば“v=spf5”など)と記述するとそのレコードは不正とみなされ廃棄されます。
「
+mx」
mxレコードに指定されているIPから送信することを宣言しています。
「
+ip4:192.0.2.123」
「192.0.2.123」のIPとするメールサーバから送信することを宣言しています。
「
~all」
その他の送信元からメールを送信することは基本的に無いということを宣言しています。
「
+mx」や「
+ip4:192.0.2.123」、「
~all」の定義部分は、ディレクティブ(directive)と修飾子(modifier)で構成されます。
ディレクティブは、限定子(qualifier)と機構(mechanisms)で構成されます。
この辺の詳細は、割愛させていただきます。
なお、SPFレコードの検証のために、下記の様なサイトがあるようです。
『SPF Record Testing Tools』
以上です!
【参考サイト】
『SPF(Sender Policy Framework) : 迷惑メール対策委員会』
『 わわわIT用語辞典 > 索引(T) > TXTレコード』
『例示用、資料用IPアドレス、ドメイン名 at softelメモ - 株式会社ソフテル』
『DNSのTXTレコードのSPF設定の要点』
『Sender Policy Framework』