見出し画像

Eメール認証のSPFの話

そもそもSPFってなんなの?


Sender Policy Framework

Eメールの認証プロセスの一部で、Eメールの偽装を防ぐために使用されます。SPFは、特定のドメインから送信されるEメールが許可されたサーバーからのみ送信されることを確認するために使われます。

そうなのです。そこをちゃんと理解していないと前回の記事に書いたグルグルの10時間を費やしてしまうことになるのです。

そしてGmailが不審としたメールはもはや迷惑メールでもなくなり、消え失せろ!!とされるということがわかりました。

SPFの仕組み

SPFの仕組みをChatGPTに聞いてみました。

SPFの仕組みは以下の通りです:

1. ドメインのDNSレコード設定: ドメインの所有者は、そのドメインからメールを送信できるサーバーのリストを含むSPFレコードをDNSに追加します。

2. メール送信: メールが送信されると、受信メールサーバーは送信元のドメインのSPFレコードを照会します。

3. SPFレコードの確認: 受信サーバーは、そのメールがSPFレコードで指定されたサーバーのいずれかから送信されたかどうかを確認します。

4. 結果の処理: もしメールが許可されたサーバーから送信されていれば、メールは通常通り受理されます。もし許可されていないサーバーからのものであれば、メールは拒否されたり、スパムとしてマークされたりする場合があります。

ChatGPT4の回答

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アドレスを許可します。

  • : 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のレポートについて書きたいと思います。

この記事が気に入ったらサポートをしてみませんか?