SSLサイト安全性確保の仕組みSSL通信とはURLがhttps:// で始まるサイトはSSL通信を行います。 SSL通信とは、データを暗号化して送受信する方法です。 SSL通信の仕組みについて解説します 暗号化とは、データ(平文と呼ばれる)をある鍵を使って暗号文に変換することです。 得られた暗号文は、ランダムなデータでありそのままでは、意味のあるデータとして扱えません。 暗号文を元のデータ(平文)に戻すことを復号化と言いますが、この場合も鍵を使って復号化します。 暗号化と復号化に同じ鍵を使う方法を共通鍵方式、異なった鍵を使う方法を公開鍵方式と言います。 暗号化:共通鍵方式秘密鍵方式は、暗号化と復号化で同じ鍵を使います。暗号化に使用した鍵が盗まれると、鍵を入手した者によって簡単に復号化されてしまいます。 この方式では、暗号化する側と複号する側で同じ鍵を持つ必要があります。 両者で同じ鍵を持つにはどのようにすればいいのでしょうか? 通信で送るわけにはいきません。 そもそも暗号化をする理由は、通信経路の盗聴からデータを守るためです。 鍵を通信で送ってしまっては、盗聴者に鍵を盗まれる可能性があります。 鍵の手渡しや郵送等も考えられますが現実的ではありません。 これらの問題を解決するために次に解説する公開鍵方式が、考え出されました。 暗号化:公開鍵方式暗号化の鍵と複合化の鍵が異なります。暗号化した鍵で、復号化することはできません。 復合化には、暗号化用鍵と対になった複合化用の鍵が必要です。 もう少し分かりやすく具体例を挙げて解説します。 今、田中さんから鈴木さんにデータを送る場合を考えます
公開鍵方式は、複雑なため処理が重くなります。 実際の運用では、共通鍵を公開鍵方式で送信し、データは共通鍵方式で暗号化し送信します。 公開鍵方式の問題点先ほどの例では、田中さんと鈴木さんは直接接続されていることを前提としています。しかし、攻撃者は田中さんと鈴木さんの間に割り込んで、それぞれに、なりすます可能性があります。 このような接続が確立されると、攻撃者は全てのデータを盗むことが可能です。 この攻撃を防ぐには、田中さんが受け取った公開鍵が、鈴木さんから送信されたものであることを確認できなければなりません。 電子署名話はちょっと変わって、公開鍵/秘密鍵を使った電子署名について解説します。 あるデータは間違いなく佐藤さんが作成したことを証明する方法として、電子署名の方法があります。 電子署名とは、署名したいデータを佐藤さんの秘密鍵で暗号化し、そのデータに添付します。 署名されたデータに佐藤さんが署名したかどうかは、佐藤さんの公開鍵で署名を復号化することで判断できます。 佐藤さんの公開鍵で復号化できるのであれば、署名は佐藤さんしか持っていない秘密鍵で暗号化されていると判断できるのです。 つまり、佐藤さんが署名したことを保証できるのです。 (佐藤さんが秘密鍵を盗まれていたら別ですが) SSL通信とは公開鍵と秘密鍵の使われ方が逆になっています。
公開鍵方式の問題点の解決へ向けて元に戻って、公開鍵方式の問題点であった成りすましへの対抗方法を考えます。 例の場合、鈴木さんが公開鍵を作成したことを確認できれば成りすましに対抗できます。 そこで、公開鍵に鈴木さんの電子署名を添付すれば問題解決のように考えられます。 しかし、電子署名を復号化する鈴木さんの公開鍵は、どのように入手すればいいのでしょうか? 通信で受け取る事を考えると、振り出しに戻って、成りすましに対抗できません。 実は、通信で鍵の授受を考えていたのでは、解決の出来ない問題なのです。 鈴木さんが署名した場合、鈴木さんの公開鍵が必要です。 しかし、鈴木さんの公開鍵は、通信以外の手段で田中さんに渡す必要があります。 手渡し?郵送?さらに元へ戻ってしまいました。 第3の信頼できる機関に署名を依頼し、署名した第3の機関の公開鍵を使用することでこの問題を解決します。 この場合でも、第3機関の公開鍵を何らかの方法で入手する必要があります。 前述のように、入手の手段に通信は使えません。 どのように入手するのか? 実は、皆さんは、既に第3の信頼できる機関の公開鍵を入手済みなのです。 あなたの使っているブラウザ(IE、Mozilla、Opera等々)には、あらかじめ公開鍵が登録されているのです。 IEの場合次のようにすれば確認できます。 [ブラウザメニューのツール]→[インターネットオプション]→[コンテンツタブ]→[証明書→[信頼されたルート証明機関] 発行者欄に表示されている機関が、今回の説明で出てきた、「信頼できる第3の機関」に該当します。 この「信頼できる第3の機関」を証明機関(CA:Certificate Authority)といいます。 以上の事柄を踏まえて、田中さんが鈴木さんへ安全にデータを送信する方法を解説します。
|