SSLサーバー証明書の検証の流れとSSL通信開始の流れ

SSLサーバー証明書の検証の流れ

1. まずサーバーとのSSL通信を開始するにあたり、サーバーからサーバー証明書がクライアントに送られる。この証明書が認証局によって署名されたものであれば認証局の証明書も一緒に送られる。もし、その認証局がさらに他の認証局から署名を受けている場合はその上位の認証局の証明書も一緒に送られる。

2. クライアントは送られた証明書の中で最上位の認証局の証明書(ルート証明書)が信頼できるものであるか検証する。PCには事前に主要な認証局のルート証明書がインストールされているので、送られてきたルート証明書がインストールされている証明書と一致すればそのルート証明書を信頼できるものと判断する。(もし一致する証明書が無かった場合はブラウザが警告ページを表示する)

3. ルート証明書が信頼できる場合は ルート証明書の中の公開鍵を使って、サーバー証明書の電子署名を検証する。
電子署名とはサーバー証明書のハッシュ値を認証局の秘密鍵によって暗号化したもののこと。

4. クライアントは認証局の公開鍵を使って電子署名を復号しハッシュ値を取り出す。そして実際に送られてきたサーバー証明書のハッシュ値を計算し、電子署名から取り出したハッシュ値と比較する。2つのハッシュ値が一致すれば、証明書の内容は変更・改ざんされていないと判断できる。

5. 4によってサーバー証明書の信頼性が確認できたので、サーバー証明書に含まれている公開鍵を使って、その後のSSL通信の手続きを開始する。

SSL通信開始の流れ

1. クライアントが共通鍵を生成し、サーバーの公開鍵で暗号化して送信する。

2. サーバーは受け取ったデータを自分の秘密鍵で復号して共通鍵を取り出す。

3. クライアントとサーバーに共通鍵が渡ったので、その後の通信はこの共通鍵を使って暗号化・復号化する。

Leave a Reply

Your email address will not be published. Required fields are marked *