基于以太网接口的多USB密码模块并发访问系统与方法与流程

文档序号:26278266发布日期:2021-08-13 19:34阅读:82来源:国知局
基于以太网接口的多USB密码模块并发访问系统与方法与流程

本发明涉及数字信息的安全处理技术领域,特别涉及一种基于以太网接口的多usb密码模块并发访问系统与方法。



背景技术:

根据国家密码行业标准化技术委员会对密码模块的定义,所有包含在密码边界内,实现了安全功能的硬件、软件或固件的集合都可以称为密码模块。密码卡作为密码模块的一种典型应用,常用于为计算机系统提供基于硬件的密钥管理和密码服务,与传统的软件密码技术方案相比,基于密码卡的技术方案密码算法运算速度更快、安全性更高,所以密码卡是组成商用信息安全系统的核心组件。

由于pci-e接口应用范围广、传输速率高,所以市场上的密码卡产品大多采用pci-e接口方案来实现,随着网络性能的不断提升,密码卡产品也向着更高性能的方向发展,尤其是近些年云计算技术的发展,密码卡对虚拟化和并发访问的支持成为了必然趋势。以三未信安sjk1926密码卡为例,支持虚拟化功能,部分算法的传输速率高达22gbps。

但是pci-e接口的密码卡产品也存在缺点,首先,支持pci-e接口的产品研发难度较高,不仅在于硬件的设计与研发,同时还要针对不同操作系统提供对应的驱动程序支撑,导致产品研发成本高;其次,由于高性能pci-e物理层芯片采购成本较高,同时带有pci-e接口的物理板卡结构电路逻辑相对复杂,导致产品生产成本高昂;再次,对于pci-e密码卡产品的应用,要求目标计算机系统提供对应的pci-e卡槽,还需要安装专门的驱动程序,并在其基础之上进行二次开发,在一些性能不高的计算机系统中,如工业控制网络中的边缘计算平台,很难满足产品集成条件(例如:没有pci-e卡槽,或者没有针对嵌入式操作系统的产品驱动)。



技术实现要素:

本发明提供一种基于以太网接口的多usb密码模块并发访问系统与方法,以解决现有密码卡产品存在的研发成本高、生产成本高以及产品集成难度高的技术缺陷。

本发明的技术方案是这样实现的:

一种基于以太网接口的多usb密码模块并发访问系统,包括主控板、若干usb密码模块以及运行在所述主控板之上的软件系统模块,所述主控板分别与各个usb密码模块通过usb接口相连,所述的软件系统模块运行的通过多个usb密码模块并发访问算法,并发地访问连接在主控板上的多块usb密码模块,并对用户提供通用的网络访问接口,所述主控板为所述的并发访问算法提供硬件运行环境。

优选地,所述主控板包括主控芯片、usbhub芯片和以太网物理层芯片,所述主控芯片用于运行软件系统模块,所述usbhub芯片通过内部总线连接到主控芯片,用于支持多块usb密码模块到上述主控板的连接,所述的以太网物理层芯片通过内部总线连接到主控芯片,用于提供以太网接口,以太网物理层芯片与主控芯片的连接总线包括但不限于mii、rmii、gmii其中的一种。

优选地,所述usb密码模块为并发访问算法提供执行机构,其包括安全芯片,所述安全芯片内部集成有硬件的密码算法逻辑并支持usb接口,所述安全芯片用于密钥管理包括但不限于密钥生成、密钥存储、密钥导入与导出、密钥使用、密钥备份与还原、密钥销毁,所述安全芯片还用于运行密码算法,所述运行的密码算法包括但不限于sm1、sm2、sm3、sm4、aes、des、tdes、rsa,所述安全芯片内部还包括了flash存储单元用于安全存储数据。

优选地,所述软件系统模块运行在主控板上的主控芯片上,其包括:实时的嵌入式系统、usb密码模块的管理程序、网络服务程序以及usb密码模块的并发访问算法,所述实时的嵌入式系统为软件系统模块的其他组成部分提供运行环境,所述usb密码模块管理程序运行在实时的嵌入式系统之上负责管理多块usb密码模块,所述网络服务程序运行在实时的嵌入式系统之上是一个tcp或udp的服务端程序,用于接收使用者的访问输入数据并返回数据的处理结果,所述usb密码模块的并发访问算法运行在上述的实时的嵌入式系统之上,用于并发地访问连接到主控板上的所有usb密码模块并实现负载均衡。

本发明还提供了一种基于以太网接口的多usb密码模块并发访问方法,包括以下步骤:

1)usb密码模块管理程序收集主控板上连接的所有usb密码模块的信息,将这些信息存储在一个双向链表中,每一个usb密码模块对应一个双向链表中的节点,节点内包含usb密码模块的访问地址、参数信息和状态信息,所述状态信息包括指示密码模块在线和离线状态的信息,还包括指示密码模块繁忙和空闲状态的信息;

2)通过自定义的udp或tcp的客户端连接到软件系统模块的网络服务程序上,通过网络发送访问输入数据,网络服务程序通过内置的访问数据解析程序分析访问输入数据的内容,确定是否需要调用usb密码模块处理数据,如果需要则将数据传递给usb密码模块的并发访问算法,其中usb密码模块的并发访问算法由三个优先级相同的任务以及两个fifo缓冲区组成,所述的三个任务分别是输入任务、处理任务和输出任务,所述的两个fifo缓冲区分别是输入fifo和输出fifo;

3)usb密码模块的并发访问算法将传递的数据拷贝到输入fifo中,处理任务实时地检测输入fifo中是否存在待处理的访问输入数据,如果存在则根据usb密码模块管理程序中的双向链表中的usb密码模块状态信息检测是否有空闲的密码模块可以使用,如果存在则将输入fifo中的数据取出并送入对应usb密码模块并执行,在usb密码模块执行数据处理的过程中,可以继续接收网络服务程序传递来的数据,如果此时存在空闲的usb密码模块则可并发地处理下一条数据,进而实现了数据的并发处理;

4)usb密码模块将处理结果数据直接传送到输出fifo中,usb密码模块的并发访问算法的输出任务将通过网络服务程序再将数据发送给使用者;

5)在软件系统模块的运行过程中,usb密码模块的管理程序、网络服务程序以及usb密码模块的并发访问算法使用实时的嵌入式系统的多任务机制实现同步运行,网络服务程序和usb密码模块的并发访问算法之间通过输入fifo和输出fifo实现数据同步,usb密码模块的并发访问算法和usb密码模块的管理程序通过双向链表实现数据同步。

针对上述访问方法,优选地,所述双向链表结构由一个链表头和若干链表节点依次连接组成,除了链表头之外的其他所有节点都有向前和向后的指针用于遍历链表中的所有节点,链表头只有向后的指针。

与现有技术相比,本发明有以下有益效果:

本发明的基于以太网接口的多usb密码模块并发访问系统及方法,使用usb密码模块替代pci-e密码卡来实现密钥管理和密码服务功能,降低了产品的研发成本和生产成本。通过并发访问算法实现主控板与多块usb密码模块并发工作,通过对usb密码模块的工作/空闲状态信息的管理,使每个usb密码模块负载均衡,充分发挥组成系统的主控板和每一块usb密码模块的性能,提高了系统的整体性能。通过使用网络接口作为系统的访问接口,避免密码模块应用过程中对pci-e卡槽的依赖,规避了应用平台对专用驱动的集成需求,只需要在应用层开发tcp或udp客户端通信程序即可实现系统的应用,降低了应用和集成难度。

附图说明

图1系统实施硬件框图;

图2系统实施软件结构及主要数据流向;

图3双向链表内存结构示意图;

图4双向链表组成类图;

图5并发访问算法执行活动图;

图6并发访问算法执行时空图;

图7网络服务程序执行流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明进行清楚、完整地描述。

本发明公开了一种基于以太网接口的多usb密码模块并发访问的方法及系统,具体实施如下:

如图1所示,所述的基于以太网接口的多usb密码模块并发访问系统的硬件组成主要包括:1块主控板和4块usb密码模块,主控板与密码模块之间通过usb2.0接口相连接。所述主控板主要由主控芯片、以太网芯片、usbhub芯片以及电源模组组成,所述主控芯片采用信号为gd32450z芯片,该芯片采用armcortex-m架构,内部包含2mflash空间以及512kram空间,所述以太网芯片使用采用sr8201f芯片,所述usbhub芯片使用sl2.2s芯片,所述电源模组可为dc-dc模组,所述的主控芯片与以太网芯片通过rmii总线相连,所述的主控芯片与usbhub芯片通过usb总线相连。所述主控板对外接口包括:一路rj45,4路usb2.0,一路led以及一路uart,所述主控板的rj45接口是由所述以太网芯片提供的100mbps以太网口,所述主控板的usb2.0接口是由usbhub芯片提供的usb2.0highspeed接口,所述的主控板led和uart接口用于工作状态显示。所述的密码模块采用um-201高速usb密码模块,内部集成有hsc32u安全芯片,所述的um-201密码模块提供的密钥管理功能如:密钥生成、密钥存储、密钥导入与导出、密钥使用、密钥备份与还原、密钥销毁,以及密码算法功能如:sm1加密、sm1解密、sm2签名、sm2验签、sm2加密、sm2解密、sm3杂凑、sm4加密、sm4解密。

如图2所示,所述的基于以太网接口的多usb密码模块并发访问系统的软件模块组成主要包括:实时操作系统、usb密码模块的管理程序、usb密码模块的并发访问算法以及网络服务程序,所述的实时操作系统使用开源的freertos系统,所述的usb密码模块的管理程序和usb密码模块的并发访问算法为自主研发,所述的网络服务程序采用tcp作为传输协议,服务端口12000。

如图2所示,上述的usb密码模块的管理程序、usb密码模块的并发访问算法以及网络服务程序运行在所述实时操作系统之上。

针对本发明的一种基于以太网接口的多usb密码模块并发访问方法,方法中还包括:

所述usb密码模块的管理程序可以从上述的网络服务程序中获得usb密码模块的信息,也可以从上述的实时操作系统中接收到usb密码模块的信息,将新插入的usb密码模块相关信息更新到内部的双向链表中,如图3所示,所述双向链表结构由一个链表头和若干链表节点依次连接组成,除了链表头之外的其他所有节点都有向前和向后的指针用于遍历链表中的所有节点,链表头只有向后的指针,如图4所示,所述的链表头包含一个向后指向链表节点的指针,所述的链表节点包含一个整型的usb密码模块的访问地址、参数信息、状态信息以及指向链表节点类型的向前和向后的指针,所述的参数信息包括一个字符串型的名称、一个枚举型的类型以及协议的版本,所述的协议版本由一个整型的主版本号和一个整型的次版本号组成,所述的状态信息由两个布尔型的成员变量组成,一个标识是否在线,另一个标识是否空闲。

所述的usb密码模块的并发访问算法使用上述的实时操作系统freertos创建三个优先级相同的任务,所述的三个任务分别是输入任务、处理任务和输出任务,所述的usb密码模块的并发访问算法还创建两个fifo缓冲区,分别是输入fifo和输出fifo,使用freertos的xqueue机制来实现。

如图5所示上述的密码模块的并发访问算法在初始化之后创建了三个并发执行的任务,其中输入任务将访问输入数据推送到输入fifo,处理任务从输入fifo中取出访问输入数据查找并发送到空闲usb密码模块中去执行,usb密码模块执行后将处理结果数据推送到暑促和fifo中,输出任务从输出fifo中取出处理结果数据构造响应。

所述的输入任务和输出任务在上述主控板的主控芯片中执行且存在先后的时序关系,上述的处理任务主要过程在usb密码模块中执行,由于所述usb密码模块与主控芯片相互独立,所以如图6所示当需要连续处理多个输入访问数据时,输入任务、处理任务和输出任务可按照流水线方式并发执行。

所述的网络服务程序以独立任务的形式运行在freertos系统之上,所述网络服务程序是一个tcp服务程序,服务端口为12000,如图7所示上述的网络服务程序启动后监听使用者发起的连接,建立连接后接收并解析使用者发送来的访问数据,所述的访问数据分为数据头和数据域两部分,所述的数据头中包含两个字节的服务标识,用于区分数据对应的执行过程,所述的执行过程包括usb密码模块管理过程和usb密码模块访问过程,所述的usb密码模块管理过程包括添加、删除、修改和状态查询,所述的usb密码模块访问过程包括密钥管理操作如:密钥生成、密钥存储、密钥导入与导出、密钥使用、密钥备份与还原、密钥销毁,和密码算法操作如:sm1加密、sm1解密、sm2签名、sm2验签、sm2加密、sm2解密、sm3杂凑、sm4加密、sm4解密。

上述实施步骤描述了本发明的一个优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的实施形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述的发明构想范围内,通过上述教导或相关领域技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的设计思想和范围,都应在本发明所附权利要求的保护范围内。

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