开始使用Javacard进行智能卡编程所需的要素

8

我希望尽快开始智能卡编程。请帮助我了解使用JavaCard进行学习所需的内容,包括哪些IDE(如果有支持的IDE)、软件和硬件?像手机模拟器一样,是否有智能卡模拟器,或者如果我需要购买智能卡,请指定在哪里以及如何获取这些卡?

2个回答

18
关于智能卡编程的一般回答是,你需要准备好浏览一份混乱的工具和技术清单。通常情况下,智能卡开发者会从一个特定的硬件平台开始考虑,这比简单的 "javacard" 更加具体。
既然你特别提到了 javacard,我们可以关注一些起点。
Javacard SDK
你可以从 javacard dev kit 开始。我没有使用最新版本 - 我还在使用2.0.2。这个 dev kit 是非常命令行导向的,所以请期待在IDE之外完成大部分工作。然而,文档非常有帮助,并且应该可以让你很快上手。无论如何,它都是一个不错的起点,因为它是官方的。
EclipseJCDE看起来也很有趣,但我没有使用过它。我似乎记得另一个项目旨在构建javacard Eclipse工具,但我可能只是在想EclipseJCDE。
IBM工具
曾经,IBM发布和维护了一套与Eclipse IDE集成的JCOP工具。这个好处是他们会向您发送一个包含一些开发工具和几张JCOP卡的软件包。令人烦恼的是需要一个"激活码"。可以在这里看看。下载链接仍然有效,请祝你好运使用那里列出的电子邮件地址。还要注意,这些工具需要较旧版本的Eclipse。构建/调试支持非常好,包括内置的javacard模拟器。

全球平台

如果您计划进行javacard编程,您还应该了解全球平台(Global Platform)。它是一个智能卡标准,在javacard的上下文中,当您需要加载和管理javacard applets时,您需要了解GP规范。这对于使用JCOP卡是必需的。要获取最新的GP规范,请搜索“GlobalPlatform Card Specifications”。您需要非常熟悉基本的智能卡概念,例如APDU。

硬件

对于我来说,硬件选择过于复杂,无法提供有用的建议,除了上面提到的JCOP东西。正如我所提到的,如果您可以使用IBM套件,则可以通过Eclipse工具获得良好的JCOP/javacard模拟器。我相信还有其他卡模拟器可用。

等等。

除此之外,智能卡程序员使用的其他技术规范有很长的清单,不幸的是其中许多规范并不是免费提供的(ISO文档)。如果您将要进行GSM编程,我认为您可以获得所有GSM规范,请搜索ETSI GSM规范。 GSM 11.11对于学习更多关于APDU命令/响应的内容非常有用,如果没有访问ISO规范(例如ISO 7816-4)。

1
对于初学者来说,建议使用哪种读写器设备和Java卡呢? - nish1013
1
截至2016年6月,JC SDK已经迁移,现在可以在http://www.oracle.com/technetwork/java/embedded/javacard/downloads/javacard-sdk-2043229.html找到。 - dgnuff

3

在这里分享我正在使用的两个新的免费工具,用于学习Javacard。希望能帮助其他人轻松入门Javacard。

  1. JCIDE:这是一个专门为Java Card编程语言设计的集成开发环境。

  2. PyAPDUTool:这是一个方便的工具,可以通过连接到PC的读卡器与卡片通信。它是一个符合PC/SC标准的应用程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接