摘要 在对非接触逻辑加密卡Mifare和非接触CPU卡比较的基础上,介绍我国自主研发的复旦FM1208非接触CPU卡的特点及性能,并给出读写FM1208卡硬件系统的配置及选型,以及软件设计的参考流程,为已经大量使用的Mifare卡的门禁、考勤、通道管理、消费以及公用事业等应用领域提供了良好的升级解决方案。
引言
随着非接触逻辑加密卡的不断应用,其技术的不足之处也日益暴露,难以满足更高的安全性和更复杂的多应用的需求。2008年,互联网上公布了破解Mifare Classic IC芯片(即M1芯片)密码的方法;德国研究员亨里克·普洛茨(Henryk Plotz)和弗吉尼亚大学计算机科学在读博士卡尔斯滕·诺尔(Karsten Nohl)成功地破解了恩智浦半导体的Mifare经典芯片的安全算法;德国 Virginia大学和荷兰 Radboud大学两个独立研究小组分别证实了Mifare芯片的易受攻击性,并发表了破解芯片加密算法的论文以及演示了实际操作芯片的破解过程。
破解事件公开后,荷兰内务部大臣特霍斯特在接受媒体采访时表示,多达10亿张IC卡中所使用的一项技术可轻易破解。此次破解*经过国内媒体的转载报道后,在我国引起了轩然大波,城市公用事业IC卡应用作为非接触式逻辑加密卡的应用大户,不得不让我们静下心来认真思考城市公用事业IC卡系统的安全问题及未来走向。如果掌握了破解技术,不法分子可以很低的经济成本对采用该芯片的各类“一卡通”、门禁卡进行非法充值或复制,这将带来很大的社会安全隐患。因此,非接触CPU智能卡技术正成为一种技术上更新换代的选择,用CPU卡替换逻辑加密卡的时代已到来。
1 非接触逻辑加密卡Mifare卡的安全性问题
Philips公司(现NXP)的Mifare 1卡片,在非接触卡应用领域占有80%的市场份额,是目前非接触智能卡的工业标准,也成为ISO14443A的工作草案。
Mifare的安全依赖于每个扇区独立的KEYA和KEYB的校验,可以通过扇区控制字对KEYA和KEYB的不同安全组合,实现扇区数据的读写安全控制。其个人化也比较简单,主要包括数据和各扇区KEYA、KEYB的更新,在其间所有敏感数据(包括KEYA和KEYB)都是直接以明文的形式更新的。
KEYA和KEYB的校验机制只能解决卡片对终端的,而无法解决终端对卡片的,即存在俗称为“伪卡”的风险。
Mifare的密钥就是一个预先设定的固定密码,无论用什么方法计算密钥,一定要和原先写入的固定密码一致,就可以对被保护的数据进行读写操作。 因此无论是一卡一密的系统还是统一密码的系统,经过破解都可以实现对非接触逻辑加密卡的解密。有种观点认为,只要是采用了一卡一密、实时在线系统,或非接触逻辑加密卡的ID号,就能避免密钥被解密。其实,非接触逻辑加密卡被解密就意味着M1卡可以被复制,使用在线系统尽管可以避免被非法充值,但是不能保证非法消费,即复制一张一样ID号的M1卡,就可以进行非法消费。现在的技术使用FPGA就可以完全复制。基于这个原理,Mifare的门禁卡也是不安全的。
2 非接触CPU卡的特点与优势
非接触CPU卡,也称智能卡,卡内的集成电路中带有微处理器CPU、存储单元(包括随机存储器RAM、程序存储器ROM(Flash)、用户数据存储器EEPROM)以及芯片操作系统COS。装有COS的CPU卡相当于一台微型计算机,不仅具有数据存储功能,同时具有命令处理和数据安全保护等功能。
非接触CPU智能卡与非接触逻辑加密卡相比,有以下特点:
① 芯片和COS的安全技术为CPU卡提供了双重的安全保证;
② 拥有独立的CPU处理器和芯片操作系统;
③ 对计算机网络系统要求较低,可实现脱机操作,可实现真正意义上的一卡多用,每个应用之间相互独立,并受控于各自的密钥管理系统;
④ 交易中自动保证数据的完整性(防拔);
⑤ 可以更灵活地支持各种不同的应用需求,更安全的设计交易流程;
⑥ 独立的保密模块——使用相应的实体SAM卡密钥实现加密、解密以及交易处理,从而完成与用户卡之间的安全。
非接触CPU智能卡的优势是:
① 先进性。CPU卡可以作为银行的金融卡使用,代表当前IC卡应用的安全等级,正成为IC卡应用中的主流产品。
② 规范性。支持符合ISO78163标准的T=0、T=1通信协议,符合《中国金融集成电路(IC)卡规范》、《中国金融集成电路(IC)卡应用规范》,支持符合银行规范的电子钱包、电子存折功能。
③ 兼容性。由于有中国人民银行的统一规范及严格检测,CPU卡具有很好的兼容性、安全性。芯片和COS的安全技术为CPU卡提供了双重的安全保证;支持DES、Triple DES等加密算法,支持线路加密、线路保密功能,防止通信数据被非法窃取或篡改,使用过程密钥实现加密、解密。
④ 可扩展性。卡片支持多种容量选择,如2 KB、4 KB、8 KB、16 KB、32 KB的EEPROM空间。CPU卡从卡结构到卡容量可以很容易扩展到多种应用,可以与银行联合,实现真正意义上的一卡多用。
⑤ 安全性。与逻辑加密卡相比,由于智能卡内部具有CPU芯片,在具有数据判断能力的同时,也具备了数据分析处理能力,因此智能卡可以随时区分合法和非法读写设备,并且由于有了CPU芯片,具备数据运算能力,还可以对数据进行加密解密处理,因此具有非常高的安全性。
CPU卡是在将EEPROM芯片封装在卡片上的同时,将微处理器芯片(CPU)也封装在里面。这样,EEPROM的数据接口在任何情况下都不会与IC卡的对外数据线相连接。外部读写设备只能通过CPU与IC卡内的EEPROM进行数据交换,在任何情况下都不能再访问到EEPROM中的任何一个单元。
外部读写设备在与智能卡进行数据交换时,首先必须发指令给CPU,由CPU根据其内部的ROM中存储的卡片操作系统(COS)对指令进行解释,并进行分析判断。在确认读写设备的合法性后,允许外部读写设备与智能卡建立连接,之后的数据操作仍然要由外部读写设备发出相应的指令,并用CPU对指令进行正确解释,允许外部读写设备和智能卡中的数据存储区(RAM)进行数据交换。数据交换成功后,在CPU的控制下,利用智能卡中的内部数据总线,再将内部RAM中的数据与EEPROM中的数据进行交换。这样就实现了对智能卡EEPROM中数据的安全保护,因此具有非常高的安全性。
3 非接触CPU卡FM1208的特点与性能
FM1208是复旦微电子股份有限公司设计的单界面非接触CPU卡芯片,产品支持ISO14443A协议,硬件DES协处理器,内置8 KB的EEPROM。FM1208的特色是能够兼容现有广泛使用的非接触逻辑加密卡,将非接触逻辑加密卡(Mifare算法)和符合银行标准的接触式CPU卡的功能合二为一。
特点:通信协议为ISO14443A;MCU指令兼容8051;支持106 kbps数据传输速率;TripleDES协处理器;程序存储器32K×8位ROM;数据存储器8K×8位EEPROM;256×8位iRAM;384×8位xRAM;低压检测复位;高低频检测复位;EEPROM满足10万次擦写指标和10年数据保存指标。
FM1208典型处理时间:
◆ 识别一张卡时间为3 ms(包括复位应答和防冲突);
◆ EEPROM擦写时间为2.4 ms;
◆ 典型交易过程<350 ms。
FM1208的安全机制:
◆ 有反电源分析模块;
◆ 有高低频检测复位模块,芯片工作频率超出检测范围自动复位;
◆ ROM反逆向提取,存储器数据加密。
FM1208功能框图如图1所示。
4 非接触CPU卡FM1208的COS
由于CPU卡具有很高的安全性及一张卡支持多种应用的特点,所以IC卡家族中CPU卡的使用范围正日益扩大。类似一台计算机,CPU卡内也有CPU、存储器和输入输出接口,所以在应用中CPU卡也必然需要操作系统。上海复旦微电子股份有限公司成功地开发了自主版权的CPU卡操作系统——FMCOS(FMSH Card Operating System)。该操作系统符合ISO7816系列标准及《中国金融集成电路(IC)卡规范》,适用于保险、医疗保健、社会保障、公共事业收费、安全控制、证件、交通运输等诸多应用领域,特别是在金融领域。
图1 FM1208功能框图
FMCOS详细规定了电子钱包、电子存折和磁条卡功能(Easy Entry)3种基本应用。
FMCOS特点如下:
① 支持Single DES、Triple DES算法,且可自动根据密钥的长度选择Single DES、Triple DES算法。
② 支持线路加密、线路保护功能,防止通信数据被非法窃取或篡改。
③ 支持在一张卡上实现多个不同的应用:可建立三级目录。
④ 支持电子钱包功能,钱包大小可由用户自行设定。
⑤ 支持多种文件类型,包括二进制文件、定长记录文件、变长记录文件、循环文件、钱包文件。
⑥ 支持ISO78163:T=0(字符传送)通信协议。
⑦ 满足银行标准:符合《中国金融集成电路(IC)卡规范》。
⑧ 防插拔功能:交易处理过程中非正常拔出的卡片自动恢复。
FMCOS由传输管理、文件管理、安全体系、命令解释4个功能模块组成。
① 传输管理:按ISO78163标准监督卡与终端之间的通信,保证数据正确地传输,防止卡与终端之间通信数据被非法窃取和篡改。
② 文件管理:将用户数据以文件形式存储在EEPROM中,保证访问文件时的快速性和数据安全性。
③ 安全体系:安全体系是FMCOS的部分,它涉及对卡的鉴别与核实,以及对文件访问时的权限控制机制。
④ 命令解释:根据接收到的命令检查各项参数是否正确,执行相应的操作。
5 系统开发基础及芯片选型
(1) 射频基站芯片的选择和使用
基站芯片用于非接触射频卡与中央处理器之间的信息通信。以下芯片均可以实现对FM1208等符合ISO14443 TYPA标准的CPU卡的读写,可以参考相关文档。本设计主要以卡片为主,所以对于基站芯片的具体应用,可以参考相关文档。
◆ Philips系列芯片:RC500、RC522、RC531、RC632。
◆ 复旦系列芯片:FM1702N、FM1702SL、FM1715N、FM1725N。
◆ TI公司的基站芯片:RIR6C001A、TRF7960。
◆ EM公司基站芯片:EM4094、EM4294。
(2) 单片机的选择和使用
对于非接触射频卡的信息处理,根据功能和速度的要求,可以选择不同的方案。各种CPU芯片各有优缺点。
◆ 8051单片机:价格低廉,入门简单,货源充足。
◆ AVR单片机:价格适中,速度快,外设丰富。
◆ ARM:功能强大,速度快,可运行RTOS。
(3) ISO144433、ISO144434
这两部分是学习和操作非接触CPU卡的。
① ISO/IEC144433规定了邻近卡(PICCs)进入邻近耦合设备(PCDs)时的轮寻,通信初始化阶段的字符格式,帧结构,时序信息。REQ和ATQ命令内容,从多卡中选取其中一张的方法,初始化阶段其他必需的参数。 这部分规定同时适用于A型PICCs和B型PICCs。
② ISO/IEC144434规定了非接触半双功块的传输协议,并定义了激活和停止协议的步骤。这部分传输协议同时适用于A型卡和B型卡。
(4) ISO78164
这一部分是学习和操作,SAM的基础,其中规定了:由接口设备至卡以及相反方向所发送的报文、命令和响应的内容;在复位应答期间卡所发送的历史字节的结构及内容;当处理交换用的行业间命令时,在接口处所看到的文件和数据的结构;访问卡内文件和数据的方法;定义访问卡内文件和数据的权利的安全体系结构;安全报文交换的方法;访问卡所处理算法的方法(本标准不描述这些算法)。
6 SAM卡在系统中的应用
根据应用方式,SAM卡在系统中的应用可分为:
① 硬密钥,即在终端机具中安装SAM卡座,所有的都是由安装在SAM卡座中的SAM卡进行运算的。这样在终端机具维修时,只要取出SAM卡座中的SAM卡,这台终端机具就是空的了。所以,所有的银行设备都采用SAM卡的模式。
② 软密钥,即终端机具中没有SAM卡座,这个密钥的运算实际上是由终端机具完成的,这样客户的密钥就等于存在终端机具中,厂家拿回终端机具维修时,极易造成密钥流失。
结语
Mifare算法的破解,给城市公用事业IC卡系统安全敲响了警钟。在科技化、信息化飞速发展的当今时代,只有不断创新、不断提高城市公用事业IC卡系统的安全系数及技术水平,才能有更高、更远的发展,也才能为国家的信息发展作出贡献。非接触CPU卡智能卡技术正成为一种技术上更新换代的选择,用CPU卡替换逻辑加密卡的时代已到来。(作者:张建军 包国峰 马一兵 单片机与嵌入式系统应用)
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。