4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SPFについて調べたよ

Last updated at Posted at 2022-02-16

はじめに

最近迷惑メールが増えてきて、SPFについて知る機会があったので送信ドメイン認証技術について調べて備忘録をとることにした
初心者なので、間違っていることが書いてある可能性があることをご容赦いただきたい

送信ドメイン認証技術ってなんだろう

  • メール送信者情報のドメインが正しいものか検証することができる仕組み
    • 多くの迷惑メールは他のアドレスになりすまして送信されている
  • これが普及すれば送信者情報を詐称しているメールの判定が可能になり、判定結果を活用したフィルタリングをすることができる

※イメージ(あくまでもイメージです)
迷惑メール.png

  • SPF/SenderIDとDKIM/DomainKeysの2種類がある
    • SPFは送信元のIPアドレスを認証に使う
    • DKIMはメールに電子署名を付与する

さて、詳しく調べてみよう

送信ドメイン認証技術

SPF/Sender ID

※仕組みイメージ図
SPF.png

① メールサーバーにメールを送ってほしいと依頼を出す
② 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アドレスを持つホストからのみ送信しますよという設定

つまりどういうことか
FPS_1.png

  • 認証結果は以下のものがある
認証結果 意味
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"

参考文献

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?