AFC系统中IC卡用芯片的安全
0 引言
北京市轨道交通线路自1971年发售车票接待乘客开始,已有的3条线路一直采用人工售检票。2003年12月31日地铁13号线(城铁线)自动售检票系统的开通使用结束了北京轨道交通无自动售检票系统的历史,同时揭开了北京轨道交通自动售检票系统全面发展的新篇章。2008年奥运会的成功申办为北京轨道交通的发展提供了机遇,新线建设和既有线通过改造将全部采用自动售检票系统,届时将形成轨道交通网络化自动售检票(AFC)系统。IC卡是轨道交通自动售检票(AFC)系统的车票介质,而IC卡用芯片的安全性是IC卡安全性的基础。
1 IC卡安全机制
IC卡(Integrated Circuit Card)又称集成电路卡或智能卡(Smart Card),IC卡用芯片是一种集成电路芯片,其安全性是IC卡安全性的基础,在芯片的设计阶段应提供完善的安全保护措施。一般来说,对IC卡用芯片的攻击主要有以下几种:
(1)通过电子显微镜对存储器或芯片内部逻辑进行扫描,直接进行分析读取;
(2)通过测试探头读取存储器内容;
(3)通过从外部获取的接口直接对存储器或处理器进行数据存取;
(4)再激活IC卡用芯片的测试功能。
IC卡用芯片的安全技术要从物理上防止以上攻击,物理保护的实施强度以实施物理攻击者所耗费的时间、精力、经费等与其获得的效益相比作为标准。在AFC系统中,安全问题主要包括以下几个方面:
a.车票安全防止伪造、克隆、篡改、泄密、偷盗。
b.设备安全防止偷盗后对车票进行加值或复制;防止被攻击改变业务程序;防止被改变重要参数及数据;
c.数据安全 防止篡改、窃取、丢失、抵赖;
d.系统安全防止攻击、破坏,泄露重要信息。
对于IC卡单程票,经过BOM、TvM等发售到乘客手中,到出站闸机进行回收。在整个使用过程中,IC卡处于两种状态:在系统运营人员管理中,包括单程票的采购、初始化、发售、回收、循环运输等环节;在乘客手中,从购买单程票到出站之间。对于IC卡储值票,经过BOM、TvM等设备发售到乘客手中后,将一直在乘客手中重复使用,直至被收回。两种情况中,IC卡在乘客手中时有更大的不安全风险。但是整体而言,单程票处在安全范围内的比例要比储值票大,尤其是储值票,由于其储值金额可能较大,所以被攻击的可能性更大。
IC卡的安全由三个不同层次的安全保障环节组成,一是芯片的物理安全技术;二是卡片制造的安全技术;三是卡的通信安全技术。这三个方面共同形成卡的安全体系,保证卡片从生产到使用的安全。公开密钥基础设施PKI能够使位于世界上任何地方的两个人通过互联网来进行通信,而且能够保证通信双方身份的真实性以及相互交换信息的安全性。IC卡和PKI之间的联系在于密钥及相关数字证书的存储,卡片载有持卡人的数字证书和私有密钥,可通过PKI技术实现身份识别和信息加密传输。这种技术对于实现智能卡的安全交易提供了更多的选择。具体方法如下:
(1)通过烧断熔丝,使测试功能不可再激活;
(2)高/低电压的检测;
(3)低时钟工作频率的检测;
(4)防止地址和数据总线的截取;
(5)逻辑实施对物理存储器的保护;
(6)总线和存储器的物理保护层等。
2 储值IC卡票的安全保证
AFC系统的储值票使用符合ISO 14443TYPE A标准的Mifare@ 1 IC卡。Mifare 1 IC智能(射频)卡的核心是Philips公司的Mifare 1 ICS50(一01,一02,一03,一04)系列微模块(微晶片)。它具有先进的数据通信加密和双向验证密码系统;卡片制造时具有唯一的卡片系列号;卡片上内建8K EEPROM存储容量并划分为16个扇区,每个扇区划分为4个数据存储块,每个扇区可由多种方式的密码管理;卡片上还内建有增值/减值的专项的数学运算电路,具有防重叠功能,模块与卡片通信时数据加密,每个扇区设有3套密码及其认证和密码存储器。
Mifare 1卡认证过程是:由Mifare 1卡片向读写器发送一个随机数据RB;读写器收到RB后向Mifare 1卡片发送一个令牌数据TOKEN AB,其中包含了读写器发出的一个随机数据RA;Mifare 1卡片收到TOKEN AB 后,对TOKENAB的加密部分进行解密,并校验第一次由(A)环中Mifare 1卡片发出去的随机数RB是否与(B)环中接收到的TOKEN AB中的RB相一致; 如果(C)环校验是正确的,则Mifare 1卡片向读写器发送令牌TOKEN BA给读写器;读写器收到令牌TOKEN BA后将对令牌TOKEN BA中的RB(随机数)进行解密,并校验第一次由(B)环中读写器发出去的随机数RA是否与(D)环中接收到的TOKEN BA中的RA相一致。如果上述的每一个环节都能正确通过验证,则读写器将对通过认证的卡片上的这个扇区进行下一步的操作。同样,卡片中的其他扇区由于有各自的密码,想对其进行进一步的操作,也必须完成上述的认证过程。每个扇区都通过认证,整个过程才算完成。认证过程中的任何一环出现差错,整个认证将告失败,必须重新开始。由于密码的变化极其复杂,靠猜测密码打开卡片上的一个扇区的可能性几乎为零。上述过程充分地说明Mifare 1卡片的高度安全性与保密性。
Mifare 1卡片的存储容量为8192 BIT X 1位字长,采用EEPROM作为存储介质,整个结构划分为16个扇区,编为扇区0~15,每个扇区有4个块,每个块有16个字节,每个扇区的块3(即第4块)包含了该扇区的密码A(6个字节)、存取控制(4个字节)、密码B(6个字节),是一个特殊的块。其余三个块是一般的数据块。但扇区0的块0是特殊的,是厂商代码,已固化,不可改写。
在对Mifare 1卡进行读写时,相应的软件操作也同样为卡片的安全性提供了保证。如在读取Mifare 1卡片上的数据之前,必须证明它是被允许的,这个过程叫做认证操作。可通过选择秘密存储在MCM中的RAM的密码集中的一组密码来进行认证而实现。卡片存储器的每一个块都有指定的存取条件,这些存取条件根据密码A或B(它们对整个扇区始终有效)而定。MCM能够存储3个密码集KEYSET0,KEYSET1,KEYSET2,每一个KEYSET又包含了KEYA及KEYB等,以存取最高达32Kbit内存容量的MIFARE卡片。用户必须在KEYSTACON(0B H地址)寄存器中指定一套密码。要想对此种IC卡进行攻击的话,必须要知道AFC Mifare 1 IC卡的数据存储结构和密钥,但这都不是很容易的。
3 单程IC卡票的安全保证
对于符合ISO14443 TYPE A标准的Mifar Ultra Light IC卡作为轨道交通单程票使用是足够安全的。用UID+密钥防止伪造,用动态MAC锁定防止篡改,用密钥系统保证密钥安全。利用Mifare Ultra light卡的全球唯一序列号(该序列号是烧制在卡片的EPROM上的,是不可修改的)与密钥通过运算产生一个MAC,每次交易对MAC进行认证。产生MAC的密钥保存在SAM上,这样想要克隆一张车票就需要克隆其全球唯一序列号,并得到保存在sAM上的密钥,同时还要知道计算方法。所以能得到MAC的机会几乎是不存在的。这样只要通过密钥系统保护主密钥不流失就可以保证车票不被伪造。采用动态MAC方式,即SAM卡计算,动态MAC与CRC相结合的方法来实现关键数据不被篡改。动态MAC计算就是在交互过程中加入SAM卡作为计算主体(密钥系统由主密钥卡多级分散后得到交易密钥卡SAM卡,SAM 卡通过密钥分散因子以及三重DEA算法保证其安全性),所有数据作为运算项目,每次对票操作完成后由SAM产生一个MAC,并写入票中,下次操作票时首先验证MAC是否可以通过。由于sAM可以认为是安全的,MAC的计算可以放在SAM中,这样可以认为MAC是安全。参与MAC计算的数据包括车票的唯一编号、车票的金额以及CRC结果码。这样如果金额被修改,下次就无法通过MAC计算。但是SAM送人MAC的数据量是有限的,并且数据多了速度会受到比较大的影响,所以增加二级安全保护措施,即CRC运算。当车票操作完成时,对车票内的所有数据(除MAC码和CRC结果码)进行CRC运算,并得到CRC结果码,之后将CRC码也作为MAC运算的数据项目之一送人SAM卡进行运算。这样票中的数据项目一旦被非法修改,CRC不会被通过,可以发现。如果CRC算法被攻击或伪造,MAC也无法通过,因为MAC由SAM计算得到,SAM是由密钥系统保证安全的,故攻击者无法篡改票中的数据。
由于Ultra Light可直接修改数据内容,所以无法防止车票中的数据被读取,但是SAM中的数据及流程是无法读取的,而且系统泄露个别车票的数据内容不会带来特别风险,如果攻击者分析得到车票的数据结构,但有动态MAC作安全保证,也无法获得非法利益,所以可以不采用特别的保护措施。
作者简介:魏辉(1969- ),男,工程师,北京市远达建设监理有限责任公司,主要从事轨道交通AFC、ACC、TCC、OCC等的监督及监理工作。