APP下载

基于智能卡的COS安全设计与实现

2016-09-03周道双

通信技术 2016年3期
关键词:智能卡控制程序应用程序

邓 赟,周道双,李 宇

(1.中国电子科技集团公司第三十研究所,四川 成都 610041;2.成都三零嘉微电子有限公司,四川 成都 610041)



基于智能卡的COS安全设计与实现

邓赟1,周道双2,李宇1

(1.中国电子科技集团公司第三十研究所,四川 成都 610041;2.成都三零嘉微电子有限公司,四川 成都 610041)

智能卡目前被广泛应用于民用、商用、金融以及军事领域。首先对传统智能卡COS设计方式进行调查、研究,发现大部分智能卡COS都遵循ISO7816系列国际标准。然后在遵循国际标准的基础上重点对智能卡的程序区、数据区资源配置管理进行安全性分级设计,对外信息交互进行个性化设计,重点描述了完成安全性分级设计、个性化设计的智能卡如何完成对外信息交互、个性化设计配置、内部调度的COS软件设计及实现,最后对提出的安全设计进行了总结,并且对未来的进一步完善智能卡COS安全性提出思路。

智能卡;COS;安全存储;安全传输

0 引 言

集存储、加密、数据处理于一体,体积仅信用卡大小的智能卡,由于其使用简单、便于携带、安全性高受到青睐,目前已经广泛应用到通信、金融、交通、医疗等各个行业,使我们的生活更加便捷、高效[1]。

一款成熟的智能卡都由硬件和软件两部分组成,智能卡硬件就是一片含CPU的IC芯片,智能卡软件又称为智能卡片上操作系统(Chip Operating System,简称“COS”)。智能卡之所以智能就是因为智能卡含有微处理器,可以根据不同应用需求开发不同的COS。大部分COS都遵循ISO7816系列国际标准,其核心就是实现对智能卡的内部空间的安全管理及控制智能卡与外部数据的安全交换[2]。但智能卡的发展速度很快,而国际标准的制定周期相对比较长一些,因而造成了当前的智能卡国际标准还不太完善,同时COS设计时还需考虑智能卡本身的特点,比如CPU性能、内存容量、应用范围等因素,因此许多厂家又各自在国家标准的基础上又对自己开发的COS作一些扩充[3]。

针对一些安全性要求较高的应用环境,本文在存储资源管理、传输协议设计方面对COS作一些扩充,以提高智能卡安全性。

1 存储资源管理

IC芯片一般都包含两部分相对独立的非易失性存储资源:程序存储区和数据存储区。COS一般存储在程序存储区,而使用智能卡所需的数据则存储在数据存储区。

智能卡存储资源结构划分如图1所示。

图1 智能卡存储资源结构

1.1程序存储区资源管理

COS是一个专用系统,一种COS一般只能应用于某一款特定的IC芯片,大部分厂家为了方便COS移植到不同的硬件平台上,将COS分为应用程序和核心控制程序。应用程序实现用户所要的各种功能,如智能卡自检、用户身份认证、数据加解密、销毁等功能;核心控制程序则实现对IC芯片硬件的控制调度,包含I/O端口收发控制、随机数产生器的使用、运算协处理器的使用。为了提高COS安全性,还可以将应用程序中的算法部分独立出来,将应用程序细分为算法应用程序和功能实现程序。独立出来的算法应用程序可以单独实现,便于算法重构。

综上所述,程序存储区划分为相互独立的三个部分,分别存放核心控制程序、算法应用程序和功能实现程序,三个部分程序可分别编译、加载、存储,制定内部接口协议实现核心控制程序、功能实现程序对算法应用程序的调用;功能实现程序对核心控制程序的调用。对三个区域的访问权限也可以单独配置,防止非法用户读取、篡改、反编译程序。

1.2数据存储区资源管理

智能卡运行所需的数据可以直接将数据存储在数据存储区中的某个地址,也可以将数据以数据单元的形式存储在数据存储区的各个文件中。

直接将数据存储在数据存储区中的某个地址就好比直接将数据丢在抽屉中,虽然数据在数据存储区中,但数据存储杂乱,不利于后期使用,而且智能卡的一个具体应用必然要对应于一个数据单元,因此将独立的数据单元以文件的形式存储,不同类型的数据存放在不同的文件中,方便后期使用,同时为了保证数据完整性、提高数据存储安全性还可以对数据进行完整性校验后,将数据和校验码加密后再存储于文件中。

根据所处层次不同,文件可以分为三类:主文件MF、专用文件DF和基本文件EF。主文件MF必不可少且只有唯一一个,是文件系统中的根文件,基本文件EF就是实际用了存储数据的最小单元,同样必不可少。专用文件DF则可以不用设置[4]。

2 传输协议设计

智能卡的整个通信过程中,重点关注以下几个问题:通信协议T=0或T=1、COS复位应答(ATR)、协议参数选择(PPS)、APDU指令格式及内部接口协议。

在实际使用过程中,智能卡的应用可以分为两个阶段:制发阶段和使用阶段。制发阶段完成软件执行码写入、文件系统建立、初始数据写入,使用阶段智能卡执行各项功能。两个过程相对独立,一般来说制发阶段完成进入使用阶段后,不会再返回制发阶段,而且建立完整的文件系统、存储的软件执行码遭到破坏后,直接导致智能卡不能正常工作。因此在制发阶段和使用阶段选用不同的通信速率,设计不同的ATR、PPS、APDU格式以保护智能卡在使用阶段不能破坏文件系统、软件执行码。以下在T=0的通信协议时,详细设计COS传输协议。

2.1COS复位应答(ATR)

在复位应答期间使用的缺省值时钟速率转换因子F=372和位速率调节因子D=1。(F用于修改复位应答之后终端设备所提供的时钟频率。D用于调整复位应答之后所使用的位持续时间。)终端设备根据复位应答,调整提供智能卡的参数,以便后续指令能正确执行。

ATR值需符合ISO7816-3的规定,表1给出了智能卡处于制发阶段和使用阶段不同的复位应答。

表1 复位应答

2.2协议参数选择(PPS)

为提高智能卡使用安全,智能卡制发阶段和使用阶段采用不同的通信速率,制发阶段采用9600bps通信速率,制发完成后使用阶段通信速率选用外部输入时钟的16分频,因此协议参数选择的主要功能就是升速和降速。只要没有发生速率变化,COS就一直保持当前速率。

表2给出了终端设备的低速PPS请求和智能的低速响应。

表2 低速PPS请求和响应

表3给出了终端设备的高速PPS请求和智能的高速响应。

表3 高速PPS请求和响应

2.3APDU指令格式

APDU指令分为制发阶段APDU指令和使用阶段APDU指令。制发阶段APDU指令主要完成数据存储区的文件系统的建立、文件数据初始化写入等操作;使用阶段APDU指令完成智能卡的各项功能。

智能卡制发完成后,制发阶段APDU指令可关闭,后期使用时智能卡不响应制发阶段APDU指令,仅执行使用阶段APDU指令,因此制发阶段的APDU指令直接采用ISO7816-3规定执行,使用阶段的APDU指令则进行自定义,提高智能卡在使用阶段的安全性。

2.3.1制发阶段APDU指令

制发阶段的APDU指令包括建立文件、删除主目录、取随机数、选择文件、写密钥、更新二进制文件、结束制卡。

建立文件:创建卡内文件,包括MF、DF、EF,创建时需分配文件空间大小。

删除主目录: 删除所有文件系统及文件数据。

取随机数: 随机数输出长度需支持8字节、16字节、24字节、32字节。

选择文件:根据FID(文件标识符)进行文件选择,成功执行该命令后,后续命令都将在命令中的FID号指向的DF或EF文件下进行处理。

写密钥:成功执行选择文件命令之后,在选中的DF或EF文件下写入COS内部需使用的各种密钥数据。

更新二进制文件:更新二进制文件命令的功能是完成对EF文件的数据写入,支持最大偏移32767字节。

结束制卡:结束个人化的功能是让智能一直工作在高速使用阶段的状态,关闭对制发阶段APDU指令的响应。表4给出了制发阶段APDU指令格式。

表4 制发阶段APDU指令

注:表格中的数值均为16进制

以上APDU指令返回状态码SW1-SW2为90-00表示成功,其它表示失败。

MAC是指通过算法对指令中从CLA字段开始到MAC字段之前的所有数据计算的校验值,保证指令的完整性、有效性,实现制发阶段APDU指令安全传输。

2.3.2使用阶段APDU指令

使用阶段的APDU指令实现智能卡的各项应用功能,包括自检、身份认证、加密、解密、销毁、更新文件数据等。

1)指令长度是指从指令类别开始到校验码结束的字节数,用于核心控制程序获取完整指令。

2)指令类别用于区分不同的命令和响应。

3)校验码是从数据长度开始到数据段结束按字节异或的结果,保证指令完整性。

图2给出了使用阶段APDU指令格式。

图2 使用阶段APDU指令格式

还可以根据实际使用情况,定义更多的使用阶段APDU指令类别。

2.4内部接口函数

核心控制程序为应用程序(功能实现程序和算法应用程序)提供读写文件数据的函数,实现应用程序对文件的操作;还提供一些常用的数据逻辑运算、取随机数等接口函数,提高COS编程效率。同时为了实现核心控制程序、功能实现程序对算法的调用,算法应用程序需要提供调用算法的接口函数。

2.4.1核心控制程序接口函数

逻辑运算函数:逻辑与、逻辑或、逻辑异或、逻辑自异或等。

内存操作函数:内存拷贝、内存比较等。

文件操作函数:选择文件、读文件数据、写文件数据、销毁文件等。

掉电保护函数:写数据掉电保护等。

取随机数函数。

销毁智能卡函数。

2.4.2算法调用函数

MAC计算函数:完成MAC计算。

数据加解密函数:完成使用阶段加解密运算。

文件加解密函数:完成文件存储加密及调用解密。

3 结 语

安全智能卡COS根据智能卡应用环境的不同采用不同的通信速率;将智能卡程序存储区划分为核心控制程序、算法应用程序和功能实现程序三个部分,提供内部接口实现对核心控制程序、算法程序的调用;将数据单元以文件的形式加密存储于数据存储区中。这些都是从软件设计方面,为提高智能卡安全提供了一种易于实现的解决方案,但并不能从根本上解决智能卡的安全问题。为了进一步提高智能卡安全性,选用强度较高算法将是提高智能卡安全的另一个重要手段,但这就需要智能卡硬件算法引擎的支持。因此未来的智能卡COS安全性设计也许将不再停留在软件设计阶段,硬件设计阶段就需要为后续软件实现提供强大的非对称算法引擎取代对称算法算法引擎[5],为有更高安全性需求的领域提供更安全、更完善的智能卡解决方案。

[1]潘宇,邓赟,许克智等.基于智能卡COS平台的应用开发技术[J].通信技术,2013,46(03):104-106.PAN Yun, DENG Yun, XU Ke-zhi, et al. Application Development Techology based on Smart-Card COS Platform[J].Communications Techology,2013.46(03):104-106.

[2]韦小刚,黄益彬,杨维永.一种基于ISO/IEC 7816的COS的设计与实现[J].计算机技术与发展,2012,22(03):230-232.

WEI Xiao-gang, HUANG Bin-yi, YANG Wei-yong. Design and Implementation of COS based on ISO/IEC 7816[J]. Computer Technology and Development. 2012,22(03):230-232.

[3]李国俊,董晶晶,周瑾.智能卡COS安全性测试研究[J].计算机技术与发展,2014,24(02):164-167,171.

LI Guo-jun,Dong Jing-jing, ZHOU Jin. Research on Security Test of Smart Card COS[J]. Computer Technology and Development. 2014, 24(02):164-167,171.

[4]李星艺,栾达,陈章龙.IC卡的操作系统-COS[J].计算机工程,1998,24(01):27-29,36.

LI Xing-yi,LUAN Da, CHEN Zhang-long. IC Card Operation System-COS[J].Computer Engineering,1998,24(01):27-29,36.

[5]肖娟,伍娟.一种实现COS数据安全的SM2算法[J].武汉工业学院学报,2013,32(02):65-69.

XIAO Juan,WU Juan. A SM2 Algorithm Realizing COS Data Secutity[J]. Journal of Wuhan Polytechnic University,2013,32(02):65-69.

邓赟(1983—),女,硕士学位,工程师,主要研究方向为信息安全与通信保密、嵌入式系统设计,嵌入式软件开发;

周道双(1976—),男,硕士,工程师,主要研究方向为信息安全嵌入式软件开发;

李宇(1982—),男,硕士,工程师,主要研究方向为信息安全与通信保密、嵌入式系统设计。

Security Design and Implementation of COS based on Smart Card

DENG Yun1, ZHOU Dao-shuang2, LI Yu1

(1.No.30 Institute of CETC,Chengdu Sichuan 610041,China;2.Chengdu 30JAVEE Microelectronics,Inc.,Chengdu Sichuan 610041,China)

Smart cards are widely used in civil, commercial, financial and military fields. Firstly, the traditional designs of smart card COS are investigated and studied, and the results indicate that most of them usually follow the international standards of ISO7816 series. Then, based on these international standards, security grading design is done on resource allocation management of smart-card program area and data area,individualized design on external information interaction.This paper describes in detail how the smart-card with the implementation of security grading design and individualized design completes COS software design and external information interaction, personalized configuration design,including COS software design and implementation of internal dispatch. Finally, the proposed security design is summarized and the idea for further perfecting smart-card COS security also presented.

smart card; COS; secure storage; secure transmission

10.3969/j.issn.1002-0802.2016.03.019

2015-10-11;

2016-02-02Received date:2015-10-11;Revised date:2016-02-02

TP309

A

1002-0802(2016)03-0352-04

猜你喜欢

智能卡控制程序应用程序
基于PLC的变电站备用电源自动投入装置控制程序的研究
东方磁卡李晓东:进击的智能卡研发巨子
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
基于STC89 单片机的非接触智能卡读写机设计
重型车辆协同式自适应巡航控制系统的车际通信控制程序和信息交互
纸机传动控制程序的复用性研究
智能卡领域首个国家工程建设标准发布
建筑工程新工艺、新技术现浇砼空心板的控制程序
三星电子将开设应用程序下载商店