FM1208非接触CPU卡读写系统的开发与研制.docx
《FM1208非接触CPU卡读写系统的开发与研制.docx》由会员分享,可在线阅读,更多相关《FM1208非接触CPU卡读写系统的开发与研制.docx(17页珍藏版)》请在冰点文库上搜索。
FM1208非接触CPU卡读写系统的开发与研制
FM1208非接触CPU卡读写系统的开发与研制
张建军包国峰马一兵
(ZHANGJian-jun,ShandongInstituteofInformationEngineeringDepartmentofTransport,Jinan,ShanDong,250001)
(BAOGuo-feng,ShandongUniversitysubsidiaryProvincialHospitalComputerInformationCenter,Jinan,ShanDong,250001)
(MAYi-bing,ShanhaiJIN-AN-TEAUTOIDR&DCenter,Jinan,ShanDong,250001)
概要:
本文在对非接触逻辑加密卡Mifare和非接触CPU卡比较的基础上,介绍了我国自主研发的复旦FM1208非接触CPU卡的特点及性能,并给出了读写FM1208卡的硬件系统的配置及选型,以及软件设计的参考流程。
为已经大量使用的Mifare卡的门禁、考勤、通道管理、消费以及公用事业等应用领域提供了良好的升级解决方案。
Abstract:
Inthispaper,thelogicofcontactlessandnon-encryptedMifarecardaccesstoCPUcardbasedonthecomparison,onChina'sself-developednon-contactFM1208FudanCPUcardfeaturesandperformance,andFM1208aregivencardstoreadandwritetheconfigurationofthehardwaresystemandSelection,aswellasreferencesoftwaredesignprocess.HasbeenwidelyusedfortheMifarecardaccesscontrol,time,channelmanagement,andconsumerapplicationsaswellaspublicutilities,suchastheupgradeprovidesagoodsolution.
关键字:
逻辑加密卡;CPU卡;MIFARE;读写基站;COS
Keyword:
non-encryptedcard;CPUcard;Mifare;Read&Writebasestation;COS
1引言
近年来,非接触IC卡广泛应用于各个领域,给我们的生活、工作以及管理带来了诸多方便以及益处。
早期投入应用的非接触IC卡技术多为逻辑加密卡,其低廉的成本,简明的交易流程,较简单的系统架构,迅速得到了用户的青睐,并得到了快速的应用和发展。
据不完全统计,截至去年年底,国内各领域非接触逻辑加密卡的发卡量已经达到数亿张。
比如最为著名的Philips公司(现NXP)的Mifare1卡片。
其在非接触卡应用领域占有全球80%的市场份额,是目前非接触智能卡的工业标准,也成为ISO14443-A的工作草案。
随着非接触逻辑加密卡不断应用的过程,非接触逻辑加密卡技术的不足之处也日益暴露,难以满足更高的安全性和更复杂的多应用的需求。
2008年,互联网上公布了破解MIFARECLASSICIC芯片(即M1芯片)密码的方法。
德国研究员亨里克•普洛茨(HenrykPlotz)和弗吉尼亚大学计算机科学在读博士卡尔斯滕•诺尔(KarstenNohl)成功地破解了恩智浦半导体的Mifare经典芯片的安全算法。
德国Virginia大学和荷兰Radboud大学两个独立研究小组分别证实了MIFARE芯片的易受攻击性,并发表了破解芯片加密算术的论文以及演示了实际操作芯片的破解过程。
破解事件公开后,荷兰内务部大臣特霍斯特在接受媒体采访时表示,全球多达10亿张安全卡中所使用的一项技术可轻易破解。
此次破解风波经过国内媒体的转载报道后,在我国引起了轩然大波,城市公用事业IC卡应用作为非接触式逻辑加密卡的应用大户,不得不让我们静下心来认真思考城市公用事业IC卡系统的安全问题及未来走向。
如果掌握了破解技术,不法分子可以很低的经济成本对采用该芯片的各类“一卡通”、门禁卡进行非法充值或复制,带来很大的社会安全隐患。
因此,非接触CPU卡智能卡技术正成为一种技术上更新换代的选择,用CPU卡替换逻辑加密卡的时代已到来。
2非接触逻辑加密卡Mifare卡的安全性问题
Mifare的安全认证依赖于每个扇区独立的KEYA和KEYB的校验,可以通过扇区控制字对KEYA和KEYB的不同安全组合,实现扇区数据的读写安全控制。
其个人化也比较简单,主要包括数据和各扇区KEYA、KEYB的更新,在期间所有敏感数据包括KEYA和KEYB都是直接以明文的形式更新。
由于KEYA和KEYB的校验机制,只能解决卡片对终端的认证,而无法解决终端对卡片的认证,即我们俗称的“伪卡”的风险。
Mifare的密钥就是一个预先设定的固定密码,无论用什么方法计算密钥,最后就一定要和原先写入的固定密码一致,就可以对被保护的数据进行读写操作。
因此无论是一卡一密的系统还是统一密码的系统,经过破解就可以实现对非接触逻辑加密卡的解密。
有种观点认为只要是采用了一卡一密、实时在线系统或非接触逻辑加密卡的ID号就能避免密钥被解密,其实,非接触逻辑加密卡被解密就意味着M1卡可以被复制,使用在线系统尽可以避免被非法充值,但是不能保证非法消费,即复制一张一样ID号的M1卡,就可以进行非法消费。
现在的技术使用FPGA就可以完全复制。
基于这个原理,Mifare的门禁卡也是不安全的。
3非接触CPU卡的特点与优势
3.1概念
非接触CPU卡,也称智能卡,卡内的集成电路中带有微处理器CPU、存储单元(包括随机存储器RAM、程序存储器ROM(FLASH)、用户数据存储器EEPROM)以及芯片操作系统COS。
装有COS的CPU卡相当于一台微型计算机,不仅具有数据存储功能,同时具有命令处理和数据安全保护等功能。
3.2特点
非接触CPU卡智能卡与非接触逻辑加密卡相比
●芯片和COS的安全技术为CPU卡提供了双重的安全保证
●拥有独立的CPU处理器和芯片操作系统
●对计算机网络系统要求较低,可实现脱机操作,可实现真正意义上的一卡多应用,每个应用之间相互独立,并受控于各自的密钥管理系统
●交易中自动保证数据的完整性(防拔)
●可以更灵活的支持各种不同的应用需求,更安全的设计交易流程。
●独立的保密模块--使用相应的实体SAM卡密钥实现加密、解密以及交易处理,从而完成与用户卡之间的安全认证。
3.3优势
3.3.1先进性。
CPU卡可以作为银行的金融卡使用,代表当前IC卡应用的最高安全等级,正成为IC卡应用中的主流产品。
3.3.2规范性。
支持符合ISO7816-3标准的T=0、T=1通讯协议,符合《中国金融集成电路(IC)卡规范》、《中国金融集成电路(IC)卡应用规范》,支持符合银行规范的电子钱包、电子存折功能。
3.3.3兼容性。
由于有中国人民银行的统一规范及严格检测,CPU卡具有很好的兼容性。
安全性。
芯片和COS的安全技术为CPU卡提供了双重的安全保证。
支持DES、TripleDES等加密算法,支持线路加密、线路保密功能,防止通信数据被非法窃取或篡改,使用过程密钥实现加密、解密。
3.3.4可扩展性。
卡片支持多种容量选择,如2K、4K、8K、16K、32K字节的EEPROM空间。
CPU卡从卡结构到卡容量可以很容易扩展到多应用,可以与银行联合,实现真正意义上的一卡多用。
3.3.5安全性
与逻辑加密卡相比,由于智能卡内部具有CPU芯片,在具有数据判断能力的同时,也具备了数据分析处理能力,因此智能卡可以随时区分合法和非法读写设备,并且由于有了CPU芯片,具备数据运算能力,还可以对数据进行加密解密处理,因此具备非常高的安全性。
CPU卡是在将EEPROM芯片封装在卡片上的同时,将微处理器芯片(CPU)也封装在里面。
这样,EEPROM的数据接口在任何情况下都不会与IC卡的对外数据线相连接。
外部读写设备只能通过CPU与IC卡内的EEPROM进行数据交换,在任何情况下都不能再访问到EEPROM中的任何一个单元。
外部读写设备在与智能卡进行数据交换时,首先必须发指令给CPU,由CPU根据其内部的ROM中存储的卡片操作系统(COS)对指令进行解释,并进行分析判断,在确认读写设备的合法性后,允许外部读写设备与智能卡建立连接,之后的数据操作仍然要由外部读写设备发出相应的指令,并用CPU对指令进行正确解释后,允许外部读写设备和智能卡中的数据存储区(RAM)进行数据交换,数据交换成功后,在CPU的控制下,利用智能卡中的内部数据总线,再将内部RAM中的数据与EEPROM中的数据进行交换。
这样就实现了对智能卡EEPROM中数据的安全保护,因此具备非常高的安全性。
3.4认证机制与密匙系统
非接触CPU卡智能卡可以通过内外部认证的机制,例如像建设部定义的电子钱包的交易流程,高可靠的满足不同的业务流程对安全和密钥管理的需求。
对电子钱包圈存可以使用圈存密钥,消费可以使用消费密钥,清算可以使用TAC密钥,更新数据可以使用卡片应用维护密钥,卡片个人化过程中可以使用卡片传输密钥、卡片主控密钥、应用主控密钥等,真正做到一钥一用。
非接触CPU卡加密算法和随机数发生器与安装在读写设备中的密钥认证卡(SAM卡)相互发送认证的随机数,可以实现以下功能:
●通过终端设备上SAM卡实现对卡的认证。
●非接触CPU卡与终端设备上的SAM卡的相互认证,实现对卡终端的认证。
●通过ISAM卡对非接触CPU卡进行充值操作,实现安全的储值。
●通过PSAM卡对非接触CPU卡进行减值操作,实现安全的扣款。
●在终端设备与非接触CPU卡中传输的数据是加密传输。
●通过对非接触CPU卡发送给SAM卡的随机数MAC1,SAM卡发送给非接触CPU的随机数MAC2和由非接触CPU卡返回的随机数TAC,可以实现数据传输验证的计算。
而MAC1、MAC2和TAC就是同一张非接触CPU卡每次传输的过程中都是不同的,因此无法使用空中接收的办法来破解非接触CPU卡的密钥。
但同时,与非接触逻辑加密卡系统相比,非接触CPU卡智能卡的系统显得更为复杂,需要进行更多的系统改造,比如密钥管理、交易流程、PSAM卡以及卡片个人化等。
密钥通常分为充值密钥(ISAM卡),减值密钥(PSAM卡),身份认证密钥(SAM卡)。
4非接触CPU卡FM1208的特点与性能
FM1208是复旦微电子股份有限公司设计的单界面非接触CPU卡芯片,产品支持ISO14443-A协议,硬件DES协处理器,内置8Kbyte的EEPROM。
FM1208的特色是能够兼容现有广泛使用的非接触逻辑加密卡,将现在广泛使用的非接触逻辑加密卡(Mifare算法)和符合银行标准的接触式CPU卡的功能合二为一。
4.1特点
●通信协议:
ISO14443-A
●MCU指令兼容8051
●支持106Kbps数据传输速率
●Triple-DES协处理器
●程序存储器32Kx8bitROM
●数据存储器8Kx8bitEEPROM
●256x8bitiRAM
●384x8bitxRAM
●低压检测复位
●高低频检测复位
●EEPROM满足10万次擦写指标
●EEPROM满足10年数据保存指标
4.2FM1208典型处理时间:
●识别一张卡3ms(包括复位应答和防冲突)
●EEPROM擦写时间2.4ms
●典型交易过程<350ms
4.3FM1208的安全机制
●有反电源分析模块
●有高低频检测复位模块,芯片工作频率超出检测范围自动复位
●ROM反逆向提取,存储器数据加密
4.4功能框图
5非接触CPU卡FM1208的COS
5.1FMCOS简介
由于CPU卡具有很高的安全性及一张卡支持多种应用的特点,所以IC卡家族中的CPU卡的使用范围正日益扩大。
类似一台计算机,CPU卡内也有CPU、存储器和输入、输出接口,所以在应用中CPU卡也必然需要操作系统。
上海复旦微电子股份有限公司成功地开发了自主版权的CPU卡操作系统--FMCOS(FMSHCardOperatingSystem),该操作系统符合ISO7816系列标准及《中国金融集成电路(IC)卡规范》,适用于保险、医疗保健、社会保障、公共事业收费、安全控制、证件、交通运输等诸多应用领域,特别是在金融领域。
FMCOS详细规定了电子钱包、电子存折和磁条卡功能(EasyEntry)三种基本应用。
5.2FMCOS特点
●支持SingleDES、TripleDES算法:
可自动根据密钥的长度选择SingleDES、TripleDES算法
●支持线路加密、线路保护功能:
防止通信数据被非法窃取或篡改
●支持在一张卡上实现多个不同的应用:
可建立三级目录
●支持电子钱包功能:
钱包大小可由用户自行设定
●支持多种文件类型:
包括二进制文件、定长记录文件、变长记录文件、循环文件、钱包文件
●支持ISO7816-3:
T=0(字符传送)通讯协议
●满足银行标准:
符合《中国金融集成电路(IC)卡规范》
●防插拔功能:
交易处理过程中非正常拔出的卡片自动恢复
5.3功能模块
FMCOS由传输管理、文件管理、安全体系、命令解释四个功能模块组成。
●传输管理:
按ISO7816-3标准监督卡与终端之间的通信,保证数据正确地传输,防止卡与终端之间通讯数据被非法窃取和篡改
●文件管理:
将用户数据以文件形式存储在EEPROM中,保证访问文件时快速性和数据安全性
●安全体系:
安全体系是FMCOS的核心部分,它涉及到卡的鉴别与核实,对文件访问时的权限控制机制
●命令解释:
根据接收到的命令检查各项参数是否正确,执行相应的操作
6系统开发基础及芯片选型
6.1射频基站芯片的选择和使用
基站芯片用于非接触射频卡与中央处理器之间的信息通讯。
以下芯片均可以实现对FM1208等符合ISO14443TYPA标准的CPU卡的读写,设计人员可以参考相关文档。
本文主要以卡片为主,所以对于基站芯片的具体应用,设计人员可以参考相关文档。
●Philips系列芯片:
RC500、RC522、RC531、RC632
●复旦系列芯片:
FM1702N、FM1702SL、FM1715N、FM1725N
●TI公司的基站芯片:
RI-R6C-001A、TRF7960
●EM公司基站芯片:
EM4094、EM4294
6.2单片机的选择和使用
对于非接触射频卡的信息处理,根据功能和速度的要求,设计人员可以选择不同的方案,各种CPU芯片各有优缺点。
●51单片机:
价格低廉,入门简单,货源充足,
●AVR单片机:
价格适中,速度快,外设丰富
●ARM:
功能强大,速度快,可运行RTOS
6.3ISO14443-3ISO14443-4
这2部分是学习和操作非接触CPU卡的核心
●ISO/IEC14443-3的这一部分规定了邻近卡(PICCs)进入邻近耦合设备(PCDs)时的轮寻,通信初始化阶段的字符格式,帧结构,时序信息。
REQ和ATQ命令内容,从多卡中选取其中的一张的方法,初始化阶段的其它必须的参数。
这部分规定同时适用于A型PICCs和B型PICCs
●ISO/IEC14443-4的这一部分规定了非接触的半双功的块传输协议并定义了激活和停止协议的步骤。
这部分传输协议同时适用于A型卡和B型卡。
6.4ISO7816-4
这一部分是学习和操作SAM的基础,其中规定了:
●由接口设备至卡以及相反方向所发送的报文、命令和响应的内容
●在复位应答期间卡所发送的历史字节的结构及内容
●当处理交换用的行业间命令时,在接口处所看到的文件和数据的结构
●访问卡内文件和数据的方法
●定义访问卡内文件和数据的权利的安全体系结构
●安全报文交换的方法
●访问卡所处理算法的方法。
本标准不描述这些算法
6.5FMCOS2.0—FM1208内置COS
FMCOS2.0是FM1208内置的COS,里面详细的说明了各种命令的使用方法。
6.6PBOC2.0--建设部IC卡应用规范
本标准规定了建设事业CPU卡机电特性、逻辑接口与传输协议、文件和命令、应用选择、安全机制及安全要求、电子存折/电子钱包应用和相应的定义符号等。
本标准适用于与建设事业IC卡应用相关的卡片和终端设计、制造、管理、发行以及应用系统的研制、开发、集成、维护和监理的部门(单位)。
6.7EMV2000/2004--中国金融集成电路(IC)卡规范2.0》
7SAM卡在系统中的应用
根据应用方式可分为
●硬密钥:
即在终端机具中安装SAM卡座,所有的认证都是由安装在SAM卡座中的SAM卡进行运算的,这样在终端机具维修时,只要取出SAM卡座中的SAM卡,这台终端机具就是空的了。
所以所有的银行设备都采用SAM卡的认证模式。
●软密钥:
终端机具中没有SAM卡座,这个密钥的运算实际上是由终端机具完成的,这样客户的密钥就等于存在终端机具中,厂家拿回终端机具维修时,极易造成密钥流失。
8硬件最小系统框图
9软件设计流程
9.1卡片激活流程图
9.2卡片激活程序主要步骤
9.2.1第一步:
按照ISO11443-3TYPEA中的时序进行询卡操作
//寻卡
//input:
req_code=寻卡方式
//req_code=0x52:
寻天线区内所有符合A标准的卡
//req_code=0x26:
只寻未进入休眠状态的卡
charPcdRequest(unsignedcharreq_code,unsignedchar*atq)
9.2.2第二步:
按照ISO11443-3TYPEA中的时序进行防冲突操作
//防冲撞
//input:
g_cSNR=存放序列号(4byte)的内存单元首地址
//output:
status=MI_OK:
成功
//得到的序列号放入指定单元
charPcdAnticoll(unsignedcharpicccmd,unsignedchar*snr)
9.2.3第三步:
按照ISO11443-3TYPEA中的时序进行选择操作
//选定一张卡
//input:
g_cSNR=序列号
charPcdSelect(unsignedcharpicccmd,unsignedchar*snr,unsignedchar*_size)
9.2.4第四步:
按照ISO11443-4TYPEA中的时序进行选择应答请求操作
//复位
//input:
parameter=PCDBUFERRSIZE
//output:
pLen=复位信息长度
//pData=复位信息
charMifareProRst(unsignedcharparameter,unsignedchar*pLen,unsignedchar*pData)
9.2.5第五步:
按照ISO11443-4TYPEA中的时序进行协议和参数选择响应
//协议和参数选择响应
//input:
pData=参数
charMifareProPPS(unsignedchar*pData)
9.2.6第六步:
按照ISO11443-4TYPEA中的时序进入半双工传输协议
//向ISO14443-4卡发送COS命令
//input:
CID_NAD=是否包含CID或NAD
//timeout=FWI
//pLen=命令长度
//pCommand=COS命令
//ouput:
pLen=返回数据长度
//pCommand=返回数据
charMifareProCom(unsignedcharCID_NAD,unsignedchartimeout,unsignedchar*pLen,unsignedchar*pCommand)
9.3FM1208CPU卡发卡命令举例
9.3.1卡片上电,执行Request,Anticoll,Select操作
执行RATS进入CPU卡流程
发送:
E051
接收:
1078809002209000FFFFFFFFFFFFFFFF
9.3.2选择MF:
00A4000000
发送:
0A0100A4000000
接收:
0A016F15840E315041592E5359532E4444463031A5038801019000
9.3.3外部认证命令:
第一步:
发送取随机数命令
发送:
B010*********
接收:
0B01XXXXXXXX9000
第二步:
使用外部认证密钥对随机数进行计算后发出
发送:
0A010082000008(8字节加密后数据,加密数据为)
返回:
0A019000
9.3.4擦除MF下数据:
800E000000
发送:
0B01800E000000
接收:
FA0101
发送:
FA0101
对于发送和接收的数据格式,请参考ISO14443-4中相关的信息。
10结束语
Mifare算法的破解,给城市公用事业IC卡系统安全敲响了警钟。
在科技化、信息化飞速发展的当今时代,我们只有不断创新、不断提高城市公用事业IC卡系统的安全系数及技术水平,才能需求更高、更远的发展,也才能为国家的信息发展作出贡献。
因此,非接触CPU卡智能卡技术正成为一种技术上更新换代的选择,用CPU卡替换逻辑加密卡的时代已到来。
参考文献
[1]吴永祥.射频识别(RFID)技术研究现状及发展展望[J].微计算机信息,2006,11-2:
234-236.
[2]Klaus Finkenzeller.射频识别RFID技术[M].北京:
电子工业出版社.2001.
[3]ChenPeng,LaiShengli.Theanalysisanddesignofanovelpassivereflectionmodulationtag.4thInternationalConferenceonMicrowaveandMilli2meterWaveTechnology,Proceedings,18—21Aug2004:
402—405.IEEE,345E47thST,NewYork,NY10017USA.
[4]黄智伟.无线发射与接收电路设计.北京:
北京航空航天大学出版社,2004.
[5]单承赣、柴斌、姚磊:
《高集成度TYPEA读写器芯片MFRC500及其应用》[J].《国外电子元器件》2004年第8期.
[6]ISO/IECFCD14443-3:
1999[E]
[7]ISO/IECFCD14443-4:
1999[E]
[8]ISO/IEC7816-4:
1999[E]
[9]EMMicroelectronic-MarinSA,AnalogFrontEndIntegratedCircuitfor
13.56MHzRFIDBaseStationEM4094DATA