メールの差出人となるメールアドレスは、第三者によるなりすまし等で簡単に偽ることができてしまいます。皆さんも、スパムメールや詐欺メールを目にする機会は非常に多いかと思います。しかし、実在する企業のドメインや過去にやり取りしていた相手に偽装するなどして、巧妙なメールを送信してくることがあるため、受信者が一目でメールの安全性を判別することは困難です。

このような差出人となるメールアドレスの偽装を防ぐ方法として考えられたのが、送信ドメイン認証です。正規の差出人からのメールであることを証明する仕組みとして、SPF(Sender Policy Framework)や DKIM(DomainKeys Identified Mail)があります。
SPF や DKIM で判定した結果、差出人のメールアドレスが偽られている場合のメール処理方法をポリシーとして、設定する仕組みが DMARC(Domain-based Message Authentication Reporting and Conformance)です。

また、最近の動向としましては、 Google から Gmail アカウントに 5,000通以上のメール送信する場合は、2024年2月より送信ドメイン認証(SPF , DKIM , DMARC)に対応するようガイドラインが発表されました。※1
今後、 Google 以外のドメインに関しても、送信ドメイン認証に対応する必要が生じる可能性があります。

※1 引用:メール送信者のガイドライン – Google Workspace 管理者 ヘルプ

本記事では、送信ドメイン認証についての概要や実際の設定方法についてご紹介します。

SPF の仕組み

メールを受信した際に、第三者のなりすましでないかを送信元ドメインに登録されている SPFレコード を確認し、一致すればメールを送信します。

DKIM の仕組み

送信するメールに電子署名を付随し、メールを受信した際に電子署名の有無を確認します。
電子署名がないものや第三者のなりすましでないか確認を行い、登録されている電子署名を一致すれば、メールを送信します。

DMARC の仕組み

DMARC とは、 SPF や DKIM と同じく「送信ドメイン認証」の一つとなり、ドメインから送信されたメッセージを、送信先のメール システムにて承認できるようにするものです。

仕組みとして、 SPF や DKIM にて送信者が [ example.jp ] のドメインメール認証が、失敗したメールに対して、ポリシーを作成します。ポリシーに応じたアクションを実行することで、メールのスプーフィングやフィッシングに対抗することが可能となり、よりセキュリティを強化することができます。

メールを受信した際に、 SPF または DKIM による認証が、正しくなかった場合のメール処理方法を受信サーバに設定します。DMARC認証を通過するには、メールが SPF , DKIM によって認証されている必要があります。

そのため、 DMARC を設定するには、 SPF および DKIM による認証が設定してあることが前提となります。
作成した DMARC ポリシーは DNS へ登録する必要があります。
※ DMARC のみを設定しても正常に動作しません。


SPF の設定方法

(1) 管理アカウントより Microsoft 365 管理センター(https://admin.microsoft.com/)へアクセスします。

(2) [設定] < [ドメイン] より SPF を設定するドメインを選択し、上側タブより [DNS レコード] をクリックします。

(3) Microsoft Exchange 項目に表示されている [TXT レコード]の値をコピーします。

(4) (3)でコピーした[TXT レコード]をご利用中の DNS サービスプロバイダーへ登録します。
 Microsoft 365 に SPFを適用すると以下のようになります。

 (例)
 名前:example.jp(@)
 種類:TXT
 値:v=spf1 include:spf.protection.outlook.com -all

 ※ Microsoft 365 以外のサービスもお使いの場合は、それぞれのサービス用の設定が必要です。

DKIM の設定方法

(1)管理アカウントより Microsoft Defender(https://security.microsoft.com/)へアクセスします。

(2) [ポリシーとルール] ー [脅威ポリシー] ー [メールの認証の設定] より [DKIM] タブをクリックします。

(3) DKIM 設定するドメインを選択します。

(4) [DKIM キーの作成] をクリックします。

(5) ポップアップ画面が表示されましたら、 CNAME レコードをコピーします。

(6) コピーした CNAME レコードをご利用中の DNS サービスプロバイダーへ登録します。
 例えば、Microsoft 365 に DKIM を適用すると以下のようになります。

 (例)
  名前:selector1_domainkey.example.jp
  種類:CNAME
  値 :selector1-example-jp._domainkey.example.onmicrosoft.com

  名前:selector2_domainkey.example.jp
  種類:CNAME
  値 :selector2-example-jp._domainkey.example.onmicrosoft.com

(7) 上記で CNAME レコードを登録したドメインを選択します。

(8) [無効]から[有効]へ切替えます。( 反映までに時間がかかる場合があります。)

(9) [有効] へ切替えられれば完了です。
 ※ Microsoft 365 以外のサービスもお使いの場合は、それぞれのサービス用の設定が必要です。

DMARC の設定方法

例えば [example.jp] に DMARC ポリシーを適用すると以下のようになります。

(例)
 名前:_dmarc.example.jp
 種類:TXT
 値 :“v=DMARC1; p=none; rua=mailto:report@example.jp;ruf=mailto:ng_report@example.jp “

上記の [TXT レコード] をご利用中の DNS サービスプロバイダーへ登録します。

「rua=」のメールアドレスはレポートの送信先、 「ruf =」のメールアドレスは認証に失敗レポートの送信先です。
作成できるアクションは「p=」の値にて指定します。アクションは以下の3つがあります。

「p=(アクション)」 の種類

  • none:受信箱に受信する(何もしない)
  • quarantine:迷惑メールとして分類する
  • reject:メール受信をブロックする

本設定を実施すると、正しいメールであるにもかかわらず、ドメイン認証がされていないと判断されてしまう可能性があります。特にメール配信システムなど複数の送信メールサーバーを利用されている場合は、注意が必要です。

そのため、まずは、「p=」は none に設定し、 「ruf=」にて指定したメールアドレスに届くレポートから状況を確認します。その後、必要に応じて対処し、全ての正しいメールがドメイン認証されていることを確認のうえ、適宜 quarantine 等へ変更してください。


本記事では、 メールアドレスの偽装を防ぐ方法として、SPF や DKIM 、DMAR の仕組みと設定方法を紹介しました。もっと詳しく知りたい方やご相談、ご質問ございましたらお気軽にお問い合わせください。