论文部分内容阅读
Java智能卡是一种能够运行Java程序的智能卡,其以拥有平台无关特性、支持一卡多用和重用、安全稳定等众多优势正主导着网络时代智能卡技术的发展趋势,也使得该技术成为了智能卡领域的研究发展热点。我国智能卡技术虽然正在迅速发展,但仍处于追赶落后状态,许多运营商需要花费大量授权费引入国外技术,对我国的生产发展带来影响。在此背景下,基于国家自主可控安全技术的战略需要,与企业进行产学合作研究具有自主知识产权的Java卡产品将具有较大的现实意义。Java卡虚拟机是实现Java卡应用程序平台无关性的基础,负责为指定的硬件平台解释执行字节码,并进行存储空间的管理和异常处理等工作。本文研究的课题就是在基于ARM微处理器的嵌入式系统上实现一个能够和Sun公司的Java卡标准兼容的Java卡虚拟机方案。Sun公司提供的Java卡虚拟机规范只是纲领性文档,如何在资源十分有限的硬件环境中既实现Java卡规范的基本要求,又能尽可能确保系统运行的效率及安全控制是设计与实现Java卡虚拟机时需要研究的主要难点。本文首先基于Java卡的相关规范对Java卡技术进行了深入系统地分析研究,尤其是Java卡运行环境与虚拟机的相关规范和安全控制机制。接着详细叙述了基于ARM Cortex-M0核硬件平台的Java卡的软硬件架构,包括对主控芯片特性和软件平台框架的介绍,并着重分析了Java卡虚拟机卡内外模型。随后在仔细分析了虚拟机功能实现所需模块和各个模块之间的交互关系基础上,着重于设计与实现Java智能卡虚拟机内部的CAP文件解析模块,寄存器、Java栈、堆等内存管理模块,以及解释执行模块和异常处理模块,并归纳应用程序的格式和开发流程,同时对与Java卡运行环境协同下的安全控制机制进行了设计。在研究现有方案的同时对指令执行效率方面进行了研究并给出相应优化方案,并在随后的功能测试中对本方案进行了验证。此外,本文还在此基础上研究了Java智能卡的安全性,着重从逻辑攻击和混合攻击两种方式研究了Java智能卡当前存在的安全威胁,并给出相应解决措施。