DMARC(ドメインベースのメッセージ認証)

メール & セキュリティ
SPF と DKIM に基づくメール認証プロトコル。ドメイン所有者が認証されないメールがどのように処理されるべきかを指定することを可能にします。
← 用語集に戻る

DMARCとは何か?

DMARC(Domain-based Message Authentication, Reporting & Conformance)は、SPFとDKIMを基盤にしたメール認証プロトコルです。ドメイン所有者は、認証に失敗したメッセージを受信サーバーがどう扱うかをポリシーとして公開でき、メール認証を監視するためのレポートも受け取れます。

DMARCが不可欠な理由

SPFとDKIMだけでは重要な点が欠けています。認証に失敗したメッセージをどう扱うべきかを受信側に伝えられないためです。攻撃者がSPF/DKIMなしでなりすましメールを送信しても、受信側には判断の指針がありません。

DMARCは次の仕組みでこの問題を解決します。

DMARCの仕組み

1. 送信者が公開する: DNSの _dmarc.domain.com にTXTレコードとしてDMARCポリシーを公開します

2. メールが送信される: From: [email protected] を付けて送信します

3. 受信側が確認する: SPFとDKIMを検証します

4. 受信側がアライメントを確認する: 認証されたドメインがFromヘッダーと一致するか確認します

5. ポリシーを適用する: DMARCレコード(none、quarantine、reject)に基づいて処理します

6. レポートを送信する: 指定されたアドレスへ集計レポートを送ります

DMARCアライメント

DMARCでは「アライメント」、つまりFromヘッダーのドメインが次のいずれかと一致することが必要です。

アライメントがなければ、SPF/DKIMがパスしてもDMARCは失敗します。

DMARCレコードの形式

DMARCレコードは _dmarc.yourdomain.com に置くTXTレコードです。

_dmarc.example.com.    IN    TXT    "v=DMARC1; p=reject; rua=mailto:[email protected]"

DMARCタグ

タグ必須説明
vはいバージョンv=DMARC1
pはいポリシーp=none/quarantine/reject
ruaいいえ集計レポートURIrua=mailto:[email protected]
rufいいえフォレンジックレポートURIruf=mailto:[email protected]
pctいいえポリシーの適用割合pct=100
spいいえサブドメインポリシーsp=reject
adkimいいえDKIMアライメントモードadkim=s (strict) or adkim=r (relaxed)
aspfいいえSPFアライメントモードaspf=s or aspf=r

DMARCポリシー

p=none: 監視だけを行い、失敗したメッセージには何もしません。
v=DMARC1; p=none; rua=mailto:[email protected]
p=quarantine: 失敗したメッセージを迷惑メールとして扱います。
v=DMARC1; p=quarantine; rua=mailto:[email protected]
p=reject: 失敗したメッセージを完全に拒否します。
v=DMARC1; p=reject; rua=mailto:[email protected]

DMARCの導入手順

フェーズ1: 監視(p=none)

まずは監視から始めて、自分のメール送信環境を把握します。

v=DMARC1; p=none; rua=mailto:[email protected]

2~4週間レポートを分析し、次の点を特定します。

フェーズ2: 隔離(p=quarantine)

正規の送信元を認証できたら、次の設定に進みます。

v=DMARC1; p=quarantine; pct=10; rua=mailto:[email protected]

最初は10%だけを隔離するために pct=10 を使い、段階的に割合を増やします。

フェーズ3: 拒否(p=reject)

完全な保護を有効にします。

v=DMARC1; p=reject; rua=mailto:[email protected]

DMARCレポート

集計レポート(rua)

すべてのメールについて認証結果を示す、毎日のXMLレポートです。

フォレンジックレポート(ruf)

個々の認証失敗を報告します。プライバシー上の理由から、すべての受信側が送るわけではありません。

レポートの処理

DMARCの生レポートはXML形式で読みにくいため、次のようなサービスを利用できます。

DMARCを確認する

dig _dmarc.example.com TXT
curl "https://domscan.net/v1/health?domain=example.com"

# Returns hasDMARC status

よくあるDMARCの問題

レポートが届かない: ruaアドレスで大容量のメールを受信できることを確認してください。プロバイダーによってはフィルタリングされます。 正規のメールが失敗する: すべての送信サービスのSPF/DKIM設定を確認し、アライメントを検証してください。 第三者サービスのメールが失敗する: DMARCアライメントのために、カスタムDKIM設定を必要とするサービスが多くあります。

DMARCはメール認証の仕上げとなる仕組みです。SPFとDKIMが正しく機能していることを確認してから導入してください。

この知識を実践する

DomScan の API を使用してドメインの可用性、状態などを確認します。