← メディア一覧

なぜ「開いた南京錠」で秘密を守れるのか

14分12秒 | NWセキュリティFE

基本情報技術者試験の頻出テーマを解説した音声コンテンツです。

トランスクリプト(字幕テキスト)

こんにちは。D、ディープ・ダイブへようこそ。今回はですね、僕たちがもう毎日使っている インターネットの安全、その、まあ心臓部を支えているある魔法みたいな技術の裏側を一緒に探っていきましょう。 あなたが今この瞬間も何気なくその恩恵を受けている技術ですね。そうですよね。 メッセージアプリ、オンラインショッピング、ネットバンキングとか。これら全てがこの技術なしには成り立たないんです。 その名も公開鍵暗号。もう名前からしてちょっと不思議じゃないですか。ええ。 公開してるのに暗号ってどういうことなんだ、って。これ誰もが一度は思う素朴な疑問ですよね。 ええ、その一見矛盾してるような名前にこそ、この技術の確信とあと面白さが詰まっているんです。 今回僕たちが手元に置いている資料がですね、この複雑な技術をある受験生とメンターの対話形式で ものすごく分かりやすい物語として解説してくれてるテキストなんです。はい。 で、今回のミッションはこの物語に出てくる特殊な南京錠、この例え話を頼りに公開鍵暗号がどう動いているのか、 そしてその最大の弱点、つまり急所はどこにあるのかを一緒に解き明かしていくことです。 この技術の根っこにあるアイデアがいかにシンプルでいかにエレガントか、きっと驚かれるはずですよ。 さて、その特殊な南京錠の話に入る前に、そもそもなんでそんな面倒なものが必要になったのか、 というところから少しだけ。昔ながらの方法だと、どうやって秘密のメッセージを送ってたんでしょうか。 最も単純なのは共通鍵暗号っていう考え方ですね。共通鍵。はい。 これはすごく簡単で、送る側と受け取る側が全く同じ一つの鍵を持っているんです。 箱に手紙を入れて、その鍵でロックする。受け取った側は持っていた同じ鍵で開ける。非常に直感的です。 ああ、なるほど。家の鍵とかと一緒ですね。でもそれだと根本的な問題がありません? お、おろすとおろお、遠くにいる相手にその同じ鍵をどうやって安全に渡すんだ、って。 まさにそこが鍵配送問題と呼ばれる古くからの難問なんです。もし鍵を安全に送る方法があるんだったら、 はあ。最初からその方法でメッセージ自体を送ればいいじゃないか。堂々巡りです。で、なんか鶏が先か卵が先かみたいな話ですね、これ。 そうなんです。このどうしようもないジレンマを解決するために全く新しい発想が必要になったと。 その通りです。そこで登場するのが今回の資料の主役、開いたままの南京錠という、まあ、とんでもないアイデアなんです。 ここからが本題ですね。じゃあ資料の物語に沿って想像してみましょう。あなたは今、遠くにいる大切な人に 誰にも読まれたくないラブレターを送りたい、と。はい。でも会って直接鍵を渡すことはできない。 さっきのジレンマの状況ですね。ここで相手があなたに驚くべきものを送ってきます。はい。 それは鍵ではなくて、カチッと開いた状態の南京錠なんです。それも好きなだけ持っていけとばかりにたくさん。 開いた南京錠を送ってくる。しかもこの南京錠がものすごく特殊なんですよね。 ええ、ここがこの物語の鍵となる部分です。この南京錠は閉めるのは誰でもできる。指でカチッと押すだけ。でも、 はい。開けることはこの南京錠を送ってきた本人だけが持っているたった一つの特別な鍵がないと絶対にできない、 という性質を持っています。ということは、僕はその送られてきた南京錠を一つ取ってラブレターを入れた箱に自分の手でカチッとロックする。 そうです。そして重要なのは一度ロックしたら、もうあなた自身にも開けられない。あ、僕にも開けられないんだ。 ええ。途中で手紙を運ぶ人にももちろん開けられない。世界でたった一人、あの特別な鍵を持っている本来の受取人だけがその箱を開けられるというわけです。 うわ、すごい。さっきの鍵をどうやって渡すかっていう問題が見事に消えてますね。渡す必要がないんだから。ええ。 これが公開鍵暗号の正体か。この例え話を専門用語と結びつけてみましょうか。ええ。 まず、世界中に配ってもいい開いた南京錠。これがいわゆる公開鍵です。ああ、公開鍵。 誰でもメッセージを閉める、つまり暗号化するために使います。なるほど、だから公開鍵なんですね。 誰でも使って僕にメッセージをロックしてくださいってことか。そういうことです。そして自分だけが厳重に保管する、その南京錠を開けるための本物の鍵。 これが秘密鍵。その通りです。暗号化された箱を開ける、つまり復号するために使います。このペアの役割分担は絶対です。 絶対。南京錠、つまり公開鍵は閉める専門。本物の鍵、秘密鍵は開ける専門。この役割が逆になることはありません。 この非対称性こそが安全の根幹なんです。いやあ、やっと腑に落ちました。公開鍵っていう名前がずっと誤解の元だったんですよ。 と言いますと? あれは鍵っていうより公開南京錠とか公開ロックって呼ぶべきだったんだ。そう考えれば公開されてるのになぜ安全なのか一発で分かりますね。 ええ、まさに。私のこの南京錠を使って箱を閉めて送ってくださいねと。そうすればその箱を開けられるのはペアとなる秘密の鍵を持つ自分だけ、ということになりますから。 うーん。この発想の転換は暗号の歴史における一大革命でした。これは完璧なシステムに見えますね。何かを隠すんじゃなくて、むしろ積極的に配ることで安全を確保するなんて本当に面白い。 でも待ってください。はい。今話しながら考えてたんですけど、ここに、とんでもなく大きな穴がある気がするんです。ほう。 どんな穴ですか? えっとですね、例えば僕が銀行と大事なやり取りをしたいとするじゃないですか。ええ。 銀行にあなたの南京錠、つまり公開鍵をくださいって頼む。銀行ははいどうぞって僕に南京錠をくれる。 僕は自分の口座番号とかパスワードを箱に入れて、その南京錠でロックして銀行に送る。ここまでいいですよね。ええ、完璧な流れです。 でも、僕が受け取ったその南京錠が本当に銀行のものだってどうやって分かるんですか? なるほど。 もし僕と銀行の間に悪いハッカーが割り込んでいて、銀行からの本物の南京錠を横取りして代わりにはハッカー自身の南京錠を僕に、これが銀行のですって渡してきたら。 続けてください。僕はそれが偽物だなんて気づかずに自分の大事な情報をそのハッカーの南京錠でカチッとロックして送ってしまう。 その箱は本物の銀行には開けられない。開けられませんね。開けられるのはその偽の南京錠の持ち主であるハッカーだけだ、ってことになりませんか? その通りです。あなたは今この方式の最大の急所、致命的な弱点を自力で突き止めました。やっぱり。それがまさになりすまし、です。 サイバーセキュリティの世界では中間者攻撃とも呼ばれます。うわあ、ゾッとする。せっかく誰にも開けられない頑丈な箱を用意しても渡す相手を間違えてたら全く意味がないどころか、むしろ情報を自分から差し出してるようなものじゃないですか。 まさに。これは単なる例え話ではなく、実際の例えばフィッシング詐欺などで使われる手口の根源にある原理なんです。ああ。 あなたが普段使っているショッピングサイトそっくりの偽サイトを想像してみてください。そのサイトにアクセスした瞬間、あなたのブラウザは安全な通信を始めましょうとサイトから南京錠、公開鍵を受け取ります。 もしそれが偽サイトを運営する詐欺師の南京錠だったら。あ、僕は本物のサイトだと思い込んで、クレジットカード番号をその偽の南京錠で暗号化して送ってしまう。 そうなりますね。情報は全部詐欺師に筒抜けだ。僕たちが毎日見ているブラウザのURL欄の横にあるあの小さな鍵マーク、あれが意味するのはまさに、 今あなたが受け取った南京錠は本物ですよっていう保証ってことなんですね。ご名察です。その保証がなければあの鍵マークは表示されません。 公開鍵暗号における最大のチャレンジは技術そのものよりも、この南京錠の持ち主は本当にあなたが通信したい相手ですかという問いにどうやって確実に答えるかという点にあったんです。 じゃあ、その致命的ななりすましを僕たちは一体どうやって防いでいるんですか? 世界中のサイトの本物の南京錠リストみたいなものが僕のパソコンに入ってるとか? それは現実的ではありませんね。サイトは毎日増え続けますから。ですよね。そこで登場するのがこの物語のクライマックスとも言える解決策です。 資料では電子証明書と認証局というキーワードが出てきます。電子証明書と認証局。名前だけ聞くとまた少し難しそうですね。 大丈夫です。ここでもあの秀逸な例え話が効いてきます。はい。この認証局というのはいわば、この南京錠は本物のまるまる銀行さんのものに間違いありませんと公式に保証してくれる信頼できる第三者機関なんです。 あー、第三者。ええ。資料では市役所のような存在だと表現されていますね。南京錠の身元を保証してくれる市役所、なるほど分かりやすい。 そうなんです。あなたが銀行のサイトにアクセスすると、銀行は南京錠を裸で渡すんじゃなくて、市役所、つまり認証局が発行した身分証明書、これが電子証明書ですね、それに包んで渡してくれるんです。 身分証明書付きの南京錠ですか? ええ。その証明書にはデジタルでこう書かれています。この公開鍵、つまり南京錠の持ち主は確かにまるまる銀行です。有効期限はいつまでですと。 なるほど。そしてその証明書自体に発行元である市役所の偽造不可能な特別な電子的なハンコが押されているんです。 ってことは、僕のブラウザがやるべしことは、受け取った南京錠そのものを調べるんじゃなくて、それについてる身分証明書のハンコが信頼できる市役所のものかどうかをチェックする、ということですか? 完璧です。あなたのパソコンやスマホのOS、ブラウザには最初から世界的に信頼されているごく少数のトップクラスの市役所、つまり認証局のハンコの見本があらかじめリストとして組み込まれているんです。 へえ。だから偽物の証明書が使われれば、このハンコ、リストにない偽物ですよとか、有効期限が切れてますよとあの警告画面を出してくれるわけです。 なるほど。だからこの接続は安全ではありませんって表示が出るのか。あれは証明書に何か問題があるっていうサインだったんですね。そういうことです。 いやあ、全部つながりました。つまりこういうことですよね。まず第1段階で南京錠公開鍵と本物の鍵秘密鍵で、鍵を直接渡さなくても安全にメッセージを送る仕組みができた。ええ、これが暗号化の基本です。 でも第2段階で偽物の南京錠を掴まされるなりすましっていう超危険な弱点が見つかった。まさに最大の急所でした。 そこで第3段階の解決策として市役所である認証局が発行する身分証明書、電子証明書で南京錠の持ち主が本物かどうかを第三者が保証する仕組みが作られた。素晴らしいまとめです。 この三段構えによって今の私たちのインターネット通信の安全性はかろうじて担保されているのです。これでバラバラに聞こえた公開鍵、秘密鍵、電子証明書、認証局といった用語が本当に一つのストーリーとしてつながりましたね。 ええ。どんなに複雑な技術も優れた物語や比喩を通すことでその本質がすっきりと見えてきます。なぜその技術が必要になったのかという問題意識からたどることが理解への一番の近道ですね。 本当にそうですね。では今回の探求を最後にまとめておきましょう。まず公開鍵暗号の公開鍵は誰でも閉められる南京錠と考えるのが一番分かりやすい。このイメージを持つだけで誤解がかなり解けます。 そして公開鍵はあくまで閉める暗号化の専門、秘密鍵は開ける復号の専門という絶対的な役割分担があること。この非対称性がキモです。 そしてその最大の弱点はなりすましであり、それを防ぐのが電子証明書と認証局という南京錠の身元を保証する仕組みであること。この信頼の連鎖が現代のデジタル社会の土台となっているわけです。 いやあ今回も面白かったです。ありがとうございました。こちらこそ。ですが最後に一つだけ、あなたの思考をさらに深めるための少しいじわるな問いを投げかけてこの話を終わりにしたいと思います。 お、何でしょう面白そうですね。今回は秘密を守るために南京錠を使いましたよね。誰でも使える南京錠公開鍵で閉めてもらい、自分だけが持つ秘密の鍵で開ける。これが暗号化でした。 はい、そうでした。ではもしこの使い道をそっくりそのまま逆にしたら、何が起きると思いますか? 逆ですか? つまり閉めるのが一人しかできなくて、開けるのは誰でもできる。えっとそれは、 自分しか持っていない秘密の鍵でしか閉められない箱。そうです。そういう箱を考えてみてください。その箱はあなたの公開鍵、つまりあの南京錠を持っている人なら誰でも開けることができる。 はあ。さてこの奇妙な箱は一体何を証明するために使えるのでしょうか。自分しか閉められない箱ということは、その箱がちゃんと閉まっているという事実自体が、この箱は間違いなくあの人が閉めましたっていう証明になる。 ほう。手紙の署名みたいなものか。御名答。それこそがデジタル署名というもう一つの魔法の正体なんです。あー。秘密を守るのではなく、自分の署名をするための技術。今回の話とまさにコインの裏表の関係にあります。 この話の続きはまた次の機会に。

このコンテンツは Web society で視聴・学習できます。