2013-07-25 25 views
0

我通過使用Java平臺上的智能卡對文件進行數字簽名。 從句法上看,我也得到了代碼和其他東西的流程。 但我的問題是原生PKCS11實現如何與智能卡進行通信,反之亦然(這一點我不知道)。原生PKCS11實現和智能卡之間的通信

我想知道內部流量。我GOOGLE了很多,但沒有得到內部溝通流程(我只獲得代碼)。 任何人都可以給我一些鏈接或引用或一些類圖。

+0

您是否試過閱讀PKCS#15?這可能是使用PKCS11的替代方法,但可能不是最好的方法。 – takumar

+0

我沒有經過PKCS#15,因爲大多數智能卡都使用PKCS#11實現。但我也會嘗試。 –

回答

2

PKCS#11是C中使用加密令牌的API定義。它明確沒有指定這些密碼令牌的任何實現細節。原則上,任何安全和軟件模塊都可以用PKCS#11接口表示。因此完全取決於PKCS#11中間件如何訪問智能卡。對於通過PKCS#11模塊進行日誌記錄也是如此 - PKCS#11不指定如何執行日誌記錄。

現在大多數用於簽名生成的智能卡都至少兼容ISO 7816-4(它定義了哪些APDU可用於讀/寫卡,以及如何使用一些加密APDU)。此外,他們可能實施ISO 7816-15(稍微不同的版本的PKCS#15),這是一個相當複雜的標準,以找到卡上的文件和對象(如鍵)。通常這些卡是通過PCSC訪問的,因此最好嘗試獲取PCSC或智能卡讀取器驅動程序API調用的日誌。

使用Java,您還可以通過javax.smartcardio直接使用該卡,通過PCSC實現ISO 7816-4兼容傳輸。在這種情況下,您將不得不將整個應用程序級別的接口實現到智能卡。

很遺憾,這是一個很長的文字,說這一切都取決於PKCS#11庫和智能卡的實現。

+0

感謝您的回覆。您可以提供一些鏈接,我可以從中獲得更多信息。 –

相關問題