第11部分电子收费PSAM卡测试规范0126Word格式文档下载.docx

上传人:b****3 文档编号:18197527 上传时间:2022-12-14 格式:DOCX 页数:19 大小:253.46KB
下载 相关 举报
第11部分电子收费PSAM卡测试规范0126Word格式文档下载.docx_第1页
第1页 / 共19页
第11部分电子收费PSAM卡测试规范0126Word格式文档下载.docx_第2页
第2页 / 共19页
第11部分电子收费PSAM卡测试规范0126Word格式文档下载.docx_第3页
第3页 / 共19页
第11部分电子收费PSAM卡测试规范0126Word格式文档下载.docx_第4页
第4页 / 共19页
第11部分电子收费PSAM卡测试规范0126Word格式文档下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

第11部分电子收费PSAM卡测试规范0126Word格式文档下载.docx

《第11部分电子收费PSAM卡测试规范0126Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第11部分电子收费PSAM卡测试规范0126Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。

第11部分电子收费PSAM卡测试规范0126Word格式文档下载.docx

5.6.3INITSAMFORPURCHASE(计算MAC1)12

5.6.4CREDITSAMFORPURCHASE(校验MAC2)12

5.7随机数测试13

5.7.1GETCHALLENGE13

6.防拔功能测试14

6.1概述14

6.2写二进制防拔流程15

6.3应用临时锁定防拔流程16

6.4应用解锁防拔流程17

6.5卡片锁定/应用永久锁定防拔流程18

6.6WRITEKEY防拔流程19

6.7PURCHASE(校验MAC2)防拔流程20

1.概述

本测试规范基于<

<

示范性工程PSAM卡应用命令接口>

>

,对于PSAM卡片支持的应用命令进行测试。

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

1)《收费公路联网收费技术要求》

2)《联网电子收费PSAM卡应用指南》

3)《JR/T0025-2005中国金融集成电路(IC)卡规范》

3.范围

本文档规定了基于电子收费PSAM卡片支持的应用命令和文件结构进行测试,主要包括以下几个方面:

1)卡片的文件结构

2)规范规定的基本指令功能

3)卡片防拔测试

4.PSAM卡片文件结构

4.1文件结构

4.2文件结构测试

对于检测指南中规定的文件进行测试,检查每个文件内容与写入的一致。

4.2.1DIR文件

4.2.1.1测试目的

DIR文件是MF下的目录文件,读写权限为自由,检查返回数据内容的正确性。

4.2.1.2测试方法

测试步骤:

1)选择MF,读DIR文件应该返回

记录一:

701361114F09A00000000386980701500450424F43

记录二:

701361114F09A00000000386980702500450424F43

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

2)LE=00,应该返回6C15

5.基本指令功能

5.1概述

本文档规定了基于电子收费PSAM卡片规定了一些智能卡必须遵守的基本功能要求,本章主要就是逐个指令描述应该实现的功能和要求。

本章描述的指令包括:

1)文件读写相关的指令:

●READBINARY

●UPDATEBINARY

2)应用安全相关指令:

●APPLICATIONBLOCK

●APPLICATIONUNBLOCK

●CARDLOCK

●RELOADPIN

●GETCHALLENGE

3)文件选择相关指令:

●SELECTFILE

●GETREPONSE

4)密钥管理:

●CHANGEKEY

●WRITEKEY

5)PSAM卡专有命令:

●CIPHERDATA

●DELIVERYKEY

●INITSAMFORPURCHASE

●CREDITSAMFORPURCHASE

5.2文件读写相关命令

5.2.1READBINARY

5.2.1.1测试目的

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

5.2.1.2测试方法

测试步骤:

1)正确性测试:

●明文方式读的二进制文件,可以使用明文方式读出,也可以使用明文+MAC方式读出,此方式读出时,通过取响应返回的报文中不包含MAC

●明文+MAC方式读的二进制文件,使用明文+MAC方式读出时,通过取响应返回的报文中最后四个字节为MAC

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

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

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

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

4)明文+MAC方式读的文件,采用明文+MAC方式读出,最多将读出偏移量后的所有字节或偏移量后的读通信区长度(RLEN)-4个字节

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

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

●命令返回61XX,如果取响应的长度小于XX,应该返回6CXX

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

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

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

8)如果P1P2或P2指定的偏移量超出文件范围,应该返回6B00

9)如果P1P2或P2指定的偏移量加上要读的长度超过实际文件地址空间,应该返回6CXX

10)在没有取随机数的情况下,使用带MAC方式执行此命令时(CLA=04)时,应该返回6984

11)使用校验方式读文件时,如果命令报文中的MAC不正确应该返回6988

5.2.2UPDATEBINARY

5.2.2.1测试目的

UPDATEBINARY命令用于更新二进制文件中的数据

5.2.2.2测试方法

分别使用明文方式,密文方式,校验方式,校验加密方式写文件,应该可以成功

2)测试文件更新的影响,执行该命令后,文件内容应该只改变了从偏移量开始的数据明文长度的内容:

●明文方式写的二进制文件

●密文方式写的二进制文件

●校验方式写的二进制文件

●校验加密方式写的二进制文件

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

4)写ID不存在的文件应该返回6A82

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

6)如果P1P2或P2指定的偏移量超出文件范围,应该返回6B00

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

8)在没有取随机数的情况下,使用带MAC方式执行此命令时(CLA=04),应该返回6984

9)使用加密方式执行修改二进制,MAC不正确应该返回6988

5.3应用安全相关命令

5.3.1APPLICATIONBLOCK

5.3.1.1测试目的

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

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

5.3.1.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)被永久锁定的应用,无法通过应用解锁命令将此应用解锁

5.3.2APPLICATIONUNBLOCK

5.3.2.1测试目的

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

5.3.2.2测试方法

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

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

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

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

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

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

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

5.3.3CARDLOCK

5.3.3.1测试目的

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

5.3.3.2测试方法

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

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

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

5.4文件选择相关指令

5.4.1SELECTFILE

5.4.1.1测试目的

SELECTFILE命令通过文件标识或应用名选择IC卡中的MF、DDF、ADF或EF文件

5.4.1.2测试方法

1)选择MF/DDF/ADF通过取响应返回响应报文采用TLV格式

下表定义了成功选择DDF后回送的FCI:

标签

存在性

‘6F’

FCI模板

M

‘84’

DF名

‘A5’

FCI数据专用模板

‘88’

目录基本文件的SFI

‘9F0C’

FCI文件内容

O

下表定义了成功选择ADF后回送的FCI:

2)密钥文件,存折文件应该不能被选择,选择此类文件时应该返回6A86

3)应用被临时锁定时,选择应用应该返回6A81

4)应用被永久锁定时,选择应用应该返回9303

5.4.2GETREPONSE

5.4.2.1测试目的

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

5.4.2.2测试方法

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

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

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

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

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

5.5密钥管理

5.5.1WRITEKEY

5.5.1.1测试目的

WRITEKEY命令用于向卡片装载或更新密钥。

5.5.1.2测试方法

1)UPTDATEKEY命令的正确性

●执行该命令P2=00更新主控密钥,密钥长度是8字节或者16字节都应该可以成功。

●执行该命令P2=FF更新其他密钥,密钥长度是8字节或者16字节都应该可以成功。

2)执行该命令密钥信息是明文应该返回6A80

3)执行该命令MAC不正确,应该返回6988

4)执行该命令LC长度不正确,应该返回6700

5)执行该命令更新不存在的密钥,应该返回6A88

6)没有执行取随机数应该返回6984

5.6PSAM卡专有命令

5.6.1DELIVERYKEY

5.6.1.1测试目的

DELIVERYKEY命令时用于将指定的KEY分散至临时密钥寄存器,该命令只支持分散KEY,不产生过程KEY。

分散后的子KEY继承原始KEY的属性。

5.6.1.2测试方法

1)该命令在应用没有锁定且已经写入密钥的情况下执行应该返回9000。

2)主控密钥,维护密钥,消费密钥不支持DES初始化,应该返回6989

3)执行DES初始化时,P1的高三位与LC的长度不匹配时,应该返回6A80,有以下几种情况:

●P1的高三位为0,LC长度为8

●P1的高三位为1,LC长度为0或10

4)执行DELIVERYKEY如果LC不是8的倍数,应该返回6700

5)执行DELIVERYKEY密钥标识符不存在应该返回9403

6)应用临时锁定后执行DELIVERYKEY应该返回6985

7)应用永久锁定后执行DELIVERYKEY应该返回9303

8)卡片锁定后执行DELIVERYKEY应该返回6a81.

5.6.2CIPHERDATA

5.6.2.1测试目的

CIPHERDATA命令用于对输入数据进行安全计算

5.6.2.2测试方法

1)执行DELIVERYKEY命令成功后,执行该命令应该返回9000。

●P1=05时计算MAC的正确性

●P1=08时计算MAC的正确性

2)P1=08时执行该命令LC的长度大于等于9字节都应该返回9000。

3)执行CIPHERDATA前必须成功执行DELIVERYKEY,并且两条命令之间不能插入其他命令,否则返回6901。

4)P1=05时执行该命令LC的长度不是8的倍数应该返回6700。

5)P1=05/08时执行该命令LC的长度小于9字节应该返回6700。

5.6.3INITSAMFORPURCHASE(计算MAC1)

5.6.3.1测试目的

INITSAMFORPURCHASE命令支持三级消费密钥分散机制,并产生MAC1。

5.6.3.2测试方法

1)在应用没有锁定的情况下使用密钥版本01和02的消费密钥进行计算,应该返回9000

2)执行MAC1计算命令时,密钥分散级别与数据不符,应该返回6a80.

3)密钥版本不正确应该返回9403

4)消费密钥算法标识不正确,应该返回6a80

5)应用被永久锁定后,执行计算MAC1命令,应该返回9303

6)卡片锁定后,执行计算MAC1命令,应该返回6A81。

5.6.4CREDITSAMFORPURCHASE(校验MAC2)

5.6.4.1测试目的

CREDITSAMFORPURCHASE命令利用INITSAMFORPURCHASE命令产生的过程密钥SESPK校验MAC2。

MAC2校验失败,计算MAC2的KEY限制计数器减一,并回送状态码’63Cx’。

当KEY限制计数器减为0值时,锁定当前应用,可通过应用维护密钥解锁锁定应用。

CREDITSAMFORPURCHASE命令成功后,SAM卡将应用中的消费交易序号加1。

5.6.4.2测试方法

●复位,选择应用

●MAC1计算

●校验MAC2,同时终端交易序号自动加1

2)没有成功执行INITSAMFORPURCHASE,直接执行PURCHASE应该返回6901

3)测试校验MAC2不正确的返回码变化及密钥的锁定

●如果是第一次不正确,应该返回63C2

●如果是第二次不正确,应该返回63C1

●如果是第三次不正确,应该返回63C0

●如果不正确的次数达到三次,不管下一次校验MAC2是否成功以及重复多少次,都应该返回6985。

此时消费密钥所在的应用应该被临时锁定了

●执行应用解锁命令应该返回9000。

执行校验MAC2失败,应该返回63c2。

4)如果校验MAC2正确,应该清计数器的错误次数:

先执行校验MAC2失败,在执行校验MAC2成功,下一次再用不正确的MAC2进行校验,应该返回63CX,其中X为最大错误次数减1

5)应用被永久锁定后,执行计算MAC2命令,应该返回9303

6)卡片锁定后,执行计算MAC2命令,应该返回6A81。

5.7随机数测试

5.7.1GETCHALLENGE

5.7.1.1测试目的

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

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

5.7.1.2测试方法

可以取4个字节或8个字节的随机数

2)执行随机数长度不是4或8字节应该返回6700

3)分析随机数的使用特性:

取随机数后,选择其他应用后,执行了其他指令后再去执行欲执行的指令,应该返回6984:

●取随机数,执行选择应用后,使用该随机数执行明文+MAC写二进制文件,应该返回6984

●取随机数,执行选择应用后,使用该随机数执行明文+MAC写记录文件,应该返回6984

●取随机数,执行选择应用后,使用该随机数执行明文+MAC读二进制文件,应该返回6984

●取随机数,执行选择应用后,使用该随机数执行明文+MAC读记录文件,应该返回6984

●选择应用,取随机数,执行选择应用后,使用该随机数执行UPDATEKEY命令,应该返回6984

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

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

6.防拔功能测试

6.1概述

卡片必须在命令处理过程中的任何情况下,甚至在更新EEPROM过程中掉电的情况下,保持数据的完整性。

因此需要在每次更新数据前对数据进行备份,并且在重新加电后自动地触发恢复机制。

一旦卡片确认更新数据完成,备份数据被丢弃。

6.2写二进制防拔流程

使用明文+MAC写二进制,每次写入的明文数据长度为19H。

6.3应用临时锁定防拔流程

6.4应用解锁防拔流程

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

6.6WRITEKEY防拔流程

6.7PURCHASE(校验MAC2)防拔流程

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

当前位置:首页 > 教学研究 > 教学计划

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

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