安全芯片操作系统测试装置的制作方法

文档序号:17989604发布日期:2019-06-22 00:40阅读:218来源:国知局
安全芯片操作系统测试装置的制作方法

本发明是关于安全芯片测试领域,特别是关于一种安全芯片操作系统测试装置。



背景技术:

智能卡又称为ic卡。根据ic卡中使用的集成电路的不同可以分为存储器卡、逻辑加密卡、cpu卡和射频卡。由于cpu卡中集成了微处理器、存储单元以及芯片操作系统cos(chipoperatingsystem),从而构成一个完整的计算机系统。

cpu卡的操作系统cos是芯片实现主要应用功能最为重要的部分,它是安全芯片中数据,文件、密钥等重要信息进行安全存储、访问的关键。而芯片中实际功能的应用必须依靠cos功能的正常实现,所以对于cos功能的正确实现与否必须有其针对性的测试,以保证产品的正常高效的使用。

现有的安全芯片操作系统测试装置的测试方法也是多种多样的,凭借的方式和手段也是因实际测试方法的不同而方式各异。由于测试的重要性,为了保证日常测试的有效进行,主要依靠vb,vc等传统的语言程序搭建相对应的测试框架,保证测试装置、读卡器与安全芯片的正常通信,并设计常用的接口函数,作为通用的测试平台,在此基础上针对对应的产品开发测试脚本进行cos测试工作。

虽然传统的语言程序具有长时间的开发经验,在搭建测试框架和开发测试脚本方面比较熟练和得心应手,但是对于测试任务本身来说都存在着各自的问题和局限。如vc是静态语言,在使用任一变量前都需要申明其数据类型,在实现测试功能前需要编写相当精细的实现过程,也就是说需要完成很多行的代码才能实现,同时对于新手来说,上手需要的时间相对较长,遇到编译或者链接问题都会是一个很大的瓶颈;另一个方面vc没有相对应直观的ui控制操作界面,在测试执行过程中并不方便。而vb在ui控制界面方面有现成的控件和模块,但是vb软件本身存在很多问题,如代码的可读性,脚本执行率都比较差,并且vb是一款已经比较过时的语言软件,主要的测试手段都是依靠手工完成,测试效率也比较低。

公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。



技术实现要素:

本发明的目的在于提供一种安全芯片操作系统测试装置,其基于python语言构建,能够有效地提高测试脚本的编写和调试速率。

为实现上述目的,本发明提供了一种安全芯片操作系统测试装置,其用于对安全芯片的操作系统进行测试,在进行测试时,待测安全芯片放置于读卡器中,所述读卡器与所述安全芯片操作系统测试装置相连。所述安全芯片操作系统测试装置是通过python语言构建的,所述安全芯片操作系统测试装置包括:pcsc通信接口层、算法库接口层、功能指令接口层、基本算法接口层、脚本编写和执行层。

所述安全芯片操作系统测试装置通过所述pcsc通信接口层实现与待测安全芯片的通信。算法库接口层用于封装所述待测安全芯片所应用的多种安全算法的接口。功能指令接口层用于封装所述待测安全芯片的操作系统中的功能指令。基本算法接口层用于对所述算法库接口层的接口进行二次组合封装,同时新增运算函数。脚本编写和执行层用于存储、执行和修改测试脚本,所述脚本编写和执行层通过组合和调用所述pcsc通信接口层、所述算法库接口层、所述功能指令接口层以及所述基本算法接口层从而实现对所述待测安全芯片的测试。

在一优选的实施方式中,所述安全芯片操作系统测试装置还包括日志记录模块,其用于调用python多线程模块,通过单独使用一个线程将所述测试脚本的执行过程进行保存。

在一优选的实施方式中,所述安全芯片操作系统测试装置还包括ui界面模块,其用于设置连接按钮、复位按钮、断开按钮以及测试脚本执行按钮从而实现用界面化的操作进行自动化执行操作,所述ui界面模块还用于在界面上打印出来自动化执行的过程。

在一优选的实施方式中,所述安全芯片操作系统测试装置还包括报错定位模块,其用于对所述测试脚本在执行过程中出现的异常或者测试出的bug进行定位。

在一优选的实施方式中,所述pcsc通信接口层包括spi通信协议、iso7816通信协议以及ccid通信协议的一种或多种。

在一优选的实施方式中,所述功能指令接口层通过输入不同的命令头封装不同协议的功能指令,将基本指令转化成接口函数,利用所述算法库接口层和所述基本算法接口层实现所述测试脚本的调用。

在一优选的实施方式中,所述算法库接口层通过调用底层算法库简化输入和输出,将所述底层算法库按照安全算法的处理机制进行进一步封装。

在一优选的实施方式中,所述多种安全算法包括:des、sm1、sm2、sm4以及rsa的一种或多种。

在一优选的实施方式中,所述运算函数包括异或处理函数、取任意长度随机数函数以及补位函数的一种或多种。

与现有技术相比,根据本发明的安全芯片操作系统测试装置采用python语言,相比于其他程序语言,语法简单,可读性更高,使用较少的代码完成复杂的功能,节省开发脚本时间;通过python整体框架的搭建,结构更清晰,维护各层的接口更具有针对性;功能更具通用性,在搭建过程中,以基础功能结构为前提,并留出后期进一步开发的空间,应用更具广泛性;通过python对pc机系统线程的应用,也使得脚本的执行速度更加高效;同时利用强大的标准库支持,以及开源的算法库,可以完成和处理各种工作,包括gui设计、文档生成等。除了语言的优势外,该安全芯片操作系统测试装置针对cos系统的测试要求,支持多种通讯协议,如spi、7816、ccid,以及大容量存储协议;通过python强大的开源库,设计出ui自动化操作界面,可自动执行脚本,针对不同情况的测试记录,都可通过基础的测试界面进行快捷的测试;并且测试过程,有记录日志的功能,并将测试过程以及测试中出现的bug一一存储下来,以备勘验;利用多线程功能将不同的测试功能执行分线程操作,大大提高测试效率。

附图说明

图1是根据本发明一实施方式的安全芯片操作系统测试装置的框架示意图。

具体实施方式

下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。

除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。

为克服和减少传统程序语言在脚本测试执行所带来的问题,本发明提出一种安全芯片操作系统测试装置,该装置是基于python语言搭建和开发的cos测试平台。python作为一门高级编程语言,简单易懂,虽然其使用c语言写的,但是它摒弃了非常复杂的指针,简化了python的语法,初学者学python,不但入门容易。而且深入以后,也可以编写非常复杂的程序,python的可扩展性和可嵌入型,可以将希望不公开的算法用c/c++编写,然后进行调用进行使用。由于python本身就是一门脚本语言,并且语法简单,利用强制缩进使代码更有可读性,同时有强大的标准库支持,可以完成和处理各种工作,如gui(图形用户界面)设计,线程,文档生成等,可谓是功能齐全。基于python语言搭建该安全芯片操作系统测试装置,能够更有效地提高测试脚本的编写和调试速率。

图1是根据本发明一实施方式的安全芯片操作系统测试装置,其用于对安全芯片的操作系统进行测试,在进行测试时,待测安全芯片放置于读卡器中,读卡器与安全芯片操作系统测试装置相连,安全芯片操作系统测试装置包括通过python语言编制的测试程序,测试程序包括:pcsc通信接口层10、算法库接口层11、功能指令接口层12、基本算法接口层13、脚本编写和执行层14。

安全芯片操作系统测试装置通过pcsc(微软提出的规范)通信接口层10实现与待测安全芯片的通信。安全芯片操作系统测试装置与芯片cos无法进行直接通信,需要读卡器作为中间连接工具,实现与被测安全芯片(ic卡)的连接。具体地,pcsc通信接口层10包括不同的协议spi(串行外设接口)、iso7816、ccid(芯片智能卡接口设备协议)以及大容量存储协议,以满足读卡器与安全芯片操作系统测试装置的通信需求。

算法库接口层11用于封装待测安全芯片所可能应用的多种安全算法的接口。安全算法包括des(数据加密算法)、国密算法sm1、国密算法sm2、国密算法sm4、rsa(公钥加密算法)等。

功能指令接口层12用于封装待测安全芯片的操作系统中的功能指令。

基本算法接口层13用于对算法库接口层11的接口进行二次组合封装,同时新增一些常用的运算函数,是测试脚本中的常用功能实现更为便捷。

脚本编写和执行层14用于存储、执行和修改测试脚本,脚本编写和执行层14通过组合和调用pcsc通信接口层10、算法库接口层11、功能指令接口层12以及基本算法接口层13从而实现对待测安全芯片的测试。

可选地,安全芯片操作系统测试装置还包括日志记录模块15,其用于调用python多线程模块,通过单独使用一个线程将测试脚本的执行过程进行保存,合理分配了资源,提高了效率。

可选地,安全芯片操作系统测试装置还包括ui界面模块16,其用于设置连接按钮、复位按钮、断开按钮以及测试脚本执行按钮从而实现用界面化的操作进行自动化执行操作,使得脚本的执行更加便利,ui界面模块16还用于在界面上打印出来自动化执行的过程。

可选地,安全芯片操作系统测试装置还包括报错定位模块17,其用于对测试脚本在执行过程中出现的异常或者测试出的bug进行定位,从而便于快速查找和修改bug。

在一实施方式中,该安全芯片操作系统测试装置实现方式包括:pcsc通信接口层10通过调用微软自带的pcsc接口库函数,获得读卡器连接句柄,完成pcsc通信接口与读卡器的的正常通信功能,并获取芯片的复位信息;算法库接口层11通过调用第三方的底层算法库,简化输入和输出,并将底层算法库按照安全算法的处理机制进行进一步封装;基本算法接口层13通过调用算法库中的各种安全算法接口,将各个类型的算法进行规整,进一步通封装成通用的形式,比如算法加密,将各种算法通过标识符进行区分和识别,即使用时通过标识符来选择相对应的算法,另外该基本算法接口层13中还开发了一些常用的功能函数接口,比如异或处理,取16进制随机数,补位等;功能指令接口层12通过输入不同的命令头封装不同协议的功能指令,将基本指令转化成接口函数,利用算法库接口层11和基本算法接口层13,实现脚本的简洁调用;脚本编写和执行层14将各层接口按照一定的逻辑进行组合和灵活调用,实现实际测试的正常进行;日志记录模块15通过利用python的多线程模块,使用独个线程将脚本执行过程进行逐行保存至txt文件中,方便之后数据和bug的查阅;ui界面模块16通过设置不同的按钮,比如连接设备,复位,脚本执行等按钮,形成自动化执行功能,同时执行的过程会在界面中打印出来;报错定位模块17在工程或者脚本停止后可以定位出脚本出错在哪个脚本的哪一行,方便定位bug和脚本编写错误。

在一实施方式中,测试装置与读卡器的被测安全芯片的正常通信的实现过程包括:首先通过调用微软系统的winscard.dll动态库接口,连接读卡器后获取资源句柄,并通过得到的资源句柄使用scardlistreadersa()得到读卡器的连接句柄,连接句柄的值决定了读卡器的种类和型号,句柄的值一般为读卡器的实际名字,针对常用的读卡器这里是可以进行句柄值固定和选择设置的;然后获取到的连接句柄,利用读卡器连接的函数接口scardconnecta(),完成读卡器和测试装置的通信,一般来说正常通信后,可以获取到芯片的复位信息,如果连接失败则无法获取到复位信息;最后针对不同的通信协议,如spi协议,需要send_master和read_master根据一定的数据格式进行指令发送和接收。

在一实施方式中,算法库接口层11的调用过程包括:首先算法库中通过直接调用外部动态库,封装了很多种不同的安全算法接口,如des、sm1、sm2、sm4、rsa等的加解密,及对应算法的签名验签;然后在脚本执行中,导入该接口模块(importsg_api),并根据各个算法接口中的要求的输入变量以及返回值,一般为输入数据、密钥,数据通常为16进制数据串;最后根据需要再调用相应的接口,而通常这些返回值都会被作为功能指令接口层12中指令的输入值使用。

在一实施方式中,功能指令接口层12只要封装了针对不同通信协议的的cos功能接口函数,以spi协议为例,功能指令接口层12通过调用pcsc通信接口层10的通信模式接口,指令数据加上协议命令头作为输入数据传入send_master()函数中,通过read_master(),返回状态值和数据结果;得到返回状态值和数据结果,可以利用对应的状态字和已知值或者期望值进行对比,来验证执行的正误。

在一实施方式中,基本算法接口层13的调用过程包括:首先导入算法库模块(importsg_api),然后在脚本中使用该接口层的其他辅助函数时,需要以接口层的命名作为开头,如algorithminterface.get_randstring(8),取8字节随机数字符串。

在一实施方式中,脚本编写和执行层14利用上述各个接口层,完成含有整个测试流程和指令功能的脚本单元;测试脚本整体结构以功能指令接口的接口函数为主体,算法接口作为输入输出数据的处理工具组成。python中脚本里的每个函数块都可单独执行,进行测试,由此可灵活地在脚本末尾,main函数后根据需要执行相应的一个或者多个功能块,如执行的测试模块名为creatfile,则只需要在main函数后添加creatfile()。

在一实施方式中,日志记录模块15通过使用系统单独的线程进行测试记录信息的保存,日志记录为文本的形式。在执行脚本中使用os模块,获取该脚本的保存路径,并将执行的代码流程以命令和状态字的形式逐行保存。

在一实施方式中,ui界面模块16设计主要的按钮为连接,复位,断开等设备操作功能,这些按钮对应着通信层的scardconnecta,resetcard,disconnect接口,测试执行对应着各个脚本的模块,而测试模块为可选状态,显示窗口对应着日志记录。

在一实施方式中,报错定位模块17使用traceback模块,在测试过程中如果出现流程错误导致的测试报错,或者测试出的bug都可以通过导入该模块,进行打印显示,定位出现错误的脚本模块具体的行数,方便分析和调试。

该安全芯片操作系统测试装置在功能以及执行使用方面有如下优势:采用python语言,相比于其他程序语言,语法简单,可读性更高,使用较少的代码完成复杂的功能,节省开发脚本时间;通过python整体框架的搭建,结构更清晰,维护各层的接口更具有针对性;功能更具通用性,在搭建过程中,以基础功能结构为前提,并留出后期进一步开发的空间,应用更具广泛性;通过python对pc机系统线程的应用,也使得脚本的执行速度更加高效;同时利用强大的标准库支持,以及开源的第三方算法库,可以完成和处理各种工作,包括gui设计、文档生成等。

除了语言的优势外,该安全芯片操作系统测试装置针对cos系统的测试要求,支持多种通讯协议,如spi、7816、ccid,以及大容量存储协议;通过python强大的开源库,设计出ui自动化操作界面,可自动执行脚本,针对不同情况的测试记录,都可通过基础的测试界面进行快捷的测试;并且测试过程,有记录日志的功能,并将测试过程以及测试中出现的bug一一存储下来,以备勘验;利用多线程功能将不同的测试功能执行分线程操作,大大提高测试效率。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1