智能卡芯片操作系统命令的分析与实现
文章出处:http://www.nexussmartsolutions.com 作者: 人气: 发表时间:2012年04月08日
摘要:智能卡作为存储个人信息、电子支付、数据加密等的手段和工具,被要求具有更高的安全性、良好的兼容性和可扩充性,作为智能卡的软件平台的芯片操作系统COS,具有十分重要的地位和作用。如何开发一个高效率,低成本、易扩充的COS具有十分积极的意义。本文从实现命令系统的角度,提出了命令设计模型与开发方法,并以PKI为例对COS命令的实现进行验证。
0前言
本文主要阐述了智能卡COS的体系结构、基本功能模块和工作原理等内容,同时对智能卡命令系统的相关理论作了着重阐述,包括了命令特征分析、命令分类方法,命令系统模型和开发方法的探讨等。接着用特殊应用的命令设计与实现来举例说明,以此验证理论的正确与否。
1 COS体系结构
COS直接运行于芯片平台上,是智能卡内软件的核心部分,也是卡片所支持全部应用的基础。COS的主要任务是从智能卡传出和传人数据、控制命令的执行、管理文件、维护内存空间、管理和执行加密算法、执行应用代码。因此,可以将智能卡COS的体系结构模型划分为COS内核层和应用层两大部分(如图1所示)。
图1智能卡COS体系结构模型
2 COS基本功能模块
根据智能卡COS的体系结构模型,可以得到COS内核的逻辑功能模块主要分为四大部分:通信管理模块、文件系统模块、安全控制模块和命令解释模块。下面分别论述各个模块的具体功能。
2.1通信管理模块
通信管理模块主要是依据智能卡所使用的信息传输协议,对由读写设备发出的命令进行接收,同时把对命令的响应按照传输协议的格式发送出去。通信管理模块确保智能卡与终端的信息传输正确无误,保证双方对传输的信息解析具有一致性。整个通信过程中需要处理ATR的发送、通信参数的PPS协商、APDU报文格式和具体的通信协议T=0或T=1协议等几个重要的问题。
2.2文件系统模块
文件系统是COS的重要模块之一,它负责组织、管理和维护智能卡内存储的所有的数据。智能卡上的数据或应用是以文件的形式存放在FLASH或EEPROM等存储介质中的,COS通过对智能卡内的文件系统的管理和组织来实现对数据信息和应用的存储和管理。
2.3安全控制模块
安全控制模块是智能卡COS中最为核心的模块,它对智能卡内数据提供安全保障,同时也对外提供安全定义。在智能卡中,COS安全模块的内容主要包括加密算法的实现、系统的安全服务和安全控制策略的实现。它涉及到卡的鉴权与验证方式的选择,包括COS在对卡中文件进行访问时的权限控制机制,还关系到卡中信息的保密机制。
2.4命令解释模块
命令解释模块是芯片操作系统的重要组成部分,它负责解析卡片与终端之间交互的信息指令,并作相应的处理。命令是卡片和外界交互的基础,命令处理是COS的主要职能,它也是系统代码和应用代码之间的重要接口。终端和卡片之间的通信过程都是基于命令响应的方式处理的,COS利用IO接口接受命令报文,通过命令解释器来解释报文内容,并进行相应的处理,最终通过IO接口返回响应状态和响应数据。
COS命令解释的调度流程包括外部命令的接受,命令处理流程的启动以及命令响应数据和状态的送回。其中,APDU命令报文的接收是按照CLA、INS、P1、P2、P3、DATA数据域的顺序依次接收,并将接收结果保存在命令缓冲区的相应字段中。若数据接收失败,则命令报文的输人中断退出。不同的命令具有惟一的指令代码INS,COS主守护流程根据终端发出的APDU命令的INS,跳转到相应的命令处理模块中进行处理。在命令解释模块中,不仅要对相应的命令的参敬P1、P2、P3进行严格检查,还应对命令的执行的安全条件进行检测。
3 COS功能模块之间的状态转换及调度关系
传统的COS各模块之间的调度关系一般采用层次调度关系,COS中所有从文件系统中到终端的数据都需要经过安全模块的处理,包括数据的加解密,对文件访问是否符合当前的安全条件,命令的执行操作是否在安全环境中。
改进的COS各模块之间的调用关系采用与层次结构相似的调度方式,但与传统的调用方式相比,具有更高的效率。改进的调用方式主要体现在安全控制模块的设置上(如图2所示)。
改进的COS模块调用方式中,不是所有信息都需要进行安全处理,例如连续对同一文件进行访同时就不需要重复进行安全处理,而是根据命令的类别来进行适当的安全处理。这样节省了系统开销,提高了系统的效率。
图2改进COS模块关系
功能层各模块之间的关系为程序调度请求和数据响应关系,模块的输出为程序调度请求,输入为调度后得到的数据响应,调度和响应均以事务来表示,而事务表示一组数据以及在数据上的一组操作。图3表示了改进COS模块调用方式中模块的调度关系和状态转换。表l列出了模块状态转换及调度关系。
4 COS命令在PKI中的实现
由于互联网的迅速发展和普及,人们对网上身份认证的要求也越来越高,PKl体系成了解决Internet的安全问题的最优解决方案。IC卡由于体积小、安全性高、携带方便等特点而被迅速引入到PKI体系结构中来,成为了目前PKI体系最佳的支持平台。智能卡通过实现非对称加密算法,成为一张PKI卡。由于密钥在卡内生成,加解密工作在卡内完成,不会以明文形式出现,同时与PIN结合,可防止盗用,加上数据可长期保存以及便于携带和操作等特点,因而它可以成为数字签名的理想载体。
智能卡在PKI中主要工作为:数字签名和签名验证、加解密运算操作、证书和密钥的存储、证书的解析等。与PKI应用相关的智能卡常用命令是以ISO/IEC7816-8规范为基础上建立的,归纳如表2所示。
下面选取ENCRYPT命令作详细说明。ENCRYPT命令功能主要用于对数据进行非对称算掷-,SA算法)的加密计算,输入的是加密前的明文、密钥,输出的是加密后的密戈,在执行本命令之前先执行MANAGE SECURITY ENVIRONMENT命令。加密算法在此处选用RSA算法,编码格式为RSAESPKCSI—V1_5。该命令报文结构如表3所示。
为了加强密钥计算的安全性和数据保密性,一般运算需要对原始报文按照一定格式进行编码,实际运算是对编码以后敬据的运算。此处采用的编码格式为RSAES·PKCSI-V1_5编码格式,详细编码格式和加密流程参照PKCS#1和PKCS#11规范。
【稿件声明】:如需转载,必须注明来源和作者,保留文中图片和内容的完整性,违者将依法追究。