2011-09-30 136 views
0

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

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

+0

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

回答

0

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

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

0

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