送信ドメイン認証とは、電子メール(以下、メール)の送信者の成りすましを防ぐ技術です。送信ドメイン認証は、そのメールアドレスのドメインを見て、それが正規のサーバから発信されているか否かを検証します。
送信ドメイン認証の種類は以下になります。
SPF
SPF(Sender Policy Framework)では、予めDNSサーバのSPFレコードに送信元IPアドレスを設置します。受信者は、送信者のSPFレコードを確認することで、正しい送信者かどうか判断します。SPFは、RFC7208で定められています。
SPF認証の流れは以下になります。
- 送信者は、予めDNSサーバのSPFレコードに、メールサーバのIPアドレスを設定する。
- 受信者は、メールのエンベロープFrom(MAIL FROM)のドメインのDNSサーバにアクセスする。
- SFPレコードのIPアドレスと、実際の送信元メールサーバのIPアドレスが一致するか確認する。
Sender ID
SFPとSender IDの違いは、SFPがエンベロープFromからドメインを判断するのに対し、Sender IDでは、ヘッダ情報のPRA(Purported Responsible Address)からドメインを判断します。
DKIM
DKIM(DomainKeys Identified Mail)では、予めDNSサーバに公開鍵を設置し、メールヘッダに電子署名を付与して送信します。DKIMは、RFC4871で定められています。
DKIMの流れは以下になります。
- 送信者は、予めDNSサーバに公開鍵とSSP(Sender Signing Practice)を登録します。
- 受信者は、電子署名のドメインのDNSサーバから、公開鍵を取り出します。
- 取得した公開鍵で電子署名を検証し、認証に成功すればメールを受取ります。
- 認証に失敗した場合は、SSPに従って処理します。
DMARC
DMARC(Domain-based Message Authentication、Reporting and Conformance)は、SPFやDKIMの認証が失敗した場合の処理を定めたものです。そのため、SPFやDKIMの対応が前提となります。
SPFとDKIMの問題点は、メールの送信者は受信者が正しく認証が行えたか分からないし、受信者は仮に問題を発見しても、成りすましか技術的な問題が分からないことがあります。
メールの送信側は、DNSサーバのADSPレコードに、受信側で認証に失敗した場合の対応を記述することができます。対応には、隔離・拒否・受け取るなどがあります。また送信側は、受信者の認証結果を受取る窓口を設定できます。