非接触式IC卡由于有读写速度快、存储量大、数据可改写等特点,在小额支付等方面得到了广泛应用,我国第二代居民身份截至2008年12月已发了9亿多张,上海公交一卡通发放了3000万张,北京公交卡发放了约2500万张,2008年北京奥运会注册证件、和门票也采用了非接触式IC卡技术。 在很多非接触式IC卡技术应用项目中,我们看到有这样一个特点:对于具有重大影响的重大应用项目,国家相关单位采用进行专项产品和安全设计的策略,而对于一般项目,更多的是采购成熟产品。国外产品在非接触式IC卡技术方面相对比较成熟,因而,在国内一些普遍应用方面目前很多用户都选定了国外产品。在这样的应用环境下,用户使用中,更多的采用电子标签内的芯片序列号,作为唯一标识来应用。 国外产品出现问题时候,我们的安全就受到影响,甚至是不安全。由于各种各样原因,芯片序列号不是唯一的,这样就造成甲应用的卡可能可以在乙应用中使用,如果我们只采用芯片序列号作为唯一标识在业务系统中使用,采用通信方式一致的读卡器,读出芯片序列号,可以伪造相同芯片序列号的卡。在我们使用非接触式IC卡方面,非常关注安全性。如果在安全上出现问题,仅仅作为小额支付应用来讲,给支付者和商家都会带来经济损失。而对于门禁应用,特别是对于国家党政军重要部门和重要场所的门禁系统,如果由于卡的不安全性会给社会不法分子造成破坏机会,作为票证应用,安全性问题,可能扰乱整个秩序,甚至会给恐怖分子造成可乘之机,更不要说在管理应用中如果发现安全事故,可能会造成张冠李戴的情况。因此,在我们充分享受非接触式IC卡技术带来便利的同时,更应该认真对待它的安全问题。 在身份识别、门禁、票证等应用中,作为信息载体,其安全要素主要体现在以下几方面:真实性、完整性、机密性。所谓真实性,就是信息是授权机构制作和签发的;完整性就是说信息没被篡改,机密性说明信息是授权使用的。围绕这三个要素,证件防伪方面主要目标是以下两点:一个防仿造,防止未经授权制作;防变造,防止未经授权修改卡中的信息。防伪技术主要采用以下两方面技术:一个物理防伪技术,一个数字防伪技术,采用化学、光学等手段的防伪技术一般称之为物理防伪技术,采用数字技术或者密码防伪技术的手段称之为数字防伪技术,数字防伪技术主要针对芯片内部存储的信息提供防伪。 防伪关键技术探讨
第一应该首先编制一套完整的安全防伪体系,这样一套安全防伪体系可以包括物理防伪措施和数字防伪措施,如果我们采用数字防伪信息,数字防伪技术当中卡内芯片不单单是某一个好的算法或者某一张卡就解决整个安全问题,实际上不是这样的,我们在设计安全防伪体系时候应该考虑我们把提供的安全服务贯穿在整个生产服务过程中,包括卡的生产、卡的制作、卡的使用等全过程。应该选择具有自主安全的芯片产品,这样的产品首先自主设计,有高安全的防伪算法和安全机制。根据我们的业务需求,可以选择满足使用要求的适当的逻辑架构的芯片,比如CPU架构芯片,CPU架构芯片是硬件非常优化的架构形式,CPU架构芯片不等于安全,安全实际上是一套完整的体系,如果我们设想,芯片当中如果算法有限,安全机制是不完整的,协议是有缺陷的,这样会造成安全隐患,采用好的安全防伪技术才是真正安全的。在安全防伪关键技术方面有需要考虑几个原则:应该针对应用目标、发放量、等业务需求而设计的,是封闭的,还是开放的;是唯一的还是多应用,要根据各种因素设计防伪的安全机制、防伪算法。安全防伪系统仅仅为业务系统提供安全服务,而不应成为业务系统运行的瓶颈。安全防伪系统会占用系统资源,会有一定成本,在设计当中应该注意一个好的安全防伪技术应该是体系完整的。 关于成本问题,要想安全,必须付出成本,一般来讲安全级别越高成本越高,因为要增加提供安全防伪服务的设备,在系统运行当中,要建立系统运行体制,因此,应该针对实际安全目标量体裁衣,选择适度的产品。在认证当中,不能只简单的使用芯片序列号,由于种种原因,新编序列号不全是唯一的,因此,我们建议在非接触式IC卡技术的应用当中,应该增加身份认证技术,只有通过证实对方身份合法后,才允许使用。 对于多应用环境,建议使用访问权限控制技术。对于希望存储在芯片内的数据不被非法修改,建议采用数据完整性保护技术。可防止数据被未经授权修改,或者是数据被修改后,可发现数据是否被授权修改。在算法协议中,如果采用密码技术的数字防伪技术,应注意选用高强度算法,使其不易被破解。读写机具与卡进行数据交换时,协议设计的安全性也应引起重视,如果不重视安全性,可能会带来安全上的隐患。
目前对读写器与IC卡传输信息的保护主要有两种方式:认证传输方式,将在读写器与IC卡之间传送的信息加上相应加密算法及加密密钥传送信息,得到的密文附加在明文信息尾部传输给接收端;加密传输方式,对所有传送信息进行加密后再进行传送,使信息本身具有保密性,不易被破译。
通常把加密系统所采用的基本工作方式叫作密码体制。一个密码体制由两个要素组成:即加密算法和密钥。算法是一些公式或法则,密钥是公式或法则的参数,公式或法则一般是公开的。密钥又分对称与非对称两种方式。 1).对称加密:该加密方式卡片和读卡设备采用同一个密钥,其安全性主要建立在密钥长度和商家对密钥的保密上; 2).非对称加密:由公钥和私钥组成,公钥在信号传输中出现,为可公开密钥;私钥不在信号传输中出现,公钥由私钥运算产生,但从公钥无法推出私钥。
从目前IC卡系统大部分使用的技术中可以看出几个问题:卡片丢失或被窃,冒充合法用户;用伪造的或空白卡非法复制数据;使用系统外的IC卡读写设备,对合法卡上的数据进行修改,如增加存款数额,改变操作级别等;在IC卡交易过程中,用正常卡完成身份认证后,中途变换IC卡,从而使卡上存储的数据与系统不一致;在IC卡读写操作中,对接口设备与IC卡通信时所作交换的信息流进行截听、修改,甚至插入非法信息;密钥由商家设计产品时设计,如设计人员有心透露;同一型号产品采用同一个密钥,破解者只要破解出一张卡的密钥就可推理出这一型号的卡;大部份卡使用硬件加密,一旦密钥被破解,难以补救,一般做法都是更换卡片,成本极高。
近期解决方案有——1).序列号加扰:控制设备中增加第二重认证,如绑定IC卡的出厂序列号,因为被破解的是扇区的密码,卡本身并没有被破解,因此可以将扇区内的数据和序列号做关联,并且采用一定的算法来干扰直接读出序列号;2).扇区加扰:增加第三重加密,扇区内数据和序列号+扇区关联,并采用一定的算法来干扰直接读出序列号+扇区;3).动态加扰:增加第四重加密,扇区内的数据和随机数关联,并且采用一定的算法来自动生成随机数,随机数的范围越大,被破解的可能性就越小。
远期解决方案有——1).采用新一代MifarePlus、Desfire等加密性更好的逻辑卡;2).采用CPU卡,增强运算能力,加强密钥等安全算法能力;3).采用灵活的安全算法,用户可以根据自己的需要设置不同的算法和密钥。
除上述措施外,IC卡芯片提供商应该从安全和应用的角度,研发出更多、更便宜、更易于推广的IC卡芯片技术。设备提供商应该在应用的过程中加强对算法的研究。
上述各种技术都是针对不同应用而实施的,各种技术如何应用,需要根据具体情况进行具体分析,我们不主张把所有防伪技术都堆砌在一起的应用,在防伪技术方案选择上,我们建议应做到安全自主和安全可控。IC卡只是厂家提供的一个数据传输平台,要想保证安全性,应用提供方的算法是关键。如果该供应商没有研发能力,只是做IC卡芯片提供商的简单应用,那么安全性当然大打折扣。要想提高安全性,当然是要考虑数据被读出的可能,那么设备生产商需要花相当长时间去研究数据保密。 |