一种PCI密码卡驱动系统及其实现方法
技术领域
本发明涉及信息安全领域,特别涉及一种PCI密码卡驱动系统及其实现方法。
背景技术
PCI密码卡是以PCI局部总线或者PCI Express为接口,具有密码运算功能、密钥管理功能、物理随机数产生功能和设备自身安全保护措施的密码设备,PCI密码卡可以应用在需要密码运算和密钥管理等安全功能的、具有PCI局部总线或者PCI Express的通信设备、计算机设备、安全保密设备上,例如:虚拟专网(VPN)设备、证书中心(CA)系统的有关设备、网络密码机、安全服务器、安全终端、安全管理中心或密钥管理设备等。PCI密码卡作为部署在应用端的重要安全设备,实现密钥生成、管理、保护、高速签名、验证、加密和解密操作,是信息安全产业链中最基本的、不可缺少的密码设备。
通用PCI密码卡的工作模式如下:首先,PCI密码卡被固定在已安装操作系统的服务器中,服务器必须携带PCI或PCIE槽;其次,加载PCI密码卡驱动程序;最后,在服务器操作系统中调用PCI密码卡提供的应用层接口以获得密码服务。PCI密码卡主要是被研制成证书中心(CA)系统的有关设备、服务器密码机、安全服务器、金融数据密码机或签名验证服务器等网络密码设备。使用PCI密码卡研制服务器密码机通常做法是,在服务器的应用层开发一套调用网络接口的服务程序,这个服务程序作为后台程序一直运行在服务器中。后台服务程序接收网络数据包并解析数据包然后调用PCI密码卡的应用层接口获取密码服务,然后再调用网络接口将数据包发送出去。
随着科技水平的日益提高,陆续出现了万兆网卡、PCIE3.0、高速的密码算法芯片等,网络传输速度越来越快,密码卡的密码运算性能越来越高,但密码设备却遇到了性能的瓶颈,高性能的密码运算功能和高性能的网络传输优势都没有发挥出来。
发明内容
本发明所要解决的技术问题是PCI密码卡设备中网卡和PCI密码卡间的数据传输环节过多制约PCI密码卡密码运算能力和PCI密码卡不具备网络调用的能力等问题。
本发明解决上述技术问题的技术方案如下:一种PCI密码卡驱动系统的实现方法,包括以下步骤:
步骤1.PCI密码卡接口模块接收客户端发送的密码运算请求,并将所述密码运算请求封装为第一数据包后发送到远程终端;
步骤2.所述远程终端通过网卡接收所述第一数据包,对所述第一数据包进行解析,得到第一数据;
步骤3.当所述第一数据为所述密码运算请求时,所述远程终端向PCI密码卡发送PCI密码卡运算指令;
步骤4.所述PCI密码卡接收并根据所述PCI密码卡运算指令进行运算,得到运算结果,且将所述运算结果反馈给所述远程终端;
步骤5.所述远程终端接收并将所述运算结果和所述运算结果对应的所述密码运算请求封装为第二数据包,且通过所述网卡将所述第二数据包发送到所述PCI密码卡接口模块;
步骤6.所述PCI密码卡接口模块接收所述第二数据包,并将所述第二数据包解析得到的数据发送到所述客户端。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,在步骤2中,对所述第一数据包进行解析,得到第一数据,具体包括:通过网卡接收所述第一数据包,网卡产生中断,在所述网卡驱动程序的中断处理程序中对所述第一数据包进行解析,得到所述第一数据。
采用上述进一步方案的有益效果是:根据网卡的工作原理,确保出现数据传输的时候及时对数据进行处理。
进一步,在步骤2中,对所述第一数据包进行解析,得到第一数据,具体包括:当接收到所述网卡接收网络数据包的监听信号时,对所述第一数据包进行解析,得到第一数据。
进一步,所述步骤3具体包括:判断所述第一数据是否为密码运算请求,当所述第一数据为所述密码运算请求时,向PCI密码卡发送PCI密码卡运算指令。
采用上述进一步方案的有益效果是:判断数据包中解析的数据是否是密码运算,提高系统的工作效率。
进一步,所述PCI密码卡接口模块设置在所述客户端中。
本发明还提供实现上述方法的一种PCI密码卡驱动系统,包括:PCI密码卡接口模块、远程终端和PCI密码卡,所述远程终端包括网卡和数据处理模块;
所述PCI密码卡接口模块用于接收客户端发送的密码运算请求,并将密码运算请求封装为第一数据包发送到所述数据处理模块;还用于接收所述数据处理模块通过所述网卡发送的第二数据包并将所述第二数据包解析,得到的密码运算结果发送到客户端;
所述数据处理模块用于通过所述网卡接收所述第一数据包,并对所述第一数据包进行解析,得到第一数据,且当所述第一数据为所述密码运算请求时,向PCI密码卡发送PCI密码卡运算指令,还接收所述PCI密码卡反馈的运算结果,并将所述运算结果和所述运算结果对应的所述密码运算请求封装为第二数据包后通过所述网卡发送到所述PCI密码卡接口模块;
所述PCI密码卡用于接收并根据所述数据处理模块发送的PCI密码卡运算指令进行运算,得到运算结果,且将运算结果反馈给所述数据处理模块。
进一步,所述数据处理模块具体用于,通过所述网卡接收所述第一数据包,网卡产生中断,在所述网卡驱动程序的中断处理程序中对所述第一数据包进行解析,得到所述第一数据。
进一步,所述数据处理模块具体用于,当接收到所述网卡接收网络数据包的监听信号时,对所述第一数据包进行解析,得到第一数据。
进一步,所述数据处理模块包括:内核网络服务模块和PCI密码卡内核驱动模块,其中,
所述内核网络服务模块用于通过所述网卡接收所述第一数据包,对所述第一数据包进行解析,得到第一数据,并判断所述第一数据是否为密码运算请求,当所述第一数据为所述密码运算请求时,调用所述PCI密码卡内核驱动模块向所述PCI密码卡发送PCI密码卡运算指令;
所述PCI密码卡内核驱动模块用于接收所述内核网络服务模块发送的调用指令,并根据所述调用指令向所述PCI密码卡发送PCI密码卡运算指令和接收所述PCI密码卡反馈的运算结果,并将所述运算结果发送到所述内核网络服务模块;
所述内核网络服务模块还用于接收所述PCI密码卡内核驱动模块发送的运算结果,并将所述运算结果和所述运算结果对应的所述密码运算请求封装为第二数据包后通过所述网卡发送到所述PCI密码卡接口模块。
进一步,所述PCI密码卡接口模块设置在客户端中。
本发明的有益效果是:使用已有硬件设备并结合本发明的PCI密码卡接口模块和数据处理模块,调用PCI密码卡接口模块可实现通过网络访问PCI密码卡,减少网卡和PCI密码卡间的数据传输环节,充分发挥了网络传输和PCI密码卡密码运算能力,解决了网络密码设备的性能瓶颈问题。
附图说明
图1为本发明PCI密码卡驱动系统实现方法流程图;
图2为本发明PCI密码卡驱动系统工作流程示意图;
图3为本发明PCI密码卡驱动系统中远程终端和PCI密码卡之间工作流程示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,一种PCI密码卡驱动系统的实现方法,包括以下步骤:
步骤1.PCI密码卡接口模块接收客户端发送的密码运算请求,并将密码运算请求封装为第一数据包后发送到远程终端;
步骤2.远程终端通过网卡接收第一数据包,对第一数据包进行解析,得到第一数据;
步骤3.当第一数据为密码运算请求时,远程终端向PCI密码卡发送PCI密码卡运算指令;
步骤4.PCI密码卡接收并根据PCI密码卡运算指令进行运算,得到运算结果,且将运算结果反馈给远程终端;
步骤5.远程终端接收并将运算结果和运算结果对应的密码运算请求封装为第二数据包,且通过网卡将第二数据包发送到PCI密码卡接口模块;
步骤6.PCI密码卡接口模块接收第二数据包,并将第二数据包解析得到的数据发送到客户端。
优选的,在步骤2中,对第一数据包进行解析,得到第一数据,具体包括:通过网卡接收第一数据包,网卡产生中断,在网卡驱动程序的中断处理程序中对第一数据包进行解析,得到第一数据。
网卡是通过中断方式来实现数据包的接收,中断方式利用硬件体系结构的中断机制实现设备和系统的应答对话,即当物理设备需要CPU处理数据时,就向CPU发送一个中断信号,系统则在收到信号后调用相应的中断服务程序响应对设备中断的处理。
在步骤2中,对第一数据包进行解析,得到第一数据,具体包括:当接收到网卡接收网络数据包的监听信号时,对第一数据包进行解析,得到第一数据。
优选的,步骤3具体包括:判断第一数据是否为密码运算请求,当第一数据为密码运算请求时,向PCI密码卡发送PCI密码卡运算指令。
优选的,PCI密码卡接口模块设置在客户端中。
如图2所示,本发明还提供实现上述方法的一种PCI密码卡驱动系统,包括:PCI密码卡接口模块、远程终端和PCI密码卡,远程终端包括网卡和数据处理模块;
PCI密码卡接口模块用于接收客户端发送的密码运算请求,并将密码运算请求封装为第一数据包发送到数据处理模块;还用于接收数据处理模块通过网卡发送的第二数据包并将第二数据包解析,得到的密码运算结果发送到客户端;
数据处理模块用于通过网卡接收第一数据包,并对第一数据包进行解析,得到第一数据,且当第一数据为密码运算请求时,向PCI密码卡发送PCI密码卡运算指令,还接收PCI密码卡反馈的运算结果,并将运算结果和运算结果对应的密码运算请求封装为第二数据包后通过网卡发送到PCI密码卡接口模块;
PCI密码卡用于接收并根据数据处理模块发送的PCI密码卡运算指令进行运算,得到运算结果,且将运算结果反馈给数据处理模块。
优选的,数据处理模块具体用于,通过网卡接收第一数据包,网卡产生中断,在网卡驱动程序的中断处理程序中对第一数据包进行解析,得到第一数据。
优选的,客户端和远程终端包括:具有交互功能的电子设备。
优选的,数据处理模块具体用于,当接收到网卡接收网络数据包的监听信号时,对第一数据包进行解析,得到第一数据。
如图3所示,优选的,数据处理模块包括:内核网络服务模块和PCI密码卡内核驱动模块,其中,
内核网络服务模块用于通过网卡接收第一数据包,对第一数据包进行解析,得到第一数据,并判断第一数据是否为密码运算请求,当第一数据为密码运算请求时,调用PCI密码卡内核驱动模块向PCI密码卡发送PCI密码卡运算指令;
PCI密码卡内核驱动模块用于接收内核网络服务模块发送的调用指令,并根据调用指令向PCI密码卡发送PCI密码卡运算指令和接收PCI密码卡反馈的运算结果,并将运算结果发送到内核网络服务模块;
内核网络服务模块还用于接收PCI密码卡内核驱动模块发送的运算结果,并将运算结果和运算结果对应的密码运算请求封装为第二数据包后通过网卡发送到PCI密码卡接口模块。
以上实施过程使用已有硬件设备并结合本发明的PCI密码卡接口模块、内核网络服务模块和PCI密码卡内核驱动模块,调用PCI密码卡接口模块可实现通过网络访问PCI密码卡,将网卡数据传输与执行PCI密码卡密码服务流程结合在数据处理模块中,减少网卡和PCI密码卡间的数据传输环节,充分发挥了网络传输和PCI密码卡密码运算能力,解决了网络密码设备的性能瓶颈问题。
以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。