送信ドメイン認証(SPF、DKIM、DMARC)とは?ゼロからわかる入門編
なりすましの防止や、メール到達率の向上のため、SPFやDKIMといった送信ドメイン認証の設定は必須です。
一方で、「設定しなければいけないと思っているが、よくわからない」「そもそもどういう仕組みなのか」という疑問もあるのではないでしょうか。
今回は、送信ドメイン認証の仕組みや、設定方法をまとめました。みなさまのお役に立てれば幸いです。
この記事のもくじ
送信ドメイン認証と予備知識
送信ドメイン認証は、「メールがどのように相手に届くか」と「なりすましメールはどのように行われるか」を知ることで、スムーズに理解できます。
メールが届く仕組み
送信ドメイン認証について理解するため、まずはメールがどのように受信者に届くのか確認しましょう。
メールはPCから自社のメールサーバへ送られます(1)。その後、DNSサーバへ送信先のIPアドレスを問い合わせます(2)。この領域が送信ドメインになります。
私たちは日頃メールアドレスやURLをアルファベットで認識していますが(example.comのような形式)、コンピュータはアルファベットでは認識できません。URLやメールのドメインは、もともとは全てIPアドレスです。IPアドレスは、インターネット空間の住所のようなものだと思ってください。郵便を届けるときには、住所が必要なのと同様、電子メールを送るときも送信先のIPアドレスが必要です。
DNSサーバは、メール送信先のドメインのメールサーバのホスト名と、そのIPアドレスを問合せます。メールを送信するためには、一度DNSサーバにIPアドレスを問い合わせなければなりません。
その後、受信者側のメールサーバがIPアドレスを返し(3)、そのIPアドレスへメールが送信されます(4)。
受信者側のメールサーバに入ったメールは、受信者のPCのメールボックスに届きます(5)。
なりすましメールの仕組み
なりすましメールとは、メールのFrom(送信元)を偽って、他人になりすましたメールです。なりすましメールは、金融機関や身近な人からのメールになりすますことで、個人情報を抜き取るフィッシング詐欺に使われることがあります。
送信ドメイン認証とは、なりすましメールかどうかを判別するために利用します。メールの技術仕様に加えて、DNSの仕組みを用いることで、送信元を認証します。
メールは、ヘッダ部やボディ部などの複数のパート(マルチパート)からできています。ヘッダ部は宛先、送信元、件名などを設定するパートです。
メールの構造については別記事の「マルチパートメールとは?メルマガ担当者がわかりやすく解説します」でまとめてございます。合わせてごらんくださいませ。
なりすましメールは、送信元をしめす、ヘッダーのFromを他人のメールアドレスに書き換えることで簡単に作れます。
送信ドメイン認証とは?
送信ドメイン認証とは、SPFやDKIMといった仕組みを用いて、送信元ドメインを認証して、なりすましメールを防ぐ仕組みです。
SPFとDKIMが現在主流の送信ドメイン認証の仕組みです。加えて、DMARCという仕組みも登場しています。SPFとDKIMが送信元のドメインの認証であることに対して、DMARCはSPFやDKIMなどの送信ドメイン認証に失敗時のメールの処理方法について指示します。
送信ドメイン認証に対応することで、メールの到達率を上げることができます。送信ドメイン認証が成立することで、あなたが送るメールは迷惑メールと間違われる機会が減るからです。
メルマガ配信や、メールマーケティングでは、送信ドメイン認証はしっかり設定しておきましょう。
メールマーケティングは、マーケティング活動の中核的な位置付けです。価格面でも運用面でもお手軽に始めることができることが人気の理由です。メールマーケティングについては、別記事「メールマーケティングとは?一番わかりやすい入門編」でまとめました。みなさまのご参考になれば幸いです。
SPFの概要・仕組み・設定方法
SPFは、送信ドメイン認証の中でも最も普及しています。SPFの概要や仕組み、設定方法を押さえましょう。
SPFとは
SPF(Sender Policy Framework)とは、DNSサーバにSPFレコードと呼ばれるレコードを登録しておくことで、送信元ドメインを認証する仕組みです。
SPFは送信元IPアドレスと、SPFレコードに記載されたIPアドレスを比較して、なりすましかどうか検証します。
SPFの仕組み
SPFの仕組みを実現するためには、2つのステップが必要です。
SPFによる送信元ドメイン認証では、メールの送信者があらかじめ「該当するドメインのDNSサーバにSPFレコードを登録する」ことと、「メールを受信したメールサーバがSPFレコードをチェックする」という2つの動作によって完結します。
SPFレコードとは、「このドメインから配送されるメールは、〇〇からのみの配信に限定されている」という情報を持っています。SPFを設定するためには、該当するDNSサーバにSPFレコードを登録しておきます。
SPFレコードは以下のように、該当するDNS記述します。最近では、WEBブラウザからDNSのレコードを登録できるサービスもあります。その場合は、みなさんの設定は、下記のようにならないことがありますのでご注意くださいませ。
次に、メールを受け取ったメールサーバがSPFレコードをチェックする必要があります。以下の図は、SPFの仕組みを表しています。
「メールが届く仕組み」で説明した図に、SPFレコードの比較・検証という項目が追加されています(4)。
自社側メールサーバのIPアドレスが192.168.2.1だとします。受信者側メールサーバは、DNSサーバに登録されたSPFレコードを確認します。SPFレコードに記載されたIPアドレスと、送信元IPアドレスが合致していれば、送信元ドメインの認証がとれたことになります。
SPFレコードの登録方法
SPFを有効にするためには、メール送信元のドメインのDNSサーバにSPFレコードを追加します。
例えば、当社のマーケティングオートメーション「Kairos3 Marketing」のメールサーバ情報であれば、
v=spf1 include:kairos3.com ~allのような形で、SPFレコードを追加します。(下図はあくまでも例で、当社のIPアドレスとは異なります)
SPFレコードは、ドメインに対して1行だけで設定します。複数のSPFレコードを追加したい場合には、下図のように1行で収まるように記述するようにしましょう。
SPFがもつ課題
SPFは、IPアドレスで送信元ドメインの認証をするため、メールが転送される場合には、なりすましメールでなくても認証に失敗するという課題があります。
SPFは、SPFレコードに記載されたIPアドレスをもとに認証します。メール転送が発生する環境下では、転送時にメールのFromは変わらないまま、メール送信するサーバのIPアドレスが変わります。
中継元のIPアドレスは、大元のDNSサーバに記載されたSPFレコードと異なるため、受信側でのSPF認証に失敗します。
DKIMの概要・仕組み・設定方法
DKIMは、SPFの課題を補う送信ドメイン認証で、国内でも普及が進んでいます。DKIMの概要や仕組み、設定方法を理解しましょう。
DKIMとは
DKIM(DomainKeys Identified Mail)は、電子署名を用いてメールの送信元のドメインを認証する仕組みです。DKIMはメール自体に電子署名を添付するため、先ほどのSPFにまつわる転送メールの課題も解決できます。
DKIMにおける電子署名と公開鍵暗号
DKIMは電子署名の仕組みを使って、送信元のドメインを認証します。
電子署名とは、現実世界における判子のようなものです。電子署名は他人に送信するファイルに付与して、送信者の正当性やファイルが改ざんされていないことを証明します。DKIMによる送信元ドメイン認証では、電子署名をメールに添付することで実現します。
電子署名を実現するために用いられる仕組みが暗号化です。暗号化には共通鍵暗号方式と、公開鍵暗号方式の2種類あります。
共通鍵暗号方式は、暗号化と復号化に同じ鍵を使う方式です。私たちが普段使っている鍵と同じなので、イメージしやすいはずです。
共通鍵暗号方式は、復号化のスピードが早いなどのメリットがありますが、鍵の受け渡しが困難であるというデメリットもあります。鍵をメールなどの添付で送信してしまうと、鍵を盗聴される可能性があります。
公開鍵暗号方式は、暗号化と復号化に別々の鍵を使います。公開鍵暗号方式は、鍵の受け渡しが困難であるという共通鍵暗号方式のデメリットをカバーしています。
公開鍵と秘密鍵はペアになっており、公開鍵で暗号化したデータは秘密鍵でしか復号化できません。
逆に、秘密鍵で暗号化したデータは、その秘密鍵と対になる公開鍵でしか復号化できません。また、秘密鍵は1つしかなく、正規の送信者しか持っていません。
電子署名は、「正規の送信者しか秘密鍵を持っていない」という特徴と、「秘密鍵で暗号化したデータは公開鍵でしか復号化できない」という特徴を利用して、送信者が本物であることを証明します。
DKIMの仕組み
DKIMを実現するためには、電子署名に利用する秘密鍵と対になる公開鍵を送信元ドメインのDNSサーバに公開しておく必要があります(1)。
秘密鍵を使って、メールに電子署名を付与し、メールを送信します(2)。受信者側メールサーバは、メールの送信者が正しいか、送信元ドメインのDNSサーバに問い合わせます(3)。DNSサーバから公開鍵が返されると(4)、公開鍵を使って電子署名を検証します。
認証されれば、問題のないメールとして受信者に届きます。
DKIMの設定方法
DKIMの設定方法は、メール配信ツールによって違います。今回は、当社が開発するマーケティングオートメーション「Kairos3 Marketing」の例でご説明します。
DKIMを設定するためには、DKIMの設定ページを開き、使用するメールアドレスのドメイン(@以下)を入力します。
出力されるテキストレコード名、もしくはテキストレコード値をDNSに追加します。テキストレコードをDNSサーバに追加する際は、DNS管理者に問い合わせてください。
DMARCの概要
最近では、SPFやDKIMを補完する送信元ドメイン認証後の処理の仕組みが登場しました。DMARCは、SPFとDKIMの認証に失敗したメールを、受信サーバがどう処理するかを、送信側ドメイン管理者が管理できたり、認証結果のフィードバックが得られたりする仕組みです。
SPFとDKIM認証に失敗したメールの取り扱いは、受信者の設定によって決められていました。SPFとDKIM認証に失敗したメールでも、受信者側のメールサーバーのポリシーが「受信する」であれば、受信者のメールボックスに入っていました。
DMARCを設定している場合、ユーザーはSPFやDKIM認証に失敗したメールの取り扱いを決めることができます。
DMARCでは、ユーザーは3つのポリシーの中から1つ宣言できます。
None(何もしない)を選ぶと、認証に失敗したメールを通過させます。Reject(拒否)を選ぶと、認証に成功しないメールを受信拒否させられます。Quarantine(隔離)を選ぶと、認証に失敗したメールを隔離させられます。
送信側でDMARCを有効にするには、SPFと同様に送信元のドメインのDNSサーバにTXTレコードを追加します。
メールボックスの大きなシェアを持つGoogleやMicorsoftはDMARCに対応しています。