码迷,mamicode.com
首页 > 其他好文 > 详细

(七)智能卡操作系统

时间:2018-01-23 00:48:03      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:参考   无效   头文件   概述   字节   字符   交易   密钥   部分   

1. 智能卡概述

  COS是紧紧围绕着它所服务的智能卡的特点而开发的。由于不可避免的收到智能卡内微处理器芯片的性能及存储器容量的影响,因此,COS在很大程度上不同于通常所能见到的操作系统。首先COS是一个专用系统而不是通用系统。不同卡内的COS一般是不同的。其次,与微机操作系统相比,COS更接近于监控程序,而不是真正意义上的操作系统。因为在当前阶段,COS的所要解决的主要问题还是对外部命令的如何进行处理、响应的问题和安全问题,这其中一般不涉及多道程序的共享、并发管理。

  COS的主要功能是控制智能卡和外界的信息交换。管理智能卡内的存储器,并在卡内部完成各种命令的处理。其中与外界进行信息交换是确保安全是COS最基本的要求。在交换过程中,接触式IC卡COS所遵循的信息交换协议目前包括两类:异步字符传输的T=0协议以及异步分组传输的T=1协议。这两种信息交换的电信号和控制的基本功能则是在IOS/IEC 7816-4标准中做出规定。实现机制则是在ISO/IEC 7816-3中做了规定。

  COS的功能可概括如下

  1.插卡后的初始化处理以及向读写器发回复位应答。

  2.防插拔处理。

  3.读写器和IC卡之间以命令-响应对方式进行处理。

  读写器与IC卡之间的通信,是全部通过COS进行的,对某些数据,如密码和密钥,是绝对不允许从卡内传送到卡外的。

2. 一个简单的IC卡操作系统(SCOS)示例

  以下描述一个非常简单的操作系统,命名为Simple COS,该卡想应用于单位内部的小额消费,基于非常小的存储器容量,但符合ISO/IEC 7816 国际标准。

  该卡的存储器由ROM,RAM,和EEPROM组成,复位应答信号ATR和COS存放在ROM中;文件和数据存放在EERPOM中;安全状态和IO缓冲器(如存放当前执行的命令APDU和响应APDU的缓冲器)等的及时信息放在RAM中,在IC卡加电时,有必要对RAM中一部分内容进行初始化,设置成默认值。

 

2.1 SCOS的文件系统

  SCOS的文件系统如下

  (1)SCOS有两层文件MF和EF,由于是一卡专用,就不再设置DF文件。

  (2)SCOS的内部基本文件(EF)有3个;存放密码的SF,存密钥的KF和存系统信息的AF。内部基本文件仅供COS访问,采用透明结构。

  (3)SCOS的工作基本文件(EF)有3个:一个存放余额的PF、一个存放交易记录的RF和一个保存个人信息的IF。其中,PF和IF采用透明结构,RF采用定长记录的环形结构。

  (4)SCOS用唯一标识符(2字节)访问文件,定义如下。

    MF:3F00;SF:2F01;KF:2F02:AF:2F00;PF:4F00;RF:4F02;IF:4F03

  (5)EF文件由头文件和文件体两部分组成,SCOS采用文件头和文件体分开相向存放法,即头文件集中在一起,并从EEPROM最小地址开始存放。文件体页放在一起,并存EEPROM最大地址开始存放。这样安排便于添加新文件。文件头中包括的内容由文件标识符、该文件体在EEPROM中的起始地址、文件体的长度和访问条件等。

 

2.2 安全管理和应用管理

  参考 ISO/IEC 7816-4,有关安全部分要考虑3个问题:安全状态的建立、安全属性的设置以及安全机制的实现。

  使用两个密码:发行人密码ISC和持卡人PIN。当IC卡插入读写器时,只有从键盘上输入的密码与卡内先前存入的ISC或者PIN相同时,才能核实插卡人的身份是发行人还是持卡人。

  SCOS在RAM区内选定一个单元(一个字节)存放安全状态字。

  b0:外部鉴别位,如果读写器为真,则置一。

  b1:PIN核实位。

  b2:ISC核实位。

  当卡插入读写器时,复位后应立即将安全状态字清除为全0。

  为了实现安全鉴别功能,在每个文件的头文件中设置了该文件的读/写条件(1字节)。称为安全属性。在对文件进行操作时,吧RAM中的安全状态字和EEPROM文件头中的安全属性比较,仅当匹配时才允许进行操作。另外,在对文件进行操作前,读写器与卡之间要进行相互的鉴别。

  除了在文件头中规定了安全属性外,在命令系统中页可以为每条命令设置各自的安全属性,仅当安全条件与命令中的安全属性相符时才允许执行该命令。

2.3 传送管理

  传送管理用来处理SCOS与读写器之间的信息交换,遵循ISO/IEC 7816-3国际标准规定,有T=0,T=1两种协议。卡加电后向读写器发送ATR,然后双方以命令-响应对的方式进行通信。在卡的RAM存储区开辟一块区域作为信息缓冲区,用来暂存APDU命令和APDU响应和外部输入信息,以实现读写器与卡之间的通信。

 

2.4 命令系统

  当IC卡收到一个命令APDU后,首先对命令的合法性及安全条件进行检查,通过后在根据该命令所要完成的功能进行操作,最后将执行的结果返回给读写器。以上这些工作都是由预先设计好并存放在ROM中的操作系统控制卡微处理器完成的。

  SCOS中设计的命令如下。

  (1)文件处理命令。创建文件,选择文件,删除文件。

  (2)安全管理命令。取口令(取随机数)、内部鉴别、外部鉴别和验证密码(PIN和ISC)。

  (3)应用命令。读二进制、写二进制、读记录、写记录。

  其中创建文件只能在卡个人化之前执行。

 

2.5 防止意外掉电

  在智能卡工作时,防止因为突然掉电或用户随意插拔智能卡而造成个人数据出错。一般智能卡中没有在掉电时维持一段时间电压的功能,因此一旦掉电,卡中的软件立即无法执行。这是非常致命的。因此,对COS提出一个要求,对卡中的某些功能要么完整的实现,要么完全不进行,即原子进程。为了解决此问题,在EEPROM中设置一个缓冲区,用以接收数据,在其中还包含一个状态标记,用来表示该缓冲区内容“有效”和“无效”。

  工作过程如下:首先将被修改的原始数据及其地址复制到缓冲区,并将状态标记设置成“缓冲区有效”;然后把新数据写进原来数据的地址里,如果能完成这一操作(不发生掉低昂),则将状态标志设置成“缓冲区无效”,否则仍保持缓冲区有效。当智能卡再次上电,SCOS被启动,在它发送ATR以及读写器和IC卡双向鉴别后,查询“缓冲状态标记”,如果“有效”,则将缓冲区内数据按所存地址写入EEPROM,从而恢复了原始数据,消除了上一次上电后所进行的“不完整”操作的影响。这种机制能保证文件中数据有效。

 

 

(七)智能卡操作系统

标签:参考   无效   头文件   概述   字节   字符   交易   密钥   部分   

原文地址:https://www.cnblogs.com/a-lai/p/8331671.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!