【问题标题】:Accessing smart card with Java使用 Java 访问智能卡
【发布时间】:2011-02-18 15:19:03
【问题描述】:

由于项目分析,我正在尝试了解 Java 如何访问智能卡。我想知道是否有任何类型的虚拟智能卡可以用来对 Java 进行一些测试?

顺便说一下,我读过 Java Card,看起来它是用来在卡片中运行 Java,而不是使用 Java 来访问智能卡数据,对吧?

【问题讨论】:

    标签: java smartcard


    【解决方案1】:

    Look at this tutorial + example。和related。 (我已经使用了这些示例,它们运行良好)。

    重要的一点是,您无法从智能卡中取出任何东西。您只能将内容发送到其处理器。因此,每当您获得 PrivateKey 对象时,您实际上并没有私钥 - 这只是智能卡处理器的代理,调用其上的方法会调用处理器。

    不过,我不知道虚拟智能卡。

    感兴趣的 API 是 javax.smartcardio

    【讨论】:

    • 我“无法从智能卡中取出任何东西”并不意味着我无法获得它的公钥,我希望
    • 你可以得到公钥,是的
    • 您可以从智能卡中获取任何内容,卡应用程序开发人员会让您从智能卡中获取。它被视为 FIPS-140 安全令牌,因此旨在确保安全。
    • 嗨,汤姆,你最后有什么可行的例子吗?我尝试根据cardwerk.com/smartcards/… 向真实卡发送命令,但没有任何意义 - 我收到了回复,但所有回复都是关于错误的一些信息。即。您有任何示例如何使用卡中的公钥读取用户证书吗?
    【解决方案2】:

    Java Card Development Kit 捆绑了一个 Java Card 模拟器。如果您打算在某个阶段使用真正的卡,请获得 2.2.1 或 2.2.2 版本,因为我暂时不会期望任何版本 3 卡。您仍然需要一个小程序才能放在卡上。 java卡本身什么也不做。直到您加载卡片小程序,它才会执行任何有用的功能。

    JCDK 中的模拟器的一个问题是您不能使用 javax.smartcardio 访问卡,这是目前与卡通信的首选方法。另一种流行的替代方案 OpenCard 框架已经有一段时间没有得到积极维护了。

    【讨论】:

      【解决方案3】:

      您可以在此处获取虚拟智能卡(和虚拟读卡器):http://sourceforge.net/projects/vsmartcard/

      【讨论】:

        【解决方案4】:

        Javacard使用Java只是Java开发的一个子集 你最好不要使用Java开发环境 因为有一些特殊效果是不支持的 可以下载插件或者专用的开发IDE,可以从这里下载www.javacos.com相关的开发环境。

        【讨论】:

          【解决方案5】:

          如果您需要模拟 JavaCard,请尝试使用 jCardSim:http://jcardsim.org。 它还支持通过 javax.smartcardio API 和 apdu-scripts 访问。

          【讨论】:

            猜你喜欢
            • 2022-01-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-02-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-07-17
            相关资源
            最近更新 更多