2011-10-01 36 views

回答

4

我並不是這方面的專家,但我認爲智能卡的重點在於您無法提取私鑰。您將數據發送到卡上,並讓它在自己的處理器上執行加密操作。

+1

因爲在CryptoAPI中可以使用CryptExportKey函數導出密鑰(如果密鑰標記爲可導出的)。 – KyleM

+0

Upvoted,因爲即使這是「可能」導出密鑰如果標記爲可導出。該卡的目的是在內部完成加密算法並允許公鑰導出,但私鑰始終保持不可導出(至少90%,因爲這是卡的整個點)。 – LeoPucciBr

4

這取決於。 CryptoAPI(以及智能卡的CSP)和PKCS#11都允許您擁有可導出的密鑰對。但通常使用可導出的私鑰來充分發揮智能卡的優勢。

所以,如果你正在編寫一個應用程序,它將成爲你的選擇。否則其他人已經爲你做出了這樣的選擇;-)

+0

*公共*鍵可讀。您還可以查找公鑰的證書。 –

+0

非常確定你可以在pkcs#11中擁有不可導出的公鑰和證書(即使我無法猜測它們可以用於什麼;-)但自從關於** keypairs的問題**之後,私鑰* *決定因素 – poupou

+0

PKCS#11中的CKA_EXTRACTABLE 2.20僅適用於私鑰和祕密密鑰,如規範中所述(因爲PKCS#11非常鬆散,當然可以濫用該規範...)。人們可以擁有私人證書和公共密鑰(需要先登錄才能閱讀),但實際的密鑰/證書值在此之後仍然可讀。 但是,在完整的關鍵對的情況下,這並不重要.. –