java实现安全卡模块,Java智能卡安全运行时环境的设计

0引言Java卡技术以其平台无关、一卡多用、应用程序的动态下载和应用开发快捷的特点成了智能卡研究和开发领域的热门技术,采用Applet方式实现Java卡的行业应用,已经成为了跨行业、多应用智能卡的首选实现方式。但是已有的Java卡并没有提供对Applet安全下载的支持。这就存在一个安全隐患:例如,Applet可能在下载前被恶意篡改,或者未被授权的恶意应用被下载到卡内,卡内已有的Applet被恶意删除等。因此,开发者应该提供一种安全下载机制,确保只有经过授权的、可信的Applet才能被下载到卡内;应用程序下载到卡内后,应用度量机制对Applet进行度量,验证应用程序的完整性;在Applet被选择运行时,应该对其进行跟踪,将指定的Applet从开始被选择到结束选择期间,所有位于活动状态的Applet的AID(ApplicationIdentification)号记录到跟踪日志中。本方案设计的Java智能卡可信运行环境按照TPM规范向卡外实体提供了可信报告机制。通过对出卡信息进行私钥签名,并为卡外实体提供公钥证书的形式,将Applet在卡内的度量评估信息和跟踪日志可信地报告给卡外实体,经过与标准运行情况的对比可以对Java卡的安全性做出评估。1方案设计在本方案中,JavaCard应用程序的安全下载采用了GlobalPlatform卡规范里的双向认证和安全通道协议,保证了卡外实体和下载过程的安全性;之后JCRE调用卡内的下载安装模块完成Applet和其对应的度量方案的下载、安装、运行、删除等操作;当Applet下载完成后,JCRE调用可信计算中的TPM度量模块对Applet进行度量,来保证其内容的完整性;当Applet被Select运行或调用getSherableAppletInterface发生JCRE上下文切换时,JCRE调用Applet跟踪模块对活动的Applet的AID进行跟踪,生成跟踪日志;最后利用TPM中的可信报告机制将度量信息,跟踪信息用Java卡的私钥签名后,发送给卡外实体。图1给出了Java卡的系统结构图。图1JavaCard的系统结构图从结构图中,我们可以看出,在Java卡应用管理组件里面,包括下载安装模块、度量模块和跟踪模块。当一个应用程序将要下载到卡内时,分别启动这三个模块来保证Java卡应用程序的安全。1.1应用程序的安全下载GlobalPlatform卡技术规范的目的是为发卡商提供一个统一的安全框架,通过这个框架实现跨行业智能卡的安全与管理。它对卡上的管理模块进行了标准化的定义,达到安全框架的平台无关性和通用性;规定了卡外实体和卡的通信方式,定义了一种用于保护卡及其应用程序的安全机制。针对Java卡的特点,本方案提出了以密钥管理为基础,以安全通道协议为支撑,符合GlobalPlatform框架的安全解决方案。基于此方案,可以完成Java卡安全内容管理和安全通信,增强Java卡应用下载和卡上内容管理的安全性。1.1.1密钥集首先在卡上开发一个Applet,代表卡的发行商,对卡的安全管理负责。卡管理Applet主要任务是管理和维护一组密钥集,密钥集的数目根据安全等级需求确定。每个密钥集又由一组密钥组成,其成员密钥的数目根据不同的安全需求和密钥用途进行配置,但一个密钥集至少有三个基本成员密钥:(1)ENC(EncryptionKey):数据加密时所使用的加密密钥:(2)MAC(MessageAuthenticationCodeKey:)附加身份码验证时所使用的认证密钥;(3)DEK(DataEncryptionKey):加密传输过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值