SPFは、DNSに公開された送信方針で接続元IPアドレスを評価します。この記事ではレコードの書き方の意味と、読み間違えやすい点を整理します。実際のDNS設定は変更せず、学習用の例で確認します。
学習用レコードを読む
v=spf1 ip4:192.0.2.0/24 -all
192.0.2.0/24は文書用の例示アドレスです。この例を実運用へそのまま登録するものではありません。
| 部分 | 意味 |
|---|---|
| v=spf1 | SPFのバージョンを表す |
| ip4:192.0.2.0/24 | 該当するIPv4の範囲を照合する。一致時は省略された+によりPass |
| -all | 先の条件に一致しなかった送信元はFailとする |
修飾子と結果の違い
| 記号 | 一致したとき |
|---|---|
| + | Pass(省略時も+) |
| – | Fail |
| ~ | Softfail |
| ? | Neutral |
allは常に一致するため、前の仕組みに一致しなかった場合の扱いを表す位置で使います。例えば~allと-allは同じ結果ではありません。最終的な受信処理は受信側の方針によります。
includeは単純な文字列の追加ではない
includeは、別ドメインのSPFを評価して、その結果がPassかを利用する仕組みです。参照先を増やすとDNSを伴う評価が増えます。SPFにはDNS検索を生じさせる仕組み・修飾子の評価回数に制限があり、無制限に連結できません。
1回の評価でDNS検索を伴う対象は合計10回が上限です。include先の再帰的な評価も含まれ、単純なTXTレコードの文字数や、記載したIPアドレス数の上限という意味ではありません。
運用で確認する観点
- 同じ名前にSPF用TXTレコードを複数作らず、整合した1つの方針にする。
- 利用している正規の送信経路を把握する。
- 転送、DNS障害、構文の問題を、悪意のある送信と区別する。
- SPFのPassと、表示Fromの整合性や内容の安全性を区別する。
確認問題:~allと-allは、どちらも同じFail?
違います。~はSoftfail、-はFailです。認証結果と受信側の最終処理も区別します。
noteで認証・署名の基礎を復習
メール認証の理解には、なりすまし、公開鍵、ディジタル署名の違いが役立ちます。情報セキュリティのnote教材で関連用語と対策を整理し、各技術が何を確認するか説明してみましょう。


コメント