SSL/TLSとは

/ネットワーク

SSL(Secure Sockets Layer)とは、WebサーバとWebブラウザの間の認証と暗号化を行うプロトコルです。尚、TLS(Transport Layer Security)は、SSLの標準化としてIETFにより策定されたプロトコルです。

SSL/TLSの概要

SSL/TLSは、TCP(L4)とアプリケーション層(L5-L7)の間で動作し、SMTP、FTP、POP3、Telnetなど多くのTCP/IPアプリケーションに対応しています。

サーバでは一般に、SSL対応のアプリケーションとSSL非対応のアプリケーションが混在しているので、両者を区別する必要があります。例えば、Web通信の場合はポート番号で区別されており、SSL対応のアプリケーションはTCP80番(http)、SSL非対応のアプリケーションはTCP443番(https)が使われます。

セッション&コネクション

セッションは、サーバとクライアント間で新たにマスタシークレット(以下で説明)が共有される毎に新しく生成されます。具体的には、クライアント上でブラウザを立ち上げ、サーバに接続する毎に新たなセッションが作成されます。

コネクションは、1つのセッションに複数存在し、コネクションごとに暗号鍵などが新たに生成されます。クライアント側ではコネクションごとに異なるポート番号が割り当てられます。

プリマスタシークレット&マスタシークレット

プリマスタシークレットとは、暗号化通信に使用する暗号鍵を生成する元になる情報で、クライアントが生成します。

マスタシークレットは、プリマスタシークレットとサーバ/クライアントの乱数を元に、サーバとクライアントの双方で生成します。マスタシークレットの生成には、PRF(疑似乱数関数)が使用されます。

SSL/TLSの確立手順

SSL/TLS通信のセッション及びコネクション確立するため、ハンドシェイクが行われますが、この目的は以下になります。

  • サーバの認証
  • 暗号化アルゴリズムの決定
  • 暗号化鍵とMAC鍵の作成

サーバ証明書を用いる場合の手順は以下になります。尚、通信の方向の「C→S」はクライアントからサーバ、「S→C」はサーバからクライアントへの通信を表します。

名称 方向 機能
Client Hello C→S 利用可能な暗号化アルゴリズムの一覧を送信
Server Hello S→C 一覧から暗号化アルゴリズムを選択し通知
Certificate S→C サーバ証明書を送付
Server Hello Done S→C 2項から始まるメッセージの完了を通知
Client Key Exchange C→S プリマスタシークレットをサーバ証明書の公開鍵で暗号化し送付
Change Cipher Spec C→S マスタシークレット、MAC鍵、暗号鍵、初期ベクトル(IV)を生成し、暗号化の準備が整ったことを通知
Finished C→S 鍵交換と認証が完了したことを通知、暗号化通信を開始
Change Cipher Spec S→C マスタシークレット、MAC鍵、暗号鍵、初期ベクトル(IV)を生成し、暗号化の準備が整ったことを通知
Finished C→S 鍵交換と認証が完了したことを通知、暗号化通信を開始

 

IT
情報セキュリティ、ISMS、リスク分析、ログ分析、送信ドメイン認証、公開鍵基盤、CSIRT、情報セキュリティ対策ベンチマーク
数理の散策路
力学、電磁気・相対論、熱・統計力学、量子力学、物性物理、機械学習、情報処理、金融、物理数学

Wikipedia

 

タイトルとURLをコピーしました