当前位置:首页 > 工业控制 > 电子设计自动化
[导读]摘要:本文针对Java智能卡的安全问题,提出了一种新的解决方案——将可信计算技术引入到Java智能卡的设计与实现中,以可信计算在安全认证方面的优势来解决智能卡的安全问题。文章首先从硬件方面对该方案的可行性进行了

摘要:本文针对Java智能卡的安全问题,提出了一种新的解决方案——将可信计算技术引入到Java智能卡的设计与实现中,以可信计算在安全认证方面的优势来解决智能卡的安全问题。文章首先从硬件方面对该方案的可行性进行了分析,然后从类库、虚拟机和运行时环境三个方面介绍了如何实现Java智能卡,最后并着重介绍了可信机制的构建。

1 引言

Java 智能卡是一种能运行Java 语言程序的智能卡,它在资源有限的智能卡环境中支持Java 语言的一个子集,是Java 嵌入到智能卡中的一种新的应用[1]。由于Java 智能卡具有一卡多应用的特性,而且Java 程序“一次编写,到处运行”,使得近几年来Java 智能卡市场蓬勃发展起来。Java 智能卡产品已经在全世界得到了广泛的应用,包括无线通信、医疗/健康保险、金融银行、政府机构、身份认证、电子商务、系统安全等领域。

Java 智能卡可以同时运行几个不同的程序,而且无论发卡前,还是发卡后,都卡允许用户自由的下载,安装和删除程序。这就需要卡片具有很高的安全行。而现在的Java 智能卡一般通过简单的防火墙和接口共享机制来保障其安全性,这无疑存在着安全隐患。该方案将把可信计算技术引入到Java 智能卡的设计与实现中,以可信计算在安全认证方面的优势来解决智能卡的安全问题。

2 硬件平台的选择

本文经过研究发现:可信计算和 Java 智能卡技术对硬件的需求基本相同。两者都需要易失存储器,非易失存储器,对称/非对称密码处理器,随机数处理器,杂凑运算单元,执行单元和随机数产生器。当然,两中技术对硬件的要求有细微的差异:例如可信密码模块需要监测电源,而智能卡不需要;可信模块的RSA 引擎需要达到2048 位强度,而智能卡并没有明确的规定;可信模块的I/O 是总线形式的,而智能卡需要射频、USB 或者其它形式的通讯模块。

由以上分析可以看出,智能卡和可信模块对硬件的需求虽然有所异同,但并不矛盾,这些差异是两者对安全性的不同要求造成的。为了将可信计算技术引入到智能卡的设计与实现中,可以挑选一款规格合适的智能卡芯片作为硬件平台。经过对比,该方案中,最终选择了中兴集成电路设计有限公司的芯片Z32H256D32SU。该芯片是中兴在国产32 位RISC 处理器的多功能安全处理平台基础上开发出的,具备高处理能力、高安全性、低功耗、低成本等特点。它具有8KBSRAM 存储器、256KB Flash 存储器、32KB EEPROM 存储器,支持DES/3DES、RSA、ECC、SHA-1、HMAC 等算法,并带有随机数产生器和电源监测等模块(具体的参数可以参见其手册)。该芯片完全可以同时满足智能卡和可信计算的硬件需求,用于构建可信Java 智能卡。

3 可信Java 智能卡的设计与实现

3.1 可信Java 智能卡的架构

可信 Java 智能卡(Trusted Java Card,缩写为TJC)是在Java 智能卡中引入了可信的理念,用可信技术来增强其安全性。其结构框架如图1 所示。

最底层是各种硬件资源,它上面硬件驱动层,这一层是底层硬件调用接口的集合,它可以把上层和具体的硬件细节分离,方便以后的硬件的升级,而且可以更方便的实现Java 的平台无关性。

安全管理组件是一组执行各种操作的组件的集合,例如包的下载,包的度量,Applet的安装和删除,密钥的存储和读取,事务的记录和回滚等,这些功能组件通过运行时环境的调用来执行。其它各模块的设计下文分别予以说明。


图 1 可信Java 智能卡的架构

3.1.1 可信Java 智能卡虚拟机

可信 Java 智能卡虚拟机是用于支持字节码运行的虚拟计算机,它的核心功能是解释虚指令,使程序按着正常的流程执行。虚拟机有13 类185 条指令需要实现,该方案在实现虚拟指令调用时,设计了一个用于定位指定指令的虚拟指令跳转表,采用函数指针的方式实现虚拟指令跳转,其定义如下所示:

BYTE (*bytecodeJumperFun[185])();

执行一条指令的基本步骤如图2 所示:

1. 首先读取 PC 指针处的值,得到与该值相对应的方法区中的指令。

2. 判断其是否需要解析,如果需要,则先解析该指令,得到所访问对象的物理地址后,再对其解释执行;如果为简单指令,则无需解析直接执行即可。

3. 在本指令执行结束后,虚拟机将PC 指针指向当前指令缓冲区中的下一条指令,如果该指令存在,则重复执行步骤一、二;否则在所有指令执行完毕的情况下,退出虚拟机,程序运行结束。


图 2 解析虚拟指令的基本流程

3.1.2 可信Java 智能卡类库

可信 Java 智能卡类库既实现了一般的Java 智能卡应用程序接口,又实现了可信密码模块的用户接口。为了提高执行速度,耗费时间比较多的操作用C 语言实现。在 CAP 文件中,每个方法的头信息如下所示:


当flags 值为1 时,TJCVM 去调用与该方法对应的C 方法;值为0 时,TJCVM 将定位到该方法的函数体,对字节码进行解释。类库的设计采用了基于 token 的动态链接过程。所谓“基于token 的动态链接过程”是指为提高Java 智能卡应用程序的独立性,在解释执行指令时,虚拟机首先将需要访问的对象(例如类、方法等)转化为与访问对象对应的符号(token),然后再将token 转化为存储被访问对象的物理地址这一过程。动态联接减小了修改其他类时对本程序代码的影响。在Java 智能卡应用程序Applet 运行时,如果引用了外包中的方法,解释器将获得引用的外包的索引,以类和方法token 值作为索引标记,通过CAP 文件中各组件中具体的包信息、类信息和方法信息,可以准确地完成从token 值跳转到被引用方法的具体实现。

3.1.3 可信Java 智能卡运行环境

可信 Java 智能卡运行环境扮演着决策者和调度者的角色,它根据Java 智能卡的具体状态决定在什么时候调用哪个功能模块,并且为各模块提供合适的运行环境。下载到卡内的 Applet,由Java 智能卡运行环境控制运行,其运行状态有以下几种:

已安装状态

此状态为应用程序安装并在卡上注册后的状态。

被选择状态

应用程序只有被选择后,才能被激活,进入命令处理状态,与读写器间进行交互。

命令处理状态

在此状态下,Java 智能卡与读写器进行通信,执行应用程序中定义的process 方法。通过在应用程序中重载此方法,即可完成不同的智能卡应用功能。

取消选择状态

此状态为应用程序的非激活状态,直到该应用程序被重新选择为止。各状态之间通过执行不同的指令相互切换,运行环境都会根据Applet 所处的具体状态,来判断哪些功能模块应该执行,哪些模块不能执行,哪些由系统自动运行,哪些由用户调用,以及各模块之间的执行顺序。

3.2 可信机制的构建

可信计算的核心理念就是信任链的传递。TJC 中信任链的传递如图3 所示:


图 3 信任链传递示意图

信任链建立的前提条件是确定信任原点:三个可信根——可信度量根,可信报告根,可信存储根。本方案中将BootLoader 作为可信度量根,并在Z32H256D32SU 芯片的EEPROM中开辟两片独立的空间分别作为可信存储根和可信报告根。

BootLoader 在加电后最先被执行,它负责验证硬件平台和运行时环境的完整性,初始化一些硬件寄存器,并加载运行时环境。运行时环境的标准值被固化在BootLoader 内,当系统启动的时候,BootLoader 首先对运行时环境进行度量,然后将度量值与标准值比较,如果相同则将控制权移交给运行时环境;如果不同,则禁止启动。

运行时环境被加载后将一直占有 CPU 的控制权,它负责度量类库,解释器和各种管理组件,并负责调度各种可信服务,如身份认证和密钥管理等。当Applet 下载后,首先要被运行时环境度量,只有在通过度量的情况下,才被执行。

由 BootLoader 到运行时环境,再到Applet,就建立起了一条可信链,这条信任链中的每个环境都是自主开发的,这样就能保证卡内环境的可信。

4 结论

本文探索性的将可信计算和 Java 智能卡技术相结合,设计并实现了一款可信Java 智能卡,在很大程度上提高了卡片的安全性,同时为解决Java 智能卡的安全问题指出了一个新的方向。

作者的创新观点:探索性的将可信计算和 Java 智能卡技术想结合,用可信计算的在安全认证方面的优势来提高智能卡的安全性,为解决Java 智能卡的安全问题,指出了一个新的方向。



参考文献:

[1].RISC datasheethttp://www.dzsc.com/datasheet/RISC+_1189725.html.
[2].PC datasheethttp://www.dzsc.com/datasheet/PC+_2043275.html.


来源:过往烟云0次

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭