面向PBOC2.0的智能卡操作系统的设计
文章出处:http://www.nexussmartsolutions.com 作者: 人气: 发表时间:2013年05月02日
摘要:针对智能卡的市场需求,摒弃了存储卡的设计思想,采用文件系统与安全访问机制联合设计及模块化的设计方法,在文件结构中加入二进制和记录文件的概念,进行了可靠性存储的设计。在智能卡操作系统的数据存取和文件管理模块上,设计并实现了应用防火墙和一卡多用的功能。该设计增加了智能卡的可靠性、适用性及灵活性。
随着我国CPU卡技术的快速发展,在身份识别、安全认证、金融消费等领域得到了广泛应用,逐渐成为我国IC卡应用的主流产品,市场需求量必将出现质的飞跃。在广阔的市场需求背景下,CPU卡会产生良好的社会和经济效益,因此系统的安全性就显得更加重要。
近年来,国内许多厂商都开展了智能卡芯片及COS的研制开发,特别是在COS开发上,国内已经有几家公司走在了市场前列,在国际国内市场取得了一席之地,我国单纯依赖进口芯片、模块的状况已经结束。目前国产COS所选用的芯片主要有Infineon、ST、HITACHI、SAMSUNG、Philips、明华、大唐电信、华虹等。
这些芯片价格不同,功能上也有很大差别,功能强大的芯片会支持内置随机数产生器、CRC校验模块、DES和EC2加速模块等。
本设计与目前存在的COS设计相比,具有以下几个特点:(1)采用文件系统与安全访问机制的联合设计;(2)摒弃了存储卡的设计思想,在文件结构中加入二进制文件和记录文件的概念;(3)在软件设计上采用先进的模块化设计方法;(4)采用可靠性存储的设计。
1 设计原则
本设计紧密结合智能卡的市场需求,严格遵循密码产品设计的规范,力求从硬件和软件两个层面达到国家信息化安全的要求。在硬件设计上,选用通过国密认证的智能卡芯片,内部的微处理器采用8位字长的中央处理器,卡片内部逻辑结构如图1所示。
图1 CPU模块内部逻辑结构图
在软件设计上,针对当前智能卡应用的实际需求,量身定制了有特色的文件存储结构、安全访问控制机制和存储可靠性设计方案。采取可靠、先进的模块化设计,使得操作系统能够支持市场的主流应用,并在需要的情况下迅速扩展支持新的应用需求,采用ISO14443 TypeA接口协议,可靠性高,适用性广。本设计完全符合国际、国内标准,支持ISO/IEC 78 16协议标准,支持ISO/IEC 14443 TypeA和TypeB标准,符合《中国金融集成电路(IC)卡规范》,符合《建设事业非接触式CPU卡COS技术要求》。
2 总体设计
在对以往各种智能卡操作系统的体系结构进行深入剖析的基础上,针对其中数据独立、密钥独立、数据在传输中完整性方面的不足,进行了改进和完善。将操作系统划分为4个模块,分别为传输管理、安全管理、应用管理和文件管理,模块工作原理如图2所示。
接口设备(IFD)向Ic卡(ICC)发送一条命令的工作过程。在首先传输管理模块按照ISO7816—3标准对物理层传输的信号进行解码并传递给安全模块。若为加密传输,则安全模块进行加解密操作并将结果传输给应用管理模块;若不是加密传输则信息直接传输给应用管理模块。应用管理模块根据预先设计要求,解析检查此命令的合法性及执行条件,检查通过则执行此命令。如果此命令涉及信息存取,则文件管理模块检查其是否满足预先设计的存取安全条件,若条件满足则执行有关数据存取操作并发送响应到IFD。整个过程中任何检查失败将立即退出并返回相应出错信息。
图2 模块工作原理图
2.1 传输管理
传输管理器负责智能卡和接口设备之间的数据通信,接收过程中要处理对输人数据的缓冲,响应过程控制数据的发送。传输管理器在正确地接收到命令后交给下一个功能模块进行处理,最后还要把该命令的执行结果返回给接口设备。
数据在传输方式上有4种类型:明文方式、明文校验方式、密文方式和密文校验方式。对以明文方式进行传输的数据由传输管理器直接送给命令处理模块。当数据以校验或密文方式传输时需要加解密运算器对数据进行处理,并设定卡片的安全状态,即对数据进行线路保护。对传输的信息进行保护是信息安全的最重要的方面,为防止对传输信息的非法截取,采用选定的加密算法对传输信息进行加密保护,使非法截取信息不可读、不可知 ,具体过程如图3所示。
图3 数据的线路保护
2.2 安全管理
安全管理归纳为认证操作、存取权限控制和数据加解密3个部分。
2.2.1 认证操作
认证操作包括口令认证、内部认证和外部认证3个方面。
(1)口令认证:用户通过命令Verify输入口令,然后首先判断密码文件中指定密码的错误计数器的值是否已是最大。如否,则与密码进行比较,比较成功设置相关寄存器的值,下一步操作时需首先判断此寄存器的值。否则,错误计数器加1,需再次输入口令比较。
(2)内部认证:提供了利用接口设备发来的随机数和自身存储的相关密钥进行数据认证的功能,是设备对卡片的认证。当该相关密钥位于MF文件时,命令可以用来鉴别整个卡;当该相关密钥位于一个DF文件时,命令可以用来鉴别该DF文件。
(3)外部认证:用于对卡片外部的安全认证。计算的方法是利用卡片中的外部认证密钥,对卡片产生的随机数和接口设备传输进来的认证数据进行验证,卡片将比较输入的结果是否与卡片自己计算的结果一致,如果一致,则外部认证成功。
2.2.2 存取权限控制
操作系统对特定存储区进行权限限制以进行保护,此类存储区分别被设置了读、写、擦除的存储权限值。当对相应存储区进行操作时,操作系统首先检测操作是否符合存储权限。本设计使用的安全机制称为状态字(也称AC字,16 bit)转移机制,每一种安全状态字都代表一种不同的安全级,智能卡将保持其安全状态字节中所代表的状态。智能卡中有两个安全状态字,其中高字节表示当前DF文件的父DF文件的安全状态,低字节表示当前DF文件的安全状态。当通过查找命令从高应用文件层进入到它的子DF文件的时候,当前DF文件的安全保护字节将被清空,高应用文件层的DF文件的安全字节将被作为当前文件的父DF文件的安全状态字节,使用CDF—AC来表示当前DF文件的安全状态字节,PDF— AC来表示当前文件的父DF文件的安全状态字节。
安全属性是指对某个文件进行某种操作时所必须满足的条件,也就是在进行某种操作时要求安全状态寄存器的值是什么。安全属性又称访问权限,一种访问权限在建立该文件时用一个字节指定¨ 。状态字转移机制遵循以下的规则:
复位后,MF文件将被自动选择为当前的应用文件。并且CDF_AC=0x00,PDF—Ac=0xO0。从当前的应用文件查找它的子DF文件:PDF_AC=CDF—AC,CDF_AC=0xO0。从当前的应用文件查找它的父DF文件:CDFAC =PDF_AC,PDF_ AC=0x00。如果当前应用文件的父DF文件时MF文件,那么:CDF_AC=PDF_AC。
只有“外部认证”与“口令认证”这两种方式可以改变当前安全状态字节,一旦安全状态字节被改变了,该状态将一直保持到进入另一个应用文件为止。基本文件的存取以及应用命令的执行都由定义的各自不同的安全状态来决定。在安全状态不满足的情况下,智能卡将返回“6982”l15],即“安全状态不满足”。
2.2.3 数据加解密
本设计使用了对称密码算法(DES)与国密算法(SM1/SSF33)相结合的方法,可根据具体要求,选择合适算法。其中对称密码算法,加密密钥和解密密钥是相同的,加解密速度快,可用来处理大量数据信息,是至今为止应用最广泛的算法,以目前的计算机技术和费用还无法攻破,但是密钥很容易在传输中被截获 。在每次启用密码算法前,系统都临时协商随机产生一个真随机数参与运算,进一步加强整个加密过程数据的随机性,对防破解起到重要作用。密钥存储在卡内,密钥只有在安全条件满足的情况下使用,但是不能读取,保证在任何情况下密钥不会从卡片中泄露。
2.3 应用管理
对外部输入的每条命令做语法分析,分析和检查命令参数是否正确,然后根据命令参数的含义执行相应的功能模块,并返回响应。如果执行出错,将从该模块直接返回错误信息。
2.4 文件管理
文件管理器控制文件的操作和访问。在做数据操作前,文件管理器将根据文件的安全属性检查卡的安全状态,以确定是否允许当前操作。
智能卡中文件系统由3种文件组成,即主文件(MF)、目录文件(DF)和基本文件(EF),同数据块一样主要根据不同的应用对数据信息进行存储。在整个文件架构中,存在一个具有唯一标识符“3F00”的特殊专有文件,称为主文件(MF),任何其他的DF或者EF都必须在主文件下创建。每个DF下可以包含多个DF和EF,包含下级目录的文件为DDF,不包含下级目录的文件为ADF。当智能卡复位后(上电复位或者热复位)MF文件将自动被选择作为当前文件,智能卡文件系统的具体结构如图4所示。
图4 智能卡的文件系统
DF文件的存储空间在“Create DF”的过程中定义,一旦DF文件被创建,那么之后它的存储空间就不能再改变,因此MF文件的存储空问将决定整个智能卡可使用的空间。每个DF文件有54个字节的文件头,每个EF文件有39个字节的文件头。与之相似,EF文件的存储空间也是在“Create EF”的过程中定义,在ISF中每种密钥都有16个字节的密钥头,在EF文件中每一个变长记录都有两个字节的记录头。因此创建一个应用时,就可以根据以上的文件结构定义精确计算出所需要的整个存储空间的大小(包括文件体、每个文件头和记录头的空间净需求)。
本设计摒弃了存储卡的设计思想_1 。在文件结构中加入二进制文件和记录文件的概念,减少了对卡片做个人化时的不便,充分地进行整体数据结构设计,最大化利用了CPU卡的强大的数据处理能力,给了用户很大便利。采用文件系统与安全访问机制的联合设计。将文件存储和应用防火墙进行统一设计,使智能卡的文件系统可支持多层DF文件结构,用户可以利用这种结构在一张卡实现多应用¨ 。不同DF文件的安全状态由内部的防火墙隔开,不同的应用都有各自的安全机制而互不影响。对DF和ISF的文件采取固定的文件头结构,简化文件系统空间的计算,提高卡片工作的可靠性。可靠性存储的设计,保证了在任何情况下数据存储的完整性,并定义了可靠的机制,保证数据在意外掉电的情况下能够可靠恢复。
3 开发实现
本设计使用Keil uVision4作为开发平台,所有的程序开发都在平台上完成。选择8052单片机芯片,使用C语言作为开发语言,选择TMC程序仿真器对程序进行仿真测试,可以通过Keil uVision4的仿真按钮将TOE程序下载到仿真器中,并在程序中设置相关断点对程序进行仿真测试。
4 结语
本设计硬件存储容量大,软件设计扩展性好,能够支持多应用,符合智能卡产品的技术发展潮流,具有良好的应用前景。卡内部防火墙可以进行应用隔离,把身份认证、社保、银行、医疗、商业、公路收费、公园卡以及其他应用集成到一个智能卡中,既可以提高服务效率、工作效率、服务质量和管理水平,又能够有效地利用卡资源,降低使用成本。今后,如何进一步提高可靠性又不失其灵活性,是智能卡发展中需要长期面对和解决的问题。《山东科学》(济南大学信息科学与工程学院,山东省网络环境智能计算技术重点实验室 胡云肖,杨波,孙涛,郭延海)
参考文献:
[1]孙菁,傅德胜.序列密码中密钥流生成器的安全性研究与分析[J].信息安全与技术,2010(7):65—68.
[2]邓赞.智能卡操作系统(COS)安全管理研究[J].硅谷,2010(2):50—51.
[3]SAUVERON D.Multiapplication smart card:Towards an open smart card?[J].1nf Secur Tech Rep,2009,14(2):70—78.
[4]宁咏梅.智能卡操作系统(COS)的系统测试方法的设计与实现[D].上海:上海交通大学,2011.
[5]车平跃.智能卡操作系统内核的研究与实现[D].北京:北京邮电大学,2010.
[6]MAYES K E,MARKANTONAKIS K.Smart CaMs,Tokens,Security and Applications[M].New York:Springer Science+Business Media,LLC ,2008.
[7]马海峰.智能卡COS文件系统结构模型的研究与应用[D].广州:广东工业大学,2011.
[8]董威.多应用智能卡新技术研究[D].北京:北京邮电大学,2008.
[9]刘玉珍,张焕国.安全智能卡的结构研究与应用[J].中国防伪报道,2008(10):34—37.
[10]郭鸿志,李代平,尹伟,等.智能卡芯片操作系统的研究与实现[J].计算机工程与设计,2010,31(19):4186—4189.
[11]尹伟,李代平,王挺,等.基于Flash智能卡文件系统的设计[J].微计算机信息,2009,25(11—2):97—99.
[12]许东亮.嵌入式USB主机文件系统设计与优化[J].计算机工程与设计,2008,29(1O):42—43.
[13]刘文博,刘宏伟.动态多应用智能卡文件系统的研究与设计[J].微计算机信息,2009(29):204—206.
[14]许天亮,方勇.基于可信计算的Java智能卡的设计与实现[J].微计算机信息,2009(17):45—47.
[15]王高祖,李伟华,徐艳玲,等.基于Tms~one技术和p~CLinux的安全嵌入式系统设计与实现[J].计算机应用研究,2008,25(6):1793—1795.
[16]陈莉莉,刘正龙.以数据为中心的多用户跨平台的Web开发技术[J].计算机应用与软件,2012,29(2):237—239.
[17]吴开兴,杜辉.智能卡实时监控考勤系统的设计与实现[J].微计算机信息,2008,24(2—2):302—303.
[18]彭彦,鞠磊,方勇.基于Java智能卡的可信度量模块设计[J].微计算机信息,2009,25(6—3):40—42.
[19]胡鸣,张小兵,王艳.一种新的基于智能卡的身份认证方案[J].微计算机信息,2010,26(1—3):41—42.
[20]徐平江,庞娜,付青琴.基于链表方式的智能卡文件系统设计[J].微计算机信息,2011,27(11):40—50.