鍵マークの裏側で動くハイブリッド暗号
12分49秒 | セキュリティ暗号FE
基本情報技術者試験の頻出テーマを解説した音声コンテンツです。
トランスクリプト(字幕テキスト)
さて、今日の深掘りへようこそ。テーマは私たちのデジタルライフの安全を支える暗号化です。 この世界にはまあ、大きく分けて2つの流派がありますよね。一つは共通鍵暗号。 とにかく処理が早くて効率的。ただ、ええと、たった一つの弱点がある。 それは最初の鍵をどうやって安全に相手に渡すのかという問題です。 鍵配送問題ですね。通信を始める前にまず安全な方法で鍵を共有しないといけない。 でも、その安全な方法がそもそもまだないっていうそういうジレンマで。 鍵そのものが通信途中で盗まれたらもうどんなに強固な暗号も意味をなさなくなってしまいますからね。 まさに。そしてもう一つの流派が公開鍵暗号。 こちらは鍵の受け渡しは非常に安全に設計されている。でも、その代償として処理がものすごく遅い。 速さをとるか安全性をとるか。一見するとなんか究極の選択みたいに聞こえます。 でも、もし両方のいいところだけを組み合わせるとしたらどうでしょう。 今回はその賢い解決策、ハイブリッド暗号方式の仕組みを皆さんが毎日使っているインターネットの裏側で解き明かしていきましょう。 ねえ、今日のゴールはですね、ネットショッピングなんかで個人情報を守っているSSL TLSという技術を例に、 このハイブリッド暗号がどう機能しているのかを明らかにすることです。 SSL TLSは、まあ、セキュア・ソケッツ・レイヤーとかトランスポート・レイヤー・セキュアの略でして。 まさに今からお話しするハイブリッド暗号を使ってブラウザとサーバー間の通信を安全に確立するための。 お約束事、プロトコルってことですね。なるほど。SSL TLSという大きなルールの中でこのハイブリッド方式が使われていると。 その通りです。特に注目したいのは安全だけど遅い公開鍵の役割が終わって。 高速な共通鍵へと主役がバトンタッチするその鮮やかな瞬間です。 このバトンの受け渡しこそが現代のインターネットの安全性のもう確信と言っても過言じゃないんですよ。 では、早速その舞台裏を覗いていきましょう。私がショッピングサイトのURLを打ち込んで。 エンターキーを押したまさにその瞬間からお願いします。一体水面下では何が起こっているんでしょうか。 はい。まずあなたがアクセスしたウェブサイトのサーバーからあなたのブラウザへある重要なデータが送られてきます。 それが今日の最初の登場人物、サーバーの公開鍵です。 サーバーの公開鍵ですね。その名の通り公開されているってことは、これはもう誰でも手に入れられる鍵っていうことですか。 だとしたらなんかちょっと不安な気もしますけど。あ、良い質問ですね。 その通りで、この鍵は文字通り世界中に公開されていて誰でも入手可能です。 でも心配はいりません。公開鍵暗号の面白いところは、この鍵は閉めることしかできない一方向の性質を持っている点なんです。 閉めることしかできない。ええ。そしてこの公開鍵で閉められたものを開けられるのは。 対になる秘密鍵を持っているサーバー自身だけなんですね。 なるほど。鍵が2つで一組になっているんですね。 1つは誰でも使える閉める専用の公開鍵。で、もう一つはサーバーだけが持っている開ける専用の秘密鍵。 まさに。しかもサーバーが送ってくるのはただの公開鍵じゃないんです。 その公開鍵が本物だってことを証明するデジタル証明書という、いわば身分証明書とセットで送られてきます。 身分証明書ですか。ええ。この公開鍵は確かにこのウェブサイトのものですと第三者も信頼できる機関。 まあ、いわゆる認証局ですね。CAが保証してくれているわけです。 だから偽サイトが私は本物ですよって偽の公開鍵を送ってきても、この身分証明書がないとか偽造されていれば。 ブラウザがこのサイトは信頼できませんって警告を出してくれる仕組みになっています。 ああ、なるほど。私たちが時々目にする「この接続は安全ではありません」っていう警告の裏には。 そういう身元確認の失敗があったわけですね。へえ、よくできてますね。 そうなんです。では、ここで資料にある比喩を使いましょう。 この身分証明書付きの公開鍵は誰でも閉めることはできるが開けられるのはサーバーだけという。 特殊な南京錠がついた信頼できる機関の保証印付きの金庫だと考えてみてください。 ステップ1はまずサーバーがこの空っぽの金庫をあなたのブラウザに送り届けるところから始まります。 なるほど。サーバーから一方的に身元保証付きの金庫が送られてくる、と。 でも、これだけではまだ何も始まらない。この空っぽの金庫、ブラウザ側はどう活用するんでしょうか。 ここがハイブリッド暗号方式のまさに心臓部です。あなたのブラウザは金庫を受け取ると次に。 あるものをその場で生成します。それはこの通信のために使う使い捨ての合言葉です。 使い捨ての合言葉。サーバーから送られてくるんじゃなくて、ブラウザが自分で作るんですね。 そこが極めて重要なんです。この合言葉こそが後で通信の主役になるブラウザが作った共通鍵なのです。 通信のたびに毎回完全にランダムな新しいものが作られます。 同じサイトに1秒後にもう一回アクセスしてもまた別の合言葉が作られる。 それは徹底してますね。なぜそこまで使い捨てにこだわる必要があるんですか。 それはですね、万が一一つの通信の合言葉、つまり共通鍵が解読されたとしても。 被害がその1回きりの通信に限定されるからです。過去の通信とか未来の通信の安全は全く脅かされない。 これを前方秘匿性って言うんですけど、非常に強固なセキュアの考え方ですね。 なるほど。一番大事な鍵は相手からもらうんじゃなくて、自分で作って、しかも一回ごとに使い捨てる。 考え方も面白いなあ。そしてブラウザはその作ったばかりのほやほやの合言葉をどうするか。 先ほど受け取ったサーバーの金庫に入れまして、蓋を閉めて、カチッと鍵をかけて、サーバーに送り返します。 おお、つまり、これから先の通信で一番大事になる合言葉、 つまり共通鍵が配送中は誰にも見られないあの頑丈な金庫の中に入っている状態だ。 その通りです。この金庫は先ほど説明したようにサーバーが持つ秘密鍵がなければ絶対に開けられません。 たとえ通信の途中で悪意のある第三者、まあいわゆる中間者がこの金庫を盗み見ても。 中身の合言葉を知ることは不可能です。これがもしハイブリッド方式じゃなかったら。 もしこの仕組みがなければ中間者攻撃ের危険にさらされますね。 通信の途中にいる攻撃者がサーバーになりすましてあなたと通信し、同時にあなたになりすましてサーバーと通信する。 そうなるとあなたの送る情報もサーバーからの情報もすべて攻撃者に筒抜けになってしまいます。 この一瞬の鍵交換こそがそうした攻撃を防いで現代のデジタル経済全体の信頼を支える目に見えない土台になってるんですよ。 なるほど。共通鍵暗号の最大の弱点だった鍵の配送問題を、公開鍵暗号の安全に物を届けられるっていう長所だけを使って。 この瞬間に見事に解決したわけですね。ええ。安全な金庫を使って一番大事な合言葉を届ける。 このステップが完了すればもう準備は万端です。主役交代の時が迫っています。 さあ、いよいよクライマックスです。ブラウザから送られた大事な合言葉の入った金庫が、今、サーバーに無事到着しました。 ええ、無事到着しました。サーバーは自分が元々持っている自分だけの秘密鍵を使ってその金庫を開けます。 そして中からブラウザが作ってくれた合言葉、つまり共通鍵を取り出すんです。 取り出した!その瞬間何が起きるんですか。 この瞬間、歴史が動きます。サーバーとあなたのブラウザ、通信している両方が。 まったく同じ共通鍵を誰にも知られることなく安全に手にしたことになります。 ここでバトンが渡された。そういことか。あれだけ手間の掛かった公開鍵暗号。 つまりあの金庫のやり取りの役目は、このたった一つの共通鍵を安全に確実に相手に届けること、ただそれだけだったんですね。 まさにその通りです。壮大な準備段階はここで終了。公開鍵暗号の役割はもう終わりました。 ここからは主役交代です。さあ、バトンは確かに渡された。 時間の掛かる公開鍵暗号の区間は終わり、ここからは両者が共有した共通鍵の独壇場だ。 ええ、ことからは実際のデータ通信はすべて両者が共有したたった一つの共通鍵を使った。 非常に高速な共通鍵暗号に切り替わります。 これによってクレジットカード番号とか住所といった個人情報はもちん、 重たい画像や動画、ページのレイアウト情報といったあらゆるデータを安全かつスピーディーにストレスなくやり取りできる状態が生まれるのです。 いやー見事な連携プレーですね。振り返ってみると、最初の手間は掛かるけれど非常に安全なステップ。 つまり金庫のやり取りがあったからこそ、その後のスピーディーで快適な通信が保証される。 遅い公開鍵暗号と速い共通鍵暗号がお互いの長所を最大限に活かして短所を完璧に補い合っている。 まさに安全な通信路を確立するための設営を公開鍵暗号が担当して。 実際のデータの輸送を共通鍵暗号が担当する。美しい分業体制と言えるでしょうね。 なんか重装備の走行車でまず安全なルートを確保して、そのあとはスポーツカーで物資を高速ピストン輸送するような。 そんなイメージですね。その例えは分かりやすい。 今解説してもらったサーバーが身元保証付きの金庫を送ってきて、こちらで使い捨ての合言葉を作って。 その金庫に入れて送り返して、という一連の流れ。 言葉にすると少し複雑ですけど、これが私たちがアドレスバーにURLを打ち込んでエンターキーを押した瞬間。 ほんの数ミリ秒という瞬きする間もない時間で行われているんですね。 そうなんです。人間が知覚できないほどの速度でこの複雑な鍵の交換セレモニーが完了しています。 そして、その複雑なやり取りが無事成功しましたよという証が、実は皆さんのブラウザに常に表示されているんです。 え、どこでしょう。URLが表示されているアドレスバーの横にあるあの小さな鍵のマークです。 あ、確かにありますね。南京錠のアイコンが。はい。あれがそうなんですか。 あの小さなアイコンこそが、私たちの見えないところでサーバーの身元確認、公開鍵を使った金庫の受け渡し。 そしてブラウザが作った共通鍵の安全な配送がすべて完了し、見事なバトンパスが成功しました。 これよりこの通信は高速かつ安全な共通鍵暗号で守られていますという壮大な物語の結果を伝える証明書なんです。 あのなにげなく見ていた鍵マークにそんな意味が込められていたとは。これからはあのマークを見る目が変わりそうです。 ああ、今この瞬間も金庫と合言葉が超高速で行き来して私の安全が守られたんだなって。 まさに。その認識を持って頂けると今日の私たちの話は大きな意味を持ちます。 デジタル社会の信頼とか安心は、こうした目に見えないしかし極めて巧妙な仕組みの積み重ねによって支えられているわけです。 オンラインで安心して買い物ができたり、友人とプライベートなメッセージをやり取りできたりするその裏側には、 こんなにも緻密でスピーディーな鍵の連携プレーが存在していました。 一方がもう一方を信頼して役割を分担して最終的なゴールを達成する。 なんだか人間社会の優れたチームワークを見ているようでもありますね。 ええ、そしてこの信頼の連鎖は、認証局、サーバー、そしてあなたのブラウザという三者が。 それぞれの役割を完璧にこなすことで成り立っています。一つでも欠けたら安全な通信は成立しませんからね。 では最後にもう一つ。リスナーのあなたにも考えてみてほしいことがあります。 私たちのデジタルな生活の中で、今日取り上げたハイブリッド暗号のように、 見知らぬ相手と安全に何かを始めるために目に見えないところで超高速に行われている、 信頼を確立するための交渉は他にはどんなものがあるでしょうか。 私たちがデジタルの世界で当たり前のように享受している利便性の裏側には、 どんな見えないプロトコルや準備が隠されているのか。少し想像を巡らせてみるのも面白いかもしれませんね。
このコンテンツは Web society で視聴・学習できます。