CN105068910B - 一种智能卡的测试方法和装置 - Google Patents
一种智能卡的测试方法和装置 Download PDFInfo
- Publication number
- CN105068910B CN105068910B CN201510497694.9A CN201510497694A CN105068910B CN 105068910 B CN105068910 B CN 105068910B CN 201510497694 A CN201510497694 A CN 201510497694A CN 105068910 B CN105068910 B CN 105068910B
- Authority
- CN
- China
- Prior art keywords
- smart card
- test
- card
- test code
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Credit Cards Or The Like (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种智能卡的测试方法和装置。所述方法,包括:输出预先存储的指令信息,其中所述指令信息为用于测试智能卡的指令信息;接收外部利用所述测试指令信息编辑得到的测试代码;利用所述测试代码对所述智能卡进行测试。
Description
技术领域
本发明涉及通信领域,尤其涉及一种智能卡的测试方法和装置。
背景技术
金融IC卡已成为金融支付领域的重要发展趋势。金融IC卡安全性高、信息存储容量大,并且相比较磁条卡,在防范银行卡交易欺诈风险和提升金融支付工具附加功能等方面有得天独厚的优势,因此越来越得到银行的青睐。
金融IC卡在正式商用前,必须对卡片操作系统进行严格的内部测试,测试内容主要包括未知指令安全性检测、特定算法正确性检测、文件系统访问权限控制检测、指令一致性检测、个人化后文件操作及访问控制检测、多应用安全性检测、卡片寿命检测等,而这些检测需要通过读卡器对卡片发送数以百万计的APDU指令实现,通过人工逐个发送显然是不现实的,因此,需要一套具有高度智能化的检测工具实现对以上测试点的检测。
现已有的测试工具只针对单一规范,通用性不足。一般根据ISO 7816-4规范和特定智能卡操作系统设计测试用例,不涉及各行业规范,例如对金融、社保卡测试不够全面。
发明内容
本发明提供一种智能卡的测试方法和装置,要解决的技术问题是如何提高测试的通用性。
为解决上述技术问题,本发明提供了如下技术方案:
一种智能卡的测试方法,包括:
输出预先存储的指令信息,其中所述指令信息为用于测试智能卡的指令信息;
接收外部利用所述测试指令信息编辑得到的测试代码;
利用所述测试代码对所述智能卡进行测试。
其中,所述利用所述测试代码对所述智能卡进行测试,包括:
当同时对至少两个智能卡发送测试代码时,向所述至少两个智能卡中的第一智能卡发送测试代码时,其中所述测试代码包括第一智能卡的标识信息;
以及,接收所述第一智能卡反馈的测试结果,其中所述测试结果包括所述第一智能卡的标识信息。
其中,在接收所述第一智能卡反馈的测试结果之后,还包括:
根据所述第一智能卡的反馈结果,获取所述至少两个智能卡中的第二智能卡的测试指令;
向所述至少两个智能卡中的第二智能卡发送测试代码时,其中所述测试代码包括第二智能卡的标识信息;
以及,接收所述第二智能卡反馈的测试结果,其中所述测试结果包括所述第二智能卡的标识信息。
其中,在利用所述测试代码对所述智能卡进行测试之前,还包括:
读取智能卡连接的读卡器的接口的类型信息;
根据读卡器的类型,确定所述测试代码的发送策略;
根据所述发送策略,通过所述读卡器发送所述测试代码。
一种智能卡的测试装置,包括:
输出模块,用于输出预先存储的指令信息,其中所述指令信息为用于测试智能卡的指令信息;
接收模块,用于接收外部利用所述测试指令信息编辑得到的测试代码;
测试模块,用于利用所述测试代码对所述智能卡进行测试。
其中,所述测试模块包括:
第一发送单元,用于当同时对至少两个智能卡发送测试代码时,向所述至少两个智能卡中的第一智能卡发送测试代码时,其中所述测试代码包括第一智能卡的标识信息;
第一接收单元,用于接收所述第一智能卡反馈的测试结果,其中所述测试结果包括所述第一智能卡的标识信息。
其中,所述测试模块还包括:
获取单元,用于在接收所述第一智能卡反馈的测试结果之后,根据所述第一智能卡的反馈结果,获取所述至少两个智能卡中的第二智能卡的测试指令;
第二发送单元,用于向所述至少两个智能卡中的第二智能卡发送测试代码时,其中所述测试代码包括第二智能卡的标识信息;
第二接收单元,用于接收所述第二智能卡反馈的测试结果,其中所述测试结果包括所述第二智能卡的标识信息。
其中,所述装置还包括:
读取模块,用于在利用所述测试代码对所述智能卡进行测试之前,读取智能卡连接的读卡器的接口的类型信息;
确定模块,用于根据读卡器的类型,确定所述测试代码的发送策略;
其中,所述测试模块根据所述发送策略,通过所述读卡器发送所述测试代码。
本发明提供的实施例,通过输出预先存储的指令信息,允许用户使用脚本语言所支持的内部指令组合新的外部指令,使能够根据不同的应用场景或者行业规范,设计不同的测试脚本对智能卡操作系统进行测试,解决了以前测试工具只支持单一规范和通用性不足的缺陷。
附图说明
图1为本发明提供的智能卡的测试方法实施例的流程图;
图2为本发明提供的智能卡的测试装置实施例的结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步的详细描述。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图1为本发明提供的智能卡的测试方法实施例的流程图。图1所示方法包括:
步骤101、输出预先存储的指令信息,其中所述指令信息为用于测试智能卡的指令信息;
步骤102、接收外部利用所述测试指令信息编辑得到的测试代码;
步骤103、利用所述测试代码对所述智能卡进行测试。
本发明提供的实施例,通过输出预先存储的指令信息,允许用户使用脚本语言所支持的内部指令组合新的外部指令,使能够根据不同的应用场景或者行业规范,设计不同的测试脚本对智能卡操作系统进行测试,解决了以前测试工具只支持单一规范和通用性不足的缺陷。
下面对本发明提供的方法作进一步说明:
举例来说,现在测试工具提供以下几个函数
*ADD P1[IN],P2[IN],P3[OUT],将两个16进制的数P1,P2相加,结果放入P3
*HTOD P1[IN],P2[OUT],将16进制的数P1转换为10进制的数P2
*DTOH P1[IN],P2[OUT],将10进制的数P1转换为16进制的数P2
如果用户需要做两个十进制数的加法,则必须先调用DTOH将10进制数转换为16进制数,然后通过ADD做加法,最后通过HTOD再将结果转换为10进制数,比较麻烦,用户可以编写一个ADDH指令放到工具/lib目录下,然后直接调用*ADDH P1[IN],P2[IN],P3[OUT]将两个10进制数相加,具体ADDH指令编写方式如下:
ADDH.ts
#define ADDH p1[in],p2[in],p3[out]
*DTOH$p1,$p1
*DTOH$p2,$p2
*ADD$p1,$p2,$p3
*HTOD$p3,$p3
完成上述文件编写后,用户就可以直接调用*ADDH P1[IN],P2[IN],P3[OUT]了,该指令就是用户通过内部指令编写的新外部指令。
在实际应用中,可以更新本地存储的指令信息,方便用户开发新的测试代码。
随着技术的发展,目前需要多卡同时操作的应用场景,因此允许测试工具同时对多张卡片发送指令,且能相互共享卡片返回数据。
其中,所述利用所述测试代码对所述智能卡进行测试,包括:
当同时对至少两个智能卡发送测试代码时,向所述至少两个智能卡中的第一智能卡发送测试代码时,其中所述测试代码包括第一智能卡的标识信息;
以及,接收所述第一智能卡反馈的测试结果,其中所述测试结果包括所述第一智能卡的标识信息。
进一步的,在接收所述第一智能卡反馈的测试结果之后,还包括:
根据所述第一智能卡的反馈结果,获取所述至少两个智能卡中的第二智能卡的测试指令;
向所述至少两个智能卡中的第二智能卡发送测试代码时,其中所述测试代码包括第二智能卡的标识信息;
以及,接收所述第二智能卡反馈的测试结果,其中所述测试结果包括所述第二智能卡的标识信息。
发送给不同卡片数据有不同的指令,例如给卡片A发送则为*APDUA
给卡片B发送指令则为*APDUB,界面上也提供了打开读卡器A,B,C的相对应按钮。
共享卡片的返回数据的主要应用场景为多卡数据交互的情况。
举例来说,在使用公交卡进行消费时,需要消费密钥,该密钥不直接存储在POS上,而是存储在POS上一个名叫PSAM卡的卡片上,要进行消费,则必须先读取公交卡信息,传递到PSAM卡进行加密,将加密结果再传递给公交卡以认证POS的合法性,该场景要求必须能够进行多卡数据交互。
对非PC/SC协议读卡器,根据读卡器厂家给予的读卡器驱动接口。
在现有技术中,如果读卡器不支持非PCSC协议。一般不能够通过非PCSC协议的读卡器连接卡片,限制了对于卡片/读卡器兼容性的测试。
其中,PCSC协议是用于电脑和读卡器之间进行通信协议,是主流协议,但是并不是所有读卡器都遵循,部分读卡器使用自己单独的协议,需要测试工具调用该类型读卡器单独的API进行通信。14443协议时读卡器和卡片进行通信的协议,因该协议较为复杂,所以并不是所有读卡器都完全遵循该协议,假设14443协议要求发送完apdu指令后必须等待1秒后才能发下一条指令,也许该类型读卡器在等待了0.5秒就下发了指令,如出现上述情况,就需要修改卡片上的东西对增加对该类型读卡器的兼容性。
其中,在利用所述测试代码对所述智能卡进行测试之前,还包括:
读取智能卡连接的读卡器的接口的类型信息;
根据读卡器的类型,确定所述测试代码的发送策略;
根据所述发送策略,通过所述读卡器发送所述测试代码。
具体的,兼容性测试主要是指部分读卡器使用的14443协议非标准14443协议,没有严格遵循规范,致使卡片要想使用该读卡器,则必须对卡片的通信协议进行修改。现有软件基本上只能够支持PCSC接口协议,根本无法连接到这类读卡器,更不用说进行通信了,因为只支持PCSC接口读卡器,所以一般遇到需要发送指令的地方,直接调用PCSC接口的API发送指令,不用考虑其它类型读卡器的问题。
在本发明中,创建了一个单独的读卡器类,内部包含了各类协议读卡器接口,每次需要发送指令的时候均需要该类去判断连接的是哪类读卡器,需要调用哪个API去发送指令。
图2为本发明提供的智能卡的测试装置的结构图。图2所示装置包括:
输出模块201,用于输出预先存储的指令信息,其中所述指令信息为用于测试智能卡的指令信息;
接收模块202,用于接收外部利用所述测试指令信息编辑得到的测试代码;
测试模块203,用于利用所述测试代码对所述智能卡进行测试。
其中,所述测试模块203包括:
第一发送单元,用于当同时对至少两个智能卡发送测试代码时,向所述至少两个智能卡中的第一智能卡发送测试代码时,其中所述测试代码包括第一智能卡的标识信息;
第一接收单元,用于接收所述第一智能卡反馈的测试结果,其中所述测试结果包括所述第一智能卡的标识信息。
其中,所述测试模块203还包括:
获取单元,用于在接收所述第一智能卡反馈的测试结果之后,根据所述第一智能卡的反馈结果,获取所述至少两个智能卡中的第二智能卡的测试指令;
第二发送单元,用于向所述至少两个智能卡中的第二智能卡发送测试代码时,其中所述测试代码包括第二智能卡的标识信息;
第二接收单元,用于接收所述第二智能卡反馈的测试结果,其中所述测试结果包括所述第二智能卡的标识信息。
其中,所述装置还包括:
读取模块,用于在利用所述测试代码对所述智能卡进行测试之前,读取智能卡连接的读卡器的接口的类型信息;
确定模块,用于根据读卡器的类型,确定所述测试代码的发送策略;
其中,所述测试模块根据所述发送策略,通过所述读卡器发送所述测试代码。
本发明提供的实施例,通过输出预先存储的指令信息,允许用户使用脚本语言所支持的内部指令组合新的外部指令,使能够根据不同的应用场景或者行业规范,设计不同的测试脚本对智能卡操作系统进行测试,解决了以前测试工具只支持单一规范和通用性不足的缺陷。
本领域普通技术人员可以理解上述实施例的全部或部分步骤可以使用计算机程序流程来实现,所述计算机程序可以存储于一计算机可读存储介质中,所述计算机程序在相应的硬件平台上(如系统、设备、装置、器件等)执行,在执行时,包括方法实施例的步骤之一或其组合。
可选地,上述实施例的全部或部分步骤也可以使用集成电路来实现,这些步骤可以被分别制作成一个个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
上述实施例中的各装置/功能模块/功能单元可以采用通用的计算装置来实现,它们可以集中在单个的计算装置上,也可以分布在多个计算装置所组成的网络上。
上述实施例中的各装置/功能模块/功能单元以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。上述提到的计算机可读取存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求所述的保护范围为准。
Claims (6)
1.一种智能卡的测试方法,其特征在于,包括:
输出预先存储的指令信息,其中所述指令信息为用于测试智能卡的指令信息;
接收外部利用测试指令信息编辑得到的测试代码;
利用所述测试代码对所述智能卡进行测试;
其中,所述利用测试代码对所述智能卡进行测试,包括:
当同时对至少两个智能卡发送测试代码时,向所述至少两个智能卡中的第一智能卡发送测试代码,其中所述测试代码包括第一智能卡的标识信息;
以及,接收所述第一智能卡反馈的测试结果,其中所述测试结果包括所述第一智能卡的标识信息;
根据所述第一智能卡的反馈结果,获取所述至少两个智能卡中的第二智能卡的测试指令;
向所述至少两个智能卡中的第二智能卡发送测试代码,其中所述测试代码包括第二智能卡的标识信息;
以及,接收所述第二智能卡反馈的测试结果,其中所述测试结果包括所述第二智能卡的标识信息。
2.根据权利要求1所述的方法,其特征在于,在利用所述测试代码对所述智能卡进行测试之前,还包括:
创建一个单独的读卡器类,所述读卡器类包含各类协议的读卡器接口。
3.根据权利要求1所述的方法,其特征在于,在利用所述测试代码对所述智能卡进行测试之前,还包括:
读取智能卡连接的读卡器的接口的类型信息;
根据读卡器的类型,确定所述测试代码的发送策略;
根据所述发送策略,通过所述读卡器发送所述测试代码。
4.一种智能卡的测试装置,其特征在于,包括:
输出模块,用于输出预先存储的指令信息,其中所述指令信息为用于测试智能卡的指令信息;
接收模块,用于接收外部利用测试指令信息编辑得到的测试代码;
测试模块,用于利用所述测试代码对所述智能卡进行测试;
其中,所述测试模块包括:
第一发送单元,用于当同时对至少两个智能卡发送测试代码时,向所述至少两个智能卡中的第一智能卡发送测试代码,其中所述测试代码包括第一智能卡的标识信息;
第一接收单元,用于接收所述第一智能卡反馈的测试结果,其中所述测试结果包括所述第一智能卡的标识信息;
获取单元,用于在接收所述第一智能卡反馈的测试结果之后,根据所述第一智能卡的反馈结果,获取所述至少两个智能卡中的第二智能卡的测试指令;
第二发送单元,用于向所述至少两个智能卡中的第二智能卡发送测试代码,其中所述测试代码包括第二智能卡的标识信息;
第二接收单元,用于接收所述第二智能卡反馈的测试结果,其中所述测试结果包括所述第二智能卡的标识信息。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括:
单独创建的读卡器类,所述读卡器类包含各类协议的读卡器接口。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
读取模块,用于在利用所述测试代码对所述智能卡进行测试之前,读取智能卡连接的读卡器的接口的类型信息;
确定模块,用于根据读卡器的类型,确定所述测试代码的发送策略;
其中,所述测试模块根据所述发送策略,通过所述读卡器发送所述测试代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510497694.9A CN105068910B (zh) | 2015-08-13 | 2015-08-13 | 一种智能卡的测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510497694.9A CN105068910B (zh) | 2015-08-13 | 2015-08-13 | 一种智能卡的测试方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105068910A CN105068910A (zh) | 2015-11-18 |
CN105068910B true CN105068910B (zh) | 2017-11-17 |
Family
ID=54498287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510497694.9A Active CN105068910B (zh) | 2015-08-13 | 2015-08-13 | 一种智能卡的测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105068910B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106908709A (zh) * | 2015-12-23 | 2017-06-30 | 上海华虹集成电路有限责任公司 | 检测智能卡非接触通信过程中电磁扰动的系统和方法 |
CN105676106A (zh) * | 2015-12-31 | 2016-06-15 | 东信和平科技股份有限公司 | 一种非接触智能卡芯片型号自动化检测系统及方法 |
CN106021117B (zh) * | 2016-06-07 | 2018-11-20 | 公安部第三研究所 | 智能卡系统中间人攻击验证平台及测试方法 |
CN106934310B (zh) * | 2017-02-24 | 2019-09-13 | 飞天诚信科技股份有限公司 | 一种测试智能卡的方法及读卡器 |
CN107341423B (zh) * | 2017-07-13 | 2020-10-09 | 金邦达有限公司 | 智能卡的测试方法及测试设备、计算机可读存储介质 |
CN110442487A (zh) * | 2019-08-13 | 2019-11-12 | 东信和平科技股份有限公司 | 一种智能卡通讯协议测试方法、装置、系统及可读介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101126793A (zh) * | 2007-09-18 | 2008-02-20 | 东信和平智能卡股份有限公司 | 智能卡测试系统及方法 |
CN102495797A (zh) * | 2011-11-25 | 2012-06-13 | 大唐微电子技术有限公司 | 智能卡测试装置和测试方法 |
CN102664043A (zh) * | 2012-03-30 | 2012-09-12 | 大唐微电子技术有限公司 | 实现移动支付的智能sd卡测试的装置及方法 |
-
2015
- 2015-08-13 CN CN201510497694.9A patent/CN105068910B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101126793A (zh) * | 2007-09-18 | 2008-02-20 | 东信和平智能卡股份有限公司 | 智能卡测试系统及方法 |
CN102495797A (zh) * | 2011-11-25 | 2012-06-13 | 大唐微电子技术有限公司 | 智能卡测试装置和测试方法 |
CN102664043A (zh) * | 2012-03-30 | 2012-09-12 | 大唐微电子技术有限公司 | 实现移动支付的智能sd卡测试的装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105068910A (zh) | 2015-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105068910B (zh) | 一种智能卡的测试方法和装置 | |
Chen | Java card technology for smart cards: architecture and programmer's guide | |
US8646059B1 (en) | Wallet application for interacting with a secure element application without a trusted server for authentication | |
Hansmann et al. | Smart card application development using Java | |
US9910610B2 (en) | Protected mode for global platform complaint smart cards | |
US6385645B1 (en) | Data exchange system comprising portable data processing units | |
JP4348190B2 (ja) | スマートカード・システム | |
WO2000068903A1 (en) | Smart card application development system and method | |
US10915893B2 (en) | Method for processing transaction data, device and corresponding program | |
US20230046119A1 (en) | Method for implementing middleware based on emv and terminal device | |
CN102999839A (zh) | 一种基于云平台、虚拟se的电子货币安全支付系统和方法 | |
CN110888674B (zh) | 在Python虚拟机中执行安全计算的方法及装置 | |
Husemann | Standards in the smart card world | |
CN101425120B (zh) | 读卡器及其执行方法 | |
Hassler | Java Card for e-payment Applications | |
CN109167788B (zh) | 一种具有动态验证码的金融ic卡的个人化方法和系统 | |
Béguelin | Formalisation and verification of the globalplatform card specification using the b method | |
KR20070029224A (ko) | 개방형 스마트 카드(또는 아이씨 카드)의 후발급애플리케이션 중계 방법 | |
KR20110116095A (ko) | 아이씨 카드용 애플리케이션 제공 방법 | |
Karlíková | Komunikace bezkontaktních karet v Androidu | |
KR100965140B1 (ko) | 지능형 스마트 카드 운용 시스템 | |
Sauveron et al. | Smart Card Reader and Mobile APIs | |
KR20040087537A (ko) | 지능형 스마트 카드와 지능형 스마트 카드 운용 방법 및시스템 | |
KR20230090785A (ko) | 블록체인 기반 공예품 관리 시스템 및 방법 | |
KR100742022B1 (ko) | 개방형 스마트 카드(또는 아이씨 카드)의 후발급 애플리케이션 제작방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |