SSLのハイブリッド方式

SSLNetscape Communication社で開発された。webブラウザとwebサーバーの間でやり取りするデータを暗号化して通信するためのプロトコル。暗号化とデジタル署名の技術を使い、セキュアな通信を実現する。

SSLでは「共通鍵暗号化方式」と「公開鍵暗号化方式」を組み合わせたハイブリット方式を利用するのが一般的である。

 

共通鍵暗号化方式とは?

平文の暗号化と、暗号文の復号化は同じ鍵で行う。データを送る側と、データを受け取る側が同じ鍵を持つ。データのやり取りに関係のない第三者には鍵を盗まれてはならない。共通鍵暗号化のアルゴリズムにはDES(Data Encryption Standard),3DES(トリプルDES)などがある。

 

公開鍵暗号化方式とは?

データを送る側が平文の暗号化を公開鍵で行い、受け取り側が暗号文の復号化を秘密鍵で行う。データのやり取りを行う前に、データを受け取る側が、公開鍵と秘密鍵のペアを作成しておく。公開鍵は他人に配ることができるが、秘密鍵は鍵の作成者以外に盗まれてはならない。公開鍵暗号化方式のアルゴリズムにはRSA(Rivest Shamir Adleman), EPOC(Efficient Probabilistic Public-Key Encription)などがある。

 

ハイブリット方式とは?

SSLで利用されている暗号化方式。共通鍵暗号化方式と公開鍵暗号化方式を組み合わせることで、セキュアな通信を行う。

処理の流れは以下のとおり。

  1. クライアントは共通鍵暗号化方式の共通鍵を作っておく。
  2. webサーバーは公開鍵暗号化方式の公開鍵と秘密鍵を作っておく。
  3. クライアントがサーバーに接続要求を出す。
  4. webサーバーは公開鍵を含むsslサーバー証明書(デジタル証明書)をクライアントに送る。
  5. クライアントはsslサーバー証明書認証局で発行されたかどうか確認をする。
  6. クライアントは共通鍵で送信データを暗号化し、sslサーバー証明書に含まれる公開鍵で共通鍵を暗号化する。
  7. クライアントは暗号化した送信データと共通鍵をwebサーバーに送る。
  8. webサーバーは暗号化された共通鍵を秘密鍵で復号し、復号した共通鍵で送信データを復号する。

f:id:bambinya:20150316233811g:plain