送信ドメイン認証
送信ドメイン認証は、送信者ドメインに対してSPFやDKIMによる認証を行い、その結果をDMARCで評価することで、メールの「なりすまし」を防止する技術です。
送信ドメイン認証は、送信者のアドレス(Fromアドレスなど)のドメインを見て、それが正規のサーバから発信されているか否かを検証します。
電子メール(以下、メール)には次の2つのFromアドレスが存在します。
-
- エンベロープFrom(Envelope-From)アドレス
送信プロトコルであるSMTP通信で利用される本当のFromアドレスで、配送エラー(Bounce)の送り先です。このアドレスが正しくないと送信ができません。郵送物に例えると、封筒に書かれている差出人名です。 - ヘッダFrom(Header-From)アドレス
メールクライアントの文面のヘッダ欄に表示されるFromアドレスで、実際の差出人とは異なる名前を設定することができます。郵送物に例えると、便箋に書かれている差出人名です。
- エンベロープFrom(Envelope-From)アドレス
なりすましメールは、ヘッダFromアドレスが不正に変更されたメールです。そのため、なりすましメールを防ぐためには、エンベロープFromアドレスが正しいドメインから送信されたものか確認する必要があります。

SPF
SPF(Sender Policy Framework)では、メールの送信者は、予めDNSサーバのSPFレコードに送信元IPアドレスを設置します。SPFは、RFC7208で定められています。
メールの受信者は、送信者のDNSサーバにアクセスし、SPFレコードを確認することで、正しい送信者かどうか判断します。
SPF認証の流れ
SPF認証の流れは以下になります。
- メール送信者は、予めDNSサーバのSPFレコードに、メール送信を許可する送信元(IPアドレスや他ドメインなど)を設定する。
- メール受信者は、メールのエンベロープFrom(MAIL FROM)のドメインのDNSサーバにアクセスする。
- SPFレコードの評価結果(Pass / Fail / SoftFail / Neutral など)藩邸する。
IPアドレスが一致しない場合は、なりすましであると考えられます。SPFの設定例は以下になります(xx.~はIPアドレス)。
| v=spf1 ip4:xx.xx.xx.xx/24 -all |
DKIM
DKIM(Domain Keys Identified Mail)では、メールの送信者は、予めDNSサーバに公開鍵を設置し、メールヘッダに電子署名を付与して送信します。
メールの受信者は、送信者のDNSサーバにアクセスし、取得した公開鍵を使って検証することで、正しい送信者かどうか判断します。DKIMは、RFC6376で定められています。
DKIMの流れ
DKIMの流れは以下になります。
- 送信者は、予めDNSサーバに公開鍵(TXTコード)を登録します。
- 受信者は、電子署名のドメインのDNSサーバから、公開鍵を取り出します。
- 取得した公開鍵で電子署名を検証し、認証に成功すればメールを受取ります。
DMARC
DMARC(Domain-based Message Authentication、Reporting and Conformance)は、SPFやDKIMの認証が失敗した場合の処理を定めたものです。そのため、SPFやDKIMの対応が前提となります。
SPFとDKIMの問題点は、メールの送信者は受信者が正しく認証が行えたか分からないし、受信者は仮に問題を発見しても、なりすましか技術的な問題が分からないことです。
尚、DMARCは、SPFやDKIMの認証結果だけでなく、Header Fromのドメインとの一致(Alignment)も確認します。DMARCは、RFC7489やRFC9617で定められています。
DMARCの設定
メールの送信側は、DNSサーバのTXTレコード( _dmarc.xxx )に、受信側で認証に失敗した場合の対応(DMARCポリシ)を記述することができます。DMARCの設定例は以下になります。
| v=DMARC1; p=quarantine(隔離)/reject(拒否)/none(何もしない); rua=(報告メールの送信先アドレス) |
受信側の対応には、隔離(棄却)・拒否・何もしない(受け取る)などがあります。「何もしない」の場合は、一旦受信した後で利用者が判断を行います。また、「rua」には受信者の認証結果を受け取る窓口を設定します。



