论文部分内容阅读
目前,金融IC卡产品所使用的为Java智能卡(Java Card),其是一种运行Java程序的微处理器芯片卡,是将智能卡(Smart Card)与Java语言相结合的技术,其深化了Java的应用层次,克服了智能卡硬件和软件设计和研发专业性强、研发周期长等阻碍智能卡普及的缺点,制定了一个便捷、安全且多功能的平台。在智能卡技术和智能卡应用领域逐步规范化的背景下,Java Card技术以其多应用性、平台无关性和支持动态下载的特点成为智能卡领域研究和发展的热点。Sun公司给出的Java Card规范只是一个纲领性文档,它给出了构建Java Card的指导性原则,但却没有给出构建Java Card的细节。因此,构建Java Card的方法很可能各有不同,甚至差别很大。如何实现Java Card规范的基本要求,并尽可能保证Java Card的底层与应用层以及终端之间通讯运行效率是构建Java Card时需要研究的主要问题。本文目的在于深入研究Java Card虚拟机技术,分析了Java Card虚拟机与符合金融规范的Applet和终端之间的通讯结构,包括了通过应用协议数据单元的处理机制,以实现卡片内金融应用的加载与实现。针对本研究题主要通过以下几个方面进行分析:1:卡内InstallerJava Card解释器本身并不装载CAP文件,其只执行在CAP文件中包含的代码。在Java Card技术中,下载和安装CAP文件的机制归属Installer部件完成。2:CAP文件和Export文件结构CAP文件是由Application的类文件经过卡外转换器转换出来的,包含一个Java Package中定义的所有可执行二进制类和接口,它与Package之间是一一对应的关系。3:原子性机制在Java Card System中,原子性意味着保证对一个永久对象域(包括数组元素)或对一个类域的修改要么成功地完成,要么在修改过程中发生错误时就恢复为其原来的值。4:APDUs的处理APDU (Application Potocol Data Unit)指应用协议数据单元,由十六进制指令组成,Applet通过Java Card虚拟机(JCVM)与终端之间通信是通过APDU实现的,本文着重介绍了其APDU命令通信机制。针对Java Card硬件资源都集中在IC微芯片上,其硬件资源限制性较强,特别是存储空间之小,又要满足金融相关规范要求等特点,本文主要研究的是在目前金融领域使用最广、发卡数量最多的Java Card技术体系中,最为关键的JCVM通信命令的设计与实现。