DMARC
DMARC(Domain-based Message Authentication, Reporting & Conformance)は、SPF と DKIM の上に構築され、ドメインのなりすましを防ぐ DNS ポリシーです。
DMARC(Domain-based Message Authentication, Reporting & Conformance)は、SPF と DKIM の上に構築され、ドメインのなりすましを防ぐ DNS ポリシーです。 DMARC は「アラインメント」を用いて、認証されたドメインが受信者に見える From アドレスと一致するかを確認し、メッセージが認証に失敗したときに受信メールサーバーが何をすべきか(none、quarantine、または reject)を指示し、あなたのドメインを名乗って誰がメールを送信しているかを示すレポートを送ってきます。
DMARC は、SPF と DKIM を個別のチェックから、強制力を持ち監視可能なポリシーへと変える層です。DMARC がなければ、受信側はメッセージが SPF に合格したことは検証できても、認証に失敗したメールをどう扱うべきかの指示は得られず、しかもそれが起きたことをあなたに知らせる手段もありません。
DMARC の仕組み
DMARC は SPF や DKIM を置き換えるものではありません。それらの上に位置し、決定的に重要なテストを 1 つ追加します。それが アラインメント です。SPF または DKIM がメッセージを認証し、かつ その認証されたドメインが、受信者が実際に目にする From: ヘッダーのドメインと整合する場合、そのメッセージは DMARC に合格します。
この「または」が重要です。メッセージは、2 つのうちどちらか一方が合格して整合すればよいのです。
- SPF アラインメント — メッセージが SPF に合格し、
Return-Path(エンベロープ送信者)のドメインが From ドメインと一致する。 - DKIM アラインメント — メッセージが有効な DKIM 署名を持ち、署名ドメイン(
d=)が From ドメインと一致する。
どちらも認証・整合しない場合、そのメッセージは DMARC に失敗し、受信側はあなたが公開したポリシーを適用します。このアラインメントのステップこそが、実際になりすましを阻止するものです。攻撃者は 自分自身の ドメインで SPF や DKIM に合格するインフラから送信することはできても、それを あなたの From アドレスと整合させることはできません。
DMARC を構成する要素
DMARC は、いくつかの連携する要素に分解でき、それぞれが独自のガイドで扱われています。
- DMARC とは何か — その概念、なぜ存在するのか、そして SPF と DKIM の中でどこに位置づけられるか。
- DMARC レコード —
_dmarc.yourdomain.comに公開するTXTレコードと、その中のタグ。 - DMARC ポリシー — 強制レベルを設定する
p=の値:none、quarantine、またはreject。 - DMARC の設定方法 — 監視から完全な強制までの、段階的な展開手順。
典型的な強制レコードは次のようになります。
v=DMARC1; p=reject; rua=mailto:dmarc@example.com; adkim=s; aspf=s
ここでは p=reject が失敗したメールをブロックし、rua が集約レポートの送信先アドレスを設定し、adkim=s / aspf=s が厳格なアラインメントを要求しています。
なぜ SPF が DMARC にとって重要なのか
ここが、多くの DMARC 導入が静かに破綻するポイントです。DMARC は、SPF(または DKIM)が合格し、かつ整合することの両方に依存しています。したがって SPF レコードが壊れていると、目立った警告もないまま DMARC が弱くなります。
最も一般的な失敗は、SPF の 10 ルックアップ制限です。SPF は、1 つのレコードが発生させられる DNS ルックアップの数を 10 に制限しています。メールプロバイダー、マーケティングプラットフォーム、ヘルプデスク、CRM のために include: メカニズムを連鎖させると、その上限を突破してしまうことがあります。突破すると SPF は PermError を返し、多くの受信側はこれを SPF の失敗として扱います。正当なメールが突然 SPF アラインメントに合格しなくなり、DMARC は完全に DKIM だけに依存することになり、誤りの余地がなくなります。
DMARC を堅牢に保つには、SPF を健全に保ちましょう。
- SPF チェッカー でドメインを診断し、レコードがクリーンに解決し、10 ルックアップ未満に収まっていることを確認する。
- SPF レコードの構文 を見直し、すべてのメカニズムと修飾子が正しいことを確認する。
- AutoSPF に SPF レコードを自動でフラット化・維持させ、常に有効で、ルックアップ制限内に収まり、整合が保たれた状態を保つ。これにより、いくつ送信元を追加しても DMARC アラインメントが維持されます。
有効な SPF レコードは、DMARC にとって任意ではありません。それは DMARC がアラインメントを照合する 2 つの基盤のうちの 1 つです。
より大きな全体像の中の DMARC
DMARC は、3 つの部分から成るシステムの強制とレポートの層です。SPF が送信者を認可し、DKIM がメッセージに署名し、DMARC が失敗時に何が起きるかを決定する——この各要素がどう組み合わさるかを理解するには、まず メール認証 のハブから始め、それから SPF と DMARC の比較 と DKIM と DMARC の比較 で役割を直接比べてみてください。これらの関係を理解することが、自分のメールを誤ってブロックせずに DMARC を導入する最速の道です。
DMARC をチェックする
DMARC レコードが公開されているか、正しいポリシーに設定されているか分かりませんか?無料の DMARC チェッカー でドメインを診断すれば、現在のレコード、ポリシー、アラインメント設定を数秒で確認できます。
よくある質問
DMARC とは何ですか?
DMARC は、SPF と DKIM の上に構築される DNS ベースのメール認証ポリシーです。TXT レコードとして公開され、アラインメントを用いて認証されたドメインが見える From アドレスと一致することを確認し、失敗したメールを許可・隔離・拒否のいずれにするかを受信側に伝え、あなたのドメインを名乗って誰が送信しているかを確認できるよう集約レポートを送ってきます。
DMARC は SPF や DKIM とどのように連携しますか?
DMARC は SPF と DKIM の結果をチェックし、そこにアラインメントテストを追加します。SPF または DKIM のいずれかがメッセージを認証し、かつ その認証されたドメインが受信者の見る From ドメインと整合すれば、そのメッセージは DMARC に合格します。合格・整合が必要なのは 2 つのうち一方だけで構いませんが、少なくとも一方は必要です。そうでなければあなたが公開したポリシーが適用されます。
DMARC は必須ですか?
DMARC は普遍的に義務づけられているわけではありませんが、Google や Yahoo などの主要なメールボックスプロバイダーは今や一括送信者に対して DMARC を要求しており、多くのセキュリティフレームワークもそれを前提としています。任意である場合でも、DMARC を公開することは強く推奨されます。DMARC は、あなたのドメインのなりすましを阻止し、認可されていない送信者をあなたに報告してくれる唯一の仕組みだからです。
p=reject は何を意味しますか?
p=reject は最も厳格な DMARC ポリシーです。DMARC の認証とアラインメントに失敗したメッセージを受信サーバーが拒否するよう指示するため、なりすましメールは迷惑メールに配信されるのではなく、そもそもブロックされます。p=reject に移行する前に、正当な送信者がすべて SPF または DKIM のアラインメントに合格することを確認してください。そうしないと、自分の正当なメールをブロックしてしまう恐れがあります。