今日の授業では、情報の暗号化について学びます。特に、デジタル署名とSSLの仕組み、そしてデジタル証明書の関係に焦点を当てます。これらの知識は、インターネットでの安全な通信を理解する上で非常に重要です。
黒板
授業
デジタル署名って何?
さて、今日はデジタル署名というテーマで授業を進めよう。デジタル署名って聞いたことあるかな?
うーん、何かセキュリティに関係あるやつですよね?
その通り!デジタル署名は、公開鍵暗号方式を使って、文書やデータが特定の人物によって作成されたことを証明する手法なんだ。
それって、偽造されたメールを防ぐためにも使えるんですね。
まさにその通り!デジタル署名は、送信者が誰であるかを確認するため、また、メールや文書が途中で改ざんされていないかを確認するために非常に有用な技術なんだ。
すごいですね、その署名が改ざんされていないという事はどうやって確認するんですか?
ハッシュ値とは
デジタル署名の仕組みを簡単に説明する前に、ハッシュ値について説明しよう。
ハッシュって、ハッシュドポテトのハッシュですか?
そうだよ。”Hash” は元々「切り刻む」や「細切れにする」といった意味があるよね。暗号化で使われる、ハッシュ値とは、データを一定のルールに基づいて「細切れにした値」、つまり短い文字列に変換することを指すんだ。
なるほど。データもポテトも細切れにしているからハッシュと名付けられているんですね。
そしてその短い文字列は、元のデータが何であったかを特定するための一種の指紋とも言えるんだ。
指紋ですか?細切れにしちゃったら、誰の指紋かわからないような気がしますが。
その辺はポテトと少し違うところで、デタラメなようなちゃんと、数学の仕組みを使っているんだ。ハッシュ値は元の文書の内容から一定のルールで計算されていて、もし文書が少しでも変われば、ハッシュ値も大きく変わるという性格を持つんだ。
それってどういう意味ですか?
例えば「こんにちは」という文書があったら、それに対応するハッシュ値が「XYZ123」だとしよう。もし文書が「こんばんは」に変わったら、ハッシュ値は全く違うもの、例えば「ABC789」になる。つまり、文書が少しでも変わると、ハッシュ値も大きく変わるのだ。
なるほど、それがどうセキュリティに役立つんですか?
ハッシュ値の重要な特徴は、元の文書から計算されるけれど、元の文書に戻すことはできない点だ。だから、ハッシュ値が同じなら、文書も同じと確認できる。しかし、ハッシュ値から文書の内容を知ることはできない。これがセキュリティに非常に有用なんだ。
なるほど、ハッシュドポテトの味(ハッシュ値)が同じであれば、使ったじゃがいも(元の文書)も同じであると確認できるわけですね。しかし、そのハッシュドポテト(ハッシュ値)だけから、使ったじゃがいも(元の文書)が何であったかという詳細を知ることはできない、というわけですね。
その通り。送信者が文書と一緒にハッシュ値も送れば、受信者はそのハッシュ値を使って文書が途中で改ざんされていないか確認できる。もし改ざんされていたら、ハッシュ値が一致しなくなるからすぐにわかる。
デジタル署名
でも、100円ショップのハンコみたいに、ハッシュ値が簡単に複製できてしまったら、それだけでは信頼性のある署名にならないですよね?
おっ、鋭いね。ハッシュ値を送信者の「秘密鍵」で暗号化するんだ。これがデジタル署名となる。そして、この署名を文書に添付して送信する。
ここで暗号が出てくるんですね。受け取った人はどうやって確認するんですか?
受け取った人は、送信者の「公開鍵」を使って、デジタル署名を復号する。そして、その復号したハッシュ値と、受け取った文書から計算したハッシュ値が一致するかを確認するんだ。
一致したら、それは本物というわけですね。ところで、前回の授業では、文章等の情報を暗号化して相手に伝える方法を学びましたが、デジタル署名では文章自体は暗号化しないんですか?
その通り。デジタル署名は「送信者が正しい」「伝送経路上でデータが改ざんされていない」という2点を確認するもの。つまり情報セキュリテイの3要素である「完全性」や、その他4要素の「真正性」を保証するものなんだ。
なるほど。「機密性」を保証するものではないということですね。
素晴らしい!セキュリティの3要素覚えてるね。もう一つは何だったっけかな?
「可用性」ですよね。「情報セキュリティとは何か?」でしっかり学びましたからね。
デジタル署名とデジタル証明書の違い
ところで、前回の授業で認証機関により「デジタル証明書」を発行すると習いましたが、今回勉強した「デジタル署名」とどう違うんでしょうか?
どちらも公開鍵基盤(PKI)に基づいた技術だけれども、役割は違うんだ。
そこを説明お願いします
今回勉強した、デジタル署名は、特定の文書やデータが誰によって作成されたか、また、その文書が途中で改ざんされていないかを確認するためのものだよね。
はい、指紋を押すイメージですね
一方で、前回学んだ、デジタル証明書は、特定の個人や組織が信頼できるものであると証明するためのものなんだ。
なるほど、デジタル署名は文書やデータに対するもので、デジタル証明書は人や組織に対するものというわけですね。じゃあ、名前は似ているけれども、別々のものということでいいんですね。
デジタル証明書にはデジタル署名が使われているので、別々とも言えないんだ。
ん?ますます理解できなくなりました。
デジタル証明書には、その人や組織の公開鍵といくつかの識別情報が含まれていて、これが第三者機関によって検証される。この第三者機関は「認証局(CA: Certificate Authority)」と言うんだ。
認証局というのは、前回の公開鍵暗号方式のところで名前が出てきていましたね。
そう。そこで、認証局は、デジタル証明書の申請者が提供した公開鍵と識別情報が正確であることを確認した後、その情報にデジタル署名を施すんだ。
なるほど。私が証明したってことを示すために、署名をするんですね。これで、オンラインショッピングで安全に買い物ができるというわけですね。
その通り!オンラインショッピングのサイトがデジタル証明書を持っている場合、そのサイトは信頼できる第三者機関によって認証されているという証拠になる。
技術ってすごいですね。こんなにも私たちの生活を安全にしてくれるんですね。
HTTPSとSSL/TLS
最後に、SSL/TLSについて学ぼう。Webサイトを見るとときにHTTPSというプロトコルを使うことを知っているよね。
はい、HTTPSは、HTTPにセキュリティ機能を追加したものと以前の授業で勉強しました。
そう、HTTPは、Webサーバーとクライアント(Webブラウザ)の間でデータをやり取りするためのプロトコルだけど、その通信は暗号化されていない。一方、HTTPSはSSLやTLSという暗号化プロトコルを用いて、データのやり取りを暗号化するんだ。TLSはSSLの後継となるプロトコルで、今はこちらが主流だよ。
SSL?、TLS?それって、デジタル証明書とデジタル署名も関係しているんですか?
非常に良い質問だね。デジタル証明書とデジタル署名はSSL/TLS通信において、相手の認証、データの機密性、データの完全性を保つために不可欠な要素だよ。
うーん、複雑すぎてわかりません。噛み砕いて説明してください。
ごめんごめん。順番に説明するね。まず、HTTPSを使うウェブサイトは、通常、デジタル証明書を持っている。これは「サーバ証明書」と呼ばれるよ。
さきほど説明してくれた「デジタル証明書」ですね。これで、Webブラウザは、つなごうとしているサーバは安全であると判断するんですね。
その通り。そしてWebブラウザは、この接続でのみ有効な共通鍵を作り、証明書に含まれている、サーバの公開鍵で暗号化してサーバに送るんだ。
前回、共通鍵はその交換方法がポイントと学びましたが、サーバの公開鍵で暗号化することで、安全に交換することができるんですね。
まさにその通り!ここでやり取りされた一時的な共通鍵を用いて、Webブラウザとサーバとの間のすべてのデータ通信を暗号化するんだ。ここまでのやり取りは少し複雑だから、黒板にも書いておくよ。よく見ておいてね。
わかりました。しかし、攻撃者の技術も進化してきますよね。HTTPSだから安心と言って良いんでしょうか?
いい質問だね。確かに、HTTPSは通信が暗号化されているため、一般的には安全とされています。しかし、それが全てのセキュリティリスクからあなたを守るわけでないんだ。
じゃあ、HTTPSでも意味がない?
まさしく、セキュリティは常に進化し続ける猫とネズミのゲームだから、学ぶことが尽きないんだよ。興味のあるうちに、 ネットや書籍で深く勉強してみてね。
黒板2
まとめ
名言解説
If you think technology can solve your security problems, then you don’t understand the problems and you don’t understand the technology. Bruce Schneier
ブルース・シュナイアーは、セキュリティに関する専門家であり、多数の著書を持つ著名な研究者です。彼は特に暗号化技術と情報セキュリティにおける人間の側面についての研究で知られています。シュナイアーは一般に、「人間が最も弱いリンクである」との考えを強調しています。
この名言は、単にテクノロジーに頼るだけではセキュリティ問題は解決しないという重要なポイントを提起しています。暗号化技術やセキュリティソフトウェアは確かに強力ですが、それらはあくまでツールであり、ツール自体が問題を解決するわけではありません。問題解決には、その背後にあるリスクや脅威、そして人間の行動に対する理解が不可欠です。
たとえば、最も堅牢な暗号化技術を使っても、パスワードが「1234」であったり、セキュリティ更新を怠っていると、それだけでリスクが高まります。また、テクノロジーは常に進化するため、今日安全だとされる方法が明日には危険である可能性もあります。
情報Ⅰの授業で暗号化について学ぶ際、技術だけではなく、その使い方やリスクについてもしっかりと理解することが大事です。暗号化は非常に強力なツールですが、それだけでは完全なセキュリティは実現できません。しっかりとした知識と理解を持つことで、テクノロジーをより効果的に、そして安全に使用できるようになります。もちろん、この授業はその第一歩です。好奇心を持って、さまざまな側面から学びましょう。
問題
「クイズをスタート」のボタンをクリックすると、5問出題します。さあチャレンジ!
編集者ひとこと
今回の学習内容は、「情報Ⅰ」の教科書ではあまり詳しく書かれていないところなので、完全似できなくても問題はないかもしれません。しかし、httpsという身近な通信(このサイトもhttpsで公開しています)について、理解するにはどうしても避けてと売れないと思い、頑張って解説してみました。
今回、極力平易な表現で記載したため、正確性にかける部分があるかもしれません。より詳しく正確な理解が必要な場合は、以下のより専門的な以下のサイトを参照願います。
https://qiita.com/angel_p_57/items/897bf94160be8d637585
<RANKING>
高校教育ランキング