www.f61.org

文件密钥数据动态多应用智能卡文件系统的研究与设计

急急CP42开机显示红色高手速度帮下内核芯片模块芯片设计新趋势 内核连接技术渐显重要性电压栅极可调凌力尔特推出LTC4441高可靠性(MP级)版本批评新闻线索编辑eBay中国区CEO吴世雄:要去赚主流的钱错误信道视频安防趋势:视频监控传输无线化技术分析材料新台币产业台PCB产业景气下滑 工研院下调电子材料产值预期软性厂商台湾软性显示产业整合 面板双虎入列代工半导体支出半导体代工冬天:巨头台积电明收缩暗扩张故障系统过电压ISL78601单机锂离子电池监视器
智能卡或称 IC 卡,英文名称为Smart Card 或Integrated CircuitCard。它是由一个集成电路芯片嵌 于塑料基片中封装而成。卡中的集成电路包括中央处理器(CPU) ,闪存(EEPROM)、随机存储器 (RAM)、只读存储器(ROM) 等[1]。动态多应用智能卡允许一张卡片上可以同时容纳多个应用,并且在 不同的场合使用不同的应用,同时应用本身还可以根据需要随时下载到卡中或从卡中删除。这给供卡 方、发卡方和持卡方都带来了好处。动态多应用智能卡将是智能卡未来发展的总趋势。

  1 智能卡文件系统的设计模型

  1.1 文件的类型及组织结构

  本系统遵守ISO/IEC 781* 标准所定义文件标准。根据标准,可以支持专用文件(DF)和基本 文件(EF)两种文件。卡内的文件的逻辑组织结构由下列专用文件的结构化分级组成,在根处的DF 称为主文件(MF)。该MF 是必备的。其他DF 是任选的。定义两种类型的EF:1)内部EF(KEF)。 存储那些预期由卡解释的数据。如密钥。2)工作EF(WEF)。存储那些预期不由卡解释的数据。

  EF 结构有以下几种,1)透明结构。指的是二进制的或杂乱无章的结构。换句话说,一个透明文 件根本没有内部结构。该结构的文件可以通过使用偏移值进行读出和写入。READ BINARY 和 UPDATE BINARY 命令可用于这些方面。2)记录结构。是基于链接固定长度的记录文件结构,这种 结构的数据可以自由存储,存取的最小单位是一个记录。该操作系统支持线性定长记录结构,并且记 录长度必须为4 个字节的偶数倍数,并且小于一页大小,这样就防止一条记录跨页存储。

  文件的逻辑组织结构如图 1 所示。文件系统是一个树型结构,根目录为MF。MF(主文件)是 特殊的文件,是文件系统的根,在卡片中唯一存在,相当于DOS 的根目录。EF(基本文件)建在DF 下,存储应用的各种数据和管理信息。DF(专有文件)一般仅相当于DOS 的子目录,但主文件MF 的一个DF 则代表了一个应用。MF 下和应用的根DF 下都有一KEF,用于存储密钥或PIN。MF 下的 DF 中建立的EF 和DF 都只能由该应用使用,其他应用不能访问。

  智能卡中的目录文件(MF 和DF)仅由文件头标组成,EF 文件是由文件头标和文件体两部分组 成的。文件头中包含文件的标识、大小、访问权限和其他基本信息。文件头的长度是一定的。EF 的 文件体就是各种卡片应用所需的数据元。其大小是在文件创建时就确定的。

 1.2 文件访问以及文件管理

  所有EF 文件头中都含有属性字段,指明此文件的特殊信息。属性字段占两字节,字段中的每一 比特位代表一种属性。它们在创建时确定,不允许更改。目前只使用了前三个比特位,分别是:

  1)可删除属性。此属性位为1 表示可以被删除,0 表示不可被删除。

  2)可写属性。此属性位为1 表示可以被修改,0 则表明此文件为只读文件。

  3)可读属性。此属性位为1 表明此文件可以被浏览,0 表示不可以被浏览。

  应用要对文件访问需要达到一定的安全状态。当该应用的进程现有状态满足所需要状态,并且符 合和该文件的属性要求时,该进程才能访问文件。当前进程的安全状态是由其是否满足当前目录文件 下的KEF 中的相应密钥决定的。在MF 下仅有DF(应用目录),没有EF 文件,其KEF 则只含有创 建密钥,读密钥,删除密钥。而一般的KEF 文件中含有四个密钥,分别是读密钥,写密钥, 创建密 钥,删除密钥。

  为了方便文件管理,有一些典型变量要保存在 RAM 中,把这些变量封装成一个结构体CMB, 放在进程的PCB 中。一个CMB 块包含如下变量:1)mfhead。此变量总指向最高层MF 文件头地址。 2)mfsecurity。此变量表明MF 达到的安全状态。其初始值在进程建立时赋值。3)dfsecurity。此变量 表明现行选择的DF 达到的安全状态。其初值在进程建立时赋值。4)currentdf、currentwef。这两个 变量分别为当前DF、当前WEF 文件头地址。在进程时它们的值为NULL,在进程运行过程中由 SELECT 命令显式赋值。5)currentrecord_adr。此变量在当前WEF 为记录结构时使用,它指向当前使 用记录号, 如为透明文件,无效地址。在进程建立或者重新选择WEF 时,其值被赋为0。由记录结构 WEF 读、写命令更改。6)currentef_kef。此变量为当前DF 下KEF 文件头地址。当创建进程时,就 会创建一个CMB 块,其 currentdf 被赋为当时正在访问的DF,安全状态被赋为0。如果currentdf 为 0 时,表示当前的工作目录为MF。

  1.3 EEPROM 的划分

  该智能卡的EEPROM 大小为256K,其中分为应用数据区(32K),应用代码去(160K),系统区 (16K)以及交换区(48K)。

  应用数据区存放着应用的配置数据,并且都是以文件的形式存储的。应用数据区的 EEPROM 是 以页的形式动态分配给各个应用,每页大小为32 字节。每个文件的页地址信息由文件分配表详细记 录。应用代码区存放着应用的运行代码。应用代码区分为40 块,每块大小为4K。块和应用是一一对 应的关系,即每块对映一个应用。系统区:存放操作系统的信息以及用于管理应用及文件的一些系统 表:应用使用表,文件分配表,文件打开表,数据区使用表。文件打开表是用来防止读写冲突的,当 某文件正在被改写时,需要给该文件上锁,等对该文件操作完成后再对该文件解锁。

  数据区使用表记录了应用数据文件在数据区的存储情况,当一个应用要访问某一个数据文件时,需要查看该表,检查 该文件是否属于该应用,防止应用篡改其他应用的数据文件。操作系统的信息用超级块记录。交换区 就是当内存不足时,使用交换区来扩充内存。

  2 文件系统

  2.1 文件分配表

  该操作系统中,文件系统仅设计到应用数据区,和应用系统区以及应用代码去无关,所以文件系 统占32K 的EEPROM 空间。数据区是以页的形式分配给文件的,每页大小是32 字节,共设有1024 页。存储在系统区的文件分配表占用1K 空间。分配表如图2 所示:该表一共有1024 页(用十六进制 表示),第1 页代表数据区的前32 个字节,以后依次类推。当表项为FFFF,表示文件结束。当记录 为FFFE 时,该页可用。每页的表项记录该文件下一页的页码。如图所示。该文件占用的页码分别是 1,0xC,0xD,0x10,0x14。

 2.2 文件管理的指令

  1)SELECT FILE(选择文件):建立文件成功后,才能进行文件选择,面向对象文件管理系统要 求在文件被选中之后才可以进行存取处理。文件选择就是通知操作系统即将对哪个文件进行访问。新 文件的成功选择将导致前面的选择无效。这就意味着在任何时候被选中的文件只有一个。该文件系统 的支持根据文件的FID 进行文件的选择。

  2)CREATE FILE(创建文件):该命令允许在智能卡中建立EF、KEF、DF。在执行该命令之前, 必须先达到特定的安全状态。在创建时,判断创建地址是否有效,即CMB 块的相应地址。同时创建 时会影响目录树的结构,可能需要修改其父亲节点或者其兄弟节点,因此要检测所影响的结点是否可 以访问,如果需要修改的节点不可被访问,该命令则不能执行。对于EF 和KEF,他们都拥有文件体, 则根据其大小具体分配。在申请页面时,一次把所需要的页数全部分配给该文件,并且在文件分配表 里建立好映像。然后文件系统再根据文件分配表,把文件体写入EEPROM 中。

  3)DELETE FILE(删除文件):是把指定的智能卡的文件从存储器中删除,其释放的存储空间由 操作系统收回。文件系统的文件是存储在应用数据区,因此该命令的操作对象是数据区的文件,并不 涉及其他存储区域的数据。MF 为文件系统的根目录,是不可被删除的。

  KEF 为DF 中的密钥文件, 仅删除KEF 会对其上层DF 造成极大的安全隐患,因此不提供单纯的删除KEF 操作,把该操作是嵌 入在删除DF。该命令分为两类:删除DF 和删除EF。删除DF 函数仅删除没有子DF 文件的DF 文件, 如果所删除的DF 具有直接子DF 文件(可以有EF 文件),则DF 不能直接删除,需要首先删除子DF文件,然后再使用本函数删除。该操作会影响其父亲节点或兄弟节点以及子EF 节点,所以删除之前 需要查看文件打开表,检查这些文件是否可以访问,如果有不可以访问的节点,则退出返回相应的错 误信息。

  当然执行该操作之前,必须达到一定的要求安全状态。删除EF 时,操作对象是CMB 块中 的当前工作文件EF,因此要删除某EF 之前需要先选择该文件。如果当前工作文件地址无效,则返回 相应的错误信息。当然执行该操作之前,必须达到一定的要求安全状态并且该EF 具有可删除属性。

  4)VERIFY 命令用来把传送给智能卡的秘密对象和所存储的基准值相比较,根据比较结果,改 变CMB 块中的安全状态。该操作系统的密钥存储在密钥文件KEF 中,位于MF 的KEF 被用来作为 智能卡中所有应用通用的密钥,如果是DF 的KEF,则它仅可用于在DF 内的有关应用,即应用的专 用密钥。

  该命令的操作对象默认为CMB块中指向的当前所使用密钥文件。一般的密钥文件含有四个密钥, 分别是:(1)浏览密钥:满足该密钥后,可以读该目录下的所有EF 文件和子DF 头标。(2)更新密 钥:满足该密钥后,可以在该目录下的所有EF 文件中执行更新操作。(3)删除密钥:满足该密钥后, 可以在该目录下执行删除操作。(4)创建操作:满足该密钥后,可以在该目录下执行删除操作。因此, verify 函数就是判断其满足相应的密钥,然后改变CMB 块中的安全状态,使其可以执行后需操作。

  对于每一个密钥都有一个重试计数器。对于肯定的比较结果,它被赋予零,对于否定的比较结果, 它增量1。如果重试计数器达到对大值,则绝对没有任何可能再进行对密钥的进一步比较。为了保证 安全,先对计数器字段加一并写入到记录中。然后比较读出密钥和输入密钥是否匹配。匹配则将0 写 入到记录的计数器字段中,并将安全状态设置为OK 结果状态。否则将安全状态设置为NOK 结果状 态,并返回允许尝试的剩余次数或记录被锁。

  3 结论

  本文研究并设计动态多应用智能卡文件系统。利用文件分配表为每个文件建立映像,利用 CMB 块进行文件管理,设置文件访问机制保证了每个应用的读写安全,最后详细设计文件操作命令,使得 应用可以对文件进行建立,删除等操作。

变频器太阳能高效MLPM解决方案势必在太阳能市场快速增长稳压器工具在线IR 扩充SupIRBuck在线设计工具简化负载点设计美国市场太阳能2015年美国光伏市场将占全球总市场的12%陀螺仪数字相机手机全面MEMS陀螺仪时代从智能手机开始求FUJI FEEDER维修指导套件芯片解决方案芯科发布新一代CP21xx系列桥接芯片苹果零售店员工苹果员工休假受限或有新品上市项目日本太阳谷投资600万美元的大连太阳谷硅业正式投产英特尔2011年芯片工厂投资大增至90亿美元

0.34149599075317 s