SPFレコードとは?
SPF(Sender Policy Framework)は、どのホストが自社ドメインのメールを送信してよいかを受信側メールサーバーに伝える仕組みです。レコードの重複、DNSルックアップの過多、'all'メカニズムの欠落など、SPFレコードが正しく設定されていないと、正規のメールが迷惑メールフォルダに振り分けられてしまいます。IPeekはSPFレコードを取得し、各メカニズムを解析して、到達率を損なう問題点を指摘します。
SPFレコードの仕組み
SPFはルートドメインのTXTレコードとして公開され、v=spf1で始まります。受信サーバーは、自社を名乗るメールを受け取ると、このレコードを参照し、送信元IPが許可されているかを確認します。v=spf1 include:_spf.google.com ip4:198.51.100.10 -all というレコードは「GoogleのホストとこのIPを許可し、それ以外はすべて拒否する」という意味になります。各メカニズムは左から右へ評価され、最初に一致したものが採用されます。末尾のallメカニズムは、明示的に列挙されていないホストに対する既定の判定を決めるキャッチオールとして機能します。
Hardfail・softfailと10ルックアップ制限
allメカニズムはポリシーを定めます。-allはhardfail(列挙されていない送信者を拒否)、~allはsoftfail(受け入れるが疑わしいものとして扱う)、+allは誰でも許可するため決して使用してはいけません。また、SPFはDNSへ問い合わせるメカニズム(include、a、mx、ptr、exists、redirect)を合計10回までに制限しています。これを超えるとpermerrorとなり、失敗として扱われます。ネストされたincludeもカウントされるため、複数のベンダーを追加すると気づかぬうちに上限に達してしまいます。IPeekはすべてのルックアップを数え、上限に到達する前に警告します。
SPFとDKIM・DMARCの関係
SPFだけでは不十分です。SPFが認証するのはエンベロープ送信者(Return-Path)であり、ユーザーが目にするFromアドレスではありません。そのため、なりすまし業者はSPFを通過しつつ、ブランドを偽装できてしまいます。DMARCは、SPFのドメインとFromドメインのアライメント(整合)を要求し、SPFとDKIMのいずれかでメッセージを認証できるようにすることで、このギャップを埋めます。SPFは3層の1つと捉えてください。SPFがホストを認可し、DKIMがコンテンツに署名し、DMARCがそれらをFromドメインに結び付けてポリシーを適用します。