SPF・DKIM・DMARCの考え方がわかる|メール認証の仕組みを図解

【Web自動化ツール技術解説シリーズ
Web自動化ツールを安心して活用するために知っておきたい技術的な仕組みを、わかりやすく解説するシリーズです。専門用語にとらわれず、ツールの動きや設定の意味を理解できるように説明します。

こんにちは、LincWebの水野です。

多くのWeb自動化ツールには、メール配信機能がついています。ステップメールを送ったり、予約完了メールを自動送信したり、見込み客へのフォローを仕組み化したり。今や「メール配信」は自動化の中心ともいえる存在です。利用している個人事業主の方も多いでしょう。

しかし、この機能を使う前に、必ず設定しなくてはならない項目があります。
それが「SPF」「DKIM」「DMARC」と呼ばれるメール認証の設定です。メール認証技術は、なりすましメールやフィッシング詐欺などを防ぐために、本当に正しい送信元が送信したメールであるかを確認するためのものです。
メルマガやステップメールを配信する上では、このメール認証の設定を正しく行っておかないと、どんなに魅力的な内容のメールを送っても、迷惑メールに入ってしまったり、届かなかったりすることがあります。

つまり、メール配信を始めるためには、まず「信用される送信者」とみなされるための準備が必要なのです。メールという基盤ツールを安定して運用できることは、あなたのビジネスの信頼感にも直結すると言えるでしょう。

とはいえ、SPF、DKIM、DMARCといった言葉だけを見ると、「難しそう」と感じる方も多いでしょう。本記事では、そうした方に向けて、これら3つの仕組みをできるだけわかりやすく解説します。メール配信を安心して自動化するための「基礎知識」として、ぜひここで理解を進めておきましょう。

「Web自動化ツール技術解説」記事一覧
第1回 SPF・DKIM・DMARCの考え方がわかる|メール認証の仕組みを図解
(今後追加予定)

目次

SPFとは?送信元のサーバーを確認する仕組み

まず最初に登場するのが「SPF(Sender Policy Framework)」です。
これは、「自分のドメインのメールは、どのメールサーバーから送るか」を、DNS上のSPFレコードで宣言しておく仕組みです。SPFの仕組みを理解するために、郵便の例に例えて説明します。

SPF(Sender Policy Framework)の考え方を、郵便の消印にたとえて説明した図。
LincUpが送った封筒には「東京中央郵便局」の消印があり、受取人の「あなた」は「LincUpの公式サイトに、この郵便局から発送すると書かれているので本物だろう」と確認している。
右側には、LincUpが自社サイト上で「弊社からの郵便は必ず東京中央郵便局から発送します」と宣言しており、実際にはこれがDNS上のSPFレコード登録に相当することを示している。
図全体を通して、SPFが「送信元サーバーの正当性をDNSで宣言し、受信側が消印を照合して判断する仕組み」であることを説明している。
SPFの考え方と仕組み

上の図では、あなたがLincUpから郵便(封筒)を受け取ったときに、これがLincUpから届いた封筒であることをどう確認するかを、SPFの仕組みに則って考えてみます。

あなたは封筒を見たとき、「これ本物かな?」と思い、まず消印を確認します。消印には「東京中央郵便局」とあります。さらにLincUpのホームページをみたら、「当社の郵便は東京中央郵便局から発送します」と書かれていました。この2つが一致したら、「あ、本物かもしれないな」と思うことでしょう。

SPFでは、まさにこれと同じことをDNSの仕組みを使って行っています。送信者は、「このドメインのメールは、このメールサーバー(IPアドレス)から送ります」とSPFレコードに登録しておき、受信者のサーバーは、届いたメールが「登録されたメールサーバーから送られた」かをチェックするのです。郵便の例で言えば、郵便局がメールサーバーにあたるわけです。

つまり、SPFは「郵便が正しい郵便局から出されたか=メールが正しいメールサーバから送信されたか」をチェックする仕組みと言えます。

多くのスパムメールやなりすましメールは、海外の不正サーバーや自前の送信環境から送られています。そのような「登録されていないサーバー」から送られてきたメールを、受信側はSPFを使って「なりすましの可能性あり」と判断し、迷惑フォルダに振り分けたり、受信を拒否したりできるのです。

このようにSPFは、送信元サーバーの正しさを確認し、ドメインの信頼性を守るための第一ステップとなる仕組みと言えます。

SPFは、送信元IPアドレスが変わる転送メールメーリングリストではうまく機能しない場合があります。また、Gmailの「他のアドレスとして送信」機能でGmailサーバー経由で送信した場合も認証に失敗します。従って、SPF認証に失敗したメールを無条件に迷惑メールやなりすましメールと判断するのは危険で、後述するDMARCによる総合的な判断が必要になります。

DKIMとは?メールの改ざんを防ぐ仕組み

次に登場するのが「DKIM(DomainKeys Identified Mail)」です。
これは、送信者が自分のドメインに紐づく電子署名をメールに付与し、「このメールは確かに自分が送ったものであり、途中で改ざんされていない」ことを証明する仕組みです。ここでも、郵便の例に置き換えて考えてみましょう。

DKIM(DomainKeys Identified Mail)の考え方を、封筒の「印鑑」と「印鑑証明書」にたとえて説明した図。
あなた(受取人)は、LincUpから届いた封筒に印鑑が押されているのを確認し、「印鑑登録証明書の印影と一致しているので改ざんされていない」と判断している。
図の右側では、市区町村役場(法務局)にあたる機関に「LincUp名義の印鑑登録証明書」が登録されており、これは実際の仕組みではDNSサーバーにDKIM公開鍵を登録することに対応している。
全体として、DKIMが「送信ドメインに紐づく電子署名で、メールが正しく送られ途中で改ざんされていないことを証明する仕組み」であることを、郵便の例えでわかりやすく表現している。
DKIMの考え方と仕組み

上の図では、あなたがLincUpから郵便(封筒)を受け取ったときに、中身が改ざんされていないことをどう確認するかを、DKIMの仕組みに基づいて表しています。

封筒を見ると、しっかり封がされており、封のところに割り印が押されています。どうやら割り印が押された後に開封はされていないようです。次にあなたは「この印鑑は本物だろうか?」と考え、「印鑑登録名義:LincUp」に基づいて法務局で保管されている印鑑登録証明書を確認したところ、印影も一致していました。この場合、「確かにLincUpが押した印鑑だ。封も開けられていない」と判断できますよね。

現実世界では、印鑑登録証明書を一般の人が自由に参照することはできませんが、DKIMの仕組みをイメージしやすくするために、ここでは参照できるものとして説明しています。

DKIMでは、この流れを電子的に実現しています。送信者はメールを送信する際、自分だけが持つ秘密鍵で電子署名を付与し、対応する公開鍵をDNSサーバー上にDKIMレコードとして登録します。受信側のサーバーは、その公開鍵を使って署名を検証し、「署名を付けたのは確かに送信元か」「本文やヘッダーが改ざんされていないか」を確認します。

つまり、DKIMは「メールの内容が途中で書き換えられていないこと」を保証するための仕組みと言えます。

SPFが「正しい郵便局から出されたか」を確認する仕組みだとすれば、DKIMは「中身が途中で書き換えられていないか」を確認する仕組みです。この2つが組み合わさることで、メールの信頼性を高めることができるのです。

DKIMは、中継サーバーがヘッダーを書き換えるメーリングリストではうまく機能しない場合があります。また、SPFと同様に、Gmailの「他のアドレスとして送信」機能でGmailサーバー経由で送信した場合も認証に失敗します。SPFと比べると失敗するケースは少ないですが、やはりDKIM認証に失敗したメールを無条件に迷惑メールやなりすましメールと判断するのは危険で、後述するDMARCによる総合的な判断が必要になります。

DMARCとは?SPFとDKIMの整合性を確認して最終判断を行う仕組み

最後に登場するのが「DMARC(Domain-based Message Authentication, Reporting & Conformance)」です。
これは、SPFとDKIMの検証結果を照合し、それぞれがメールの差出人ドメイン(From)と整合しているかを確認したうえで、最終的にそのメールをどう扱うかを判断する仕組みです。さらに、送信ドメインの管理者が「認証に失敗したメールをどう処理してほしいか」というポリシー(方針)を受信側に伝える役割も担っています。

DMARC(Domain-based Message Authentication, Reporting & Conformance)の考え方を、封筒の「住所・印鑑・消印の整合性確認」にたとえて説明した図。
あなた(受取人)は、封筒の差出人住所が「東京都中央区」で、消印も同じ「東京中央郵便局」であること、さらに印鑑登録の名義がLincUpと一致していることを確認し、「これは本物の郵便だ」と判断している。
右側では、LincUpがホームページ上で「受領ポリシー」を宣言し、消印や印鑑に問題がある場合には、不審な郵便物として保管することを促している。
これは実際の仕組みでは、DMARCレコードをDNSに登録し、SPF・DKIMの認証結果と差出人ドメインの整合性を確認した上で、受信側に処理方針(ポリシー)を伝えることに相当する。
図全体で、DMARCが「SPFとDKIMの検証結果を統合し、送信ドメインの真正性を判断する仕組み」であることを表している。
DMARCの考え方と仕組み

上の図では、あなたがLincUpから届いた郵便を受け取り、DMARCの仕組みに基づいてそれが本物かどうかを総合的に判断する流れを示しています。

封筒を見ると、差出人の住所は「東京都中央区」で、消印も「東京中央郵便局」なので、住所に合った郵便局から発送されていることがわかります。次に、差出人の名前は「LincUp」で、印鑑の登録名義も「LincUp」なので、確かに差出人が割り印を押したことがわかります。このように、差出人の情報と消印・印鑑が整合しているため、「これは本物の郵便だな」と判断することができます。

ちなみに、差出人の情報が消印や印鑑名義と合わない場合に郵便物をどう扱えばよいか、発送元がそのポリシーを公開します。上記の例では、整合性に問題があった場合、「不審な郵便物として保管してください」というポリシーになっています。

DMARCは、この整合チェックを電子的に行います。受信サーバーは、SPFとDKIMそれぞれの結果を確認したうえで、差出人(From)の情報とSPFやDKIMの確認に使ったドメインが整合するかを照合し、一致していない場合には「なりすましの可能性あり」と判断します。

さらに、送信元のドメイン管理者は、DNS上のDMARCレコードにポリシーを設定し、DMARC認証に失敗した場合に、受信者にメールをどう扱ってもらいたいかを宣言します。
none(監視):メールを受け入れてほしい
quarantine(隔離):迷惑メールフォルダに入れてほしい
reject(拒否):メールを破棄してほしい

受信側のメールサーバーは、送信元ドメインの管理者がDNS上で公開している「DMARCポリシー」を参照し、実際の処理(監視・隔離・拒否)を決定します。

前述したように、転送メール、メーリングリスト、Gmailの「他のアドレスとして送信」機能を使った場合など、SPFやDKIMの整合チェックが失敗するケースもそれなりにあるため、DMARCではSPFとDKIMのどちらか一方が整合していれば「正当な送信」と判定するようになっています。

68%のDMARCポリシーはnoneに設定されているというデータがあります。これは、整合チェック失敗時にメールが届かなくなり、業務に影響が出るためと思われます。ただし、リスクをより低減する必要がある大企業や金融機関では、quarantineやrejectも使われています。
※Validity『DMARC Adoption: A Deep Dive into the Current State of Email Authentication

SPFが「正しい郵便局から出されたか」、DKIMが「印鑑登録された印鑑で封印されているか」を確認する仕組みだとすれば、DMARCは、これら2つの整合性をチェックし、最終的に受け入れるか拒否するかを判断する仕組みと言えます。

この3つを正しく設定することで、あなたのドメインから送信されるメールは高い信頼性を保ち、迷惑メールフォルダに入るリスクを減らすことができるのです。

なぜWeb自動化ツールでメール認証の設定が必要になるのか?

ここまで見てきたように、SPF・DKIM・DMARCは「正しい送信元から届いたメールかどうか」を判断するための仕組みです。ではなぜ、LincUpのようなWeb自動化ツールを使うと、「メール認証の設定」を自分で行う必要が出てくるのでしょうか?

ポイントは、「どのサーバーからメールを送るか」が変わることです。
通常のメール送信と、メール配信サービスを使ってメール送信を行う場合の違いを、図を使って見ていきましょう。

通常のメール送信の場合

例えば、あなたが独自ドメイン(例:example.com)をXserverで契約し、そのメール機能を使ってメール送信する場合を考えてみましょう。

このとき、メールは「Xserverのサーバー」から送信され、DNS(ドメインの設定情報)にも「このドメインのメールはXserverから送信する」という情報(SPF・DKIM・DMARC)があらかじめ登録されています。送信と照合の両方がXserver内で完結しているため、特別な設定を追加する必要はありません。

つまり、送信元(Xserver)=認証情報を登録しているサーバー(Xserver)となっており、うまく動作します。

通常のメール送信におけるメール認証の流れを示す図。
あなた(送信者)がXserverにメール送信を指示し、Xserverのメールサーバーから送信される。
DNSにはXserverのSPF・DKIM・DMARC情報が登録されており、受信者側はDNSを参照して消印(SPF)と印影(DKIM)を照合し、送信元が正当であることを確認する。
Xserver内で送信と照合が完結するため、追加設定は不要であることを示している。
通常のメール送信の場合のメール認証の動き

Web自動化ツールから送信する場合

一方、LincUpやSendGridなどのWeb自動化ツールやメール配信サービスを使うと、あなたが持っている独自ドメイン(example.com)のメールを別のサーバー(LincUpのサーバー等)から送信することになります。

ここで問題になるのが、「DNS上の登録情報(SPF・DKIM・DMARC)」です。DNSにはまだ「Xserverが送信します」としか書かれていないため、LincUpから送られたメールを受け取った側のサーバーは、こう考えます。

「このメール、差出人はexample.comって書いてあるけど、送信したのはLincUpサーバーだ。DNSにはLincUpの情報が登録されていないな……。これは本物なのだろうか?」

結果として、SPFやDKIMの認証が失敗し、メールが迷惑フォルダに入ったり、拒否されることがあります。

これを防ぐには、あなたの独自ドメイン(example.com)のDNSサーバーに、「example.comのメールはLincUpサーバーから送信されることがあります」という情報を登録しておく必要があります。

具体的には、LincUpから提供されるSPF・DKIM・DMARCの各レコードを、あなたの独自ドメインのDNSに追加します。これにより、受信側のサーバーは次のように判断できるようになります。

「LincUpサーバーから送られてきたけど、DNSに登録がある。ということは、このメールは正規のメールサーバーから送信されたものだな。」

図のように、XserverのDNSには、LincUpのSPF・DKIM・DMARC情報が追加登録され、受信者はDNSサーバーを参照することで「確かにLincUpからの正当な送信」と確認できるようになります。

Web自動化ツール(LincUp)を使ってメールを送信する際の認証の流れを示す図。
あなた(送信者)がLincUpにメール送信を指示し、LincUpのサーバーから送信される。
しかしDNSにはまだXserverのSPF・DKIM情報しか登録されていないため、受信者は照合時に不一致を検出する。
これを防ぐため、DNSにLincUpのSPF・DKIM情報を登録しておく必要があることを説明している。
Web自動化ツールから送信する場合のメール認証の動き

Web自動化ツールでメール認証の設定が必要になる理由は、あなたのドメインを管理している業者とは別のサーバーからメールが送信されるからです。そこで、SPF・DKIM・DMARCの設定をDNSサーバーに追加することで、受信側のサーバーが「あなたが承認したサーバーから送られた正当なメール」だと判断できるようになるのです。

これにより、あなたのメールは「届くメール」になり、迷惑メール判定を大幅に減らすことができるのです。

Xserver以外でも、ムームードメイン、お名前.comなど、どのドメイン管理業者を使っていても原理は同じです。メール送信に新しいサーバーを使うときには、そのサーバーの情報をDNSサーバーに登録するのが、メール認証設定の基本なのです。

まとめ

SPF・DKIM・DMARCは、どれも「本当に正しい送信元から届いたメールか」を確認するための仕組みです。Web自動化ツールを使うときに設定が必要になるのは、あなたのドメインを使っていても、実際の送信サーバーが別になるからです。

DNSにこれらの認証情報を登録しておけば、受信側のサーバーは「このツールから送られたメールは正当なものだ」と判断し、メールが正しく届くようになります。メール認証の設定はテクニカルな作業ではありますが、本質的には「あなたのビジネスの信頼性を担保すること」が目的です。

このように、顧客に安心してメールを届けるための「信頼の基盤」を構築することは、あなたのビジネスの信頼感にもつながる重要な要素とも言えるでしょう。

次回は、実際にSPF・DKIM・DMARCの具体的な設定方法について、テクニカルな観点から解説していきます。

「一人で抱え込まず、仕組みづくりや自動化を相談しながら進めませんか?」
LincUpは、必要なときに必要なサポートを利用できる、伴走サポート付きツールサービスです。
WebのことはLincWebに任せて、あなたはあなたにしかできないサービスづくりに集中しませんか?
LincUpのサービス内容はこちらからご確認いただけます。

「Web自動化ツール技術解説」記事一覧
第1回 SPF・DKIM・DMARCの考え方がわかる|メール認証の仕組みを図解
(今後追加予定)

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

国内大手IT企業に16年間勤務し、研究開発やシステム開発に従事。
2017年にマレーシアに移住し、現地の日系IT企業へ転職。
現在は最高戦略責任者(CSO)として、ビジネス戦略や技術戦略の策定、
プロジェクトマネジメント、システム導入・運用までを幅広く担当。

また、ビジネスを安定して運営するための「仕組み設計」を専門とする「LincWeb」を立ち上げ、個人事業主のビジネス設計や、ツールを活用した業務自動化を支援している。

目次