【问题标题】:Generating TLS master key with smartcard using PKCS11使用 PKCS11 使用智能卡生成 TLS 主密钥
【发布时间】:2012-06-05 11:36:29
【问题描述】:

我应该使用智能卡生成 tls 特定密钥。

我检查了例如 P11TlsMasterSecretGenerator 类,但它需要智能卡具有用于生成主密钥的 CKM_TLS_MASTER_KEY_DERIVE_DH 机制。

但我的智能卡不支持这种机制。

我的问题是是否可以为此目的使用其他机制,例如 CKM_ECDH1_DERIVE。

其实我关心的是 CKM_TLS_MASTER_KEY_DERIVE_DH 机制在内部提供的比 CKM_ECDH1_DERIVE 更多。

如果有人可以链接我一个文档或其他东西,我真的很感激。

谢谢。

【问题讨论】:

    标签: ssl smartcard pkcs#11


    【解决方案1】:

    RFC5246 像这样定义主密钥生成:

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

    地点:

    PRF(秘密、标签、种子) = P_hash(秘密、标签+种子);

    P_hash(secret, seed) = HMAC_hash(secret, A(1)+seed) + HMAC_hash(secret, A(2)+seed) + HMAC_hash(secret, A(3)+seed) + ...

    A(0) = 种子 A(i) = HMAC_hash(秘密, A(i-1));

    因此可以通过在智能卡上使用 HMAC 来实现这一算法。但这并不能解决我希望在卡中生成 master_secret 而不能从智能卡中提取的问题。 HMAC 函数总是按预期输出一个字节数组作为结果。

    【讨论】:

      猜你喜欢
      • 2015-07-18
      • 2013-06-23
      • 1970-01-01
      • 2020-08-27
      • 2014-10-11
      • 1970-01-01
      • 2015-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多