ベアメール

blogベアメールブログ

メール用語解説

DMARCとは? SPF・DKIMとの関係と仕組み、導入方法まで解説

DMARC

メールは今でも非常に重要なコミュニケーションツールですが、「なりすまし」による詐欺やサイバー攻撃など、巧妙化したスパムメールによって危険性が増しているのも事実です。メールに起因するトラブルを防ぐためには、メールの送信者・受信者の双方にとって「送信ドメイン認証」という技術が有効です。送信ドメイン認証技術の中でも「SPF」と「DKIM」の実装率は非常に高くなっていますが、それらの技術を活用した「DMARC」はまだまだ普及が進んでいません。本記事では、なりすましメール対策となるDMARCの概要と仕組み、他の送信ドメイン認証技術との比較や導入方法などについて解説します。

目次contents

DMARCとは

日本国内において、DMARCは普及が進んでいない技術であるため、耳にしたことのない人も多いのではないでしょうか。まずは、DMARCの概要と仕組みについて解説します。

DMARCの概要

DMARC(Domain-based Message Authentication, Reporting, and Conformance)とは、電子メールにおける送信ドメイン認証技術のひとつです。2011年に最初の仕様が策定され、2015年にRFC7489として標準化されました。DMARCはSPFとDKIMの認証結果を活用し、認証に失敗した「なりすまし」の可能性があるメールについて、そのドメインの正当な所有者が取り扱いを指定することができる仕組みです。DMARCを用いることで、悪意のある第三者によって自社のドメインが「なりすましメール」に使われることを抑止することができます。

送信ドメイン認証の種類

現在利用されている送信ドメイン認証技術には、SPF・DKIM・DMARCの3種類があります。それぞれ目的と認証の方式が異なるため、ここでは各送信ドメイン認証について解説します。

SPF

SPF(Sender Policy Framework)とは、送信元メールサーバーが正当なものかどうかを判別する技術です。メール受信者(受信サーバー)はメールヘッダにある送信元ドメインを管理しているDNSサーバーに問い合わせを行い、送信元メールサーバーのIPアドレス等がそのDNSに定義されているか否かを検証します。最もシンプルで普及している技術ですが、メールの改ざん検知はできず、メール内容の正当性を保証することはできないという弱点があります。

SPFレコードの詳しい解説・設定方法については、こちらの記事をご覧ください。

SPFレコードの書き方とは?記述例を総まとめ | ベアメールブログ

DKIM

DKIM (DomainKeys Identified Mail)とは、秘密鍵と公開鍵を使用してメールに電子署名を付加することで、メールが作成時点(オリジナル)から改ざんされていないか検証する仕組みです。SPFではできない、メールのヘッダ情報やメール本文の改ざんを検知でき、メール内容の正当性を保証することに効果がありますが、逆に送信元の正当性を保証するには完全ではありません。

DKIMについて詳しくはこちらの記事をご覧ください。

DKIMとは? 仕組み・メリット・設定の方法まで解説 | ベアメールブログ

DMARC

SPFとDKIMは送信元やメール内容の正当性を検証することができますが、認証に失敗したメールの取り扱いについては受信者の判断に委ねられてしまいます。そこで、認証に失敗した「なりすまし」の可能性がある危険なメールを、ドメインの所有者がコントロールするためにDMARCが登場しました。SPFとDKIMを組み合わせて利用することで、受信者をなりすましメールから守り、さらにドメインの信頼性を高めることができます。

DMARCの機能は、大きくわけて以下の2つです。

① ドメインの所有者が、認証失敗時に受信者がどのようにメールを取り扱うか方法を指定できる(DMARCポリシー)

② ドメインの所有者が、メールの認証結果を受信者から受け取れる(DMARCレポート)

DMARCの機能

DMARCの機能①:DMARCポリシー

受信者はメールを受け取ると、メールの正当性を確認するために送信ドメイン認証を行います。SPF・DKIMのいずれかに対応していれば問題ありませんが、確実にDMARCとして認証できるようにするためには、両方を導入することをおすすめします。

ドメインの所有者は、送信ドメイン認証に失敗したメールを受信サーバがどのように扱うか、3つのポリシーのいずれかを事前に指定しておきます。受信者は定義されたポリシーに従ってメールを処理します。

⚫︎ none:認証失敗時も特別な処理はしない

⚫︎ quarantine:認証失敗時は不審なメールとして隔離する

⚫︎ reject:認証失敗時は受信を拒否する

DMARCの機能②:DMARCレポート

DMARCは、認証結果をフィードバックするレポーティング機能を持っており、配信結果の統計的な分析を行うことが可能です。レポートには、DMARCを含む送信ドメイン認証の結果を統計した「集約レポート」(ruaレポート)と、SPF・DKIMの認証に失敗した結果の「失敗レポート」(rufレポート)の2種類あります。

「集約レポート」は、認証結果と受信者の処理結果を一定間隔で示したレポートです。一方「失敗レポート」は、認証に失敗した場合に、事前にDMARCレコードで指定していたレポートを送る条件と一致すると、失敗要因を示し即座に送信されます。レポートはメールで送られますが、集約レポートはXML形式、失敗レポートはAFRF形式のため、技術者でなければ生のレポートを解読するのは少々難しいでしょう。

DMARC導入のメリット

前述した通り、DMARCはメール受信時にSPF・DKIMの認証に失敗した際のメールの処理方法を、ドメインの所有者が受信者に対してDNS上で公開することで表明することができます。送信者側から受信者側に対し「なりすましメールは受け取らないで!」という強いポリシーを伝えることで、なりすましメールやスパムメールから受信者を守り、自社ドメインの信頼性をより高めることが可能です。また、DMARCが設定されていること自体がレピュテーションに良い影響を与える場合もあります。

また、送信ドメイン認証だけでは、自ドメインから送信されたメールがSPF・DKIMの認証に成功したのか否かを把握することができないという欠点がありますが、DMARCレポートの内容を調べることで、自身のメールシステムが正しく運用されているかどうか、自ドメイン名を偽証したなりすましメールが送信されていないかなどの状況を把握することが可能です。大きな被害へ繋がる前にメールの配信状況を検知し、運用の改善や迷惑メール対策などに大いに役立てることができます。

DMARCの導入・設定方法

次に、DMARCの導入・設定方法について解説します。DMARCは、SPF・DKIMの認証結果を利用して総合的に送信ドメインを認証する技術であり,既にSPF・DKIMの設定をしていれば,送信側でのDMARCの導入は簡単にできます。

DMARCポリシーレコードを定義する

送信側でDMARCに対応するには、DMARCポリシーレコードを、自ドメインを管理しているDNSサーバーのTXTレコードに追加するだけです。

例えば、「baremail.co.jp」にDMARCポリシーレコードを設定すると以下のようになります。

【設定例】

_dmarc.baremail.co.jp. IN TXT “v=DMARC1; p=none; rua=mailto:report@baremail.co.jp; ruf=mailto:ng_report@baremail.co.jp “

DMARCポリシーレコードは1行のテキストで表され、レコードの中にタグ形式(v/p/ruaなど)で各項目を定義します。各項目の間はセミコロン(;)で区切ります。

⚫︎ v:DMARCのバージョン(現在はDMARC1とする)

⚫︎ p:認証に失敗した場合に受信側で実行してほしいアクション(none/quarantine/reject)

⚫︎ rua:集約レポートを受信するメールアドレス(複数指定可能)

⚫︎ ruf:失敗レポートを受信するメールアドレス(複数指定可能)

上記の他に、複数のタグを設定することが可能ですが「vタグ」と「pタグ」は必ず設定が必要です。

設定が完了したら、実際にメールを送ってみましょう。すべての受信サーバーがDMARCに対応できている訳ではありませんが、GmailやOutlook.comをはじめとした、大手プロバイダはDMARCに対応しています。メールを受信したらメールソースを確認して「Authentication-Results」ヘッダの値を確認することで動作確認を行うことができます。

DMARCレポートを受信する

前述した通り、SPF・DKIMの認証に失敗した際に失敗レポートが送られますが、送信条件を「fo」タグで指定することが可能です。

0:すべての認証がpass(成功)しなかった場合にレポートを送る

1:SPF・DKIMのいずれかの認証がpass(成功)しなかった場合にレポートを送る

d:DKIMの認証がpass(成功)しなかった場合にレポートを送る

s:SPFの認証がpass(成功)しなかった場合にレポートを送る

これらの送信条件は省略することも可能ですが、その場合は「0」が適応されます。

DMARCの普及状況

DMARCは現在あまり普及が進んでいない技術です。DMARCの普及状況と、普及が進まない理由について解説します。

DMARCの普及状況

DMARCは2011年に仕様が策定され、海外を中心に普及が進んできました。一方、国内での普及はまだまだ進んでいません。

ドメインに対する送信ドメイン認証の設定状況から普及率を見ると、総務省の業務委託先である日本データ通信協会が日本レジストリサービスと共同で行った調査(※1)では、2021年3月時点でメール送信に利用されていると考えられるJPドメイン数約129万件のうち、SPFの設定数はおよそ85万件で約66.1%、DMARCの設定数はおよそ2万件で約1.7%となっています。2019年時点ではDMARCはおよそ1万件で約0.8%だったため、ここ数年で倍増しているものの依然として非常に低い水準となっています。

DKIMはドメイン名からだけではDKIMレコードの設定状況を正確に把握することができないため、DKIMの普及状況に関する調査結果は上記調査においては公開されていません。

※1:迷惑メール対策推進協議会「迷惑メール白書 2021」>参考編第6節 送信ドメイン認証技術の導入状況

https://www.dekyo.or.jp/soudan/data/anti_spam/whitepaper/2021/wp2021.pdf (2022/4/20確認)

DMARCの普及が遅れている理由

優れた送信ドメイン認証技術であるDMARCの普及が進まない理由は何でしょうか。DMARCの普及が進まないとされている理由は以下の通りです。

⚫︎ DMARCを使うには受信側もDMARCに対応している必要がある。

⚫︎ 通信の秘密を侵害すると考えられている。

⚫︎ ドメインごとにレポートを送受信するため負荷が掛かる

⚫︎ 認知度不足

受信側でDMARCに対応するには、DMARC対応のメールサーバーを導入するか、もしくは、すでに利用中のメールサーバーに手を加えて、SPF・DKIMだけではなくDMARCの認証技術を組み込む必要があります。特別難しい対応ではありませんが、こうした手間がDMARC導入のハードルになっていると考えられます。

また、DMARCの仕様上、ISPなどの第三者がメールの検証結果を知り得てしまうため、通信の秘密を侵害すると考えられてきました。しかし、総務省はDMARC導入に関する法的な留意点を発表しており、当事者が同意している場合や、特定の条件を満たす場合には違法性が阻却され、正当な業務行為であるとしています。(※2)

そして、最もDMARCの普及を妨げているのは、「認知度不足」であると考えられており、DMARCの認知度向上は今後の大きな課題となっています。

※2:DMARC導入に関する法的な留意点https://www.soumu.go.jp/main_content/000495390.pdf(2022/04/15確認)

まとめ

自ドメインが悪意のある第三者によってなりすましに利用されることを防ぎ、ドメインの信頼性を高めるためにDMARCの導入は非常に有効です。DMARCのポリシーを設定することによって、ビジネスシーンにおいて日々メールを送る取引先企業や顧客など、受信者を危険なメールから守ることに繋がります。国内ではまだまだ認知度が低く普及が遅れている技術ではありますが、米国ではGoogleやYahoo!などの大手企業が導入しており、今後国内でもDMARCの導入は当たり前になってくると考えられます。この機会に、DMARCの導入を検討してみてはいかがでしょうか。

この記事を読んだ人へオススメrecommended