智能卡的文件系统有三种层次级别,分别为主文件(MF)、专用文件(DF)和基本文件(EF)。每一层次级别的文件分不同的种类,具有不同的用途。
1.主文件(MF)
主文件(MF)是文件系统的根,在智能卡中是唯一的,并且是必须存在的。智能卡复位后将自动选择主文件(MF)为当前文件。主文件(MF)中含有系统文件控制信息及可分配的存储空间,其下可以建立各种文件。主文件(MF)的建立在卡片初始化阶段完成。主文件(MF)的标识符定义为3F00H。主文件(MF)的文件头定义见表2-15。
表2-15 主文件(MF)的文件头定义
2.专用文件(DF)
专用文件(DF)相当于目录文件,其下可以建立各种DF和EF。一般来说,一个DF被用来存储某一应用的所有数据,任何一个DF在物理上和逻辑上都保持独立,都有自己的安全机制和应用数据。
DF在用户存储器中占有一块静态存储器,一旦DF建立,其存储器的大小就不能变动,但在该DF下的EF可以重新分配存储器的大小,也可以被删除。DF下还可以再建立DF,此时,较高层的专有文件称为父专用文件(Parent-DF),较低层的称为子专用文件(Child-DF)。当DF被删除后,其下的子DF和EF被一并删除。
根据DF是否包含子DF,可以将DF分为目录专用文件(Directory DefinitionFile,DDF)和应用专用文件(Application Definition File,ADF)两种。其中DDF包含多个ADF,而一个ADF只代表一个应用;DDF下可以有多个EF和子DF,而ADF下则只能有EF。
为了标识不同的DF,每个DF具有一个同级DF下唯一的文件标识符(File Identity,FID)和一个卡内全局唯一的应用标识符(Application Identity,AID),专用文件(DF)的文件头定义见表2-16。
表2-16 专用文件(DF)的文件头定义
3.基本文件(EF)
基本文件(EF)是树形文件系统中的叶节点,其下没有任何子节点。EF是卡内数据的基本载体,用来存放用户数据或密钥。
存放用户数据的EF称为工作基本文件(Working Elementary File,WEF),在满足一定条件时可以被读、写、删除等。WEF按数据结构可分为四类:透明二进制文件、线性定长文件、线性变长文件和循环文件。
存放密钥的文件称为内部保密文件(Internal Secret Files,ISF),密钥包括内部认证密钥、外部认证密钥、口令密码等,可被输入、修改、覆盖,但在任何情况下都不可读出,不能部分删除。每个MF或DF下有且仅有一个密钥(KEY)文件,在KEY文件中可以存放多个密钥,每个密钥为一定长记录,规定了其标识、版本、算法、属性及密钥本身等相关内容。
EF大小在创建时指定,且仅受存储空间的限制。
(1)透明二进制文件(www.xing528.com)
透明二进制文件是将数据作为一个字节流来进行处理,其文件结构如图2-17所示。
图2-17 透明二进制文件结构
(2)线性定长文件
线性定长文件也称为定长记录文件,由一系列具有相同固定长度的记录序列组成。文件体划分为n个等长的区段,每一个区段对应一条数据记录,不同的记录通过记录号来区分。记录只能整条访问,不允许访问记录的部分数据。其文件结构如图2-18所示。
图2-18 线性定长文件结构
(3)线性变长记录文件
线性变长记录文件以记录为单位进行存储,每个记录的长度都不相同,通过记录号或记录标识符来选择每条记录。变长记录通常以TLV(Tag-Length-Value)格式存在。其文件结构如图2-19所示。
图2-19 线性变长文件结构
图2-20 循环定长记录文件结构
(4)循环定长记录文件
循环文件是由长度相同的记录组成,相当于环形记录队列,遵循先进先出的存储原则。它和线性定长文件的区别是在第一条记录和最后一条记录间有一个链接指针,指针总是指向最后一条写入的记录,该记录总是编号为1。最后被写入的记录为1号,之前刚写入的记录为2号,以此类推。记录写满后自动覆盖最早的记录。其文件结构如图2-20所示。
此外,EF还可以按照文件用途来分类,可以分为DIR文件、PIN文件、KEY文件及应用自定义解释文件等。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。