2

スマートカードで TLS 固有のキーを生成することになっています。

たとえば、 P11TlsMasterSecretGenerator クラスを調べましたが、スマートカードがマスターキー生成のために持つ CKM_TLS_MASTER_KEY_DERIVE_DH メカニズムが必要です。

しかし、私のスマートカードはこのメカニズムをサポートしていません。

私の質問は、この目的で CKM_ECDH1_DERIVE などの他のメカニズムを使用できるかどうかです。

実際、私の懸念は、CKM_TLS_MASTER_KEY_DERIVE_DH メカニズムが CKM_ECDH1_DERIVE よりも内部的に提供するものです。

誰かが私にドキュメントか何かをリンクしてくれたら、本当に感謝します。

ありがとう。

4

1 に答える 1

0

RFC5246 では、マスターキーの生成を次のように定義しています。

master_secret = PRF(pre_master_secret,"マスター シークレット",ClientHello.random + ServerHello.random)[0..47];

どこ:

PRF(シークレット、ラベル、シード) = P_hash(シークレット、ラベル+シード);

P_hash(秘密、シード) = HMAC_ハッシュ(秘密、A(1)+シード) + HMAC_ハッシュ(秘密、A(2)+シード) + HMAC_ハッシュ(秘密、A(3)+シード) + ...

A(0) = シード A(i) = HMAC_hash(secret, A(i-1));

したがって、スマートカードで HMAC を使用してこのアルゴリズムを実装できます。しかし、master_secret をカードで生成し、smardcard から抽出できないようにするという問題は解決しません。HMAC 関数は、期待どおり、結果として常にバイト配列を出力します。

于 2012-06-22T07:24:47.917 に答える