Security SSL/TLS

SSL/TLSハンドシェイクの手順

2018年12月13日


サーバ認証によるSSL/TLSセッション確立の流れと、その通信フローを解説します。ここで記載するのは「共通鍵と公開鍵のハイブリット方式」の場合です。

参考:【SSL/TLS】サーバ認証の仕組み

Ⅰ.事前の取り決め

❶クライアントからサーバに接続要求・使用できる暗号スイートの通知 (ClientHello)
❷サーバからクライアントへ使用する暗号スイートの通知 (ServerHello)

Ⅱ.サーバ証明書の真正性(改ざんの有無)チェック

❶サーバは、サーバ証明書をクライアントに送信する (Certificate)
※サーバ証明書が無い場合はServerKeyExchangeで一時的な鍵を生成して送ります。
❷クライアントは、証明書上の認証局に問い合わせる
❸CAは、クライアントにCAの公開鍵を送信する
❹クライアントは、CAの公開鍵でデジタル署名を復号する ⇨ 復号できれば証明書内のFQDNの真正性が担保される
※❷〜❹について、CAの公開鍵はWebブラウザにあらかじめインストールしておく必要がありますが、信頼できる第3者機関のものはあらかじめWebブラウザに登録されています。

Ⅲ.共通鍵交換

❶クライアントは共通鍵を作成する
❷クライアントは、サーバの公開鍵で自分の共通鍵を暗号化する
❸クライアントは、暗号化した共通鍵をサーバに送信する (ClientKeyExchange)
❹サーバは、サーバの秘密鍵で復号して、共通鍵を取得する

Ⅳ.共通鍵暗号によるデータのやり取り

❶クライアントは、データを共通鍵で暗号化する
❷クライアントは、暗号化したデータをサーバに送信する
❸サーバは、共通鍵でデータを復号して、データを取得する

詳細なセッションフローは下記を参照
参考:SSL/TLSセッション確立手順

CATEGORIES & TAGS

Security, SSL/TLS,

Author:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

カテゴリー

むるし

フリーランスのインフラ系エンジニア。
備忘録で色々書いていきます。
お問い合わせは↓
mo-gyu@murci.net
LPIC303 Security
%d人のブロガーが「いいね」をつけました。