SPFフォーマット:SPFの基本・上級フォーマット
SPFの基本的なフォーマットを知る
2023年9月8日
著者: Ahona Rudra
翻訳: 高峯 涼夏
この記事はPowerDMARCのブログ記事 SPF Format : SPF Basic & Advanced Formats Explained の翻訳です。
Spelldataは、PowerDMARCの日本代理店です。
この記事は、PowerDMARCの許可を得て、翻訳しています。
SPFを使わずに、またSPFフォーマットを知らなくてもメールを送ることはできますが、それでは安全とは言えません。
SPFは、受信者のメールボックスプロバイダに更なる信頼性を提供し、あなたのドメインを使用して送信されたすべての正当なメールは、スパムとしてマークされることなく受信ボックスに届きます。
SPFは完全な方法ではありませんので、メールの配信性を向上させるためには、DKIM、DMARC、BIMIなどの他のメール認証プロトコルと組み合わせる必要があります。
これらのプロトコルはメール認証プロセスにおいて非常に重要であり、メールを利用するすべての企業が知っておく必要があるため、このブログではSPFレコードのフォーマットに焦点を当てます。
SPFとは?
SPFはSender Policy Frameworkの略であり、最も一般的なメール認証プロトコルの一つです。
これは、ドメイン名を使用してメールを送信することを許可されたIPアドレスのリストを使用して機能します。
このリストには通常、従業員、株主、および直接ドメインを使用してメールを送信する第三者のIPアドレスが含まれます。
SPFを実装している場合、リスト外のIPアドレスから送信されたメールは、受信者のメールボックスでは認証されていないと見なされます。
メールはSPFを使用してどのように認証されるのか?
このプロトコルを実装するには、DNSに有効なSPFレコード(TXTフォーマット)を公開する必要があります。
ドメインからメールが送信されると、受信者のメールサーバは送信者のIPアドレスを(送信してきたドメインの)DNS上のSPFレコードと照合します。
もしそのIPアドレスがリストに載っていれば、認証が成功し、メールは受信ボックスに届きます。
しかし、リストに載っていない場合は、認証に失敗し、メールは宛先に届きません。
実装後は、SPFチェッカーを使用して定期的にドメインのアクティビティを監視する必要があります。
これによって、ハッカーの(攻撃の)対象になっていないかを確認できます。
そうすることで、会社の名前を騙ったスピアフィッシングや詐欺、ランサムウェア攻撃を防ぐことができます。
SPFフォーマット
SPFレコードは複雑で、理解しにくい独特のフォーマットを持っています。
ここでは、SPFレコードの構文とSPFレコードの構造について説明します。
これらはSPFレコードのフォーマットの頭と心、つまり中核となる要素です。
SPFレコードの基本的な構文
SPFレコードとは、メールドメインを使用してメールを送信することを許可されたすべてのIPアドレスをリストにしたDNSレコードです。
SPFレコードの構文は以下のようになっています。
v=spf1 ip4=193.0.1.0 ip4=193.0.1.1 include:samplesender.net -all
これに含まれる要素を見てみましょう。
v=spf1
これはSPFレコードが含まれていることをサーバに伝えます。
すべてのSPFレコードはこの文字列で始まる必要があります。
ip4=193.0.1.0 ip4=193.0.1.1
これは特定のドメインを使用してメールを送ることを許可されたIPアドレスを指示します。
include:samplesender.net
これはメールの送信を許可された第三者を示します。
「include」タグは受信サーバに対して、インクルードされたドメイン(ここではsamplesender.net)のSPFレコードを確認するように指示します。
これにより、1つのSPFレコード内に複数のドメインを追加することができます。
-all
これは、許可されていないIPアドレス(基本的にはリストに含まれていないもの)から送られるメールを拒否するよう、受信サーバに指示します。
SPFレコードの高度な構文
SPFレコードの構文フォーマットでは、常に「v=」要素で始まります。
これはSPFのバージョンを示しています。
現在、一つのバージョンしかないので、すべてのSPFレコードフォーマットはこのように始まります。
SPFレコードの構文は、SPFメカニズム、SPFクオリファイア、SPFモディファイアという三つの主要な要素を持っています。
それぞれ何であるか見ていきましょう。
メカニズム
以下に8つのメカニズムを挙げます。
- ALL
- これは常に一致することを意味します。
一致しないIPに対してはデフォルトの結果として「-all」が表示されます。 - A
- AまたはAAAAアドレスレコードを持つドメイン名が、送信者のアドレスに解決できる場合に一致します。
※訳注:メールの送信元のIPが、その送信ドメインのDNSのAまたはAAAAレコードと一致した場合、本物とみなされる、という意味です。 - IP4
- 送信者が指定されたIPv4アドレス範囲にリンクされている場合、一致するとされます。
- IP6
- 送信者が指定されたIPv6アドレス範囲にリンクされている場合、一致するとされます。
- MX
- 送信者のメールアドレスは、そのドメイン名に解決のためのMXレコードが含まれている場合のみ検証されます。
- PTR
- PTRレコードがクライアントのアドレスに解決する特定のドメインに属している場合、一致が認証されます。
これをすると、ドメインを使用して送信されたすべてのメールがブロックされる可能性があるため、専門家は使用をお勧めしません。 - EXISTS
- 指定されたドメイン名が検証されると機能します。
このSPFメカニズムは、すべての解決されたアドレスで機能します。 - INCLUDE
- 他のドメインポリシーを参照します。
したがって、それが合格する場合、自動的に合格します。
ただし、含まれているポリシーが失敗した場合でも、処理は続行されます。
モディファイア
モディファイアはSPFレコードの機能的な枠組みを決定します。
それは「=」記号で区切られた名前または値のペアで構成され、追加の情報を示します。
多くの場合、SPFレコードの末尾で見かけますが、認識されないモディファイアは処理の過程で無視されます。
「redirect」モディファイアは、効率的な機能を担う他のSPFレコードを示します。
複数のドメインが同じSPFレコードにリンクされている場合に、専門家は必ずこれを使用します。
すべてのドメインを単一のエンティティが制御している場合は、このモディファイアを使用する必要があります。
それ以外の場合は、「include」モディファイアが使用されます。
クオリファイア
各メカニズムは4つのクオリファイアのうちの1つと組み合わせることができます。
- 「+」はPASS(通過)の結果を示します。
※訳注:このクオリファイアが付与されたIPアドレスからのメールを正当なものとして扱います。
通常、省略されることが多いです。 - 「?」はNEUTRAL(中立)の結果を示し、NONEのポリシーと同様に解釈されます。
- 「~」はSOFTFAILを示します。
通常、SOFTFAILを返すメッセージは受信されますが、何らかのタグが付けられる可能性があります。 - 「-」はFAIL(失敗)を示し、メールは拒否されます。
結論
SPFは、ブランドの名前や評判を利用したサイバー攻撃を防ぎます。
ハッカーがあなたのドメイン名を使って送信したメールが、ターゲットとされた受信者に届くのを阻止できます。
これは、ドメインを使ってメールを送ることを許可した信頼できるエンティティだけを一覧にすることで実現されます。
SPFレコードのフォーマットの構造と要素を理解した後、まだこのプロトコルを導入していない場合は、SPFレコードジェネレータを使用できます。
PowerDMARCの無料トライアルで、SPFを登録しましょう!