Topへ

DMARCに関するブログ記事(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について

1)SPFとは何か?

SPF(Sender Policy Framework)は、送信元ドメインが許可されたメールサーバーでのみメールを送信できるようにする認証システムです。これにより、なりすましメールを防ぎ、メールの信頼性を高めることができます。
 

2)SPFの仕組みと原理

SPFは、送信元ドメインのDNSにSPFレコードを追加することで機能します。SPFレコードには、許可されたメールサーバーのリストが含まれています。メール受信サーバーは、メールの送信元ドメインからSPFレコードを取得し、送信元が許可されたサーバーからのメールであるかどうかを確認します。これにより、なりすましメールをブロックし、メールの信頼性を高めることができます。



SPF

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

【SPFのメリットは次のとおりです】

  1. なりすましメールを防ぐことができます。
  2. メールの信頼性を高めることができます。
  3. 迷惑メールフィルタの精度を向上させることができます。
  4. メールの配信を最適化することができます。

【SPFのデメリットは次のとおりです】
  1. SPFレコードを正しく設定しないと、正当なメールがブロックされる可能性があります。
  2. SPFは、DMARCやDKIMなどの他の認証システムと組み合わせて使用​​されることが多く、これらのシステムとの設定の調整が必要になる場合があります。

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

SPFレコードは、テキスト形式でDNSに保存されます。SPFレコードは、以下のような構文を持っています。

v=spf1 [メカニズム] [メカニズム] ...

最初の部分のv=spf1は、SPFレコードのバージョンを示します。
次に、[メカニズム]が続き、送信元ドメインの許可されたメールサーバーをリストアップします。
これらのメカニズムには以下の限定子が含まれます

  1. "+" (プラス記号):この限定子は、指定されたメカニズムがメール送信元と一致する場合に、認証が成功します。

  2. "-" (マイナス記号):この限定子は、指定されたメカニズムがメール送信元と一致しない場合に、認証が失敗します。

  3. "~" (チルダ記号):この限定子は、指定されたメカニズムがメール送信元と一致しなくても、認証が失敗となりません。代わりに、メール送信元の検証結果がログに記録されます。

  4. "?" (クエスションマーク):この限定子は、 指定されたメカニズムがメール送信元と一致しない場合でも 、 認証チェックが行われません。

設定例

v=spf1 +ip4:192.168.1.1 +mx -all

【機構】

機構には、認証対象の送信元ホストのIPアドレスと照合する条件を記述します。機構には次のものがあります。

機構 引数 機能
all なし 「-all」は認証が通らなかったIPアドレスは、全て認証失敗します。
「~all」は認証が通らなかったIPアドレスでもDMARCレコードのポリシーでp=rejectを指定したとき以外は認証が成功します。
include ドメイン名 現在のドメインのSPFレコードに他のドメインのSPF設定を含めるために使用されます。これにより、メール送信元となる可能性のある追加のドメインやメールサーバーを許可することができます。
参照するドメインのSPFレコードが正しく構成されていることを前提としています。
ですので、includeに指定された先のドメインのSPFレコードによってFailの判定が与えられても、それが認証結果としては採用されません
a ドメイン名 送信元ホストのIPアドレスが、ドメイン名に与えられたFQDNのAレコードのいずれかであれば認証が成功します
mx ドメイン名 送信元ホストのIPアドレスが、ドメイン名に対応するMXレコードにマッチすれば認証が成功します。 MXは複数与えられる場合がありますが、10個までのMXホストに対して検査を行います
ptr ドメイン名 送信元ホストのIPアドレスをリバースルックアップし、得られたホスト名でさらに正引きを実施し、IPアドレスを得ます。
そのIPアドレスと送信元ホストのIPアドレスが含まれる場合、そのホスト名が引数に与えられたドメイン名と一致するかそのサブドメインである場合、認証成功となります。リバースルックアップに失敗した場合はFailとみなします。負荷の多い処理となるため、あまり利用は推奨されません
ip4 IPアドレス 送信元ホストのIPアドレスが、引数に指定されるIPネットワークに含まれているかIPアドレスにマッチする場合、認証成功となります
ip6 IPv6アドレス 送信元ホストのIPv6アドレスが、引数に指定されるIPv6ネットワークに含まれているかIPv6アドレスにマッチする場合、認証成功となります
exists ドメイン名 引数であるドメイン名に指定された表記でAレコードルックアップを実施し、該当のAレコードが存在すればマッチします。SPFのマクロ機能とあわせての利用を想定しています

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

SPFは、ドメイン認証技術の1つであり、ドメイン所有者が許可したサーバーからのメール送信を検証し、不正な送信をブロックすることで、スパムやフィッシングなどの不正行為を防止することを目的としています。
SPFの仕組みは、ドメインのDNSレコードにSPFレコードを追加し、SPFレコードには、メールを送信することを許可するサーバーのIPアドレスが指定されます。
受信サーバーは、メールヘッダーに記載された送信元のドメインとSPFレコードの内容を比較し、メール送信元のIPアドレスがSPFレコードに指定されたサーバーから送信されたものであるかを検証します。
SPFによる検証が成功した場合、メールは受信されますが、検証に失敗した場合、メールは拒否される場合があります。

6)SPFの解析方法と認証マトリックス

SPFレコードの解析方法は次のとおりです。

メールサーバーは、送信元のメールアドレスのドメイン名に対応するSPFレコードをDNSから取得し、送信元のIPアドレスがSPFレコードに許可されたIPアドレスかどうかを確認します。
具体的には、メールサーバーは次の手順でSPFレコードを解析します。

  1. 送信元のメールアドレスのドメイン名を取得します 。
  2. 送信元のIPアドレスを取得します 。
  3. DNSから、ドメイン名に対応するSPFレコードを取得します 。
  4. 取得したSPFレコードの設定に基づき、送信元のIPアドレスが許可されているかどうかを判定します 。
  5. SPFレコードに許可されていない場合、メールを拒否するか、スパムフォルダに移動するなどの処理を行います。

SPFレコードを正しく設定することで、不正なメール送信を防止し、メールの信頼性を高めることができます。
 

【SPFとDMARCレコードの認証マトリックス図】
メールセキュリティ

※迷惑メールフォルダーへの振り分けはインストールされているセキュリティソフトによって異なる場合があります。上記マトリックスはdmarcのspfのアライメントでreraxedを指定した場合を表しています。strictの場合、SoftFail判定のメールはすべて受信拒否になります。
 

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

SPF認証に失敗する理由はさまざまです。たとえば、SPFレコードが誤って設定されている、DNSサーバーに問題がある、送信元のIPアドレスがSPFレコードに許可されていないなどです。
SPFエラーが発生した場合は、次の対処方法を試してください。
 

  1. SPFレコードを確認する

  2. 認証のための追加設定を行う

  3. 結果を確認する

SPFレコードを確認するには、DNS設定を確認し、SPFレコードが正しく構成されていることを確認してください。誤った設定により、認証に失敗することがあります。
SPF認証を行うには、メールサーバーのIPアドレスを指定する必要があります。場合によっては、サブドメインのSPFレコードを追加する必要がある場合があります。
SPFエラーが発生した場合は、エラーの内容を確認し、問題を修正してください。SPFエラーの原因が特定できない場合は、メール送信者に問い合わせることができます。


【ステータス一覧】
ステータス 内容
None • SPFレコードが存在しない場合
Neutral • SPFレコードが“?”として公開されている条件にマッチした
Pass • 認証処理に成功した
soft fail • DNSエラーが発生した場合
• SPFレコードに~allが含まれていて、SPFレコードに記載された送信元IPアドレス以外からメール送信を行った場合
• 送信元ドメインのMXレコードに登録されていないメールサーバーからメールが送信された場合
fail • 送信元のIPアドレスが、ドメインのSPFレコードの許可IPアドレス範囲外にある場合
• 送信元のIPアドレスが、ドメインのSPFレコードに許可IPアドレス範囲内にある場合でも、-allフラグが指定されており、送信元のIPアドレスが明示的に拒否されている場合
• ドメインのSPFレコードが正しく構成されていない場合
TempError • DNSサーバーの問題、またはDNSサービスが一時的に利用不可となっている場合
• リクエストがDNSクエリリミッタによって制限された場合
• DNS応答が大きすぎてサーバーがタイムアウトになる場合
• DNS応答が重くて処理が遅延する場合
• DNSキャッシュの問題により、DNSクエリが正常に処理されない場合
• ネットワークの問題により、DNSクエリが正常に処理されない場合
PermError • SPFレコードの構文が無効である場合
• SPFレコードのDNS参照がタイムアウトした場合
• SPFレコードのinclude機能が深すぎる場合
• SPFレコードのinclude機能で循環参照が発生した場合
• SPFレコードで使用されているメカニズムの値が不正である場合
• SPFレコードで使用されている修飾子の値が不正である場合
• SPFレコードが複数存在する場合
• SPF レコードの長さが 255 文字を超えている場合

※これらは一般的な原因のいくつかですが、エラーが発生する具体的な原因は、状況によって異なる場合があります。エラーメッセージや具体的な状況を詳しく確認することで、問題の特定と解決に役立つ情報を得ることができます。

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

SPFは、現在も広く採用されているメール認証技術の一つです。しかし、最近では、より高度なメール認証技術であるDMARCの採用が進んでいます。
DMARCは、SPFとDKIMを組み合わせて使用することで、偽造メールの防止を強化することができます。
また、DMARCは、認証エラーの報告機能を提供するため、ドメインの安全性を監視することができます。

SPFは、依然として重要な役割を果たしていますが、DMARCや、より高度な認証技術の導入が進むことで、将来的にはSPFの役割が縮小する可能性があります。
しかし、SPFは、DNSを利用することで簡単に導入することができるため、今後も一定の需要があると考えられます。