原创 支持多应用的COS设计

2008-10-20 13:36 3218 7 7 分类: 软件与OS
 1、生命周期的维护

    在文件描述块中,保留了一个文件状态字节,用于记录该DF文件所处的生命周期状态。

    如下所示是该状态字节可能的取值:

      编码              对应状态
       0x01                 建立状态
       0x04                 使用状态的正常子状态
       0x05                 使用状态的临时锁定子状态
       0x08                 终止状态
       0x80                 删除状态

    在对ADF及其子EF执行相关命令时都需要事先检查该状态字节,如果状态字节和要求的值相符,可以执行相关命令,否则返回相应的错误码。

    执行删除文件命令,COS进行的操作主要包括了如下步骤:

    * COS将ADF文件的数据区,包括其子EF的所有空间,全部清除。
    * 保留文件的描述块。将状态字节置为0x80,表明文件已经处于逻辑删除状态。

    在进行空间回收操作时,逆向依次检查文件描述块中的状态字节,将相连的处于逻辑删除状态的文件空间回收,实现对该文件的物理删除。

  2、应用间的保护

    支持多应用的COS在应用安全方面最重要的一项工作就是保证应用之间的独立性。

    应用的独立性也就是不同应用之间对数据访问的控制,每一个应用只能够使用自己的应用代码,在自己的数据空间内工作。

    应用之间的独立性包含了两个方面的内容:一是应用数据的独立性,二是应用代码的独立性。

    对应用独立性的保证通过如下一些方法来进行:

    * 文件系统的层次设计,应用和ADF相对应,同一应用的数据可以存放在同一个ADF下。

    * 数据访问只能在当前文件空间内进行,在IC卡中,选择应用的过程也就是将对应的ADF置为当前文件的过程,所有的后续操作都只能够在当前文件的范围内进行。

    * 应用代码的调用由COS来管理,COS根据当前应用的类型选择相应的应用代码。

    * 在RAM空间的使用上,COS内核和应用代码使用两个不同的分区,不同分区互相独立,并且COS内核和应用代码也不能相互访问对方的RAM空间。

  3、安全状态的维护

    在多应用状态下,安全状态分层次来维护,一般包括全局安全状态和当前安全状态。

    当前安全状态和应用安全的关系最为密切,其实现上和ADF结合在一起。其实现上与应用的关系是:

    * 当前安全状态在初始化时,也就是最初卡片上电复位阶段,被置为最低级别,对应了MF的安全状态。

    * 在MF下进行应用选择时,当前安全状态将对应被选的DF的安全状态。

    * 在应用切换阶段,也就是选择其他DF时,当前DF的安全状态值丢失,当前安全状态对应了被选的新DF安全状态。

    * 建立DF成功以后,COS自动选择该DF作为当前文件,当前安全状态对应了新建的DF,设置为最低状态。

    * 在应用建立阶段,所有的操作都将忽略安全机制,也就是对应用的初始化操作可以在没有安全保护的情况下进行,COS不进行任何的安全属性检查。这个主要是考虑到应用的初始化过程通常都是集中进行,在可信任的终端上完成,额外的安全控制将加大系统的复杂度,延长卡片操作时间。

    * 应用的安全状态只记录当前值,状态切换以后旧的状态自动丢失不进行缓存,没有可回溯性。

    * 如果在当前应用状态下重复选择当前应用的话,可以将当前安全状态保留,也可以将当前全部环境包括安全环境置为默认值,具体的实现方式由COS设计者来定义。

    全局安全状态只和MF相关,从卡片上电复位一直到重新复位或者卡片关闭,MF的安全状态一般不需要重新置位。

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /2 下一条