信息安全综合实验智能卡.doc_第1页
信息安全综合实验智能卡.doc_第2页
信息安全综合实验智能卡.doc_第3页
信息安全综合实验智能卡.doc_第4页
信息安全综合实验智能卡.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验 智能卡一、实验目的1熟悉接触式和非接触式智能卡的应用环境和应用方式。2掌握智能卡的基本物理结构和逻辑结构。3了解智能卡的应用编程。4了解智能卡操作系统的基本结构和编程。二、实验设备与准备1标准接触式智能卡读写器设备和射频卡读写器设备各一套及相关驱动。2带九针RS232串行接口及USB串行接口计算机一台。3带支持ISO-7816-4的命令的操作系统的CPU卡、射频M1型卡、存储器卡各一张。4VC编程环境。三、预备知识1. 智能卡简介智能卡的名称来源于英文名词“Smartcard”,又称集成电路卡,即IC卡(Integrated Circuitcard)。它将一个集成电路芯片镶嵌于塑料基片中,封装成卡的形式,其外形与覆盖磁条的磁卡相似。它一出现,就以其超小的体积、先进的集成电路芯片技术以及特殊的保密措施和无法被译及仿造的特点受到普遍欢迎。IC卡的概念是7O年代初提出来的,法国布尔(BULL)公司于1976年首先创造出IC卡产品,并将这项技术应用到金融、交通、医疗、身份证明等多个行业,它将徽电子技术和计算机技术结合在一起,提高了人们生活和工作的现代化程度。IC卡芯片具有写入数据和存储数据的能力,IC卡存储器中的内容根据需要可以有条件地供外部读取和供内部信息处理和判定之用。根据卡中所镶嵌的集成电路的不同可以分成以下三类:存储器卡:卡中的集成电路为EEPROM(可用电擦除的可编程只读存储器)。逻辑加密卡:卡中的集成电路具有加密逻辑和ZEPROM。CPU卡: 卡中的集成电路包括中央处理器CPU、EEPROM、随机存储器RAM以及固化在只读 存储器ROM中的片内操作系统COS(ChiPOperatingSystem)。严格地讲,只有CPU卡才是真正的智能卡。按卡与外界数据传送的形式来分,有接触型IC卡和非接触型IC卡两种。当前使用广泛的是接触型IC卡,在这种卡片上,IC芯片有8个触点可与外界接触。非接触型IC卡集成电路不向外引出触点,因此它除了包含前述三种IC卡的电路外,还带有射频收发电路及其相关电路,读写器对卡的读写为非接触式,因而称这种IC卡为非接触式或者感应式IC卡(RF射频卡)。我们曾经了解过一些使用密码学的身份认证系统如 Kerberos,SNP,SSH 等,而这些系统都是架构在密码学的基础下成型的:然而除采用密码学的方式做为身份认证机制外,当然我们也可以用其它的方法做为身份认证之用。这些其它的方法如传统式的身份证件,或是磁卡,而有些系统还可以用辨人体的指纹,声纹或是视网膜。而智能卡是目前被看好的一种新一代的身份认证系统。 IC卡在使用中,有一些参数在卡型选择时是需要认真考虑的。例如:(1)如果IC卡的使用环境低于0时,最好不要选用CPU卡,因CPU卡的工作温度在0时以上.而MemoryCard可以工作在20的低温下工作。(2)IC卡是有工作电压指标的,西门子公司的IC卡一般工作电压在4.75V5.25V之间.ATMEL公司的IC卡工作电压约在2.7V5.5V之间。(3)IC卡的寿命是对IC卡的擦写次数决定。(4)IC卡读写器的使用寿命主要由两个因素决定:读写器本身器件的选择和卡座的寿命;卡座的寿命分别有10万次,20万次和50万次。(5)读写器对IC卡的上电操作,仅在接到软件发出的指令以后才能进行,并且,在IC卡没有插入的情况下,应给出上电出错的返回代码。(6)读写器应用中最重要的问题是通信和系统的可靠性问题。2. 存储器卡预备知识存储器卡中的集成电路为EEPROM(可用电擦除的可编程只读存储器)。这种卡的生产厂商最多,下面就常用的ATMEL公司的AT24C系列和INFINEON公司的44系列给出介绍。AT24C01A/02/04/08/16/64系列IC卡为ATMEL存储卡,是一种不具备加密功能的EEPROM卡,AT24C为系列号,数字部分为K位容量,分别为1K、2K、4K、8k、16K、32K、64K位。它的使用方法与EEPROM完全相同,存储结构简单,只有读写两种操作功能,主要用于存放一些保密性要求不高的数据。该系列卡可循环擦写1,000,000次,数据保存期为100年,使用的温度范围从-250C到700C。该系列的卡结构单一,无分区,只有读、写操作 AT24C系列的工作频率为lMHz(5V),lMHz(2.7V),400KHz(1.8V);工作电压为5V士l0,根据要求最低可至1.8V;Icc电流读最大为lmA,写最大为3mA:写擦除次数为l00万次;数据保持lO0年;工作温度为O-70,根据要求可超过指定工作温度;通讯协议符合ISOIEC 7816-3同步协议,双向串行接口。AT24C系列的存储结构如下图所示: AT24C系列型号的后两位数字为该型号的最大K位数(1K=1024),8位为1字节,最大字节存储容量的算法为K位数l0248。如:AT24C01A的最大存储容量的110248=128,其字节地址空间为O127(16进制为0x000x7F)。 下面的伪码程序在AT24C系列卡的ADDR地址开始写LEN个字节,并且读出校对。 Open(AT24Cxxx) Write(ADDR,LEN,WDATA) RDATA Read(ADDR,LEN) Close() IF WDATARDATA THEN 写成功 ELSE 写失败。 下面的伪码程序在AT24C系列卡的ADDR地址开始读LEN个字节。 Open(AT24Cxxx) RDATA Read(ADDR,LEN) Close()3. CPU卡预备知识作为敏感数据和密钥信息的安全存储介质,智能卡的安全性除了芯片本身外,还取决于卡内的芯片操作系统或者称智能卡操作系统,即COS。CPU卡内的资源较多,除了CPU之外,往往还有串行通信电路、存储器、随机数发生器、密码运算模块等,这些都需要COS来进行管理。从功能上来说,智能卡操作系统主要用于控制数据传输,内存管理和信息处理。在命令处理时, COS 检查各项参数是否正确,以及安全条件是否满足,在此基础上执行相应的操作和数据处理,以实现对文件的访问。COS 工作流程可以通过命令处理的过程来详细说明。命令处理的过程如下图。应答命令读写设备智能卡传 输管理器(TM)安 全管理器(SM)应 用管理器 ( AM )文 件 管理器(FM)图 COS命令处理的过程命令管理是智能卡操作系统的主要内容。其基本过程是:终端设备向IC卡发送命令,IC卡则根据执行情况返回应答。命令与应答结构有四种情形。情形一:命令格式:CLAINSP1P200应答格式:SW1SW2情形二:命令格式:CLAINSP1P2 LcData应答格式:SW1SW2情形三:命令格式:CLAINSP1P2Le应答格式:DataSW1SW2情形四:命令格式:CLAINSP1P2 LcDataLe应答格式:DataSW1SW2其中,CLA表示指令的类别,INS表示指令的指令码,P1、P2表示命令的参数,Lc表示数据域DATA的长度,DATA表示命令报文数据域或应答报文数据域,Le表示要求返回数据的长度,Le为00表示返回卡中最大数据长度。而SW1、SW2 卡执行命令的返回代码(状态码)。每条命令的应答至少由两个字节的状态码组成。状态码说明命令被处理的情况。命令返回码的意义见下表。表命令返回码的意义序号SW1 SW2意义 190 00命令正确执行261 XXSW2指出仍可得到的应答字节数362 00非易失性存贮器状态未变,命令处理完成但未必正确462 81部分返回数据可能是错的562 82命令处理完成,但在达到Le字节之前,文件或记录已结束662 83选择文件无效,文件或密钥校验错误 762 84FCI格式不遵循ISO标准863 00非易失性存贮器状态已变,命令处理完成但未必正确963 81上次写入时,文件已充满1063 CXX表示还可再试次数1164 00非易失性存贮器状态未变,命令处理夭折1265 00非易失性存贮器状态已变,命令处理夭折,无其它信息1365 81存贮器失效,非易失性存贮器状态已变,命令处理夭折1467 00错误的长度1568 00不支持CLA的功能,不给出信息1668 81不支持的逻辑通道1868 82不支持的安全报文1969 00不允许的命令,不给出信息2069 01无效的状态2169 81命令与文件结构不相容2269 82不满足安全状态2369 83密钥被锁死2469 84参考数据无效2569 85使用条件不满足2669 86当前文件不是EF或无当前文件2769 87安全报文未得到2869 88安全报文不正确296A 80数据域参数错误306A 81功能不支持或卡中无MF或卡片已锁定316A 82文件未找到326A 83记录未找到336A 84文件无足够空间346A 85Lc与TLV结构不一致356A 86参数P1 P2错误366A 87Lc与P1P2不一致376A 88引用数据未找到(密钥未找到)386B 00命令夭折,在达到Le字节之间文件结束;偏移量错误396D 00指令码错误406E 00错误的CLA416F 00数据无效4293 02银行MAC错误4393 03 应用已被锁定4494 01金额不足4594 03密钥未找到(用于银行专用命令)4694 06所需的MAC不可用传输管理器主要是根据卡所使用的通信协议来进行数据收发。常用的通信协议有T=0和T=1。IC卡插入读写设备并正确接触后,触点激活,读写设备对IC卡上电。IC卡发出复位应答,给出后继字符解码方式、检验方式、通信协议等请求。IC卡和读写设备建立起通信联系后,读写设备向卡发送数据,依据双方约定的通信协议,IC卡对由读写设备发出的命令进行接收。同时,把对命令的响应按照传通信议的格式发送出去。IC卡在对命令进行接收的同时,也要对命令接收的正确性作出判断。这种判断只是针对在传输过程中可能产生的错误预言的,并不涉及命令的具体内容。当发现检验错误,立刻向读写设备报告,并且请求重发原数据。如果传IC卡认为对命令的接收是正确的,那么,它一般是只将接收到的命令的信息部分传到下功能模块,而滤掉诸如起始位、停止位之类的附加信息。相应地,当IC卡在向读写设备发送应答的时候,则应该对每个传送单位加上信息交换协议中所规定的各种必要的附属信息。T=1协议的传输基本组成如下:开 始 字 段 信息字段 结尾字段 NAD PCB LEN INF EDC 其中,NAD长1字节,PCB长1字节,LEN长1字节,INF长0254字节,EDC长1字节;LEN表示INF的数据长度,EDC为开始字段和信息字段的出错校验码。当完整的命令信息传到安全管理模块后, COS 根据命令的需要来实现卡和终端机之间的相互认证、文件访问权限控制、数据的加密和解密等安全保密功能。应用管理则对卡接收到命令的可执行性进行判断。 COS 主要提供了两种对命令可执行性的判断方式。顺序判断:即命令只有满足某一系列条件才能进行下一步操作。另一种是权限判断:即只有满足某一安全属性才能对文件进行操作。文件即数据单元或卡中记录的有组织的集合。COS 的整个文件系统按树形结构组织(如下图)。COS 给每一个应用建立一个相关的文件以实现对各个应用的存储和管理。每个应用下都可有各种基本文件。利用选择文件命令或其它命令中所指明的短文件标识符可以选择某个文件,并且在以后对该文件进行操作。MFDFEFDFEFEFEFEFEFEFEFDFEFEF图 COS的文件组织文件标识符是文件的标识代码,用2个字节来表示,在选择文件时只要指出该文件的标识代码, COS 就可以找到相应文件,同一父文件下的子文件标识符必须是唯一的,MF的文件标识符是3F00。所有文件都可以通过文件标识符用SELECT FILE命令进行文件选择,MF和DF还可以通过文件名称在任意位置进行选择。在智能卡操作系统中,文件系统是仅次于安全系统的重要部分,因为它是卡中所有用户数据和程序,或者说所有应用的载体。根据ISO78164, COS 支持的基本文件类型包括主文件MF(Master File)、专用文件DF(Dedicated File)和基本文件EF(Elementary File)。 (1) 主文件MF主文件MF在IC卡中唯一,且必须存在。MF是卡片文件系统的根,在MF下可以有多个专用文件DF和基本文件EF,IC卡复位后,卡片自动选择MF文件为当前文件。MF下可有一个内部保密文件ISF,它是一个TLV格式的线性变长文件。MF下还可有一应用列表文件,它是一个TLV格式的线性变长文件,它包含有卡片支持的应用目录。MF的大小由用户在创建的时候指定,且仅受可用空间限制。在创建的时候同时指定MF的ISF文件的大小以及创建DF、创建EF和创建KEY记录的访问控制权限。MF在卡片复位后自动被选择,此外在任何文件下均可通过文件标识符3F00或文件名称1PAY.SYS.DF01来选择MF。在创建文件后,MF不能自动被选择,需要执行选择文件命令。 (2) 专用文件DF一个DF则代表一个应用。每一DF下可以存放多个EF。任何一个DF在物理上和逻辑上都保持独立,都有自己的安全机制和应用数据,可以通过应用选择实现对其逻辑结构的访问。专用文件DF下可有一个内部保密文件ISF,它是一个TLV格式的线性变长文件。DF的大小由用户在创建的时候指定,且不能超过32K。DF在创建的时候同时指定ISF文件的大小以及创建EF和创建KEY记录的访问控制权限。 (3) 基本文件EF基本文件EF用于存放用户数据、程序或密钥,分为内部保密文件ISF和工作基本文件。存放密钥的文件称为内部保密文件ISF (Internal Secret File),它不需用户专门创建,而与MF/DF同时被建立。 ISF文件可存放的密钥类型包括口令密钥、内部认证密钥、外部认证密钥、内部密钥、重装PIN的密钥、线路加密密钥、线路认证密钥或线路加密认证密钥等。ISF文件在任何情况下密钥数据均无法读出。存放用户数据的文件称为工作基本文件WEF (Working Elementary File),分为透明文件、线性定长文件、循环文件、线性变长文件、ECC参数文件、ECC密钥文件。透明文件也称二进制文件,为一个数据单元序列,数据以二进制为单位按地址进行读写,其中的数据由应用者解释。线性定长文件每条记录长度相同,数据以记录为单位进行存储。循环文件为具有固定长度记录的环形文件。循环文件及下面所述的计算文件只能顺序增加记录,当写记录时当前写入的为第一条记录,上一次写入的为第二条记录,依此类推。当记录写满后再执行写命令将自动覆盖最早写入的记录,最后一次写入的记录的记录号总是为1,上次写入的记录的记录号为2,依次类推。线性变长文件的每一条记录长度是可变的。更新记录时,新的记录长度必须与卡中记录长度相同,否则更新无效。变长记录的格式TLV如下:T LVT(Tag): 记录标识 、 L(Length):记录数据域长度、V(Value): L字节数据注意,不同的智能卡硬件平台和生产厂商可能有功能相同的操作系统,但是也很可能不相同,我们在以后的工作和学习过程中要根据实际情况来确定具体的开发和应用方法。在ISO7816规范中确定了不同的操作系统应该遵循的规范,特别是命令规范和文件规范。上面陈述了一些基本内容,而不同的厂商会对OSI - 7816的命令规范进行扩充,扩充的命令主要是:(1)创建文件系统和密钥系统的相关命令。这一部分是必不可少的,在进行CPU卡的应用开发时执行相关的命令也是必需的。(2)密码相关命令,比如RSA基本运算、加密、解密、签名、认证命令,对于当前大多数的PKI环境下的智能卡应用此类命令也是必不可少的。(3)行业命令,比如银行应用、税控应用、社保应用的相关行业命令。那么我们在进行应用开发时要选择带有支持相关行业命令的操作系统的CPU卡。下面列举一些常用的命令及其格式:(1)应用锁定命令 AppliBlock应用锁定命令使当前选择的DF失效。命令结构如下:CLAINS P1 P2 Lc DATA84 1E 00 00/01 4 MACP200 命令执行成功后可锁定应用,但该应用可以用应用解锁命令解锁,可由选择命令选择进入该文件,但返回69 83。P201 此命令执行成功后将永久锁定应用,IC卡将不允许执行解锁应用。 应答报文只有SW1和SW2:SW1 SW2意义90 00命令正确执行62 00无信息提供62 81回送数据可能出错62 83选择文件无效64 00EEPROM状态未改变65 81写EEPROM不成功(表示EEPROM失效)68 82文件不支持安全报文69 82不满足安全状态69 84引用数据无效(密钥类型不正确)69 87安全报文数据项丢失(Lc不正确)69 88安全报文数据项不正确6A 86参数P1 P2不正确6A 88未找到引用数据(线路保护生成密钥)(2)应用解锁命令 AppliUnblock应用解锁命令用于解锁当前DF。如果对于某应用连续三次解锁失败,则IC卡将永久锁定此DF。命令结构如下:CLAINS P1 P2 Lc DATA84 18 00 00 04 MAC 应答报文只有SW1和SW2:SW1 SW2意义90 00命令正确执行(含应用未被锁定之情况)64 00状态标志未改变65 81写EEPROM不成功68 82文件不支持安全报文69 82不满足安全状态69 84引用数据无效(密钥类型不正确)69 87安全报文数据项丢失69 88安全报文数据项不正确6A 88未找到引用数据(线路保护生成密钥)93 03应用或文件已被永久锁定(3)卡片锁定命令 CardBlock卡片锁定命令使卡中所有应用失效。当用卡片锁定命令永久锁定卡之后,所有后续的命令都将回送状态码6A 81,表示不支持此功能,且不执行任何其它操作。命令结构如下:CLAINS P1 P2 Lc DATA84 16 00 00 04 MAC 应答报文只含SW1和SW2:SW1 SW2意义90 00命令正确执行64 00状态标志未改变65 81写EEPROM不成功68 82不支持安全报文69 82不满足安全状态69 84引用数据无效(密钥类型不正确)69 87安全报文数据项丢失69 88安全报文数据项不正确6A 88未找到引用数据(线路保护生成密钥)(4)外部认证命令 ExternAuth外部认证命令要求IC卡中的应用验证密码。操作过程是:将命令中的数据域用指定外部认证密钥解密,然后与先前产生的随机数进行比较,若一致则表示认证通过,置安全状态寄存器为该密钥规定的后续状态值,错误允许计数器恢复成初始值;若比较不一致则认证失败,错误允许计数器值减1,且不改变安全状态寄存器的值。外部认证命令的报文结构如下:CLAINSP1P2 Lc DATA00820000或外部认证密钥标识08加密后的随机数若P2为00 ,则使用第一个外部认证密钥。命令报文数据域DATA由8字节加密后的随机数组成。应答报文可能的状态码如下: SW1 SW2意义90 00命令正确执行62 83密钥校验错误63 00认证失败且不给出其它信息65 81写EEPROM失败67 00长度错误68 82命令不支持安全报文69 82不满足安全状态69 83认证方法锁定(密钥被锁定)69 84不是外部认证密钥6A 82未找到ISF文件6A 86参数P1、P2不正确6A 88密钥未找到(5)取随机数命令 GetChallenge取随机数命令请求一个用于安全相关过程的4字节随机数。除非掉电、选择了其它应用或又发出了一个取随机数命令,否则该随机数将一直有效。取随机数命令的报文结构如下:CLAINSP1P2 Le0084000004应答报文如下: 4字节随机数SW1SW2应答报文可能的状态码如下: SW1 SW2意义90 00命令正确执行68 82命令不支持安全报文6A 81不支持此功能6A 86参数P1、P2不正确(6)取应答数据 GetResponse当APDU不能用现有协议传输时,取应答数据命令提供了一种从卡片向接口设备传送APDU(或APDU的一部分)的传输方法。目前主要是在T=0协议中使用。取应答数据命令的报文结构如下:CLAINSP1P2 Le00C00000应答的期望数据最大长度 应答报文如下:Le字节数据SW1SW2 应答报文可能回的状态码如下:SW1 SW2意义90 00命令正确执行68 82命令不支持安全报文61 XX命令已正常处理,且XX表示可以通过后续GET RESPONSE命令得到的额外数据长度62 81部分回送的数据可能有错67 00长度错误(Le大于卡中应答数据长度)6A 86参数P1、P2不正确6C XX长度错误,XX表示实际数据长度6F 00卡中无数据返回(7)内部认证命令 InternAuth内部认证命令提供了利用接口设备发来的随机数和自身存储的相关密钥进行数据认证的功能。内部认证命令的报文结构如下:CLAINSP1P2 Lc DATA Le00880000 认证数据长度认证数据00 应答报文运算的结果SW1SW2 应答报文可能的状态码如下:SW1 SW2意义90 00命令正确执行62 81回送的数据可能有错62 83密钥校验错误 67 00Lc域不存在68 82命令不支持安全报文69 82不满足安全条件69 85不满足使用条件69 84密钥类型错误6A 80数据域参数不正确6A 82ISF文件未找到6A 88密钥未找到6A 86参数P1、P2不正确(8)PIN解锁命令 PinUnblockPIN解锁命令用于发卡方解锁个人密码, ECHOOS 将重置个人密码的错误允许计数器,但不改变个人密码。DATA域包括命令的MAC。PIN解锁命令的报文结构如下:CLAINSP1P2 Lc DATA84240001XX见下应答报文可能的状态码如下:SW1 SW2意义90 00命令正确执行62 00无信息提供62 81数据或能出错63 CXX表示允许重试的次数64 00状态标识位未改变65 81写EEPROM失败68 82密钥不支持安全报文69 82不满足安全状态69 84引用数据无效(密钥类型错误)69 87安全报文数据项丢失6A 82未找到ISF文件6A 86 参数P1 P2不正确6A 88密钥未找到(含线路保护生成密钥未找到)69 88安全报文数据项不正确93 03应用被永久锁定(9)读二进制命令 ReadBin读二进制命令用于读取二进制文件的内容。读二进制命令的报文结构如下:CLAINSP1P2 Lc DATA Le00/04B0XXXX不存在(CLA=04时除外)不存在(CLA=04时除外)XX若P1的高三位为100,则低五位为短的文件标识符(为0表示当前文件),P2为读的偏移量。若P1的最高位不为1,则P1 P2为欲读文件的偏移量,所读文件为当前文件。Le表示要读取的字节数,若Le为00 ,则送回自偏移量开始到文件结束的所有数据(除非超过一次命令可传送的最大值)。 应答报文:Le字节读出的二进制文件的内容SW1SW2 应答报文可能的状态码如下:SW1 SW2意义90 00命令正确执行62 81部分回送的数据可能有错62 82文件长度 Le68 82命令不支持安全报文69 86无当前的EF69 88安全报文数据不正确67 00长度错误(Lc域为空)69 81不是二进制文件69 82不满足安全状态69 84引用数据无效(密钥类型错误)6A 88未找到引用数据(未找到线路保护生成密钥)6A 81不支持此功能(无MF或MF已锁定)6A 82未找到文件6B 00参数错误(偏移地址超出了EF)6C XX长度错误且XX为实际长度(10)读记录命令 ReadRec读记录命令用于读取记录文件的内容。该命令适用于线性定长文件、循环文件和线性变长文件。读记录文件命令的报文结构如下:CLAINSP1P2 Lc DATA Le00/04B2记录号或记录标识符XX不存在(CLA=04时除外)不存在(CLA=04时除外)00P1为记录号。若该文件有N条记录,则记录号可以是1N。P2低3位为100。高5位为00000表示当前文件,否则表示短文件标识符。当无安全报文使用时,命令报文数据域不存在,使用安全报文时,命令报文的数据域中包含MAC。 应答报文: 读取的记录SW1SW2 应答报文可能的状态码如下:SW1 SW2意义90 00命令正确执行64 00标志状态位未改变62 81部分回送的数据可能有错67 00长度错误(Lc域为空)68 82文件不支持安全报文69 81文件类型错误69 82读的条件不满足69 84引用数据无效(密钥类型不正确)69 88安全报文数据不正确6A 88未找到引用数据(未找到线路保护生成密钥)6A 81不支持此功能(无MF或MF已锁定)6A 82未找到文件6A 83未找到记录(11)重装PIN命令 ReloadPin重装PIN命令用于发卡方重新给持卡人产生一个新的PIN,可以与原PIN相同。在成功执行重装PIN命令后, ECHOOS 将PIN错误尝试次数计数器复位;且将IC卡的原PIN被设置为新的值。重装PIN命令的报文结构如下:CLAINSP1P2 Lc DATA805E00000511当前的PIN | FF | 新的PIN 应答报文可能的状态码如下:SW1 SW2意义90 00命令正确执行63 CXX表示允许重试的次数65 81写EEPROM失败67 00长度错误68 82命令不支持安全报文69 82不满足安全状态69 83 重装PIN的密钥被锁定69 84 引用数据无效(PIN被锁死)69 85使用条件不满足69 88MAC不正确6A 80数据域参数不正确6A 81功能不支持(无MF或卡片已锁死)6A 82未找到文件6A 86P1、P2不正确6A 88重装PIN的密钥未找到93 03应用永久锁定(12)更改PIN命令 ChangePin更改PIN命令允许持卡人将当前个人密码修改为新的密码。在成功执行更改PIN命令后, ECHOOS 将PIN错误尝试次数计数器复位;且将IC卡的原PIN被设置为新的值。更改PIN命令的报文结构如下: CLAINSP1P2 Lc DATA805E00/0100060C重装的PIN和MAC 应答报文可能的状态码如下:SW1 SW2意义90 00命令正确执行63 CXX表示允许重试的次数65 81写EEPROM失败67 00长度错误68 82命令不支持安全报文69 82不满足安全状态69 83 重装PIN的密钥被锁定69 84 引用数据无效(PIN被锁死)69 85使用条件不满足69 88MAC不正确6A 80数据域参数不正确6A 81功能不支持(无MF或卡片已锁死)6A 82未找到文件6A 86P1、P2不正确6A 88重装PIN的密钥未找到93 03应用永久锁定(13)选择文件命令 Select选择文件命令通过文件名、文件标识符来选择IC卡中的文件。选择文件命令的报文结构如下:CLAINSP1P2 LcDATA Le00A400/02/0400XX空或文件标识符或DF(MF)名称00P100 按文件标识符选择MF或DF、P102按文件标识符选择EFP104用文件名称选择MF或DF。应答报文包括所选择文件的文件控制信息FCI和返回状态字。MF回送的文件控制信息FCI如下: 标志值存在方式6F文件控制信息模板必备84MF名必备A5文件控制信息专用模板 必备88应用列表文件的短文件标识符必备DF回送的文件控制信息FCI如下:标志值存在方式6F文件控制信息模板必备84DF名必备A5文件控制信息专用数据 必备9F 0C发卡方自定义数据的文件控制信息可选EF回送的文件控制信息FCI如下:标志值62文件控制信息模板82文件类型 应答报文可能的状态码如下: SW1 SW2意义90 00命令正确执行62 83选择的文件无效62 84FCI格式不遵循ISO/IEC 781664 00标志状态位未改变67 00错误的长度68 82命令不支持安全报文6A 81 不支持此功能(无MF或卡片已锁死)6A 82未找到文件6A 86参数P1 P2不正确 【注】在任何文件下选择主文件MF,MF将成为当前文件,且当前文件安全状态寄存器的值自动等MF的安全属性寄存器的值。也可用SELECT命令通过文件名称来选择。 若选择的文件为当前文件的子文件时,则该子文件置为当前文件,且当前文件安全状态寄存器的值置为上一级文件的安全状态寄存器的值。 若选择当前文件的父文件,当前文件安全状态寄存器的值将被置为MF的安全状态寄存器的值。(14)写二进制命令 UpdateBin写二进制命令用于写二进制文件、命令文件和函数文件,对于用户来说,二进制文件是功能最丰富的文件,它可以按用户的要求自由设置意义。而对于某个应用,若用户提供了新的命令或新的函数,则编译连接好的执行代码将可以通过该命令下载到卡中。写二进制命令的报文结构如下: CLAINSP1P2LcDATA00/04D6/D0XXXXXX写入的数据(15)追加记录命令 AppendRec追加记录命令用于对循环文件和线性变长文件追加记录。追加记录命令的报文结构如下: CLAINSP1P2LcDATA00/04DC/D200/记录号或记录标识XXXX记录数据P2的定义如下:b7B6b5b4b3b2b1B0含义XXXXXSFI000表示第一个记录001最后一个记录010下一个记录011上一个记录100记录号或记录标识在P1中给出RFUP2高5位为00000表示写当前选择的文件,否则表示短文件标识符。文件被选择后当前记录是第一条记录。对于变长记录文件或RSA密钥文件P2的低3位只能为100。 应答报文可能的状态码如下: SW1 SW2意义90 00命令正确执行63 CX使用内部重试程序更新成功65 81写EEPROM失败67 00长度错误(Lc域为空)68 82文件不支持安全报文69 81不是二进制文件69 82写的条件不满足69 84引用数据无效(密钥类型错误)69 86不满足执行条件(不是当前的EF)6A 88未找到引用数据(未找到线路保护生成密钥)69 88线路保护数据错误6A 81不支持此功能(无MF或MF已锁定)6A 82未找到文件6B 00参数错误(偏移地址超出了EF)(16)更新记录命令 UpdateRec更新记录命令用于对线性定长文件和线性变长文件更新记录。更新记录命令的报文结构如下: CLAINSP1P2LcDATA00/04DC/D200/记录号XXXX记录数据P2的定义如下:b7B6b5b4b3b2b1B0含义XXXXXSFI000表示第一个记录001最后一个记录010下一个记录011上一个记录100记录号或记录标识在P1中给出RFUP2高5位为00000表示写当前选择的文件,否则表示短文件标识符。文件被选择后当前记录是第一条记录。对于变长记录文件或RSA密钥文件P2的低3位只能为100。 应答报文只有SW1和SW2:SW1 SW2意义90 00命令正确执行62 83文件校验错误63 CX使用内部重试程序更新成功65 81写EEPROM失败67 00长度错误(Lc域为空)68 82文件不支持安全报文69 81文件类型错误69 82不满足安全状态69 84引用数据无效(密钥类型错误)69 86不满足使用条件(无当前文件)69 88安全报文数据不正确6A 88未找到引用数据(未找到线路保护生成密钥)6A 81不支持此功能(无MF或MF已锁定)6A 82未找到文件6A 83未找到记录6A 84文件中存储空间不够(17)校验口令命令 Verify校验口令命令用于校验命令数据域的口令密钥的正确性。校验口令命令的报文结构如下:CLAINSP1P2LcDATA00200000或密钥标识符0208外部输入的口令若口令验证成功,则安全状态寄存器的值被置成该密钥的后续状态,同时口令错误允许计数器被置成初始值。若口令验证错误,则口令可再试次数减1。若口令已被锁死,则不能再执行该命令,但可用PIN CHANGE /UNBLOCK命令(对PIN)或RELOAD命令(对PIN)或用WRITE KEY(UPDATE)命令对其进行解锁,使原口令密钥记录恢复正常,同时口令错误允许计数器被恢复成初始值。若P2为00,则自动使用密钥文件中的第一个口令密钥(PIN)。命令报文数据域为持卡者输入的口令。命令数据域外部输入的口令与卡中存放的口令校验失败时,IC卡将回送SW1 SW263CX,X表示口令允许重试的次数。当卡回送63C0时,表示不能重试口令,此时再使用VERIFY命令时,将回送失败状态码69 83。 应答报文只含SW1和SW2。命令数据域外部输入的口令与卡中存放的口令校验失败时,IC卡将回送SW1 SW263CX,X表示口令允许重试的次数。当卡回送63C0时,表示不能重试口令,此时再使用VERIFY命令时,将回送失败状态码69 83。 SW1 SW2意义90 00命令正确执行63 CX校验失败,X表示允许重试的次数64 00标志状态位未改变62 83口令密钥校验错误65 81写EEPROM失败67 00长度错误69 82密钥使用条件不满足69 83认证方法(口令密钥)锁定69 84引用数据无效(密钥类型错误)6A 86参数P1、P2不正确6A 88未找到引用数据69 88密钥线路保护错误4. 射频卡预备知识 射频卡又称非接触式IC卡,它成功地解决了无源(卡中无电源)和免接触这一难题,是电子器件领域的一大突破。主要用于公交、轮渡、地铁的自动收费系统,也应用在门禁管理、身份证明和电子钱包。以下是我们所使用的射频卡的主要性能指标:容量为8K位EEPROM;分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位;每个扇区有独立的一组密码及访问控制;每张卡有唯一序列号,为32位;具有防冲突机制,支持多卡操作;无电源,自带天线,内含加密控制逻辑和通讯逻辑电路;数据保存期为10年,可改写10万次,读无限次;工作温度:-2050(温度为90%);工作频率:13.56MHZ;通信速率:106KBPS;读写距离:10mm以内(与读写器有关)。卡片的电气部分由一个天线和ASIC组成。天线:卡片的天线是只有几组绕线的线圈,很适于封装到IS0卡片中。ASIC:卡片的ASIC由一个高速(106KB波特率)的RF接口,一个控制单元和一个8K位EEPROM组成。M1卡的工作原理是,读写器向M1卡发一组固定频率的电磁波,卡片内有一个LC串联谐振电路,其频率与读写器发射的频率相同,在电磁波的激励下,LC谐振电路产生共振,从而使电容内有了电荷,在这个电容的另一端,接有一个单向导通的电子泵,将电容内的电荷送到另一个电容内储存,当所积累的电荷达到2V时,此电容可做为电源为其它电路提供工作电压,将卡内数据发射出去或接取读写器的数据。M1射频卡与读写器的通讯过程如下图所示:图 M1射频卡与读写器的通讯各个模块解释如下:复位应答(Answer to request):M1射频卡的通讯协议和通讯波特率是定义好的,当有卡片进入读写器的操作范围时,读写器以特定的协议与它通讯,从而确定该卡是否为M1射频卡,即验证卡片的卡型。防冲突机制 (Anticollision Loop):当有多张卡进入读写器操作范围时,防冲突机制会从其中选择一张进行操作,未选中的则处于空闲模式等待下一次选卡,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论