- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于智能卡COS的电子现金设计与测试
电子现金方案是基于《中国金融集成电路(IC)卡规范(V2.0)》实现的小额支付功能,支持圈存、消费、查询等。安全的智能卡片内操作系统的设计是其关键问题。
智能卡芯片因包含有片内存储器的自动侦测模块,能保证在未来相当长时间内无法通过反剖析手段获取芯片内存储的数据。
目前网上银行使用的银行卡加USB KEY的模式仍然存在安全漏洞[1],本电子现金方案功能模式如图1所示,数据完全在卡片内部加解密,提高了安全性;电子现金账户是授权消费的最大额度,分配给脱机交易使用,防止透支风险。
1 智能卡硬件
SHC1302-N是一款基于ARM7的32 bit双界面智能卡芯片,内置256 KB的ROM、10 KB的RAM、144 KB的E2PROM、真随机数发生器、CRC模块等;符合ISO14443D的Type A/B通信协议和硬件自动识别通信协议;具有256 B的收发FIFO;Type A模式支持106 Kb/s、212 Kb/s,Type B模式支持106 Kb/s;符合ISO/IEE7816协议,支持T=0、T=1协议。
2 COS结构模型
常见的片内操作系统COS(Card Operating System)结构模型有简单结构、层次结构、微内核结构和外核结构4种。COS的设计必须解决文件操作、鉴别与验证、安全机制[2]三个问题。如图2所示,选择扩展性好、复杂度低、灵活性好的微内核结构;使用Metrowerks CodeWarrior for ARM Developer Suite建立COS工程文件。
3 文件系统设计
3.1 文件结构
如图3所示,文件结构是以主文件MF(Master File)为系统根文件、专用文件DF(Dedicated File)为枝叶和基本文件、EF(Elementary File)为叶的树形结构。MF在卡内有且仅有一个,映射为一个目录定义文件DDF(Directory Definition File),其应用标示符AID(Application Identifier)定义为0X3F00。根据DF以下是否包含子DF,将DF分为DDF和应用定义文件ADF(Application Definition File)。EF分为二进制文件、定长记录文件、非定长记录文件和循环定长记录文件。每个DDF有一个目录文件DIR(Directory File),且为变长记录文件。每一条记录对应一个DF信息。ADF下没有DIR文件。
3.2 文件系统逻辑和物理关系
文件系统在逻辑上的关系:文件结构以二叉树的形式存在,左儿子是根的第一个创建文件,右儿子是和根同一层次的文件。
文件系统的物理关系:先创建的文件在前面,后创建的文件在后面,一直保持这个次序不变。每个DF只有文件头(即文件描述块),包含对文件和应用的描述,例如文件大小、文件类型、文件标识等。每个EF包含文件头和文件体,文件体保存文件的实际数据内容。每个DF所占空间等于DF头空间,每个EF所占空间等于EF头空间加EF文件体所占空间。
3.3 文件API接口
文件API接口有:创建文件fs_create、删除文件fs_del_all、按应用标识符查找文件aidfindnode、按全名查找文件fidfindnode、按短文件名查找文件sfifindnode、写文件memory_write和读文件memory_read。
4 应用管理系统设计
4.1 命令解析
由于命令报文的指令字节INS(Instruction Byte of Command Message)大多不相同,因此采用switch语句,用INS区分命令入口地址。若多个命令的INS相同,则在函数体内,利用命令报文的类别字节CLA(Class Byte of the Command Message)、参数1 P1(Parameter 1)、参数2 P2(Parameter 2)来进一步判断。电子现金命令报文编码及响应报文编码可参见JR/T 0025.5-2010附录B。
X.509标准中将PKI(Public Key Infrastructure)定义为支持公开密钥管理,并能支持认证、加密、完整性和可追究性服务的基础设施。PKI命令报文编码及响应报文编码可参见参考文献[3]。在switch语句中,添加PKI命令的入口,使其与电子现金命令并行存在,如图4所示。
范围,与仅支持离线或仅支持在线的电子现金方案[5-6]相比,更易于使用。
5 安全机制设计
建立完整的安全机制是保护信息系统安全的关键[7]。
5.1 文件访问控制与防交叉
在创建文件时,设定文件的读写删除等权限,只有满足权限时,才能进行相应操作。在执行命令时,判断当前目录文件,不允许跨应用访问私有文件。
5.2 数据备份与防掉电
设置备份区标志变量:在每次更新敏感数据前(如交易明细、余额),置位标志变量,并将原有数据备份。数据更新完成后,复位标志变量。卡片上电复位后,检查标志变量。如果备份区有效,则从备份区恢复上次交易数据;如果备份区无效,则开始新的交易。
5.3 密钥体系
密钥体系分为对称密钥体系和非对称密钥体系。对称密钥体系采用三级密钥,主要用于应用请求密文的生成,发卡银行验证以及脚本信息的加解密等;发卡方保存主密钥,主密钥分散产生子密钥;子密钥存储在智能中,子密钥分散产生过程密钥;采用DES及3-DES算法。非对称密钥体系主要用于脱机数据认证,是一个二级认证中心CA(Certificate Authority)架构,包括根CA和发卡行CA;使用非对称加密算法RSA、哈希算法SHA-1(见GB/T 18238.3)。PKI系统可以为用户建立一个安全的网络运行环境,保证电子现金系统不可重复花费并具有防伪性[8]。
5.4 交易风险控制
当发生交易取消时,电子现金系统可以采用一些补偿措施[9]。设置了电子现金余额上限、电子现金单笔交易限额等数据元来限制交易额度。当交易金额大于电子现金单笔交易限额时,拒绝电子现金交易,转而进行标准借/贷记交易。当圈存或现金充值超过电子现金余额上限时,拒绝该笔交易。
6 双界面通信设计
双界面通信设计是对读写设备发出的命令进行接收,实现接触式与非接触式两种通信方式。设有如下4个API接口:
(1)硬件时钟频率init_io:仿真模式时为7.5 MHz,正常模式为30 MHz。通信接口根据标识变量,自动判断是7816协议还是14443协议,并初始化和接收第一个指令。如果是7816协议,则发送ATR,其指令最大长度为256 B。
(2)接触式接收os7816RxCommand:先接收5 B指令,然后判断有无后续数据,若有再接收剩余数据。
(3)接触式返回os7816TxResponseRxCommand:如果只返回SW1(Status Word One)、SW2(Status Word Two)就直接发送,如果还有其他数据,就要先发送INS,再发送数据,最后发送SW1、SW2。
(4)非接触模式命令的接收和发送os14443TxResponseRxCommand。
在接收命令时,不对报文的正确性做出判断,命令解析和处理时再作判断。当发现命令接收有错时,在响应命令中回复错误代码,留待后续功能模块处理。
7 电子现金系统测试
COS测试分为硬件仿真器测试和智能卡测试两个部分,硬件仿真系统测试通过后,进行卡片测试。针对标准及具体需求设计测试用例,一般100%覆盖需求,而对结构的覆盖率达到所要求的即可[10]。
2901Download工具支持Gemplus433ACR30S、ACR30U读卡器(PCSC)。启动2901Download工具,将COS的二进制文件下载到智能卡内。使用脚本命令在智能卡上创建文件系统和数据结构,并进行卡片个人化。
SHC6210H 仿真器是集合了评估板和J-Link 仿真调试模块的一体化仿真系统,可以通过JTAG 方式对芯片的片上程序进行开发和调试、装载项目工程文件,进入仿真模式。集成开发环境支持代码的下载、全速运行、单步运行、跟踪运行、运行到光标处、断点等调试功能,支持存储器观测、修改、填充、加载等功能。该系统完全在硬件内部对数据进行加密解密和数字签名等操作,解决了U盾和银行卡分离引起的安全漏洞;自动选择在线与离线模式,降低了电子现金系统对网络环境的要求;支持接触式和非接触式两种通信模式,增强了系统灵活性;微内核层次结构设计,提高了系统可扩展性;防交叉文件访问控制,保证了各应用相互独立;对称密钥体系和非对称密钥体系互补使用,提高了系统效率;引入交易限额等数据元并进行敏感数据备份,控制了交易风险。
参考文献
[1] 张锟,颜学龙.USB KEY的体系结构分析及安全策略研究[J].安全技术与管理,2009(2):40-42.
[2] 王爱英.智能卡技术IC卡与RFID标签[M].第三版.北京:清华大学出版社,2009:331-337.
[3] 李翔.求是科技,智能卡研发技术与工程实践[M].北京:人民邮电出版社,2003:410-428.
[4] CHUN I F,VINCENT H.Provably secure integrated on/offline electronic cash for flexible and efficient payment [J]. IEEE Transactions on Systems, Man, and Cybernetics-part C: Applications and Reviews, 2010,40(5):567-579.
[5] Liu Feng,Li Xueyong,Gao Guohong.The design of an E cash system[C].2010 International Conference on Computer Design and Applications(ICCDA 2010).Qinhuangdao China:IEEE,2010:119-122.
[6] Zhou Fei,Deng Heping,Li Zhengyue,et al.The analysis of E-commerce online payment status in China[C].2010 International Conference on Networking and Digital Society. Wenzhou China:IEEE,2010:84-87.
[7] LEE J,JUN M.Security protocol design for electronic-cash transactions in a mobile-PKI environment[C].9th IEEE/ACIS International Conference on Computer and Information Science.Yamagata Japan:IEEE,2010:887-891.
[8] 张锟,颜学龙.USB KEY的体系结构分析及安全策略研究[J].安全技术与管理,2009(2):40-42.
[9] Yang Xinsong,Li Zhao.Some improvements on recoverable E-cash[C].2010 International Conference on E-Business and E-Government.Guangzhou China:IEEE,2010:2126-2128.
[10] 谢晶晶,李代平,郭琨.智能卡操作系统的测试技术[J].计算机技术与发展,2010,20(8):21-28.