IC卡系统的安全技术及IC卡消费系统应用实例
文章出处:http://www.nexussmartsolutions.com 作者: 人气: 发表时间:2012年03月11日
摘要:讨论了IC 卡及其应用系统的安全技术,从底层硬件、操作系统到上层应用软件三个层次进行了分析。通过一个自动售货机IC 卡消费系统的安全性设计方案着重说明了上层应用软件的安全性设计。
关键词:IC 卡;安全技术;密钥
IC 卡是把具有存储、加密及数据处理能力的芯片封装于塑料基片中,形成了具有智能性又便于携带的卡片,作为电子信息的载体,近年来在金融、通信、交通及其它日常生活领域中都得到了广泛的应用。
IC 卡中通常保存了大量重要的信息,因此在IC 卡的使用中数据的保密性、安全性就显得尤为重要。从系统工程的角度来看, IC 卡系统不单纯是IC 卡与读卡器之间的数据交换,还包含后台主机系统、发卡系统等多个环节。除了IC 卡自身的高保密安全性,整个系统的设计都要考虑到如何保证高保密性、高可靠性。本文从IC 卡卡片、操作系统、应用系统几个方面分别介绍了相关的安全技术,并介绍一个自动售货机IC卡消费系统的安全技术设计方案。
1 IC 卡及读卡设备的安全性
IC卡卡片自身的硬件结构提供了比磁条卡高出很多的安全可靠性,主要体现在芯片的技术和卡的制作工艺两方面。IC卡的存储芯片可分为ROM、OTP ROM、EPROM、EEPROM、逻辑加密存储器等等,不同类型的存储器在数据保存持久性、抗干扰能力、数据加密保护能力等方面都有所不同。在IC 卡的制造上也有许多安全保护的防伪方法,如:微线条技术、激光雕刻签名、安全背景结构和荧光安全图片等等。
读卡终端设备由于存在着受到信息被截取和复制、设备被仿造、终端设备误操作等攻击的可能性,因此在设计上需要保证较高的安全性。读卡设备设计的关键是所选芯片的技术,目前有加密芯片、专用集成芯片、算法芯片等,可以不同程度地加强数据传输的可靠性和不可破译性。
2 IC 卡操作系统的安全性
IC卡的操作系统是IC 卡卡片硬件与应用软件之间的中间层,提供了对硬件的访问、文件管理、安全机制等功能,实现了软件与具体硬件配置的隔离,从而使软件变得可移植,增强了卡的通用性。
IC卡操作系统主要从文件管理、安全机制和指令集三个方面来保证安全性。
2. 1 文件管理
一个好的操作系统在文件管理上应实现分层管理,对于公共数据、系统数据和专用数据要分别存储和管理,对不同文件的访问应设置不同的访问权限,以实现必要数据共享的同时保证专用数据和系统数据的保密性。
2. 2 安全机制
IC卡操作系统中的安全机制通常包含文件访问权限、安全报文传输、防拔特性等。
1) 文件访问权限:文件访问权限的设置禁止了对文件的非法访问。这种权限的设置不仅存在于同一张卡中的不同应用上,也存在于同一个应用中不同的文件上。
2) 安全报文传输:为了防止在IC 卡与读卡设备的通讯过程中数据遭到恶意截获和篡改,在一些关键数据的传输上要采用安全报文传输,主要采用加密和校验手段,以保证传输数据的完整性和保密性。加密算法是保证数据安全可靠性的核心技术。
3) 防拔特性:防拔功能是在IC 卡使用过程中遇到人为的拔卡破坏行为或掉电情况时能保存交易数据或恢复未完成的交易。具有防拔功能可以保护交易信息、减少用户的损失,提高系统使用的可靠性。
2. 3 指令集
IC卡操作系统指令集一般包括管理指令、交易指令和个人化指令。设计指令首先要符合IC 卡设计标准(如国际标准化组织制定的关于IC 卡特性、应用等的标准ISO7816、我国关于金融卡设计使用的标准《中国金融集成电路( IC) 卡规范》等) ,在此基础上指令功能要清晰完善,并且指令越少越好。
3 应用系统的安全性
IC 卡应用系统是以IC 卡和读卡设备为基础,包含主机、终端设备、发卡系统等多个部分的基于网络的系统。应用系统自身的安全特性直接影响着整个系统的性能,其安全技术主要存在于两个方面,一是密钥的管理,一是应用系统网络的安全性。
3. 1 密钥的管理
在IC 卡系统中,密钥机制是保证IC 卡上的数据和IC 卡应用的保密性、可靠性的关键技术。通过密钥才能够在文件的访问、数据的读写与传输等方面实现加密和权限控制,从而保证IC 卡在使用中的高可靠性。因此对于所有密钥的管理要充分保证密钥存储、使用的安全可靠,避免密钥被轻易窃取和越权使用。
3. 2 应用系统网络的安全性
IC 卡与终端设备、主机之间要不断进行数据传输,网络是普遍采用的传输手段。网络上的各个节点,包括主机、发卡系统、终端设备等,以及节点间的互相通信都是可能受到攻击的对象。所谓应用系统网络的安全性不仅仅指实际的网络传输系统的安全可靠,也包括网络上各个节点自身运行的安全性。通常采取的措施包括:增强系统容错能力、对各种异常情况的报警和故障后恢复能力;设置足够的系统冗余和备份资源;主机和发卡系统与外界网络之间建立防火墙等等。
4 自动售货机IC 卡消费系统
自动售货机IC 卡消费系统是我们开发的一个IC 卡应用实例,以IC 卡代替传统的硬币和纸币在自动售货机上进行消费,所有符合中国人民银行颁布的《中国金融集成电路( IC) 卡规范》的金融支付卡都可以在该系统上使用。因此该系统实现的基础架构是银行的金融卡发卡、使用、管理的整套系统。系统结构如图1 所示,以银行主机和中央数据库为基础,在自动售货机上实现电子消费,并在售货机与主机之间实现所有交易数据、指令的传输。应用程序存储于自动售货机的内部存储器中,存储器中还有一部分Flash Memory ,用于存储所有需要保存的交易数据。
图1 自动售货机IC 卡交易系统结构
针对自动售货机消费系统能够提供方便快捷的消费这一特点,本系统中从系统结构、数据传输方法、文件管理、密钥管理等方面设计并实现了消费应用的安全性设计,保证了IC 卡消费的方便、可靠。
4. 1 系统总体设计
针对自动售货机IC 卡消费系统的特点,本系统总体上采用脱机交易、脱机数据传输的工作方式。自动售货机通常应用于商场、宾馆、饭店等人流较多的地方,并且出售的均为小额商品,因此需要在硬件配置上方便简单,用户在购买商品时得到快捷方便的服务。总体设计充分满足了这些需求,也保障了系统的安全性。
4. 1. 1 电子消费:采用电子钱包脱机交易方式实现消费功能。金融支付卡支持两种消费方式,一种是使用电子存折进行联机交易,交易数据直接通过网络传送到银行主机;另一种是使用电子钱包进行脱机交易,定期将交易数据批量传送到银行主机。与联机交易相比,脱机交易的交易过程不需要与主机进行通讯,时间短,速度快,方便用户的使用。同时由于没有对网络的需求,为自动售货机的放置提供了方便,也减少了因网络传输易受到攻击而带来的不安全因素。
4. 1. 2 交易数据的上传与主机指令回传:使用了大容量管理卡以脱机方式在自动售货机与银行主机之间进行数据传输。由于采用了脱机交易方式,大量的交易数据都被保存在售货机内,必须定时将这些数据上传到银行的主机,确保交易执行的完整性。脱机数据传输替代传统的网络传输,克服了网络传输容易受到干扰、数据易被恶意截取或篡改等不足,提高了系统的安全性。
管理卡的文件结构如图2 所示。密钥文件用于存储IC卡身份认证、数据传输、校验等所需要的密钥。交易数据文件存储从自动售货机上下载的所有交易数据,这些数据定期下载并上传至银行主机。日志文件用于记录数据下载及指令传送的执行情况。银行主机在处理交易数据后若有清除标识及挂失止付“黑名单”等指令数据可通过回传指令文件存储并传送到自动售货机上。交易数据文件和回传指令文件都采用记录文件格式,每一次交易的数据和每一条指令都作为一条记录进行存储。定期使用管理卡从自动售货机上下载存储的所有交易数据,将其转储到银行主机,再根据需要从主机获得有关清除标识、“黑名单”等指令,通过管理卡传输到自动售货机上。
图2 管理卡的文件结构示意图
4. 2 数据传输的设计与实现
图3 数据批量下载流程
IC卡应用系统中最重要的部分就是数据的交互传输,在自动售货机IC 卡消费系统中包括IC 卡(消费卡和管理卡) 与读卡终端之间、读卡终端与自动售货机之间和管理卡与银行主机间的数据传输。数据的安全可靠程度决定着整个系统的安全性能。为确保数据的保密性和安全性,数据传输分为两个步骤:身份的互相认证和数据加密传送,实现流程如图3。
ExternalAuthentication指令实现外部认证,确认读卡设备的身份,保证只有合法的读卡终端才能对其进行操作。
InternalAuthentication 指令实现内部认证,确认IC 卡的身份,只有符合使用要求和权限的卡才能在自动售货机上进行消费或下载交易数据。为实现双重身份认证对管理卡上文件设置了相应的安全权限,必须在外部认证和内部认证通过的情况下才能进行其它操作。利用IC 卡操作系统提供的安全机制,为其所有文件设置访问权限,当认证通过后将当前安全状态寄存器设置为符合文件访问权限的值,才能够对文件进行访问。
具体实现举例如下:
1) IC 卡初始上电复位后安全寄存器状态为0 ;
2) 管理卡上访问权限设置为5 ;
3) 外部认证、内部认证顺序执行,都通过后将安全寄存器设置为5。
此时即可合法访问文件。
双重身份认证的实现从消费终端和IC 卡两方面减小了受到恶意攻击的可能性,大大提高了系统安全性。
身份认证通过后进行数据的传输。数据传输使用安全报文传输方式,先对数据进行加密,再对加密后的数据计算校验数据MAC ,加密数据与MAC 一并传输。收到数据的一方对MAC 数据进行校验检查,校验错误时发回错误信息,数据传输失败。数据加密采用三重DES 算法,MAC 计算采用单DES加密算法。DES 算法是典型的对称密钥加密算法,通过非线性函数反复16 圈位移、置换和代替,以及对密钥的置换移位等做法,实现数据的扩散与混乱,从而生成安全性很高的强密码。三重DES 算法的使用更进一步加强了数据的保密性。
4. 3 密钥管理
所有的密钥采用分类、分布存储和管理的策略,将系统中的所有密钥根据用途分为三类并分别存储:
1) 各个消费卡使用的密钥:每张消费卡使用其中金融支付应用的交易子密钥作为消费密钥。保证一张卡上的所有金融消费都使用同一套密钥,避免多余密钥造成混乱。
2) 各个管理卡使用的密钥:管理卡在与自动售货机和银行主机通讯时都要首先进行身份认证,数据的传输过程为保证安全性也都采用了加密方式,因此每张管理卡都有自身的私有认证密钥和传输密钥。不同的管理卡私有密钥独立存储,保证了管理卡上的数据不易被窃取,提高其安全可靠性。
3) 用于所有卡身份认证和数据传输的公共密钥。这些密钥属于不同消费卡或管理卡的共享密钥,用于在对某一张消费卡或管理卡进行通信时派生对应的身份认证和传输子密钥。将这些共享密钥存储在自动售货机上的PSAM卡中而不存在每一张卡上,节省了各个卡的存储空间,同时与每张卡上的子密钥分离也降低了密钥被窃取的可能性,增强可靠性。密钥的分类存储与管理增强了对密钥自身的保护,有效抑制了通过窃取密钥进行恶意破坏的可能性,从而加强了这个系统的安全可靠性。
4. 4 批量数据传输的完整性设计
交易数据在售货机内以记录的方式存储,每次交易形成一条记录。下载时从售货机中按存储顺序以记录的方式逐条读出交易数据,再以同样的记录格式写入管理卡上的交易数据文件。为保证交易数据的安全完整,每一条记录的读取过程被设计为一个原子操作,并在数据从售货机传输到管理卡的过程中设计了对存储器存储容量进行判断的功能。每次读取记录前首先判断管理卡的存储空间是否够用,如果不能继续下载,则不再进行下载,其余数据仍保留在在自动售货机内,留待下次下载。在每条记录的下载过程中,如果出现断电或其它意外则在售货机上恢复此条记录。管理卡在向主机上载数据时首先进行数据完整性的核查,若有不完整数据则将其清除。通过这些措施有效防止了数据的丢失和损坏。
5 总结
IC卡系统的安全体系对于整个IC 卡系统的运行具有关键性的作用。在硬件、操作系统、应用系统都存在很多容易受到攻击的环节,因此在设计中要充分考虑各个部分,采取相应的防范措施。本文介绍的自动售货机IC 卡交易系统在应用系统端采用了脱机交易和交易数据脱机上传,从总体设计、文件结构、数据传输、密钥管理等多个方面实现了很好的安全性设计方案,保证了消费和数据管理的安全可靠性。
参考文献
[1] 王卓人,邓晋均,刘宗祥. IC 卡的技术与应用[M] . 北京:电子工业出版社,1999.
[2] 中国金融标准化技术委员会. 中国金融集成电路( IC) 卡规范[M] . 北京:中国金融出版社,1998.
作者简介:李瑞锋(1975 - ) ,女,黑龙江人,硕士研究生,主要研究方向:智能卡应用系统及其安全性;
熊璋(1956 - ) ,男,湖北人,教授,博士生导师,主要研究方向:多媒体技术、分布式信息处理.