Sender Policy Framework(SPF)マクロの解説
Sender Policy FrameworkマクロまたはSPFマクロは、SPFのTXTレコードを最適なメール認証とセキュリティのためにより動的で拡張性の高いものにするために使用されます。SPFマクロは、SPF検証を受ける各メッセージのメタデータによって置き換えられる文字列を定義します。
この概念は、長く複雑な文字列を含まない、簡素化されたSender Policy Frameworkレコードを生成するという考え方を促進します。さまざまなSPFレコードの種類を理解することで、マクロを使う価値があるかどうかを判断できます。状況によっては、メカニズム、修飾子、モディファイアだけでは不十分であり、あなたのドメインから送信される可能性のある不正なメールの取り扱いを受信側サーバーに指示するためにSPFマクロを使わなければならないことがあります。
画像の出典:gulfsouthtech.com
これらはパーセント記号(%)で表され、2文字以上の文字、モディファイア、区切り文字で構成されます。Sender Policy Frameworkマクロは、受信側でのメール認証の時点で評価され、対応する値に置き換えられます。
%sと%dは、それぞれチェック対象のIDに紐付く送信者のアドレスとドメイン名を表します。一方、r、l、oなどのモディファイアは、アドレスやドメインの特定の要素を取得するために使用されます。
Sender Policy Frameworkマクロの種類
SPFマクロは、波括弧 { } で囲まれ、パーセント(%)記号が前に付いた固有の1文字または記号で識別され、SPFレコード内の個別の構成要素を示します。以下が基本的なマクロです。
- %{s}:「s」マクロは、Sam@domain.comのように送信者のメールアドレスを示します。
- %{l}:送信者のローカル部分を示すために使用され、「Sam」のように表されます。
- %{o}:送信者のドメインを示し、「domain.com」のように表されます。
- %{d}:「o」と同様に、このマクロは正式な送信ドメインを表します。通常は送信者のドメインと同じですが、例外もあります。
- %{i}:メッセージ送信者のIPアドレス(例:503.0.123.7)を抽出するために使用されます。
- %{h}:「h」マクロはHELP/EHLOドメインを表します。
レコードに指定できるマクロは他にも多数ありますが、ここではよく使われるものをいくつか挙げました。
Sender Policy Frameworkマクロのユースケース
メールセキュリティプロトコルに対するドメイン所有者の期待に応えて、SPFマクロはメール認証インフラを整理し、SPFのTXTレコードのサイズを短縮できます。ここでは、SPFレコードにマクロが導入される一般的なシナリオをいくつか紹介します。
1. 複数ドメインのインフラを持つ企業
SPFマクロは複数のドメインを管理するエンタープライズレベルの組織に特に適していますが、あらゆる規模の組織にとって有用なツールです。マクロは、従来のフラット化技術と比較して、はるかに高い柔軟性を提供し、SPFレコードの効率を高めます。 これにより、複雑な複数ドメイン環境でもSPFの円滑な動作が確保され、複数のSPFレコードを作成する必要がなくなります。従来のフラット化と比べて、マクロはDNSルックアップが多すぎるエラーを回避するのにも役立ちます。
2. 大規模なメールインフラ
複雑なメールシステムを扱う組織では、複数のSPFメカニズムを組み込む必要が生じることがありますが、最も効率的な方法はSPFマクロを活用することです。これらのマクロによってメカニズムへの参照を確立でき、SPFレコードが過度に長くなるのを防ぎ、RFCで定められた512オクテットの制限内に収めることができます。これを手作業で管理したくないチームには、自動化されたSPFフラット化サービスがレコードをコンパクトに保ちます。