引言
电子标签(RFID)应用系统由电子标签、读写器、中间件及相应的应用系统组成,通常使用低频、高频甚至超高频实现电子标签与读写器的通信。与传统条形码依靠光电效应不同的是,电子标签在读写器的感应磁场内,依靠电磁感应为反馈信号提供能量,完成向读写器发送标签内信息过程,从而实现无须人工操作的物品信息自动化处理功能。RFID技术的快速读写、抗污染能力和耐久性,信息识别的穿透性和无障碍,多应用支持等等的突出能力使这项技术应用日益广泛,而RFID技术与条码识别技术、互联网、通信、红外感应、全球定位、激光扫描、传感网络等信息技术融合,能够构筑一个信息无所不在的物体网络环境(物联网) ,并渗透到每个人的生活当中。因此这项技术正逐步发展成为后条码时代科技发展与应用的先锋,被认为是本世纪最有发展前途的信息技术之一,得到全球业界的高度重视。
随着RFID技术应用的发展, RFID技术在安全领域的应用潜力越发显现:它使我们可以在极短的时间内就能实现对电子标签身份的数字安全认证,并对通过身份安全认证的标签实施信息自动采集、交换及重要数据的加减操作,从而实现电子钱包功能或对附着有安全电子标签物品的安全防伪功能。因而RFID技术与我们之间的关系也越来越密切:乘车要用它,开车要用它,上班要用它,出门要用它,未来出国用的护照也要用它以后买东西可能也会很普遍地用它, RFID将与网路一样与我们的生活息息相关。相比RFID 技术在安全领域诱人的应用前景, RFID技术应用的安全性也越来越被大家所担心,关于电子标签存在安全漏洞的话题越来越多地出现并成为业界探讨的热点。RFID技术由于其固有的先天特性,如: RFID技术采用无线信号进行无接触的双向信息传输,在使用方便和灵活的同时,增加了信息被窃取的风险,而电子标签容量小,在硬件技术上难以给它们提供充分的保护;与有线信道不同,无线信道是一个公开的传输平台,任何人只要拥有相应频段的接收设备,就可以对无线信道进行监听,进而对RFID应用系统进行蓄意攻击。以上种种情况,都给RFID技术的安全应用造成了障碍。
1 RFID应用系统面临安全威胁
RFID应用系统所遇到的安全威胁,要比通常的计算机网络安全问题复杂。事实上, RFID应用系统前端的无线装置和传输协议是系统处理信息的依托,是整个系统的基础,其除了具有无线系统所通用的安全威胁之外,标签也有特定的安全问题。通过非法授权,可以轻易获得RFID应用系统信息的原因在于:
1) 电子标签本身的访问缺陷:由于成本所限,电子标签本身很难具备信息安全保障能力,非法用户可以利用合法的读写器或者自构一个读写器直接与标签进行通信,就能很容易地获取标签内所存数据。
2) 通信链路上的安全问题:RFID应用系统的数据通信链路是无线通信链路,传输的信号本身是开放的。通信链路通常遭到的攻击包括:截取通信数据、业务拒绝式攻击(发射干扰信号来堵塞通信链路) 、伪造标签数据信息等。
3) 应用系统内部的安全问题:在应用系统中,除了中间件被用来完成数据的遴选、时间过滤和管理之外,只能提供用户业务接口,而没有机制保障其内部信息安全。如果将应用系统作为身份识别或秘密载体来使用,由于有巨大经济或政治利益的诱惑存在,应用系统将面对非法访问、跟踪、窃听、伪造、物理攻击、数据演绎、恶意破坏等安全威胁。
2007年底,德国学者Henryk Plotz与美国维吉尼亚大学博士研究生Karsten Nohl利用逆向工程手段,从硬体上破解了Mifare1 (以下简称M1) 芯片所采用的逻辑加密算法[ 1 ] ,并于2008年3月在相关网站上对其破解方法做出披露[ 2, 3 ]。荷兰政府则在2008年2 月发出了相关警告, 称NXP 的MIFARE ClassicRFID芯片可相对容易地被破解。NXP使用Mifare安全算法的M1芯片是一种非接触式逻辑加密卡芯片,主要用于门禁系统访问控制以及一些小额支付。由于其制造成本相对较小(具有处理单元的非接触式CPU卡的制造成本是它的3 - 5倍) ,所以获得了广泛的市场应用,目前已有数十亿张卡的应用覆盖全球范围,因而M1芯片的安全算法被破解对全球范围内的大部分RFID应用系统的信息安全造成了极大的安全隐患。该卡在我国公交、门禁、票证等众多领域中的应用量也已达到1. 5亿张,因而引起我国相关部门的高度重视,并已制定了相关的防范措施以消除该安全隐患。
2 Mifare1芯片安全漏洞
M1芯片的安全漏洞主要存在于:使用该芯片卡片的身份安全认证实质上是卡片与基站芯片之间的认证。而常用的RC500等基站芯片的接口和通信协议是公开的,已经为业界广为熟知。在基站芯片与M1 卡片进行身份认证前,需要通过LoadKey命令将M1卡片内的密码上传并装载到基站芯片中。而这一过程是由终端设备(如读卡器) 主控单片机传送给RC500的一个明文写入的过程,并且单片机对RC500的命令传输是非加密的。这样,一个使用过RC500,并对单片机技术稍微了解的技术人员就能够轻易地通过截获单片机与RC500之间的通信数据来获取M1卡的认证密钥,从而实现对整个应用系统一代密码算法的破解。
在M1卡片安全问题暴露后,有些公司公开宣称已经有了较好的解决办法,其所谓的解决问题法宝就是“一卡一密”[ 5 ] :每一张卡片的每一个扇区密钥都不相同,并在读卡器中安装SAM卡(CPU卡) ,通过SAM卡计算卡片相关认证密钥实现一卡一密或一扇区一密( SAM卡装载相关应用系统的应用根密钥,根据M1卡的唯一序列号分散出每一张卡片的应用认证子密钥)的认证,从而防止因某一张卡片被破解而使整个系统的应用根密钥被破解。这种技术方案在M1卡密码认证密钥被破解之前就已经出现。那么,在读卡器中安装SAM卡,通过SAM卡计算卡片密钥实现一卡(或一扇区)一密是否就安全了呢?一卡一密(或一扇区一密)不但没有增加系统的安全,反而更加大了应用系统的安全漏洞。M1 卡通过SAM卡实现一卡一密(或一扇区一密)的应用密钥,本质上是根据从卡芯片上获取的公开信息(如卡芯片唯一的出厂序号等)以及SAM卡内的应用根密钥,通过相关的加密算法(如3DES加解密算法)发散(计算)获得。但是发散所得的应用密钥需通过终端单片机明文传送给RC500芯片才能完成对M1卡合法性的认证。这样,黑客只要获得一张SAM卡,就能够通过它获得所有应用卡片的所有应用密钥。这种破解,即使采用黑名单机制也难以避免因欺诈(伪造应用卡片)造成的巨大损失,因为非接触式卡信息的前端采集机制与后台黑名单删选处理存在延迟,黑名单机制是一种事后防范机制。在M1卡小额消费日益普及的今天,盗窃者只需将伪卡使用一次,就足以获得比仿造一张伪卡成本高得多的收益,如果M1卡被用于重要门禁系统,其造成的危害性将不言而喻。
3 使用我国SM7密码算法消除安全漏洞
在M1芯片被相关研究人员破解后, RFID业界对M1芯片的安全漏洞、RFID应用系统所存在的安全隐患及其应对策略有了更进一步的研究与思考。而随着我国相关部门对信息安全的关注程度越来越高, M1芯片已被成功破解的消息在2009年初引起了我国相关部门的密切关注,并得到了大量媒体的广泛报道,使我国众多RFID应用企业逐步重视并投入大量资源着手解决RFID应用系统所存在的安全隐患。
2007年,在上海华申智能卡应用系统有限公司参与上海2010年世博会电子门票安全规范制定时,就对M1卡存在的安全隐患(密钥长度、强度不足,身份认证机制有缺陷)提出了我们自己的看法,并在国家密码管理局的指导下,研究使用我国自主密码算法( SM1、SM2、SM7)实现RFID应用系统安全的可能性,同时制定了基于我国自主密码算法( SM1、SM2、SM7 ) 的RFID票证(非接触式逻辑加密卡)应用系统安全解决方案。安全方案通过对RFID电子票证应用系统的数据完整性、合法性验证、访问权限控制、应用系统通信信道安全等方面采取完整的密码安全措施,保证整个电子票证应用系统的信息安全。