Java Card

Java Card简介
  引言
智能卡简介
    在当今的信息化社会中,各式各样的卡在人们生活的各个方面发挥着越来越重要的作用,我们进入宾馆房门时有门进卡,在餐厅吃饭时有饭卡,在商场购物时有VIP卡,打电话时有IC电话卡等等,这些卡都有一些相同的特征,他们在一定的程度上具有智能性。
IC卡出现以后,国际上对它有多种称法。英文名称有“Smart Card”、“IC Card”等;在我国,人们一般称之为“IC卡”或“智能卡”,智能卡将具有存储、加密及数据处理能力的集成电路芯片镶嵌于塑料基片中,涉及到微电子技术、计算机技术和信息安全技术等,作为一种成熟的高技术产品,智能卡提高了人们生活和工作的现代化程度,已成为一个国家科技发展水平的标志之一。
智能卡相关概念
1.  智能卡的定义
自智能卡问世以来,其发展已经历了相当长的一段的时间,其发展的趋势也是更加小型化和智能化,但是目前业界人士尚无统一、全面的定义,以下是几种常见的智能卡的定义:
(1) 外形和信用卡一样,但卡上含有一个符合国际标准化组织(ISO)有关标准的集成电路芯片(IC)。
(2) 由一个或多个集成电路芯片组成,并封装成便于人们携带的卡片;具有暂时或永久性的数据存储能力,其内容可供外部读取或供内部处理、判断;具有逻辑和数学运算处理能力,用于识别和响应外部提供的信息和芯片本身的处理需求。
(3) IC卡就是集成电路卡。它是一种随着半导体技术的发展和社会对信息安全性等要求的日益提高而应运而生的,具有微处理器及大容量存储器等的集成电路芯片且嵌装于塑料等基片上制成的卡片。它的外形与普通磁卡做成的信用卡十分相似,只是略厚一些。
2.智能卡的组成
    智能卡系统是由智能卡本身和读卡器以及相关系统构成,
智能IC 卡的硬件部分是一个计算机系统,智能IC 卡硬件主要由CPU ROM RAM EEPROM 、输入输出接口、安全逻辑、加密解密运算协处理器等一系列功能部件组成,其结构如图所示。
智能卡硬件结构
智能卡的分类
按照不同的标准,对智能卡的分类:
按加密与否,可分为加密储存卡和非加密储存卡:
非加密存储器卡(Memory Card
其内嵌芯片相当于普通串行EPROM存储器,有些芯片还增加了特定区域的写保护功能,这类卡信息存储方便,使用简单,价格便宜,很多场合可替代磁卡,但由于其本身不具备信息保密功能,因此,只能用于保密性要求不高的应用场合。
加密存储器卡(Security Card
加密存储器卡内嵌芯片在存储区外增加了控制逻辑,在访问存储区之前需要核对密码,只有密码正确,才能进行存取操作,这类信息保密性较好,使用与普通存储器卡相类似。
按照数据读写方式,智能卡又可分为接触式IC卡和非接触式IC卡两类:
接触式IC
前者由读写设备的触点和卡片上的触点相接触,进行数据读写;
非接触式IC
后者则与读写设备无电路接触,由非接触式的读写技术进行读写(例如,光或无线电技术)。其内嵌芯片除了存储单元。控制逻辑外,增加了射频收发电路。这类卡一般用在存
取频繁,可靠性要求特别高的场合。
按照数据交换格式分类,智能卡可以分为串行和并行两种:
串行IC
智能卡和外界进行数据交换时,数据流按照串行方式输入输出。当前应用中大多数IC卡都属于串行IC卡类,串行IC卡接口简单,使用方便,国际标准化组织为之专门开发了相关标准。
并行IC
与串行IC卡相反,并行IC卡的数据交换以并行方式进行,由此可以带来两方面的好处,一是数据交换速度提高,二是在现有技术条件下存储容量可以显著增加。
但由于没有形成相应的国际标准,大规模应用方面还存在一些问题。
  Java Card是一种可以运行Java程序的智能卡。Java1.0版本的规范于199611月正式发布。
 在Java Card出现之前,智能卡应用的研发是一个复杂漫长的过程。尽管国际规范 ISO7816 早已规定了智能卡的结构大小和通信协议,但各卡片提供商对各自的智能卡操作都有自己独特的一套指令集。而且智能卡编程接口(APIs)非常复杂,开发人员需要熟悉智能卡底层通信接口协议,内存管理及智能卡硬件等各种细节,掌握智能卡复杂的开发环境。此外,由于所有的智能卡都是在专门的开发环境中开发出来的,即使是相同的应用,不同卡片提供商提供的卡也各不兼容,这使同一系统中使用不同卡片提供商的卡变得很复杂。
  近年来,随着智能卡的优点越来越被人认可,它的应用范围已越来越广泛,市场的需求量急剧上升,越来越多的智能卡新应用也随之诞生。但与之矛盾的是:了解智能卡编程的人员却少之又少,智能卡编程的复杂性,不统一性已严重阻碍了智能卡的发展。然而这一切将随着 Java 卡的出现而改变,因为Java卡拥有下列独特的优势:
  ·平台独立性。符合JavaAPI技术规范的Java卡小程序,将运行于使用JCAE开发而成的智能卡,从而允许开发员使用相同的Java卡小程序,在不同厂商的智能卡上运行。
  ·多应用功能。Java卡上可以同时存在多个不同的应用,这些应用可以来自同一个卡商,也可以来自不同的供卡商。这样一张Java卡就可以完成不同的功能,例如,它可以有电子
钱包功能,同时也可以有身份鉴别功能。
竹模板  ·动态适应性。Java卡发行后,上面安装的应用可以根据需要进行删除或重新添加新的应用,而无需更换新的智能卡。
  ·灵活快速性。Java卡技术采用面向对象方法,为编写智能卡程序提供灵活性。而基于对象的API则大大简化了卡内 Applet 与终端或后台服务器的通信,使快速完成和调试 Java 卡的应用程序成为可能。
  ·与现行智能卡标准的兼容性。Java卡应用编程接口不仅与诸如ISO7816的国际正式标准兼容,而且与EuropayMasterCardVisaEMV)这样一类业界专用标准相兼容。 
  Java Card
1Java Card结构
  Java Card可以说是 Java 平台中最小的子集。
  Java Card有点象一部功能齐全,但规模较小的电脑,其硬件主要是为了保证 Java 卡的运行环境的需要,它们只有有限的存储器资源和计算功能。
  Java Card上的系统体系结构如下图所示。
在此结构中,
最底层的锅炉吹管 OS(操作系统) and Native Functions(基本函数)青嵩素是负责底层的处理工作,如同 PC 的操作系统。
Java 虚拟机处于OS and Native Functions 之上,它的存在实现了卡片接口的统一和编程语言的统一,并且也隐藏了卡底层各个供卡商不同的技术。
Java Framework 为开发人员定义了一整套编程接口类,主要负责执行 Java Applet 以及提供 Applet 执行所需要的环境。
Industry Add-on Classes 则是服务方所提供的类,使得企业与公司能够提供属于自己的服务程序,例如,如果这张卡是 GSM 网络的hbv疫苗 SIM 卡,那么这一层就是 SIM 卡所需的接口类。
Java 卡的最上层就是所谓的Applet,也就是我们要进行开发的应用。如图所示,一个 Java 卡可以驻留多个 Java Card Applet,每个Applet均被其AID (应用程序标识符)唯一标识,Applet Applet 之间有防火墙的阻隔。Applet 生命周期开始于安装并在卡的注册表中注册,终止于被从注册表中注销。一般 Applet 在卡中是没有被激活的,只有当这个 Applet 被终端“选择”(Select) 到时,Applet 才被激活。
2Java Card上的Java语言及API
  Java 卡上的程序是由 Java 语言写的,也是由一般的Java 编译器编译的。因为存储器资源和计算能力有限,所以Java Card并不能支持Java语言技术规范中规定的所有语言功能。特别地,Java Card不支持:
动态类装载
安全管理器
线程和同步
对象复制
对象回收(finalization 导丝男士
长基本数据类型( floatdoublelong、和char )
  所以支持这些功能的关键词 被省略也就不足为奇了。在有更大存储器的更高级智能卡上,由虚拟机的实现者决定 是否支持32位整数类型及post-issuance appletnative方法。
有关JavaJava语言的详细资料,可参阅 Java Card Virtual Machine Specification.
Java Card Java 平台中最小的子集。根据Sun 公司公布的Java 卡规范,目前与Java 卡相关用于智能卡编程共有四个包,其中包含了3个核心包和1个扩展包,3个核心包是Java.langJavacard.FrameworkJavacard.security,扩展包是pto。由于卡中存储器资源和计算能力有限,所以Javacard并不能支持Java语言中所有的功能。
  目前Java卡共支持 4 Packages (),即:
奇石底座java.lang package:提供 Java 语言一些重要的类,如 Object 类,因为所有的 Java 类皆继承它
支持Object Throwable和一些与虚拟机相关的exception,Java.lang包提供了对基本Java语言的支持。
javacard.framework package :是 Java API 主要的核心 package,提供并实现了 Java Applet 基本的接口与工具。
javacard.security package:提供安全机制的包
pto package:包含了关于加密与安全的对象
3Java Card的安全性
  Java AppletJava安全性的限制,但Java Card系统的安全性模式在很多方面与标准Java有所不同。Java Card不支持安全管理器类,语言 的安全策略是由虚拟机实施的。
  Java Applet创建可存储和处理数据的对象。对象由创建该对象的Applet所拥有,即使Applet 有对某个对象的引用,它也不能调用该对象的方法,除非它拥有该对象,或该对象已确定共享。某个Applet可与另一个Applet或所有Applets共享其对象。
  AppletJava Card内的独立实体,其选择、执行和功能不受驻留在同一张卡上的其它Applet的影响。

本文发布于:2024-09-25 10:26:52,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/237425.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:功能   应用   对象   芯片   进行   发展
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议