NXP

FM1208非接触CPU卡读写系统的研制

2019-07-12 13:53发布

1 非接触逻辑加密卡Mifare卡的安全性问题

Philips公司(现NXP)的Mifare 1卡片,在非接触卡应用领域占有全球80%的市场份额,是目前非接触智能卡的工业标准,也成为ISO14443-A的工作草案。

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卡应用中的主流产品。
②规范性。支持符合ISO7816-3标准的T=0、T=1通信协议,符合《中国金融集成电路(IC)卡规范》、《中国金融集成电路(IC)卡应用规范》,支持符合银行规范的电子钱包、电子存折功能。
③兼容性。由于有中国人民银行的统一规范及严格检测,CPU卡具有很好的兼容性、安全性。芯片和COS的安全技术为CPU卡提供了双重的安全保证;支持DES、TripleDES等加密算法,支持线路加密、线路保密功能,防止通信数据被非法窃取或篡改,使用过程密钥实现加密、解密。
④可扩展性。卡片支持多种容量选择,如2 KB、4 KB、8 KB、16KB、32KB的EEPROM空间。CPU卡从卡结构到卡容量可以很容易扩展到多种应用,可以与银行联合,实现真正意义上的一卡多用。
⑤安全性。与逻辑加密卡相比,由于智能卡内部具有CPU芯片,在具有数据判断能力的同时,也具备了数据分析处理能力,因此智能卡可以随时区分合法和非法读写设备,并且由于有了CPU芯片,具备数据运算能力,还可以对数据进行加密解密处理,因此具有非常高的安全性。CPU卡是在将EEPROM芯片封装在卡片上的同时,将微处理器芯片(CPU)也封装在里面。这样,EEPROM的数据接口在任何情况下都不会与IC卡的对外数据线相连接。外部读写设备只能通过CPU与IC卡内的EEP-ROM进行数据交换,在任何情况下都不能再访问到EEP-ROM中的任何一个单元。

外部读写设备在与智能卡进行数据交换时,首先必须发指令给CPU,由CPU根据其内部的ROM中存储的卡片操作系统(COS)对指令进行解释,并进行分析判断。在确认读写设备的合法性后,允许外部读写设备与智能卡建立连接,之后的数据操作仍然要由外部读写设备发出相应的指令,并用CPU对指令进行正确解释,允许外部读写设备和智能卡中的数据存储区(RAM)进行数据交换。数据交换成功后,在CPU的控制下,利用智能卡中的内部数据总线,再将内部RAM中的数据与EEPROM中的数据进行交换。这样就实现了对智能卡EEPROM中数据的安全保护,因此具有非常高的安全性。

3 非接触CPU卡FM1208的特点与性能

FM1208是复旦微电子股份有限公司设计的单界面非接触CPU卡芯片,产品支持。ISO14443-A协议,硬件DES协处理器,内置8 KB的EEPROM。FM1208的特 {MOD}是能够兼容现有广泛使用的非接触逻辑加密卡,将非接触逻辑加密卡(Mirare算法)和符合银行标准的接触式CPU卡的功能合二为一。

特点:通信协议为ISO14443-A;MCU指令兼容8051;支持106 kbps数据传输速率;Triple-DES协处理器;程序存储器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)卡规范》,适用于保险、医疗保健、社会保障、公共事业收费、安全控制、证件、交通运输等诸多应用领域,特别是在金融领域。

FMCOS详细规定了电子钱包、电子存折和磁条卡功能(Easy Entry)3种基本应用。

FMCOS特点如下:
①支持Single DES、Triple DES算法,且可自动根据密钥的长度选择Single DES、Triple DES算法。
②支持线路加密、线路保护功能,防止通信数据被非法窃取或篡改。
③支持在一张卡上实现多个不同的应用:可建立三级目录。
④支持电子钱包功能,钱包大小可由用户自行设定。
⑤支持多种文件类型,包括二进制文件、定长记录文件、变长记录文件、循环文件、钱包文件。
⑥支持ISO7816-3:T=0(字符传送)通信协议。
⑦满足银行标准:符合《中国金融集成电路(IC)卡规范》。
⑧防插拔功能:交易处理过程中非正常拔出的卡片自动恢复。

FMCOS由传输管理、文件管理、安全体系、命令解释4个功能模块组成。

①传输管理:按ISO7816-3标准监督卡与终端之间的通信,保证数据正确地传输,防止卡与终端之间通信数据被非法窃取和篡改。
②文件管理:将用户数据以文件形式存储在EEP-ROM中,保证访问文件时的快速性和数据安全性。
③安全体系:安全体系是FMCOS的核心部分,它涉及对卡的鉴别与核实,以及对文件访问时的权限控制机制。
④命令解释:根据接收到的命令检查各项参数是否正确,执行相应的操作。

5 系统开发基础及芯片选型

(1)射频基站芯片的选择和使用

基站芯片用于非接触射频卡与中央处理器之间的信息通信。以下芯片均可以实现对FM1208等符合ISO14443 TYPA标准的CPU卡的读写,可以参考相关文档。本设计主要以卡片为主,所以对于基站芯片的具体应用,可以参考相关文档。
Philips系列芯片:RC500、RC522、RC531、RC632。
复旦系列芯片:FM1702N、FM1702SL,、FM1715N、FM1725N。
TI公司的基站芯片:RI-R6C-001A、TRF7960。
EM公司基站芯片:EM4094、EM4294。

(2)单片机的选择和使用

对于非接触射频卡的信息处理,根据功能和速度的要求,可以选择不同的方案。各种CPU芯片各有优缺点。
8051单片机:价格低廉,入门简单,货源充足。
AVR单片机:价格适中,速度快,外设丰富。
ARM:功能强大,速度快,可运行RTOS。

(3)ISO14443-3、ISO14443-4

这两部分是学习和操作非接触CPU卡的核心。
①ISO/IEC14443-3规定了邻近卡(PICCs)进入邻近耦合设备(PCDs)时的轮寻,通信初始化阶段的字符格式,帧结构,时序信息。REQ和ATQ命令内容,从多卡中选取其中一张的方法,初始化阶段其他必需的参数。这部分规定同时适用于A型PICCs和B型PICCs。
②ISO/IEC14443-4规定了非接触半双功块的传输协议,并定义了激活和停止协议的步骤。这部分传输协议同时适用于A型卡和B型卡。

(4)IS07816-4

这一部分是学习和操作,SAM的基础,其中规定了:由接口设备至卡以及相反方向所发送的报文、命令和响应的内容;在复位应答期间卡所发送的历史字节的结构及内容;当处理交换用的行业间命令时,在接口处所看到的文件和数据的结构;访问卡内文件和数据的方法;定义访问卡内文件和数据的权利的安全体系结构;安全报文交换的方法;访问卡所处理算法的方法(本标准不描述这些算法)。

6 SAM卡在系统中的应用

根据应用方式,SAM卡在系统中的应用可分为:

①硬密钥,即在终端机具中安装SAM卡座,所有的认证都是由安装在SAM卡座中的SAM卡进行运算的。这样在终端机具维修时,只要取出SAM卡座中的SAM卡,这台终端机具就是空的了。所以,所有的银行设备都采用SAM卡的认证模式。
②软密钥,即终端机具中没有SAM卡座,这个密钥的运算实际上是由终端机具完成的,这样客户的密钥就等于存在终端机具中,厂家拿回终端机具维修时,极易造成密钥流失。