1

我正在使用 Java 平台上的智能卡对文件进行数字签名。从语法上讲,我也得到了代码流和其他东西。但我的问题是本地 PKCS11 实现如何与智能卡通信,反之亦然(我不知道那件事)。

我想知道内部流程。我用谷歌搜索了很多,但没有得到内部通信流(我只得到代码)。谁能给我一些链接或参考或一些类图。

4

2 回答 2

5

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.smartcardioPCSC 实现 ISO 7816-4 兼容传输的卡。在这种情况下,您将不得不实现智能卡的整个应用程序级接口。

不幸的是,这是一个很长的文本,说这一切都取决于 PKCS#11 库和智能卡的实现。

于 2013-07-26T16:49:14.303 回答
-2

通过阅读此 PDF,我得到了一些简短的想法

ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-30/TUT-M51_Griffin_PKCS11.pdf

但是我仍然没有得到整个流程。为此,我认为我需要在 PKCS#11 的海洋中越来越深;)

于 2013-07-31T04:28:23.837 回答