7 <- index ->9


8. 暗号技術的計算 English

コネクションの防護を開始するために、TLS Record プロトコルは、アルゴリズムの suite、master secret、および、そのクライアントおよびサーバの random 値の仕様を要求する。認証(authentication)、暗号化および MAC のアルゴリズムは、そのサーバによって選択され、ServerHello メッセージ中に現れた cipher_suite によって決定される。その圧縮アルゴリズムは、その hello メッセージにおいて交渉される。そして、その random 値は、その hello メッセージにおいて交換される。残るは、その master secret を計算することである。

8.1. Master Secret を計算する English

すべての鍵交換手法用に、同一のアルゴリズムが pre_master_secret を master_secretに変換するために使われる。pre_master_secret は、ひとたび、その master_secret が計算されたらメモリから削除される必要がある。

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

master secret の長さは、常に、ちょうど 48 byte である。premaster secret の長さは、鍵交換手法によって多様である。

8.1.1. RSA English

RSA が、サーバ認証用および鍵交換用に使われるとき、48 byte の pre_master_secret は、そのクライアントによって生成され、 サーバの公開鍵のもとで暗号化され、サーバ宛に送られる。そのサーバは、そのプライベート鍵を、その pre_master_secret を復号するために使う。そして、両者は、上記規定のように、 pre_master_secret を master_secret に変換する。

8.1.2. Diffie-Hellman English

慣習的(conventional)な Diffie-Hellman 演算が行われる。その交渉された鍵 (Z) が pre_master_secret として使われ、上記規定のように、master_secret に変換される。all zero bits を含む Leading bytes of Z は、それが pre_master_secret として使われる前に外される。

注: Diffie-Hellman パラメータは、そのサーバによって規定され、ephemeral であるか、あるいは、そのサーバの証明書中に含まれるか、のいずれかである可能性がある。

 


7 <- index -> 9