论文部分内容阅读
[摘要]智能卡在银行、金融、保密单位的使用很广泛,而且越来越成为人们日常生活的一个不可缺少的东西,对其原理进行基本了解是很有意义的。
[关键词]Java智能卡 体系结构 原理
中图分类号:TP2 文献标识码:A 文章编号:1671-7597(2008)1010057-01
一、智能卡分类
存储片的数量占现有卡片总数的一半以上,这种集成电路IC卡只有存储数据的能力,而不具有运算能力。智能片和非智能卡分类的标志是片内有无CPU。智能卡(Smart Card)是一种内置CPU的集成电路芯片卡,具有芯片操作系统的COS,能够进行数据读写和进行复杂的运算,它是微电子技术和计算机技术结合的结晶。以下是对智能片的几种不同的分类。
从造型上看,常见的密码智能卡有两种形式:USB接口智能卡和扁平卡片式智能卡,但是核心部件都是CPU智能卡芯片,前者是将芯片转接USB接口。
按照硬件接口上来分,可以分为无线射频卡和机械触点卡;从应用的领域上来分,可以分为银行金融卡、移动通讯卡、门禁考勤卡、PKI安全卡等。从提供的安全功能上来分类,智能卡可以分为密码智能卡和非密码智能卡。
智能卡的共性结构都内置有处理器CPU、只读存储器ROM、可擦除可编程只读存储器EEPROM、随机存储器SAM等一般的计算机系统组件。智能卡都支持一定的密码算法来达到的一定的安全性,但是智能卡CPU一般都是8位、1G位的,即使对于32位的CPU,其时钟频率也只有3 MHz到5MHz,无法实现像RSA这样的复杂密码算法。因此,为了支持非对称密码算法RSA算法,密码智能卡还有专门的密码协处理器,可以从硬件上提高密码算法运算的效率。是否有密码协处理器或是否支持RSA算法成为区别密码智能卡和非密码智能卡的标志。
从智能卡应用编程接口与操作系统类型的关系上分,可以分为操作系统相关智能片和操作系统无关智能卡。
传统的智能卡都是针对一类应用,然后在操作系统上开发应用编程接口,也即与操作系统相关。JavaCard智能一卡是Java语言与智能卡相结合的产物。概括说来,JavaCard就是能运行Java语言的CPU卡。JavaCard采用的是一种新的智能卡编程系统,它在智能卡上建立Java虚拟机及相应的运行环境,程序与操作系统无关。与智能卡无关的操作系统除了JavaCard以外,常见的还有两种:Multos卡操作系统和微软的Windows for Smart Cards操作系统。
二、芯片体系结构和操作系统
智能卡系统是一个极小的计算机系统,资源十分有限。它的内存一般为1K的RAM、16K的ROM、64K的EEPROM。CPU一般为8位或者16位的微处理器,32位的RISC微处理器CPU芯片也在逐渐增多。智能卡中三种寄存器的作用各不相同:SAM用于存放运算过程中的中间数据和结果数据;ROM用于存放智能卡的操作系统;EEPROM是智能卡的主要存储器,用于存放持卡人的个人信息以及发行单位的信息和应用数据。
掩模于ROM中的智能卡底层操作系统(COS)负责管理系统的硬件资源,向用户提供应用接口及增强智能卡的安全性等。智能卡操作系统至少有四种功能:硬件资源管理功能、通讯传输管理功能、应用控制管理功能、安全控制管理功能。
三、智能卡体系结构
Java智能卡(如图2-5)芯片物理结构与其它密码智能卡相同,包含了CPU、ROM、EEPROM、RAM以及密码协处理器等。最底层的COS(Card Operation system卡操作系统)是硬件裸机的操作系统,负责硬件资源的调度和底层指令的处理工作。
Java卡的系统结构(图2-6)由三部分规范构成:
(1)Java Card 2.1虚拟机规范(JCM)它为智能卡定义了一个Java程序设计语言的一个子集和用于智能卡的兼容JAVA的虚拟机。
(2)Java Card 2.1运行环境(JCRE)规范,描述了Java Card的运行机制,包括内存管理,Applet的管理和其它一些运行特性。
(3)Java Card 2.1应用编程接口API规范,描述了一套完整的核心和扩展的Java包,提供编写智能卡应用程序的类。
JCVM位于COS和本地方法之上,隐藏了底层智能卡的不同技术,实现了卡接口的统一和编程语言的统一。
Java Card API为开发人员定义了一整套API,主要负责运行Java卡Applet以及为Applet运行提供所需要的环境。
COS、JCVM和API共同构成了JCRE(Java卡运行时环境)。企业专用扩展类是服务方所提供的类,使得企业和公司能够提供属于自己的服务程序。文档信息安全中所需要的智能卡身份认证和密钥服务功能就是在此层制作扩展的接口类。
JCVM是通过Java Card虚拟机的卡内(on-card)部分和卡外(off-card)部分来实现的。卡内部分包括Java Card字节码解释器(Interpreter)卡外部分包括Java Card转换器 (Converter)。卡外虚拟机在PC机或Sun工作站中实现,负责类检验、准备和应用解析的工作;卡内虚拟机在智能卡内实现,用来执行字节码和支持Java 语言。
Java应用程序的开发与其它Java应用程序的开发在开始阶段是相同的,开发者编写一个或多个Java类的源代码,经过Java编译器编译成一个或多个类文件。相应的类文件用Java卡转换器转换成Cap文件,转换完成后,CAP'文件被传到卡内虚拟机中,卡内虚拟机执行CAP文件的程序代码。CAP文件是两部分虚拟机的接口文件,CAP文件由卡外虚拟机产生,卡内虚拟机使用。
[关键词]Java智能卡 体系结构 原理
中图分类号:TP2 文献标识码:A 文章编号:1671-7597(2008)1010057-01
一、智能卡分类
存储片的数量占现有卡片总数的一半以上,这种集成电路IC卡只有存储数据的能力,而不具有运算能力。智能片和非智能卡分类的标志是片内有无CPU。智能卡(Smart Card)是一种内置CPU的集成电路芯片卡,具有芯片操作系统的COS,能够进行数据读写和进行复杂的运算,它是微电子技术和计算机技术结合的结晶。以下是对智能片的几种不同的分类。
从造型上看,常见的密码智能卡有两种形式:USB接口智能卡和扁平卡片式智能卡,但是核心部件都是CPU智能卡芯片,前者是将芯片转接USB接口。
按照硬件接口上来分,可以分为无线射频卡和机械触点卡;从应用的领域上来分,可以分为银行金融卡、移动通讯卡、门禁考勤卡、PKI安全卡等。从提供的安全功能上来分类,智能卡可以分为密码智能卡和非密码智能卡。
智能卡的共性结构都内置有处理器CPU、只读存储器ROM、可擦除可编程只读存储器EEPROM、随机存储器SAM等一般的计算机系统组件。智能卡都支持一定的密码算法来达到的一定的安全性,但是智能卡CPU一般都是8位、1G位的,即使对于32位的CPU,其时钟频率也只有3 MHz到5MHz,无法实现像RSA这样的复杂密码算法。因此,为了支持非对称密码算法RSA算法,密码智能卡还有专门的密码协处理器,可以从硬件上提高密码算法运算的效率。是否有密码协处理器或是否支持RSA算法成为区别密码智能卡和非密码智能卡的标志。
从智能卡应用编程接口与操作系统类型的关系上分,可以分为操作系统相关智能片和操作系统无关智能卡。
传统的智能卡都是针对一类应用,然后在操作系统上开发应用编程接口,也即与操作系统相关。JavaCard智能一卡是Java语言与智能卡相结合的产物。概括说来,JavaCard就是能运行Java语言的CPU卡。JavaCard采用的是一种新的智能卡编程系统,它在智能卡上建立Java虚拟机及相应的运行环境,程序与操作系统无关。与智能卡无关的操作系统除了JavaCard以外,常见的还有两种:Multos卡操作系统和微软的Windows for Smart Cards操作系统。
二、芯片体系结构和操作系统
智能卡系统是一个极小的计算机系统,资源十分有限。它的内存一般为1K的RAM、16K的ROM、64K的EEPROM。CPU一般为8位或者16位的微处理器,32位的RISC微处理器CPU芯片也在逐渐增多。智能卡中三种寄存器的作用各不相同:SAM用于存放运算过程中的中间数据和结果数据;ROM用于存放智能卡的操作系统;EEPROM是智能卡的主要存储器,用于存放持卡人的个人信息以及发行单位的信息和应用数据。
掩模于ROM中的智能卡底层操作系统(COS)负责管理系统的硬件资源,向用户提供应用接口及增强智能卡的安全性等。智能卡操作系统至少有四种功能:硬件资源管理功能、通讯传输管理功能、应用控制管理功能、安全控制管理功能。
三、智能卡体系结构
Java智能卡(如图2-5)芯片物理结构与其它密码智能卡相同,包含了CPU、ROM、EEPROM、RAM以及密码协处理器等。最底层的COS(Card Operation system卡操作系统)是硬件裸机的操作系统,负责硬件资源的调度和底层指令的处理工作。
Java卡的系统结构(图2-6)由三部分规范构成:
(1)Java Card 2.1虚拟机规范(JCM)它为智能卡定义了一个Java程序设计语言的一个子集和用于智能卡的兼容JAVA的虚拟机。
(2)Java Card 2.1运行环境(JCRE)规范,描述了Java Card的运行机制,包括内存管理,Applet的管理和其它一些运行特性。
(3)Java Card 2.1应用编程接口API规范,描述了一套完整的核心和扩展的Java包,提供编写智能卡应用程序的类。
JCVM位于COS和本地方法之上,隐藏了底层智能卡的不同技术,实现了卡接口的统一和编程语言的统一。
Java Card API为开发人员定义了一整套API,主要负责运行Java卡Applet以及为Applet运行提供所需要的环境。
COS、JCVM和API共同构成了JCRE(Java卡运行时环境)。企业专用扩展类是服务方所提供的类,使得企业和公司能够提供属于自己的服务程序。文档信息安全中所需要的智能卡身份认证和密钥服务功能就是在此层制作扩展的接口类。
JCVM是通过Java Card虚拟机的卡内(on-card)部分和卡外(off-card)部分来实现的。卡内部分包括Java Card字节码解释器(Interpreter)卡外部分包括Java Card转换器 (Converter)。卡外虚拟机在PC机或Sun工作站中实现,负责类检验、准备和应用解析的工作;卡内虚拟机在智能卡内实现,用来执行字节码和支持Java 语言。
Java应用程序的开发与其它Java应用程序的开发在开始阶段是相同的,开发者编写一个或多个Java类的源代码,经过Java编译器编译成一个或多个类文件。相应的类文件用Java卡转换器转换成Cap文件,转换完成后,CAP'文件被传到卡内虚拟机中,卡内虚拟机执行CAP文件的程序代码。CAP文件是两部分虚拟机的接口文件,CAP文件由卡外虚拟机产生,卡内虚拟机使用。