SSL、TLSの仕組み詳細

1.クライアントは、暗号スイートの候補およびクライアントが生成した乱数を送信する。

 

2.サーバは、実際に使用する暗号スイートを決定する。これをクライアントに送信する。同時にサーバが生成した乱数を送信する

 

3.サーバは、サーバ証明書を送信する

 

4.クライアントはサーバ証明書を用いてサーバを認証する。

 

5.クライアントは、プリマスタシークレットと呼ばれる乱数を生成する。この乱数からアプリケーション層の暗号化通信に用いる共通鍵が生成される。これをサーバの公開鍵で暗号化して送信する。

 

6.サーバは自分の秘密鍵で復号する事で、プリマスタシークレットを得る。この時点で、クライアントとサーバはプリマスタシークレットを共有する。

 

7.クライアントとサーバはそれぞれ手順1,2で生成し、交換した乱数およびプリマスタシークレットから、マスタシークレットを生成する。さらにマスタシークレットから共通鍵を生成する。

 

8.共通鍵を生成したクライアントとサーバは暗号化アルゴリズムの使用を開始することをお互いに通知し合う。この後全ての通信は暗号化される。

 

9.前述の一連のやり取りが攻撃者によって改竄されていないかを確認するため、クライアントとサーバはメッセージ認証コードを交換し合う。この時やりとりされるメッセージは暗号化されている。

 

プリマスタシークレット、マスタシークレット、共通鍵の関係は、情報処理安全確保支援士の教科書542ぺーじ参照。

複雑すぎて覚えなくてもいい。