已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
安全的j a v as i m 卡空中下载机制的研究与实现 安全的j a v as i m 卡空中下载机制的研究与实现 摘要 随着智能卡技术在商业领域尤其是在移动通信领域中的广泛应用, 智能卡在人们生活中扮演的角色愈显重要。而j a v a 卡技术的横空出世, 更是使智能卡的发展迈向了一个崭新的阶段。j a v a 卡技术平台无关、一 卡多用、应用开发下载快捷的特点已经较为有效的降低了智能卡应用开 发的成本,提高了应用开发的速度。但是,它仍然不能很好的满足用户 在应用更新灵活性方面的需求。随着无线通信技术的发展,采用空中下 载( o t a ) 的方式,安全可靠地将应用程序下载至智能卡端,已经为该问题 的解决开辟了一条新路。 本篇论文以j a v a 卡技术为背景,重点介绍了以短信为承载方式的空 中下载机制在j a v as i m 上的实现,详细描述了下载过程中卡内外通信的 安全机制,并为这种空中下载机制提供了一套卡端的解决方案。该方案 已在符合j a v a 卡2 2 o 规范的3 2 位j a v as i m 卡上实现。通过了实际的 测试和验证,证明了该方案的可行性和有效性。 本篇论文提出的空中下载机制是在第二代s i m 卡空中下载机制的基 础上做出的又一次新的尝试,目的在于找到一种较为通用的,以短消息 为承载方式且适合j a v a 卡应用下载特点的空中下载机制。 关键词j a v a 卡s i m 空中下载( o v e r t h ea i r ) 短消息密钥集 安全认证 ! ! 塞墼里奎堂堡主兰垡笙壅 窒全塑! ! ! ! ! ! 翌至! ! 垫塑型竺堕窒皇塞里 t h er e s e a r c ha n di m p l e m e n t 芦口i o n0 fas e c u r e d 0 1 as c h e m e0 v e rj a 、乙s i mc a r d a b s t r a c t w i t ht h ew i d e l yc o m m e r c i a lu s eo fs m a r tc a r d ,e s p e c i a l l yi nw i r e l e s s c o m m u n i c a t i o nf i e l d ,s m a r tc a r dp l a y sam o r ei m p o r t a n tr o l ei no u r1 i r e b i s i d e s ,t h eo u t c o m eo f j a v ac a r dt e c h n o l o g yh a sp r o m o t e dt h ed e v e l o p m e n t o fs m a r tc a r dt oan e wp h a s e w i t ht h ea d v a n c e df e a t u r e so fp l a t f o r m i n d e p e n d e n c y , m u l t i - u s ea n df a s ta p p l i c a t i o nd e v e l o p m e n ta n dd o w n l o a d i n g , j a v ac a r dt e c h n o l o g yh a se f f e c t i v e l yd e c r e a s e dt h ec o s ta n ds p e e d e d u p p r o c e s so ft h ea p p l i c a t i o nd e v e l o p m e n t h o w e v e r , i ts t i l lc o u l dn o tm e e tt h e u s e rr e q u i r e m e n ti nt h ef l e x i b i l i t yo fa p p l i c a t i o nu p d a t e d u et ot h ep r o g r e s s o fw i r e l e s sc o m m u n i c a t i o n t e c h n o l o g y ,d o w n l o a d i n g t h es m a r tc a r d a p p l i c a t i o ni nt h es e c u r e do t a ( o v e rt h ea i r ) w a yh a sb l a z e dat r a i lf o rt h i s p r o b l e m t h i sp a p e rp r o b e sd e e p l yi n t oa ni m p l e m e n t a t i o no fa no t as c h e m eb y s m sa sw e l la st h es e c u r i t yc o m m u n i c a t i o nm e c h a n i s mb e t w e e no n c a r da n d o f f - c a r de n t i t i e so v e rj a v as i mc a r d i n a d d i t i o n ,i tp r o v i d e sac o m p l e t e o n c a r di m p l e m e n t a t i o ns o l u t i o nf o rt h i so t as c h e m e t h i ss o l u t i o nh a sb e e n c o m p l e t e l yi m p l e m e n t e do naj a v as i mc a r d ,w h i c hi sc o n s i s t e n tw i t hj a v a c a r dt e c hs p e c i f i c a t i o n2 2 0 ,w i t h3 2 b i tc p ua n dh a sb e e np r o v e di t s a v a i l a b i l i t yb yp r a c t i c a lt e s t t h eo t as c h e m ep r o p o s e db yt h i s p a p e ri san e wt r i a lb a s e do nt h e s e c o n dg e n e r a t i o no t as c h e m eo v e rs i mc a r d t h ep u r p o s ei st of i n do u ta n a p p r o p r i a t e u n i v e r s a l w a y f o rj a v ac a r d a p p l e td o w n l o a d i n gb y s h o r t m e s s a g e k e yw o r d s j a v ac a r d s i m o t a ( o v e rt h ea i r ) s h o r tm e s s a g ek e ys e t s e c u r i t yv e r i f i c a t i o n 独创性( 或创新。k - ) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成果。尽我 所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经 发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了 明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:延! 逝日期:兰翌i :生垒:堡z 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即:研究生在 校攻读学位期间论文工作的知识产权单位属北京邮电文被查阅和借阅;学校可以公布 学位论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇编学 位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在年解密后适用本授权书。非保密论文注释: 本学位论文不属于保密范围,适用本授权书。 本人签名 碴! 迭 日期: 凇6 、d 中、a 7 导师签名:2 嵫日期:血左:垒丝丑 北京邮电大学硕士学位论文安全的j a v as i m 卡空中下载机制的研究与实现 第一章绪论 1 1 课题背景及研究目的和意义 1 1 1 课题背景 j a v a 卡技术以其平台无关、多通道、多应用、安全性高的特点已经成为了智 能卡研究和开发领域的热门技术,采用j a v a 卡a p p l e t 方式实现行业应用,已经 逐渐成为跨行业、多应用智能卡的首选实现方式。目前应用开发商和服务提供商 提供的应用愈加多样化和个性化,用户也迫切地希望能进一步提升应用更新及升 级的速度。采用空中下载( o t a ) 方式下载应用为这需求开辟了一条新路。当前 针对n a t i v e 卡设计的第二代( 以短消息为空中接口) 空中下载技术已经非常成熟, 应用已经非常广泛,如w 1 b 技术以及中国移动提出的o t a 2 技术。然而到目前 为止,针对j a v a 卡技术提出的符合跨行业标准( 如g l o b a l p l a t f o r m ) 的空中 下载技术还十分少见,本篇论文就是以此为切入点,在成熟的第二代空中下载技 术的基础上,尝试找到一种符合j a v a 卡特点同时兼具跨行业安全需求的空中下 载机制。 1 1 2 研究目的和意义 j a v a 卡技术的应用必将会更加广泛,更加深入人们的生活;j a v a 卡空中下载 技术的成熟也已指日可待。本论文研究的初衷是希望作为一次尝试,以j a v a 卡 技术及目前已有的空中下载技术为基石 j ,结合各种技术的特点,探索一种能符合 j a v a 卡应用下载特点,符合跨行业安全标准的空中下载机制。并通过具体实现, 验证该机制的可行性。为在3 g 环境下,研究j a v a 卡应用的空中下载技术打下基 币出。 1 2 本文的工作及贡献 本文根据作者两年来在j a v a 卡方面的研究和开发: 作( 尤其是s 1 m 卡方面的 研究和实现) ,介绍了一些当前应用较为广泛的安全认证与空中下载技术,在综 北京邮电大学硕士学位论文安全的j a v as i m 矗空中下载机制的研究与实现 合这些技术特点的基础上,提出并实现了一种安全的j a v as i m 卡空中下载机制。 读者可以通过本篇论文了解j a v a 卡开发的相关技术,了解第二代空中下载技术 的主要特点,及卡内外通信过程的安全机制。同时可以以本篇论文为契机,进一 步研究和探索j a v a 卡空中下载机制在下一代移动通信系统中的实现方式。 1 3 论文组织 本论文的章节安排如下: 第一章绪论。概括介绍了论文的背景技术,并说明论文的章节安排。 第二章j a v a 卡技术。概述了j a v a 技术的背景、体系结构及应用开发的 方法。 第三章_ j a v a 卡技术与g s m 应用的结合。主要介绍了j a v a 卡与g s m 应 用结合j a v as i m 卡的体系结构和功能逻辑。 第四章安全的j a v as i m 卡的空中下载机制。主要介绍了j a v a 卡应用下 载的机制,详细描述了应用下载的不同形式及不同的安全机制,提出了一种综合 诸方特点的j a v as i m 卡空中下载机制。 第五章安全的j a v as i m 卡的空中下载机制的实现方案。主要描述了这 种下载机制的实现方案,较为详细地介绍了方案中部分方法的实现,并提供了实 现的伪代码。 北京邮电大学硕士学位论文安全的j a v as i m 卡空中下载机制的研究与实现 第二章j a v a 卡技术 2 1 智能卡技术概述 智能卡( s m a r tc a r d ) 是一种大小和普通名片相仿的塑料卡片,里头封装了集成 电路芯片,具有存储信息和进行复杂运算的功能。在智能卡的芯片上,集成了微 处理器、存储器以及输入输出单元等。它被认为是世界上最小的电子计算机。 在智能卡上,拥有一整套性能极强的安全保密控制机制,一般情况下安全控制程 序都被固化在只读存储器之中,因而具有无法复制的特点和强密码验证的安全保 证。 智能卡之所以“智能”,核心是因为它具有与计算机一样的“大脑”中 央处理器,同时较之普通磁卡,它还具有更大的存储容量以及更加复杂的逻辑控 制程序,这些特点都增加了它的智慧。智能卡的概念是七十年代中期提出来的。 其发明人是法国人罗兰模瑞诺( r o l a n dm o r e n o ) 。最早期的智能卡实际上并不 具有任何的智慧,它不具有目前被广泛认同的智能卡诸多特性,1 9 7 6 年,法国 b u l l 公司的m i c h e lv g o n 制造出了第一片应用于电话机上的智能卡实际上 只能算是一张“存储”卡。 随着智能卡技术的发展,智能卡从早期的只有接触式读取的工作方式已发展 到了采用无源射频识别技术的免接触式工作方式。同时由于智能卡技术应用愈加 广泛,商业需求愈加显著,行业内的标准的制定也不断在提速。目前i s 0 国际标 准化组织和i e c 国际电工委员会已经联合成立了多个工作小组专门负责制定智 能卡业内相关标准。现今为人们最熟悉的智能卡业内相关标准可称得上是 i s 0 i e c 规定的与接触式智能卡相关的7 8 1 6 系列标准。 2 2j a v a 卡技术概述 j a v a 卡技术是现今非常流行的通用平台技术j a v a 技术与智能卡技术相结合 的产物。它一方面具备了j a v a 技术平台无关,应用多样以及j a v a 语言面向对象 编程,开发简便的一系列优点;另一方面也考虑到了嵌入式芯片运算能力、存储 北京邮电大学硕士学位论文安全的j a v as i m 卡空中下载机制的研究与实现 能力有限的特点。通过在资源受限的智能卡上引入一个轻量级的j a v a 字节码解 释器以及相配套的周边管理、开发环境,形成了一套完整的卡运行环境_ j a v a c a r dr u nt i m ee n v i r o n m e n t 或称j a v a 卡框架j a v af r a m e w o r k 。有了这样一套 运行环境,智能卡应用开发人员就能够方便的利用j a v a 语言的一个最小子集, 迅速有效地开发出适用于不同领域的各类应用。这样来就在很大的程度上将智 能卡操作系统的开发与各行业应用甚至是用户个性化应用的开发独立开来,不仅 使卡发行商、应用服务提供商与用户的权职更加分明,同时也使卡的开发周期大 大缩短,开发成本大大降低。比起传统的用低级语言直接面向硬件开发的n a t i v e 智能卡有着明显的优势。 j a v a 卡技术的平台无关、多通道、多应用、安全性高的特性已经使其成为 了当今智能卡研究以及开发领域一大最热门的技术,并极有可能在不久的将来成 为一统天下的智能卡技术。 2 3j a v a 卡技术的发展历程 j a v a 卡的概念是由斯伦贝谢公司在1 9 9 6 年提出来的,当时的想法是在一个 s m a r tc a r d 的操作系统里加入一个轻量级的j a v a 字节码解释器,然后把c l a s s 文 件转换成一种结构更a n d , 巧、为卡专门定制的文件,下载到卡上执行。这种卡操 作系统的最初功能是下载、管理和执行应用程序代码和它的数据。 1 9 9 6 年1 0 月,s u n 在斯伦贝谢公司研究经验的基础上发布了第一版j a v a 卡 技术规范,虽然那时对这种与平台无关的j a v a 智能卡所应具有的抽象特性还不 十分清晰。这一版规范很简单,仅仅规定了j a v a 卡的基本目标和它的体系结构: 应该提供对j a v a 语言子集的支持和一套专用于智能卡应用的a p i ,比如加密操 作。 1 9 9 7 年2 月,金普斯和斯伦贝谢发起了j a v a 卡论坛,多家智能卡制造商先 后加入到这个组织中,并于1 9 9 7 年底发布了j a v a 卡技术规范的2 0 版。2 0 版 包含了更多技术细节,比如定义了具体的a p i 接口函数和一个比j a v a 虚拟机小 得多,但同样具有j a v a 基本特性的j a v a 卡虚拟机。 接下来的问题是不同j a v a 卡内的应用程序( a p p l e t ) 缺少必要的可移植性和 互操作性,例如c l a s s 文件的转换格式、下载流程和可执行指令的定义仍然没有 统一的规定,a p i 规范缺少必要的细节描述,这使得不同j a v a 卡应用程序几乎 不可能互相移植,所有这些工作都留给了j a v ac a r d 的实现者。 在1 9 9 9 年3 月,j a v a 卡2 1 规范诞生了,这个规范的诞生为j a v a 卡技术的 发展树立了一个关键的里程碑。除了定义文件格式和指令集外,2 1 版j a v a 卡规 4 北京邮电大学硕士学位论文安全的j a v as i m 卡空中下载机制的研究与实现 范引入了一种j a v a 世界独有的概念:软件防火墙安全机制。对象与其所属的a p p l e t 明确地关联起来,当访问卡内的某个对象时虚拟机进行一些额外的安全检查以确 定访问的合法性。同时,因为各应用领域的文件系统格式差别巨大,所以把访问 文件系统的a p i 完全抛弃了,并且把用于加密的a p i 扩充成几个c l a s s 。从j a v a 卡2 1 规范发布起,j a v a 卡技术进入了一个成熟阶段。 2 0 0 2 年j a v a 卡2 2 规范诞生,该规范在j a v a 卡中引入了多通道和垃圾回收 机制,使j a v a 卡的体系结构更加完整,安全机制更加完善,为j a v a 卡在新时期 应用需求中扮演关键性角色奠定了基础。 目前已公布的最新j a v a 卡规范是j a v a 卡2 2 1 ,j a v a 卡2 2 1 规范突破了之 前规范对6 4 k 逻辑空间的限制,使得开发者能在卡上下载更多的应用程序,进一 步凸显了j a v a 卡通用平台的特性,同时2 2 1 规范提高了对无线规格的支持,满 足了e t s 和3 g p p 以及w a p 等业界团体的要求。 j a v a 卡的下一个版本技术规范2 2 2 将在2 0 0 6 年问世,这个版本将会强化 j a v a 卡的非接触支持特性。目前s u n 公司已经宣布在非接触的射频卡上实现了 j a v a 卡的功能。 2 4j a v a 卡技术的应用 j a v a 卡几乎可以用在传统智能卡所适用的各个领域,包括:移动电话内的 s i m 卡:提供在线或离线交易的金融卡;政府发行的身份证卡和个人信息管理卡: 用于访问企业资源的逻辑物理存取卡,辨别人类色彩和感觉识别卡等。 美国运通银行与v i s a 组织已经选择j a v a 卡技术作为智能卡应用的开发平 台。基于j a v ac a r d 技术的智能卡解决方案能支持许多增值业务,如储值卡、 e r u o p a y 、m a s t e rc a r d 、v i s a 转帐信用卡、信用卡忠诚系统与网际网路的公钥 验证等。 许多国家的政府机构新发行的身份卡采用含有j a v a 卡技术的智能卡来取代 原来的“纸张”式身份证。最近美国联邦航空总署采用了j a v ac a r d 技术平台制 作了第一个用于全美国运输工作者身份识别的运输工会卡。美国国防部也发出四 百三十万张的通用进出卡,给美国现役人员与合格的聘雇人员。 我国的台湾省2 3 0 0 万人口的健保卡( 类似于我们的医疗卡) 都是采用的j a v a 卡技术,卡里记录着居民的相关信息,比如姓名、档案号等,居民使用该卡作为 身份识别,就可以享受医疗保险服务。另外如香港的八达通j a v a 卡,可以在香 港大部分公共交通工具上直接支付车资,还可以在一些零售商店购物、餐厅消费 以及缴纳泊车费用。使用该卡,收费器可直接扣除交易金额而无须找零,卡里随 北京邮电大学硕士学位论文安全的j a v as i m 卡空中下载机制的研究与实现 时可以再存入金额。目前该卡已经发行了1 0 0 0 多万张,成为香港居民和旅游者 最实际的电子钱包。 电信业者如中国移动、法国电信、香港电信、o r a n g e 、s w i s s c o m 、t e l e c o m i t a l i a m o b i l 和t e l e f o n i c a 等各国运营商,都已经发行了数百万个内含j a v ac a r d 技术的 s i m 卡。 得益于业务开发的简化和增加新业务的低成本,在可以预见的将来,j a v a 卡 技术的应用将会越来越多,到时候j a v a 卡必将深入到我们生活的每一个角落。 2 5j a v a 卡的体系结构 2 5 1j a v a 卡的总体结构 j a v a 卡可以被想像为一部p c 的缩影,它的总体结构有底层到上层大体上可 以分成四层: 一智能卡硬件 j a v a 卡系统级软件或称j a v a 卡运行时环境j a v a 卡框架j a v a 卡操作系统 一企业或行业内定制的扩展 一运行在j a v a 卡系统之上的应用 j a v a 卡的总体结构如图卜l 所示: 2 5 2d a v a 卡各组成部分的具体功能和职责 一j a v a 卡的硬件部分 智能卡硬件是整个卡运行的物质基础,对于具有里程碑意义、可以大规模 商用的j a v a 卡规范2 1 版本,s u n 公司提供了一个硬件最低配置的参考: 1 ) 5 1 2b y t e sr a m :主要用于存放程序执行时的堆栈、暂存资料以及作为i 0 的缓冲区。 2 ) 2 4k br o m :主要用于存放基本的卡操作系统、卡运行环境以及提前掩膜在 卡上的应用 3 ) 8k be e p r o m :用于存储应用开发商开发并下载到卡上的应用 4 ) 8 一b i tp r o c e s s o r :至少8 位的c p u 支持。 根据开发实践的经验,s u n 公司提供的这种最低的硬件配置参考基本上是 无法满足实际应用需求的,目前大多数的j a v a 卡研究和开发基本上都是基于3 2 位的处理器,最少4 k 的r a m 、6 4 k 的r o m 和1 2 8 k 的f l a s h 或e e p r o m 。 目前在市面上较成熟应用较多的芯片主要是基于a r m 的3 2 位芯片,也有少量 采用的是基于m 1 p s 的3 2 位芯片。 6 北京邮电大学硕士学位论文安全的j a v as i m 卡空中下载机制的研究与实现 g r e e na r r o wh e a d :i n t e r a c td i r e c t l y b l u ea r r o wh e a d :i n t e r a c ti n d i r e c t l yt h r o u g hj c r e 图1 1j a v a 卡的总体结构 - j a v a 卡系统级软件体系结构1 如图1 - 1 所示,j a v a 卡的系统级软件体系f 以下都将称为j a v a 卡运行时环 境j c r e l 基本上又可以分成六个部分,包括一个j a v a 卡的虚拟机;底层一些供 a p i 和系统级程序调用的本地方法、服务:对预先掩膜或是在发行后下载到卡上 的包和应用进行管理的模块;负责安装、删除包和应用的安装器;负责进行卡安 全管理的模块;以及j a v a 卡规范规定的a p i 。 j a v a 卡虚拟机是一个j a v a 的字节码解释器,用来解释和运行部分采用j a v a 语言编写的系统级代码,以及卡上的a p p l e t ;底层的n a t i v e 方法和服务主要使 用直接与底层硬件挂钩的语言编写,如汇编或是c 。作为j c r e 与硬件之间的接 口以及系统逻辑的最小功能模块,这些本地方法是整个j a v a 卡软件体系结构中 的基础,是j a v a 卡运行环境体现平台无关的核心。 逻辑层次处于j a v a 卡虚拟机和本地方法之上的是整个j a v a 卡软件体系结构 中的主逻辑框架,其中的p a c k a g e 和a p p l e t 的管理模块用来记录和管理每个 1 有很多参考文献将j a v a 卡的虚拟机独立于j a v a 卡运行环境j c r e 之外,作为单独的一层。本文作者根据 几年的j a v a 卡开发经验,从整体角度j 理解将j c v m 一并归到j j c r e 之中 北京邮电大学硕士学位论文安全的j a v as l m 卡空中下载机制的研究与实现 p a c k a g e 和a p p l e t 的组件信息,a i d ( 包和应用识别号1 信息、上下文信息、特权 信息等;p a c k a g e 和a p p l e t 的安装器是通过解析标准c a p 文件来安装和删除存储 在可擦写存储器上的p a c k a g e 和a p p l e t ( 在卡发行前预先掩膜在只读存储器上的 包和a p p l e t 不可删除) :安全模块用来负责进行卡上的防火墙检查,通道安全信 息验证,密码检查等;j a v a 卡标准a p ! 是j a v a 卡规范里已经定义好逻辑功能, 为上层应用开发提供支持的接口方法,作为一张满足j a v a 卡规范的j a v a 卡,这 些a p i 必需实现。目前j a v a 卡2 2 1 规范规定的j a v a 卡a p i 包括 a v a i o 、i a v a 1 a n g 、 j a v a r m i 、j a v a f r a m e w o r k 、j a v a c a r d f r a m e w o r k s e r v i c e s 、j a v a c a r d s e c u r i t y 、 i a v a c a r d c r p t o 共7 个包,这7 个包中又包含了4 1 个类及2 4 个接口。 如1 - 1 图所示的j c r e 的软件体系结构可以划分成6 个相对的独立功能模 块,上下两层逻辑层次,这样的划分并不是硬性的或是强制规定的。采用这样的 划分一方面使整个j c r e 的软件体系层次更加分明,更加便于理解。另一方面说 明了框架设计和具体实现的时候可以参照这样的思路来制定方案。比如说按照上 述的两层划分方式j c v m 和n a t i v e 方法部分就可以用c 语言或者是汇编语言来 实现,而凌驾于这个层次之上的其他四个功能模块就可以用j a v a 语言来实现。 这样既可以在实现时利用c 汇编语言高效执行的特点,又可以充分利用j a v a 语 言面向对象编程方式的优点。 在具体实现j c r e 时方式也可以多样的。比如说可以将j c r e 的所有代码 全部用c 语言来实现,采用这样的实现方式可以大大提高j c r e 的运行效率,但 是需要用c 语言解决一些j a v a 语言的特性如异常处理等;如果将一些j c r e 功 能模块用j a v a 语言实现,那么这些功能模块既可以采用普通类的方式也可以采 用j a v a 卡a p p l e t 的方式,实现过程中也可以将图1 - 1 所示的一些功能模块进行 归并,具体采用何种方式要根据实际需求和实现可能性来定制。比如说 a p p l e t p a c k a g ei n s t a l l d e l e t e 模块可以用a p p l e t 的方式实现,同时这个a p p l e t 可 兼有通道安全信息验证等理论上由s e c u r i t y 模块负责的功能。 一企业或行业内定制的扩展( i n d u s t r y s p e c i f i ce x t e n s i o n ) i n d u s t r y s p e c i f i ce x t e n s i o n 是为特定行业的应用所提供的一些服务和a p i , 目的是为了使得企业与公司能够提供属于自己的服务程序。比如说对于专门为移 动通信的s 1 m 卡定制的j a v a 卡既要提供j a v a 卡规范所规定的一些基本的a p i , 还要提供e t s i 3 g p p 组织专门为j a v as i m 卡定制的满足j a v as i m 卡f r a m e w o r k 的a p i 如s i m a c c e s s ,与s i m t o o k i t 两个包。 j a v a 卡一h 的a p p e t 应用 j a v a 卡的最上层就是所谓的j a v a 卡a p p l e t ,也就是卡发行商、应用服务提 供商或是个人用户要进行开发的应用。一张j a v a 卡可以执行多个j a v a 卡a p p l e t 。 北京邮电大学硕士学位论文 安全的j a v as i m 卡空中下载机制的研究与实现 每个a p p l e t 是靠a i d ( a p p l i c a t i o ni d e n t i f i e r 应用i d 号) 来识别的。在一个特定的 工作时间只能有一个当前被选在特定通道上的a p p l e t 在工作。并且a p p l e t 与 a p p l e t2 _ 1 甸也有防火墙以及访问权限验证等安全条件的阻隔。 2 6 开发和运行j a v a 卡应用的方法及流程 2 6 1 开发j a v a 卡a p p l e t 要开发一个j a v a 卡的a p p l e t 首先要根据该a p p l e t 的目标需求,综合分析各 方面的因素,通过分析定制一个最佳的实现的方式和组织结构,并实现该a p p l e t 。 2 6 1 1 需求分析 需求分析又包括数据类型分析、功能要求分析、安全条件分析、资源条件及 运行效率的分析等等。 其中数据类型分析主要是分析该应用所直接操作和存储的数据类型及存储 方式,如操作数据是易失性的还是非易失性的,数据的存储方式是连续型还是分 段型,数据是简单的二进制字节流还是具有复杂条目及属性的结构型数据等等。 功能要求分析主要通过列举该a p p l e t 所要实现的各部分功能,确定需要的 功能模块,以所要实现的主要功能模块为主线,分析各模块之间的连带关系及实 现的复杂程度。比如说要设计个能对接收的特定格式数据作出响应的a p p l e t , 通过功能要求分析,可以将该a p p l e t 拆分成三个功能模块进行实现,分别是: 数据接收模块、数据分析模块、数据响应及发送模块。这其中数据分析模块是三 者中最为核心的部分。在设计实现方式时需要着重考虑。 安全条件分析主要是要综合目标需求所提出的各方面安全因素以及a p p l e t 自身的特性,分析a p p l e t 在每一种安全要求下所要达到的工作状态,保证a p p l e t 的设计和实现的安全性。一般情况下应用所要分析的安全条件包括:( 1 ) 访问调 用者身份的合法性鉴别。访问应用所管理的数据或调用应用的方法是必须受到控 制的,无控制的访问和调用会导致保密数据的泄漏甚至是卡的毁坏。对访问调 用者身份的合法性鉴别可以通过验证其访问口令的正确性、签名的合法性、访问 的i d 号f 如在对象共享中,作为服务器的j a v a 膏应用在提供服务前,必须验证 客户应用a i d ) 等方式来进行。( 2 1 应用数据存储及传输的安全性。应用所管理的 数据区必须是私有的,不同应用之间的数据区必须是隔离的,跨数据区的访问必 须要经过防火墙的检查,比如说j a v a 卡中对c o d 空间的管理机制( 有关j a v a 卡 对c o d 空间的管理机制请查阅j c r e 规范) 就是这方面的例子。另外应用数据的 存储方式也会直接影响应用工作的安全性。将非易失性的数据存储在易失性介质 中可能导致数据的丢失,如误将文件数据保存在r a m 中;将易失性数据存储在 9 北京邮电大学硕士学位硷文安全的j a v as i m 卡空中下载机制的研究与实现 非易失性介质中可能会引起安全验证环节被忽略,如将g s ms i m 卡中的p i n 码 验证状态存储在e e p r o m 或是f l a s h 中,就可能导致p i n 码的验证环节被跳 过。此外,有些应用数据必须以密文的方式进行存储等。这些安全条件都是在数 据存储时须予以考虑的。在数据传输时需考虑的安全性主要是输入输出数据所实 施的安全策略。如数据传输是以明文方式或是以密文方式传输,传输时是否需要 附加签名或m a c 码等。( 3 ) 数据存储及传输的完整性和正确性。对于数据存储的 完整性而言,一般要考虑的就是一次写存储器的操作是否是原子的( 所谓的“原 子”就是要保证该次写操作或者完整的将数据写入存储器,或者就完全不写) , 这种需求在擦写非易失性性存储器时非常显著,j a v a 卡中提供的“交易 t r a n s a c t i o n ”机制,能够很好的保证这种写存储器原子特性( 有关j a v a 卡的交易 机制请查阅j c r e 规范1 。对于数据传输的正确性而言,既要保证数据内容的正 确又要保证数据块的接收顺序正确。在实际应用中通常采用附加签名或认证码的 方式予以保证。 资源条件及运行效率的分析就是要分析卡上的现有硬件资源的剩余状况,结 合运行效率的指标,合理的分配和利用运算空间和存储空间。如在卡上的r a m 空间相对富足的情况下,将一些用于辅助运算的对象放在r a m 中就可以大大的 提高运算效率。 2 6 1 2 框架和组织结构的设计 框架和组织结构的设计2 是在需求分析的基础上完成的。由于j a v a 卡的 a p p l e t 的设计和开发完全可以采用j a v a 语言面向对象的特性,所以面向对象的 建模方法( 尤其是u m l 统一建模语言) 在j a v a 卡a p p l e t 的框架及组织结构的设计 中完全适用。如果考虑一个目标需求只由一个包一个a p p l e t 实现的情况,一般 的设计分为以下几步: 1 根据需求分析划分功能模块,确定各个功能模块之间的约束关系、依赖关系 和行为关系 划分功能模块的过程就是划分类组织结构的过程。一般情况下会有一个类用 来负责管理a p p l e t 的静态数据,这个类同时还负责对外提供访问和操作这些静 态数据的接口方法。该类所管理的静态数据的结构可以是用类的形式,也可以用 一般的数组对象的形式;在用类方式实现时的,数据结构可以是链式顺序的形式, 也可以是散列的形式。具体采用什么样的数据结构要根据数据类型分析的结果而 定。 除了上述的静态数据管理类一般情况下还应该有一个安全管理类,提供安全 相关的接口方法,负责对指定的数据进行安全相关的分析与处理,如加解密,验 2 本论文没有考虑一个目标需求由多个a p p l e ! 完成的情况。柱讨论结构设计时也只考虑一个包中一个a p p l e t 的情况。 北京邮电大学硕士学位论文安全的j a v as i m 卡空中下载机制的研究与实现 证m a c 码等等。 其他的功能模块的划分基本上就是依据需求分析的结果和u m l 对象建模的 需要,将应用所要完成的复杂功能细化,拆分成一个个相对独立的简单逻辑,每 个逻辑对应于一个功能单元。 另外划分功能模块还有一个基本的出发点就是要尽可能使代码重用,以减少 代码所占用的资源空间,同时提高代码的运行效率。代码重用一个最基本的思路 就是利用面向对象设计过程的继承方式。 2 根据需求分析确定各功能模块中成员的类型以及数量,细分功能模块中的方 法 完成功能单元的划分之后,就要根据每个功能单元所完成的逻辑以及数据类 型分析和资源条件分析的结果确定每个功能模块中需要的所有基本数据成员和 对象成员,尤其是对象成员。由于j a v a 卡2 1 版本不支持动态创建对象,所以在 设计的阶段就必须明确所有需要用到的对象成员。虽然从j a v a 卡2 2 版本之后支 持垃圾回收的功能,但鉴于智能卡硬件资源的有限性、资源回收所带来的运算开 销等各方面因素,开发过程中还是不建议采用动态创建对象成员的方式,而应把 所有对象成员的创建工作都放在a p p l e t 的构造方法中完成。另外成员属性的确 定也十分关键,如对于所有对象实例共用的对象成员应该定义成静态类型。在定 义静态类型的对象成员时应注意,在该静态对象被创建后,其属主为a p p l e t 所 在的包。如果该对象在a p p l e t 中创建则可能导致a p p l e t 对象无法删除。上述的 这些细节都是在确定成员时必须予与考虑的。 在分析和确定功能模块中成员的同时还需一并设计功能模块中各个方法,二 者相辅相成。细化各个功能模块中方法的出发点是方法的有效性和完备性。所谓 方法的有效性是要使功能模块中的方法尽可能的少,同时方法的效率要高。提高 方法效率一般可考虑减少临时变量的个数,减少乘除取模等运算且多用移位运算 代替,另外就是要减少调用其他方法的层数等等。所谓方法的完备性就是要保证 定制的方法能够完成功能模块所需的全部功能,包括内部功能以及对外的接口功 能。 3 设计a p p l e t 和卡外实体之间的接口,定制a p d 0 指令集 j a v a 卡上a p p l e t 的p r o c e s s 方法是该a p p l e t 与卡外命令调用实体之间的接口, 在该a p p t e t 被选择之后,卡外实体所发送的a p d u 命令都是通过该a p p i e t 的 p r o c e s s 方法接收的。所以必须明确该a p p l e t 所要实现的所有指令,以使该a p p l e t 在接收到a p d u 指令的时候能做出正确的响应。如果该a p p l e t 所需实现的功能, 在规范标准中没有已定义的相应a p d u 指令,那么用户就可以根据需要自行定 义a p d u 指令。有关a p d u 指令的结构请参考附录1 。 北京邮电大学硕士学位论文安全的j a v as i m 卡空中下载机制的研究与实现 2 6 1 3 a p p l e t 的实现 在需求分析和框架设计之后要完成的就是a p p l e t 的代码的实现。由于j a v a 卡的a p p l e t 都继承于j a v a c a r d f r a m e w o r k a p p l e t 类,所以在编写a p p l e t 的时候要 扩展i a v a c a r d f r a m e w o r k a p p l e t 中的一些方法,这些方法包括: 1 ) p u b l i c s t a t i cv o i di n s t a l l ( b y t e 】b a r r a y , s h o r tb o f f s e t ,b y t eb l e n g t h ) 方法。该方 法由j c r e 调用,负责完成a p p l e t 的安装。在这个方法中a p p l e t 需调用自身的 构造方法以创建实例,同时还必须调用p r o t e c t e df i n a lv o i dr e g i s t e r 0 或p r o t e c t e d f i n a lv o i dr e g i s t e r ( b y i e 】b a r r a y , s h o r tb o f f s e t ,b y t eb l e n g t h ) 方法将该a p p l e t 在 j c r e 注册表中进行注册。 2 1 p u b l i cb o o l e a ns e l e c t ( ) 方法。该方法在j a v a 卡a p p l e t 被选中时,由j c r e 调 用。j a v a 卡a p p l e t 可以在s e l e c t 方法中作些特定的操作如完成些初始化或是 置位一些标志等等。如果浚方法不进行重写在,j c r e 会默认调用系统中的选择 方法将该a p p l e t 选择在指定的通道上。 3 1 p u b l i cb o o l e a nd e s e l e c t o 方法。该方法在j a v a 卡a p p l e t 被逆选时由j c r e 调 用。j a v a 卡a p p l e t 可以在d e s e l e c t 0 方法中完成一些清除操作或重置一些标志位。 否则,j c r e 会默认调用系统中的逆选方法将a p p l e t 在指定通道上逆选。 4 ) p u b l i cs h a r e a b l eg 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 i dc l i e n t a i d ,b y t ep a r a m e t e r ) 方 法。该方法返回一个可共享的接口对象s i o ( s h a r e a b l ei n t e r f a c eo b j e c t ) 。对于作 为服务类的j a v a 卡a p p l e t ,必须实现这个方法。而对于调用服务类的j a v a 卡 a p p l e t 则可不必实现该方法。 5 、p u b l i ca b s t r a c tv o i dp r o c e s s ( a p d ua p d u ) 方法。一般情况下一个j a v a 卡a p p l e t 必须重新实现这个方法3 。由于该方法是应用对外的直接接口,j a v a 卡a p p l e t 通 过该方法获得a p d u 引用,解释a p d u 指令,并调用其他相关方法执行指令。 在p r o c e s s 0 方法被调用时,a p d u 指令处理的逻辑顺序一般为: _ 获得a p d u 指令的缓冲( b u
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能化路灯系统的效率提升
- 身边的安全隐患主题班会
- 信息安全事故课件
- 2024年国防教育工作计划范例(3篇)
- 全体医护人员培训方案(4篇)
- 冲天炉熔炼安全操作规程(2篇)
- 综合管理员安全生产职责(3篇)
- 2021年10月广西南宁市江南区机关后勤服务中心公开招聘驾驶员工作人员简章冲刺题(一)
- 2024年一年级班主任工作总结参考样本(4篇)
- 中小学师资培育方案例文(3篇)
- 危废治理项目经验-危废治理案例分析
- 南京市2024-2025学年六年级上学期11月期中调研数学试卷二(有答案)
- 2021大学生个人职业生涯规划书6篇
- 汽车防冻液中毒
- 粉条产品购销合同模板
- 2024至2030年中国自动车配件行业投资前景及策略咨询研究报告
- 2024-2030年中国蔗糖行业市场深度调研及发展趋势与投资前景研究报告
- 北师版 七上 数学 第四章 基本平面图形《角-第2课时 角的大小比较》课件
- 北师大版(2024新版)七年级上册生物期中学情调研测试卷(含答案)
- 设备技术员年终工作总结
- 产品包装规范管理制度
评论
0/150
提交评论