- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java智能卡的安全性研究
摘要: Java智能卡是一种能运行Java语言程序的智能卡。现在Java智能卡已普遍使用,其安全性也越来越重要。针对此问题,对Java语言、Java智能卡平台的安全性及其安全机制进行了研究,讨论了Java智能卡的安全性。
关键词: Java智能卡;安全性;防火墙
中图分类号:TP393.08文献标识码:A文章编号:1009-3044(2009)22-0000-00
智能卡(Smart Card)也称为CPU卡,是将集成电路芯片封装在一个塑料基片上,通过芯片内的通信模块,智能卡可以和外部设备通信,完成数据传输、存储和处理,实现各种业务。早期的智能卡实际上并不是严格意义下的智能卡,只是一种存储卡。因为它没有片上微处理器,而只有少量的存储单元和固化的逻辑电路。随着技术的发展,出现了微处理器卡,能够提供更高的安全性和更多的功能。这种卡不能直接和外部交换数据,而是通过外部设备对微处理器发送一组指令,再由微处理器执行相关的操作,并把数据返回给外部设备。
由于Java语言的平台无关性、高安全性和易开发性,在智能卡应用中有相当的优势。Java智能卡(Java Smart Card)是能运行Java语言的智能卡, 它将智能卡技术和Java语言的开发和应用技术很好地结合起来,定义了标准的应用编程接口和运行环境。由于Java语言特有的平台无关性,可以在同一张卡上保存不同开发商提供的应用程序,使得Java卡的应用范围越来越广泛:打IC电话的IC卡,手机里的SIM卡,银行里的IC银行卡和无线网络的安全模块卡等,Java智能卡的应用可以说已涉及到各个领域。
1 Java智能卡概述
Java智能卡通常由8位处理器和有限的RAM及非易失性存储器(EEPROM或Flash)组成。高端的Java卡还带有RSA加解密专用芯片以及32位处理器,可以把Java卡看成是一种安装了Java虚拟机的智能卡。由于Java智能卡芯片的运行速度以及卡上内存大小的限制,所以Java智能卡虚拟机并不支持普通Java语言的一些数据类型和功能,如基本数据类型中的float、double、long和char类型以及多维数组、安全管理器、安全管理器、多线程、垃圾回收等等功能。
Java 智能卡解决方案是用只支持具有Java语言特征的子集和分开的模型来实现Java智能卡虚拟机。因此Java 智能卡技术基本上定义的是一个平台。Java智能卡平台分为虚拟机(JCVM)和API两部分,这两部分合起来定义了所谓的Java卡运行环境(JCRE),JCRE应用提供接口。任何按照标准JCRE开发的应用可以在任意的Java卡平台上运行。为 Java 卡平台编写的应用程序称为Applet。
2 Java智能卡的安全性研究
Java智能卡同传统的智能IC卡相比有许多优点,其中,作为新一代智能卡,Java智能卡平台提供了比传统的智能卡更为完善的安全机制。由于智能卡的广泛使用,其安全性已经成了非常重要的一个因素。Java智能卡安全性应从整个系统全局进行考虑。
2.1 Java语言的安全性
Java语言是一种强安全性语言,Java语言有很多固有的安全特性可以保障Java卡平台的安全性。如:Java语言是一种面向对象语言;Java语言提供了类型和程序的名字空间管理;Java语言是强类型语言,而且不支持指针:Java语言支持透明的内存分配,等等。但是,由于智能卡资源有限,因此Java卡平台仅仅支持Java语言的一个子集。这个子集能够很好地与智能卡以及其它一些微型设备编程相匹配,同时对Java卡平台的安全性也产生了一定的影响。
Java语言安全性面对的一个很大难题是如何保护类型安全同时又允许动态类加载。在Java卡平台中不支持动态类加载,这可以加强类型安全性。因此在这个问题上Java卡平台就要比完整的Java语言有更好的安全性。另外,线程的使用和实现都很困难,而且线程还会大大增加虚拟机的开销,影响虚拟机的性能。不支持线程使应用程序代码的安全性分析变得更加容易。当然,舍去一部分Java语言特性也会给Java卡平台安全性带来一些风险,比如多应用安全性问题等。Java卡平台也提供更多的安全机制来保证它的安全性。
2.2 Java智能卡平台的安全性
在Java平台运行时间,安全以沙盒模型思想中心,一个Applet可以围绕着它的沙盒运行但不能超出它。沙盒模型是由Applet防火墙来补充的,JCRE为每个运行Applet分配一个上下文(context),对一个对象的访问是由Java卡解释器控制的,它的控制基于被访问对象的类型和当前活动的context是否是该对象的context。除
文档评论(0)