SPF
2022-09-18 (日) 15:02:22
SPFとは †
名称 †
- Sender Policy Framework
概要 †
- メール差出人のメールアドレスがなりすましのドメインかを検知する仕組み。
- 受信したメールのエンベロープ(SMTPプロトコルのMAIL FROM で指定された送信元)のメールアドレスのドメインの正当性を検証する。
- メールの差出人(メールヘッダFrom)は偽装できるので、送信元のメールサーバのIPアドレスを使って偽装されたメールかを検証する。
- 送信元のメールサーバのIPアドレスと、DNSサーバのSPFレコードに登録されているIPアドレスを突合して正しいか判断する。
- SMTPサーバ上で検知する。
- 経路途中のSPFに対応しているSMTPサーバがMAIL FROM で指定された送信元のドメイン名を変えずにメールをそのまま転送すると、認証に失敗する
セキュリティ上の効果 †
SPFの技術仕様 †
- 受信側のメールサーバで以下の確認を行う
- 受信したメールの送信元のメールサーバのIPアドレスが、受信したメールのメールヘッダのFromに指定されているメールアドレスのドメインの情報をDNSサーバに照会して取得したSPFレコードに登録されているIPアドレスに存在していることを確認する。
- 受信したメールのメールヘッダFromに指定されているメールアドレスのドメインと、DNSサーバに登録されているSPFレコードに設定されているIPアドレスが一致していることを、受信側のメールサーバが確認する。
メールヘッダ †
- From: に設定されているメールアドレスを使ってSPFの検証を行う。
- SPFの検証結果
- Received-SPF:
- Authentication-Results:
DNSサーバ †
- SPFレコード
- DNSサーバに正当なメールアドレスのドメインとメールサーバのIPアドレスを登録する。
- 送信元のメールサーバのIPアドレスを、TXTレコード形式で登録する。
- 以前は、SPFレコードとTXTレコードの2つのリソースレコードを設定することが推奨されていたが、TXTレコードのみを設定すればよくなった。
- https://tools.ietf.org/html/rfc7208#section-3.1
v=spf1 include:<domain-name> -all v=spf1 a:<domain-name> include:<domain-name> -all v=spf1 mx:<domain-name> include:<domain-name> -all v=spf1 ip4:<ipv4-address> include:<domain-name> -all v=spf1 ip4:<ipv4-address> -all v=spf1 ip4:<ipv4-address1> ip4:<ipv4-address2> -all
メールサーバー †
- 基本的に、受信側のメールサーバーで検証を行う。
- 受信側のメールサーバは、SPFに対応している必要がある。
メーラー †
- メーラーごとの設定は不要
ヘッダー情報 †
- SPFの認証が成功した場合に出力されるヘッダー情報
Authentication-Results: spf=pass (sender IP is xxx.xxx.xxx.xxx)
関連サイト †
- SPFとは - JPNIC
https://www.nic.ad.jp/ja/basics/terms/spf.html
- SPF確認サービス
https://mxtoolbox.com/spf.aspx
- SPF Surveyor - dmarcian https://dmarcian.com/spf-survey/