メール認証概論

この記事は Email Authentication Explained の抄訳です。

メール認証の勉強なんて、やる気が起きません。ごちゃごちゃした略称が並んでいて、ITの専門家にしか分からない文献がよく出てきますから。でも、メール認証の肝のところは、たいして難しくありません。みんなすぐに分かるようになります。

スパム業者やフィッシング詐欺師は依然として有害なメールを撒き散らしているので、メール認証の重要性は増すばかりです。ほとんどのメールサーバは、メッセージを宛先に届ける前にあの手この手でメッセージを確認しています。ちゃんと認証されていないメッセージは、おそらく送信に問題が生じて、届かなかったり迷惑メールに分類されたりしてしまうでしょう。

以下では、一番大切な認証プロトコルを3つ、例を交えながら平易な言葉で解説します。

SPF – Sender Policy Framework

まず、一番古い認証プロトコルの Sender Policy Framework (SPF) から始めましょう。SPFは、送信者が自分の正当性を示せる認証プロトコルです。公式のレターヘッドにプリントされた手紙なら、まず間違いなくその手紙は本物だと分かるでしょう。SPF認証を通過したメールは、いわば配達証明郵便のようなものです。追跡用の番号が与えられているので、郵便局に電話をすれば誰が送ったものかが分かるようになっています。

SPFは、差出人の住所を確かめるのにも似ています。手紙に書かれた会社名と差出人の住所が整合していないなら、当然怪しいですよね。こういったチェックは、手紙や郵便の場合は不要かもしれませんが、なりすましが非常に簡単な電子メールの場合は必須です。

SPF認証では、メールに書かれた送信元ドメインのDNSに受信サーバが問い合わせて、送信元ドメインの利用が許可されているIPアドレスのリストを取得します。もしも送信元サーバがリストに見つからないときはほぼ間違いなく偽物なので、SPF認証がNGになります。

DKIM – DomainKeys Identified Mail

DomainKeys Identified Mail (DKIM) は、比較的新しい、強力なメッセージ認証の方法です。DKIMは封筒の封蝋のようなものです。信頼性の高い郵便インフラができあがる前は、送り手だけが持つ印章指輪で封蝋に型押しして、手紙が本物であることを立証していました。硬くなった蝋が羊皮紙にくっついたので、バレないように手紙を改ざんするのはまず無理でした。

印章指輪は送信者固有のものなので、封蝋に型押しされた印章は署名の役割を担っていました。手紙を受け取った人は、封筒を調べれば送り手が本物かどうか、また同時に手紙の中身が改変されていないかを確かめることができたのです。

Envelope with sealing wax.

手紙の送り手が本物で配達中に内容が変わっていないことを確かめる他の方法を考えてみましょう。鍵付きの引き出しと鍵付きの蓋が備わった箱をイメージしてみてください。引き出しは送信者の鍵でのみ施錠することができます。この鍵を送信者の秘密鍵と呼びましょう。

一方、蓋は自由に利用可能な鍵で施錠・解錠できるとします。リクエストすれば、だれでも合鍵を手に入れることができます。それどころか、送信者は経由するすべての郵便局に合鍵を配っています。この鍵のことを公開鍵と呼びましょう。

蓋の下はガラス板で仕切られています。蓋の鍵を開ければ、だれでもガラス越しに郵便物を調べることができます。でもガラスを割らずに、そして痕跡を残さずに中身を改ざんすることはできないようになっています。郵便物を調査するときは、公式のレターヘッドが目視確認できますし、ガラスが割れていないこと、つまり引き出しは送信者だけが持つ鍵によって施錠されたままであることが確認できます。

DKIMは上記の箱のような仕組みになっています。送信者はメッセージのヘッダ部分をエンコードする秘密の暗号鍵を持っています。公開鍵は分散型の公開インターネットレジストリであるDNSで利用可能になっています。メッセージが受信者に届くまでに経由するサーバはすべて公開鍵にアクセスでき、ヘッダーを解読してメッセージの正当性を確認できます。それから鍵付きの箱の場合と同様に公開鍵でヘッダを暗号化することはできません (引き出しに鍵を掛けることができません)。暗号化には秘密鍵が必要です。

他の郵便物になぞらえることもできます。SPF認証されたメールを配達証明郵便とするなら、DKIM認証されたメールは書留郵便で、配達の途中ずっと厳重に保管されていて改ざんを防いでくれます。

DMARC – Domain Message Authentication Reporting and Conformance

だれかが二重ロック付きの例の箱をあなたに送るとしましょう。配達業者は荷物を届ける前に最後のチェックを行います。業者は「配達適合ポリシー」を参照します。そのポリシーには、荷物は信頼できる住所から送られていなければならない、と書かれています (SPF)。

また、秘密鍵を持っていて信用のできる発送元から、荷物がずっと施錠された箱の中にあり、移動中に中身が変わっていないことを検証できなければならない、とも書かれています (DKIM)。さらにポリシーには、SPFとDKIMをパスしなかった場合には、配達業者が荷物を隔離して、送信者に対して侵害があったことを知らせなければならない、とも書かれています。

このポリシーは Domain Message Authentication Reporting and Conformance (DMARC) のポリシーに類似しています。DMARCはSPFとDKIMを元にした最新の認証手段です。これは、どの認証方法でチェックするか、認証に失敗した場合はどうするか、といった指示を送信者から受信者に知らせる手段を提供します。指示には、疑わしいメッセージとして隔離しなさい、メッセージを完全に拒否しなさい、などがあります。

ところで、なぜ送信者によってはDMARCの認証に失敗したメッセージも配信したいと思うのでしょうか。実はDMARCはフィードバックループの機能も提供していて、送信者は自分のドメインから送信されたと思われるメールがDMARCのポリシーに適合しているかを監視できるようになっています。MicrosoftやGmailのようなプロバイダーにしてみれば、長期にわたって多くの外部システムから送信元が hotmail.com や gmail.com ドメインのメッセージが送り続けられていることになります。

急に厳格なDMARCポリシーに変更すると多くの送信者に悪影響をおよぼす可能性があるので、プロバイダーはDMARC認証に失敗したメールも届くようにしています。しかし、それも間もなく変わります

Lockbox

まとめ

上では、広く普及している3つの認証プロトコルを紹介しました。

  • SPFは、送信者の身元を認証するために、差出人の住所を検証するのと同様のチェックを行います。
  • DKIMは、送信者の身元を認証するだけではなく、メッセージの中身が変わっていないことを鍵の掛かった箱や蝋封を用いて確認します。
  • DMARCは、配達業者です。メッセージを届ける前にSPFやDKIMの要求を満たしていることを確認します。

メール認証が意味するもの

DMARCがあれば、ドメイン所有者は受信者の”From”に現れるアドレスを完全にコントロールできるようになります。大規模メールボックスプロバイダの Yahoo! や AOL は既に厳格なDMARCポリシーを実施しています。このプロバイダが所有するドメインから送られたと思われるメールのうち、認証に失敗したものは破棄されてしまいます。Gmail と Microsoft も間もなく同じようなDMARCポリシーを実施する計画です。

ですから、DKIMとSPFの設定をしていないドメインからは、メールを送信しないでください。もしクライアントの代わりにメールを送信するのであれば、クライアントがそれを可能にする正しいDNSレコードを登録していることを確かめてください。受信者にしてみれば、こういった認証技術が広く受け入れられるようになるとフィッシングメールや迷惑メールが減ることでしょう。これは良いことですよね。

関連記事