我想尽快开始智能卡编程。请帮助我使用 javacard 开始学习所需的东西。哪个 IDE(如果有 IDE 支持)、软件和硬件相关?像手机模拟器一样,是否有任何智能卡模拟器,或者如果我必须购买智能卡,请指定这些卡在哪里以及如何获得?
2 回答
关于智能卡编程的一般答案是,您应该准备好浏览令人困惑的工具和技术列表。通常,智能卡开发人员首先会考虑特定的硬件平台:比简单的javacard更具体。
由于您特别提到了 javacard,我们可以重点关注几个起点。
Javacard SDK
您可以从javacard 开发工具包开始。我没有用过最新的——我还在用 2.0.2。该开发工具包非常面向命令行,因此您希望在 IDE 之外完成大部分工作。但是,文档非常有用,应该可以让您快速上手。无论如何,这是一个很好的起点,因为它是官方的。
EclipseJCDE 看起来也很有趣,但我没有用过。我似乎记得另一个旨在构建 javacard Eclipse 工具的项目,但我可能只是在考虑 EclipseJCDE。
IBM 工具
有一次,IBM 发布并维护了一组与 Eclipse IDE 集成的 JCOP 工具。这样做的好处是他们会向您发送一个包含一些开发工具和几张 JCOP 卡的包。烦人的是需要激活码。看看这里。下载链接仍然很好,祝那里列出的电子邮件地址好运。另请注意,这些工具需要旧版本的 Eclipse。构建/调试支持非常好,包括内置的 javacard 模拟器。
全球平台
如果你打算做 javacard 编程,你也应该了解 Global Platform。这是一个智能卡标准,在 javacard 的上下文中,当您需要加载和管理 javacard 小程序时,您需要了解 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。
在这里分享两个我用来学习javacard的新免费工具。希望能帮助其他人轻松上手javacard。
JCIDE:它是专为 Java Card 编程语言设计的集成开发环境。
PyAPDUTool:它是一个方便的工具,可以通过连接到PC的读卡器与卡进行通信。它是一个 PC/SC 兼容的应用程序。