尝试Java卡应用程序在真正的智能卡上

emr*_*rka 0 apdu javacard

我将使用Java Card Framework编写一个智能卡应用程序.当我完成我的应用程序时,我想设置一个真正的智能卡并尝试它.我必须拥有哪些设备?如何在真正的智能卡上运行我的代码我必须在我的电脑和智能卡之间提供一个连接器,不是吗?

Abr*_*ham 5

在IDE(例如Eclipse或Netbeans)中编写Java Card应用程序(我们称之为applet)之后,您可以通过以下步骤在真实智能卡上与其进行通信:

  1. 将.java文件转换为.class文件
  2. 使用JCDK(Java Card Development Kit)中的工具将.class文件转换为文件.capconverter
  3. 上传.cap卡上的文件.
  4. 安装上传的小程序.
  5. 使用APDU命令在卡上选择您的小程序
  6. 与您的applet通信.

第1步和第2步:

如果要使用Java Card v2.2.2或v2.2.1兼容卡,只需将Eclipse-JCDE插件和Java Card Dev Kit添加到Eclipse IDE 即可执行步骤1和步骤2 .(一个简单的一步一步的教程,在这里和这里使用这个插件)

如果您想使用Java Card v3.x兼容卡,您可以使用Netbeans IDE 的较新版本(Mine is 7.3),其中包含必要的工具和插件,默认情况下执行步骤1和步骤2.(一个简单的步骤按步骤教程,这里)

在这些步骤中,您将两个5-16字节的数字设置为您的应用程序及其包作为applet AID(标识符)和包AID

请注意,您可以在没有任何IDE且仅使用JCDK-s的情况下执行此步骤,但这有点棘手.此外,NetBeans IDE中添加了另一个Java卡模拟器的仿真JCDK(即命名为CREF和JCWDE)

第3步和第4步:

将智能卡读卡器(仅限智能卡写入器)连接到您的计算机.然后使用JCManager工具(易于使用),或者名为GlobalPlatformPro工具的新工具(易于使用,文档齐全,非常全面),您可以上传.cap文件并单独或同时安装applet.您需要使用卡的身份验证密钥才能上载和安装applet.

第5步和第6步:

通常,您的智能卡读卡器有一个工具可以让您与卡通信(发送APDU命令和接收数据和状态字),但您也可以使用一些免费的开源工具,如OpenSC工具.首先,在其数据字段中使用applet的AID向卡发送SELECT APDU命令.其次,您将其他命令发送到卡.

笔记:

您可以在Python中使用javax.smartcardioJava包或在Python中使用PySCard库来编写步骤3,4,5和6的专有程序.(步骤5和6很容易,但步骤3和4有点难度); )

"APDU"(应用程序数据协议单元)是用于将[接收]命令[响应]发送到[来自]卡的协议.