SPF ~all と -all の違いは何ですか?
SPFの本質は、ドメインに代わってメールを送信する権限を持つサーバーのリストを公開することにあります。サーバーのリストをSPFレコードの形式で記述した後、適切な対応として、SPFレコードの末尾に「インターネット上のそれ以外のすべてのサーバーは権限を持たない」という旨の記述を加えるべきです。
上記の記述は、「all」メカニズムを使用するためのものです。このメカニズムは、すべてに一致します。「~」または「-」を接頭辞として付けることで、このメカニズムの意味は次のように変わります:
- 「~」の場合の「softfail」
- 「-」の場合、「fail」
どちらも「不合格」という意味ですが、微妙な違いがあり、それは歴史的な背景に関係しています。
DMARCが登場する以前、SPFはユーザーがポリシー、つまりSPFの検証に失敗した場合の対応を定義できるようにしようとしていました。「softfail」は、概ね「合格しない」と解釈されていました。「fail」については、一部の運用者によって「合格せず、この失敗したメールを破棄する」と解釈されていました。
SPFの結果に基づいてメールを破棄する方式を採用した結果、正当なメールが過剰に排除される事態を招いてしまいました(SPFレコードの設定ミスや、SPF準拠のメール送信方法を理解していないベンダーが原因でした)。その結果、ほぼすべての受信側はSPFをスパム対策エンジンの判断材料として利用するようになりました。しかし、一部の運用者は依然として「fail」を「合格せず、破棄する」という意味と解釈していました。
話をDMARCの世界に移しましょう。現在、受信側はDMARCを利用して、あるドメインが特定のメールに関連付けられているという肯定的な判定を探しています。この文脈において、~allは-allと同じ意味であり、つまり「NOT PASS」となります。
ただし、SPFレコードで「-all」を使用している場合、(ごくまれに)本来は正当なメールを破棄してしまうプロバイダに遭遇する可能性があります。 この問題のデバッグは困難な場合があります。「-all」の代わりに「~all」を使用することで、この問題を回避できる可能性があります。あるいは、「-all」を使用することは、SPFレコードの正確性に対する信頼性を示す上で依然として非常に有用です。このフラグを設定することで、一致に失敗した場合、まだDMARCをサポートしていないMTAによって不正なメッセージが破棄される可能性が高まります。
私たちがお手伝いします
dmarcianは、メールセキュリティの専門家チームを擁し、ドメインセキュリティを通じてメールとインターネットの信頼性を高めることを使命としています。組織のドメインカタログの評価から、長期的なDMARCの導入・運用管理まで、包括的にサポートいたします。
さらに詳しく議論を続けたい方は、ぜひ dmarcian Forum へお越しください。