2011-09-30 59 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。他們應該包含你所需要的一切。