SPF認証の整理しておきたいポイント
電子メールの送信元ドメインが詐称されていないかを検証する送信ドメイン認証 (Sender Domain Authentication)。
本記事は、SPF認証についてまとめたものです。
SPF、DKIM、DMARC、ARC、BIMIといった送信ドメイン認証のまとめ記事はこちらです。
目次
基本
SPFの認証対象と認証成否
- メール送信元ホストのIPアドレスを認証します。
- メール送信時のエンベロープFrom(SMTPのMAIL FROMコマンド)のドメインのDNSに登録されたSPFレコードに基づいてメール送信元ホストのIPアドレスを検証し、正しいものであると判断できれば認証成功です。
- SPFレコードを保有するDNSドメインの管理元により、「そのIPアドレスが、該当ドメインをエンベロープFromドメインとして使用することを許可されている」という点が担保されます。
認証時の動作
- メールを受信する側が、上記の認証を行います。
- なお、エンベロープFromが<>(アドレス無し)のときは、EHLOコマンド、EHLOコマンドで指定されたドメインがDNS検索に使用されます。
SPF対応に必要な設定
- DNSレコード登録のみです。
認証結果
- SPFの認証結果は、大きく”Pass”か、”Pass以外”(“Fail”等)に分類できます。種類は以下の通りです。
- None
- Neutral
- Pass
- Fail
- Softfail
- TempError
- PermError
- 認証結果は、送信ドメイン認証において共通的に使用されるAuthentication-Results(AR)ヘッダに記録されます。
詳細
RFC
SPFの仕様は、RFC 7208 で定義されています。
導入ステップや運用ポリシーに応じた調整のポイント
- allの修飾子 (qualifier)
- デフォルトの認証結果 (all) に対する修飾子の指定において、自ドメインからのメールを受信する側の SPF 認証時、明示されていないホスト (IPアドレス) からメールが送信された場合に、どの程度厳しく判定して欲しいかを示すことができます。
修飾子は、”+” (Pass)、”-” (Fail)、”~” (Softfail)、”?” (Neutral) を使用できます。 - 例えば、以下のようなSPFレコードがあるとします。
v=spf1 +ip4:xxx.xxx.xxx.xxx +ip4:yyy.yyy.yyy.yyy –all
- 自ドメインからのメールを送信を許可するホストのIPアドレスとして “xxx.xxx.xxx.xxx” と “yyy.yyy.yyy.yyy” が明示されています。これらに該当しないIPアドレスから送信されたメールは “–all” にマッチし、修飾子 “-” によりSPF認証失敗となります。
“–” は、メール受信者に “Fail” 判定して欲しいことを示しており、”all” の扱いとして最も厳しいものです。
その代わり、自ドメインからのメールを送信を許可すべきホストの洗い出しに漏れがあった際には、正規のメールがSPF認証失敗により届かなくなる可能性があります。
- 自ドメインからのメールを送信を許可するホストのIPアドレスとして “xxx.xxx.xxx.xxx” と “yyy.yyy.yyy.yyy” が明示されています。これらに該当しないIPアドレスから送信されたメールは “–all” にマッチし、修飾子 “-” によりSPF認証失敗となります。
- よって、SPF対応の初期段階等で様子を見たい場合には、”-all” でなく、”?all” や “~all” を指定する方法が考えられます。
“?all” (Neutral) は “all” 省略時のデフォルトです。送信元ドメインとして、”all” がメール送信を許可しているかどうかを表明していない、ということを示す設定ですので、”all” に該当するホストがSPF認証により受信拒否されることはありません (もちろんSPF認証以外の理由で拒否されることはあり得ます)。 - 合わせて、DMARC レポートを受け取る設定にしておくと、自ドメインから送信されたメールに対するSPF認証結果を含む集計情報を得られるので、SPF の “all” に対する修飾子の指定をより厳しいものに変更できるかどうかを検討しやすくなります。
- なお、修飾子の指定を省略した場合はデフォルト “+” として扱われます。
- デフォルトの認証結果 (all) に対する修飾子の指定において、自ドメインからのメールを受信する側の SPF 認証時、明示されていないホスト (IPアドレス) からメールが送信された場合に、どの程度厳しく判定して欲しいかを示すことができます。
SPFを突破する攻撃手法の例
BreakSPF という攻撃手法に関する論文があります。
SPF (やDMARC) を突破する攻撃手法、BreakSPF
SPF レコードで許可されている IPアドレスの実態がクラウドやプロキシ等の共用サービスのものであるケースは多く、それらの IPアドレスが第三者によって利用できる可能…
まとめ
本記事では、SPF認証についてまとめてみました。
送信ドメイン認証 関連記事
- 送信ドメイン認証全般に関する記事
- 個々の送信ドメイン認証に関する記事
- 送信ドメイン認証のTIPS
-
Authentication-Results ヘッダまとめ ※機会があれば作成予定…
- 送信ドメイン認証の動向