Topへ

開発ブログ(Blog)

DMARCについて

1)DMARCとは何か?

DMARCは、送信ドメインを認証する技術の1つであり、SPFとDKIMという既存の技術を組み合わせたものです。DMARCは、送信元のドメインの認証を強化し、送信ドメインのなりすましを防止することを目的としています。

2) DMARCの仕組みと原理

DMARCは、送信者のドメインを検証するための技術です。メールが送信されると、受信者は、そのメールが本当に送信元のドメインから来たものなのかを検証します。DMARCでは、メール送信者のDNSに、認証情報を設定することで、受信者がメールの送信元を確認できるようになります。

DMARCは、SPFとDKIM(必須ではない)の技術を使って、メールが送信元のドメインから送信されたものであることを確認します。SPFは、送信元ドメインのDNSレコードに記載された情報と、実際の送信元が一致しているかどうかを確認し、DKIMは、メールが改ざんされていないことを確認しますDMARCでは、SPFとDKIMの検証が成功した場合に、DMARCレコードに記載されたポリシーに従って、メールの配信を決定します。

3) DMARCのメリットとデメリット

DMARCの主なメリットは、送信ドメインの偽装を防止し、メールの信頼性を高めることができることです。ただし、DMARCを実装するには、SPFおよびDKIM(必須ではない)のセットアップが必要であり、管理が複雑になる可能性があることに注意する必要があります。

4) DMARCレコードの構文と設定方法

<設定例>

  • v=DMARC1;p=quarantine;ruf=mailto:admin@hogehoge.co.jp;rua=mailto:admin@hogehoge.co.jp;rf=afrf;pct=100;aspf=r
 
パラメータ 説明
v=DMARC1(必須) Version:受信サーバは、メッセージのヘッダFromのDNSレコードからこのタグを探します。“v=DMARC1”から始まるTXTレコードがないと、受信サーバはDMARCを確認しません。
p:ポリシー(必須) DMARCの認証に失敗したメッセージを受信サーバがどう扱うべきかを指示しています。”none”が指定されている場合には、DMARCの認証に失敗したメッセージに対して受信サーバは何もしません。設定できるポリシーには次の3種類があります。
none – 認証に失敗したメールに対して、何もしないよう受信サーバに指示しますが、違反があった場合はDMARCレコードのmailto:にレポートを送信します。※noneを指定した場合、メールサーバーの設定との組み合わせにより、なりすまし攻撃の対象にされる可能性があります。極力その他の設定値を採用してください。
quarantine – 認証に失敗したメールを隔離するよう受信サーバに指示します。それにより、大抵は直接迷惑メールフォルダに振り分けられますが、受信トレイに戻すことも可能です。 メールの送信元をある程度把握できているが、100%確証が得られるまでフェイルソフトしたい場合に便利です。
reject – 認証に失敗したメールは無条件に拒否するよう受信サーバに指示します。100%認証に成功したメールのみが受信トレイに到達し、それ以外はその場で削除されます。

aspf: SPF 認証識別子のアライメントモード (省略可)

SPFのアライメントを指定できます。
”s”(strict)の場合、送信元ドメインのSPFレコードに、送信元IPアドレスが明示的に指定されている必要があります。つまり、SPFによる認証を受けた送信元ドメイン以外からのメールは、DMARCによって拒否されます。
”r”(relaxed)の場合、送信元ドメインのSPFレコードに、送信元IPアドレスが明示的に指定されていなくても、SPFによって認証された場合は、DMARCによって許可されます。(デフォルト値:r)
adkim:メールのfromと送信ドメインの一致を検証(省略可)

 

DKIMアライメントを指定できます。
DKIMアライメントでは、DKIMの認証で利用したドメイン(”d=”で定義されているドメイン)とヘッダFromのドメインの関係性を”s”(strict)または”r”(relaxed)で定義し、その関係性が正しいかどうかを検証します。”s”を指定した場合は、2つのドメインが完全に一致している場合のみDMARCの認証が通過します。”r”を指定した場合は、2つのドメインがサブドメインの関係であれば認証が通過します。(デフォルト値:r)

rua:

「集計レポート」の送信先(省略可)

このレポートでは、DMARCの認証に失敗したおおまかな情報はわかりますが、それぞれの失敗についての詳細情報までは提供されません。
レポートの送信先は自由に指定できます。

ruf:「認証失敗レポート」の送信先(省略可)

認証失敗レポートではそれぞれの失敗に関する詳細な情報が提供されます。
指定できるメールアドレスはDMARCレコードに登録されているドメインのアドレスのみです。

rf:認証失敗レポートの種類を指定しています(省略可)

失敗レポートの形式 (現状 afrf のみ)

pct:

DMARCポリシーを適用するメールの割合を指定しています

(省略可)

DMARCポリシーを適用するメールの割合を指定しています。 ここには1から100までの任意の値を指定できます。”pct=100”で”p=reject”を指定した場合、DMARCの認証に失敗した全てのメールは受信を拒否されます。(デフォルト値:100)

 

sp:ポリシーをサブドメインに適用するかどうかを指定できます(省略可)

サブドメインに対するポリシー を指定します(none, quarantine, reject)
サブドメインは、サブドメインのポリシーレコードによって明示的に上書きされない限り、親ドメインのポリシーを継承します。

ri: 集約レポートの送信間隔(省略可)

DMARCの集計レポートを、どれくらいの頻度で受け取るかを指定できます。(デフォルトは86400秒=24時間)

fo:失敗レポートのオプション(省略可)

0:全ての認証が pass で無かった場合に失敗レポートを生成する
1:いずれかの認証が pass で無かった場合に失敗レポートを生成する
d:DKIM の署名検証が失敗した場合に失敗レポートを生成する
s:SPF の検証が失敗した場合に失敗レポートを生成する
(デフォルト値:0)


 

5) DMARCによるメール認証の仕組みとメールの配信ルール

DMARCは、SPFおよびDKIMに基づいてメールを認証します。DMARCは、受信ドメインがSPFおよびDKIMに基づいて認証を行い、ポリシーに従ってメールを配信するように指示することができます。

6) DMARCの設定例と解析方法

DMARCの設定例には、レコードの構文、ポリシー、ルーレット、およびレポート送信先が含まれます。DMARCレコードを解析するには、DMARC解析ツールを使用できます。DMARC解析ツールは、DMARCレポートを生成し、受信ドメインのDMARCの状態に関する情報を提供します。

※受信したレポートを下記のサイトにアップロードすると表形式に整形してくれます
https://mxtoolbox.com/DmarcReportAnalyzer.aspx
メールセキュリティ
 

7) DMARCエラーの原因と対処法

DMARCの設定に誤りがある場合、メール送信者からのDMARC報告でエラーが通知されることがあります。代表的なエラーとその対処法を以下に示します。

  1. DMARC Quarantine/Rejectを設定しているにもかかわらず、依然としてスパムメールが受信される場合 →SPFやDKIMの設定に誤りがある可能性があります。設定を見直し、再度テストを行いましょう。
  2. メール送信元ドメインのDMARCレコードが見つからない場合 →DMARCレコードが設定されていない可能性があります。DMARCレコードを設定するか、またはレコードの設定に誤りがないか確認してください。
  3. メール送信元ドメインのDMARCレコードが間違っている場合 →DMARCレコードを再度確認し、問題を修正してください。
  4. 外部メール配信サービスを利用している場合、送信元ドメインのDMARC設定が反映されない場合がある →外部メール配信サービスの仕様によっては、送信元ドメインのDMARC設定が反映されない場合があります。この場合は、外部メール配信サービス側に問い合わせて、対応方法を確認する必要があります。

8) DMARCの最新動向と今後の展望

DMARCは2012年に登場し、現在では多くの企業やサービスで採用されています。DMARCの普及により、偽装メールの被害を防止することができ、信頼性の高いメール認証システムとして定着しています。また、DMARCによるメール認証は、海外からのフィッシングメールやスパムメールに対しても有効であるため、国際的にも注目を集めています。今後は、DMARCによるメール認証を更に強化し、より多くの企業や組織で採用されることが期待されています。

関連記事一覧
SPFについて