7<- 目次 ->9


8. 暗号技術的計算 English

(準備中)

コネクションの保護を開始するために、TLS レコードプロトコルでは、一連のアルゴリズム、マスターシークレット、クライアントおよびサーバー乱数値を必要とする。認証、暗号化、MAC アルゴリズムは、サーバーによって選択された暗号スイートによって決定され、ServerHello メッセージにおいて確立する。圧縮アルゴリズムは、Hello メッセージにおいて共有される。また乱数値は Hello メッセージにおいて交換される。最後は、master_secret を計算することである。

8.1. master_secret の計算 English

すべての鍵交換方式において、pre_master_secret を master_secret へ変換するのに、同一のアルゴリズムが使用される。master_secretが計算されると、 pre_master_secret はメモリ上から削除されるべきである。

master_secret = PRF(pre_master_secret, "master secret",
ClientHello.random + ServerHello.random)
[0..47];

master_secret の長さは、常に 48 バイトである。pre_master_secret の長さは、鍵交換方式によって異なる。

8.1.1. RSA English

RSA がサーバー認証と鍵交換に使用されるとき、48バイトの pre_master_secret がクライアントによって生成され、サーバーの公開鍵で暗号化されて、サーバーに送信される。サーバーは、自身の秘密鍵を使用してpre_master_secret を復号する。そして両方のパーティーは、上記のような方法により、pre_master_secretを master_secret に変換する。

RSA デジタル署名は、PKCS #1 [PKCS1] ブロック型 1 を使用して実行される。 RSA 公開鍵暗号処理は、PKCS #1 ブロック型 2 を使用して実行される。

8.1.2. Diffie-Hellman English

従来の Diffie-Hellman 計算が実行される。共有された鍵 (Z) は pre_master_secret として使用され、上記のような方法で master_secret に変換される。

注: Diffie-Hellman パラメータは、サーバーによって指定される。そのパラメータは、一時的 (ephemeral) なもの、もしくはサーバー証明書に含まれるもののどちらでもよい。


7<- 目次 ->9