送信ドメイン認証技術について(SPF/DKIM/DMARC)
送信ドメイン認証はスパムメールや攻撃メールが自動的に迷惑メールフォルダに振り分けられるときなど利用されている技術です。メールを受信したサーバが送信側のメールから後述する技術を用いて検証することで実現しています。今回はSPF、DKIM、DMARCの3つについて紹介します。
SPF(Sender Policy Framework)
SPFは送信元のメールサーバーのIPアドレスを認証することで、なりすましメールを防止する技術です。DNSサーバーにSPFレコードを登録し、受信側のサーバがSPFレコードと受信したメールからの情報を比較検証しています。

下記はSPFレコードのサンプルで、DNSのTXTレコードとして記述されます。
IPアドレス:192.xxx.xxx.xxxからメールのみ、受信可能となります。
ドメイン名 IN TXT "v=spf1 ip4:192.xxx.xxx.xxx -all"
DKIM(DomainKeys Identified Mail)
DKIMは電子メールの送信者のドメインを認証するための技術です。メールが改ざんされていないことを確認し、なりすましメールを防止することが可能です。

下記はDKIMレコードのサンプルで、DNSのTXTレコードとして記述されます。"v"はDKIMレコードであることを示し、"k"は電子署名の作成の際に利用できる鍵の形式を表します。"p"は公開鍵で、Base64でエンコードされます。
[セレクタ名]._domainkey.[ドメイン名] IN TXT "v=DKIM1; k=rsa; p=********"
"セレクタ名"は、ドメインが使用しているメールのサービスプロバイダが発行する値です。メールサーバーがDNSで必要なDKIM検索を実行できるように、DKIMヘッダーに含まれています。"ドメイン名"は、メールドメイン名です。"._domainkey. "は、すべてのDKIMレコード名に含まれます。
DMARC(Domain-based Message Authentication, Reporting Conformance)
DMARCはSPFとDKIMの認証結果からメールの送信元ドメインが正当であるかどうかを判定し、設定したポリシーに基づいた処理を実行します。その後、メールの送信元に処理結果のレポートを送信します。併せて、メールのヘッダFROMとエンベロープFROMのドメインの照合も実施します。

下記はDMARCレコードのサンプルで、DNSのTXTレコードとして記述されます。"v"=DMARC1は該当のDNSのTXTレコードがDMARCレコードであることを示し、"p"は検証結果がNGの際の処理を記述します。検証結果を送信する場合は"rua"に設定したメールアドレスには集約レポート、"ruf"に設定したメールアドレスにはDMARCの失敗レポートが送信されます。
_dmarc.[ドメイン名] IN TXT "v=DMARC1; p=none"
_dmarc.[ドメイン名] IN TXT "v=DMARC1; p=none; rua=mailto:rua@evios.co.jp"
処理のポリシーには以下が設定可能です。
none
何も処理しない(=そのまま受信する)quarantine
検証結果がNGのメールを隔離する。reject
検証結果がNGのメールを拒否する。