完整的Java Card应用程序由
一个后端应用程序和系统、
一个主机(卡外)应用程序、
一个接口设备(读卡器)和
卡上小应用程序、用户证书和支持软件组成。
所有的这些元素共同组成一个安全的端到端应用程序:
一个典型的Java Card应用程序不是孤立的,而是包含卡端、读取端和后端元素。让我们更详细的讲述一下每个元素。
后端应用程序和系统
后端应用程序提供了支持卡上Java小应用程序的服务。 例如,一个后端应用程序可以提供到安全系统和卡上的证书的连接,提供强大的安全性。在一个电子付款系统中,后端应用程序可以提供到信用卡及其他付款信息的访问。
读取端主应用程序
主应用程序存在于一个例如个人计算机这样的台式机或者终端、电子付款终端、手机或者一个安全子系统中。
主应用程序处理用户、Java Card小应用程序和供应商的后端应用程序之间的通讯。
传统的读取端应用程序是使用C编写的。近来J2ME技术的广泛普及有望使用Java实现主应用程序;例如,它可以在一台支持MIDP和安全信赖服务应用编程接口(Security and Trust Services API)手机上运行。
智能卡供应商一般不仅提供开发工具箱,而且提供支持读取端应用程序和Java Card小应用程序的应用程序编程接口。例如OpenCard Framework http://www.opencard.org/,就是一个基于Java的应用程序编程接口集,隐藏了来自不同供应商的读取器的一些细节,并且提供了Java Card远程方法调用分布式对象模型和安全信任服务应用编程接口(SATSA),我在本文后面一部分讨论它们。
读取端卡片接受设备
卡片接受设备(CAD)是处于主应用程序和Java Card设备之间的接口设备。一个CAD为卡片提供电力,以及与之进行电子或者射频通信。一个CAD可能是一个使用串行端口附于台式计算机的读卡器,或者可能被整合到终端内,例如饭店或者加油站内的电子付款终端。接口设备从主应用程序到卡片转送应用程序协议数据单元( Application Protocol Data Unit,简称APDU)命令(在后面讨论),并且从卡片向主应用程序转送响应。一些CAD有用于输入个人识别号码的键盘,有的可能还有显示屏。
卡片端小应用程序和环境
Java Card平台是一个多应用程序环境。在图4中我们可以看到,卡片上可能存在一个或多个Java Card小应用程序,还有支持软件--卡片的操作系统和Java Card运行时环境(JCRE)一起。JCRE由Java Card虚拟机、Java Card Framework和应用程序编程接口以及一些扩展应用程序编程接口组成。
所有的Java Card小应用程序扩展Applet基本类,并且必须实现install()和process()方法;JCRE在安装小应用程序的时候调用install(),并且在每次有一个进入的用于小应用程序的APDU的时候调用process()。
Java Card小应用程序在被装载的时候实例化,并且在断电的时候保持运行。Java Card小应用程序起一个服务器的作用,并且是无源的。在一张卡片被加电以后,每个小应用程序都保持非运行的状态直到它被选择,在此时可能会做初始化。小应用程序只有在一个APDU被发送给它以后才被激活。一个小应用程序如何激活(被选择)在"一个Java Card小应用程序的生命周期"一节中描述。
与Java Card小应用程序通讯(访问智能卡)
你可以使用两种模型中的任何一种来在一个主应用程序和一个Java Card小应用程序之间通信。第一个模型是基本消息传送模型,第二种是基于Java Card远程方法调用(JCRMI),这是J2SE RMI分布式对象模型的一个子集。此外,SATSA通过一个基于更加抽象的应用编程接口的普通连接框架(Generic Connection Framework,简称GCF)应用编程接口,让你要么使用消息传递要么使用JCRMI来访问智能卡。
分享到:
相关推荐
关于Java Card相关基本知识,Java Card技术相关原理,具体包含了JavaCard的接口和开发过程。
JAVA APPLET,JAVA环境配置
javacard 应用程序开发 三步曲, 清晰完整版, 介绍了javacard 程序开发的基本流程, 很适合入门
Java Card 技术适用于智能卡和其他高度专业化设备的 Java 平台,这些设备的内 存和处理能力都比 J2ME 设备的要求更加苛刻。 智能卡在个人信息安全方面有很大用处。 它们可用于添加验证和安全访问到需要高 级别安全的...
该书通俗易懂。 Java Card技术适用于智能卡和其他高度专业化设备的Java平台,这些设备的内存和处理能力都比J2ME设备的要求更加苛刻。
Javacard应用程序开发,一本较好的参考资料。
javacard开发环境 Eclipse 配置完成 安装了jdk后可以直接开发
目前常见的智能IC卡运行着JavaCard虚拟机,智能IC卡上可以运行由精简后的Java语言编写的卡应用(简称Applet)。智能IC卡的Applet不能自己启动,必须由外部终端(例如POS机,地铁刷卡终端等)向卡片发送Select命令,...
javacard应用程序开发的三部曲!!!!!!
Hello JavaCard源码,非常简单JavaCard入门工程
oracle最新的3.04javacard规范
JAVA CARD 3.0.4 规范,JAVA CARD 开发用得到的
JAVA CARD 开发宝典 对APDU JAVACARD iso7816 iso14443 都有讲述
Sun JavaCard培训材料.ppt
javaCard开发环境配置 利用eclipse进行javacard的开发
javacard 运行环境 eclipse 已经配置
javacard3.0.1虚拟机规范classic版本。
压缩包里面有8份关于智能卡系统,也就是JavaCard Cos的文档资料,pdf和ppt的形式。有JavaCard API的,JavaCard Cos原理讲解的,有JavaCard Applet开发的等等。
比较基础的JavaCard入门资料,很经典,新手必看
关于Java Card v2.2.1 API制作的chm文档