SSL/TLSとは

/ネットワーク

SSL/TLSの概要

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

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

SSL/TLSの仕組み

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

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

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

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

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

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

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

通信の確立手順

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 鍵交換と認証が完了したことを通知、暗号化通信を開始

 

TLS暗号設定ガイドライン 安全なウェブサイトのために(暗号設定対策編) | 情報セキュリティ | IPA 独立行政法人 情報処理推進機構
情報処理推進機構(IPA)の「TLS暗号設定ガイドライン 安全なウェブサイトのために(暗号設定対策編)」に関する情報です。
IT
マネジメント、セキュリティ、ネットワーク、システム
散策路TOP
数学、応用数学、古典物理、量子力学、物性論、電子工学、IT、力学、電磁気学、熱・統計力学、連続体力学、解析学、代数学、幾何学、統計学、論理・基礎論、プラズマ物理、量子コンピュータ、情報・暗号、機械学習、金融・ゲーム理論

 

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