非接触CPU卡与逻辑加密卡
1、逻辑加密存储卡:在非加密存储卡的基础上增加了加密逻辑电路,加密逻辑电路通过校验密码方式来保护卡内的数据对于外部访问是否开放,但只是低层次的安全保护,无法防范恶意性的攻击。
早期投入应用的非接触IC卡技术多为逻辑加密卡,比如最为著名的Philips公司(现NXP)的Mifare1卡片。非接触逻辑加密卡技术以其低廉的成本,简明的交易流程,较简单的系统架构,迅速得到了用户的青睐,并得到了快速的应用和发展。据不完全统计,截至去年年底,国内各领域非接触逻辑加密卡的发卡量已经达到数亿张。
随着非接触逻辑加密卡不断应用的过程,非接触逻辑加密卡技术的不足之处也日益暴露,难以满足更高的安全性和更复杂的多应用的需求。特别是2008年10月,互联网上公布了破解MIFARECLASSICIC芯片(以下简称M1芯片)密码的方法,不法分子利用这种方法可以很低的经济成本对采用该芯片的各类“一卡通”、门禁卡进行非法充值或复制,带来很大的社会安全隐患。因此,非接触CPU卡智能卡技术正成为一种技术上更新换代的选择。
2、非接触CPU卡:也称智能卡,卡内的集成电路中带有微处理器CPU、存储单元(包括随机存储器RAM、程序存储器ROM(FLASH)、用户数据存储器EEPROM)以及芯片操作系统COS。装有COS的CPU卡相当于一台微型计算机,不仅具有数据存储功能,同时具有命令处理和数据安全保护等功能。
(1)、非接触CPU卡的特点(与存储器卡相比较)芯片和COS的安全技术为CPU卡提供了双重的安全保证自带操作系统的CPU卡对计算机网络系统要求较低,可实现脱机操作;可实现真正意义上的一卡多应用,每个应用之间相互独立,并受控于各自的密钥管理系统。存储容量大,可提供1K-64K字节的数据存储。
(2)、独立的保密模块--使用相应的实体SAM卡密钥实现加密、解密以及交易处理,从而完成与用户卡之间的安全认证。
非接触CPU卡安全系统与逻辑加密系统的比较
密钥管理系统(KeyManagementSystem),也简称KMS,是IC项目安全的核心。如何进行密钥的安全管理,贯穿着IC卡应用的整个生命周期。
1、非接触逻辑加密卡的安全认证依赖于每个扇区独立的KEYA和KEYB的校验,可以通过扇区控制字对KEYA和KEYB的不同安全组合,实现扇区数据的读写安全控制。非接触逻辑加密卡的个人化也比较简单,主要包括数据和各扇区KEYA、KEYB的更新,在期间所有敏感数据包括KEYA和KEYB都是直接以明文的形式更新。
由于KEYA和KEYB的校验机制,只能解决卡片对终端的认证,而无法解决终端对卡片的认证,即我们俗称的“伪卡”的风险。
非接触逻辑加密卡,即密钥就是一个预先设定的固定密码,无论用什么方法计算密钥,最后就一定要和原先写入的固定密码一致,就可以对被保护的数据进行读写操作。因此无论是一卡一密的系统还是统一密码的系统,经过破解就可以实现对非接触逻辑加密卡的解密。很多人认为只要是采用了一卡一密、实时在线系统或非接触逻辑加密卡的ID号就能避免密钥被解密,其实,非接触逻辑加密卡被解密就意味着M1卡可以被复制,使用在线系统尽可以避免被非法充值,但是不能保证非法消费,即复制一张一样ID号的M1卡,就可以进行非法消费。现在的技术使用FPGA就可以完全复制。基于这个原理,M1的门禁卡也是不安全的。目前国内80%的门禁产品均是采用原始IC卡的UID号或ID卡的ID号去做门禁卡,根本没有去进行加密认证或开发专用的密钥,其安全隐患远远比Mifare卡的破解更危险,非法破解的人士只需采用的是专业的技术手段就可以完成破解过程,导致目前国内大多数门禁产品都不具备安全性原因之一,是因为早期门禁产品的设计理论是从国外引进过来的,国内大部分厂家长期以来延用国外做法,采用ID和IC卡的只读特性进行身份识别使用,很少关注卡与机具间的加密认证,缺少钥匙体系的设计;而ID卡是很容易可复制的载体,导致所有的门禁很容易几乎可以在瞬间被破解复制;这才是我们国内安防市场最大的灾难。
2、非接触CPU卡智能卡与非接触逻辑加密卡相比,拥有独立的CPU处理器和芯片操作系统,所以可以更灵活的支持各种不同的应用需求,更安全的设计交易流程。但同时,与非接触逻辑加密卡系统相比,非接触CPU卡智能卡的系统显得更为复杂,需要进行更多的系统改造,比如密钥管理、交易流程、PSAM卡以及卡片个人化等。密钥通常分为充值密钥(ISAM卡),减值密钥(PSAM卡),身份认证密钥(SAM卡)。
非接触CPU卡智能卡可以通过内外部认证的机制,例如像建设部定义的电子钱包的交易流程,高可靠的满足不同的业务流程对安全和密钥管理的需求。对电子钱包圈存可以使用圈存密钥,消费可以使用消费密钥,清算可以使用TAC密钥,更新数据可以使用卡片应用维护密钥,卡片个人化过程中可以使用卡片传输密钥、卡片主控密钥、应用主控密钥等,真正做到一钥一用。
非接触CPU卡加密算法和随机数发生器与安装在读写设备中的密钥认证卡(SAM卡)相互发送认证的随机数,可以实现以下功能:
(1)通过终端设备上SAM卡实现对卡的认证。
(2)非接触CPU卡与终端设备上的SAM卡的相互认证,实现对卡终端的认证。
(3)通过ISAM卡对非接触CPU卡进行充值操作,实现安全的储值。
(4)通过PSAM卡对非接触CPU卡进行减值操作,实现安全的扣款。
(5)在终端设备与非接触CPU卡中传输的数据是加密传输。
(6)通过对非接触CPU卡发送给SAM卡的随机数MAC1,SAM卡发送给非接触CPU的随机数MAC2和由非接触CPU卡返回的随机数TAC,可以实现数据传输验证的计算。而MAC1、MAC2和TAC就是同一张非接触CPU卡每次传输的过程中都是不同的,因此无法使用空中接收的办法来破解非接触CPU卡的密钥。
3、非接触CPU卡智能卡,可以使用密钥版本的机制,即对于不同批次的用户卡,使用不同版本的密钥在系统中并存使用,达到密钥到期自然淘汰过渡的目的,逐步更替系统中所使用的密钥,防止系统长期使用带来的安全风险。
非接触CPU卡智能卡,还可以使用密钥索引的机制,即对于发行的用户卡,同时支持多组索引的密钥,假如当前使用的密钥被泄漏或存在安全隐患的时候,系统可以紧急激活另一组索引的密钥,而不用回收和更换用户手上的卡片。
非接触CPU卡智能卡系统中,PSAM卡通常用来计算和校验消费交易过程中出现的MAC码,同时在计算的过程中,交易时间、交易金额、交易类型等交易信息也都参与运算,使得交易更安全更可靠。某些情况下,非接触CPU卡智能卡系统中的PSAM卡还可以用来支持安全报文更新数据时MAC的计算,以及交易TAC的验证。因此,与非接触逻辑加密卡系统相比,非接触CPU卡智能卡系统中的PSAM卡支持更广泛的功能,也更为灵活、安全和复杂。通常非接触CPU卡智能卡系统的PSAM卡还支持不同的密钥版本。
而非接触CPU卡智能卡的个人化通常可以分为卡片洗卡和卡片个人化两个独立的流程,前者创建卡片文件结构,后者更新个人化数据,并注入相应的密钥。在信息更新和密钥注入的过程中,通常都采用安全报文的方式,保证数据和密钥更新的正确性和安全性。而且密钥注入的次序和相互保护的依存关系,也充分体现了密钥的安全设计,比如卡片主控密钥通常被用来保护导入应用主控密钥,应用主控密钥通常被用来保护导入其他应用密钥,比如消费密钥等。
4、非接触CPU卡的密钥实现方式:
(1)硬密钥:即在终端机具中安装SAM卡座,所有的认证都是由安装在SAM卡座中的SAM卡进行运算的,这样在终端机具维修时,只要取出SAM卡座中的SAM卡,这台终端机具就是空的了。所以所有的银行设备都采用SAM卡的认证模式。
(2)软密钥:终端机具中没有SAM卡座,这个密钥的运算实际上是由终端机具完成的,这样客户的密钥就等于存在终端机具中,厂家拿回终端机具维修时,极易造成密钥流失。
总结以上所述,M1卡即逻辑加密卡采用的是固定密码,而采用非接触CPU卡智能卡采用的是动态密码,并且是一用一密即同一张非接触CPU卡智能卡,每刷一次卡的认证密码都不相同,这种智能化的认证方式使得系统的安全性得到提高,特别是当交易双方在完成交易之后,收单方有可能擅自修改或伪造交易流水来达到获利目的,为了防止终端伪造交易流水,系统要求卡片能够产生由交易要素生成的交易验证码,在后台清算时来对交易的有效性进行验证。非接触式CPU卡则可以在交易结束时产生个交易验证码TAC,用来防止伪造交易。逻辑加密卡由于不具有运算能力,就不可能产生交易的验证码。
所以,从安全性的角度来看,从IC卡逻辑加密卡升级到CPU卡是一种必然的选择。