(计算机应用技术专业论文)基于java+card技术的校园卡应用研究.pdf_第1页
(计算机应用技术专业论文)基于java+card技术的校园卡应用研究.pdf_第2页
(计算机应用技术专业论文)基于java+card技术的校园卡应用研究.pdf_第3页
(计算机应用技术专业论文)基于java+card技术的校园卡应用研究.pdf_第4页
(计算机应用技术专业论文)基于java+card技术的校园卡应用研究.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 智能卡自上个世纪7 0 年代诞生以来,已经在世界范围内得到了广泛的应用。 但由于种种原因,一卡通系统的开发过程十分复杂而漫长。而j a v a c a r d 技术可 以很好地处理多种应用的需要而且互不影响。采用j a v ac a r d 技术丌发的系统不 但编程简单、开发周期短,而且还具有高度安全、可扩充性强以及可重用以及跨 平台的能力等优点。 但由于成本过高,在国内许多院校已采用的一卡通解决方案中,还没有基于 j a v ac a r d 技术的解决方案。然而随着国内市场的消费水平的提高和形成规模后 成本的降低,发展和推广j a v ac a r d 将是大势所趋。 本文首先讨论了目前开发校园一卡通系统的复杂性和采用j a v ac a r d 技术开 发此类系统的独特优势,进而指出了选题的意义;然后叙述了j a v ac a r d 技术的 基本原理、体系结构和技术规范,并分析了用j a v ac a r d 技术开发卡上小应用程 序的特点。 接下来详细介绍了运用j a v ac a r d 技术实现数据结算子系统的过程,并着重 说明了如何设计和实现卡上的小应用程序。在这一部分中,首先分析了系统应用 程序结构的三大部分;然后依次讨论了各个部分的功能和作用,逐步介绍了如何 实现卡上小应用程序的过程;最后简要说明了程序中用到的常量的初始化、返回 值的定义和主要方法的功能和流程图。 在本文的最后讨论了设计校园一卡通系统需要考虑的各种安全性问题,结合 j a v ac a r d 技术的特点提出了解决办法,并分析了本系统在安全方面的特点。 关键字:j a v a 卡、智能卡、校园卡、一卡通、a p p l e t 、安垒 a b s 仃a c t a b s t r a c t s i n c et h es m a r tc a r dw a si n v e n t e di n1 9 7 0 s ,i th a sb e e nu s e d w i d e l yi nt h ew o r l d b u tt h e d e v e l o p m e n t o f o n e - c a r d t h r o u g hs y s t e m i s q u i t e d i f f i c u l ta n d t i m e c o n s u m i n gb e c a u s eo fm a n yr e a s o n s h o w e v e r , t h ej a v ac a r dt e c h n o l o g yi sa p t t od e a lw i t ht h ec o n f l i c ta m o n gv a r i o u sp r o g r a m s t h e r ea r em a n y a d v a n t a g e so f t h i s t e c h n o l o g y , s u c ha se a s y - p r o g r a m m i n g ,q u i c k d e v e l o p m e n t ,s e c u r e ,e x t e n s i b l e ,r e - u s e a n d c r o s s p l a t f o r m t h e r ei sn o tac a m p u sc a r da p p l i c a t i o ns y s t e mb a s e do nj a v ac a r dt e c h n o l o g yi n c h i n e s ec o l l e g eb e c a u s eo f h i 曲p r i c e b u ti t i sat r e n dt h a tt h i st e c h n o l o g yi su s e d w i d e l yw i t ht h ei n c r e a s eo f c o n s u m p t i o nc a p a b i l i t ya n dt h ed e c r e a s eo f t h es c a l ec o s t a tt h e b e g i n n i n g o ft h i s t h e s i s ,i t d i s c u s s e st h e c o m p l e x i t y o f c a m p u s o n e - c a r d t h r o u g hs y s t e md e v e l o p m e n t ,a n ds t r o n gp o i n t so f j a v ac a r di nt h i sp r o b l e m s u b s e q u e n t l y , t h em e a n i n go ft h i sp r o j e c ti s i n d i c a t e d t h e nt h i st h e s i ss h o w st h e p r i n c i p l e ,a r c h i t e c t u r ea n dc r i t e r i o n m o r e o v e r , i te x p l a i n st h ef e a t u r e so f j a v ac a r d a p p l e t 、 i nt h en e x t p a r t ,i tt e l l sh o w t oc o m p l e t et h es u b s y s t e mo fd a t ab a l a n c eb y u s i n g j a v ac a r dt e c h n o l o g yi nd e t a i l a n dg i v e se m p h a s i st ot h ep r o c e s so fd e s i g na n d a c h i e v e m e n to f a p p l e to nc a r d a tf i r s t ,i ta n a l y s e st h et h r e ep a r t so f a na p p l i c a t i o n s y s t e ma n dd i s c u s s e dt h e f u n c t i o n sa n de f f e c to fe a c hp a r ti nt h i s p a r t t h e n i t i n t r o d u c e st h ef u n c t i o nd e f i n i t i o n ,t h ea c q u i r e m e n to fa i d ,t h ed e s i g no fc l a s sa n dt h e e s t a b l i s h m e n to ft h ei n t e r f a c eb e t w e e na p p l e ta n dt e r m i n a li nt u r n s f i n a l l yi ts h o w s t h ei n i t i a l i z a t i o no f c o n s t a n t ,t h ed e f i n i t i o no f r e t u r nv a l u e ,t h ef u n c t i o na n df l o wc h a r t o f m a i nm e t h o di nb r i e f t h el a s t p a r t t a l k sa b o u tm a n yp r o b l e m so nt h e s e c u r i t y o fc a m p u sc a r d a p p l i c a t i o ns y s t e m ,t a k e sm e a s u r e sb yu s i n gj a v ac a r dt e c h n o l o g y , a n da n a l ) 7 s e st h e m e r i t so f t h i ss y s t e mi nt h i sa s p e c t k e yw o r d s :j a v ac a r d ,s m a r tc a r d ,c a m p u sc a r d ,o n e c a r d - t h r o u g h ,a p p l e t , s e c u r i t y 独创性声明 v 6 27 3 6 9 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研究 成果,除了文中特别加以标注和致谢之处外,论文中不包含其他入已经发表或撰写过 的研究成果,也不包含为获得云洼王些塞堂或其他教育机构的学位或证书而使用过 的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说 明并表示了谢意。 学位论文作者签名:j 强灸 签字日期:加。年z 月z j 日 学位论文版权使用授权书 本学位论文作者完全了解云洼王些太堂有关保留、使用学位论文的规定。特 授权丞盗王些太兰可以将学位论文的全部或部分内容编入有关数据库进行检索, 并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国家 有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名 尹勋条导师签名:歹r 损鳅) 签字日期:。¥年2 月j ;日签字日期:多咖年文月矽日 第l 帝绪论 1 1 选题意义 第1 章绪论 校园卡从本质上讲是智能卡技术在学校这个特定领域的应用。从早期只有简 单消费功能的校园就餐卡,发展到今天集学校综合管理和金融服务于一体的多用 途智能卡,它的发展与智能卡技术的发展密切相关。 智能卡自上个世纪7 0 年代诞生以来,已经在世界范围内得到了广泛的应用。 但与之相矛盾的是:智能卡应用的研发是一个复杂漫长的过程。尽管对智能卡的 结构大小和通信协议,国际规范i s o 一7 8 1 6 早已规定,但各个卡生产商对智能卡 的研制都各不相同,每个生产商都有自己独特的一套指令集。 而且智能卡的编程接口( a p i ) 非常复杂,尤其是在多应用智能卡领域,用 它编程时不但需要开发人员非常熟悉低层通信接口协议、内存管理和一些智能卡 硬件的细节,还要考虑多个应用之间互相干扰的问题。 而j a v ac a r d 技术的出现可以很好地解决这问题。j a v ac a r d 是j a v a 技 术与智能i c 卡相结合的产物。j a v ac a r d 技术可以很好地处理多种应用的需要 而且互不影响。j a v ac a r d 最大的优势在于编程简单、开发周期短。j a v ac a r d 上的a p p l e t 不是直接在卡硬件上执行,而是运行在j a v ac a r d 虚拟机上。同时 由于j a v ac a r d 虚拟机的使用,a p p l e t 可以在不同应用环境( j c r e ) 中执行, 即具有跨平台的能力。 此外,j a v ac a r d 还具有高度安全、可扩充性强以及可重用等优点。因此, 运用j a v ac a r d 技术来开发一卡通系统具有传统技术所没有的独特优势。 在国内许多院校已采用的一卡通解决方案中,还没有基于j a v ac a r d 技术的 解决方案,但相关的研究正越来越盛行。随着国内市场的消费水平的提高和形成 规模后成本的降低,发展和推广j a v ac a r d 将是大势所趋。 1 2 智能卡简介 自智能卡出现以来,国际上有许多种叫法。英文名称有 s m a r tc a r d ”、“i c c a r d ”等;在亚洲特别是港、台地区,则多称为“聪明卡”、“智慧卡”及“智能 卡”等;而在我国大陆地区,人们一般称之为“i c 卡”或“智能卡”。 智能卡的大小与信用卡相同,卡上含有一个符合国际标准化组织( i s o ) 有 关标准的集成电路芯片,通过它来存储和处理信息。智能卡主要分为两类:一类 为包含有微处理器并具有读、写和计算功能的c p u 卡( 如小型微电脑) ;另一类 第l 帝绪论 为没有微处理器的存储卡,只能存储信息。存储卡可以利用安全逻辑算法控制对 存储器的存取。 所有智能卡都包括三类存储嚣:永久不变存储器( p e r s i s t e n td o n - m u t a b l e m e m o r y ) 、永久可变存储器( p e r s i s t e n tm u t a b l em e m o r y ) 和非永久可变存储器 ( n o n p e r s i s t e n m u t a b l em e m o r y ) 。在这三类存储器中,r 跏、e e p r o m 和r a m 使用最为普遍。 智能卡的相关标准主要为国际标准组织规定的i s o 一7 8 1 6 系列标准,它包括 了覆盖智能卡各个方面的一组标准。i s 0 - 7 8 1 6 包括: 物理特性( 第1 部分) 尺寸和触点位置( 第2 部分) 电子信号和传输协议( 第3 部分) 行业间交换指令( 第4 部分) 应用程序标识符( 第5 部分) 行业间数据元素( 第6 部分) 行业问s c q l 指令( 第7 部分) 智能卡不包含电池,只有在和读卡机连接的时候才钹激活。当它被连接时, 在执行一个复位序列之后,卡片处于非激活状态,等待接收来自客户端( 主机) 应用程序的命令请求。 智能卡可以分为可接触智能卡和非可接触智能卡。可接触智能卡通过读卡器 和智能卡的8 个物理接触来通讯并工作,而非可接触智能卡依靠在小于2 英尺的 一般距离之内的射频信号通讯。非接触智能卡的射频通信基于类似于用于保存反 盗窃和记录清单的射频标识符( r f i d ) 标记的技术。 1 3 校园一卡通系统 每张卡只用于单用途的智能卡成为单应用智能卡。如果把几种应用集中到 一张卡上,将大大方便用户,这称为“一卡多用”,或叫“一卡通”。这种卡就称 为多用途智能卡。 传统的单应用智能卡应用模式主要是接受外界来的数据和命令进行存储或 处理,并返回数据。而多用途智能卡不但可以接受外界的数据和命令,还可以接 受外界的应用,或向外界发送应用程序。 现在我们能见到的卡基本上都符合i s o 一7 8 1 6 1 3 的底层标准,即卡的尺寸 大小、触点位置、电气特性等。由于i s o - ? 8 1 6 中间层的标准提供了很多可选功 能,从而造成这些行业问的卡无法兼容。为了解决这一问题,一些组织正致力于 建立新的标准,以保证智能卡平台的互通。 智能卡平台包括卡上应用平台标准和卡外应用平台标准。卡上应用梁括肿留 一 一笙! 翌堕堡 在卡上的各种应用程序及其数据,如各种加密算法和个人密码等。卡上应用平台 是指卡上应用程序的运行环境。目莳主要有二个组织从事卡上应用平台的标准化 工作,即m u l t o s 和j a v ac a r d ,主要解决卡上公共操作系统问题。 图11 智能卡应用模式 卡外应用程序是指运行在终端或服务器上的,与智能卡打交道,并给用户提 供接口的程序。卡外应用平台是指卡外应用程序的运行环境。目前主要有二个组 织( o c f 和p c s c ) 从事卡外应用平台的标准化工作。 自从国家大力推行“金卡”工程以来,校园就餐卡已在全国各高校普遍应用。 但早期的校园就餐卡只有小额消费功能,没有身份验证功能和管理功能,是种 单用途智能卡。为了提高校园综合管理水平和后勤服务效率,现在国内许多高校 都在大力推行一种集学校综合管理和金融服务于一体的多用途校园卡,它具有身 份认证和电子钱包的双重功能,如学生注册、图书借阅、上机管理、代发助学金 和奖学金、代缴各种费用、食堂就餐、校内小额消费、对帐查询等等功能。这样 的校园卡不仅可以提高学校的管理水平和管理效率,还可以降低学校的资金管理 和结算风险,最大限度地方便学生的学习和生活。 1 4j a v ac a r d 概述 j a v ac a r d 技术并不是一项全新的技术,它是j a v a 嵌入技术在智能i e 卡领 域的应用。j a v ac a r d 是j a v a 平台中最小的子集。 随着智能卡技术的飞速发展,“一卡通”、“卡多用”已成为现今智能卡的 应用主题。在“一卡多用”中使用c p u 卡已经成为共识:而存储器卡困受其自身 的局限性而逐步被c p u 卡所取代。但由于i s 0 - 7 8 1 6 并没有规定智能卡提供商如 何实现标准接口,大部分厂商都提供了自已专有的c o s 和接口。这导致了如果为 一种智能卡设计的应用程序要在另一个厂商的智能卡上运行必须重新基于完全 不同的系统和接口开发。 筇1 章绪论 智能i c 卡的最大特点是其安全性,但_ i :f 是出其安全性的原因使得智能1 c 卡 有些缺点。首先,对于传统的智能i c 卡的编程者柬说,使用的语言是8 位处 理器的汇编语言。汇编语言的可读性差、编程复杂、玎发周期长,跟踪调试也不 方便。其次,由于安全的需要,传统的智能i c 卡的编程者很少,且大多为一个 智能i c 卡厂商工作,这样就大大限制了智能i c 卡的开发应用。第三,一些智能 i c 卡的编程工具( 如d e b u g 工具) 被严格限制,智能卡的开发硬件更是如此,因 为这些工具可以用来窥探和改变卡罩的数据,如果允许任何汇编程序运行于智能 i c 卡内,其安全性将大大降低。由上可见,智能i c 卡的不通用性已成为其应用 的瓶颈。 j a v a 语言的次编写,跨平台运行的特性对各行业具有很强的吸引力。随 着j a v a 语言的逐渐普及,i c 卡工业也受到了很大的影响。j a v a 与智能卡的结合 不仅使智能卡得到更加广泛的应用,实现了“一次编写,到处运行”的目的,同 时也使得智能卡的应照程序更加丰富,智能卡的使用更加便捷。与传统的智能卡 相比,j a v a 智能i c 卡的优点是显而易见的: 第一,开发更容易。j a v a 与智能i c 卡的结合使得智能卡的编程回到程序编 程的主流面向对象的语言编程而不是汇编语言编程。j a v ac a r d 应用程序的 开发是基于j a v a 语言针对智能卡有限计算能力而优化的一个子集,它具有j a v a 语言面向对象等优点。在j a v ac a r d 中,系统类将各种标准的数据和属性都以对 象的方式提供给开发者,如a p d u 等,所以j a v ac a r d 应用程序的开发也比其它 基于汇编或者c 语言的开发效率高,也容易很多。 第二,实现了一次编写到处运行。j a v ac a r d 提供了个符合i s o 一7 8 1 6 标 准的接口,任何实现了j a v ac a r d 运行环境( j a v ac a r dr u n t i m ee n v i r o n m e n t ) 的智能卡,都可以执行基于j a v ac a r d 接口规范的应用。智能卡编程不再依赖于 微处理器的种类,只要不同种类的智能卡实现了j a v a 虚拟机,j a v a 智能i c 卡 的应用程序则可以运行于6 8 0 5 或8 0 5 l 。 第三,具有较强的安全特性。j a v a 语言编制的程序经编译后,必须遵守j a v a 虚拟机的结构约束、语义约束。此外,j a v ac a r d 通过应用程序防火墙( a p p l e t f i r e w a l l ) 将每个应用相互隔离。每个应用运行在自己分配的地址空间内,相互 之间没有影响。如果需要相互1 自j 的共享数据时,j a v ac a r d 又可以通过特定的安 全机制实现共享。 第四,可以动态下载和安装应用程序。j a v ac a r d 是基于j a v ac a r d 接口的 应用程序可以通过网络下裁到j a v ac a r d 上安装和执行。j a v ac a r d 应用程序编 译成与平台无关的字节码后,通过网络下载到j a v ac a r d ,由j a v ac a r d 上的安 装程序执行安装后通过j a v ac a r d 的虚拟机解释执行。 j a v a 技术与智能i c 卡相结合对于智能卡技术发展至关重要,j a v a 智能卡债 成千上万的j a v a 程序开发人员编写新的智能卡程序。随着应用程序的成倍增长。 第1 章绪论 智能卡的便利性和安全性将广泛应用。 a v ac a r d 技术的出现将智能卡带入了开 放式计算的世界,智能卡与j a v a 的联姻将电子贸易与安全性最好地结合在一起。 j a v a 语言的可扩展性以及平台独立性为生成智能卡大型应用程序提供了一个理 想的环境,智能卡编程人员可以利用日益增多的j a v a 开发工具编写大型应用程 序。随着智能卡在电子商务中的应用以及智能卡与计算机结合并进入i n t e r n e t 网,j a v a 智能卡的应用前景十分光明。 1 5 国内外应用现状 i c 卡自2 0 世纪7 0 年代问世以来发展迅速。并在全球范围内得到了较为广 泛的应用。据统计,全球的i c 卡的发行量从1 9 9 2 年的2 6 亿张发展到2 0 0 0 年 的2 0 6 亿张。各地区市场份额为:亚太地区占6 5 2 ,欧洲占1 8 3 ,美国占 1 4 ,其他国家占1 5 1 ;从应用类别来看,电话卡占6 0 6 8 ,s i m 卡占1 8 4 5 , 金融卡占8 7 4 ,其他占1 2 1 3 。 i c 卡进入我国的时间较晚,但在“金卡工程”建设的大力推动下,发展十 分迅速。i c 卡的应用出银行卡起步,而非银行卡的应用后来居上,远远超过了 银行卡的发展速度和规模。其中,发展最快的是各类行业性i c 卡,如电信领域 的公用电话i c 卡和移动通信s i m 卡、石化领域的加油卡、劳动和社会保障部门 的社会保障卡、建设部门的城市公用事业卡、工商行政管理部门的工商企业卡、 税务部门的税务卡、技术监督部门的组织机构代码卡等。很多行业性i c 卡的应 用已制定了统一的行业标准。另外,由各地方、各单位发行的i c 卡,如校园卡、 单位员工管理卡、食堂用餐卡、门禁卡、优惠卡等各种i c 卡的应用发卡数量也 相当可观。据预测2 0 0 3 年全球的i c 卡发行量将达6 3 亿张,其中我国4 5 亿张, 为世界上i c 卡发行量最大的国家。 1 6 发展趋势 随着超大规模集成电路技术、计算机技术以及信息安全技术等的发展,i c 卡技术也日趋成熟。 当前国际上i c 卡技术的应用正处于高速发展时期。非接触式逻辑加密卡趋 于成熟,双界面c p u 卡应用技术水平逐步提高与完善,应用领域不断扩大、价格 逐步下调,双界面c p u 卡的应用进入了一个较快的发展阶段。 目前j a v ac a r d 被公认为使用智能卡最好的平台。运用j a v ac a r d 技术可以 使卡上应用程序的开发工作更加容易,同时也能加强运作于不同厂商的智能卡跨 平台作业能力。j a v ac a r d 可以使许多以前由于卡片c o s 限制无法实现的想法得 以实现。在拓宽i c 应用范围上,其它传统i c 卡无法与之相比。j a v ac a r d 在欧 第l 章绪论 美市场上得到了广泛的应用。在美国i c 卡多应用市场,j a v ac a r d 已经成为事 实上的领导标准,占掘了9 5 的市场份额。 1 7 本文主要研究的内容及论文结构 本文主要研究了j a v ac a r d 技术在校园一卡通系统上的应用,并建立了一个 简单的应用模型,为以后进一步的研究做准备。 本文结构如下: 第一章说明了选题的意义,简单介绍了j a v a c a r d 技术和校园一卡通系统的 特点,以及国内外应用现状和发展趋势。 第二章详细说明了j a v ac a r d 技术的基本原理,介绍了j a v ac a r d 系统的体 系结构和技术规范。 第三章分析了校园一卡通系统的应用特点和设计原则,提出了系统的总体设 计方案,包括了系统总体结构、网络环境和软硬件支持等方面。 第四章在总体设计方案的基础上详细描述了各个子系统的结构、功能和特 点。 第五章着重介绍了运用j a v ac a r d 技术实现数据结算子系统的过程,重点说 明了如何设计和实现卡上的小应用程序。 第六章讨论了智能卡系统常见的安全性问题,然后结合j a v a c a r d 技术的特 点提出了解决办法,并分析了本系统在安全方面的特点。 最后总结了本文研究的成果与不足,并提出了进步研究的方向。 第2 章j a v ac a r d 技术皋奉原理 2 1 引言 第2 章j a v ac a r d 技术基本原理 传统的智能卡应用系统都是在专门的丌发环境中开发出来的,没有像v i s u a l s t u d i o 那样通用的开发环境,特别是在开发多应用智能卡系统时,还要考虑多 个应用之间互相干扰所带来的问题。加上各个卡生产商对智能卡的研制都各不相 同,每个生产商都有自己独特的一套指令集。这不但使得开发过程变得复杂,还 可能导致同一系统中不同厂商生产出来的相同应用的卡互不兼容。 因此,s u n 公司将j a v a 语言和智能卡技术相结合,推出了一种新的技术规范 j a v ac a r d ,从而很好地解决了这个难题。j a v ac a r d 的最新标准为2 2 版, 包括了在智能卡上创建j a v ac a r d 虚拟机和应用编程接口( a p i ) 的详细信息。 在j a v ac a r d 中运行的应用程序叫做a p p i e t ,每张卡上可以驻留多个a p p l e t , 运行时动态的装载到j a v ac a r d 上。因此j a v ac a r d 可以处理多种应用的需要, 而互不影响。 j a v ac a r d 最大的优势在于编程简单、开发周期短。j a v ac a r d 上的a p p l e t 不是直接在卡硬件上执行,而是运行在j a v ac a r d 虚拟机上。j a v ac a r d 虚拟机 提供了一整套标准的j a v ac a r d 编程的a p i ,使得开发人员无需了解复杂的智能 卡硬件及一些专用的技术,就可以进行智能卡的应用开发,从而大大降低开发难 度、减少开发时间。同时由于j a v ac a r d 虚拟机的使用,a p p l e t 可以在不同应 用环境( j c r e ) 中执行,即具有跨平台的能力。 j a v ac a r d 的另一个优势是:开发人员可以选择他们所熟悉和喜欢的开发工 具。由于对j a v a c a r d 编程使用的是j a v a 语言,几乎所有当今流行的j a v a 开发 环境,如v i s u a lj + + ,v i s u a lc a f e ,j b u i l d e r 等都可以用来进行j a v ac a r d 的 开发。这就使快速完成和调试j a v ac a r d 应用程序变为了可能。而以前调试智能 卡的应用程序需要装载到卡的r o m 中( 装载后无法更新) ,所以调试起来十分复 杂。 此外,j a v ac a r d 还具有高度安全、可扩充性强以及可重用等优点。因此j a v a c a r d 已成为目前公认的使用智能卡最好的平台,并已在欧美市场上得到了广泛 的应用。 2 2 体系结构 j a v ac a r d 是s u n 公司推出的一种卡上应用平台技术的规范,包括了在智能 第2 章j a v ac a r d 技术幕奉原理 卡上创建j a v ac a r d 虚拟机和应用编程接口a p i 的详细信息。 j a v ac a r d 系统的体系结构如图2 1 所示。 i n d u s t r ya d do nc l a s s e s j a v ac a r df r a m e w o r k j a v ac a r dv m o s n a t i v ef u n c t i o n s 幽2 1j a v ac a r d 系统的体系结构 其中,j a v ac a r dv m ( j a v ac a r d 虚拟机) 是建立在特定集成电路( i c ) 和 最底层的卡上o s n a t i v ef u n c t i o n s ( 操作系统和本地功能) 之上的。j a v a c a r d 虚拟机利用通用语言和系统接口隐藏了制造商的专利技术。 在j a v ac a r df r a m e w o r k ( j a v ac a r d 框架) 层,定义了一系列用来开发j a v a c a r d 应用程序和为这些应用程序提供系统服务的应用程序编程接口( a p i ) 。 i n d u s t r va d do nc l a s s e s ( 企业添加类) 表示某特定行业或特殊的商务应 用可提供添加的库,以提供服务或优化安全性和系统模型。 j a v ac a r d 应用程序称为a p p l e t 。一个卡上可驻留多个a p p l e t a 每个a p p l e t 均被萁a i d ( 应用程序标识符) 唯一标识,符合i s o 一7 8 1 6 标准中第5 部分的规 定。 应该注意的重要的一点是,智能卡不是个人计算机。它们只有有限的内存资 源和计算功能。用户不应该简单地认为j c d k ( j a v a c a r d 开发工具包) 是j d k 的 简化版本。 在j a v ac a r d 内部,j c r e ( j a v ac a r d 运行环境) 引用j a v ac a r d 虚拟机和 框架中的类。j a v ac a r d 内的每个a p p l e t 都与j c r e 赋予的特定a i d 关联,只有 在接收到明确的选择命令后才会被激活。j a v ac a r d 支持除了动态类装载、少数 类型、安全管理、垃圾回收、运行时间校验等以外的大部分j a v a 特性。 2 2 1j a v ac a r d 硬件环境 j a v ac a r d 的硬件环境要求不高,可在拥有8 位c p u 的智能i c 卡环境中实现, 但为了提高性能,许多智能卡公司在1 6 位、3 2 位c p u 的智能卡环境中实现,f f r j 女n g e m p l u s 公司用捌有3 2 位r i s c 结构c p u 的智能卡环境中实现j a v ac a r d 。当然,如 果n g j a v a c a r d 专用c p u 则性能会很大提高,这一方面的研究工作已经丌始进行 第2 章j a v ac a r d 技术基本坂理 了。j a v ac a r d 6 p 的存储器种类也为r a m 、r o m 、e e p r o m ,但容量不能太小。 2 2 2j a v ac a r d 虚拟机结构 图2 2 分立的j a v ac a r d 虚拟机结构 j c v m 与j v m ( j a v av i r t u a lm a c h i n e ) 最主要的区别是j a v ac a r d 虚拟机的实 现分成两部分,如上图所示。第一部分运行于p c 或工作站中,不在卡内,这个 卡外虚拟机叫作j a v ac a r d 转换器,负责所有类装载和引用解析的工作。卡内的 j a v a 虚拟机部分包括字节码翻译器,用来执行字节码和支持j a v a 语言,这两部 分虚拟机通过一个应用程序的转换文件c a p 文件进行( 接口) 数据交换。而c a p 文件出卡外虚拟机在处理过程中产生,由卡内虚拟机在执行时使用。 卡外虚拟机包括一个j a v ac a r d 程序转换工具,这个工具用来在类装载时进 行校验、准备、优化和解析,j a v ac a r d 的程序转换工具实现的是j a v a 虚拟机的 预耿功能,在j a v ac a r d 平台中是一个类文件预取处理器。一个j a v ac a r d 应用程 序引用的属于同一包的所有类,必须打包成一个二进制文件,安装到卡内。j a v a c a r d 程序转换器育以下几个功能: 1 校验;检查程序中所用的类文件的格式、符号表是否正确,根据j a v ac a r d 舰范进行语言规则检查。 2 准备:创建表示类的虚拟机数据结构井为其分配存贮空间,创建静态域和方 法区,将静态变量值进行初始化。 3 解析:解析对类、方法、域的符号引用,使之成为种在j a v ac a r d 中处理 起来更加有效的形式。在处理同一包内部引用时,一些优化可以在卡外进行, 这和j v m 产生“q u i c k ”伪指令类似。 卡内虚拟机执行字节码、管理类和对象,提供各种j a v ac a r d 应用程序之间 的防火墙,提供保密数掘共享。j a v ac a r d 虚拟机般采用解释执行的方式,这 鹕2 章j a v ac a r d 技术基本原理 是因为智能卡环境中的资源很有限,不适于j i t ( j u s ti nt i m e ) 编译器和 n e t ( n a t i v ee x e c u t a b l et r a n s l a t i o n ) 编译器的实现。 2 2 ,3 防火墙机制 j a v ac a r d 平台是一个安全的多应用环境,许多来自不同供应商的不同的小 应用程序可以在同一张卡片上安全地共存。每个小应用程序被指派给一个执行上 下文,这个上下文控制到分配给它的对象的访问。 一个执行上下文( e x e c u t i o nc o n t e x t ) 和另一个执行上下文之间的界限经 常被称为小应用程序防火墙( a p p l e tf i r e w a l l ) 。它是j a v a 沙箱安全概念的一 个j a v ac a r d 改进版本,联合了类装入器j a v a c l a s s l o a d e r 和访问控制器 j a v a a c c e s s c o n t r o l l e r 的功能。j a v ac a r d 防火墙创建了一个虚拟堆,这样一 个对象只能访问存在于相同的防火墙内的( 公共的) 方法和数据。一个防火墙 可能包含许多小应用程序及其他对象,比如公共的密钥。一个j a v ac a r d 执行上 下文目前作用域是程序包。当每个对象被创建的时候,它被指派去执行调用程序 的上下文。 j a v ac a r d 平台支持跨防火墙的安全对象共用。 当a p p i e t a 向a p p l e t c 发出跨防火墙的对象调用请求时,通过调用系统的 j c s y s t e m g e t a p p l e t s h a r e a b l e i n t e r f a c e o b j e c t ( ) 方法访问a p p l e t c 的共享接 口。j c r e 通过调用小应用程序的g e t s h a r e a b l e i n t e r f a c e o b j e c t ( ) 方法来要求 a p p l e tc 提供可共享的接口。 l j c r e 塞 多 p a c k a g eap a c k a g eb f i r e w a l l 圈2 3 小应用程序防火墙和对象共用 如果a p p l e t c 允许共用,a p p l e t a 将获得个a p p l e t e 的共享对象的引用。 a p p l e t a 现在就可以访问a p p l e t c 了。a p p l e t _ a 将拥有它创建的任意对象,即 笫2 币j a v ac a r d 技术摧= 串= 原理 使是那些定义在a p p l e t e 的。 在同一个执行上下文中的小应用程序默认情况下能够相互访问,所以 a p p l e t a 和a p p l e t b 不需要按照这个步骤来共享对象。 2 3 技术规范 s u n 公司实现了智能卡和类似的资源约束设各的潜能,并且定义了一组j a v a 技术子集规范来为它们创建j a v ac a r da p p l e t ( j a v ac a r d 小应用程序) 。支持 这些规范的设备称为j a v ac a r d 平台。在个j a v ac a r d 平台上,来自不同的供 应商的多个应用程序可以安全地共存。 一个典型的j a v ac a r d 设备有一个8 或1 6 位的运行在3 7 m h z 的中央处理器, 带有1 k 的r a m 和1 6 k 以上的非易失性存储器( 可编程只读存储器或者闪存) 。高 性能的智能卡带有单独的处理器和加密芯片,以及用于加密的内存,并且有一些 还带有3 2 位的中央处理器。 最新的j a v ac a r d 技术规范目前是2 2 版,由以下三部分组成: l 、j a v ac a r d 虚拟机规范:定义了用于智能卡的j a v a 程序语言的一个子集 和虚拟机。 2 、j a v ac a r d 运行环境规范:进一步定义了用于基于j a v a 的智能卡的运行 期行为。 3 、j a v ac a r d 应用编程接口规范:定义了用于智能卡应用程序核心框架和 扩展j a v a 程序包和类。 s u n 还提供了专用的j a v ac a r d 开发工具包( j a v ac a r dd e v e i o p m e n tk i t ) , 包含了j a v ac a r d 运行环境和j a v ac a r d 虚拟机的引用实现,以及其它帮助开发 j a v ac a r d 小应用程序的工具。 2 3 1 j c v m 规范 j a v ac a r d 虚拟机( j c v m ) 规范定义了j a v a 程序设计语言的一个子集和一 个用于智能卡的兼容j a v a 的虚拟机,包括二进制数据表示和文件格式,以及j c v l 指令集。 用于j a v a c a r d 平台的虚拟机是两部分实现,一部分在卡外,一部分运行在 卡本身。卡上的j a v ac a r d 虚拟机解释字节码、管理类和对象等等。外部j a v a 虚拟机部分是一个开发工具,一般称为j a v ac a r d 转换工具,装载、检验和进一 步地准备卡片小应用程序j a v a 类,用于在卡上执行。转换工具输出的是一个 c o n v e r t e da p p l e t ( c a p ) 文件,这是一个包含一个j a v a 程序包申所有类的文件。 第2 章j a v ac a r d 技术皋奉原理 转换程序检验类是否遵循j a v ac a r d 规范。 j c v j i 只支持j a v a 程序设计语言的一个有限的子集,然而它保留了许多熟悉 的特性,包括对象、继承、程序包、动态对象创建、虚拟方法、接口和异常。j c v m 规范放弃了对许多语言元素的支持,因为这些语言元素可能会用掉很多智能卡本 来就很有限的内存,还有程序模型限制。例如一个装载库类不能再扩展到卡上; 它隐含地成为f i n a l 类型。 表2 1j a v ac a r d 语肓# 制的摘要信息 动态类装载、安全管理( j a v a 1 a n g s e c u r it y m a n a g e r ) 、线科、对象克隆平某些 谱言特性 方面的程序包访问控制不支持。 关键字不支持n a t i v e 、s y n c h r o n i z e d 、t r a n s i e n t 、v o l a t i l e 、s t r i c t f p 。 不支持c h a r 、d o u b l e 、f l o a t 和l o n g ,也不支持多维数组。对i n t 的支持是可选 类型 的。 不支持除了o b j e c t 和ft h r o w a b l e 以外的j a v a 核心应刚编程接口类和接口 类和接口( j a v a i o 、j a v a 1 a n g 、j a v a u t i l ) ,并且o b j e c t 弄 t h r o w a b l e 的人部分方法 不可删。 一些e x c e p t i o n 和e r r o r 子类被省去。因为它们封装的异常和错误不可能在j a v a 异常 c a r d 平台上出现。 为了符合存储限制,j c v m 规范额外定义了许多程序属性的约束。注意这些约 束中许多对于j a v ac a r d 开发者来说需要清楚地了解。 在j a v ac a r d 虚拟机中,像在j 2 s e 虚拟机中样,c l a s s 文件是核,“但 是j c v m 规范定义了两种其他文件格式来进一步使平台独立,转换小应用程序 ( c o n v e r t e da p p l e t ,c a p ) 和导出( e x p o r t ) 格式。 表2 2j a v ac a r d 虚拟机约束的摘要信息 一个鞋序包可以引瑚1 2 b 个其他的程序包 程序包 个完全台乎要求的程序包名限于2 5 5 字节以内。注意字符火小墩决于字符编码。 个完全合乎要求的程序包名限3 - 2 5 5 字诲以内。 一个类最多可以直接或者间接地实现1 5 个接口。 一个接口毋多可以继承于1 4 个接口。 类 一个程序包如果包含小席用程序( 一个小应用程序程序包) ,它晟多可以有2 5 6 个 静态方法:如果1 没有小庶刚科序( 席程序包) ,它最多只能有2 5 5 个静态方法。 一个类最多可以实现1 2 8 个p u b i c 或者p r o t e c t e d 实例方法。 , 第2 章j a v ac a r d 技术桀奉胤理 j c v m 的生命周期与卡片本身的生命周期一致:在卡片制造并测试之后至发 行到持卡人手中的段时问内它就丌始了生命周期,当卡片丢失或者毁坏的时候 它的生命周期也就结束了。卡片没有电力的时候j c v m 也不会停止,因为它的状 态被保存在卡片的非易失性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论