Mifare和CPU卡Mifare卡和CPU卡简介和比较卡片分类MifareOne卡(简称M1卡)非接触CPU卡MifareOne卡电气特性容量为8K位EEPROM分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位每个扇区有独立的一组密码及访问控制每张卡有唯一序列号,为32位(4字节)具有防冲突机制,支持多卡操作无电源,自带天线,内含加密控制逻辑和通讯逻辑电路工作温度:-20℃~85℃(卡片70℃、芯片85℃)工作频率:13.56MHZ通信速率:106KBPSMifareOne卡数据存储结构M1卡分为16个扇区,每个扇区4块(块0~3),共64块。按块号编址为0~63。第0扇区的块0(即绝对地址0块)用于存放厂商代码,已经固化,不可更改。其他各扇区的块0、块1、块2为数据块,用于存贮数据;块3为控制块,存放密码A、存取控制、密码B其结构如下图:A0A1A2A3A4A5FF078069B0B1B2B3B4B5密码A(6字节)存取控制(4字节)密码B(6字节)MifareOne卡存取控制(1)每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。在存取控制中每个块都有相应的三个控制位,定义如下:0块0C10C20C301块1C11C21C312块2C12C22C323块3C13C23C33MifareOne卡存取控制(2)三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限如进行减值操作必须验证KEYA,进行加值操作必须验证KEYB,等等。三个控制位在存取控制字节中的位置如下(字节9为备用字节,默认值为0x69):bit76543210字节6C23_bC22_bC21_bC20_bC13_bC12_bC11_bC10_b字节7C13C12C11C10C33_bC32_bC31_bC30_b字节8C33C32C31C30C23C22C21C20字节901101001MifareOne卡存取控制(3)数据块(块0、块1、块2)的存取控制如下:C1XC2XC3XReadWriteIncrementDecrement,transfer,restore000KeyA|BKeyA|BKeyA|BKeyA|B010KeyA|BNeverNeverNever100KeyA|BKeyBNeverNever110KeyA|BKeyBKeyBKeyA|B001KeyA|BNeverNeverKeyA|B011KeyBKeyBNeverNever101KeyBNeverNeverNever111NeverNeverNeverNeverKeyA|B表示密码A或密码B,Never表示任何条件下不能实现例如:当块0的存取控制位C10C20C30=100时,验证密码A或密码B正确后可读;验证密码B正确后可写;不能进行加值、减值操作MifareOne卡存取控制(4)控制块(块3)的存取控制与数据块(块0、1、2)不同,它的存取控制如下:控制位密码A存取控制密码BC13C23C33ReadWriteReadWriteReadWrite000NeverKeyA|BKeyA|BNeverKeyA|BKeyA|B010NeverNeverKeyA|BNeverKeyA|BNever100NeverKeyBKeyA|BNeverNeverKeyB110NeverNeverKeyA|BNeverNeverNever001NeverKeyA|BKeyA|BKeyA|BKeyA|BKeyA|B011NeverKeyBKeyA|BKeyBNeverKeyB101NeverNeverKeyA|BKeyBNeverNever111NeverNeverKeyA|BNeverNeverNever例如:当块3的存取控制位C13C23C33=100时,表示:密码A:不可读,验证KEYB正确后,可写(更改)。存取控制:验证KEYA或KEYB正确后,可读不可写。密码B:不可读,验证KEYB正确后,可写。MifareOne卡提供操作操作描述有效块读读一个块Block0,1,2,3写写一个块Block0,1,2,3认证认证某一扇区Block0,1,2,3增值增加某一块的内容并将结果保存到寄存器中Block0,1,2减值减少某一块的内容并将结果保存到寄存器中Block0,1,2传送将内部寄存器中的值写到一个块内Block0,1,2恢复将一个块内的值读取到内部寄存器中Block0,1,2MifareOne卡针对用户需要提供了以下几种操作命令:复旦微电子相关产品FM11RF08FM11RF32CPU卡介绍FM1208为支持电子钱包和兼容现有公交卡的低成本的非接触CPU卡芯片。产品的关键部分是,把现在用于公交卡的非接触逻辑加密卡(包括Mifare和上海算法)和符合银行标准的接触式CPU卡的功能合二为一。CPU卡电气特性通信协议:ISO14443-A兼容FM11RF08M、FM11RF08SH、FM11RF32M、FM11RF32SH系列非接触卡芯片MCU指令兼容Turbo51支持106Kbps数据传输速率Triple-DES协处理器程序存储器32Kx8bitROM数据存储器8Kx8bitEEPROM128x8bitiRAM384x8bitxRAM低压检测复位高低频检测复位COS和CPU卡的关系CPU卡的核心是卡片操作系统(CardOperationSystem/ChipOperationSystem)COS是一个比较小的非常完整严密的系统管理着卡片的一举一动外界对CPU卡发布的所有命令都需要通过COS才能对卡起作用COS控制CPU卡和外界的信息交换、管理CPU卡内的存储器并在卡内部完成各种命令的处理CPU卡的主要功能身份认证--对持卡人、卡终端、和卡片三方的合法身份做认证支付和结算工具—提供电子钱包和电子存折的支付手段,可避免携带大量现金和找零的不便,提高交易效率安全保密模块--使用相应的密钥实现加密、解密以及交易处理,从而完成与用户卡之间的安全认证数据载体--CPU卡可做为个人档案或重要数据的安全载体,数据可至少保存10年以上CPU卡的操作方式CPU卡主要通过COS实现对卡内不同类型文件的操作具体文件结构根据应用方不同需求可以自由设计FMCOS2.0符合ISO/IEC7816和PBOC2.0电子存折、电子钱包规范,提供以下几种文件类型供操作文件读写都必须满足相应条件文件读写可以选择性采用加密和带安全报文的方式,以增加安全性文件类型提供操作主要应用二进制文件读、写存储各种数据定长记录读、写存储几组类似数据变长记录读、写目录文件等……循环记录读、写存储交易记录等数据电子存折圈存、圈提、修改透支限额、消费、取现PBOC电子存折电子钱包圈存、消费PBOC电子钱包CPU卡典型应用的结构MF密钥文件目录信息文件变长记录文件应用目录1(ADF1)密钥文件公共应用基本文件(0x15)二进制文件个人应用基本文件(0x16)二进制文件交易记录文件(0x18)循环记录文件电子存折0001电子钱包0002CPU卡的优点芯片和COS的安全技术为CPU卡提供了双重的安全保证自带操作系统的CPU卡对计算机网络系统要求较低,可实现脱机操作可实现真正意义上的一卡多应用,每个应用之间相互独立,并受控于各自的密钥管理系统交易中自动保证数据的完整性(防拔)应用层命令有标准可循,容易统一CPU卡使用说明及示例CPU卡操作流程及协议CPU卡发卡CPU卡文件操作CPU卡充值CPU卡消费开始发送REQA接受ATQA防冲突环ATS可用使用ISO/IEC14443协议发送RATS接收ATSPPS支持交换透明数据改变参数发送PPS请求接收PPS响应YESNOYESNO发送DESELECT请求接收DESELECT响应发送WUPAYESYES发送HLTA非ISO/IEC14443-4议送NONOCPU卡命令与应答结构情形一:命令:CLAINSP1P200应答:SW1SW2情形二:命令:CLAINSP1P2Le应答:Le字节DATASW1SW2情形三:命令:CLAINSP1P2LcDATA应答:SW1SW2情形四:命令:CLAINSP1P2LcDATALe应答:Le字节DATASW1SW2CPU卡命令与应答结构CLA:指令类别INS:指令类型的指令码P1P2:命令参数Lc:数据域DATA长度,该长度不可超过239字节DATA:数据域或应答数据域Le:要求返回数据长度,Le为00表示返回卡中最大数据长度,该长度不可超过239字节SW1SW2:卡执行命令的返回代码(状态字)状态字SW1、SW2的意义(部分)SW1SW2意义9000正确执行6281回送的数据可能错误6283选择文件无效,文件或密钥校验错误63CXX表示还可再试次数6400状态标志未改变6581写EEPROM不成功6700错误的长度6900CLA与线路保护要求不匹配6901无效的状态6981命令与文件结构不相容6982不满足安全状态CPU卡使用说明及示例CPU卡操作流程及协议CPU卡发卡CPU卡文件操作CPU卡充值CPU卡消费CPU卡发卡介绍发卡是指根据用户的具体需求在CPU卡的用户空间上建立相应的目录结构、文件以及在文件中的初始信息等。典型应用的目录结构参看“CPU卡典型应用结构”章节CPU卡发卡指令介绍建应用指令:80E03F01113804FFF0F0957FFFA00000000386980701。该指令表示建立目录短文件标志为3F01、大小为04FF字节、名称为A00000000386980701的应用新建文件指令:80E0001607A80042F0F0FFFE。该指令表示建立短文件标志为0016、写文件需要MAC(安全报文)、大小为66(0x42)字节的二进制文件CPU卡使用说明及示例CPU卡操作流程及协议CPU卡发卡CPU卡文件操作CPU卡充值CPU卡消费CPU卡文件操作介绍读二进制文件指令:00B0960008。该指令表示读取短文件标志为0016的文家,从00开始读取8个字节写二进制文件指令:04D69600081122334455667788。该指令表示写入0016文件,从00开始写入8个字节1122334455667788线路保护写二进制文件:04D696000C1122334455667788AC343E12。功能同写二进制文件,最后四个字节是根据写入的内容用线路保护密钥计算出来的MACCPU卡使用说明及示例CPU卡操作流程及协议CPU卡发卡CPU卡文件操作CPU卡充值CPU卡消费PBOC标准CPU卡充值流程发InitializeforLoad命令IC卡处理InitializeforLoad命令返回MAC1主机验证MAC1成功则交易处理发送CreditforLoad命令IC卡验证MAC2IC卡充值交易处理CPU卡使用说明及示例CPU卡操作流程及协议CPU卡发卡CPU卡文件操作CPU卡充值CPU卡消费PBOC标准CPU卡消费流程发InitializeforPurchase命令IC卡处理InitializeforPurchase命令PSAM产生MAC1发送DebitforPurchase命令PSAM验证MAC2IC卡验证MAC1、消费交易产生MAC2逻辑加密卡升级为CPU卡方案升级的必要性升级的条件升级改造目标升级改造的基本原则升级的技术路线与其他技术路线的优劣比较升级的必要性NFC技术威胁基于逻辑加密卡系统的安全性CPU卡的应用在根本上能解决这一系列问题-建设部的标准解决互联互通应用的需求-CPU卡内部的加密处理器、随机数和软件上的特性直接防止了恶意攻击可能带来的危险升级的条件《中国金融集成电路(IC)卡规范》FM1208CPU卡成熟的方案无缝的将逻辑加密卡系统过渡到CPU卡架构升级改造的目标从现有的