送信ドメイン認証技術について(SPF/DKIM/DMARC)

送信ドメイン認証はスパムメールや攻撃メールが自動的に迷惑メールフォルダに振り分けられるときなど利用されている技術です。メールを受信したサーバが送信側のメールから後述する技術を用いて検証することで実現しています。今回はSPF、DKIM、DMARCの3つについて紹介します。

SPF(Sender Policy Framework)

SPFは送信元のメールサーバーのIPアドレスを認証することで、なりすましメールを防止する技術です。DNSサーバーにSPFレコードを登録し、受信側のサーバが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認証フロー

下記は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認証フロー

下記は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のメールを拒否する。


この記事が気に入ったらサポートをしてみませんか?