Eメール認証のSPFの話
そもそもSPFってなんなの?
Sender Policy Framework
Eメールの認証プロセスの一部で、Eメールの偽装を防ぐために使用されます。SPFは、特定のドメインから送信されるEメールが許可されたサーバーからのみ送信されることを確認するために使われます。
そうなのです。そこをちゃんと理解していないと前回の記事に書いたグルグルの10時間を費やしてしまうことになるのです。
そしてGmailが不審としたメールはもはや迷惑メールでもなくなり、消え失せろ!!とされるということがわかりました。
SPFの仕組み
SPFの仕組みをChatGPTに聞いてみました。
SPFを使用する主な利点は、ドメイン名のなりすましを防ぎ、スパムやフィッシング攻撃を減らすことができる点です。SPFはきちんと書かないとメールは不審者扱いされてしまいます。
SPFの書き方
SPFはTXTレコード
SPF(Sender Policy Framework)レコードは、DNSレコードの一種で、特定のドメインからのメール送信を許可されたサーバーを指定します。SPFレコードはTXTレコードとしてDNSに追加され、特定の構文に従って書かれます。
基本的なSPFレコードの書き方は以下のようになります:
v=spf1 [送信元] [ポリシー]
v=spf1 : これはSPFレコードであることを示します。
[送信元] : どのサーバーがメールを送信できるかを指定します。
[ポリシー] : SPFのチェックに失敗した場合の処理方法を定義します。
送信元の指定
ip4:192.168.0.1 : 特定のIPv4アドレスを許可します。
ip6:abcd::1234 : 特定のIPv6アドレスを許可します。
a : DNSのAレコードにリストされているIPアドレスを許可します。
mx : DNSのMXレコードにリストされているメール交換サーバーのIPアドレスを許可します。
include:_spf.example.com : 別のドメインのSPFレコードを含めます。
前回の記事の別ドメインを含める書き方がここにありました。書き換えることができるとしたら「include:」を足すことですね。
ポリシーの指定
-all : SPFレコードにリストされていないすべてのサーバーからのメールを拒否します。
~all : SPFレコードにリストされていないサーバーからのメールを「ソフトフェイル」として扱い、受信することが多いですが、注意が必要です。
+all : すべてのサーバーからのメールを許可します(使う場面が思いつかないくらい非推奨)。
SPFの制限
SPFにはいくつかの制限があります。
例えば、転送されたメールはSPFチェックに失敗する可能性があります。さらに、SPFだけではメールの本文の内容は認証されません。そのため、SPFは、DKIM(DomainKeys Identified Mail)やDMARC(Domain-based Message Authentication, Reporting, and Conformance)などの他の認証技術と併用することが多いです。
次回はそのDMARCのレポートについて書きたいと思います。