table of contents
本連載について
みなさんこんにちは。Deep Tech Mediaは現在解決が困難な社会課題を、技術によって解決し、より豊な社会を作りたいという熱い思いを持つすべての人のための社会課題×技術特化型メディアです。
中でもこちらの連載では、特定の技術が特定の社会課題を解決できるのか、徹底的に調査して一つの記事にまとめることで、より豊かな社会を作るという考えを軸に、技術と社会課題への理解を深める機会を提供しています。
今回はDeep Techとして「量子暗号通信」、社会課題として「量子コンピュータによる通信のハッキング」を取り上げます。既存のコンピュータの性能を圧倒的に上回るとされる新たなコンピュータ「量子コンピュータ」に昨今注目が集まっていますが、量子コンピュータがもしも悪用された場合にどのような危険が潜んでいるのか、その危険を量子暗号通信で回避できるのか、考えていきます。
SSL通信がドメインのなりすましを防ぐ
SSL通信とは
このようななりすましに対する対策として、「クリックするURLの先頭がhttpかhttpsかを確認する」というわかりやすい見分け方があります。httpの末尾にsのついているURLであれば、クリックして悪意のある第三者のページが表示されることがないと保証されています。このような保証を実現してるのが「SSL通信」という技術です。
SSL通信が「なりすましを防ぐ」仕組み
それでは具体的に、SSL通信を用いることでどのようにドメインのなりすましを防ぐのかを解説します。先ほどの例に引き続き、あなたがdeep tech mediaのメインページ(https://www.deeptechmedia.jp/)にアクセスするためにURLをクリックしたときを考えます。今回は、インターネット上に悪意のある第三者がおり、あらゆる技術を駆使したハッキングにより、サーバーAではなくそっくりページが保存されているサーバーBにアクセスしてしまったと仮定します。このままでは、サーバーBからそっくりページの情報を取得して自分のパソコンに表示させてしまいます。しかしここですぐにページを表示させないのが「SSL通信」なのです。
「SSL通信」では、今回のように悪質なデータを持つサーバーBにアクセスしてしまった場合でも、すぐにパソコンでページを表示せず、アクセスしたサーバーが本当にサーバーAであるかどうか確かめる仕組みを持っています。まずサーバーにたどり着いたら、そのサーバーに対して、サーバーAであることを証明するデータの提出を求めます。このデータのことを「SSL証明書」と呼びます。つまり、第三者によってサーバーBにアクセスしてしまったとしても、サーバーBは当然サーバーAであることを証明するデータを持っていないため、「SSL証明書」を提出できず、その時点で通信が安全でないと判断しwebページは表示されないような仕組みになっています。
ここまで話を聞けば、httpsであることさえ確認しておけば、SSL通信によって間違ったサーバーにアクセスする心配がなくなり安全であることがお分かりいただけたと思います。しかし、量子コンピュータの登場によって、たとえhttps〜〜で始まるURLでも間違ったサーバーにアクセスしてしまう危険性があると言われています。その理由を理解するために、まず「サーバーAはどのようにしてサーバーAであることを証明しているのか」についてご説明します。
サーバーAはどのようにしてサーバーAであることを証明しているのか
サーバーAにアクセスすると、サーバーAの中にどんなファイルがあるのかを調べることができます。そのため、これまでにも説明したように、サーバーAの中に「SSL証明書」がファイルとして存在すれば、無事目的のサーバーAに辿り着けたことになります。ただし、ここで重要になるのが「SSL証明書の正当性」です。つまり、悪意のあるユーザーが運用するサーバーBにも同じようにSSL証明書を偽造できてしまうと、証明書としての正当性を失ってしまいます。これを解決するのが「第三者による署名」です。信頼できる第三者は偽造を企むユーザーに対して署名をしないため、サーバーBは署名つきのSSL証明書を所有することができず、SSL証明書の正当性が保証されています。このような「信頼できる第三者」は実際に「認証局」と呼ばれる団体がその役割を担っています。しかしここでさらに問題になるのは、「信頼できる第三者による署名すらも偽造できてしまう」危険性です。ここからは、悪意のあるユーザーが偽造できないような署名をインターネット上で実現する仕組みについて解説していきます。
信頼できる第三者が電子ファイルに署名する「電子署名」
今まで説明してきたように、「SSL証明書」はサーバーAに保存されている電子ファイルですので、PDFファイルのようにその中身を開いて読むことができます。例えば、そのファイルの中に「このファイルはSSL証明書です。このファイルを所持しているサーバーのドメインはdeeptechmedia.jpです。これは嘘ではありません。認証局より。」と書いてあるとします。今回は、あなたは認証局を知っていて信頼しているという前提で話を進めます。この場合、もし本当に認証局が記述したファイルなら、確かにサーバーAのドメインがdeeptechmedia.jpであることが証明できます。しかし「認証局より」の部分がただの文字では、誰でもパソコンで打ち込むことができてしまうので、認証局本人でしか署名できない仕組みを新たに作る必要があり、そのような電子ファイルに署名をする技術を「電子署名」と呼びます。
SSL証明書に、偽造不可能な署名をする方法
暗号文と復号について
それでは、認証局は「認証局より」とキーボードで打ち込む代わりに、電子ファイルに何を記述すればよいでしょうか。この問題を解決するためには、暗号化の技術を使います。暗号化とは、「誕生日は2023年4月9日です。」という秘密にしたい情報を「あqscが;老じゃ」のようにそれだけでは意味をなさない文に変換することを意味します。ここで、秘密にしたい元の文を平文、暗号化した後の文を暗号文と呼びます。また暗号文から元の平文をルールに従って変換することを復号と呼びます。
- 暗号化:秘密にしたい情報を一見意味をなさない文に変換すること
- 平文:暗号化する前の文
- 暗号文:暗号化した後の文
- 復号:暗号文をルールに基づいて元の平文に戻すこと
電子署名が作成される仕組み
この暗号化技術を使って、改めて、電子署名の手順を解説します。まず、認証局は、平文から暗号文を作る時のルールをまとめた電子ファイル(誰にも知られないようにするので秘密鍵と呼びます)と逆に暗号文を復号する時のルールをまとめた電子ファイル(多くの人に公開するので公開鍵と呼びます)を作成します。認証局は「認証局より」とキーボードで打ち込む代わりに、電子ファイルに「認証局より」という平文とそれを秘密鍵を用いて暗号化した暗号文を記述します。この平文と暗号文を使ってどのように電子署名を行うのでしょうか。
認証局の中でもROOT認証局と呼ばれる認証局が作成した公開鍵は、実はあなたの使用しているパソコンの中に既に保存されています。そのため、ROOT認証局がSSL証明書に記述した暗号文を、既に持っているROOT認証局の公開鍵で復号すれば、元の平文を作ることができます。もし悪意のあるユーザーが暗号化をしても、認証局の秘密鍵がなければ、公開鍵によって復号された平文とSSL証明書に記述されている平文が一致することはありません。秘密鍵はROOT認証局しか持っていないので、SSL証明書に平文と暗号文を記述したのはROOT認証局であることが証明でき、この仕組みによって電子署名は成り立っています。
ドメインのなりすましを防ぐ今のセキュリティ技術 まとめ
第二章では、暗号化技術によって認証局が署名を行える仕組みを理解し、その署名によってアクセスしたサーバーのドメインがたどり着きたいドメインと一致していることが証明できることを学びました。このように暗号化技術などを用いながらセキュリティの安全性を確立している現代のインターネットですが、次回第三章では、そのセキュリティ技術を量子コンピュータがどのように突破してしまうのかについて整理していきます。その後、第四章からついに、その量子コンピュータによる攻撃を防ぐ量子暗号通信について丁寧にわかりやすく解説するので、ぜひ一緒に考えながら読んでいただければと思います!
参考文献
- SSL証明書の必要性 – sakura internet
- 「RSA暗号を高速で解読できたらインターネットは終わるのか?」 – sakura internet