PKCS#11 TLS身份验证

时间:2011-09-30 17:23:15

标签: security ssl pki

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

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

2 个答案:

答案 0 :(得分:0)

如果您在公共访问卡上使用RSA密钥进行身份验证,则需要在握手中发送CertificateVerify消息,其中包含到此时握手记录的数字签名。当然,您还需要发送客户端证书。有关详细信息,请参阅§7.4.8 of the TLS specification

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

答案 1 :(得分:0)

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