JavaCard
应用程序开发
三部曲
来源:天极网
内容简介:
Java Card 技术适用于智能卡和其他高度专业化设备的 Java 平台,这些设备的内
存和处理能力都比 J2ME 设备的要求更加苛刻。
智能卡在个人信息安全方面有很大用处。它们可用于添加验证和安全访问到需要高
级别安全的信息系统。保存在智能卡上的信息是便携的。使用 Java Card 技术,你可能
随身携带保存在一个小型并且安全的媒介上的重要并且敏感的个人信息,比如你的病
历、信用卡号或者电子现金余额。
注:
本教程来源于互联网,版权归原作者和出版商所有,仅供个人学习、参考
之用,请勿保存、转载发布、以及用于商业用途,请支持正版。
JavaCard 应用程序开发三部曲
Java 爱好者 http://www.JavaFan.NET 制作
1
基础篇
1、什么是智能卡?
智能卡不是新鲜事物。它们在二十年前在欧洲就以记忆卡片的形式推出了,用于保存关键的电
话信息,以减少盗打付费电话的可能。
智能卡技术是 ISO 国际标准组织的连接技术委员会 1(JTC1)和国际电子委员会(IEC)定义并控制
的一种行业标准。1987 年推出的 ISO/IEC 7816 国际标准系列在 2003 年推出了它的最新的升级版
本,定义了智能卡的各个方面,包括物理特征、物理接触界面、电子信号和传输协议、命令、安全
体系、应用程序标识符和公用数据元素等。
智能卡是一个包含嵌入集成电路(IC)的塑料卡片,类似于一张信用卡。当用作 SIM 卡时,这个
塑料卡片很小,正好能放入手机中。智能卡设计时就极注重高度安全性,窜改一点点内容都会导致
毁坏它包含的信息。
在智能卡使用的某些领域,它们只是仅仅提供受保护的非易失性存储。更高级的智能卡还有微
处理器和内存,用于安全的处理和储存,并且可以用于使用公共密钥或者共享密钥算法的安全应用
程序。智能卡上的非易失性存储是最宝贵的资源,可用于保存秘钥和数字证书。一些智能卡有单独
的加密协处理器,支持象 RSA、AEC 和(3)DES 这样的算法。
智能卡不包含电池,只有在和读卡机连接的时候才被激活。当它被连接时,在执行一个复位序
列之后,卡片处于非激活状态,等待接收来自客户端(主机)应用程序的命令请求。
智能卡可以分为可接触和非可接触。可接触智能卡通过读卡器和智能卡的 8 个触点物理接触来
通讯并工作,而非可接触智能卡依靠在小于 2 英尺的一般距离之内的射频信号通讯。非接触智能卡
的射频通信基于类似于用于保存反盗窃和记录清单的射频标识符
( RFID)
标记的技术。图
1
描述了可
接触和非可接触智能卡:
JavaCard 应用程序开发三部曲
Java 爱好者 http://www.JavaFan.NET 制作
3
图 2a. 带有 Java 功能的智能纽扣
图2b. 带有 Java 功能的 USB 令牌
请参阅 What is a Smart Card?
http://java.sun.com/products/javacard/smartcards.htm
获取更详细的信息。
2、JavaCard 规范
多年以前,Sun 微系统公司实现了智能卡和类似的资源约束设备的潜能,并且定义了一组 Java
技术子集规范来为它们创建应用程序,Java Card 小应用程序。支持这些规范的设备称为 Java Card
平台。在一个 Java Card 平台上,来自不同的供应商的多个应用程序可以安全地共存。
一个典型的 Java Card 设备有一个 8 或 16 位的运行在 3.7MHz 的中央处理器,带有 1K 的 RAM
和多于 16K 的非易失性存储器(可编程只读存储器或者闪存)。高 性 能的智能卡带有单独的处理器和
加密芯片,以及用于加密的内存,并且有一些还带有
32
位的中央处理器。
Java Card
技术规范目前是
2.2
版,由三部分组成:
·
Java Card
虚拟机规范,定义了用于智能卡的
Java
程序语言的一个子集和虚拟机。
·
Java Card
运行时环境规范,进一步定义了用于基于
Java
的智能卡的运行期行为。
·
Java Card
应用编程接口规范,定义了用于智能卡应用程序核心框架和扩展
Java
程序包和
JavaCard 应用程序开发三部曲
Java 爱好者 http://www.JavaFan.NET 制作
4
类。
Sun 还提供了 Java Card 开发工具箱(JCDK) http://java.sun.com/products/javacard/,包含了
Java Card 运行期环境和 Java Card 虚拟机的引用实现,和其它帮助开发 Java Card 小应用程序的
工具。本文的第二部分将详细讲述 JCDK。
Java Card 技术和 J2ME 平台
让我们比较一下 Java Card 和 J2ME 平台技术:
图
. Java Card
技术和
J2ME
平台
CDC 和 CLDC 配置以及它们相关的简表是 J2ME 平台的一部分,而 Java Card 是一个单独创
建来用于智能卡环境的平台。