论文部分内容阅读
Java卡是能运行Java程序的智能卡,它将智能卡技术和Java语言的开发和应用技术很好地结合起来,并定义了标准的应用编程接口和运行环境。Java卡以其多应用的支持、良好的安全特性、面向对象的编程环境、应用程序动态下载等众多优点成为智能卡技术在网络时代的主流应用,可以在同一张卡上保存不同开发商提供的应用程序,这些优点使得Java卡的应用范围越来越广泛:从银行的借贷卡,存放个人医疗信息的医疗卡,到手机中的SIM卡等,Java卡的应用可以说已涉及到各个领域。与Java卡需求量急剧上升所对应的是,它受到非法入侵、修改以及信息截取等各种形式的攻击的机会将会更多。而卡上保存的数据一般有个人ID、指纹、私人密钥、账号等高度敏感的信息,需要完备的安全机制保护这些信息不被非法获取。因此近几年来关于Java卡系统平台安全的研究成为越来越多技术人员关注的热点,但是目前安全性方面的研究更多的是限于对卡端的安全性,对服务器端的研究涉及较少,本课题就是对服务器端平台即管理平台,进行研究和分析,并设计了一种安全有效的管理平台。文章首先对Java卡平台的基本技术、协议规范以及相关的PKI和加密技术进行介绍,分析了目前Java卡系统平台面临的安全问题;然后对当前Java卡平台特别是服务器端存在的安全性隐患进行了分析,在此基础上,结合当前智能卡业务面临的安全问题,提出了一种服务器端管理平台的框架,该方案遵循GlobalPlatform相关规范,支持多种应用业务的服务,实现服务器端的安全管理以及与卡端的安全通信。方案使用PKI体系、混合密钥、数字信封、数字签名、消息摘要等技术,在通信过程中采用了动态密码的加密方式;提出在服务器端引入安全域,确保来自不同应用提供商的应用程序和数据可以在安全管理平台上共存,且不破坏每个应用提供商的隐私性和完整性;采用安全通道机制,保证安全管理平台与外部实体通信的安全性;结合Java卡协议,并考虑到实际的安全管理平台上的一些特殊的应用需求,即平台上可能也会开发具体应用,提出在服务器端利用原子性和事务机制、Applet防火墙和共享机制对Applet进行安全管理和维护;对用户分角色按照不同权限,利用多密钥系统进行管理,即使用一套密钥加密数据,使用另一套密钥对用户进行身份识别。