最近よく聞く【DMARC】なぁになぁに? #4
いつも弊社サービスをご利用いただき誠にありがとうございます。
ケイティケイソリューションズ 水谷です。
これまで【なりすまし】【SPF】【DKIM】についてお伝えしましたがいかがだったしょうか?
今回はそれらの総まとめのDMARCについてご紹介させていただきます。
一部振り返りを交えながらお伝えしますのでぜひご覧ください。
~今回ご案内する内容~
……………………………………………………………………………
【Topic4】DMRAC どうする?認証失敗メール
……………………………………………………………………………
【Topic4-1-1】SPFの仕組み
【Topic4-1-2】DKIMの仕組み
【Topic4-1-3】SPF / DKIM その範囲 連動していない?
……………………………………………………………………………
【Topic4-2】どうする?認証失敗メール
……………………………………………………………………………
【Topic4-3】DMARCの仕組み
……………………………………………………………………………
【Topic4-4】DMARC その先は?
……………………………………………………………………………
【Topic4】DMRAC どうする?認証失敗メール
【Topic4-1】SPFとDKIM
これまでDMARC に必要なSPF とDKIM についてご説明いたしましたがいったん、ここで簡単ですが振り返ってみたいと思います。
【Topic4-1-1】SPFの仕組み
送信するドメインを管理するDNSサーバーに
このドメインが送信するサーバーのIPアドレスの範囲が記載されているSPFと呼ばれるレコードを
登録しておく事でそのIPの範囲内で送信されたメールが正しいドメインのメールである事を証明する仕組みです。
詳しい説明
- DNSにドメインが送信するサーバーのIPアドレスの範囲をSPFレコードに記載します。(例:192.0.2.0/24の範囲で送信)
- 送信者が例えば192.0.2.10のIPのサーバーから送信する。
- 受信サーバーは、DNSに登録されている範囲を確認します。
- SPFに記載されている範囲内であれば正規なメールであると判断します。
※上記の場合、192.0.2.0/24(192.0.2.1~192.0.2.254)の範囲内ですのでOK(pass)です。
【Topic4-1-2】DKIMの仕組み
DKIMは、メールに電子署名と呼ばれる印鑑をつけてメールの正当性と内容が変更されていない事を証明する方式です。
では、どのように処理するのでしょうか。
仕組みとしては以下の通りで
- 電子署名に利用する秘密鍵と対になる公開鍵を送信元ドメインのDNSサーバーにDKIM(レコード)を公開
- 送信サーバーには、秘密鍵を設定し送信時に付与できるように設定
- 送信時、秘密鍵を使って電子署名を行う (この際に、署名の付与とメール内容を暗号化(ハッシュ化)したものを付与します)
- 受信サーバーは、メールの送信者が正しいか、送信元ドメインのDNSサーバーに問い合わせを行う
- DNSから公開鍵を入手し電子署名を検証
- 正しいメールであればOK(pass)となり処理を行う
という仕組みを採用しています。
また、
- SPFでは、エンベロープFROMを利用して送信元ドメインを検証
- DKIMでは、ヘッダーFROMを利用して送信元ドメインを検証
しています。
【Topic4-1-3】SPF / DKIM その範囲 連動していない?
- SPFでは、「封筒」部分にあたるエンベローブを利用して送信元ドメインを検証
- DKIMでは、「便箋」部分にあたるヘッダーを利用して送信元ドメインを検証
をしていました。よって、このように見ているところが実は違っているのです。
そして、これら2つはこの状態では連携していません。そのため、SPFがNGでもDKIMの結果には影響せずDKIMがOKな時はそのままDKIMとしてはOKを返します。※その逆も同じです。
また、SPFとDKIMが別のドメインで認証が行われ両方とも正しい検証結果であればOKを返します。
これでは、せっかくの認証を行っているのもかかわらず訳に立たない状態が発生していました。
そして、SPFやDKIMは認証失敗をした場合どうしておけばいいのかを送信者が宣言をしていないため、受信者の判断で処理をしなければなりませんでした。また、失敗した物や不正に送信された物がどうなっているのかを送信者が把握する事も困難でした。
そのため、これらの認証方法を補強するためにDMARC(Domain-based Message Authentication, Reporting & Conforman)がIEFTによって2015年に定義されました。
DMARCは後述するように、
- SPFとDKIMの認証を連動させ、両方(もしくはそれぞれ)が失敗した場合どうすればいいのか
- 失敗したメールの配送状況の把握先の設定(失敗した場合の情報を受信者が送信者に送る)
を行う事で
送信者としては、
- なりすましの防止
- なりすましの把握
などが容易になり
受信者としては、
- エンベロープ・ヘッダー両方を見ることでなりすまし対策の強化
- どうすればいいのかがはっきりするので処理の簡略化
などが容易になりました。
【Topic4-2】どうする?認証失敗メール
では、DMARCを再度詳細にご説明いたしますと、ドメイン認証技術であるSPFならびにDKIMそれぞれの働きを補強するための技術です。
SPFとDKIM は、OKやNGになったメールをどうすればいいのかなどの設定がなく受け取った側はどうすればいいのかわからない仕様です。
また、それ以外にも
- SPFの場合、転送メールはどうすればいいのか
- DKIMの場合、署名がない場合どうすればいいのか
などがあります。
そこでDMARCでは、メールソフトで閲覧できユーザーが認識できるヘッダーFROMを利用して
- SPFがエンベローブFROM を利用して認証された OKとなったドメイン
- DKIMがヘッダーFROM を利用して認証された OKとなったドメイン
がどちらか(両方)一致した場合、OK(pass)を出す仕組みとし見た目に於いても安全性を隔離した仕様となっています。
また、受け取ったサーバー側に対し該当のメールがNG(fail)の場合の対応について依頼を行う事ができます。
none : 通過 (なにもしなくてもいい。テスト導入時やまだ範囲が定まっていない場合に利用します)
quarantine : 隔離 (スパムメールサービスなどがある場合、隔離・スパム判定処理に回します)
reject : 拒否 (メールの受付を拒否してください)
※受け取ったサーバー側である程度処理の変更は問題ありません。あくまで依頼です。
そして、受信したサーバーは、このNGの情報を規定のフォーマットにして記載されているアドレス宛に対して
どこから届いたかなどの情報を任意で送信します。
なお、これらの情報は、全てDNSの特定のレコードに記載して対応します。
【Topic4-3】DMARCの仕組み
DMARCの仕組み
- SPFが送信者から送信されます。
- SPFとDKIMの認証がそれぞれ行われされにDMARCとしての認証が行われます。そこでOKかNGの判定を行います。
- OK(pass)の場合は、メールに記載されている配送先に配送が行われます。
- NG(fail)の場合、DMARCのルールにのっとり
-
- none : 通過
特になにもせず配送を行う - quarantine : 隔離
スパムメールサービスなどがある場合、隔離・スパム判定処理に回します - reject : 拒否
受取の拒否を行う
- none : 通過
の処理が受信サーバー側で行われそれぞれ配送されます。
また、運用レポートを登録されているアドレス宛にレポートを送信します(※その都度ではなく一定の間隔で送付)
そして、これらの情報は、該当ドメインのDNSに専用の記述方法で記載し登録します。
これにより送信者・受信者それぞれがなりすましメールを防止できるのです。
なお、このDMARCのメリット・デメリットとしては、
メリット
- 送信者
- SPF/DKIMの認証結果が可視化出来、情報判断が付く
- 自分のなりすましメールを防ぐことが出来る
- 受信者
- なりすましメールを見つけやすい
- なりすましや判断にこまるメールの対応が容易
デメリット
- 管理負荷が大きい
- 配信しているすべてのメール経路に設定や対応が必要
- レポート解析を行い対応が必要
- DNSや送信サーバーの定期的な運用必要
- まだ受信側でDMARC対応がされていない場合も多く効果が出ない場合もある
- DMARC判定結果が一般的なメールソフトではわからない
【Topic4-4】DMARC その先は?
この不正に送信されたメールを見けれるDMARCですが実は大きな弱点を1つあるのですがそれは、サーバー側で判定した結果が一般的なメールソフト(outlookなど)では、簡単には分からない事です。
また、そっくりなドメイン(例えば 弊社のktk-sol.co.jpであれば ktk-sol.comなど)で送られDMARCまで設定されていれば認証的にはOK(pass)となってしまいます。
そこで最近、日本ではGmailやYahoo! メールなどのWEBや専用アプリを経由で閲覧するタイプのメールサービスを中心に送信メールアドレスの横のアイコンに送信者が設定した画像などを表示するBIMIと呼ばれる仕組みを導入開始しました。
商標登録されている画像しか登録できずまた、暗号化もされているので偽造もできません。
よって本物のアドレスからの送信であれば簡単に認識でき且つそっくりなドメインにも対応できます。
商標登録の確認やDMARCの設定がRejectである事が必須なため、若干ハードルがありますが今後BtoCの企業様を中心に普及が見込まれています。
※まだまだBIMIについては詳しい説明がありますが今回は省略させて頂きます。
最後に…
今回は、DMARCについていかがだったしょうか?
DMARCは、SPF/DKIM/BIMIなどについても必要なため、普段よりかなり長めの記事になってしまいました。
それぞれでも1つの書籍が書けるくらいの分量がある内容のため、実はかなり抜粋しております。
また、簡易的に説明する際に実際の動作とは厳密には異なる点や用語・図を省略・言い換えをしている点がありますのでご了承ください。
さらに詳細をご確認いただく場合は、関連するRFCや各団体をご覧ください。
- SPF
技術仕様:
Sender Policy Framework (SPF) for Authorizing Use of Domains in E-Mail, Version 1
http://www.ietf.org/rfc/rfc4408.txt
- DKIM
技術仕様:
RFC 6376 - DomainKeys Identified Mail (DKIM) Signatures
https://tools.ietf.org/html/rfc6376
RFC 6377 - DKIM And Mailing Lists
https://tools.ietf.org/html/rfc6377#ref-DKIM
関連団体:
DomainKeys Identified Mail (DKIM)
http://www.dkim.org/
- DMARC
技術仕様:
RFC7489: Domain-based Message Authentication, Reporting, and Conformance (DMARC)
https://tools.ietf.org/html/rfc7489
関連団体:
dmarc.org - Domain Message Authentication Reporting & Conformance
https://dmarc.org/
- BIMI
技術仕様:
Brand Indicators for Message Identification (BIMI)
https://datatracker.ietf.org/doc/html/draft-brand-indicators-for-message-identification
関連団体:
https://bimigroup.org/
- S/MIME
SPIS-BOX
https://www.ktk-sol.co.jp/service/license/spis_box