新一代Java智能卡技术研究
新一代Java智能卡技术研究马旭,王立,彭晓锋北京邮电大学电信工程学院,北京 (100876)E-mail:marxuxp@摘要:本文较详细地讨论了最新的Java 2.2智能卡技术,包括系统结构、运行时环境、编程模型、Java类库支持、虚拟机原理及设计,最后简要介绍了Java2.2智能卡的安全机制。
关键词: Java Card智能卡2.2,JCRE,JCVM,安全性1.引言智能卡也称为芯片卡、IC卡。
是将集成电路芯片封装在一个塑料基片上,通过芯片内的通信模块,智能卡可以和外部设备通信,完成数据传输、存储和处理,实现各种业务。
早期的智能卡实际上并不是严格意义下的智能卡,只是一种存储卡。
因为它没有片上微处理器,而只有少量的存储单元和固化的逻辑电路。
随着技术的发展,出现了微处理器卡,能够提供更高的安全性和更多的功能。
这种卡不能直接和外部交换数据,而是通过外部设备对微处理器发送一组指令,再由微处理器执行相关的操作,并把数据返回给外部设备。
由于Java语言的平台无关性、高安全性和易开发性,在智能卡应用中有相当的优势。
Java 语言刚诞生不久的1996年11月,美国Schlumberger 产品中心首先介绍了Java智能卡的API,并决定将智能卡开发重点转到保护信息安全上来。
Schlumberger 提出了Java API草案并创立了Java智能卡论坛[1]。
在广大厂商的支持下,SUN推出了Java Card 1.1规范,为Java智能卡定义了技术标准,并陆续推出了2.0、2.1、2.2版,提出了更为完整的技术要求。
目前,Java 智能卡技术已经趋于成熟,得到了广泛应用。
2.Java智能卡体系结构在智能卡硬件平台上,通过构建一个硬件或软件系统,以支持Java语言下载、运行,称为Java智能卡。
Java智能卡继承了Java技术的平台无关性,将硬件和软件分离,简化了应用程序开发,提高了程序移植性。
Java智能卡由以下几部分组成[2]:z硬件系统包括微处理器、存储器、通信电路、加密协处理器等模块z与智能卡硬件相关的本地方法集完成基本的I/O、存储、加密解密等对硬件的操作z JCVM(Java Card Virtual Machine)解释器完成对类文件的解析、构建Java栈和帧结构以支持Java字节码的执行z Java智能卡类库包括支持Java智能卡运行的核心类库和扩展类库z Java智能卡应用管理组件完成对卡上Applet的安装、注册和删除z Java智能卡运行环境包括支持卡内的Applet间的安全机制和对象共享机制,支持卡内的事务处理和异常处理z Java智能卡应用程序运行智能卡上的Java 应用程序系统结构如图1[2]。
图1 Java 智能卡系统结构 3.Java 智能卡应用程序开发和运行3.1 Java 语法规范Java 智能卡支持一个简化的Java 语法集,删除了较复杂和耗时的部分,但保留了面向对象特性。
表1[2]列出了一些支持和不支持的Java 特性表1 Java 智能卡支持和不支持的Java 特性Java 智能卡支持特性 Java 智能卡不支持特性简单数据类型 boolean byte short大数据类型 long float 等 一维数组多维数组 Java 包 类 接口以及异常字符和字符串 面向对象特性:继承 多态 虚方法 重载 动态对象生成 存取范围动态类装载 安全管理 垃圾回收和结束 线程 对象编序 可选int 关键字和32位整数数据类型对象克隆Java 智能卡也有相应的包支持,但也只是标准Java 的一个子集。
具体介绍请参见表2[2]。
表2 JCRE2.2提供的API包功能 Java.ioJava.io 的子集,基本I/O 操作 ng程序开发的基本支持类 Java.rmi定义了远程调用接口,以支持远程方法调用 Javacard.framework提供用于建立Applet,提供相应的类和接口框架 Javacard.framework.service提供允许Java 卡Applet 被设计为服务集合体的类和接口框架 Javacard.security提供Java 卡安全服务和加密机制的公共类和接口 Javacard.cyipto 包含为实现java 卡主动安全机制和加密框架的外部控制功能的扩展包编写的Java源程序首先要编译为二进制类文件,需要将此类文件进一步转换,以使其结构更紧凑,适宜于安装在智能卡上。
转换后的文件(Converted Applet, CAP)即为安装文件。
最后需要下载CAP文件,并完成其卡内安装注册。
3.2 运行时环境(JCRE)应用程序在卡内的执行由运行时环境决定,有以下三个状态:z选中状态(Select)只有应用程序被选中后才能进入处理状态与读写器交互。
z处理状态(Process)此时Java智能卡和读写器通信,执行应用程序中的process方法,通过重载此方法可以实现不同的功能。
z取消选择状态(Deselect)此时应用程序为非激活状态。
JCRE2.2支持多通道[3],最多可以有4个逻辑通道同时打开,但是由于Java卡并不支持并行同通信,所以实际上只有一个Applet处于活动通信状态。
其中Channel0为基本通道,不能够关闭,其他通道需要通过通道选择或者文件选择APDU打开。
当卡复位时,只有Channel0是打开的。
由多通道特性引出了Multiselectable概念。
即当一个通道选择了一个Applet后,其他通道也可以选择相同或者在同一个包中的Applet,具有Multiselectable性质的包需要实现Multiselectable接口。
一个Applet有多个实例在不同通道运行并不会造成信息的混乱,JCRE 精心设计的安全机制能保证两者的隔离和各自信息的安全。
有两种方法选择通道,即通道选择和文件选择,对应MANAGE CHANNEL OPEN APDU 和SELECT FILE APDU指令。
关闭通道时可以用MANAGE CHANNEL CLOSE APDU指令。
这些操作都对应一个复杂的管理流程,请参阅相关文献[2] [3]。
Java Card 2.2允许为每一个通路选择一个默认的Applet,当复位启动的时候就隐含了一个Applet实例。
打开其他通路的时候也可以有默认Applet或者选择其他Applet。
JCRE2.2新增了对远程对象调用(JCRMI)的支持,使得读卡器可以调用存储在卡内的远程方法。
实现这种机制的关键是在Javacrad.framework.service包中增加类RMIService。
请求的远程调用服务都被传递到这个类中的方法来处理。
JCRMI支持标准RMI服务的一个子集。
3.3 Java卡虚拟机(JCVM)3.3.1 JCVM体系结构Java卡虚拟机简称JCVM,是Java程序的运行环境,目前有两类JCVM实现方案。
一种是硬件的Java微处理器[4] [5] [6] [7],可以在硬件上直接执行Java字节码。
可以使用专用Java 微处理器,或者使用Java协理器。
此方案的优点是执行速度快,但是电路比较复杂,成本高,适用于一些高端应用。
另一种是软件实现[1] [2],即在智能卡上构建一个Java解释器,逐条将Java语句解释为机器码执行。
优点是结构简单,成本低,但是执行速度较慢。
解释型JCVM分为卡内和卡外两部分。
卡外虚拟机工作在PC上,主要执行文件编译、转化,生成安装文件。
卡内虚拟机工作在智能卡上,负责解释执行程序代码。
通过这种机制,Java保持了其平台无关性。
JCVM使用了一种称为token的动态链接技术[3]。
当包A(一个CAP文件)引用包B中的对象时,它并不知道此对象对应的具体物理地址,这时就可以动态地加载token来定位要引用对象的物理地址。
本质上token是CAP文件中的一些表的索引。
转化器在解析Java的类文件的时候,根据被引用的EXP文件,将类文件中使用的其他包中对象的源代码字符串转化为相应的token值存储在CAP文件中。
实际上就是一些偏移量,这些偏移量是相对于CAP文件开始位置的偏移量。
在智能卡上解析CAP文件的时候,如果遇到一个token,就说明这时候要用到别的包的对象了。
便将此token作为一个索引,在相应的表〔table〕或者数组中去查找,得到所引用对象在内存中的绝对位置。
3.3.2 CAP文件安装CAP文件的安装和解析是一个比较复杂的过程,下面予以简要介绍。
CAP文件一共有12个组件[4]。
分别为:COMPONET_Header, COMPONET_Directory, COMPONET_Applet, COMPONET_Import, COMPONET_ConstantPool, COMPONET_Class, COMPONET_Method, COMPONET_StaticField, COMPONET_ReferenceLocation, COMPONET_Export, COMPONET_Descriptor, COMPONET_Debug。
其中Applet,Export和Debug组件为可选组件,只有当需要相应功能时才需要加入。
每个组件封装为一个CAP包,包含在Jar包中。
最后在卡上只保留了5个组件:COMPONET_Method,COMPONET_Class,COMPONET_ConstantPool,COMPONET_StaticField和COMPONET_Export。
其余的组件只是安装时提取有用信息而不在卡中保存。
Java应用程序写到存储器之后,还不能立刻使用,还需要初始化和个人化。
初始化是将一些初始信息下载到永久存储区,它们是卡的通用信息。
个人化是将个人信息写到卡上,包括物理个人化和电子个人化。
物理个人化是在卡表面写上个人信息;电子个人化是将个人信息写到永久存储器中。
3.3.3 JCVM实现JCVM采用了面向堆栈的结构,但是做了进一步简化。
堆用于存放Java程序运行时创建的对象和数组,在字节码的对象创建指令运行时,JCVM将为其分配相应的空间存储。
栈主要用于方法调用时保存返回信息和上下文。
JCVM中只设置了4个寄存器,分别是pc寄存器、frame寄存器、var寄存器和optop寄存器。
pc寄存器指向当前方法中要执行的下一条语句;frame寄存器指向帧结构运行环境;var寄存器指向帧结构中局部变量区的最底端;optop指向帧结构中操作数栈的栈顶。
4. Java智能卡的安全性和完整性智能卡要得到广泛应用,首先就要解决信息的安全性和完整性问题。
Java卡中提供了多种加密和安全措施[8] [9] [10]。
每个阶段都有对应的安全措施,在文件下载安装时有相应的合法性检查,程序运行时提供数据保护和隔离机制,并提供了各种标准加密包以简化加密编程。
JavaCard技术运用于校园一卡通的探讨
2 智 能 卡 和 J a卡 v a
在校 园一卡通工程 中, 核心 就在 于智能 卡。智 能
九
期
 ̄DR C P E26 0 l Kl O U R0. O q M T 0 7
维普资讯
开 发 案 铡
卡 在英 文 中称 为 “ m r ad , 称 为 集成 电路 卡 , S at r ”也 C 即
维普资讯
开 发 案 例。
缓 黾圆苛 ◎口 题国虢盼
傅 俊 , 许 柳 威
●
( 江经 贸职业 技术学 院 ,杭州 3 0 1) 浙 10 8
摘
要 : aa r 一种新 的智 能卡, Jv Cad是 它基于 Jv 言 , aa语 能运 行 多个卡应 用  ̄ (p lt。文 中介 绍 了 A pe )
3 Jv a卡 的体 系 结 构 a
J v 除 硬 件 环 境 外 , 包 括 各 种 软 件 构 件 。 aa a a卡 还 Jv 卡 的 体 系 结 构 如 图 2所 示 。 .
有写 入数据 和存储 数据 的能 力。严 格地 讲, 只有 C U P
卡 才是 真正 的智 能卡 . 要包 含 一个 通讯 界 面 、 主 内存
的探 讨 及 其 建 设 方 案 。
关 键 词 : matC r Jv C r S r ad; aa ad;校 园 一 卡 通 ;安 全 机 制
引 言
随着近几 年现代 化信息技 术 的高速 发展 , 高等 院 校 也 已逐 步 向数字化 、 息化 、 信 网络化 迈进 , 遍使 用 普 计算 机系统来 进行各 个部 门的管理 工作 。 管理信息 化 水平 的提 高将极 大 提高 整个 学校 各个 部 门 的运作 效
最新锦州师范高等专科学校计算机专业毕业设计选题表3
基于MVC的教师教学管理系统的设计和实现
101
基于java平台的P2P应用程序的实现
102
.NET环境下ArcGIS Engine的开发技术研究
103
基于 AJAX的信贷审批管理信息系统的设计与实现
104
基于Java EE的飞机排班系统研究
105
基于的教育教学管理平台的设计与实现
53
基于的校园网上超市交易系统设计及实现
54
基于.NET的出差管理系统的设计与实现
55
秦皇岛燃气公司经营管理系统的设计与实现
56
基于.NET的初中语文自主合作探究学习平台的设计与开发
57
基于IDE模式的Java实验平台研究
58
基于的高校学生管理系统的设计与实现
59
基于WEB学生缴费管理系统设计与实现
27
华聚能源股份有限公司全方位动态安全管理信息系统
28
面向软件演化再造的Java源代码管理和阅读分析器
29
基于的房产信息网络平台的设计实现
30
基于.NET框架的燃气数据采集管理系统的设计
31
高校就业信息管理系统的设计与实现
32
基于.NET平台煤炭企业ERP的研究与实现
33
基于Java EE的企业分销资源计划管理系统的设计与实现
106
基于.NET的政府网站多媒体信息资源系统的设计与实现
107
客户质量抱怨系统的设计与实现
108
基于.NET的高校学籍管理信息系统的设计及实现
109
雅安职业技术学院信息中心设备管理系统的设计与实现
110
Java模式设计探讨与在互联网监控系统项目中的应用
利用智能卡实现刷卡安全支付模型研究
《#l■V81AuLc。
LNEV31.利用智能卡实现刷卡安全支付模型研究王禄佳石巍粱宝慧(石家庄铁道学院计算机与信息工程分院河北石家庄050043)电千科学[摘要]为了保障银行卡刷营交易安全,文章首先简要地介绍智能卡技术,并利用智能卡安全特性提出使用智能卡实现刷卡安全支付模型,然后利用Java卡对本模型身份认证过程进行模拟实现。
[关键词]Java#智能k安全支付身份认证中图分类号:TP309.2文献标识码:A文章编号:1671--7597(2008)1110035--02一、前曹我国银行卡绝大部分是磁卡,与磁卡相比智能卡具有较高的安全性和可靠性。
由于用户密钥存贮于卡内,密钥在不出卡的情况下,就可以完成对数据加解密和签名。
这样就路避免不法分子窃取用户密钥,仿冒用户身份,从而达到真正防伪的功能。
目前智能卡已经广泛应用于通讯、数字电视、医疗和政府办公等大型网络系统中。
由于智能卡应用越来越广泛,银行卡智能化也快速兴起。
Sun公司与中国银联宣布合作建立“多应用智能卡联合实验室”[1]。
使得国内银行卡向智能卡迁移的步伐不断加快。
智能卡不仅可以应用于银行类安全交易而且还可以应用于电子商务类安全交易。
=、智能卡简介智能卡(Sm ar t C a r d)又称集成电路卡,即I c卡。
智能卡[2]主要由微处理器(肝u)、程序存储器(R O M)、临时工作存储器(R A M)、用户存储器、输入输出接口、安全逻辑及加密运算协处理器等组成。
片内操作系统C O S(Chi p0per a t i ng sys t em)是智能卡芯片内的一个监控软件,它是根据I c卡特点而开发的专用操作系统。
C O S完成的主要功能[3]:(I)控制卡与外界的信息交换;(2)管理卡上各种存储器;(3)在卡内执行读k器的各种操作命令。
三.商店爿卡安全支付援型此模型毛要用于用户在商店购买商品时通过银行智能卡进行刷卡交易的安全支付。
主要参与主体由银行、商店、客户组成。
智能卡技术
(5)商店雇员的作弊行为。接口设备写入卡中的数据不正确,或雇员私下将
一笔交易写成两笔交易,因此为了避免出现这种情况,接口设备不允许 被借用、私自拆卸或改装。
专用芯片,就是专为智能卡而设计、制造的芯片,如Philips公司的PCB
2032/2042芯片。这种芯片符合目前智能卡的ISO国际标准,具有较高的 安全性。
-6-
安全逻辑的存储器芯片
-7-
带有加密运算的智能卡用微处理器芯片结构
-8-
智能卡的卡型分类
1.按组成结构分类 2.按读写方式分类 3.按数据交换格式分类 4.其他类型
第十一章 智能卡技术
-1-
第十一章智能卡技术 1
1. 智能卡技术概述 2. 智能卡相关技术 3. 智能卡与信息安全 4. 金卡工程与智能卡应用
-2-
智能卡
智能卡是将具有存储、加密及数据处理能力的集成电路 芯片镶嵌于塑料基片中,它涉及微电子技术、计算机 技术和信息安全技术等领域。作为一种成熟的高技术 产品,智能卡提高了人们生活和工作的现代化程度, 已成为一个国家科技发展水平的标志之一。
-17-
应用前景广阔
中国的智能卡市场面临着一次新的发展机遇。据分析,中国智 能卡潜在的市场容量高达25亿张以上,其中居民身份证卡10 亿张、城镇社会保险卡3亿张左右、企业卡1.6亿张、银行卡 1亿张、非银行支付卡2亿张。
-18-
进阶阅读和习题
-19-
-11-
智能卡的保密性能的3种加密认证方式
JavaCard简介(中文版)
1、简介Java Card 3 平台由两个版本组成Classic Edition和Connected Edition:Classic Edition是一个基于 2.2.2版本的前端兼容的演化平台,针对资源有限的设备仅支持applet-based应用。
如果你只对Classic Edition中提供的功能感兴趣的话就可以忽略Connected Edition。
Connected Edition提供了一个显著增强的运行时环境和一个新的虚拟机。
包含了一些新的面向网络的应用,例如提供了针对web应用的Servlet APIs,并且支持一些新的applet功能增强。
一个Connected Edition的应用可能会用到Classic Edition提供的特性,因此这两个版本的规范应用一起使用。
1.1动机Java Card技术使得用Java编程语言编写的程序可以运行在智能卡和其他小的资源紧张的设备上。
开发人员可以用标准的软件开发工具和环境来编译和调试程序,然后把程序转化成能被Java Card支持的格式。
Java Card上的应用程序被称为Applet,或者更明确的称为Java Card Applet 或者Card Applet(为了和浏览器Applets做区分)。
Java Card技术使得用Java语言编写的程序可以在智能卡上运行,然而如此小的设备远不足以支持Java平台的全部功能。
因此,Java Card平台仅仅支持一个被仔细挑选,定制的Java平台属性的的子集。
这个子集使得写的程序在小设备上有更好适应性,并且保持了Java语言的面向对象的特性。
一个简单的途径是定义一个代码可以在所有Java Card环境下移植的Java虚拟机的子集。
结合JVM的子集规定和信息,智能卡提供商可以在Java Card规范上构建自己的工具。
虽然手段是可行的,但有一个严重的缺点,目标平台将会丧失字节码的移植性。
Java平台的规范允许Java的代码在所有Java平台上移植,Java的“写一次,所有地方运行”的属性或许是平台的最重要的特性。
java card标准
java card标准
Java Card是Java的一个子集,专为智能卡等资源受限设备设计。
其以Java Card Platform specifications(爪哇卡平台规格)为依循标准,此技术规格标准由升阳电脑所研发。
Java Card的主要特点及诉求在于移携性与安全性。
在语言级别,Java Card的所有语言结构都存在于Java中并且行为相同。
这意味着Java Card程序能被Java编译器编译成Java类文件,类文件由特定于Java Card平台的工具进行后续的处理。
但是Java Card 不支持许多Java语言功能,例如char、double、float和long类型,以及对象的finalization、对象克隆等。
此外,Java Card的字节码是由Java Card虚拟机运行的Java Card 字节码,是标准Java虚拟机运行的Java字节码的功能子集,但具有不同的编码以优化大小。
与通过编译相同Java源代码获得的Java小程序相比,Java Card小程序通常使用更少的字节码。
这节省了内存,这是资源受限设备(如智能卡)的必需品。
同时,作为设计权衡,不支持某些Java语言功能和大小限制。
存在克服大小限制的技术,例如将应用程序的代码分成低于64K限制的包。
以上内容仅供参考,建议查阅关于java card标准的资料获取更全面和准确的信息。
Java智能卡技术研究
Java智能卡技术研究摘要:Java智能卡技术制订了一种安全、便捷且多功能的智能卡平台规范,已成为智能卡的主流发展趋势。
随着我国信息化建设的不断推进和信息技术的持续发展,Java卡已在身份认证、电子支付和信息安全领域得到了广泛的应用。
关键词:Java 智能卡技术研究Java智能卡,顾名思义就是一种能运行Java语言程序的智能卡。
其实质是,在资源非常有限的智能卡环境中,实现对Java语言部分子集的支持,从而实现能够在智能卡中运行利用这部分Java语言子集开发的应用程序的目的。
因此,可以说Java智能卡是Java嵌入到智能卡中的一种新的应用。
Java卡的出现,使原有嵌入式设备只能实现单一或有限应用的局面得以突破,使得真正意义上的一卡多应用成为现实。
1 Java智能卡的基本概念Java语言的最大特点是平台无关性,即在不同的系统平台上,都可以使用相同的代码。
Java语言的这一特性使得应用程序的移植变得更加容易。
Java智能卡又称为Java Card,Java智能卡技术的原理是在智能卡硬件系统上构建一套软件平台。
该软件平台需要实现Java程序的下载、安装以及执行功能。
其中Java程序的下载和安装功能由Java 智能卡的运行环境实现,而Java智能卡程序的执行则需要Java智能卡的运行环境、卡内虚拟机以及Java智能卡基础类库共同协调完成。
因此,可以说Java智能卡实际上是智能卡硬件系统和提供解释执行Java应用程序的软件系统的有机结合体。
2 Java智能卡的基本结构及原理2.1 从系统结构上看,Java智能卡主要由Java Applet应用层、Java 智能卡软件平台层,以及智能卡本地系统层1)Java Applet应用层。
Java智能卡规范,将运行于Java智能卡中的应用服务程序称为Java Applet。
该层相当于Java智能卡应用系统中的应用服务层。
一个Java智能卡中,可以根据需要下载多个应用各不相同的Java Applet应用程序,从而实现一卡多用的功能,例如,可以在一个Java智能卡中,下载用于实现地铁、汽车、网银、水费、气费等代收功能的Java Applet应用程序。
Java语言开发智能卡应用程序
t net 1.4 Java 智能卡
ne k. 1996 年 11 月,Sun 公司正式发布 JAVA Card1.0 版本的规范。现在 Java 卡的最新的规范是 2.2 k. oo 版。
oo nb 其实 Java 卡的实质是一部功能齐全、但规模较小的电脑,其硬件主要是为了保证 Java 卡的运 b c 行环境的需要。
※ 3 ※
.cnbook Java 卡的出现为不同厂商的智能卡提供了统一的开发环境,95%智能卡制造商已经支持了 Java w 卡的 API。
ww 应用 Java 语言开发的智能卡程序可以应用在所有的 Java 卡上。 et (2)Java 是面对对象的编程语言,面向对象的 API 简化了 Java 卡的 Applet 与终端或后台服务 t n 器的通信。 ne k. (3)由于智能卡程序使用 Java 语言,开发人员可以选择所熟悉和喜欢的开发工具,如 JBuilder。 k. oo 因为可以选择面向对象的开发工具,快速开发和调试 Java 卡的应用程序成为了可能。 oo nb 在以前的智能卡开发环境中,应用程序需要下载到卡的 ROM,而卡的 ROM 程序是无法更新的, c 所以调试卡的程序将占用大量的开发时间。 w. (4)Java 卡支持多种用途。 ww Java 卡可以同时存在多个不同的应用,这些应用可以来自不同的卡供应商。例如它可以有电子 t 钱包功能,也可以有身份鉴别功能,也可以有门禁系统功能。 t ne (5)Java 卡支持程序的增、删、改操作。 ne k. Java 卡上的应用可以进行删除或者添加新的应用,不需要更换新的智能卡,大大增强智能卡的 . o 灵活性。 ok bo 综上所述,Java 卡的出现统一了智能卡的编程接口(API),统一了智能卡的编程语言(Java 语 bo cn 言),使智能卡成为统一标准的产业,这便是它如何受欢迎的原因。 cn w. Java 卡内有一个能执行 Java Applet 的虚拟机,它提供 Java 卡编程的 API,使开发人员不需要 . w 了解智能卡的硬件和专用技术就可以进行智能卡的应用开发。 w t Java 卡的 Applet 能够在不同卡片的环境执行,通过虚拟机的机制来达到跨平台的能力,这与 Java t ne 语言可以跨平台运行的原理相同。 ne k. 1.5 智能卡开发流程图 ok. boo Java 智能卡程序的开发流程图如图 3 所示。
JAVA卡技术概述
JA V A卡技术概述---------------------------------------------------------------------------------------------------------------------- 编辑整理:编辑:王鹏来源:门禁关键字:JA V A爪哇卡(JavaCard)技术可使以爪哇语言所写成的程序,在智能卡和其它资源受限装置上执行。
本文将让您一览爪哇卡技术,包括该系统的结构和组件。
本概述的目的在让您对爪哇卡技术有一个整体性了解,并介绍有关爪哇卡系统的重点和基本概念,以利程序开发者设计程序之用。
一、爪哇卡技术之组件爪哇卡技术包括下列部分:*精简后之爪哇程序语言以及适合智能卡应用的虚拟机(JavaCardVirtualMachine,JCVM)定义*核心之爪哇卡应用程序接口(ApplicationProgrammingInterface,API)及其延伸部分*爪哇卡之执行时期环境(JavaCardRuntimeEnvironment,JCRE)爪哇卡应用程序接口和执行时期环境是以智能卡工业标准ISO7816为模型而设计,因此,爪哇卡平台可轻易支持跟ISO7816第一到第六部分兼容的智能卡系统和应用。
爪哇卡应用程序被称为applets。
爪哇卡平台可支持多重应用(multiapplication)环境。
爪哇卡应用程序则是在爪哇之执行时期环境内处理和执行。
二、精简之爪哇卡语言若智能卡的程序可使用爪哇程序语言的所有功能写成当然最好,不过对智能卡和其它资源受限装置来说,由于运算资源有限,要完全支持爪哇程序语言是不可能也不切实际的事。
一般智能卡是以1K的随机存取内存(RAM),以及16K的非挥发性内存(EEPROM或RAM)和24K的只读存储器(ROM)规格出现,因此,爪哇卡平台仅能支持经小心选取且已规格化而有精简功能的爪哇语言。
此精简爪哇语言包含之功能,适于设计智能卡以及其它小型装置的程序,同时还能保留爪哇程序语言以对象为导向(object-oriented)的能力。
智能卡多应用操作系统的发展趋势及研究
。这
图3 ISO78164 文件系统
对智能卡的 里所说的" 内部" 或" 外部" 是以智能卡作为参照点, 认证称为内部认证, 对外部实体的认证称为外部认证 。 同时进 行内部认证和外部认证可以达到对智能卡和外部实体的认证, 称为双向认证。 用户认证是对智能卡持有人的合法性进行认证的过程, 也 称为用户验证, 认证的方式通常是由用户向智能卡出示仅他本 智能卡通过对该个人密码的正确性进行 人才知道的个人密码,
Internet technology 技术的发展成果在应用时有实际的需求但还没有在智能卡上体 现, 如大容量存储器、 高速 USB 接口和互联网技术等。 它们和 智能卡耦合可能产生各种新的特点和功能, 使得智能卡能更好 地为社会发展服务。
0
引
言
随着信息技术的飞速发展, 信息安全的要求也日益提高, 智 也得到很大的发展, 应用领域 能卡作为信息系统的安全性载体, 广泛应用于金融、 电信、 社保、 公安、 税务、 交通、 公用 不断扩大, 事业和电子政务等多个领域 。基于智能卡的行业应用之间逐渐 显示出互相融合的特征, 如银行发行的公交联名卡( 金融卡和 公交卡的耦合) 、 金融社保卡( 金融卡和社保卡的耦合) 和手机 支付卡( 电信 SIM 卡和金融卡的耦合) 等。 智能卡的行业融合 就是一卡多用或一卡通用, 行业融合带来的多样性需求对智能 、 卡在安全性 开放性和可移植性等方面提出了更高的要求 。 随 智能卡本身的硬件能力和 10 年前 着半导体技术的发展和进步, 相比得到了很大的提高, 但智能卡多应用操作系统的发展却相 对滞后。这体现在几个方面。 第一, 卡上多应用的管理机制不 能满足现在的市场发展需求, 多个发卡方不能很好地协同管理 。 包括资源和应用本身 第二, 开发门槛较高。目前的卡片 卡片, Native 卡的应用必须由专 主要有 Native 和开放式的卡片两种, 业厂商进行开发工作。而开放式的卡片如 Java 卡, 由于缺少文 通用的安全框架和面向智能卡应用的通用应用开发框 件系统、 [5 ] 架, 开发门槛依然很高, 很难开发出高效的程序 。 而且多个 程序之间也很难共享代码资源 。 第三, 这些年来半导体和软件
