はじめに
最近迷惑メールが増えてきて、SPFについて知る機会があったので送信ドメイン認証技術について調べて備忘録をとることにした
初心者なので、間違っていることが書いてある可能性があることをご容赦いただきたい
送信ドメイン認証技術ってなんだろう
- メール送信者情報のドメインが正しいものか検証することができる仕組み
- 多くの迷惑メールは他のアドレスになりすまして送信されている
- これが普及すれば送信者情報を詐称しているメールの判定が可能になり、判定結果を活用したフィルタリングをすることができる
- SPF/SenderIDとDKIM/DomainKeysの2種類がある
- SPFは送信元のIPアドレスを認証に使う
- DKIMはメールに電子署名を付与する
さて、詳しく調べてみよう
送信ドメイン認証技術
SPF/Sender ID
① メールサーバーにメールを送ってほしいと依頼を出す
② SMTPで相手にメールを送る
③ 受信サーバが送信者のドメインに対してDNSサーバにSPFレコードを問い合わせて認証を行う
④ 認証結果がDNSサーバから返却され、安全なメールなのか確認ができる
SPF送信者側が設定
-
DNSサーバ上にSPFレコードを公開する
- レコードの種別はTXT RR, SPF RRを選択する
- ※ 現時点ではSPFレコードが取り扱えないDNSサーバの実装のされ方をしている場合があるので気を付けよう
-
記載例
ホスト名 TYPE TTL クラス VALUE (1) sample.com. TXT 5分 IN "v=spf1 -all" (2) sample.net. TXT 5分 IN "v=spf1 ip4:192.0.2.1 -all" (3) sample.jp. TXT 5分 IN "v=spf1 ip4:192.0.4.1 ip4:192.0.5.1 -all"
(1) sample.comをドメイン名として持つアドレス(例:aaa@sample.com)からは一切メールを送りませんという設定
(2) sample.netをドメイン名として持つアドレス(例:aaa@sample.net)からのメールは192.0.2.1のIPアドレスを持つホストからのみ送信しますよという設定
(3) sample.jpをドメイン名として持つアドレス(例:aaa@sample.jp)からのメールは192.0.4.1のIPアドレスまたは192.0.5.1のIPアドレスを持つホストからのみ送信しますよという設定
- 認証結果は以下のものがある
認証結果 | 意味 |
---|---|
None | SPFレコードが設定されていない |
Neutral | SPFレコードが"?"として公開されている条件にマッチした |
Pass | 認証処理に成功した |
Fail | SPFレコードが公開されているが、認証に失敗した |
SoftFail | SPFレコードが"~"として公開されている条件にマッチした |
TempError | 一時的な障害で認証処理が失敗した |
PermError | SPFレコードの記述に誤りがあるなどで認証処理に失敗した |
ちょっと詳しく
※SPFの課題
- 転送問題
- 送信元のIPアドレスを元に認証を行うので、認証時に送信元のホストが本欄の送信元に属していなければ認証は失敗する
※SenderIDとSPFの違い
イメージはSPFを真似してマイクロソフト社がSenderIDを作ったよ
SPFとSenderIDは一緒に使うこともできるんだ!
- Sender ID
- マイクロソフト社が提案したネットワーク方式の送信ドメイン認証
- SPFの影響を強く受けていて送信側ではSPFで規定されているSPFレコードを利用して認証情報を公開できる
- spf2.0とも呼ばれる
- 記載の仕方も少しずつ違うので気を付けよう!
- SPF2.0
example.org. IN TXT "spf2.0/pra include:example-example.org -all"
- SPF1
example.org. IN TXT "v=spf1 include:example-example.org -all"
- SPF2.0
参考文献