目前,非接触IC卡的安全性问题已经成为IC卡行业最热门的话题之一。本文将从介绍非接触IC卡的种类以及其在国内外的应用情况入手,进而分析Mifare的安全性问题,最后向Mifare用户介绍应对之策。
非接触IC卡
非接触IC卡可分为两大类:非接触逻辑加密卡(又称“非接触储存卡”)和非接触智能卡(又称“非接触CPU卡”)。
非接触逻辑加密卡由射频电路、普通加密模块和存储器等组成,由于它使用方便、成本低廉,同时也具备一定的安全功能,因此目前它是市场占有率最高的非接触IC卡。以NXP半导体(原Philips半导体)的Mifare Classic卡为例,在其推出至今的十多年里,全球出货量超过10亿张。在中国,Mifare也占据了非接触IC卡市场的领导地位,特别在国内的公交、高速、校园等领域,其几乎达到了100%的市场份额。
非接触CPU卡(以下简称“CPU卡”)内置CPU和嵌入式操作系统,支持高强度硬件加密算法,金融等对安全性要求比较高的应用领域多规定必须使用CPU卡。虽然目前CPU卡市场占有率不太高,但随着其成本的逐步降低以及用户安全意识的加强,其出货量正逐年上升,在高端领域呈现逐步取代逻辑加密卡的趋势。
逻辑加密卡 VS. CPU卡,谁更安全?
虽然以Mifare为代表的非接触逻辑加密卡目前市场占有率占绝对优势,但近年来其所暴露出来的安全漏洞,已经使它的市场受到较大影响。同时,我们也认为这些安全事件也大大加速国内CPU卡的普及进程。据了解,攻击者对Mifare的攻击主要针对其两个弱点:伪随机数仅为16位,周期太短,攻击者很容易利用伪随机数的缺陷进行“重放攻击”;Mifare 48位密钥长度太短,而加密算法结构本身也太简单,加密函数缺陷明显,攻击者可以利用普通PC机在很短的时间内倒推出密钥,从而达到克隆合法卡的目的。
以上这些问题在CPU卡中是不存在的。CPU卡的随机数产生器比Mifare复杂得多,且往往需要通过第三方权威机构的随机数检测,如要通过国内银行卡检测中心的随机数检测就必须通过《NIST Special Publication 800-22》标准测试,这样就可以有效地防止攻击者利用随机数进行攻击。另外,CPU卡通常采用高强度的DES加密算法,该算法由IBM公司在1975年公开,后来被包括美国在内的政府、机构所使用,目前金融领域IC卡标准中所规定加密算法标准就是DES算法。多年来的实践证明,DES算法在对付强力攻击时是比较安全的。非接触CPU卡在DES算法实现过程中通常使用3条64位的密钥对数据进行三次加密,密钥长度为128位,这优于Mifare的加密方式。
如何应对Mifare的不安全?
从上面的介绍可以看到Mifare的安全性问题是真实存在的,因此笔者建议国内用户应当采取有效措施加以应对。
对已运行的项目来说,首先要完善管理和处罚(包括刑事)手段,对潜在攻击者进行震慑;其次,需要缩短系统中交易数据上传和分析处理时间,尽量做到实时处理;再次,终端设备需支持黑名单下载,并尽量增大黑名单容量和更新能力;最后,也是最根本的解决方法,即尽快向非接触CPU卡等高安全产品升级。
而对于新项目来说,建议直接采用非接触CPU卡等高安全产品,做到一步到位的安全应用。
目前包括复旦微电子公司在内的国内厂商已经具备自主设计研发非接触CPU卡的能力。由于复旦微电子公司等国内厂商介入CPU卡市场,CPU卡的使用成本也因此逐步降低,并将逐渐下降到一个理想的价格,过去唯一阻碍CPU卡市场推广的价格因素也会消除,因此选择国产高性价比的CPU卡将是用户应对Mifare带来的安全问题的最优选择。