Webサービスや業務システムでメール送信機能を実装する機会は多いですが、
「メールが届かない」「迷惑メールに入る」「なりすまし対策を指摘された」など、
運用フェーズで初めて重要性に気づくのがメール認証技術です。
この記事では、
- SPF
- DKIM
- DMARC
という 3つの基本的なメール認証技術について、
「エンジニア視点」で役割と考え方を整理します。
なぜメール認証が必要なのか
メールは仕組み上、送信元アドレスを偽装しやすいという特徴があります。
そのため以下のような問題が発生します。
- なりすましメール(フィッシング)
- 自社ドメインが迷惑メール扱いされる
- 到達率が急激に下がる
これを防ぐために導入されているのが、
「このメールは正当に送られたものか?」を検証する仕組み=メール認証です。
SPF(Sender Policy Framework)とは
何をしている仕組み?
「このドメインからメールを送っていいサーバーはどれか」
をDNSで宣言する仕組みです。
受信側は、
- 送信元ドメインのDNSを確認
- 接続してきたIPアドレスが許可されているか
をチェックします。
イメージ
このドメインのメールは、
このサーバーから来たものだけ正しい
SPFの弱点
- メール本文やFromアドレス自体は保護できない
- 転送メールに弱い
SPFは入口チェックとして有効ですが、単体では不十分です。
DKIM(DomainKeys Identified Mail)とは
何をしている仕組み?
メールに電子署名を付けて、改ざんされていないことを証明します。
- 送信時:メールに署名を付与
- 受信時:DNSに公開された公開鍵で検証
イメージ
このメールは、
- 正しいドメインから送られ
- 途中で内容が変えられていない
という保証をする仕組みです。
DKIMの強み
- メール内容の改ざん検知が可能
- 転送されても比較的強い
DMARCとは
何をしている仕組み?
SPFやDKIMの検証結果をどう扱うかを宣言するポリシーです。
DMARCがないと、
- SPF失敗
- DKIM失敗
しても「受信側の判断任せ」になります。
DMARCでできること
SPF/DKIMに失敗したメールを、
- 何もしない(none)
- 隔離(quarantine)
- 拒否(reject)
といった形で制御できます。
また、レポートを受け取ることも可能です。
イメージ
認証に失敗したメールは、
こう扱ってください
という運用ルールの明文化です。
3つの関係まとめ
| 技術 | 役割 |
|---|---|
| SPF | 送信元サーバーの正当性確認 |
| DKIM | メール内容の正当性・改ざん防止 |
| DMARC | 認証失敗時の扱いを決める |