電子メールの送信者(WEBサービス運営者)は、情報を必要としている相手に対して、メールを正常に届けたいと思い、メールの受信者は、なりすましなど悪質なメールは受け取りなくない。メールの利用者(送受信者)にとっては当然の希望なのですが、フィッシング攻撃や悪質なウイルス感染を企んでいる悪意ある存在がいるため、思うような情報のやり取りができない現状があります。
メール配信サービス業者
一般ユーザ
これらの悩みを解消する技術としてSPF、DKIM、DMARCがあります。
「SPF」「DKIM」「DMARC」を理解する前に、メール差出元と宛先には「ヘッダ」と「エンベロープ」の2種があることを認識する必要があります。
このように、エンベロープもヘッダも、メールの差出元と宛先の指定することには変わりありません。
エンベロープは、実際の差出元と宛先。ヘッダは、表示上の差出元と宛先となります。簡単に言うとメールサーバ間(システム側)で判断しているのがエンベロープ。人間の目に触れる部分はヘッダとなります。
エンベロープとヘッダは、封筒と便箋に例えられることが多いです。
配達する人(システム)は、封筒(エンベロープ)に書かれている情報をもとに、宛先や差出人を特定するのに対して、手紙を受け取った人(ユーザ)は、中身の便箋に書かれている情報(ヘッダ)を確認します。
悪意のある人は、ヘッダ情報を書き換えることで、受信者をだますことができるのです。
そもそもなぜ、ToアドレスやFromアドレスの指定が2種存在するのでしょうか。それは、BCC送信やリレーメールサービスなどが関係しています。
BCC(Blind Carbon Copy)はご存じのとおり、メールの受信者に対して、ほかの受信者の存在を隠すメールサービスです。エンベロープtoには複数の宛先を指定して、ヘッダtoには特定の宛先しか表示させないことで、BCCを実現できるわけです。
メールリレーサービスは、多くの会員宛にDM配信する際によく利用されるWebサービスで、1種のメールサーバ(1種のIP)から大量のメールを送信すると、受信側のメールサーバは迷惑メールと判定してブロックや迷惑メールとして扱われる可能性があります。そこで、複数台のメールサーバ(複数のIP)を用意して順番に送信することで、メール送信を分散させることができるメールサービスです。
メールリレーは一般的に外部の専門業者に依頼するため、実際の送信元からメールリレーを中継して受信者に届けるため、エンベロープtoやエンベロープFromを変更する必要があるのです。
2種あるのには、それなりの理由があるのです。
ここからが本題です。メールの利便性を保つために情報の書き換えが可能な状況下で、正規なメールとして扱ってもらうため、そして迷惑メールをブロックするためにメールの認証技術が存在するのです。
まずは、SPF(Sender Policy Framework)の解説から。
SPFはメールの差出元のIPがドメイン情報(DNSへの設定)に登録されているかを判定します。Fromアドレスとして利用しているドメインとメールサーバのIPとの紐づけが正常にできているかを確認するわけです。ドメインのDNSの設定は、ドメイン保有者しかできないため、そこに登録されているメールサーバのIPが正しければ、送信元(エンベロープFrom)が正しい情報かどうかを判定することができます。
SPFはシステム側の差出元(エンベロープFrom)しかチェックしないため、ヘッダFromの正当性やヘッダ情報の改ざんは感知することができません。
SPFの弱点を補完する技術として、DKIM(DomainKeys Identified Mail)があります。SPFほど普及されていないですが、大手WEBサービスをはじめ、徐々に世の中に浸透しつつあるメール認証技術です。
SPFは単純に送信元のIPとドメインの整合性をチェックする技術ですが、DKIMは電子署名(秘密鍵/公開鍵)を利用して、メールの改ざんがないかを確認する技術です。
DKIMの署名方法には「第三者署名」と「作成者署名」の2種があります。
メール作成者ではなく、リレーメールサービスのように中間サーバにて電子署名を作成してメールに付与する方法です。ヘッダFromのドメインで電子署名を作成するわけではありません。
メール作成者にて電子署名を作成してメールに付与する方法です。ヘッダFromのドメインで電子署名を作成するため、認証としてはより強固なものになると言えます。
ただ、DKIMはSPFほど簡単ではなく、実装には専門的な技術が必要となります。特に「作成者署名」は「第三者署名」のようにリレーメールサービス業者に設定を委ねることができないため、実装のハードルはやや高くなるのが特徴です。
前述のように実装のハードルが高い点と、送信元(メール作成者)の正当性を検証しづらい点が挙げられます。よって、「SPF」「DKIM」は単体で設定するのではなく、お互いの弱点を補完する意味でも、両方設定することが望ましいと言えます。
DMARCは、「Domain-based Message Authentication, Reporting, and Conformance」の略です。長い。。。直訳すると「ドメインベースのメッセージ認証、レポート、および準拠」。よくわからないですね!
メールの認証技術として「SPF」「DKIM」「DMARC」と併記しましたが、「DMARC」は他の2種とは役割が明確に違います。
DMARCは、メールの認証が失敗した時に受信サーバに対して、該当のメールをどのように処理すべきかをDNSに明記して、コントロールする技術です。
DMARCのポリシー
メールの認証が失敗したときに、送信者(ドメイン所有者)が受信サーバに対して上記のポリシーを強制できる仕組みとなります。
DMARCのもう一つの特徴として、受信サーバからのレポートを受け取れる点が挙げられます。
レポートの受け取る意義としては、自身のドメインがなりすましなどで悪用された場合には、レポートとして報告を受けるため、いち早く被害状況を把握することができます。
DMARCは受信サーバにも設定されていないと、適用することができないこと。
また、レポート機能が個人情報の流出につながるのではと警戒されて、なかなか普及されにくいともいわれています。
前職で、自社コンテンツの運用業務を7年ほど経験しましたが、会員向けのメール疎通にはかなり苦心しました。SPF設定はもちろん、リレーメールサービスを導入して負荷分散したり、エラーメールの解析などで、無駄なメール送信を控えてブラックリストに入らないように配慮したり。一方でイベントやキャンペーン情報はマメに送信しないと、そもそも集客が見込まれないのも現実としてありました。
その頃の自分には「DKIM」や「DMARC」の知識はなく、世間的にも普及はされていなかったと思います。昔と違ってメールの認証技術の普及はかなり進んでいると思います。GmailやYahoo!メールなどクラウドメールが主流になっていることも一因としてあると思われます。
情報を正確かつ的確に送信すること、受信できること。Webビジネスにはとても重要な要素であると思います。メールの認証技術がさらに発展、普及することを願います。