简述
COS的全称是Chip Operating System(片内操作系统),它一般是紧紧围绕着它所服务的智能卡的特点而开发的。由于不可避免地受到了智能卡内微处理器芯片的性能及内存容量的影响,因此,COS在很大程度上不同于我们通常所能见到的微机上的操作系统(例如DOS、UNIX等)。首先,COS是一个专用系统而不是通用系统。即:一种COS一般都只能应用于特定的某种(或者是某些)智能卡,不同卡内的COS一般是不相同的。因为COS一般都是根据某种智能卡的特点及其应用范围而特定设计开发的,尽管它们在所实际完成的功能上可能大部分都遵循着同一个国际标准。其次,与那些常见的微机上的操作系统相比较而言,COS在本质上更加接近于监控程序、而不是一个通常所谓的真正意义上的操作系统,这一点至少在目前看来仍是如此。因为在当前阶段,COS所需要解决的主要还是对外部的命令如何进行处理、响应的问题,这其中一般并不涉及到共享、并发的管理及处理,而且就智能卡在现在的应用情况而言,并发和共享的工作也确实是不需要的。
COS在设计时一般都是紧密结合智能卡内存储器分区的情况,按照国际标准(ISO /IEC 7816系列标准)中所规定的一些功能进行设计、开发。但是由于现在的智能卡的发展速度很快,而国际标准的制定周期相对比较长一些,因而造成了当前的智能卡国际标准还不太完善的情况,据此,许多厂家又各自都对自己开发的COS作了一些扩充。就目前而言,还没有任何一家公司的COS产品能形成一种工业标准。因此本章将主要结合现有的(指1994年以前)国际标准,重点讲述COS的基本原理以及基本功能,在其中适当地列举它们在某些产品中的实现方式作为例子。
功能
COS的主要功能是控制智能卡和外界的信息交换,管理智能卡内的存储器并在卡内部完成各种命令的处理。其中,与外界进行信息交换是coS最基本的要求。在交换过程中,COS所遵循的信息交换协议目前包括两类:异步字符传输的 T=0协议以及异步分组传输的T=l协议。这两种信息交换协议的具体内容和实现机制在ISO/IEC7816—3和ISO/IEC7816—3A3标准中作了规定;而COS所应完成的管理和控制的基本功能则是在ISO/IEC7816—4标准中作出规定的。在该国际标准中,还对智能卡的数据结构以及COS的基本命令集作出了较为详细的说明。
至于ISO/IEC7816—1和2,则是对智能卡的物理参数、外形尺寸作了规定,它们与COS的关系不是很密切。
部分体系
传送管理(Transmission Manager)
传送管理主要是依据智能卡所使用的信息传输协议,对由读写设备发出的命令进行接收。同时,把对命令的响应按照传输协议的格式发送出去。由此可见,这一部分主要和智能卡具体使用的通信协议有关,而且,所采用的通信协议越复杂,这一部分实现起来也就越困难、越复杂。
我们在前面提到过目前智能技术卡采用的传输协议一般是T=0协议和T=1协议,如果说这两类协议的COS在实现功能上有什么不同的话,主要就是在传送管理器的实现上有不同。不过,无论是采用T=0协议还T=1协议,智能卡在信息交换时使用的都是异步通信模式;而且由于智能卡的数据端口只有一个,此信息交换也只能采用半双工的方式,即在任一时刻,数据端口上最多只能有一方(智能卡或者读写设备)在发送数据。T=0、T=1协议的不同之处在于它们数据传输的单位和格式不一样,T=0协议以单字节的字符为基本单位,T=1协议则以有一定长度的数据块为传输的基本单位。
如果传送管理器认为对命令的接收是正确的,那么,它一般是只将接收到的命令的信息部分传到下一功能模块,即安全管理器,而滤掉诸如起始位、停止位之类的附加信息。相应地,当传送管理器在向读写设备发送应答的时候,则应该对每个传送单位加上信息交换协议中所规定的各种必要的附属信息。
文件管理器(File Manager)
与安全一样,文件也是COS中的一个极为重要的概念。所谓文件,是指关于数据单元或卡中记录的有组织的集合。COS通过给每种应用建立一个对应文件的方法来实现它对各个应用的存储及管理。因此,COS的应用文件中存储的都是与应用程序有关的各种数据或记录。此外,对某些智能卡的COS,可能还包含有对应用文件进行控制的应用控制文件。在CoS中,所有的文件都有一个唯一的文件标识符(Filel Identifier),因此通过文件标识符就可以直接查找所需的文件。此外,每个文件还可以有一个文件名作为助记符,它与文件标识符的不同之处在于它是可以重复的。CoS中的各文件在智能卡的个人化过程中由发行商(Is suer)根据卡的应用而创建,对卡的用户而言通常是不能对文件进行创建或删除的。但是用户可以根据情况对文件内容进行修改,可以对文件中的记录或数据单元进行增加、删除等操作。
(1) 文件系统:COS的文件按照其所处的逻辑层次可以分为三类;主文件(Master File),专用文件(Dedicated File) 以及基本文件(Elementary File)。其中,主文件对任何COS都是必不可少的,它是包含有文件控制信息及可分配存储区的唯一文件,其作用相当于是CoS文件系统的根文件,处于COS文件系统的最高层;基本文件也是必不可少的一个部分,它是实际用来存储应用的数据单元或记录的文件,处于文件系统的最底层,而专用文件是可选的,它存储的主要是文件的控制信息、文件的位置、大小等数据信息。我们可以用下图的树状结构来形象地描述一个COS的文件系统的基本结构。

当然,对于具体的某个COS产品,很可能由于应用的不同,对文件的实际分类表示会有所不同。但只要仔细地进行分析,都可以归结为上面的三个逻辑层次。例如前面提到过的PCOS产品。它对文件的分类不是按照逻辑层次划分的,而是根据文件的用途进行的。它的文件分为三类: COS文件(COS File)、密码文件(Key File)和钱包文件(Purses File)。其中所谓的COS文件保存有基本的应用数据;密码文件存储的是进行数据加密时要用到的密码;钱包文件的作用有些类似 于我们日常生活中的钱包。由此可见,它的这三类文件本质上又都属于基本文件(EF)类。在PCOS中,专用文件的概念不是很明显,但是事实上,如果大家留心的话,那么从以前的论述中,应该不难发现该产品存储器分区中FAT区内的文件的作用就类似于专用文件;而整张PCOS卡本身的性质实际就是一个主文件。COS文件有四种逻辑结构:透明结构,线性定长结构,线性变长结构,定长循环结构。它们的定义及特点可以参阅ISO/IEC78l 6-4协议中的有关部分,这里不再详述。不过无论采取的是什么样的逻辑结构,COS中的文件在智能卡的存储器中都是物理上连续存放的。卡中数据的存取方式、记录的编号方法、数据单元的大小等作为文件系统的特征,在智能卡的复位应答过程中由卡给出。
一般而言,在智能卡中最为重要的数据存取方式还是随机存取方式,也就是卡的用户在得到授权后,可以直接地任意访问文件中的某个数据单元或记录。至于COS具体对文件可以进行什么样的操作.我们将在cos的命令系统中进行讨论。
(2) 文件访问安全:对文件访问的安全性控制是cos系统中的一个十分重要的部分,由于目前的国际标准(1S0/IEC78l 6-4)在这方面基本没有作出什么实质性的规定,因此,现有的文件访问的安全控制机制的具体实现方式多种多样。我们在这里准备介绍其中比较有代表性的两种实现方式:鉴别寄存器方式以及状态机方式。其中,采用鉴别寄存器方式的有PCOS、ME2000等产品:采用状态机方式的产品有STARCOS。采用鉴别寄存器方式时,通常是在内存RAM中设置一个8位(或者是16位)长的区域作为鉴别用寄存器。这里的鉴别是指对安全控制密码的鉴别。鉴别用寄存器所反映的是智能卡在当前所处的安全状态。采用这种方式时,智能卡的每个文件的文件头(或者是文件描述器)中通常都存储有该文件能够被访问的条件,一般是包括读、写两个条件,分别用cr、cu表示这就构成了该文件的安全属性。而用户通过向智能卡输入安全密码.就可以改变卡的安全状态,这一过程我们通常称为出示,这就是鉴别寄存器为主的安全机制。把上面的两方面结合起来,就能够对卡中文件的读写权限加以控制了。具体的操作机制我们以PCOS为例加以描述。