CPU卡调试与发卡总结

一、 CPU卡的操做步骤:寻卡-防冲突-选卡-ATS,前面三步和M1操做彻底同样,属于ISO14443A前面三层的操做,ATS成功后就进入ISO14443A-4协议层了,也就进入了CPU卡的操做层。[喝小酒的网摘]http://blog.hehehehehe.cn/a/17513.htm算法

二、 PPS是能够不作的,只有RATS的返回值代表其接收能力大于PCD的发送便可。PPS用来设置通讯时的波特率,经过RATS命令响应数据07 77 80 A0 02 47 56能够判断该卡仅支持106K波特率。因此PCD也没有经过PPS指令修改通讯波特率的必要了。固然PPS指令从新按106K波特率设置一下也是能够 的,RATS以及后续的PCD指令都须要加上CRC的。安全

三、 ISO14443-4只规定到PPS指令,后续的指令都须要由CPU卡内部的软件COS来解释,因此卡片完成SELECT,经过RATS和PPS指令后,必须发COS支持的指令。发COS支持的指令通常都须要加CRC的。加密

四、 发送取随机数命令00 84 00 00 04,根据块格式规定,除了发送这个指令外,还要发送PCB和CID,即实际发送的字符是0A 01 00 84 00 00 04,0A01这两个字节必须加在每一个指令字符串的前面,而且块号不能重复,即若是你连续2次取随机数,需以下发送:0A 01 00 84 00 00 04 ,0B 01 00 84 00 00 04.即第一个字节的最后一位要不断变化。设计

五、 取随机数命令可取4字节或8字节。若取随机数命令下条指令为外部认证,则外部认证数据用指定的外部认证密钥解密后与该随机数进行比较。外部认证命令要求 CPU卡存在用于外部认证的密钥。在知足该密钥的使用条件,且该密钥未被锁死时才能执行此命令。将命令中的数据用指定外部认证密钥解密,而后与先前产生的 随机数进行比较,若一致则表示认证经过,置安全状态寄存器为该密钥规定的后续状态值,错误计数器恢复成初始值,若比较不一致则认证失败,可再试错误数减 一,且不改变安全状态寄存器的值。htm

六、 MF文件惟一存在,CPU卡复位后,卡片自动选择MF文件为当前文件。任何一个DF在物理上和逻辑上都保持独立,都有本身的安全机制和应用数据。能够经过 应用选择实现对其逻辑结构的访问。能够将单个DF文件以及其中一个或多个EF文件当作一个应用。也能够将多个DF以及其中多个EF文件看成一个应用。基本 文件EF用于存放用户数据和密钥,存放用户数据的文件称为工做基本文件,在知足必定条件下用户可对文件进行相应的操做。blog

KEY文件称为内部基本文件,不可由外部读出,但当得到许可的权限时可在卡内进行相应的密码运算,在知足写的权限时能够修改密钥。KEY文件必须在 MF/DF下最早被创建,且一个目录只能有一个KEY文件。KEY文件能够存多个口令密钥,外部认证密钥,DES运算密钥,每一个密钥为一个TLV格式的可 变长记录,记录的长度为密钥数据长度加8,3DES密钥长度为24字节,DES密钥记录的长度为16字节。索引

七、 外部认证内存

A、 取随机数能够取4字节,也能够取8字节,若是是4字节,则在后面加上4字节0,也就是参与加密运算的随机数是8字节。字符串

B、 外部认证所用的加密算法是DES/3DES算法程序设计

C、 密钥是指外部认证密钥

D、若是密钥的长度是8字节,则适用DES算法,若是密钥长度为16字节,则适用3DES算法。

八、 通常CPU卡提供商提供CPU卡时,已经对CPU卡进行过初始化,即CPU卡上已经创建了主文件MF及主密钥文件(MF下的KEY文件),主密钥文件中也 写入了初始化CPU卡主控密钥。在对CPU卡创建特定的卡结构及写入密钥和数据以前,程序设计中的第一步应该对CPU卡进行外部认证。外部认证所使用的密 钥正是初始CPU卡主控密钥。当完成外部认证后,接下来最好是擦除CPU卡上已有的结构,而后开始从新创建CPU卡结构。

九、 文件标识符是文件的标识代码,用2个字节表示,同一目录下的文件标识符必须是惟一的,MF的文件标识符是3F00。短文件标识符选择只能用5位来决定。所 以可选择的最大文件标识符是31。选择文件后,只要文件存在,该文件就被置为当前文件,之后能够不用选择而直接对该文件进行操做。文件类型在创建文件时规 定。

十、 删除MF文件后,选择MF会返回FA 01 01,程序要一直发送FA 01 01给1208,直到收到0A 0B开头的数据。若是MF下没有密钥文件,创建KEY文件不需外部认证。

十一、 在多应用卡中,MF下一般包含多个DF,这里的MF就是一个典型的DDF,为了维护管理DDF下全部的DF,在每个DDF下通常能够包含一个系统文件(DIR),记录全部子DF的入口,若是只有一个ADF应用,不需创建DIR文件。

十二、 DF文件短标识符,当高三位为000时,为DDF,当高三位为100时,为ADF的短文件标识符,在创建目录文件时,要指定2字节文件标识符,短文件标识 符,文件名。短文件标识符要在1-31之间,和文件标识符没有关系。在卡片出厂时创建MF,MF的短文件标识符应为01,由于创建MF下密钥文件使用的 DF短标识符是01。因此自建一个DF,短文件标识符应定义为02或其它值。同一目录下的文件标识符必须是惟一的。

1三、 密钥标识,若是该目录下某类型密钥只有一个,则其密钥标识原则上应为00,不然应从01顺序开始。

1四、 增长权限:在当前目录下建立新文件的权限

激活权限:激活失效安全机制的权限

终止权限:永久终止的权限,对于MF来讲,标识卡锁定,对于ADF来讲,表示当前应用永久锁定,即应用失效。

读权限:对EF文件的内容的读操做权限

写权限:对EF文件内容的写操做权限

安装权限:安装密钥和密码的权限

使用权限:表示使用密钥或密码的权限

修改权限:修改密钥或密码的权限

解锁权限:解锁密码PIN的权限,此权限只有PIN才有

1五、 安全机制是指安全状态的改变所采用的方法和手段以及安全属性和安全状态之间的控制关系,COS命令在执行过程当中,首先要检查COS环境所处的安全状态是否 符合执行命令需求的安全属性,假设当前COS所处的是安全状态A,执行COS命令安全属性要求为安全状态B,在执行COS命令前要经过安全机制涉及安全提 升方法,将安全状态提高到安全状态B。

1六、 内部认证是用读卡设备来认证卡,保证卡的合法性,内部认证能够防止伪造的卡在读卡设备上进行操做。

外部认证是用卡来认证外部读卡设备的合法性,外部认证能够防止恶意对卡进行操做,读取或更改卡内信息。外部认证还能够改变卡的安全状态,通常卡内存 储了多个外部认证密钥,每一个外部认证密钥多能改变的安全状态不同,在进行外部认证时,必须经过密钥索引参数选择对应的外部认证密钥完成外部认证。

CPU卡和读卡设备存放吸纳沟通的密钥

外部认证步骤:

A、 CPU卡产生一个8进制随机数送给读卡器,CPU卡临时保存随机数在卡内

B、 读卡器程序用密钥计算随机数,获得随机数密文

C、 读卡器程序把8字节随机数密文送给CPU卡

D、CPU卡在卡片内部解密8字节随机数获得随机数明文

E、 CPU卡在卡片内部把解密后的随机数和步骤A中临时存放的随机数对比,若相等,则外部认证密钥成功

外部认证是CPU卡认证读卡器

内部认证步骤:

A、 读卡器产生一个8字节随机数,发送给CPU卡,读卡器临时保存这个随机数。

B、 CPU卡用内部认证密钥计算这个随机数,获得8字节随机数密文。

C、 CPU卡把随机数密文发给读卡器

D、读卡器解密8字节随机数密文获得随机数明文

E、 读卡器把解密后的随机数和步骤A中产生的随机数对比,若相等,则内部认证成功。

内部认证是读卡器认证CPU卡

相关文章
相关标签/搜索