第9部分电子收费ICC卡测试规范0126.docx

上传人:b****5 文档编号:8204071 上传时间:2023-01-29 格式:DOCX 页数:35 大小:278.49KB
下载 相关 举报
第9部分电子收费ICC卡测试规范0126.docx_第1页
第1页 / 共35页
第9部分电子收费ICC卡测试规范0126.docx_第2页
第2页 / 共35页
第9部分电子收费ICC卡测试规范0126.docx_第3页
第3页 / 共35页
第9部分电子收费ICC卡测试规范0126.docx_第4页
第4页 / 共35页
第9部分电子收费ICC卡测试规范0126.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

第9部分电子收费ICC卡测试规范0126.docx

《第9部分电子收费ICC卡测试规范0126.docx》由会员分享,可在线阅读,更多相关《第9部分电子收费ICC卡测试规范0126.docx(35页珍藏版)》请在冰豆网上搜索。

第9部分电子收费ICC卡测试规范0126.docx

第9部分电子收费ICC卡测试规范0126

 

联网电子收费ICC(用户卡)

测试规范

 

交通部公路科学研究院

2008年1月

目录

1范围1

2依据/参考的规范和文档1

3个人化测试1

3.1概述1

3.2文件测试1

3.2.1测试目的:

1

3.2.2测试步骤:

1

3.3密钥测试2

3.3.1测试目的:

2

3.3.2测试步骤:

2

4规范规定的功能测试3

4.1基本命令3

4.1.1读二进制3

4.1.2写二进制4

4.1.3校验PIN5

4.1.4修改PIN6

4.1.5重装PIN7

4.1.6PIN解锁8

4.1.7取随机数9

4.1.8应用锁定10

4.1.9应用解锁11

4.1.10卡片锁定11

4.1.11取响应命令12

4.1.12选择12

4.2金融交易命令13

4.2.1圈存13

4.2.2圈提14

4.2.3取现15

4.2.4消费16

4.2.5修改透支限额17

4.2.6读余额17

4.2.7取交易认证18

4.3复合消费命令18

4.3.1复合应用消费19

4.3.2更新复合应用数据缓存19

5交易状态机测试20

5.1测试目的:

20

5.2测试步骤:

20

6随机交易测试21

6.1测试目的:

21

6.2测试步骤:

21

7参数测试22

7.1基本命令22

7.1.1读二进制22

7.1.2写二进制23

7.1.3校验PIN23

7.1.4修改PIN23

7.1.5重装PIN24

7.1.6PIN解锁24

7.1.7取随机数24

7.1.8应用锁定25

7.1.9应用解锁25

7.1.10卡片锁定25

7.1.11取响应26

7.1.12选择26

8防拔插测试26

8.1概述26

8.2防拔流程27

8.2.1写二进制防拔27

8.2.2校验PIN防拔流程28

8.2.3修改PIN/重装PIN防拔流程29

8.2.4解锁PIN防拔流程30

8.2.5应用临时锁定防拔流程31

8.2.6应用解锁防拔流程32

8.2.7卡片锁定/应用永久锁定防拔流程33

1范围

本文档是根据中国金融集成电路IC卡规范的电子钱包/存折和扩展应用规范,对规定的卡片基本功能严格按照银行检测中心的检测要求进行测试。

2依据/参考的规范和文档

1)JR/T0025.4中国金融集成电路(IC)卡规范第1部分电子钱包/存折卡片规范

2)JR/T0025.4中国金融集成电路(IC)卡规范第2部分电子钱包/存折应用规范

3)JR/T0025.4中国金融集成电路(IC)卡规范第9部分电子钱包扩展应用指南

4)银行检测中心--《金融卡测试报告》

3个人化测试

3.1概述

该部分重点描述银行卡检测中心要求的个人化文件结构测试。

从建立文件的大小、权限,密钥版本、标识及文件的选择响应等方面进行限定。

个人化的建立参考附录文档《PBOC2.0检测指南.doc》。

3.2文件测试

3.2.1测试目的:

测试写入文件内容的正确性

3.2.2测试步骤:

1)选择MF,读DIR文件,应该有两条记录,其值分别为:

记录一:

701361114F09A00000000386980701500450424F43

记录二:

701361114F09A00000000386980702500450424F43

读第三条记录,应该返回6A83

2)读0015文件,比较返回的信息与写入的一致。

3)读0016文件,比较返回的信息与写入的一致。

4)选择MF,ADF1,ADF2后,比较响应FCI数据的正确性。

5)使用文件标识符选择MF、ADF和EF,应该返回6A86

●使用文件标识符选择MF,应该返回6A86

●使用文件标识符方式选择ADF1和ADF2,应该返回6A86

●使用文件标识符方式选择EF文件,应该返回6A86

3.3密钥测试

3.3.1测试目的:

测试写入的密钥:

PIN,PIN解锁密钥,PIN重装密钥,应用维护密钥,圈存,圈提,消费,修改透支限额密钥的版本,标识和值的正确性。

3.3.2测试步骤:

1)校验PIN(PIN值为1234),应该能够成功

2)将PIN锁定,使用PIN解锁密钥解锁,并校验原始PIN,应该能够成功

3)执行PIN重装命令装入新的PIN,PIN值为1233;应该能够成功,并校验新装入的PIN

4)使用维护密钥修改0015和0016文件,应该能够成功

5)使用密钥索引为01和02的圈存密钥进行圈存初始化,返回数据中密钥版本号应该为02,算法标识应该为00;进行圈存,应该能够成功

6)使用密钥索引为01和02的圈提密钥进行圈提初始化,返回数据中密钥版本号应该为05,算法标识应该为00;进行圈提,应该能够成功

7)使用密钥索引为01和02的消费密钥进行消费初始化,返回数据中密钥版本号应该为01,算法标识应该为00;进行消费,应该能够成功

8)使用密钥索引为01和02的修改透支限额密钥进行修改透支限额初始化,返回数据中密钥版本号应该为04,算法标识应该为00;进行修改透支限额,应该能够成功

4规范规定的功能测试

该部分根据中国金融集成电路IC卡规范的要求,对规范中出现的基本功能进行详细测试,按照银行检测中心的检测要求严格限定。

4.1基本命令

根据规范要求,必须检测的APDU命令有:

1)READBINARY

2)UPDATEBINARY

3)VERIFY

4)PINCHANGE/UNBLOCK

5)RELOADPIN

6)GETCHALLENGE

7)APPLICATIONBLOCK

8)APPLICATIONUNBLOCK

9)CARDBLOCK

10)GETRESPONSE

11)SELECT

4.1.1读二进制

4.1.1.1测试目的:

READBINARY命令用于读出二进制文件的内容(或部分内容)。

4.1.1.2测试步骤:

1)正确性测试:

明文方式读的文件,采用明文方式读出,最多将读出偏移量后的所有字节或偏移量后的255个字节:

●如果偏移量后的字节超过255个,最多返回255个字节

●如果偏移量后的字节小于255个,最多返回偏移量后的所有字节

2)如果P1P2或P2指定的偏移量超过实际文件地址空间,应该返回6B00

3)执行读二进制命令LE=00,应该返回6CXX(XX是文件实际长度)

4)读不是二进制文件类型的文件时应该返回6981

5)读ID不存在的文件应该返回6A82

6)没有当前文件时,指定读当前文件应该返回6A82

4.1.2写二进制

4.1.2.1测试目的:

UPDATEBINARY命令用于更新二进制文件中的数据.根据检测要求只能使用04方式更新二进制文件。

4.1.2.2测试步骤:

1)正确性测试:

使用明文+MAC方式写二进制文件应该返回9000

2)执行UPDATEBINARY使用偏移量方式写文件,应该返回9000

3)如果P1P2或P2指定的偏移量超过文件空间,应该返回6B00

4)如果P1P2或P2指定的偏移量加上要写的长度超过文件空间,应该返回6700

5)使用写二进制文件方式写记录文件,应该返回6981

6)没有取随机数,使用明文+MAC方式写文件,应该返回6984

7)明文+MAC方式写文件时,如果命令报文中的MAC连续三次不对,应用会被永久锁定

●第一次执行该命令的MAC不对,应该返回6988

●第二次执行该命令的MAC不对,应该返回6988

●第三次执行该命令的MAC不对,应该返回9303,且该应用被永久锁定

8)明文+MAC方式写文件时,命令正确运行后,应该清MAC出错的错误计数器:

●第一次执行该命令的MAC不对,应该返回6988

●第二次正确执行该命令

●再次执行该命令的MAC不对,应该返回6988

●第二次执行该命令的MAC不对,应该返回6988

●第三次执行该命令的MAC不对,应该返回9303,且该应用被永久锁定

4.1.3校验PIN

4.1.3.1测试目的:

VERIFY命令引发IC卡将命令报文数据域内的交易PIN数据和与该应用相关的参考PIN数据进行比较验证

4.1.3.2测试步骤:

1)正确性测试:

使用写入的PIN值1234进行校验,应该返回9000

2)选择MF,使用1234值进行校验,应该返回9403

3)如果输入的PIN值为0~9之间的值不正确,执行该命令应该返回63CX

4)如果输入的PIN值为A-F间的值时,应该返回63CX

5)如果校验不正确,返回码的变化及口令锁定:

●第一次校验不正确,应该返回63C2

●第二次校验不正确,应该返回63C1

●第三次校验不正确,应该返回63C0

●此时,再次执行该命令,无论PIN是否正确,都应该返回6983

6)如果校验正确,应该清PIN的错误计数器:

●先错误校验一次,返回63C2

●再正确校验一次,返回9000

●再错误校验一次,应该返回63C2

●再错误校验一次,应该返回63C1

●再正确校验一次,返回9000

●再错误校验一次,应该返回63C2

7)校验正确后,验证PIN标志位已经设置:

复位后选择应用ADF1,执行圈存交易返回6982,校验正确后,圈存交易可以执行

8)校验正确后,验证卡片的状态机为校验PIN的后续状态:

9)复位后选择ADF1,读钱包余额应该返回6982,校验正确后,再次读钱包余额,应该能够成功

10)校验不正确后,验证PIN标志位已经被清:

11)复位后选择应用ADF1,执行圈存交易返回6982,校验正确后,圈存交易可以执行,校验不正确后,执行圈存交易返回6982

12)校验不正确,验证卡片的状态机清0:

13)复位后选择ADF1,校验正确后,再次读钱包余额,应该能够成功,校验不正确后,读钱包余额应该返回6982

4.1.4修改PIN

4.1.4.1测试目的:

PINCHANGE/UNBLOCK命令用于修改PIN为新值,且同时改变Pin错误计数器的值。

4.1.4.2测试步骤:

1)正确性测试:

●测试把口令从1234变为123456123456并校验

●测试把口令从123456123456变为12345612345F并校验

●测试把口令从12345612345F变为123F并校验

●测试把口令从123F变为1234并校验

2)新老口令的数据长度(数据报文域中FF字节前后的长度)都应该在2到6间,否则返回6A80,有以下几种组合情况:

●老口令长度为1,新口令长度为3

●老口令长度为7,新口令长度为3

●老口令长度为3,新口令长度为1

●老口令长度为3,新口令长度为7

●老口令长度为1,新口令长度为7

●老口令长度为7,新口令长度为1

3)新、老口令必须符合规范,否则返回6A80,有以下几种组合情况:

●老口令规范,新口令不规范

●老口令不规范,新口令规范

●老口令不规范,新口令不规范

4)老口令和新口令之间应该用FF连接,如果没有FF,返回6A80

5)如果修改正确,应该清PIN的错误次数:

先用错误的老口令修改错误一次,再修改成功,下一次再次用不正确的老口令修改时,应该返回63CX,其中X为最大错误次数减1

6)测试修改时老口令不正确的返回码变化,及口令的锁定:

●如果是第一次修改但老口令不正确,应该返回63C2

●如果是第二次修改但老口令不正确,应该返回63C1

●如果是第三次修改但老口令不正确,应该返回63C0

●如果不正确次数已达到三次,不管再次修改的老口令是否正确以及修改命令执行多少次,都应该返回6983

7)修改正确后,验证PIN标志位应该不变:

●原来已验证PIN的标志位仍为已验证:

复位后选择应用,校验口令正确后,圈存交易可以执行,修改口令成功后,圈存交易仍可以执行

●没有验证PIN的标志位仍为未验证:

复位后选择应用,执行圈存交易返回6982,修改口令成功后,执行圈存交易仍返回6982。

使用新PIN校验成功后,再执行圈存交易应该返回9000

8)老口令不正确,执行修改指令后,验证PIN标志位应该已经被清:

●复位后选择应用,校验口令正确后,圈存交易可以执行,使用错误的老口令执行修改口令后,再次执行圈存交易应该返回6982

4.1.5重装PIN

4.1.5.1测试目的:

RELOADPIN命令用于修改PIN为新值,且同时改变Pin错误计数器的值。

4.1.5.2测试步骤:

1)正确性测试:

●分别选择应用ADF1和应用ADF2,正确执行PIN重装,应该能够成功

●在PIN没有被锁的情况通过该指令修改PIN:

✓从1234修改为123456123456,并校验成功

✓再修改为1234,并校验成功

✓再修改为12345612345F,并校验成功

✓再修改为123F,并校验成功

✓再修改为1234,并校验成功

●在PIN被锁的情况通过该指令修改PIN(原口令为1234):

✓锁定口令,修改为123456123456,并校验成功

✓锁定口令,再修改为1234,并校验成功

✓锁定口令,再修改为12345612345F,并校验成功

✓锁定口令,再修改为123F,并校验成功

✓锁定口令,再修改为1234,并校验成功

2)数据报文中的新口令必须符合规范,否则返回6A80

3)测试命令报文中的MAC不对,将应用永久锁定的情况:

●第一次执行该命令的MAC不对,应该返回6988

●第二次执行该命令的MAC不对,应该返回6988

●第三次执行该命令的MAC不对,应该返回9303,且该应用被永久锁定

4)此命令正确运行后,应该清重装PIN的错误计数器和PIN自身的错误计数器:

●复位选择应用,错误的校验PIN,应该返回63C2

●第一次执行该命令的MAC不对,应该返回6988

●第二次执行该命令的MAC不对,应该返回6988

●第三次执行正确执行该命令,再次错误的校验PIN,应该返回63C2

●第一次执行该命令的MAC不对,应该返回6988

●第二次执行该命令的MAC不对,应该返回6988

●第三次执行该命令的MAC不对,应该返回9303,且该应用被永久锁定

4.1.6PIN解锁

4.1.6.1测试目的:

PINCHANGE/UNBLOCK命令用于将锁定的PIN进行解锁,同时恢复PIN错误计数器。

4.1.6.2测试步骤:

1)正确性测试:

PIN锁定后,执行PIN解锁,应该返回9000

2)PIN未被锁死的情况下,执行此命令应该返回6985

3)在没有取随机数的情况下,执行此命令应该返回6984

4)使用UNBLOCKPIN命令,数据长度为0(DES计算前第一个为00),应该返回6700

5)测试命令报文中的MAC不对,将应用永久锁定的情况:

●第一次执行该命令的MAC不对,应该返回6988

●第二次执行该命令的MAC不对,应该返回6988

●第三次执行该命令的MAC不对,应该返回9303,且该应用被永久锁定

6)测试命令报文中的PIN明文不对,将应用永久锁定的情况:

●第一次执行该命令的PIN明文不对,应该返回6988

●第二次执行该命令的PIN明文不对,应该返回6988

●第三次执行该命令的PIN明文不对,应该返回9303,且该应用被永久锁定

7)此命令正确运行后,应该清解锁PIN的错误计数器和PIN自身的错误计数器:

●PIN锁定后,第一次执行该命令的MAC不对,应该返回6988

●第二次执行该命令的PIN明文不对,应该返回6988

●第三次执行正确执行该命令

●再次错误的校验PIN,应该返回63C2,直至锁死,再次执行解锁命令

●第一次执行该命令的PIN明文不对,应该返回6988

●第二次执行该命令的MAC不对,应该返回6988

●第三次执行该命令的PIN明文不对,应该返回9303,且该应用被永久锁定

4.1.7取随机数

4.1.7.1测试目的:

GETCHALLENGE命令请求一个永远全过程的随机数。

除非掉电、选择了其他应用后又发出了一个GETCHALLENGE命令,该随机数将一直有效

4.1.7.2测试步骤:

1)正确性测试:

●选择MF,执行取4字节随机数,应该能够成功

●分别选择ADF1和ADF2,执行取4字节随机数,应该能够成功

●随机数在各项性能符合要求(按照FIPS1402):

✓位1的个数在9725-10275之间

✓半字节的值出现0-F的随机性在2.16-46.17之间

✓1个数据位1/0连续出现的间隔数在2315-2685之间

✓2个数据位1/0连续出现的间隔数在1114-1386之间

✓3个数据位1/0连续出现的间隔数在527-723之间

✓4个数据位1/0连续出现的间隔数在240-384之间

✓5个数据位1/0连续出现的间隔数在103-209之间

✓26个数据位1/0连续出现的次数为0

测试方法:

取2500个随机数到文件中,用测试程序中提供的工具进行分析。

●对交易初始化命令返回的随机数进行性能测试

2)随机数的使用特性测试:

●一次随机数只能提供给紧接着的下一条命令使用,取了随机数后,后面没有接着执行取执行的指令,执行了其他指令后再去执行欲执行的指令,应该返回6984:

✓取随机数,校验口令,使用该随机数执行明文+MAC写二进制0015文件,应该返回6984

✓选择应用,取随机数,校验口令,使用该随机数执行应用临时锁定,应该返回6984

✓选择应用,取随机数,校验口令,使用该随机数执行应用永久锁定,应该返回6984

✓选择应用,将应用临时锁定,取随机数,校验口令,使用该随机数执行应用解锁,应该返回6984

✓选择应用,取随机数,校验口令,使用该随机数执行卡片锁定,应该返回6984

●一次随机数只能使用一次

✓取随机数,正确执行明文+MAC写二进制0016文件,再次使用该随机数执行该命令,应该返回6984

✓选择应用,取随机数,正确执行应用临时锁定,再次使用该随机数执行应用解锁,应该返回6984

✓选择应用,取随机数,正确执行应用永久锁定,再次使用该随机数执行卡片锁定,应该返回6984

4.1.8应用锁定

4.1.8.1测试目的:

应用锁定命令执行成功后,锁定当前有效的应用。

应用临时锁定后选择应用应该返回6A81,可以通过GETRESPONSE命令获取FCI信息,应用被永久锁定应该返回9303。

4.1.8.2测试步骤:

1)复位,选择应用,执行应用临时锁定,应该可以执行成功,再次选择该应用应该返回6A81

2)继续执行应用永久锁定,同样应该可以执行成功,再次选择该应用应该返回9303

3)应用已被临时锁定时,再次执行应用临时锁定命令应该返回9000

4)应用临时锁定后,执行选择该应用的指令,虽然返回6A81,但仍可以紧接着通过取响应指令得到正常选择该应用的FCI,取出全部响应的返回码为9000

5)测试命令报文中的MAC不对,导致应用永久锁定的情况:

●第一次执行该命令的MAC不对,应该返回6988

●第二次执行该命令的MAC不对,应该返回6988

●第三次执行该命令的MAC不对,应该返回9303,且该应用被永久锁定

6)执行此命令前应该先从卡取随机数,否则返回6984

7)应用临时锁定后,在该应用下只能执行取随机数、应用解锁、应用临时锁定、应用永久锁定、卡片锁定这四条命令,执行其他命令均返回6985,

8)应用永久锁定后,执行选择该应用的指令,应该返回9303且无法通过取响应指令得到该应用的FCI,执行取响应返回9303

9)应用永久锁定后,在该应用下只能执行取随机数、卡片锁定这两条命令,执行其他命令均返回9303

10)被临时锁定的应用,可以通过应用解锁命令将此应用解锁

11)被永久锁定的应用,无法通过应用解锁命令将此应用解锁

4.1.9应用解锁

4.1.9.1测试目的:

APPLICATIONUNBLOCK命令执行成功后,解锁当前锁定的应用。

4.1.9.2测试步骤:

1)应用临时锁定后执行应用解锁,应该返回9000

2)应用永久锁定后执行应用解锁,应该返回9303

3)应用没有被锁定时,执行此命令,应该返回6985

4)执行此命令前必须产生随机数,否则返回6984

5)执行应用解锁命令正确后,应该清解锁错误计数器:

●应用临时锁定后,第一次执行该命令的MAC不对,应该返回6988

●第二次执行该命令的MAC不对,应该返回6988

●第三次执行正确执行该命令,该应用被解锁,再次将应用临时锁定后

●第一次执行该命令的MAC不对,应该返回6988

●第二次执行该命令的MAC不对,应该返回6988

●第三次执行该命令的MAC不对,应该返回9303,且该应用被永久锁定

4.1.10卡片锁定

4.1.10.1测试目的:

CARDBLOCK命令成功后,应用环境被锁定,执行任何命令都应该返回6A81

4.1.10.2测试步骤:

1)卡片锁定后,应该无法执行所有命令,皆返回6A81

2)执行此命令前必须先取随机数,否则返回6984

3)执行该指令时MAC不对,应该返回6988,错误任意次后仍应该返回6988

4.1.11取响应命令

4.1.11.1测试目的:

当APDU不能用现有协议传输时,GETRESPONSE命令提供了一种从卡片向接口设备传送APDU(或APDU的一部分)的传输方法。

4.1.11.2测试步骤:

1)正确性测试:

应用没有锁定,选择MF和ADF,应该返回61XX,执行GETRESPONSE命令取出FCI应该可以成功。

2)读二进制时指定P3=00,返回6CXX(XX是实际长度)

3)交易指令:

如圈存初始化、圈存、修改透支初始化、修改透支、圈提初始化、圈提、消费初始化、消费、取现初始化、取现、灰锁初始化、灰锁、联机解扣初始化、联机解扣、解扣、取交易认证,返回61XX后执行取响应应该返回9000

4)执行部分取响应应该返回数据+61XX(XX是剩余长度)

5)没有响应,执行取响应命令应该返回6F00

6)应用锁定后,选择应用返回6A81,执行GETRESPONSE命令应该取出FCI

4.1.12选择

4.1.12.1测试目的:

选择命令通过文件名或AID来选择IC卡中的PSE、DDF或ADF,成功执行该命令设定PSE、DDF或ADF的路径。

后续命令作用于与用SFI选定的PSE、DDF或ADF相联系的AEF。

从IC卡返回的应答报文包含回送FCI。

4.1.12.2测试步骤:

1)正确性测试:

●使用DF文件名称选择应用:

✓选择MF,应

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1