DMARC認証の基本原則
- SPFとDKIMのそれぞれに「認証」と「アライメント」という2つの検証項目があります
- SPFとDKIMのどちらかが認証とアライメントをPass(合格)できていれば、もう一方は未導入あるいはFail(失敗)となっていてもDMARC認証にPassすることができます。
認証(Authentication)のPass
「認証」は、メールが特定の技術仕様(SPFまたはDKIM)に従っているかを確認するプロセスです。これはメールが正当な送信元から送られたものであることを技術的に証明します。
DKIM認証
受信サーバーは:
- メールヘッダーのDKIM-Signatureフィールドにあるd=タグから、署名ドメインを参照
- そのドメインのDNSレコードから公開鍵(DKIMレコード)を取得
- 取得した公開鍵を使って、メールに付与されたデジタル署名を検証
- 署名が有効であれば、メールが改ざんされていないことと送信者の正当性を確認
SPF認証
受信サーバーは:
- SMTP通信時、「①送信元IPアドレス」を把握
- メールヘッダの「Return-Path」フィールドから、「Envelope From」のドメイン名を把握
- そのドメインのDNSレコードからSPFレコード(TXTレコード)を取得
- SPFレコードに記載された許可IPアドレスリストと「①送信元IPアドレス」を照合し、一致すれば認証成功
アライメント(Alignment)のPass
「アライメント」は、メールヘッダーにある複数のドメイン名が一致しているか(alignedしているか)を確認するプロセスです。これにより、メールの送信元が見た目のドメイン名(Fromアドレス)と技術的な送信ドメイン名が一致していることを確認し、フィッシング詐欺などを防ぎます。
SPFアライメント
- 下記の2つが一致しているかを確認します
- メールヘッダーの「From」アドレス(Header From)のドメイン名
- SPF認証に使われる「Return-Path」アドレス(Envelope From)のドメイン名
DKIMアライメント
- 下記の2つが一致しているかを確認します
- メールヘッダーの「From」アドレス(Header From)のドメイン名
- DKIM署名に使われる「d=」タグのドメイン名
DMARC認証に合格するためには
DMARC認証に合格するためには、SPFとDKIMのいずれか一方が「認証」と「アライメント」の両方に合格する必要があります。 認証とアライメントの両方をクリアしないと、DMARCとしては合格と見なされません。
これは、「正規の送信元から送られたか(認証)」だけでなく、「ユーザーに表示されるドメイン名がなりすまされていないか(アライメント)」も同時に確認することが、DMARCの目的だからです。
DMARC認証の判定表
SPF認証 | SPFアライメント | DKIM認証 | DKIMアライメント | DMARC認証 |
---|---|---|---|---|
成功 | 成功 | - | - | 合格 |
- | - | 成功 | 成功 | 合格 |
成功 | 失敗 | 成功 | 成功 | 合格 |
成功 | 成功 | 失敗 | - | 合格 |
失敗 | - | 成功 | 成功 | 合格 |
成功 | 失敗 | 成功 | 失敗 | 不合格 |
失敗 | - | 成功 | 失敗 | 不合格 |
成功 | 失敗 | 失敗 | - | 不合格 |
失敗 | - | 失敗 | - | 不合格 |
※"-"のところは、どのような結果でもDMARC認証結果に影響をあたえない。
まとめ
メール認証は複層的なセキュリティ対策です:
- SPF認証 - 送信元IPアドレスの正当性を検証
- DKIM認証 - メール内容の改ざん防止と送信者証明
- アライメント - 見た目のドメインと技術的なドメインの一致確認
- DMARC - これらを統合した総合判定
重要なのは、単に技術的な認証が通るだけでなく、ユーザーが見るドメイン名との整合性も確保することです。これにより、高度な なりすましメール攻撃からも保護することができます。
参考資料
- DMARCのアライメントとは? SPF・DKIMアライメントをPassする
- DMARCアライメントとは?必要性や種類、仕組みを徹底解説
- DMARCとは?DMARCの設定と運用方法を分かりやすく解説!
- DMARC をなめるな - 弁護士ドットコム株式会社