论文部分内容阅读
Java智能卡(Java Card)是一种运行Java程序的接触式微处理器智能卡,是一种将智能卡(Smart Card)与Java语言相结合的技术,它深化了Java的应用层次,克服了智能卡硬件和软件开发专业性强、开发周期长等阻碍智能卡普及的缺点,制定了一个安全、便捷且多功能的平台。由于Java智能卡的广泛使用,其安全性已经成了非常重要的一个因素。本文目的在于深入研究Java智能卡安全技术,分析Java智能卡的安全性能。通过对Java Card安全技术的研究,提出了一些能运用于实践的构想并在此基础上进行设计应用。首先,从全局进行考虑,在系统研究的基础上,着重对Java智能卡的以下三个方面进行了分析:1、防火墙和对象共享机制Java智能卡平台通过防火墙机制为卡上的多个应用提供安全的运行环境。卡上的应用被防火墙隔离,独立于其他的应用。它提供了对含有共享执行对象的存贮数据所使用的详细控制,防止了开发过程中经常出现的安全问题。本文对两种机制进行了介绍,并针对其在实际应用中涉及的一些问题进行了讨论。2、垃圾回收机制现在Java智能卡技术最主要的瓶颈是硬件平台环境太小,导致其运行性能得不到很大的提升。基于这个特点,对内存空间的有效利用就显的尤为重要。垃圾回收器是Java语言的一个特色,尤其对Java智能卡而言。它不但可以简化Java智能卡程序的编写,而且能够实现动态的释放内存。本文就目前垃圾回收的研究现状进行讨论,并提出适合Java智能卡环境的垃圾回收机制。3、事务管理机制原子性(atomicity)表示在发生掉电或编程错误的情况下,数据或者全部更新或者全部不变,这样就可以避免留下不可预知的数值。JCRE为交易的原子性提供了强大的支持,因此如果一项交易没有完成,那么卡中的所有数据都会恢复到交易开始前的状态。这种机制保证了交易进行期间不会受到意外的干扰,本文将详细分析Java智能卡的事务机制。然后,文章介绍了Opencard Framework和Global Platform的概念,并详细说明了Opencard Framework的框架结构以及Global Platform应用程序安全下载的设计和实现,包括密钥管理设计、APDU命令的实现等。之后对GlobalPlatform的安全机制进行了分析,并有针对性的提出了相应的改进方案。在对Java智能卡的安全性的分析基础上,结合参考资料,实现了以下两个模型:1、加密及签名模型。Java智能卡本身的安全性体现在对数据的保护上,Java智能卡API中的Javacard.security和Javacardx.cryptos包提供了当前通用的各种加密算法和技术。其中包括对称/公开密钥算法、数字签名和验证、pin码管理等。在对AES、ECC、椭圆曲线签名算法分析的基础上,引入了组合公钥的思想,提出了一种混合密钥系统。该系统具有保密和鉴别(数字签名)的功能。之后根据Java Card开发步骤,设计出AES、ECC算法、椭圆曲线签名算法的类模块及时序图,而后运行成功,证明该方案具有实际可行性。2、在分析Java智能卡的工作原理基础上,结合Global Platform系统的安全性,完善了一种Java智能卡平台安全性的方案。该方案以密钥集的管理和应用为基础,通过划分不同密钥集的认证管理权限和提供安全通道,实现不同卡外实体对卡上内容的安全管理。本文主要完成了以下两个方面的创新:1、在Java Card中引入了组合公钥思想,实现了集成了AES、ECC及椭圆曲线签名算法的混合密钥系统,并在模型中优化了相关算法;2、完善了一个Java智能卡的密钥管理方案。