智能卡操作系统研究和实例分析
文章出处:http://www.singbon.com 作者:张志刚,赵奎 人气: 发表时间:2011年10月07日
智能卡是一种智能型的IC 卡,又称CPU 卡或微处理器卡、智慧卡。智能卡芯片具有微型计算机软硬件配置,如:CPU、RAM、ROM、EEPROM、COS 操作系统,同时还具有用于信息安全保护的加密器、随机数发生器及物理攻击自毁电路。
智能卡芯片内的物理资源由储存在ROM内的芯片操作系统(COS)来进行统一管理和调度,我们可以根据具体的应用要求设计卡片的应用规则和规范,建立卡片的安全系统,并通过芯片操作系统实现智能卡的具体应用功能。因而,智能卡具有灵活性较强的、开放式的应用设计平台。
1 智能卡操作系统(COS)简述
COS的全称是Card Operation System(片内操作系统),它一般是紧紧围绕着它所服务的智能卡的特点而开发的,因此不可避免地受到了智能卡内微处理器芯片的性能及内存容量的影响。首先,COS是一个专用系统而不是通用系统。即:一种COS 一般都只能应用于特定的某种(或者是某些)智能卡,不同卡内的COS 一般是不相同的。其次,与那些常见的微机上的操作系统相比较而言,COS 在本质上更加接近于监控程序,而不是一个通常所谓的真正意义上的操作系统。
总体而言,智能卡芯片操作系统包括4大功能:卡片与外界通讯管理;信息存储文件管理;信息使用安全管理;命令解释执行管理。
在智能卡应用程序的具体实施步骤中,最重要的一步就是定义数据存储的文件体系结构。一旦定义了文件体系结构,无论是用户数据还是智能卡的管理数据,都可以通过文件这样一个封装形式得到极好的保护,同时,文件系统也是COS 系统设计中最为灵活的一个方面。因此,无论从系统设计的工作量还是设计的复杂程度而言,文件系统的设计是COS 系统设计中的重点。下面我们就一个实例重点对COS 中的文件系统设计进行阐述。
2 智能卡文件系统
所谓文件,是指关于数据单元或卡中记录的有组织的集合。COS 通过给每种应用建立一个对应文件的方法来实现它对各个应用的存储及管理。因此,COS 的应用文件中存储的都是与应用程序有关的各种数据或记录。此外,对某些智能卡的COS,可能还包含有对应用文件进行控制的应用控制文件。
COS 的文件按照其所处的逻辑层次如图1所示可以分为A 类DAE:主文件(Master File)、专用文件(Dedicated File)以及基本文件(Elementer File)。其中,主文件对任何COS 都是必不可少的,它是包含有文件控制信息及可分配存储区的唯一文件,其作用相当于是COS文件系统的根文件,处于COS文件系统的最高层。基本文件也是必不可少的一个部分,它是实际用来存储备应用的数据单元或记录的文件,处于文件系统的最底层。专用文件是可选的,它存储的主要是文件的控制信息、文件的位置、大小等数据信息。
对于文件而言,无疑它的存储分配往往是最重要的。文件的物理组织涉及一个文件在存储设备上是如何放置的。它和文件的存取方法有密切关系,另外也取决于存储设备的物理特性。从逻辑上讲,所有的文件必须是连续的,这是为了方便寻址,这就要求文件要以链的形式存在。对于IC卡的COS系统而言,文件链应该包括3个部分的内容:MF的入口定位;DF和子文件之间的检索;同一层次文件间的检索。
实现上述功能的方法有很多。但就一般而言,考虑文件的存储分配一般考虑的是以下3个问题:创建文件时,是否一次性为该文件分配所需的最大的空间;分配文件的空间是采用单位的大小;文件分区表(FAT)的形式。
目前常用的文件分配方法包括连续分配、链接分配和索引分配( 种,不同的操作系统往往采用其中的一种。
3 智能卡文件系统实例
结合具体应用,根据应用环境,对COS的文件系统进行设计,以满足项目本身的应用要求。该系统采用的COS芯片支持32字节的页写方式,因此在该文件系统中,分配文件的空间单位采用32字节以方便文件的读写。
3.1 EEPROM 的空间组织结构划分
A:分配64个字节的空间。
B:文件地址映射表为2k~64字节。
C:数据区为30k。
3.2 DISKHEAD的结构信息
DISKHEAD部分共有64个字节,是EEPROM起始部分的前两页(每页32字节),记录了EEPROM的基本使用情况,其中有部分预留字节以待以后作功能扩充,另外根目录区信息使用39 个字节记录了根目录文件的文件信息,将根目录文件信息放在DISKHEAD部分主要是出于扩展的考虑,如图2 所示。
3.3文件地址映射表
文件地址映射表用于保存文件各个部分的地址信息。使用总共(2k~64)个字节,对数据区的30k字节的EEPROM 进行寻址。具体方法如图3所示,阐述如下:在每一次将文件写入EEPROM 之前,比如说写在数据区的第A号,首先在第A页数据区在文件地址映射表中的两个字节的标志字节处写入FF,而后再写入数据。数据写入完毕后,如果文件还未结束,那么就搜索空闲空间(在文件分配表中查找为00的项,通过地址映射得到地址信息),然后把该地址信息写入文件上一页在文件地址映射表的所在位置。
3.4数据区
数据区保存的是各个文件的具体数据,文件的概念外延为包括目录文件在内的数据集合体。文件间的区分是通过文件标识符(FID)来进行的,不同文件间的联接是如图2所示的链式结构。文件内各个部分存储位置通过文件地址映射表组成一个链式结构来进行查找,并且当文件结束时,在文件地址映射表中标以FF表示文件结束,如图4所示。
文件采取首次创建时写入文件头信息,以后更新文件数据的方式,提供两条APDU 命令。格式如下:
具体应用时首先使用CREATE FILE创建文件,然后再使用UPDATE FILE添加数据。同时根据文件系统的需要,还要提供SELECT FILE、READ FILE、DELETE FILE等命令。
4 结论
对比非智能IC卡的芯片上只有一个简单的存储器逻辑电路,可以看出,从可靠性和安全性而言,智能卡具有天生的优势。智能卡操作系统COS的设计基本上是严格依ISO7816 等有关规范进行开发的,但其文件系统的设计是一个比较灵活的方面。本文根据系统自身特点,设计了一种智能卡的文件系统方案,从实用上看,还是相当成功的,但仍然存在一些缺陷,比如文件的搜索算法可以进一步改进,分区表可以进一步精简等。同时,COS 系统涉及的内容相当广泛,本文仅仅是通过一个具体实例对COS 系统,尤其是它的文件系统作了一些研究工作,更深入广泛的内容还有待于今后的进一步研究。
(文/长沙学院 电子与通讯工程系,湖南大学 电气与信息工程学院,张志刚,赵奎)