暗号化について触れながら、サーバ認証の流れを解説します。
SSL/TLS暗号化通信の種類
暗号化通信の種類は3種類存在します。それぞれについて通信の流れを記載します。
Ⅰ.共通鍵暗号方式(主な暗号スイート:RC4、DES、3DES、AES)
❶クライアントは、共通鍵を作成する
❷クライアントは、共通鍵をサーバへ送信する
❸サーバは、その共通鍵でデータを暗号化して、クライアントへ送信する
❹クライアントは、共通鍵でデータを復号して、データを取得する
欠点:共通鍵交換時に、第3者に通信傍受される危険性あり
Ⅱ.公開鍵暗号方式(主な暗号スイート:RSA、ECC)
❶サーバは、公開鍵と秘密鍵を作成し、公開鍵を公開する
❷クライアントは、サーバの公開鍵でデータを暗号化して、サーバへデータを送信する
❸サーバは、サーバの秘密鍵でデータを復号して、データを取得する
欠点:鍵のビット長、平文が長いから、暗号、復号に時間がかかる
Ⅲ.共通鍵と公開鍵のハイブリット方式
現在主流であり、初回の共通鍵交換を安全に行うのが目的となります。
❶サーバは、公開鍵と秘密鍵を作成し、公開鍵を公開する
❷クライアントは、共通鍵を作成する
❸クライアントは、サーバの公開鍵で共通鍵を暗号化する
❹クライアントは、暗号化した共通鍵をサーバに送信する
❺サーバは、サーバの秘密鍵で共通鍵を復号して、共通鍵を取得する
❻サーバは、共通鍵でデータを暗号化して、クライアントに送信する
❼クライアントは、共通鍵でデータを復号して、データを取得する
サーバ認証の流れ
クライアントからサーバへのSSL/TLS暗号化通信において、上記の「Ⅲ.共通鍵と公開鍵のハイブリット方式」を使用した通信の流れを記載します。
Ⅰ.サーバ証明書の作成
❶サーバは、秘密鍵と公開鍵を作成する
❷サーバは、サーバ情報と秘密鍵を元にCSRを作成して、認証局(CA)へ申請する
❸CAは、CAの秘密鍵でCSRを暗号化(デジタル署名)して、サーバ証明書を作成する。それをサーバに送信する
❹サーバは、サーバ証明書をローカルに配置する
Ⅱ.サーバ証明書の真正性(改ざんの有無)チェック
❶クライアントからサーバに接続要求
❷サーバは、サーバ証明書をクライアントに送信する
❸クライアントは、証明書上の認証局に問い合わせる
❹CAは、クライアントにCAの公開鍵を送信する
❺クライアントは、CAの公開鍵でデジタル署名を復号する⇨復号できれば証明書の真正性が担保される
Ⅲ.共通鍵交換
❶クライアントは共通鍵を作成する
❷クライアントは、サーバの公開鍵で自分の共通鍵を暗号化する
❸クライアントは、暗号化した共通鍵をサーバに送信する
❹サーバは、サーバの秘密鍵で復号して、共通鍵を取得する
Ⅳ.共通鍵暗号によるデータのやり取り
❶クライアントは、データを共通鍵で暗号化する
❷クライアントは、暗号化したデータをサーバに送信する
❸サーバは、共通鍵でデータを復号して、データを取得する
[…] 参考:【SSL/TLS】サーバ認証の仕組み […]