DMARC認証が失敗する原因と簡単にできる解決方法を詳しく解説
近年、巧妙化するサイバー攻撃なども増えている中、電子メールのセキュリティは、デジタルコミュニケーションにおいて不可欠な要素となってきています。
そんな中「なりすましメール」や「メール改ざん」による被害から、自社や取引先、顧客を守る手段として注目を集めているのが「DMARC(ディーマーク)」です。
メールの送信者が正当かどうか判定する「ドメイン認証技術」の一つであるDMARCにより、多くのなりすましメールやメール改ざんが防止されています。しかし、その陰でDMARC認証の失敗が多発し困っている担当者も少なくありません。
この記事では、DMARCの概要と認証が失敗する原因、認証の失敗を確認する方法や認証が失敗したときの解決方法について解説します。
DMARCとは
DMARCは「Domain-based Message Authentication Reporting and Conformance」の略で、なりすましメールやメール改ざんなどを防止するための「送信ドメイン認証技術」です。
同じ送信ドメイン認証技術である、SPF認証やDKIM認証といった既存の認証技術と併せて使用し、なりすましメールやメール改ざんを防ぐ役割を果たしています。
また、認証に失敗したメールを「監視(p=none)」「隔離(p=quarantine)」「拒否(p=reject)」する取り扱い方を受信者に委ねるのではなく、送信者が指示できるのも特徴の一つです。ここでは、DMARCの仕組みとポリシーについて解説します。
DMARCの仕組み
DMARC認証は、SPF認証とSPFアライメント、またはDKIM認証とDKIMアライメントのいずれかをパスする必要があります。DMARCポリシーに基づき、認証に失敗したメールの処理方法を送信ドメイン所有者が受信者側に指示できます。
また、メールがDMARC認証に失敗した場合、送信ドメイン所有者側が「DMARCポリシー」を介して、受信者側へメールの処理方法を指示できる仕組みになっています。
なお、ここではSPF認証やDKIM認証に加え、SPFアライメントとDKIMアライメントについて解説し、さらにDMARC認証の流れを紹介します。
SPFとDKIM
DMARCの実装には、以下のSPFまたはDKIMを用いる必要があります。
SPF
SPF(Sender Policy Framework)は、メールの送信元ドメインの正当性を確認するための認証技術です。
具体的には、送信元のIPアドレスが、そのドメインから送信することを許可されたものであるかどうかを検証します。これにより、なりすましメールやスパムメールの送信を防ぐことができます。
- SPF(Sender Policy Framework)
SPFは、送信元のIPアドレスを利用して送信ドメインを認証する技術です。SPFレコードはDNSに登録される
- SPFアライメント
表示送信元アドレス(header-from)が、SPFで認証したアドレス(envelop-from)と一致するかチェックする
DKIM
DKIM(DomainKeys Identified Mail)は、電子メールの送信元のドメインを検証し、メールの内容が改ざんされていないことを保証するための認証技術です。
具体的には、メールにデジタル署名を追加し、受信サーバーがその署名を検証することで、メールが正当な送信元から送信されたものであることを確認します。
- DKIM(Domain Keys Identified Mail)
DKIMは、電子署名を利用して送信ドメインを認証する技術です。DKIM署名は送信メールに追加され、受信サーバーはその署名を検証する
- DKIMアライメント
表示送信元アドレス(header-from)が、DKIM署名の「d=」で指定したドメインと一致するかチェックする
DMARCによる送信メールの認証に合格するには、SPFまたはDKIMの認証に合格し、さらに以下のSPFアライメントまたはDKIMアライメントにも合格しなければなりません。
DMARCによる認証の流れ
DMARCによる認証の流れは次の通りです。
- ドメイン所有者は、DMARCポリシー情報(DMARCレコード)をDNSサーバーに登録する
- 受信サーバーはメール受信時に、表示送信元アドレス(header-from)のドメインにDMARCレコードが登録されているか確認する
- DMARCレコードが存在する場合、DMARC認証の検証を実施する
- DMARC認証に失敗した場合は、DMARCポリシーに従ってメールを処理する(監視、そのまま配信/隔離/拒否、配信されない)
- 受信サーバーはDMARCレポートをドメイン所有者に送信する
これがDMARCによる認証の流れです。このプロセスにより、メールの信頼性を高め、不正メールの送信を防ぐことができます。
DMARCポリシーとは
DMARCポリシーとは、送信ドメインの所有者がDMARC認証に失敗したメールをどう処理するか設定できる「電子メール認証ポリシー」です。「p(ポリシー)= ポリシーの種類」で表されます。
- 「p=none;(監視、そのまま配信)」
DMARC認証に失敗したメッセージは、監視はされますがそのまま受信者の受信トレイに配信される
- 「p=quarantine;(迷惑フォルダへ隔離)」
DMARC認証に失敗したメッセージを、受信トレイではなく迷惑メールフォルダに隔離される
- 「p=reject;(拒否、配信されない)」
DMARC認証に失敗したメッセージは、受信者に配信されない
DMARC認証が失敗する原因
DMARC認証が失敗する原因には、DMARCポリシーの設定誤りや、悪質業者による正規ドメインの偽装など、さまざまな理由が考えられます。
これらの原因を理解し、適切な設定と認証対策を講じることで、メールセキュリティを強化することができます。
ここでは、DMARC認証が失敗する原因を5つご紹介します。
DMARCアライメントの失敗
DMARCアライメントは、メールヘッダのドメインを一致させるプロセスです。
表示送信元アドレス(header-from)のドメインが本物かどうかを、SPF認証の場合には、非表示のReturn-pathヘッダで照合します。DKIM認証の場合には、DKIM署名ヘッダのドメインと照合して検証します。
SPFまたはDKIMのどちらかが一致した場合はDMARCを通過し、そうでない場合はDMARCアライメントの失敗となる流れです。
DMARCアライメントモードが不適切
DMARCには「relaxed」と「strict」の二つのアライメントモードがあります。
- relaxed
表示送信元アドレス(header-from)のドメインと、SPFまたはDKIMで認証したドメインが同じであれば成功となる。サブドメインを利用していても一致とみなす。
- strict
relaxedよりも厳格で、表示送信元アドレス(header-from)のFQDNが、SPFアライメントの場合は「Return-Path(envelop-from)」、DKIMアライメントの場合は「署名ドメイン」と完全に一致する必要がある。
DMARCポリシーで設定されるアライメントモードは、上記の通り「relaxed」と「strict」の2つです。relaxedは、サブドメインを含むある程度の違いは許容されます。しかし、strictはドメインが完全に一致しなければならず、わずかな違いでも認証が失敗してしまうのです。
DKIM署名を設定していない
DKIM署名を設定していない場合、正しいドメインから、メールが送信されていることを確認するためのデジタル署名である「DKIM署名」を設定していないことも、DMARC認証が失敗する原因のひとつです。
この場合、メール交換サービスプロバイダはデフォルトのDKIM署名を割り当てますが、表示送信元アドレス(header-from)のドメインとは一致しません。受信側のMTAは、2つのドメインの整合に失敗するため、DKIM認証とDMARC認証は失敗します。
なお、MTAとは、Mail Transfer Agentの略でメール転送エージェント、メールの配送・転送を担うソフトウェアのことです。
DNSに送信元を追加していない
SPFを使用してドメインにDMARCを設定する場合、受信側のMTAはDNSクエリを実行して送信元を認証する必要があります。
このDNSクエリとは、IPアドレスに関連するドメイン名をDNSサーバーに問い合わせることです。つまり、許可された送信元すべてをドメインのDNSに追加しない限り、メールはSPF認証に失敗し、リストされていない送信元についてはDMARC認証にも失敗します。
サードパーティーのメールボックスプロバイダーを使用している
メールの送信をサードパーティーのメールボックスプロバイダーが代行する場合は、DMARCとSPFまたはDKIMの有効化が必要です。
有効化の方法としては、プロバイダーに実装を依頼する方法と、プロトコルを手動で有効化する2つの方法があります。ただし、自分で有効化するには、各プラットフォーム上でホストされるアカウントポータルに管理者としてアクセスしなければなりません。
どちらにせよ、これらのプロトコルを有効化しないと、DMARC認証が失敗する恐れがあるので注意しましょう。
DMARC認証の失敗を確認する方法
DMARC認証が失敗したとき、どのように確認すればよいのでしょうか。ここでは、4つの有効な確認方法について解説します。
DMARCレポートを有効にする
DMARC認証の失敗を確認する方法の1つ目は、DMARCのDNSレコードに「rua=mailto:メールアドレス」と定義する方法です。これだけで、ESP(Email Service Provider:電子メールサービスプロバイダー)からDMARCデータを含むレポートが受け取れます。
具体的な構文は以下の通りです。
「v=DMARC1; p=reject; rua=mailto:email@example.com;ptc=100;」
この「rua=mailto:メールアドレス」のメールアドレス部分には、レポートを受け取りたいメールアドレスを指定します。これにより、送信されたメールの認証状況を詳細に把握できます。
メールヘッダを手動で分析する
DMARC認証の失敗を確認する方法の2つ目は、メールヘッダを手動で分析する方法です。
受信したメールヘッダにはDMARC認証の結果が含まれており、これを分析することでメール配送のどの時点でどの認証が失敗したのか確認できます。
例えばGmailの場合、メールを開き、メール右上の縦三点ボタンを押した後「メッセージのソースを表示」を押せば、メールヘッダ情報が確認できるのです。
分析ツールを利用する
DMARC認証失敗を確認する方法の3つ目は、分析ツールを利用する方法です。
分析ツールが、メールサービスプロバイダーから送信されるXML形式のDMARCレポートを自動集計し、表やグラフとして可視化します。これにより、認証に失敗したメールの問題点を調査でき、対応策の実施が容易になるのです。
ただし、DMARC分析ツールの多くは有償なので、導入には一定の投資が必要になります。
Googleのメールログ検索を利用する
DMARC認証の失敗を確認する方法の4つ目は、Googleのメールログ検索を利用する方法です。
Googleのメールログ検索を利用することで、特定のメッセージがDMARC認証に失敗したことに関する追加情報を見つけることができます。これにより、メッセージの詳細や配信後の状態、受信者の詳細などを把握できます。特にGmailを利用している場合、詳細なログ検索機能を活用することで、問題の原因を突き止めるのに役立ちます。
これらの方法を組み合わせて使用することで、DMARC認証の失敗原因を効果的に確認し、適切な対策を講じることができます。
DMARC認証に失敗したときの解決方法
DMARC認証に失敗する原因や、失敗を確認する方法を理解したところで、次はその解決方法を見ていきましょう。
DMARC認証に失敗したときの解決方法は以下の3つです。
SPF/DKIM認証を有効化する
SPFとDKIMの有効化には、SPFとDKIMが正しく設定され有効であることが必要です。
SPFでは送信メールサーバーのIPアドレスを認証し、DKIMでは電子署名でメールが改ざんされていないことを保証します。SPF認証またはDKIM認証に失敗した場合、設定を見直し 調整する必要があります。
- SPF認証
SPFレコードにすべての送信元IPが含まれているか確認します。DNSに正しいSPFレコードを追加し、送信元IPアドレスをリスト化します。 - DKIM認証
DKIMの公開鍵と秘密鍵が正確に設定されているか確認します。メールサーバーにDKIM署名を追加し、DNSに公開鍵を登録します。
これにより、正当なメール送信元を証明し、DMARC認証の成功率を高めます。
DMARCポリシーを変更する
DMARCポリシーには「none(監視、そのまま配信)」、「quarantine(迷惑フォルダへ隔離)」、「reject(拒否、配信されない)」の3種類があります。認証に失敗した場合、ポリシーを「none」に設定することで、メールが届くようにすることができます。
ただし、セキュリティレベルが下がり、リスクが増加するため注意が必要です。具体的なポリシー設定の例は以下の通りです。
v=DMARC1; p=none; rua=mailto:email@example.com; pct=100;
この設定により、DMARC認証に失敗してもメールが受信者の受信トレイに届くようになりますが、同時に監視を行うことで問題の特定が可能です。
ドメインの認証を行う
メールの表示送信元アドレス(header-from)のドメインとSPF、またはDKIMで認証したドメインが一致しているかを確認します。DMARC認証が失敗する主な原因は、ドメインが一致しないことです。この問題を解決するために以下の対応を行います。
- SPFアライメント
送信メールのReturn-Path(envelop-from)のドメインを変更して、表示送信元アドレス(header-from)のドメインと一致させる
- DKIMアライメント
DKIM署名「d=」で指定されているドメインを変更して、表示送信元アドレス(header-from)のドメインと一致させる
これにより、DMARCアライメントが成功し、認証が通るようになります。
これらの解決方法を実行することで、DMARC認証の失敗を防ぎ、メールセキュリティを強化することができます。
送信ドメイン認証ができるメール配信システムの活用
送信ドメイン認証が可能なメール配信システムを活用することで、フィッシング詐欺やスパムメールのリスクを低減し、メールの信頼性を高めることができます。
ここでは、送信ドメイン認証に対応したメール配信システムの特徴と活用方法について解説します。
- SPF対応
選定するシステムがSPFレコードの設定をサポートしているか確認します。システム側で提供されるIPアドレスを自社ドメインのDNSに設定することで、SPF認証が機能します。 - DKIM対応
DKIM署名の設定をサポートしているか確認します。システム側で提供される公開鍵を自社ドメインのDNSに設定し、メールにDKIM署名を追加できるようにします。 - DMARC対応
DMARCポリシーの設定とレポート機能をサポートしているか確認します。DMARCを利用することで、メールの認証失敗時の処理方法を細かく設定できます。
Gmail送信者ガイドラインの順守
メール配信システムを選ぶ際にもう一点考慮すべきことは、Gmail送信者ガイドラインへの順守です。Gmail送信者ガイドラインは2024年2月に新しい内容に変更されています。
変更内容は大きく分けると以下の3点になります。
- 送信メールを認証すること
- 未承諾のメールまたは迷惑メールを送信しないこと
- 受信者がメールの配信登録を容易に解除できるようにすること
つまり、送信元の正当性を正しく認証した上で、ユーザーが迷惑がらないようにメールを送信することがメール送信者には求められています。このあガイドラインの要件を満たせていないメールは迷惑メールに割り振られてしまったり、受信を拒否されることがあります。
その中でも、「送信メールを認証すること」は今後もメール関連のセキュリティが強化されていくことが想定できるため必須と言えるでしょう。
そのため、メール配信システムを活用してメール配信を行う場合は、「DKIMが設定できる」などのメール認証ができるシステムを選ぶようにしましょう。
おすすめのシステムは以下で紹介します。
API連携・SMTPリレーサービス「ブラストエンジン(blastengine)」
SPFやDKIMなどGmail送信者ガイドライン対応しており、API連携・SMTPリレーが可能なメール配信システムです。
ブラストエンジンは、SMTPリレーサーバーを使用して、簡単に大量のメールを高速配信することが可能です。さらに、メールサーバーを必要とせず、API経由でメールを送信する仕組みも提供しています。
ブラストエンジンは、サーバーの運用やメンテナンスを行っているため、常に高いIPレピュテーションを維持しながら、安全にメールを送ることができます。
以下のような課題がある場合は、ブラストエンジンの利用を検討してみることをおすすめします。
- 自社のIPアドレスやドメインがブラックリストに登録されていて、メールが届かない場合
- 国内キャリアにメールが届かず、対応方法がわからない場合
- 自社でメールサーバーを管理・運用したくない場合
また、ブラストエンジンは各メールプロバイダーや携帯キャリアのドメインに最適化されており、大規模なネットワークを経由してメール配信を行うことで、日本国内での到達率を圧倒的に高めています。
利用料金は月額3,000円からとコストパフォーマンスにも優れており、メールだけでなく、日本語での電話サポートにも対応しています。
メールアドレスの入力のみで無料トライアルが可能ですので、まずは気軽にお試しください。
シェア1位のメール配信システム「ブラストメール」
まとめ
DMARCは「なりすましメール」や「メール改ざん」などを防止するための送信ドメイン認証技術です。表示送信元アドレス(header-from)が既存の送信ドメイン認証技術であるSPFまたはDKIMで認証したドメインと一致するかどうか、アライメントをチェックします。これにより、SPF認証やDKIM認証だけでは検知しきれなかったなりすましメールやメール改ざんなどを防止できるのです。
GmailやYahooメール、Appleメールなどのメールプロバイダーが、相次いでDMARCへの対応を表明しています。多くのメールを扱う企業側でもDMARCに対応すれば、なりすましメール撲滅に向けて、さらに一歩近づくこととなるでしょう。
自社や取引先、顧客をなりすましメールなどから守るため、DMARCの導入を検討してみてはいかがでしょうか。