智能卡的文件管理
发布时间:2008/11/19 0:00:00 访问次数:646
智能卡里的所有文件都存放在eeprom里。这是智能卡中惟一的-种在没有电源的情况下能够持续保存数据 而在必要时也允许改变数据(当取得适当电源时)的存储器。它也是提供了把信息从一个会话期保存到下一 个会话期的惟一方法,因为在ram里的内容当智能卡掉电时就会丢失,而rom里的内容在芯片制好之后就不能 改变了。
在早期的智能卡里,文件是采用实际地址直接访问的。实际上,还没有一个按字面意义理解的真正的文件 。相反,整个存储器可从外边线性地寻址,并可以使用读取和写入命令来进行访问。当然,这在现代的操作 系统中是不允许的,原因在于保密和应用的需要。面向对象的文件管理直接把访问条件的信息放在文件里是 目前的标准方式。编制和管理这些文件就是操作系统里文件管理器的任务。
采用面向对象的结构,每一个文件都必须带有一个文件描述符,它包含着有关文仵本身的所有信息。在智 能卡技术方面,文件描述符被称之为文件头标,一个文件的数据内容,换句话说就是有用的数据,则放在文 件“体”内。
包含在文件头标里的信息在很大程度上取决于文件管理器的特点。然而,文件描述符则必须至少包含有以 下的条目:
·文件名 (例如:fid='0001');
·文件类型 (例如:ef);
·文件结构 (例如:线性定长);
·文件大小 (例如:3条记录5字节);
·存取条件 (例如:read=pin代码被输入之后);
·属性 (例如:worm);
·链接到文件树 (例如:直接在mf之下)。
对于bf或mf来说,文件名是两字节的fid(文件标识符)。在de里,aid(应用标识符)也成为文件名的一 部分。文件类型可能是mf,de或ef,也必须注明。
取决于文件的类型,在文件头标里可以有一个数据元是描述文件内部结构的(透明,线性定长,线性变长 ,循环或可执行的)。有关透明数据部分的长度或记录的数量与长度等所有信息也都取决于文件的类型。
在文件的所有基本性能已说明过之后,操作系统还需要详细的存取条件的规定。这些就是定义在哪个状态 下哪个命令可以访问文件以及可以允许做什么类型的存取处理。存取条件必须针对每一条可能的命令逐一进 行规定。特殊文件属性,诸如修改灵活性,worm或edc保护等,如果文件管理器支持的话,也可以指明。
所有上述与文件有关的信息都被作为一个单独的数据对象。为了定义文件在文件树里的位置,还需要一个 附加的指针来规定文件在mf或de里的确切位置。
在简单的操作系统中,文件头标都有固定的长度,它取决于文件类型(mp,df或ef)。这样就减少了内部 文件管理器耗费在计算和管理上的工作量。这样安排的主要缺点就是在扩展时比较起来不怎么灵活。另一个 缺陷就是对任何一个ef,不允许有无限量的不同的存取条件,或甚至是一个非常大量的访问条件。存储器必 须取消在头标中未被绝大多数应用充分使用的大量访问条件的存储。因此,可变长度的文件头标正越来越多 地应用到智能卡的文件管理之中。智能卡操作系统可自由地使这些文件头标的长度适应于各个应用的特殊需 求。一个智能卡文件管理系统的头标的可能的构造如图1和2所示。
图1 智能卡文件管理系统中me,de以及bf(内部的和工作的)等可能的文件头标构造概要(粗边框表示tlv编码的数据元必须存在,而细线框表示可选数据元。编号只是在文件所位于的目录范围内有效,因而不是对全局所有文件的。这种结构基于small-os所规定的简单文件管理系统的需求)
图2 在智能卡文件管理系统中的内部和工作bf的可能的文件头标结构简图(所有tlv编码的数据对象都必须予以展现,这种结构是基于蹴small-os所规定的简单文件管理系统的需求)
文件系统中对指针和数据的可能安排则示于图3中,每个目录的有效范围都界定的很明确。
图3 在智能卡文件管理系统中对指针和数据结构的可能安排简图(它基于
small-os中规定的简单的文件管理系统的需求,虚线标定了每一目录
可用的存储器范围)
1.把存储器分割为页面
eeprom的有限写入/擦除循环次数和把存储器分割为页面引发文件管理的一个普遍的问题,它对于文件管理 器的整个设计和内部文件的结构有相当的影响。文件头标和文件体二者都必须适合于存储页面预订的大小, 以防止它们被页面边界所分裂。在存储器中的文件管理信息也必须严格和真实的文件的数据内容相互分开。 如果情况不是这样,不期望的副作用就会在头标中的管理数据和文件体内的有用数据之间发生。它可能会破 坏智能卡操作系统整个的内部安全结构,这一点将在下面的例子中简要说明。
假定一个文件的访问条件中含有秘密的、不可读的密钥和另一文件公开的可写入的数据存储在同一存储器 页面上。如果对此文件的写操作被中断了,
智能卡里的所有文件都存放在eeprom里。这是智能卡中惟一的-种在没有电源的情况下能够持续保存数据 而在必要时也允许改变数据(当取得适当电源时)的存储器。它也是提供了把信息从一个会话期保存到下一 个会话期的惟一方法,因为在ram里的内容当智能卡掉电时就会丢失,而rom里的内容在芯片制好之后就不能 改变了。
在早期的智能卡里,文件是采用实际地址直接访问的。实际上,还没有一个按字面意义理解的真正的文件 。相反,整个存储器可从外边线性地寻址,并可以使用读取和写入命令来进行访问。当然,这在现代的操作 系统中是不允许的,原因在于保密和应用的需要。面向对象的文件管理直接把访问条件的信息放在文件里是 目前的标准方式。编制和管理这些文件就是操作系统里文件管理器的任务。
采用面向对象的结构,每一个文件都必须带有一个文件描述符,它包含着有关文仵本身的所有信息。在智 能卡技术方面,文件描述符被称之为文件头标,一个文件的数据内容,换句话说就是有用的数据,则放在文 件“体”内。
包含在文件头标里的信息在很大程度上取决于文件管理器的特点。然而,文件描述符则必须至少包含有以 下的条目:
·文件名 (例如:fid='0001');
·文件类型 (例如:ef);
·文件结构 (例如:线性定长);
·文件大小 (例如:3条记录5字节);
·存取条件 (例如:read=pin代码被输入之后);
·属性 (例如:worm);
·链接到文件树 (例如:直接在mf之下)。
对于bf或mf来说,文件名是两字节的fid(文件标识符)。在de里,aid(应用标识符)也成为文件名的一 部分。文件类型可能是mf,de或ef,也必须注明。
取决于文件的类型,在文件头标里可以有一个数据元是描述文件内部结构的(透明,线性定长,线性变长 ,循环或可执行的)。有关透明数据部分的长度或记录的数量与长度等所有信息也都取决于文件的类型。
在文件的所有基本性能已说明过之后,操作系统还需要详细的存取条件的规定。这些就是定义在哪个状态 下哪个命令可以访问文件以及可以允许做什么类型的存取处理。存取条件必须针对每一条可能的命令逐一进 行规定。特殊文件属性,诸如修改灵活性,worm或edc保护等,如果文件管理器支持的话,也可以指明。
所有上述与文件有关的信息都被作为一个单独的数据对象。为了定义文件在文件树里的位置,还需要一个 附加的指针来规定文件在mf或de里的确切位置。
在简单的操作系统中,文件头标都有固定的长度,它取决于文件类型(mp,df或ef)。这样就减少了内部 文件管理器耗费在计算和管理上的工作量。这样安排的主要缺点就是在扩展时比较起来不怎么灵活。另一个 缺陷就是对任何一个ef,不允许有无限量的不同的存取条件,或甚至是一个非常大量的访问条件。存储器必 须取消在头标中未被绝大多数应用充分使用的大量访问条件的存储。因此,可变长度的文件头标正越来越多 地应用到智能卡的文件管理之中。智能卡操作系统可自由地使这些文件头标的长度适应于各个应用的特殊需 求。一个智能卡文件管理系统的头标的可能的构造如图1和2所示。
图1 智能卡文件管理系统中me,de以及bf(内部的和工作的)等可能的文件头标构造概要(粗边框表示tlv编码的数据元必须存在,而细线框表示可选数据元。编号只是在文件所位于的目录范围内有效,因而不是对全局所有文件的。这种结构基于small-os所规定的简单文件管理系统的需求)
图2 在智能卡文件管理系统中的内部和工作bf的可能的文件头标结构简图(所有tlv编码的数据对象都必须予以展现,这种结构是基于蹴small-os所规定的简单文件管理系统的需求)
文件系统中对指针和数据的可能安排则示于图3中,每个目录的有效范围都界定的很明确。
图3 在智能卡文件管理系统中对指针和数据结构的可能安排简图(它基于
small-os中规定的简单的文件管理系统的需求,虚线标定了每一目录
可用的存储器范围)
1.把存储器分割为页面
eeprom的有限写入/擦除循环次数和把存储器分割为页面引发文件管理的一个普遍的问题,它对于文件管理 器的整个设计和内部文件的结构有相当的影响。文件头标和文件体二者都必须适合于存储页面预订的大小, 以防止它们被页面边界所分裂。在存储器中的文件管理信息也必须严格和真实的文件的数据内容相互分开。 如果情况不是这样,不期望的副作用就会在头标中的管理数据和文件体内的有用数据之间发生。它可能会破 坏智能卡操作系统整个的内部安全结构,这一点将在下面的例子中简要说明。
假定一个文件的访问条件中含有秘密的、不可读的密钥和另一文件公开的可写入的数据存储在同一存储器 页面上。如果对此文件的写操作被中断了,
上一篇:智能卡操作系统的进程控制
上一篇:智能卡文件属性