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,从而恢复了原始数据,消除了上一次上电后所进行的 "不完整" 操作的影响.这种机制能保证文件中数据有效.
来源: http://www.bubuko.com/infodetail-2471403.html