迷惑メールでは、配信元(差出人)メールアドレスを偽装して実在する企業や組織になりすますことで受信者をだまし、不正行為が行われることがよくあります。そのため、受信者側のメールサービスでは、このようななりすましメールがユーザーの受信トレイに届くのを防ぐ必要があります。一方、配信者側では、配信するメールが悪意のある第三者によって改ざんされるのを防ぐ必要があります。これには、メールの配信元ドメインを認証するための技術を実装することが有効です。
その1つが「DMARC」(Domain-based Message Authentication Reporting and Conformance)と呼ばれる技術です。DMARCでは、「SPF」(Sender Policy Framework)と「DKIM」(DomainKeys Identified Mail)という2種類の標準的な認証技術を組み合わせて、受信したメールの認証が行われます。さらに、認証失敗時に該当の受信メールをどのように処理するかをポリシーとして設定できます。DMARCを実装するためには、該当のドメインを管理しているDNSサーバーにおいて、DMARCのポリシーを公開します。これにより、該当のドメインを使用して配信されたが認証に失敗したメールの処理方法を、受信者側のメールサーバーに対して指示することが可能です。
DMARCのポリシーで設定できる処理方法には、次の3種類があります。
メールをそのまま受信する(認証結果に応じた処理は何もしない):「p=none」
「p=none」としてポリシーを設定すると、メールの配信元ドメインの認証が失敗した場合でも、該当のメールはそのまま受信トレイに振り分けられます。
メールを隔離する:「p=quarantine」
「p=quarantine」としてポリシーを設定すると、メールの配信元ドメインの認証が失敗した場合、該当のメールはサーバー上の隔離用フォルダーに保存されます。なお、隔離用フォルダー内に保存されたメールを表示できるのは、サーバーの管理者のみです。
メールを拒否する:「p=reject」
「p=reject」としてポリシーを設定すると、メールの配信元ドメインの認証が失敗した場合、該当のメールは拒否されます。拒否されたメールの詳細は、DMARCの認証失敗に関するレポートで確認できます。なお、このレポートは、受信メールの認証失敗時に、受信サーバーから配信元に自動的に送信されます。
DMARCの仕組み
DMARCでは、SPFとDKIMという2つの配信元ドメイン認証技術が使用されます。DMARC認証に成功してメールを適切に配信するためには、SPFとDKIMのいずれかの認証に成功する必要があります。
手順1
認証失敗時の受信メールの処理方法を設定したDMARCポリシーを、DNSサーバーでレコードに記述して公開します(このポリシーは、メールサービスの受信サーバーによって参照されます)。ポリシーの反映には、最大24時間かかる場合があります。
手順2
SPFとDKIMを実装して、配信元ドメインを認証します。なお、SPFとDKIMを実装せずにメールを配信すると、該当のメールは不達になる恐れがあります。一方、SPFとDKIMを実装した上でメールを配信すると、受信者側のメールサーバーにより配信元ドメインの認証が行われ、不達になる可能性を下げることができます。受信者側のメールサーバーで実行される処理の詳細は、次のとおりです。
- DKIMレコードによる認証方法を用いて、配信元ドメインの認証が行われます。配信元ドメインのDNSサーバーに問い合わせて公開鍵を取得することで、受信したメールの署名の適切性が検証されます。これにより、メールの配信元のなりすましや改ざんを検知できます。
- SPFレコードによる認証方法を用いて、配信元ドメインの認証が行われます。配信元ドメインのDNSサーバーに問い合わせてSPFレコードに記載されているIPアドレスを確認することで、受信したメールの配信元のIPアドレスの適切性が検証されます。これにより、メールの配信元のなりすましを検知できます。
- SPFとDKIMのアライメントと呼ばれる認証方法を用いて、配信元ドメインの認証が行われます。アライメントによる認証では、受信したメールのヘッダーに記載されている配信元ドメインと、SPFとDKIMを通じて認証されたドメインが一致するかどうかが照合されます。
手順3
メールサービスの受信サーバーによってDMARCポリシー(レコード)が参照されて適用され、ポリシーで設定されている処理が実行されます。
手順4
メールサービスの受信サーバーから、DMARCポリシーで指定されているメールアドレス宛てに、メールの認証結果と処理履歴に関するレポートが送信されます。
DMARCレコードの内容
DMARCレコードの例と各設定値の詳細は、次のとおりです。
v:使用されているDMARCのバージョンです。
p:DMARCポリシーの設定内容です。認証に失敗したメールの処理方法として3種類(none、quarantine、reject)のうちのいずれかを指定します。
rua:SPFとDKIMの認証結果、配信元ドメインの情報、認証成功率に関する一定期間の統計レポートの送信先メールアドレスです。
ruf:SPFとDKIMの認証に失敗した個々のメールに関する通知レポートの送信先メールアドレスです。
pct:ポリシーを適用するメールの割合です。
DMARCレコードの実装方法
DMARCを実装するには、次の3つの手順を実行します。
- SPFレコードとDKIMレコードによる認証
- DMARCレコードの生成
- 配信元ドメインを管理するDNSサーバーへのDMARCレコードの追加
SPFレコードとDKIMレコードによる認証
SPFとDKIMの各レコードによる認証方法を用いて、配信元ドメインの認証を行います。あわせて、SPFとDKIMのアライメント(メールのヘッダーに記載されている配信元ドメインと、SPFやDKIMで認証したドメインとの照合)を行う必要があります。DMARCを実装するには、配信元ドメインを管理するDNSサーバーにおいて、SPFレコードとDKIMレコードの設定を行う必要がありますのでご注意ください。SPFとDKIMの認証のいずれかにおいて、レコードによる認証とアライメントの認証の両方に成功しない限り、DMARC認証は自動的に失敗します。
SPFとDKIMのアライメントの認証では、次の手順が実行されます。
- SPFレコードの場合、メールのヘッダーに記載されている「From」と「Return-Path」のメールアドレスのドメインが、SPFを通じて認証された配信元ドメインと一致しているかどうかが照合されます。
- DKIMレコードの場合、メールのヘッダーに記載されている「From」のメールアドレスのドメインが、DKIMを通じて認証された配信元ドメイン(DKIM署名ヘッダーの「d」タグ)と一致しているかどうかが照合されます。
DMARCレコードの生成
DMARCレコードは、自身で独自に作成できるほか、
DMARC.orgで推奨されているツールを使用して生成することも可能です。
配信元ドメインを管理するDNSサーバーへのDMARCレコードの追加
最後の手順では、配信元ドメインを管理するDNSサーバーに、DMARC用のレコードを追加します。具体的には、認証用のTXTレコードを追加します。なお、ドメインの管理サービスごとに、TXTレコードの追加方法は異なります。自身で追加を行う必要がありますが、サポートが必要な場合はご利用のドメイン管理サービスにお問い合わせください。
DMARCレポートの送付先メールアドレスの指定
メールの認証結果と処理履歴に関するレポートを受信するための、送付先メールアドレスを指定します。全体的な統計に関するレポートと個別の認証の失敗に関するレポートの2種類のレポートの送付先メールアドレスを指定する必要がありますが、受信したレポートを確認しやすいように、それぞれ専用の送付先メールアドレスを指定することをお勧めします。なお、これらのレポートの内容をもとに、メールの認証状況や不正を迅速に把握し、ポリシーの設定内容の見直しなどの必要な対応を迅速に行うことができます。
DMARCを実装するメリット
DMARCを実装すると、次のメリットがあります。
- 自社が使用する配信元ドメインが悪意のある第三者によって悪用され、なりすましメールとして送信されるのを防ぐことができます。
- メールサービスや迷惑メール対策サービスにおいて、自社が使用する配信元ドメインの信頼性が向上するため、メールの到達率が向上します。
- 自社のドメインを使用して配信されたが認証に失敗したメールの処理方法について、受信者側のメールサーバーに指示できます。
Zoho Campaignsでは、自社独自の配信元ドメインを使用してメールを配信する場合に安全性を高める方法としてSPF、DKIM、DMARCを実装することを強くお勧めします。実装方法の詳細については、
SPFとDKIM用のTXTレコードの設定方法をご参照ください。