BLOG ベアメールブログ
2021.03.16 (火)
メール用語解説SPF・DKIM設定の具体的な確認方法
Last Updated on 2024.08.5
コミュニケーション手段として未だ重要な役割を果たしているメールですが、送信元を偽ることで受信者を騙し、ウイルスに感染させようとしたり、フィッシング詐欺に誘導させたりするような不正なメールもまた後を絶ちません。こうしたメールは「なりすましメール」と呼ばれ、重大なセキュリティインシデントの温床になりえます。
こうした悪質な「なりすまし」を防ぐための仕組みが「送信ドメイン認証」です。送信ドメイン認証を怠っていると、自分の送ったメールがなりすましメールだと誤解されてしまい、メールが届かず企業活動が阻害されるリスクもあります。ここでは、なりすましメールの仕組みや、送信ドメイン認証の方法である「SPF」「DKIM」の確認方法について解説します。
目次
なりすましメールの概要と仕組み
まず、なりすましメールの概要と仕組みについて解説します。
なりすましメールとは
なりすましメールとは、「送信元を偽装して送信されたメール」の総称です。近年、なりすましメールがフィッシング詐欺などの初手として使われるケースが多発しています。企業や政府機関の名称を使い、偽のサイトへ誘導してログイン情報を抜き取るなど、重大なセキュリティインシデントの温床となっているのです。
なりすましメールは、確認方法を知らなければ見破りにくいのが実情です。その理由として、一般的なメールソフト上では「真の送信元アドレス」とも言えるエンベロープFromが確認しにくいという点があります。
なりすましメールの仕組み
では、なりすましメールを技術的な側面から解説していきます。
●エンベロープFromとヘッダFromの違いを利用
なりすましメールは、SMTPプロトコルの特性を利用し、ヘッダ情報を改変して送信します。具体的には、ヘッダFrom(メールクライアントに表示される送信元アドレス)やReply-To(返信先)をエンベロープFrom(実際の送信メールサーバで設定される送信元アドレス)とは異なるものに設定し、送信元を偽装しているのです。
この状態で返信ボタンをクリックすると、偽装された送信元アドレスとは違う、悪意ある送信者が設定した返信先に対してメールを送信することになります。このようななりすましメールに対して重要な情報を返信すると、まったく別の第三者に情報を漏洩させてしまうリスクにつながるわけです。
送信ドメイン認証技術「SPF」「DKIM」とは
もし自社のドメインが、悪意ある第三者によって「なりすまし」をされ不正なメールに利用されてしまったら、社会的な信用を失いかねません。自社のドメインやメールを「なりすまし」から守るために必要なのが、送信ドメイン認証である「SPF」と「DKIM」です。特にSPFは送信ドメイン認証として広く普及しており、対応していないとキャリアやメールプロバイダから「なりすまし」だと判断されてしまい、不審なメールとして処理されてしまう原因にもなり得ます。ここではSPFとDKIMの概要と、対応しているか確認するための方法を解説します。
SPF(Sender Policy Framework)
SPFは、送信元IPアドレスの正当性を検証する仕組みです。認証情報としてIPアドレスを使用し、受信側はメール受信時に送信側のDNSサーバに登録されたSPFレコードと送信元メールサーバの情報のマッチングを行い、送信元の正当性を判断します。
SPFは送信側DNSサーバに対してSPFレコードの追加を行うことで利用できるため、設定の手間が少ないことが特徴です。ただし、SPFが検知できるのは送信元メールサーバの正当性のみであり、ヘッダ情報(ヘッダFromやReply-Toなど)の改竄などは検知できないことに注意してください。
送信側は、DNSサーバへSPFレコードを追加することで設定が完了します。DNSレコードの具体的な記述方法については、こちらの記事で詳しく解説しています。
SPFレコードの書き方とは?記述例を総まとめ|ベアメールブログ
SPFの確認方法
SPFが正しく設定されているかは、「オンラインツール」や「コマンドライン」を活用することで確認できます。
●オンラインツールでの確認方法
例えば、無料のSPFレコード確認サイト「SPF Record Testing Tools」(https://www.kitterman.com/spf/validate.html?)では、送信元ドメインや、DNSに設定したSPFレコードを指定することで、SPFが有効かどうかをチェックできます。
「Domain name」欄に送信元ドメインを入力し、「Get SPF Record」を押下することで、SPFレコードの有効性がチェックできます。また同サイトではSPFレコードの構文チェックや、DNSルックアップ回数が制限内に収まっているかの確認も可能なため、「SPFレコードを設定したものの、到達率が改善しない」といった場合の設定見直しでも活用できるでしょう。
●コマンドラインでの確認方法
SPFレコードは、OS(WindowsやLinux)からコマンドラインを使って確認することもできます。OSによって利用コマンドは異なりますが、主なコマンドは以下のとおりです。
・dig
・nslookup
・drill(FreeBSDの場合)
・host
例えば、DNS情報を取得する際によく使われるnslookupを使う場合は、次のように記述します。
Linuxの場合… nslookup -type=TXT sample.co.jp(※調べたいドメイン)
Windowsの場合… nslookup -q=txt sample.co.jp(※調べたいドメイン)
コマンドラインオプションに「-type=TXT」「-q=txt」と指定することで、DNSサーバに設定されているテキストレコードを取得します。以下は、Linuxでの表示例です。
nslookup -type=TXT sample.co.jp
Server: xxx.xxx.xxx.xxx
Address: xxx.xxx.xxx.xxx
Non-authoritative answer:
sample.co.jp text = “v=spf1 ip4:xxx.xxx.xxx.xxx include:yyy.co.jp -all”
SPFレコードが設定されている場合は、「v=spf1」から始まるレコードが表示されます。
「include」や「redirect」が指定されている場合は、同様の方法でさらにそのドメインを調べることで、送信元サーバの詳しい情報を確認することが可能です。
nslookup -type=TXT yyy.co.jp
Server: xxx.xxx.xxx.xxx
Address: xxx.xxx.xxx.xxx
Non-authoritative answer:
yyy.co.jp text = “v=spf1
ip4:xxx.xxx.xxx.xxx/28 -all
WindwosもLinux同様にnslookup コマンドで調べますが、コマンドラインオプションが異なります。「-q=txt」を指定しないと調べられませんので注意してください。
DKIM(Domain Keys Identified Mail)
DKIMは、メールの内容がオリジナルから改竄されていないことを検証する仕組みです。認証情報として電子署名を使用し、公開鍵暗号化方式によってチェックが行われます。具体的には、送信元メールサーバに設置された秘密鍵情報を用いて付与された電子署名を、受信側が公開鍵情報を送信元DNSサーバから取得し、署名の妥当性をチェックする仕組みです。エンベロープFromの妥当性はもちろんのこと、SPFでは検知できないヘッダ情報(ヘッダFromやReply-toなど)やメッセージ内容の改変も検知できることが強みです。
DKIMについて詳しくはこちらの記事をご参照ください。
DKIMを導入するには? 仕組みや設定方法を解説 | ベアメールブログ
DKIMの確認方法
DKIMも、SPFと同じく「オンラインツール」や「コマンドライン」での確認が可能です。
確認には、「ドメイン名」と「セレクタ※」が必要のため、セレクタの情報がわからない場合は配信したメールのヘッダ情報から「セレクタ」を見つけ出します。セレクタは「DKIM-Signature:v=1; ~中略~ s=xxxx;」といった記載の中にあるs=「xxxx」の部分です。
※セレクタ: 公開鍵の詳細を識別するために使用される、DKIM署名の属性情報。異なるセレクタを用意することで、同じドメインに対して複数の公開鍵を運用できます。
●オンラインツールでの確認方法
DKIMを確認するためのオンラインツールとしては、「dmarcian.com DKIM Inspector」(https://dmarcian.com/dkim-inspector/)
「DKIM core」(https://dkimcore.org/tools/)などがメジャーです。両サイトともに、「ドメイン名」と「セレクタ」を入力し、公開鍵データが正常に取得できるかチェックすることが可能です。
●コマンドラインでの確認方法
OS上から以下のようなコマンドを打ち込みます。「v=DKIM」から始まるレコードが、公開鍵の情報です。
nslookup -type=TXT selector.セレクタ._domainkey.<エンベロープFromドメイン>
受信側でSPF・DKIMを確認するには?
SPF・DKIMが設定されているか否か「受信側」から確認する方法としては、メールのヘッダ情報をチェックする方法がおすすめです。例えば、Gmailでは、次のような手順で確認できるようになっています。
Gmailの場合
チェックしたいメールを開き、メールヘッダ部分の「to 自分」の右にある「▼」マークをクリックします。
以下項目が表示されていれば、SPF・DKIMが設定されています。認証結果がPASSであれば成功、FAILであれば失敗しているということがわかります。
・SPF認証が有効な場合は「SPF」の項目と認証結果(”PASS” or “FAIL”)および認証したIPアドレス
・DKIM認証が有効な場合は「DKIM」の項目と認証結果(”PASS” or “FAIL”)および認証したドメイン
メールを転送していたり、メールセキュリティソフトを導入している場合は、正当なメールでも送信経路の途中で認証が失敗してしまうこともあります。その場合メールソースの詳細を確認し、「Authentication-Results」の箇所を確認するとどこで認証が失敗しているかわかります。ブラウザの機能で検索すると素早く該当箇所を見つけることができます。
DKIM認証が失敗してしまう原因についてはこちらの記事でも詳しく解説しています。
DKIM認証が失敗する原因とは? DKIM failの修正方法 | ベアメールブログ
まとめ
本稿では、なりすましメールの仕組みや防止策としての送信ドメイン認証、その確認方法について解説してきました。SPFやDKIMを正しく設定することで、自社ドメインを悪意ある第三者による「なりすまし」から守り、自社ドメインから送信する正当なメールが不審なメールとして判定されるリスクを低減させられます。ぜひ送信ドメイン認証を活用して、安心して利用できるメール環境を構築しましょう。