SSLのハイブリッド方式
SSLはNetscape Communication社で開発された。webブラウザとwebサーバーの間でやり取りするデータを暗号化して通信するためのプロトコル。暗号化とデジタル署名の技術を使い、セキュアな通信を実現する。
SSLでは「共通鍵暗号化方式」と「公開鍵暗号化方式」を組み合わせたハイブリット方式を利用するのが一般的である。
共通鍵暗号化方式とは?
平文の暗号化と、暗号文の復号化は同じ鍵で行う。データを送る側と、データを受け取る側が同じ鍵を持つ。データのやり取りに関係のない第三者には鍵を盗まれてはならない。共通鍵暗号化のアルゴリズムにはDES(Data Encryption Standard),3DES(トリプルDES)などがある。
公開鍵暗号化方式とは?
データを送る側が平文の暗号化を公開鍵で行い、受け取り側が暗号文の復号化を秘密鍵で行う。データのやり取りを行う前に、データを受け取る側が、公開鍵と秘密鍵のペアを作成しておく。公開鍵は他人に配ることができるが、秘密鍵は鍵の作成者以外に盗まれてはならない。公開鍵暗号化方式のアルゴリズムにはRSA(Rivest Shamir Adleman), EPOC(Efficient Probabilistic Public-Key Encription)などがある。
ハイブリット方式とは?
SSLで利用されている暗号化方式。共通鍵暗号化方式と公開鍵暗号化方式を組み合わせることで、セキュアな通信を行う。
処理の流れは以下のとおり。
- クライアントは共通鍵暗号化方式の共通鍵を作っておく。
- webサーバーは公開鍵暗号化方式の公開鍵と秘密鍵を作っておく。
- クライアントがサーバーに接続要求を出す。
- webサーバーは公開鍵を含むsslサーバー証明書(デジタル証明書)をクライアントに送る。
- クライアントはsslサーバー証明書が認証局で発行されたかどうか確認をする。
- クライアントは共通鍵で送信データを暗号化し、sslサーバー証明書に含まれる公開鍵で共通鍵を暗号化する。
- クライアントは暗号化した送信データと共通鍵をwebサーバーに送る。
- webサーバーは暗号化された共通鍵を秘密鍵で復号し、復号した共通鍵で送信データを復号する。