一种访问不同密码设备的系统及方法技术方案

技术编号:26763133 阅读:20 留言:0更新日期:2020-12-18 23:21
本发明专利技术提出一种访问不同密码设备的系统,包括用于与应用程序单元里不同应用程序进行通信的密码接口单元;包括用于驱动密码设备单元里不同接口类型的密码设备的密码设备驱动单元;以及用于提供应用程序单元里不同应用程序与密码设备单元里不同接口类型的密码设备进行通信的密码设备应用接口单元,所述密码设备应用接口单元通过将应用程序单元访问密码设备单元的访问信息进行APDU命令的封装、通信数据包的组装并发送给密码设备;以及接收密码设备单元返回的响应信息并进行拆包解析,并返回给应用程序;从而满足不同应用程序访问不同接口类型的密码设备的需求,提高设备及系统的兼容性。

【技术实现步骤摘要】
一种访问不同密码设备的系统及方法
本专利技术涉及密码
,具体涉及一种访问不同密码设备的系统及方法。
技术介绍
随着信息化技术的快速发展,信息安全问题日益受到重视,能为应用程序提供安全保障的密码安全服务彰显其不可或缺性和重要性;通常采用密码设备来为用户的应用程序提供相应的密码服务,提高信息的安全传输,常用的密码设备通常包括有智能密码钥匙、安全芯片、加密卡、安全TF卡、安全SD卡、安全终端等,不同密码设备的接口类型也不同,这样会导致不同接口类型的密码设备与用户的应用程序进行信息交互时会存在差异性,而且针对不同的用户的应用程序也存在C#、java和web的差异性,由于差异性会带来额外的开发工作量,无法对不同的密码设备进行兼容性的访问。因此如何设计一种访问不同密码设备的系统及方法,满足不同应用程序访问不同接口类型的密码设备的需求,提高设备及系统的兼容性是目前急需解决的问题。
技术实现思路
本专利技术针对上述问题,有必要提供一种访问不同密码设备的系统及方法,满足不同应用程序访问不同接口类型的密码设备的需求,提高设备及系统的兼容性。本专利技术第一方面提出一种访问不同密码设备的系统,包括:密码接口单元,包括用于与应用程序单元里不同应用程序进行通信的多个标准接口;根据访问应用程序的类型和被访问密码设备的设备信息在密码接口单元里选择相关的标准接口,通过所述标准接口接收访问应用程序对被访问密码设备的访问信息,以及上传被访问密码设备返回的响应信息至对应应用程序;密码设备应用接口单元,用于提供应用程序单元里不同应用程序与密码设备单元里不同接口类型的密码设备进行通信的统一应用接口;通过所述密码设备应用接口单元将所述密码接口单元接收的访问信息封装成相应的APDU命令,将封装后的APDU命令组装成与被访问密码设备的接口数据格式一致的访问数据包;以及将被访问密码设备单元返回的响应数据包进行拆包,获得APDU响应,并将APDU响应进行解封装,获得响应信息并上传给所述密码接口单元;密码设备驱动单元,包括用于驱动密码设备单元里不同接口类型的密码设备的多个驱动;根据被访问密码设备的接口类型选择相应的驱动,通过所述驱动将所述密码设备应用接口单元组装的访问数据包发送给被访问密码设备以及将被访问密码设备返回的响应数据包发送给所述密码设备应用接口单元。进一步的,所述访问信息包括密码服务指令、访问数据和被访问密码设备的设备句柄;所述密码设备应用接口单元包括:应用接口模块、业务逻辑模块和设备模块;所述业务逻辑模块包括设备管理接口和密码服务接口;所述应用接口模块,用于提供不同的接口函数、参数说明、设备类型的定义和密钥结构数据类型;所述接口函数包括设备管理接口函数和多种密码服务接口函数,每个密码服务接口函数对应一种密码服务指令;所述设备管理接口,用于调用所述设备管理接口函数,实现对所述密码设备单元中不同密码设备的设备枚举并获取设备信息,以及打开/关闭被访问密码设备,并获取/释放设备句柄;所述密码服务接口,用于接收访问信息,根据所述访问信息里的密码服务指令调用相应的密码服务接口函数,并将所述访问信息里的访问数据作为被调用密码服务接口函数的参数数据,依据被访问密码设备的指令集将被调用密码服务接口函数封装成相应的APDU命令,以及依据被访问密码设备的指令集将拆包后获得的APDU响应进行解封装,获得响应信息;所述设备模块,包括对应密码设备单元里密码设备的不同接口类型设置的多个通信模块,每个通信模块内置有一种接口数据格式;根据所述访问信息里的设备句柄选择相应的通信模块,用于将封装后的APDU命令组装成与被访问密码设备的接口数据格式一致的访问数据包,以及将从被访问密码设备接收的响应数据包进行拆包,获得APDU响应。进一步的,所述设备管理接口函数包括:设备枚举接口函数:用于遍历所有设备模块,并遍历每个设备模块的设备节点,通过所述设备模块在所述密码设备单元中查询所述设备节点对应的密码设备的设备信息,根据获取的设备信息判断可用密码设备个数,并返回可用密码设备个数和对应的设备信息;设备打开接口函数,用于根据用户指令打开指定密码设备,并获取设备句柄;设备关闭接口函数,用于根据用户指令关闭指定密码设备,并释放设备句柄。进一步的,所述密码设备应用接口单元还包括文件系统接口和访问控制接口;所述文件系统接口,包括密码设备文件系统中的专用文件DF和基本文件EF;所述基本文件EF包括密钥文件、公钥文件、私钥文件或二级制文件;在根处的专用文件DF为主文件MF;所述访问控制接口,用于提供和用户权限有关的接口验证PIN口令和外部认证,以及提供对密钥或文件的操作权限。进一步的,所述应用程序单元包括C#应用程序、Java应用程序和各种WEB程序;所述密码接口单元包括与C#应用程序对应的PKCS#11标准接口、CSP标准接口和国密标准接口、与Java应用程序对应的JNI接口,与WEB程序对应的ActiveX接口、NPAPI接口和WebSocket服务接口;所述密码设备单元中的密码设备包括安全智能密码钥匙、安全TF卡、安全芯片、安全终端和PCI/PCI-E密码卡;所述密码设备的接口类型至少包括SD接口、USB接口、SPI接口、PCI/PCI-E接口;所述密码设备驱动单元至少包括SD驱动、USB驱动、SPI驱动、PCI/PCI-E驱动。本专利技术第二方面还提出一种访问不同密码设备的方法,包括应用程序单元、密码设备单元、以及前述的系统,所述应用程序单元包括不同应用程序,所述密码设备单元包括不同接口类型的密码设备,所述应用程序单元通过所述通用接口系统访问不同密码设备的通用接口系统,具体步骤包括:应用程序单元里的应用程序根据其类型和被访问密码设备的设备信息在密码接口单元里选择相关的标准接口将访问信息发送至密码设备应用接口单元;所述密码设备应用接口单元将接收的访问信息封装成相应的APDU命令,将封装后的APDU命令组装成与被访问密码设备的接口数据格式一致的访问数据包后发送至密码设备驱动单元;所述密码设备驱动单元根据被访问密码设备的接口类型选择相应的驱动将组装后的访问数据包发送至被访问密码设备;被访问密码设备对访问数据包进行相应密码处理,生成响应数据包,并将响应数据包通过所述密码设备驱动单元里相应的驱动返回至所述密码设备应用接口单元;所述密码设备应用接口单元将被访问密码设备单元返回的响应数据包进行拆包,获得APDU响应,并将APDU响应进行解封装,获得响应信息并通过所述密码接口单元里相应的标准接口返回给所述应用程序单元的相应的应用程序。其中,所述密码设备应用接口单元的密码服务接口,接收访问信息,根据所述访问信息里的密码服务指令调用相应的密码服务接口函数,并将所述访问信息里的访问数据作为被调用密码服务接口函数的参数数据,依据被访问密码设备的指令集将被调用密码服务接口函数封装成相应的APDU命令;所述密码设备应用接口单元的设备模块,根据所述访问信息里的设备句柄选择相应的通信模本文档来自技高网...

【技术保护点】
1.一种访问不同密码设备的系统,其特征在于:包括/n密码接口单元,包括用于与应用程序单元里不同应用程序进行通信的多个标准接口;根据访问应用程序的类型和被访问密码设备的设备信息在密码接口单元里选择相关的标准接口,通过所述标准接口接收访问应用程序对被访问密码设备的访问信息,以及上传被访问密码设备返回的响应信息至对应应用程序;/n密码设备应用接口单元,用于提供应用程序单元里不同应用程序与密码设备单元里不同接口类型的密码设备进行通信的统一应用接口;通过所述密码设备应用接口单元将所述密码接口单元接收的访问信息封装成相应的APDU命令,将封装后的APDU命令组装成与被访问密码设备的接口数据格式一致的访问数据包;以及将被访问密码设备单元返回的响应数据包进行拆包,获得APDU响应,并将APDU响应进行解封装,获得响应信息并上传给所述密码接口单元;/n密码设备驱动单元,包括用于驱动密码设备单元里不同接口类型的密码设备的多个驱动;根据被访问密码设备的接口类型选择相应的驱动,通过所述驱动将所述密码设备应用接口单元组装的访问数据包发送给被访问密码设备以及将被访问密码设备返回的响应数据包发送给所述密码设备应用接口单元。/n...

【技术特征摘要】
1.一种访问不同密码设备的系统,其特征在于:包括
密码接口单元,包括用于与应用程序单元里不同应用程序进行通信的多个标准接口;根据访问应用程序的类型和被访问密码设备的设备信息在密码接口单元里选择相关的标准接口,通过所述标准接口接收访问应用程序对被访问密码设备的访问信息,以及上传被访问密码设备返回的响应信息至对应应用程序;
密码设备应用接口单元,用于提供应用程序单元里不同应用程序与密码设备单元里不同接口类型的密码设备进行通信的统一应用接口;通过所述密码设备应用接口单元将所述密码接口单元接收的访问信息封装成相应的APDU命令,将封装后的APDU命令组装成与被访问密码设备的接口数据格式一致的访问数据包;以及将被访问密码设备单元返回的响应数据包进行拆包,获得APDU响应,并将APDU响应进行解封装,获得响应信息并上传给所述密码接口单元;
密码设备驱动单元,包括用于驱动密码设备单元里不同接口类型的密码设备的多个驱动;根据被访问密码设备的接口类型选择相应的驱动,通过所述驱动将所述密码设备应用接口单元组装的访问数据包发送给被访问密码设备以及将被访问密码设备返回的响应数据包发送给所述密码设备应用接口单元。


2.根据权利要求1所述的访问不同密码设备的系统,其特征在于,所述访问信息包括密码服务指令、访问数据和被访问密码设备的设备句柄;所述密码设备应用接口单元包括:应用接口模块、业务逻辑模块和设备模块;所述业务逻辑模块包括设备管理接口和密码服务接口;
所述应用接口模块,用于提供不同的接口函数、参数说明、设备类型的定义和密钥结构数据类型;所述接口函数包括设备管理接口函数和多种密码服务接口函数,每个密码服务接口函数对应一种密码服务指令;
所述设备管理接口,用于调用所述设备管理接口函数,实现对所述密码设备单元中不同密码设备的设备枚举并获取设备信息,以及打开/关闭被访问密码设备,并获取/释放设备句柄;
所述密码服务接口,用于接收访问信息,根据所述访问信息里的密码服务指令调用相应的密码服务接口函数,并将所述访问信息里的访问数据作为被调用密码服务接口函数的参数数据,依据被访问密码设备的指令集将被调用密码服务接口函数封装成相应的APDU命令,以及依据被访问密码设备的指令集将拆包后获得的APDU响应进行解封装,获得响应信息;
所述设备模块,包括对应密码设备单元里密码设备的不同接口类型设置的多个通信模块,每个通信模块内置有一种接口数据格式;根据所述访问信息里的设备句柄选择相应的通信模块,将封装后的APDU命令组装成与被访问密码设备的接口数据格式一致的访问数据包,以及将从被访问密码设备接收的响应数据包进行拆包,获得APDU响应。


3.根据权利要求2所述的访问不同密码设备的系统,其特征在于,所述设备管理接口函数包括:
设备枚举接口函数:用于遍历所有设备模块,并遍历每个设备模块的设备节点,通过所述设备模块在所述密码设备单元中查询所述设备节点对应的密码设备的设备信息,根据获取的设备信息判断可用密码设备个数,并返回可用密码设备个数和对应的设备信息;
设备打开接口函数,用于根据用户指令打开指定密码设备,并获取设备句柄;
设备关闭接口函数,用于根据用户指令关闭指定密码设备,并释放设备句柄。


4.根据权利要求1所述的访问不同密码设备的系统,其特征在于,所述密码设备应用接口单元还包括文件系统接口和访问控制接口;所述文件系统接口,包括密码设备文件系统中的专用文件DF和基本文件EF;所述基本文件EF包括密钥文件、公钥文件、私钥文件或二级制文件;在根处的专用文件DF为主文件MF;所述访问控制接口,用于提供和用户权限有关的接口验证PIN口令和外部认证,以及提供对密钥或文件的操作权限。


5.根据权利要求1所述的访问不同密码设备的系统,其特征在于,所述应用程序单元包括C#应用程序、Java应用程序和各种WEB程序;所述密码接口单元包括与C#应用程序对应的PKCS#11标准接口、CSP标准接口和国密标准接口、与Java应用程序对应的JNI接口、与WEB程序对应的ActiveX接口、NPAPI接口和WebSocket服务接口;所述密码设备单元中的密码设备包括安全智能密码钥匙、安全TF卡、安全芯片、安全终端和PCI/PCI-E密码卡;所述密码设备的接口类型至少包括SD接口、USB接口、SPI接口、PCI/PCI-E接口;所述密码设备驱动单元至少包括SD驱动、USB驱动、SPI驱动、PCI/PCI-E驱动。


6.一种访问不同密码设备的方法,其特征在于,包括应用程序单元、密码设备单元、以及权利要求1-5任一项所述的系统,所述应用程序单元包括不同应用程序,所述密码设备单元包括不同接口类型的密码...

【专利技术属性】
技术研发人员:彭金辉雷宗华李橙橙杨廷廖正赟
申请(专利权)人:郑州信大捷安信息技术股份有限公司
类型:发明
国别省市:河南;41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1