インターネットを利用しているとき、Webブラウザを利用してホームページを閲覧しますが、この際使っているのは、HTTPというプロトコルです。 Webサイトのアドレスはhから始まりますが、これはHTTPというプロトコル(言葉のようなもの)を使って、そのWebサイト(サーバ)にアクセスすることを表してます。 しかし、このHTTPの通信は情報を保護するという仕組みが全く考えられていなかったため、ネットワークの経路上でちょっと覗き見をすればブラウザとWebサーバ間でやりとりしている内容は丸見えとなってしまいます。 http://www.mecha-security.com/images/encrypt.gif ブラウザ上で名前とか住所、クレジットカードなどの番号を入力すると、簡単にそれらがネットワーク上で監視している第三者に漏れてしまうことになります。 これを解決するために、米NetScape社がSSL(Secure Sockets Layer)というセキュリティ機能付きのHTTPプロトコルを開発しました。 SSLを利用することで、WebサーバとクライアントPC(Webブラウザ)でやり取りされる情報は暗号化されますので、「盗聴」の危険性が非常に低くなります。 また、データをネットワーク上で「改ざん」されることや、偽のサイトが本物のサイトのように「なりすまし」をすることを防ぐための仕組みもあります。 盗聴や、改ざん、なりすましを防ぐための仕組みとして、「共通鍵暗号方式」「公開鍵暗号方式」、そして「PKI」という技術が利用されています。
SSLでは、どのような暗号が使われているのか? 技術としては、「共通鍵暗号方式」と「公開鍵暗号方式」の2種類の技術を組み合わせて使っています。 ここで、「鍵」といっているのは、暗号化するときに使うデータのことです。 共通鍵暗号方式では、暗号化と復号化(元のデータに戻すこと)を行うために、同じ鍵を使います。だから文字通り「共通鍵」と言っています。 AさんとBさんは、それぞれ全く同じ合鍵を持っていて、お互いにそれを使って、暗号と復号をすることになります。 とても簡単な仕組みの反面、ちょっと考えると危険性があります。
共通鍵暗号化方式は、このような危険性もあるんですが、メリットもあります。 暗号化と複合化に同じ鍵を使うため、処理が単純化し、負荷を軽く(高速に)することができるんですね。 だから、SSLでは実際のデータ部分の暗号化はこの共通鍵暗号化方式を使い、鍵を相手に渡す部分でもっと安全な方法をとります。
「共通鍵」を安全にやり取りするために利用されるのが、「公開鍵暗号方式」です。 公開鍵暗号方式では、まず最初にペアの鍵を作る必要があります。そのペアとは「公開鍵」と「秘密鍵」の組み合わせです。 ここで重要な点は、
それを念頭において、AさんとBさんが公開鍵暗号方式を行った場面を考えて見ましょう。 1. Aさんは「公開鍵」と「秘密鍵」のペアを作ります。 2. AさんはBさんに公開鍵を渡し「Bさん、この公開鍵でデータを暗号化して送って」とお願いをします。 3. Bさんは、Aさんの公開鍵を使ってデータを暗号化し、そのデータをAさんに渡します 4. 自分の公開鍵で暗号化されたデータを受け取ったAさんは、それとペアとなる秘密鍵でデータを元に戻します。 この例のポイントは、「2」でAさんはBさんに公開鍵を渡している点です。 共通鍵の場合、ここで盗聴されると、データを元に戻されてしまいますが、公開鍵が漏れても、結局秘密鍵がわからないとデータは元に戻せないので安心です。 だから公開してもいい鍵ということで「公開鍵」と言ってるんです。 このように安全な公開鍵暗号方式ですが、デメリットとしては、暗号と復号化の処理に時間がかかることが挙げられます。 |
|||||||

- >
- コンピュータとインターネット
- >
- コンピュータ
- >
- Windows





