新型コロナウイルス感染症に関する当社対応について

あと数年で量子コンピューターにSSL通信が解読される?SSL/TLSの未来を担うPQCとは? | SSLサーバー証明書ならさくらインターネット

あと数年で量子コンピューターにSSL通信が解読される?SSL/TLSの未来を担うPQCとは?

量子コンピューターは特定の領域で計算速度が大幅に向上するため、現在利用している暗号は簡単に解読されてしまう恐れがあると言われています。もちろん、SSL/TLSで利用している暗号も例外ではありません。今回は量子コンピューターへ対抗するPQCについてご紹介します。

あと数年で量子コンピューターにSSL通信が解読される?SSL/TLSの未来を担うPQCとは?

量子コンピューター(量子計算機)とは?

量子コンピューターとは、簡単に説明すると非常に高性能なコンピューターで、これまでのコンピューターとは作りが全く異なり、特定分野では別次元の速度で計算ができると言われています。このため、現在のSSLサーバー証明書(以下、SSL証明書)で利用されている暗号アルゴリズムも、数年後には簡単に解読されてしまう可能性が出てきています。

そもそも現在の安全性とは?

インターネット通信の改ざん・なりすまし・盗聴を防ぐために、私たちはSSL証明書の様々な暗号アルゴリズムを利用しています。現在の暗号は「絶対に解読されない」という位置付けではなく、「解読しようと思えばできるけど、ものすごく時間が掛かる」という意味で「安全」とされています。

「そんな暗号強度で大丈夫か?」と思うかもしれませんが、暗号強度を上げ過ぎると、利便性が損なわれてしまいます。例えば、家の鍵は1つ、もしくは2つが一般的ですが、利便性を下げてまで3つ、4つと鍵を付ける人はあまりいません。

SSL証明書も同様で、鍵長を長くすればそれだけ解読に時間が掛かるので安全ですが、復号時のCPU負荷が上がってしまうため、「多くの人が納得する安全な範囲で短い鍵を使う」ということが行われているのです。

「安全」にはテクノロジーの進歩を考慮に入れる必要があり、今回のように量子コンピューター起因の脅威が現実的になるのであれば、それを受け入れて対策を講じなければなりません。これまで「安全」とされていた鍵長やアルゴリズムが、いつまでも「安全」とは限らないのです。

量子コンピューターとSSL証明書の関係

SSL証明書を利用した暗号化通信は、まず公開鍵暗号方式で鍵を交換し、その後に共通鍵暗号方式でデータ通信を行います。多くの場合、SSL証明書の公開鍵暗号で利用する秘密鍵はRSA 2048bit※で作られていますが、この鍵長も2030年頃には脆弱になってしまうと言われています。特にSSL証明書の鍵交換に利用されているRSA暗号と楕円曲線暗号には、量子コンピューターで効率的に計算できるアルゴリズムが存在するため、鍵の計算が容易に行えるとされています。

  • ※bitは鍵の長さを表します。長いほど安全ですが、復号の時間や処理の負荷が増えます。

実際のデータ通信によく利用されている共通鍵暗号のAES(Advanced Encryption Standard)は、鍵長を2~3倍にすることで計算速度が上がっても対応できると言われています。しかしながら、AES でも暗号利用モードによっては脆弱なため暗号スイートを再検討する必要があります。

現在は量子コンピューターが存在しない(実用化されていない)ため、RSA 2048bit鍵長の計算には数十年掛かると言われており、さらにPFS(Perfect Forward Secrecy)に対応した暗号スイートが使われていると、セッションごとに鍵が変わるため、例え中間者がデータを全部保存しておいたとしても、その人が生きている間に通信内容を解読するのは難しいでしょう。

ところが、量子コンピューターという高性能なマシンを誰でも利用できるようになってしまうと、現在では解読できないデータが未来では解読できてしまいます。これが今回問題となっている部分です。

例えば、銀行や通販サイトの通信データを悪意のある第三者が盗聴して保存していたとしましょう。数年後、量子コンピューターが使えるようになった頃に、そのデータを解読すれば暗証番号やクレジットカード番号のリストを容易に作成できてしまうのです。

  • ※もちろん、未来の話なので確実なことではありません。

証明書チェーンへの影響

量子コンピューターにより解読されてしまう可能性は、通信の暗号化部分だけではありません。SSL証明書はPCに入っているルート証明書によって、サーバーから送られてくる中間証明書とサーバー証明書が検証されることでドメインのなりすまし防止が成り立っています。しかし、量子コンピューターによってルート証明書の鍵が解読できてしまうと、偽物のルート証明書/中間証明書で署名したサーバー証明書を作れることになるため、ドメインのなりすましが可能になってしまいます。

サーバーの証明書は新しいものに更新/差し替えることができますが、ルート証明書はPC本体などに最初からインストールされているため、容易に更新することができません。入れ替えには年単位で時間が掛かるので、より大きな問題となり得るでしょう。

サーバー管理者・Webサイト担当者側で出来る対策は?

PQC(Post Quantum Cryptography:耐量子コンピューター暗号)対応のSSL証明書が一般販売されていない以上、現時点で出来ることは限られてきますが、個人情報や決済情報などを扱うWebサービスを運営している方は、SSL証明書のPQC対応状況を常にチェックしておきましょう。また、SSL証明書の購入費用などの予算を積む必要がある場合は、突発的なSSL証明書の入れ替えが発生する可能性があることを社内で説明して備えておくのも良いでしょう。

サーバーを管理されている方は、自サーバー内のSSL証明書の入れ替え、暗号スイート設定の変更に備えて手順を確認しておくことも大切です。この機会に暗号スイートを見直してみるのも良いかもしれません。

エンドユーザー側で出来る対策は?

PQCに対応したSSL証明書が実用化された場合に購入して設定するのはサーバー管理者側です。暗号スイートの選択もサーバー管理者やレンタルサーバーの運営者側で行うことになります。

エンドユーザー側で出来ることは、PCのルート証明書の入れ替えはWindows Updateなどで実施されるため、サポート範囲内のOSを利用することが重要です。スマートフォンなどのモバイル機器もサポート範囲内のOSを利用していないとOSアップデートが提供されませんので注意してください。また、ブラウザも最新版を利用し、アップデートし続けることが必要です。いずれにせよ、まだ具体的な対応が策定されているものではないため、引き続き情報をウォッチしていくことが大切です。

PQC対応のSSL証明書とは?

2020年2月現在、PQC対応の暗号アルゴリズムはNIST(アメリカ国立標準技術研究所)で策定が進められているところで、まだSSL証明書製品として販売はされていません。ルート認証局の1つであるデジサートでは、テスト的に策定候補の暗号アルゴリズムや新しい鍵交換方式を利用してテスト用のSSL証明書を作成できるツールキットの配布を始めています。

PQC ツールキットセットアップガイド | docs.digicert.com

SSL証明書の量子コンピューター対策は、まだ具体的な対応方法が確立されていませんが、今後不安を煽るようなビジネスが出現することも考えられます。まずは量子コンピューターによって、SSL/TLSというインターネットのプライバシーを保護する重要な基盤が影響を受けること、そしてどのような影響があるのか、ということを知っておくことが非常に大切です。今後もPQCの動向/最新情報をウォッチしていきましょう。

補足解説:PFS・暗号スイートとは?

このセクションでは主にサーバー管理者向けにちょっと難しい用語の解説をします。

PFSとは?

SSL証明書ではPFS(Perfect Forward Secrecy:前方秘匿性)という考え方があります。PFSに対応した暗号スイートを利用していれば、例えサーバーの秘密鍵が盗まれてしまったとしても個々のセッションは別の鍵を都度生成して行われるため、全通信が解読されてしまうことはありません。

逆に言えば、PFS非対応の暗号スイートを利用していると、秘密鍵を使えばどの通信でも解読できてしまうのです。最新のブラウザでは使われなくなっていますが、RSAという鍵交換方式はPFSに対応していません。

暗号スイートとは?

暗号スイートとは、サーバーとクライアントの間でどのような方法で暗号化通信を行うか?という取り決めのようなもので、サーバー側で「この暗号スイートを使う」という設定をしています。

クライアント側(ブラウザなど)はいくつかの暗号スイートに対応しており、クライアントからネゴシエーション時に提示された暗号スイートの中からサーバー側で対応できるものを選択して暗号化通信を開始します。

SSL証明書の通信では鍵交換、認証、利用する共通鍵暗号、暗号利用モード、ハッシュ計算方法などの取り決めが必要で、この取り決めを記されたものが「暗号スイート」です。もし脆弱な鍵交換方式、共通鍵暗号、暗号利用モードや衝突可能なハッシュ関数など、脆弱な要素が1つでも入っていると、その暗号スイート自体が脆弱なものになってしまいます。

例えば、以下の暗号スイートはGlobalSignのSSLチェッカーにおいてWEAK判定が出ます。鍵交換も共通鍵暗号、ハッシュ関数も問題ないのですが、SSL v3上でのCBC(Cipher Block Chaining)という暗号利用モードに脆弱性があるためです(一部ハードウェアではTLS 1.0/1.1でも有効)。

SSLチェッカーにおいてWEAK判定

現在でも多くの方がWebサーバー(Apacheやnginx)を初期設定のまま利用していますが、古いバージョンのWebサーバーでは脆弱な暗号スイートが設定されていることがあるため、サーバー管理者側で適切なものを選択することが非常に重要であり、さらにサーバー側の設定を優先させることもできます。

ただし、暗号スイートを安全な最新のものに絞る行為は、アクセスできるブラウザやOSを新しいものに限定することにも繋がります。このため、暗号スイートの選択は利便性と安全性のバランスを取る必要があります。Apacheやnginxにも暗号スイートを設定する項目があるので、気になる方はぜひチェックしてみてください。

また、TLSの最新バージョンTLS 1.3ではPFSに対応していないRSA鍵交換やCBCモードは利用できなくなるので覚えておきましょう。

データ読み込み中...