Java CardTM 介绍
- 格式:ppt
- 大小:413.50 KB
- 文档页数:27
java卡概述---------------------------------------------------------------------------------------------------------------------- 编辑整理:编辑:王鹏来源:门禁早期的智能卡主要是以一种介质形式出现的,它可以在卡体内存储金额,从而能在公共电话机或自动售货机上被使用。
它完成的是一种存储信息的应用。
这时卡的需求量并不大。
同时卡的应用也不多。
而近来,随着智能卡地越来越“智能”,由于智能卡的优点越来越被人认可,它的应用范围也越来越广泛:从银行的借贷卡,存放个人医疗信息的医疗卡,到有线和无线网络的安全模块卡等等。
智能卡的应用可以说是涉及到了各个领域,几乎每个人都要与智能卡打交道。
市场的需求量急剧上升,同时越来越多的智能卡新应用也随之诞生。
但与智能卡需求量急剧上升所矛盾的是:智能卡应用的研发是一个复杂漫长的过程。
尽管对智能卡的结构大小和通信协议,国际规范ISO7816 早已规定,但各个卡生产商对智能卡的研制都各不相同。
各个卡生产商对自己的智能卡操作都有自己独特的一套指令集。
此外,智能卡编程接口(APIs)非常复杂,用之编程,需要开发人员非常熟悉低层通信接口协议,内存管理和一些智能卡硬件的细节。
因此,在开发智能卡应用之前,开发人员就需要花费大量时间来了解智能卡的复杂开发环境,而且在他们研究后会发现并不存在现代化的开发工具(象Visual Studio 那样工具)。
更糟糕的是:对不同的智能卡并没有一个通用的开发环境。
每次你要开发一种新的应用,可能你都必须从新了解一种新的开发环境。
情况有可能还没有这么简单。
由于所有的智能卡都是在专门的开发环境中开发出来的,不同的卡的生产商生产出来的相同应用的卡可能并不兼容,这使同一系统中使用不同生产商的卡变得很复杂。
据估计,2001 年,智能卡的需求量为10-30 亿片。
字节码文件 .java 编译生成 .class文件 .class就是字节码文件jvm是java虚拟机 .java文件是在jvm上运行的java之所以能跨平台就是因为在各个操作系统上都有不同的jvm下面这句是copy的:源代码经过编译器编译之后便会生成一个字节码文件,字节码是一种二进制的类文件,它的内容是 JVM 的指令,而不像 C、C++经由编译器直接生成机器码java解释器就是把在java虚拟机上运行的目标代码(字节码)解释成为具体平台的机器码的程序。
”即jdk或jre目录下bin目录中的java.exe文件,而javac.exe是编译器。
运行java程序的过程是先用javac编译,然后用java解释。
而一经编译成功后,就可以直接用java.exe随处解释运行了。
java虚拟机其实是个翻译器java的class文件里面保存的是java字节码而把class文件放到不同的平台下运行的时候,就由针对不同平台的虚拟机翻译成那个平台认识的操作比如,我们的总理去美国访问的时候就带个英文翻译,总理说一段中文,翻译就翻译成英文,老美就知道总理说什么了然后总理又去德国访问,他就带一个德文翻译,这个时候总理说的同一段中文,翻译把他翻译成了德文这样,总理不管去哪个国家访问,只要带不同的翻译,他只说中文,不同国家的领导人就知道总理的意思了jvm不跨平台的,不同平台有不同的jvmjava是通过jvm 实现跨平台的所谓的跨平台是以不同版本的jvm实现的。
不同平台有不同的jvm,而不同的版本的jvm是根据相对应的硬件以及软件平台设计的。
这些不同版本的jvm能识别相同的.class文件。
就像java给不同版本的平台请了个翻译一样Java作为一种网络语言,其源代码被编译成一种结构中立的中间文件格式。
只要有Java运行系统的机器都能执行这种中间代码。
Java源程序被编译成一种与机器无关的字节码格式,在Java虚拟机上运行,与平台无关。
Java Card简介一引言智能卡简介在当今的信息化社会中,各式各样的卡在人们生活的各个方面发挥着越来越重要的作用,我们进入宾馆房门时有门进卡,在餐厅吃饭时有饭卡,在商场购物时有VIP卡,打电话时有IC电话卡等等,这些卡都有一些相同的特征,他们在一定的程度上具有智能性。
自IC卡出现以后,国际上对它有多种称法。
英文名称有“Smart Card”、“IC Card”等;在我国,人们一般称之为“IC卡”或“智能卡”,智能卡将具有存储、加密及数据处理能力的集成电路芯片镶嵌于塑料基片中,涉及到微电子技术、计算机技术和信息安全技术等,作为一种成熟的高技术产品,智能卡提高了人们生活和工作的现代化程度,已成为一个国家科技发展水平的标志之一。
智能卡相关概念1. 智能卡的定义自智能卡问世以来,其发展已经历了相当长的一段的时间,其发展的趋势也是更加小型化和智能化,但是目前业界人士尚无统一、全面的定义,以下是几种常见的智能卡的定义:(1) 外形和信用卡一样,但卡上含有一个符合国际标准化组织(ISO)有关标准的集成电路芯片(IC)。
(2) 由一个或多个集成电路芯片组成,并封装成便于人们携带的卡片;具有暂时或永久性的数据存储能力,其内容可供外部读取或供内部处理、判断;具有逻辑和数学运算处理能力,用于识别和响应外部提供的信息和芯片本身的处理需求。
(3) IC卡就是集成电路卡。
它是一种随着半导体技术的发展和社会对信息安全性等要求的日益提高而应运而生的,具有微处理器及大容量存储器等的集成电路芯片且嵌装于塑料等基片上制成的卡片。
它的外形与普通磁卡做成的信用卡十分相似,只是略厚一些。
2.智能卡的组成智能卡系统是由智能卡本身和读卡器以及相关系统构成,智能IC 卡的硬件部分是一个计算机系统,智能IC 卡硬件主要由CPU 、ROM 、RAM 、EEPROM 、输入输出接口、安全逻辑、加密解密运算协处理器等一系列功能部件组成,其结构如图所示。
JavaCard应用程序体系结构概述Java Card应用程序体系结构概述Java Card Technology概述高鸿*******************前言:Java Card 技术是把Java编程语言的一个子集同一个优化的运行时环境结合在一起的技术。
这种优化是专门针对小存储量的嵌入式设备的,例如智能卡。
Java Card 技术的目标是让那些资源受限的智能卡等设备受益于Java语言开发的软件。
本文主要介绍Java Card应用程序的体系结构以及与Java Card Applet的通信方式。
Java Card技术是专门为那些内存和计算能力比J2ME设备更为受限的智能卡和其它设备提供的一个平台。
图1是Java Card和J2ME平台的对照。
它为应用程序提供了一个安全的运行环境。
它允许多个应用程序同时在一个卡片上运行,并且可以对已发放到用户手中的卡片进行更新。
用Java编写的应用程序可以安全的运行在不同提供商的卡片上。
从上图可以看出,CDC和CLDC配置以及它们相关的简表是J2ME 平台的一部分,而Java Card是一个单独创建来用于智能卡环境的平台。
在目前的版本中(2.2.1),Java Card技术的规范包括一些三部分:1.Java Card Virtual Machine规范:该规范定义了Java语言的一个子集和适用于智能卡的虚拟机。
2.Java Card Runtime Environment规范:该规范更进一步定义了基于Java的智能卡的运行时行为。
3.Java Card API规范:该规范定义了为智能卡应用程序量身定制的核心框架以及各种包和类。
一个典型的Java Card设备有一个8或16位的运行在3.7MHz的中央处理器,带有1K的RAM和多于16K的非易失性存储器(可编程只读存储器或者闪存)。
高性能的智能卡带有单独的处理器和加密芯片,以及用于加密的内存,并且有一些还带有32位的中央处理器。
Java卡应用系统的开发目 录第1章 引言 (3)1.1 Java卡 (3)1.2 Java卡的程序员视图 (4)1.3 Java卡应用系统的开发 (6)1.3.1 应用系统体系结构 (6)1.3.2 有关规范 (6)1.3.3 简单的密钥系统 (7)1.3.4 Java卡应用 (10)1.3.5 终端应用接口 (11)1.3.6 制卡应用接口 (11)第2章 Java卡应用的开发 (13)2.1 应用概述 (13)2.2 确定应用的AID (13)2.3 定义应用与主机的接口 (13)2.3.1 Applet00的指令集 (14)2.3.2 Applet01和Applet02的指令集 (17)2.4 应用设计 (19)2.5 编程实现 (22)2.5.1 错误检测 (22)2.5.2 内存使用 (22)2.5.3 内存泄露 (22)2.5.4 性能 (23)第3章 密钥应用的开发 (24)3.1 密钥应用概述 (24)3.2 数据的加密和MAC的计算 (24)3.2.1 密码机块链接 (25)3.2.2 电子码本加密 (26)3.2.3 计算和验证APDU命令的MAC (26)3.2.4 APDU数据字段的加密和解密 (28)3.3 密钥应用的AID和接口 (29)3.3.1 应用的AID (29)3.3.2 系统根密钥应用的指令集 (29)3.3.3 应用根密钥应用的指令集 (31)3.3.4 机具应用的指令集 (33)3.4 密钥应用设计 (35)第4章 卡管理器 (37)4.1 卡管理器概述 (37)4.1.1 卡管理周期的状态 (37)4.1.2 卡管理器生命周期状态迁移 (39)4.2 卡管理器的外部接口 (39)4.2.1 信息编码 (40)4.2.2 命令详解 (41)4.3 安全通道的建立 (52)4.3.1 安全通道概述 (52)4.3.2 相互认证 (52)4.3.3 安全消息传递 (53)4.3.4 安全通道中密钥的生成 (54)4.3.5 认证密文 (54)4.3.6 认证命令 (55)第5章 发行管理应用的开发 (58)5.1 发行管理应用的功能 (58)5.2 密钥的计算 (58)5.2.1 导出会晤密钥 (58)5.2.2 计算发行管理应用的密文 (58)5.2.3 验证用户卡卡管理器的密文 (60)5.2.4 计算分散后密钥 (60)5.2.5 密钥加密和密钥校验值计算 (61)5.2.6 计算命令的MAC (62)5.2.7 计算命令的MAC并加密命令的数据 (62)5.3 发行管理应用的AID (63)5.4 接口设计 (63)5.4.1 PUT_KEY (63)5.4.2 SELECT_KEY (64)5.4.3 GET_INITIALIZE_UPDATE (65)5.4.4 GET_EXTERNAL_AUTHENTICATE (65)5.4.5 GET_PUT_KEY (67)5.4.5 COMPUTE_MAC (67)5.4.6 ENCRYPT_MAC (68)第6章 PC/SC接口编程 (70)6.1 PC/SC概述 (70)6.2 PC/SC的主要函数 (70)6.2.1 建立资源管理器的上下文 (70)6.2.2 获得系统中安装的读卡器列表 (71)6.2.3 与读卡器(智能卡)连接 (72)6.2.4 向智能卡发送指令 (73)6.2.5 断开与读卡器(智能卡)的连接 (75)6.2.6 释放资源管理上下文 (76)6.3 接口程序中的PC/SC接口 (76)第7章 终端应用接口 (78)7.1 接口概述 (78)7.1.1 接口函数 (78)7.1.2 接口的使用方法 (80)7.2 接口的设计与实现 (80)第8章 制卡应用接口 (82)8.1 Java卡Applet的生成 (82)8.1.1 编辑Java卡Applet源代码 (82)8.1.2 编译Java卡Applet源代码 (82)8.1.3 生成Cap(Converted APplet) 文件 (83)8.1.4 产生脚本文件 (84)8.2 Applet的下载和安装指令的生成 (84)8.2.1 转换scr文件 (84)8.2.2 下载Applet (84)8.2.3 安装Applet (85)8.3 制卡接口的设计与实现 (85)8.3.1 接口函数 (85)8.3.2 接口的使用方法 (87)8.3.3 制卡接口的实现 (89)第1章 引言1.1 Java卡Java卡(Java Card)就是能够运行Java程序的智能卡(Smart Card)或IC卡(Integrated Circuit Card)。
Java Card的技术特点及其应用分析李智聪;凌力【摘要】Compared with the traditional Native card,the Java smart card is more open and versatile,and has been widely used abroad.In the field of domestic mobile payment,if Java Card technology is applied,mobile payment can take advantage of its rich functionality and high security to deal with the new requirements emerging from the development of mobile payment industry.The first part of this paper briefly introduces the Java Card platform.The second part discusses the technical architecture of Java Card.Then the third part analyzes the advanced features of the Java Card platform.And the fourth part is about the security of the Java Card platform.The application of Java Card technology in mobile payment field is discussed in the fifth part.%Java智能卡与传统的Native卡相比,更具开放性和通用性,在国外已得到广泛的应用.在国内蓬勃发展的移动支付领域,若应用Java Card技术,可发挥其在功能和安全性方面的优势,应对随行业发展而出现的新挑战.第一部分将简单介绍Java Card平台,第二部分讨论Java Card的技术架构,在第三部分分析Java Card平台的高级特性,第四部分主要讨论Java Card平台的安全性,第五部分探讨Java Card技术在移动支付领域的应用.【期刊名称】《微型电脑应用》【年(卷),期】2018(034)004【总页数】4页(P63-66)【关键词】Java智能卡;通用性;移动支付;Java Card平台;安全性【作者】李智聪;凌力【作者单位】复旦大学通信科学与工程系,上海200433;复旦大学通信科学与工程系,上海200433【正文语种】中文【中图分类】TP3110 引言智能卡(Smart Card)是内嵌集成电路芯片的卡片的通称,广泛应用于金融、电信、公安、交通、税务、电子政务等领域[1]。