【问题标题】:PKCS#11 TLS AuthenticationPKCS#11 TLS 认证
【发布时间】:2011-09-30 17:23:14
【问题描述】:

我是 PKCS#11 和通用访问卡的新手,但据我了解,在卡上你有可以提取的证书和不能提取的私钥。我正在尝试编写一个与需要证书进行身份验证的 Web 服务器通信的应用程序。硬件供应商提供的 PKCS 库非常薄。我基本上可以使用卡上的私钥访问证书对象或签署数据。

我不确定在连接到网络服务器时如何处理握手等问题。我是否应该提供证书以及由私钥签名的其他内容?如果是这样,我用私钥签名的是什么?我用谷歌搜索了这个,但找不到这个过程的某种解释。

【问题讨论】:

  • 您自己在编写 SSL/TLS 客户端吗?如果是,那么您应该知道要签署什么。如果您使用的是第三方库,则该库应通过 CryptoAPI 或 PKCS#11 等方式支持外部证书。

标签: security ssl pki


【解决方案1】:

如果您使用通用门禁卡上的 RSA 密钥进行身份验证,则需要在握手中发送 CertificateVerify 消息,其中包含到该点的握手记录上的数字签名。当然,您还需要发送客户端证书。详情请见§7.4.8 of the TLS specification

希望您的 TLS 库支持使用 PKCS #11 加密模块。如果没有,您可能需要切换。在不熟悉规范的情况下自己实现 TLS 是不合理的。

【讨论】:

    【解决方案2】:

    我认为您只需要从您的 PKCS#11 设备中检索您的客户端证书,然后在您向 Web 服务器发出的请求中使用它。如果您使用现有库,则不需要实施 SSL。它们应该包含您需要的一切。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多