知人や有名企業から届いたメールは無条件で信頼してしまいがちですが、実は送信元のメールアドレスは誰でも簡単に偽ることが可能。「なりすましメール」は悪意のあるウェブサイトへの誘導やマルウェア拡散の手段として、古くから利用されてきました。そんななりすましメールからユーザーを守る「Sender Policy Framework(SPF)」について、メールサービスのOhMySMTPが解説しています。

What's an SPF Record? - Ultimate Guide to Email | The Official OhMySMTP Blog

https://blog.ohmysmtp.com/blog/whats-an-spf-record/

SNSやチャットとは異なり、メールの送信元アドレスは誰でも簡単に偽ることが可能。加えて、メールそのものには送信元を検証する機能はありません。この性質を悪用したなりすましメールは、少なくとも1978年には存在が確認されていたとOhMySMTPは指摘。2020年には情報処理推進機構がなりすましメールにウイルスを添付する攻撃に対する注意喚起を行っているように、なりすましメールは40年以上にわたって主要なサイバー攻撃であり続けています。

「Emotet」と呼ばれるウイルスへの感染を狙うメールについて:IPA 独立行政法人 情報処理推進機構

https://www.ipa.go.jp/security/announce/20191202.html



こうしたなりすましメールを防ぐために開発された仕組みのひとつが「SPF」です。SPFはDNSを用いて「メール送信元サーバー」と「事前にドメインに紐付られたサーバー」を照らし合わせ、送信元メールアドレスが詐称されていないことを確認する仕組み。SPFで利用される「ドメインとサーバーの紐付け」はSPFレコードと呼ばれます。

SPFレコードはDNSサーバーのゾーンファイルに、TXTリソースレコードとして登録します。基本の記述フォーマットは以下のような感じで、OhMySMTPはレコードの構成要素について詳しく説明を加えています。



・「v=spf1」:レコードがSPFバージョン1であることをメールクライアントに通知する

・「ip4:192.168.0.1」:ドメインを用いたメール送信を許可するIPアドレスで、スペースを区切ることで複数アドレスを指定することができる。IPアドレスの他にも、アドレス空間として記述したり、ドメインやレコードで記述したりすることも可能

・「~」:SPFで利用する修飾子のひとつで、右側に記述されたIPアドレスやドメインからのメールの扱い方を定義する。「+」は正当なメール、「-」は不当なメール、「~」は不当な可能性が高いメール、「?」は指定無しとして扱う

・「all」:すべてのメールアドレスを指す

メールクライアントはSPFレコードを受け取ると、左から右へ評価するとOhMySMTPは説明。例のSPFレコードを受け取った場合を考えると、まずは192.168.0.1にメールの送信元IPアドレスが合致するか評価し、合致しなければ次の「all」に合致するか評価。合致した記述の修飾子に従ってメールの受信や拒否、スパムへの振り分けといった処理を行うとのこと。



なお、SPFは「RFC 4408」として2006年に策定された歴史のあるシステムなので、他にも数多くの説明が存在します。

SPFレコード公開について | NTTデータ

https://www.nttdata.com/jp/ja/info/spf/

SPF(Sender Policy Framework) : 迷惑メール対策委員会

https://salt.iajapan.org/wpmu/anti_spam/admin/tech/explanation/spf/#100

ただし、SPFレコードによるなりすましメールの判別には回避する手法が存在するため、DKIMやDMARCといった他の認証技術を組み合わせることが大切です。

GoogleのGmail・G Suiteでなりすましメールに関する脆弱性が報告される - GIGAZINE

https://gigazine.net/news/20200821-gmail-gsuite-vulnerability/