DMARCとは?
DMARC(Domain-based Message Authentication, Reporting & Conformance)は、RFC 7489で定義されています。SPFとDKIMを基盤に、2つの主要な機能を追加します。1つは、未認証メールの処理方法(監視、隔離、または拒否)を受信側に伝えるポリシー。もう1つは、誰があなたのドメインからメールを送信し、認証をパスしているかに関するXMLレポートを受け取るレポート機能です。
重要なのは、DMARCが**アライメント(整合性)**の概念を追加することです。メールの表示上の「From」ヘッダーのドメインは、SPFまたはDKIMによって認証されたドメインと一致しなければなりません。これにより、攻撃者が別のドメインでSPF/DKIMをパスさせつつ、Fromヘッダーであなたのドメインを偽装することを防ぎます。
なぜDMARCが必要なのか?
1ヘッダーFromの保護
SPFとDKIMだけでは表示上のFromアドレスを保護できません。DMARCはアライメントによってその隙間を埋めます。
2強制ポリシー
認証に失敗したメールを監視するか、スパムに送るか、あるいは完全に拒否するかを決定できます。
3集計レポート
日次のXMLレポート(RUA)により、自社ドメインで送信しているすべてのIPと、そのパス/フェイル率を確認できます。
4失敗レポート(フォレンジック)
失敗レポート(RUF)は、調査のために認証に失敗した個々のメッセージのコピー(一部伏せ字)を送信します。
5Google/Yahooの要件
2024年2月以降、大量送信者がGmailやYahooの受信トレイに届けるには、最低でも p=none のDMARC設定が必須となりました。
6ブランド保護
ブランドを騙るフィッシングメールが顧客に届くのを防ぎます。
DMARCの仕組み — ステップ・バイ・ステップ
ポリシーとレポート用アドレスを指定したDMARC TXTレコードを `_dmarc.yourdomain.com` に公開します。
メッセージが受信サーバーに到着します。サーバーはSPFとDKIMのチェックを個別に実行します。
DMARCアライメントを検証します。認証されたドメイン(SPFまたはDKIM)がヘッダーFromのドメインと一致するか確認します。
SPF+アライメント、またはDKIM+アライメントのいずれかがパスすれば、そのメッセージのDMARCはパスとなります。
両方が失敗した場合、受信側は指定されたポリシー(none: 配信、quarantine: スパム、reject: 拒否)を適用します。
受信側はドメインの認証データを収集し、指定されたアドレスに集計(RUA)または失敗(RUF)レポートを送信します。
DMARCレコードの構文
v=DMARC1; p=quarantine; pct=100; sp=reject;
rua=mailto:dmarc-reports@yourdomain.com;
ruf=mailto:dmarc-failures@yourdomain.com;
adkim=s; aspf=s; fo=1タグ・リファレンス
v=DMARC1— バージョン、必須p=— ドメインのポリシーsp=— サブドメインのポリシーpct=— ポリシーを適用する失敗メールの割合(%)rua=— 集計レポートの送信先(mailto:)ruf=— 失敗レポートの送信先(mailto:)adkim=— DKIMアライメント:r=relaxed(緩和)、s=strict(厳格)aspf=— SPFアライメント:r=relaxed(緩和)、s=strict(厳格)fo=— 失敗レポートのオプション(0,1,d,s)ri=— レポートの間隔(秒)(デフォルト 86400)3つのDMARCポリシー
DMARCアライメントの解説
一般的なDMARCの失敗と解決策
SPFアライメントの失敗
エンベロープFrom(リターンパス)ドメインがヘッダーFromと一致していません。独自の元パスを使用するESP(メール配信サービス)でよく見られます。
DKIMアライメントの失敗
DKIM署名の d= ドメインが表示上のFromドメインと一致していません。自社ドメインで署名するようにESPを構成してください。
RUAアドレスの欠落
rua= がないとレポートが得られず、状況を可視化できません。必ず少なくとも1つのレポート用アドレスを含めてください。
サブドメインがカバーされていない
sp=reject を追加してポリシーをサブドメインに拡張するか、サブドメインごとに個別のDMARCレコードを公開してください。
よくある質問 (FAQ)
DMARCはSPFおよびDKIMと連携して動作する重要なメール認証プロトコルです。認証に失敗したメールの処理方法を受信サーバーに指示することで、第三者によるドメインのなりすましを防ぎ、ブランドの評判を保護します。
DMARCチェッカーは、レコードが正しくフォーマットされ、DNS設定に公開されているかを確認します。適切なポリシー(理想的にはp=rejectへ移行)を運用することで、GoogleやOutlookなどのISPに対してメールが正当であることを示し、スパム判定やブロックのリスクを大幅に軽減します。
「quarantine」は失敗したメールをスパムフォルダに配送するよう指示し、「reject」はメールを完全に拒否して受信者に届かないようにします。どちらもドメインのセキュリティを強化するための重要なステップです。
「From」ヘッダーのドメインが、SPFまたはDKIMで検証されたドメインと一致することを指します。アライメントが正しくないと、認証自体がパスしていてもDMARC失敗となる場合があります。これにより、表示される送信者アドレスの正当性を保証します。
レコードの「rua」タグに有効なmailto: URIが含まれているか確認してください。また、DNSの浸透状況や、送信先メールアドレスが外部レポートを受信可能に設定されているかも確認が必要です。
DNSのTTL設定に依存します。通常は数分から最大48時間ほどで世界中のメールサーバーに浸透します。