当前位置: 主页 » 新闻资讯 » 公司新闻
[置顶]“一卡多用”智能卡的硬件模型

http://www.ahlinbo.com

在Intel 8086/8088系统中,由于硬件的限制,系统程序和用户程序同属于一个安全级别(即系统程序和用户程序在执行上没有任何区别,例如DOS系统),因此用户特定应用程序的执行可能破坏系统从而导致整个系统崩溃或者存取其它用户的数据,显然这种模型是非常不安全的,而现在的智能卡系统几乎都是基于这种模型的,利用现有的智能卡来实现“一卡多用” 就难以保证整个系统的安全。借鉴Intel80386中利用硬件建立4个特权级来保证系统程序和用户程序分离以实现多任务及任务切换和对各个任务环境进行保护的方法,可以在智能卡芯片中增添一个特权级,使得这样的智能卡芯片具备两个特权级,即内核级和用户级。自动门为了支持这种功能,在智能卡芯片中必须提供相应的硬件支持(这里假定智能卡中所用的CPU至少是l6位的,因为8位CPU的智能卡功能太弱)。智能卡中需要增加标志位flag来决定CPU当前处于内核级还是处于用户级。需要添加数据地址界限寄存器、应用地址界限寄存器、内核级堆栈和异常寄存器。增加这些寄存器的目的主要是用来从硬件上对存储空间的管理提供更强的支持。数据地址界限寄存器用于限定特定应用的数据地址空间(允许存放数据的地址空间范围)。应用地址界限寄存器用于限定特定应用的程序地址空间(执行程序时使用的地址空间范围)。同时,自动门需要把COS中的核心模块和一般应用程序区分开来。只有当CPU处于内核级时才能执行COS的核心模块,而应用程序只能在CPU处于应用级时执行。当应用程序执行时,合肥安防监控若应用程序试图访问比较寄存器范围以外的地址空间,则程序被异常终止,并引起中断。内核级堆栈只能是当CPU处于核心级时才能被访问,异常寄存器用于发生异常时保存发生异常的地址。针对这种安全模型,还需要增加新的指令或扩充诸如JMP、CALL、IRET之类的指令执行功能。 “一卡多用”智能卡中的控制转移分为从内核级到用户级的控制转移、从用户级到内核级的控制转移和无级别变化的控制转移3种。卡片插入后,系统首先进入内核级,芯片操作系统产生复位应答,并等待接收命令。若接收的命令是用户自定义命令,则系统将进入用户级。为实现从内核级到用户级的控制转移,系统根据应用索引文件为当前应用设置相应的地址界限寄存器,保存返回地址并将控制切换到相应的应用程序并把flag取反。当应用程序从调用系统功能函数返回时,也需要将控制从内核级转移到用户级,此时只需将返回地址等出栈并把flag取反即可。若应用程序需要使用COS提供的功能函数时,则需要将控制从用户级转移到内核级。为了实现这种转移,系统首先判断是否符合转移的条件,如果符合,则把当前应用的执行地址、调用函数使用的参数放入内核级堆栈中,以便应用程序返回时使用,同时把flag取反。应用程序执行完成后返回系统时,也需要将控制从用户级转移到内核级,这时系统就不用保存当前应用所执行的地址,只需将返回地址等出栈并把flag~反即可。任务中无特权级变换转移包括内核中的转移和应用中的转移两种情况,这种控制转移与当前使用的智能卡中的实现方式相似,只是在应用中执行转移指令和存取器存取指令前,系统会自动利用界限寄存器判断地址是否越界,如果越界则转入中断和异常处理。 系统给每种可能的中断赋予一个中断号,自动感应门并在系统初始化时,安排好相应的中断向量表。当中断发生时,系统根据一定的规则决定是否响应该中断。若需要响应,则先保存好当前的系统状态,然后根据中断寄存器中保存的中断向量号转移到相应的中断响应程序执行。当中断执行完后,返回到断点继续执行。当CPU处于用户态和内核态下,对中断的响应规则可能是不一样的,如CPU处在内核态下可能需要屏蔽某些中断,而CPU在系统态下就不需要屏蔽这些中断了http://www.ahmenkong.com。系统给每个可能的异常赋予一个异常号,并在系统初始化时,安排好相应的异常向量表。当异常发生时,系统根据异常号转移到相应的异常处理程序进行相应的处理。但是处理完后,要进行报错,并中断当前程序的执行。 3 、电动伸缩门芯片操作系统COS 传统COS一般由传输管理、文件管理、安全管理、命令处理4个功能模块组成。传统COS中所有命令的执行方式是相同的。系统调用命令时,就把执行权限交给了命令程序,此时,命令程序对卡上的所有的硬软件资源拥有完全的控制权,当应用程序完成了相应的处理后,就返回系统。如上文所述,在新的模型中,所有命令应被分为两个部分:核心命令和用户命令。核心命令应由以下几个部分组成:与密码运算有关的命令、与存储管理有关的命令、与身份验证有关的命令、与通信传输有关的命令、与硬件资源管理有关的命令等。这些命令一般是独立于具体的应用的,在执行时对所有的硬软件资源拥有完全的控制权。用户命令是与具体的应用相联系的所有命令的集合,酒店智能门锁在执行时只能使用特定的硬软件资源,否则就会出错。 卡上电后,自动门COS首先发送复位应答给终端来建立双方的通信并设置好相应的通信参数,接着就等待接收终端的命令,当接到终端的命令时,COS将从索引文件中来查找该命令,并区分它是系统核心命令还是一般的用户命令,如果是系统核心命令,COS按要求处理完后就返回给终端相应的结果;如果是一般的用户命令,COS将从索引文件中查找出该命令所对应的应用,找到后将系统切换到该应用的环境下进行相应的处理,处理完并返回处理结果后,系统就在切换的COS环境下等待新的命令;如果COS不能从索引文件中找到该命令,则返回给终端出错标志。值得注意的是:这些命令应该有一系列的权限验证方式来保障系统的安全。 为适应上面提出的“一卡多用”智能卡的安全模型,我们将对COS的一般模型进行改造。在文件管理中,需要建立应用索引文件,用于存储所有应用的索引、工业防火门应用中的命令以及相应的数据地址空间范围和应用地址空间范围,并把这个文件存储在系统存储区,因此,只有COS系统才能够存取该文件。在技术实现上,可用图2描述该文件系统模型的实现。