アドレスバーの鍵マークは何を守っているのか — HTTPS と暗号化

読了 5分

ブラウザのアドレスバーの左側には、小さな鍵マークがあります。ふだんは目に入りませんが、ときどき「この接続は安全ではありません」という警告が出ると、そこで初めて気になります。前回の記事で、Cookie やトークンは事実上の入場証なので、やり取りの途中で誰かに横取りされると危ないと話しました。その危険を防いでくれるのが、まさに鍵マークが指す HTTPS です。

さらに、個人情報の漏洩のニュースも忘れたころに聞こえてきます。今回の記事では、HTTPS が何を守るのか、暗号化はどう動くのか、そしてサービスが私たちのパスワードをどう保管しているのかを、コードなしで解きほぐしていきます。

HTTP は葉書、HTTPS は封をした手紙です #

前回、ブラウザとサーバーが HTTP という約束で会話すると話しました。ところが、ふつうの HTTP には弱点が一つあります。やり取りする内容がそのまま見えてしまう、という点です。

葉書を思い浮かべると近いです。葉書は配達される途中で経由する人なら誰でも内容を読めます。HTTP で送ったパスワードやカード番号も同じで、途中の経路にいる誰かがのぞき見る余地があります。カフェの共用 Wi-Fi のように、大勢が一緒に使う道ならなおさらです。

HTTPS は、この葉書を封をした手紙に変えます。内容を暗号で封じて送るので、途中で誰かが横取りしても何の内容なのかわかりません。アドレスバーの鍵マークは「このサイトとの会話が封じられている」という印で、「安全ではありません」という警告は、封のされていない葉書でやり取りしているという意味です。

暗号化は、約束された錠前と鍵です #

封の正体が暗号化です。暗号化とは、内容を決められた規則でかき混ぜて、正しい鍵がなければ読めない文字の塊に変えることです。

HTTPS で接続した瞬間、ブラウザとサーバーは、二人だけが知る秘密の鍵を安全に分け合います。以後やり取りする内容は、この鍵で施錠し、同じ鍵でだけ解きます。だから誰かが通信をまるごと横取りしても、手に入るのは意味のわからない文字だけです。施錠された箱だけ奪って、鍵は手に入れていないようなものです。

この封を保証する仕組みが証明書です。サイトは信頼された機関が発行した証明書を備え、ブラウザはその証明書を確認して「いま接続した先が本当にそのサイトなのか」までを点検します。鍵マークが出ているということは、封と身元確認が一緒に行われたという意味です。

パスワードはそのまま保存しません #

通信を封じても、届いた情報をサービスがどう保管するかは別の問題です。とくにパスワードがそうです。

よくできたサービスは、パスワードを入力したそのままの形では保存しません。代わりに、片方向にだけ計算される変換を通して、元の値を読み取りにくい形に変えて保管します。この処理をハッシュ化と呼びます。ログインのときは、入力されたパスワードを同じやり方で変換し、保存された値と一致するかどうかだけを比べます。変換された値から元のパスワードを逆にたどるのは、とても難しいのです。

だから、たとえデータベースがまるごと漏れても、パスワードの原本がすぐに表に出るわけではありません。パスワードを忘れたとき、サービスが元の値を教えられず、再設定だけを案内するのもこのためです。サービスでさえ、私のパスワードの原本を持っていないのです。

それでも漏洩は起きます — だから 2 要素認証 #

どれだけしっかり守っても、パスワードが漏れることはあります。複数のサイトで同じパスワードを使い回したり、本物そっくりに作られた偽の画面にだまされて自分で入力してしまったりする場合です。

そこで出てきたのが 2 要素認証です。よく 2FA と呼ばれます。パスワード一つだけに頼らず、ショートメッセージで届くコードや認証アプリが見せる数字のように、二つ目の確認をもう一段置く方式です。パスワードが盗まれても、二つ目の関門を越えられなければ入れません。錠前を二つ付けておくようなものです。

なぜ非開発者が知っておくと仕事が楽になるのか #

  • 鍵マークと警告を正確に読めます。 「安全ではありません」という警告は、サイトが封なしでやり取りしているという合図なので、そういうところに機密の情報を入れないと判断できます。
  • 漏洩のニュースを落ち着いて理解できます。 「パスワードを再設定してください」という案内がなぜ出るのか、同じパスワードを別のところで使い回すとなぜ危ないのかが納得できます。
  • セキュリティの要望に協力できます。 2 要素認証をオンにしてほしい、HTTPS を必ず適用してほしいという要求が、面倒な手続きではなく明確な理由のある対策だとわかります。

まとめ #

今日は、鍵マークが指す HTTPS を見てきました。HTTP が内容の見える葉書なら、HTTPS は暗号で封じた手紙で、その封の正体が暗号化です。これにパスワードをそのまま保存しないハッシュ化、そしてパスワードが漏れても食い止める 2 要素認証まで加わって、私たちの情報を何重にも守ります。

Cookie やトークンが入場証だという点がまだあいまいならログインするとなぜずっとログイン状態のままなのかを、こうした情報を狙う攻撃がどう発展してきたかが気になればコンピューターウイルスとランサムウェアの歴史を一緒に読んでみることをおすすめします。

X