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 の長さは、鍵交換方式によって異なる。
RSA がサーバー認証と鍵交換に使用されるとき、48バイトの pre_master_secret がクライアントによって生成され、サーバーの公開鍵で暗号化されて、サーバーに送信される。サーバーは、自身の秘密鍵を使用してpre_master_secret を復号する。そして両方のパーティーは、上記のような方法により、pre_master_secretを master_secret に変換する。
RSA デジタル署名は、PKCS #1 [PKCS1] ブロック型 1 を使用して実行される。 RSA 公開鍵暗号処理は、PKCS #1 ブロック型 2 を使用して実行される。
従来の Diffie-Hellman 計算が実行される。共有された鍵 (Z) は pre_master_secret として使用され、上記のような方法で master_secret に変換される。
注: Diffie-Hellman パラメータは、サーバーによって指定される。そのパラメータは、一時的 (ephemeral) なもの、もしくはサーバー証明書に含まれるもののどちらでもよい。