インターネットの安全を支えるPKIとは
暗号化を軸に盗聴や改ざん、なりすましの被害を防ぐ技術である「PKI」(公開鍵暗号基盤)。その仕組みを、ポイントとなる「鍵」を中心に分かりやすく解説します。さらにPKIを利用して、デジタル署名を実現する仕組みも紹介します。
世界中の多くの人が日々、ショッピングサイトにてクレジットカードで決済したり、ウェブサイトやSNSにパスワードを入力してログインしたりするなど、インターネットを介して重要な情報をやりとりしています。セキュリティ面で要求の高い情報を悪意ある第三者による盗聴や改ざん、なりすましなどの被害から守ってくれる仕組みが「PKI」(公開鍵暗号基盤 / Public Key Infrastructure)です。今回はPKIの基本的な仕組みを解説します。
PKI(公開鍵暗号基盤)とは?
PKI(公開鍵暗号基盤)は、暗号化通信やデジタル署名の核となる技術です。デジタル署名は電子署名の実装技術の1つでもあります。またPKIは、ネットショッピングにおける決済情報のやりとりをはじめ、広く利用されています。
クレジットカード番号など、他人に知られては困る大切な情報をインターネットで通信する際は、盗聴や改ざんを防ぐために「鍵」と呼ばれるデータを用いて、情報を他人にはわからない形に加工して送信しなければなりません。この加工を暗号化と言います。そして、情報の受け手も暗号化した情報を元に戻す(復号化する)際に「鍵」を用います。ここでいう送り手と受け手とは、たとえば、前者がショッピングサイトのユーザー、後者が運営元の組織であり、情報とはユーザーのクレジットカード番号などに該当します。
単純に考えると、情報の送り手と受け手でそれぞれ、同じ鍵をあらかじめ持って置き、暗号化と復号化を行えばよいと思えるでしょう。現実世界でたとえるなら、情報が書かれた紙を箱に入れ、南京鍵やシリンダー錠を閉めてやりとりするといったイメージです。そのような両者で共通の鍵は「共通鍵」と呼ばれます。
ただ、共通鍵の方式には、「鍵をインターネット経由でいかにして安全に渡すか」が大きな問題になります。安全に鍵を渡すには暗号化が必須であり、そのためさらに別の鍵が必要となり、その鍵をどう安全に渡すのか……などといった壁が立ちはだかります。
公開鍵暗号方式の仕組み - 送り手と受け手で別の鍵を用意し、片方を公開
そこで登場したのが、送り手の暗号化と受け手の復号化で、それぞれ別の鍵を用いるという方式です。この方式では、情報の受け手が2つの鍵のペアを用意します。仮に「鍵A」と「鍵B」と呼ぶとします。この2つの鍵の関係として、鍵Aで暗号化した情報は必ず、鍵Bでのみ復号化できるように用意します。逆に、鍵Bで暗号化した場合は鍵Aでのみ復号化できるようにします。それぞれ、暗号化した鍵自体では復号化できないようにします。この関係が大きなポイントになります。
そして、受け手は鍵Aをインターネット上に広く公開します。送り手本人だけでなく、誰でも使えるようにするのです。一方、鍵Bは受け手だけが持つよう厳重に管理して、誰にも公開しません。
このような鍵のペアを用いて、暗号化・復号化して通信を行います。鍵Aは公開されており、誰にでも入手できてしまうため、一見、危険に思えるかもしれません。しかし、復号化は鍵Bを持っている人しかできません。それゆえ、大切な情報を安全に送り手から受け手に送ることが可能となります。
鍵Aのように公開される鍵は一般的に「公開鍵」と呼ばれます。鍵Bのように本人しか持たないようにする鍵は「秘密鍵」と呼ばれます。公開鍵と秘密鍵を組み合わせた暗号の方式が「公開鍵暗号方式」です。そして、公開鍵暗号方式を実施するための仕組みを組み合わせたものがPKIになります。秘密鍵と公開鍵の実装としてよくあるのは、素数を応用した技術になります。著名な公開鍵暗号方式としてRSA暗号や楕円曲線暗号などがあります。
なお、ショッピングサイトでのクレジットカード番号などの暗号化通信に使われる際にはTLSというプロトコルが使われます。少々ややこしいのですが、TLSでは情報そのものの暗号化には共通鍵を使い、その共通鍵の受け渡しにPKIを用います。すべての情報のやりとりにPKIを使うと、処理負荷が大きいなどの問題で実用的ではなくなるため、共通鍵の受け渡しのみにPKIを使います。
デジタル署名では公開鍵と秘密鍵を入れ替える点がポイント
PKIの仕組みはデジタル署名でも使われています。先ほど解説したセキュリティ面で要求の高い情報を相手に送る場合とは反対に、送り手が秘密鍵で暗号化し、受け手が公開鍵で復号化を行います。先ほどとは役割を逆にする点がポイントです。これにより、送り手の身元やデータの変更や改ざんが無いことが確認できます。
その公開鍵で復号化できるのは、ペアとなっている秘密鍵で暗号化した情報だけです。受け手は送られてきた情報が公開鍵で復号化できたら、その情報はペアの秘密鍵で暗号化されたものだとわかります。秘密鍵は送り手本人しか持っていないため、本人であることが証明できます。
公開鍵で復号化ということは、誰でも復号化できるので危険と思われがちです。しかし、復号化する情報は本人を証明する署名であり、クレジットカード番号などセキュリティ面で要求の高い情報ではないため問題はなくなります。PKIはこのような仕組みによって、安全に安心して利用できるインターネット環境を支えています。
デジタル署名とは →
参考:
情報処理推進機構「2.4 デジタル署名」
パーソル テクノロジースタッフ「4枚の図解でわかる公開鍵暗号」