物联传媒 旗下网站
登录 注册
RFID世界网 >  技术文章  >  其他  >  正文

智能卡的文件系统

作者:王 波,伍洲凯
来源:RFID世界网
日期:2009-08-05 11:51:30
摘要:本文根据ISO7816 国际标准,详细阐述了智能卡文件系统的组织结构、文件访问机制、EF 文件的内部结构以及EF 文件中数据的访问机制等。
  1  智能卡简介 

  智能卡的名称来源于英文名词“Smartcard”,又称集成电路卡,即IC 卡( Integrated Circuit card) 。它将一个集成电路芯片镶嵌于塑料基片中,封装成卡的形式,其外形与覆盖磁条的磁卡相似。智能卡的概念是70 年代初提出来的,法国布尔(BULL) 公司于1976 年首先创造出智能卡产品,并将这项技术应用到金融、交通、医疗、身份证明等多个行业。智能卡芯片具有写入数据和存储数据的能力,智能卡存储器中的内容根据需要可以有条件地供外部读取和供内部信息处理和判定之用。 

  根据智能卡中所镶嵌的集成电路的不同可以分成以下三类: 

  (1) 存储卡:卡中的集成电路为EEPROM(可用电擦除的可编程只读存储器) 。 

  (2) 加密存储卡:卡中包含具有加密逻辑的集成电路和非易失存储器。 

  (3) CPU 卡: 卡中的集成电路包括中央处理器CPU、EEPROM、随机存储器RAM以及固化在只读存储器ROM中的片内操作系统COS(Chip Operating System) 。严格地讲,只有CPU 卡才是真正的智能卡。按卡与外界数据传送的形式来分,有接触型智能卡和非接触型智能卡两种。 

  目前,最广为人知的智能卡标准就是ISO7816。此标准主要定义了塑料基片的物理和尺寸特性, 触点的尺寸和位置,信息交换的底层协议描述,以及跨行业的命令集等等。 

  2  智能卡的文件系统 

  2. 1  文件系统的组织结构 

  智能卡的文件系统类似DOS 的树形文件系统。ISO7816 支持两类文件:DF(Dedicated File ) 和EF(Elementary File) 。DF 文件有点类似DOS 的目录,而EF 文件则有点类似DOS 的数据文件。DF 文件之下的DF 文件,类似DOS 的子目录。当然,DF 之下还可以有DF 文件。同DOS 文件系统一样,智能卡的文件系统也必须有一个根文件,这个根文件是一个DF 文件,我们把它称为MF (Master File) 文件,MF 文件类似DOS 的根目录。 

  在智能卡的文件系统结构中,MF 文件有且只能有一个;DF 文件是可选的,这两种文件主要起管理和形成树形的文件系统结构的作用,真正存放数据的是EF 文件。 

  MF 文件是智能卡文件系统的根。在MF 文件下可以建立各种DF 和EF 文件。虽然系统允许在根下直接生成各种EF 应用文件,但最佳的文件组织方法是每一种应用均分配一个DF 文件,在相应的DF 文件下再具体组织各种EF 应用数据。 

  DF 文件含有文件控制信息和可分配的存储空间的信息,其下可以建立各种DF 和EF 文件。一般而言,一个DF 文件将被用来存储某一应用的所有数据。DF 文件在用户存储器中占据一块静态存储器,一旦DF 文件建立,其存储器的大小就不能变动。但在该DF 文件下的EF 文件则可以重新分配所使用存储器大小,也可以被删除。该DF 文件被删除之后,其下的DF 和EF 文件也同时被删除,释放的存储器块可由其它DF 文件使用。 

  EF 文件是智能卡树形文件系统的叶,其下不能再建立其他任何文件。 

  2. 2  文件系统的文件访问机制 

  当访问一个文件时,我们可以使用下面几种方法中的至少一种来进行: 

  (1) 通过文件标志符(File Identifier) 来访问 

  在智能卡文件系统中每一个文件都有一个文件标志符,它占用2 个字节。值“3FFF”和“FFFF”系统保留,不能用于具体的文件。对于MF 文件来说,它的文件标志符必须为“3F00”。因此,当我们访问智能卡的文件系统时,起点就是从文件标志符为“3F00”的MF 文件开始。 

  (2) 通过文件路径来访问 

  所谓文件路径,就是无分隔符的文件标志符的串联形式。智能卡文件系统的文件路径起始于MF 文件或者当前的DF 文件的文件标志符,而以要访问的文件的文件标志符结束;在这两者之间则是相关的DF 文件的文件标志符。如果当前的DF 文件的文件标志符未知,则“3FFF”可以作为文件路径的开始。如果文件路径以MF 文件的文件标志符开始,则称该文件路径为绝对路径;如果以当前DF 文件的文件标志符开始,则称为相对路径。 

  (3) 通过EF 短标志符来访问 

  对于任意一个EF 文件,可以通过一个5bit 编码的短标志符来访问,其范围为1~30 。0 具有特殊含义,表示当前正在访问的EF 文件。短标志符不能用于文件路径,也不能用作文件标志符。 

  (4) 通过DF 文件名来访问 

  每个DF 文件可以有一个1~16 字节长的文件名。为了能够明确无误的通过DF 文件名来访问DF 文件,智能卡中的每个DF 文件的文件名必须不同。 

  2. 3  EF 文件的内部结构 

  EF 文件的结构可分为透明结构和记录结构两种。 

  (1) 透明结构:透明结构EF 文件在通过接口被访问时只被视为数据单元(Data Unit) 序列,而好像没有结构一样,所以我们称之为透明结构。所谓数据单元,就是可被访问的最小的位集(Smallest set of bits) ,如1 个字节,2 个字节等等。透明结构本质上也就是二进制数据结构。 

  (2) 记录结构:记录结构EF 文件在通过接口被访问时被视为具有结构的记录(Record) 序列。所谓记录,就是可被作为一个整体加以处理的具有结构的字节串,类似于PASCAL 语言的记录的概念。 

  2. 4  EF 文件中的数据访问机制 

  EF 文件中的数据可以通过记录、数据单元或者数据对象来访问。对记录结构的EF 文件而言,数据被存储在连续的记录序列中;对透明结构的EF 文件而言,数据被存储在连续的数据单元序列中。如果试图访问不在EF 文件中的记录、数据单元或者数据对象,将导致错误。数据访问方法、记录编号方法以及数据单元的大小等作为文件系统的特征,在智能卡的复位应答过程ATR (Answer to reset) 中由智能卡给出,还可以由智能卡中的ATR 文件给出,以及由其他文件控制信息给出。如果智能卡在上面提及的三种方式中不止一处给出了数据访问方法、记录编号方法以及数据单元的大小等信息,那么对于任意一个EF文件而言,由于不同出处给出的信息可能不一样,因此很明显只能有一个信息是有效的。而有效的信息就是从MF 文件到该EF 文件的文件路径上最靠近该EF 文件的位置给出的信息。 

  (1) 记录结构EF 文件中记录的访问方法 

  对记录结构的EF 文件,其中的记录可以通过记录编号来访问。记录编号是无符号8 位整数,其取值范围为01~FE。值00 保留作特殊用途;值FF 保留来将来使用。在每个记录结构的EF 文件中,每个记录的记录编号都是唯一并且是有序的。 

  对于线性记录结构的EF 文件:当创建添加记录时,记录编号按照以一定顺序予以指定。也就是说记录的记录编号按照记录的创建顺序指定。因此,第一个记录(记录编号为1) 就是第一个创建的记录;第二个记录(记录编号为2) 就是第二个创建的记录以次类推。 

  对于循环记录结构的EF 文件:第一个记录(记录编号为1) 总是最后创建的记录;第二个记录(记录编号为2) 就是倒数第二个创建的记录以次类推。很显然,对于循环记录结构的EF 文件的记录编号顺序刚好和线性记录结构的EF 文件相反。 

  记录编号值00 总是表示当前记录,就是记录指针(record pointer) 当前指向的记录。 

  (2) 透明结构EF 文件中数据单元的访问方法 

  对每一个透明结构的EF 文件而言,其内部的数据单元通过偏移(Offset) 来访问。偏移是一个无符号整数,长度为8 位或者15 位(由不同的访问命令来决定) 。当偏移为0 时,则访问该透明结构EF 文件的第一个数据单元;偏移为1 时,访问第二个数据单元;偏移为2 时,访问第三个数据单元以次类推。在缺省情况下,也就是智能卡没有给出数据单元大小的信息时,默认采用每个数据单元大小为1 字节。 

  (3) 数据对象的访问方法 

  所谓数据对象,就是采用抽象语法表示ASN. 1 (Abstract syntax notation) 的编码规则,如BER(Basic encoding rule) 等对数据按照一定的格式编码形成的一个数据结构。该数据结构通常包含三部分信息:标签(tag) 、长度(length) 和数据(data) 。标签给出了数据的数据类型,如整数、ASCII 字符串、UNICODE 字符串、structure 结构类型等等;长度则给出了数据的长度。很明显,这种数据对象本质上是自描述的。因此,当访问数据对象时,可以通过标签等对数据对象进行访问。

  (文/重庆大学计算机学院建筑智能化研究室,王波,伍洲凯)