一种兼容不同密码设备的访问方法

文档序号:6525262阅读:213来源:国知局
一种兼容不同密码设备的访问方法
【专利摘要】本发明公开一种兼容不同密码设备的访问方法,通过设置的可信软件栈实现对密码设备的访问。可信软件栈包括应用层的TSI调用接口和内核层的KTSI调用接口、实现调用串行化的TCS模块、实现不同硬件兼容的TDDI模块。用户通过应用层的TSI或内核层的KTSI接口调用密码设备,判断合法性后,将调用请求传输至TCS模块进行调用序列优化和串行化,最后传输至TDDI模块判断当前系统中使用的密码设备类型,并按设备需求组装命令报文,最后发送到设备进行运算,将运算结果按调用路径反向回传给调用者。因此,本发明统一了对不同密码设备的访问接口,提高了不同密码设备访问的兼容性和执行效率,有利于密码设备的应用与推广。
【专利说明】一种兼容不同密码设备的访问方法
【技术领域】
[0001]本发明涉及计算机信息安全领域,尤其涉及兼容可信计算领域的不同密码设备的访问方法。
【背景技术】
[0002]为了增加系统的安全性,很多对安全要求较高的信息系统均部署了密码设备,以提高计算机系统运行的安全性和数据的保密性。与之相关标准主要有:
RSA Security Inc.组织发布的PKCS标准组。
[0003]GM/T 0011-2012《可信计算可信密码支撑平台功能与接口规范》
GM/T 0012-2012《可信计算可信密码模块接口规范》
GM/T 0016-2012《智能密码钥匙密码应用接口规范》
GM/T 0017-2012《智能密码钥匙密码应用接口数据格式规范》
GM/T 0018-2012《密码设备应用接口规范》
GM/T 0019-2012《通用密码服务接口规范》
现有市场上密码设备种类繁多。设备形态主要包括PCI设备、USB设备、嵌入式设备等,各种设备执行的设计标准及接口标准不统一,造成各种设备之间功能接口、性能差异巨大。
[0004]例如,虽然大部分通用密码设备符合PKCS规范,但很少有设备提供了内核层调用接口。而且一些专用设备的调用接口及运行方式更是千差万别,造成基于密码设备进行安全软件开发的不便。此外,有些设备也存在计算性能瓶颈,部署后,可能导致计算机系统性能严重下降等问题。

【发明内容】

[0005]本发明提供一种兼容不同密码设备的访问方法,实现不同的密码设备的可信访问,提高密码设备的访问效率。
[0006]为实现上述目标,本发明提供一种兼容不同密码设备的通用访问方法,通过可信软件栈访问密码设备,可信软件栈包括TSI模块、KTSI模块、TCS模块和TDDI模块,所述的访问方法包括如下步骤:
(1)TSI模块和KTSI模块分别在应用层/内核层接收用户的访问请求;
(2)TSI模块和KTSI模块判断调用参数的合法性,通过后将访问请求发送至TCS模块;
(3)TCS模块判断调用者权限,若合法,则对调用进行序列优化和串行化后发送至TDDI模块;
(4)TDDI模块接收上层TCS模块下发的命令,按密码设备硬件规定的命令报告格式封装后转发给下层驱动,实现对密码设备的访问;
(5)将密码设备返回的运算结果按调用路径反向回传给调用者。
[0007]如上所述的访问方法,所述步骤(2)中,所述TSI模块/KTSI响应用户的访问密码设备的请求的处理流程进一步包括:(1)用户调用TSI模块于应用层或KTSI模块于内核层提供的接口;
(2)TSI模块/KTSI模块对输入参数进行检查,参数合法进入下一步骤;
(3)传输到内核TCS模块进行后继处理,否则通过调用接口向调用者返回错误信息;
(4)TCS模块处理返回后,向调用者返回调用结果。
[0008]如上所述的访问方法,所述TSI到TCS的传输方式包括ioctl、netlink、独立System_Call应用/内核间通信方式,所述KTSI到TCS的传输方式为函数调用。
[0009]如上所述的访问方法,其特征在于,所述的步骤(3)中,TCS模块的处理流程包括: (1)TCS模块接收TSI模块/KTSI模块传输的调用指令;
(2)TCS模块对调用指令的上下文进行分析,若指令是对连续数据进行操作,则将数据存入数据操作缓冲区;
(3)若操作缓冲区长度超过了当前加密设备单次处理长度限制,则将等于当前加密设备单次处理长度的数据做为参数,加入调用队列,否则直接返回调用者,等待后继数据;
(4)工作线程检查队列长度,如果队列长度超过了预设限制,则过滤队列中可以使用软算法进行计算的指令,用软算法计算后返回调用者;
(5)工作线程将队列中的指令按优先级发送给TDDI模块;
(6)将TDDI模块返回的数据回复给上层调用者。
[0010]如上所述的访问方法,所述TCS模块对调用指令的上下文进行分析,若指令是对连续数据进行操作的操作包括加密或摘要计算。
[0011]如上所述的访问方法,所述的步骤(3)中,还进一步包括TCS模块维护调用队列,并建立工作线程对调用队列进行轮询,按优先级向tddi模块的转发队列中的指令,从而实现串行化机制。
[0012]如上所述的访问方法,所述的步骤(4)中,TDDI接收TCS模块的指令,处理数据的流程包括如下步骤:
(1)TDDI模块接收TCS模块发送的指令;
(2)TDDI模块针对密码设备的接口格式构造指令报文,发送给密码设备驱动;
(3)将密码设备驱动返回的数据封装为统一格式,返回给上层调用者。
[0013]本发明公开一种兼容不同密码设备的访问方法,统一了对不同密码设备的访问接口,提高了不同密码设备访问的兼容性和执行效率,有利于密码设备的应用与推广。
[0014]【【专利附图】

【附图说明】】
图1是本发明兼容不同密码设备的访问方法的流程图。
[0015]图2是本发明图的TSI模块的数据处理流程图。
[0016]图3是本发明的KTSI模块的数据处理流程图。
[0017]图4是本发明的TCS模块的数据处理流程图。
[0018]图5是本发明的TDDI模块的数据处理流程图。
[0019]【【具体实施方式】】
为进一步阐述本发明达成预定目的所采取的技术手段及功效,以下结合附图及实施方式、结构特征,对本发明的具体结构及其功效,详细说明如下。
[0020]本发明公开一种兼容不同密码设备的访问方法,尤其是在可信计算领域的不同密码设备的访问方法,在本发明的下述的【具体实施方式】中,基于Linux操作系统的一种实施方式,然而,本领域的技术人员可以据此得知,本发明不限于Linux操作系统的实施,也可以应用于Windows系统,或者Android操作系统等。
[0021]本发明通过可信软件栈实现访问各种密码设备,可信软件包括TDD1、TCS、KTSI,TSI四个部分,其中,TSS的英文名称Trusted software stack:中文名称是可信软件栈;TSI的英文名称Trusted Service Interface,中文名称是可信服务接口;KTSI的英文名称Kernel Trusted Service Interface,中文名称是可信服务内核接口;TCS的英文名称Trusted Core Services,中文名称是可信核心服务;TDDI的英文名称Trusted DeviceDriver Interface,中文名称是可信设备驱动接口,为了表述的方便和简洁,在下述的描述以及本文件中,均以英文简称表示上述的技术术语。
[0022]如图1,为本发明可信软件栈的结构图。可信软件栈包括应用层和内核层,其中应用层是用户调用的操作层,而内核层是本发明的操作系统的内部操作调用层,应用层包括TSI模块,内核层包括KTSI模块、TCS模块以及TDDI模块。在用户通过应用层的TSI操作调用启动密码设备访问后,并将访问请求传输至TCS模块,调用位于操作系统的内核层的KTSI模块判断合法性,在TSI模块和KTSI模块均判断合法性后,进入TCS模块处理,并传输至TDDI调用和生成所需要访问的密码设备驱动,并通过密码设备驱动所需要访问的设备,进而实现硬件层的密码设备的驱动和访问。
[0023]具体,各模块的调用与功能分别为:TSI模块,提供可信软件栈的应用层调用接口。KTSI模块,提供可信软件栈的内核层调用接口,接口格式同TSI模块。TCS模块,提供调用序列的串行化服务,并依据硬件要求进行数据分包。在串行化等待队列过长时,调用软算法进行辅助计算,此步骤为可选步骤。TDDI模块针对不同设备的驱动要求,进行命令报文组装。
[0024]如图2,为TSI模块的数据处理流程图。TSI模块以动态库的形式存在于应用层,由用户调用。TSI模块对输入参数进行检查,参数合法则传输到内核TCS模块进行后继处理。TSI模块响应用户的访问密码设备的请求,处理数据的工作流程如下:
(1)外部应用调用TSI模块提供的接口;
(2)TSI模块对输入参数进行检查;
(3)参数合法则传输(传输方式可选用ioctl、netlink等通信方式)到内核TCS模块进行后继处理,否则通过调用接口向调用者返回错误信息;
(4)通过调用接口向调用者返回调用结果。
[0025]如图3,为KTSI模块的数据处理流程图。KTSI模块提供内核态调用接口,调用接口的格式同TSI模块。KTSI模块与TCS模块的通信通过直接的函数调用完成。在KTSI相应操作系统的内层操作调用的处理流程包括:
(1)外部内核模块调用KTSI模块提供的接口;
(2)KTSI模块对输入参数进行检查;
(3)参数合法则调用内核TCS模块进行后继处理,否则通过调用接口向调用者返回错误信息;
(4)通过调用接口向调用者返回调用结果。
[0026]如图4,为本发明的TCS模块的数据处理流程。TCS模块提供对调用指令的串行化服务、并依据TDDI传递的参数进行数据分包。TCS模块维护调用队列,并建立工作线程对调用队列进行轮询,向TDDI模块的转发队列中的指令,从而实现串行化机制。在串行化等待队列过长时,调用软算法进行辅助计算,该步骤为可以选择的优化步骤。
[0027]此外,TCS模块通过为连续数据操作指令(摘要计算,加密计算,解密计算)维护数据缓冲区,实现对关联调用指令的合并,以提高加密设备的工作效率。
[0028]TCS模块接收TSI模块和KTSI模块的调用指令后,进行数据处理的流程包括如下步骤:
(1)TCS模块接收TSI模块/KTSI模块传输的调用指令;
(2)TCS模块对调用指令的上下文进行分析,若指令是对连续数据进行操作,具体实施中,操作包括摘要计算或加解密计算,则将数据存入数据操作缓冲区;
(3)若操作缓冲区长度超过了当前加密设备单次处理长度限制,则将等于当前加密设备单次处理长度的数据做为参数,加入调用队列。否则直接返回调用者,等待后继数据;
(4)工作线程检查队列长度,如果队列长度超过了预设限制,则过滤队列中可以使用软算法进行计算的指令,采用公开算法的摘要计算,使用外部密钥的加密、解密计算,用软算法计算后返回调用者;
(5)工作线程将队列中的指令按优先级发送给TDDI模块;
(6)将TDDI模块返回的数据回复给上层调用者。
[0029]如图5,为本发明的TDDI模块的数据处理的流程图。TDDI模块与密码设备硬件相关,需要针对不同密码设备硬件进行不同的封装。TDDI模块的主要功能是接收上层TCS模块下发的命令,按密码设备硬件规定的命令报告格式封装后转发给下层驱动。
[0030]在TDDI接收TCS模块的指令后,进行数据处理的流程包括如下步骤:
(1)TDDI模块接收TCS模块发送的指令;
(2)TDDI模块针对密码设备的接口格式构造指令报文,发送给密码设备驱动;
(3)将密码设备驱动返回的数据封装为统一格式,返回给上层调用者。
[0031]综上所述,本发明针对目前市场上密码设备功能、接口不统一,性能差别较大的问题,通过开发调用中间件,实现以下目标:
(1)实现应用/内核层统一的访问接口,该统一的访问接口是通过TSI和KTSI这两个子模块所实现的功能,具体的是通过操作系统应用层与内核层的隔离与通信机制。由于TCS存在于内核层,TSI提供应用层调用接口,在应用层接收到用户调用请求后,需要将调用指令和相关的参数、数据传输到内核层后,再转发给TCS模块。而KTSI提供内核层调用接口,在接收到内核态的调用请求后,可以直接转发给TCS模块;
(2)实现应用/内核访问的串行化机制,该串行化机制是通过TCS子模块所实现的串行化机制;
(3)对访问请求进行过滤,合并其中可合并的请求,提高硬件的工作效率,通过上述TCS模块工作流程的第2-3步实现,如图4 ;
(4)在密码设备性能不满足系统要求时,通过CPU及软算法辅助密码设备运算,通过TCS模块工作流程的第4步实现,参阅图4。
[0032]本发明公开一种兼容不同密码设备的通用访问方法,并提供了基于Linux操作系统的一种实施方式。本发明通过设置的可信软件栈实现对密码设备的访问。可信软件栈包括应用层的TSI调用接口和内核层的KTSI调用接口、实现调用串行化的TCS模块、实现不同硬件兼容的TDDI模块。用户通过应用层的TSI或内核层的KTSI接口调用密码设备,判断合法性后,将调用请求传输至TCS模块进行调用序列优化和串行化,最后传输至TDDI模块判断当前系统中使用的密码设备类型,并按设备需求组装命令报文,最后发送到设备进行运算,将运算结果按调用路径反向回传给调用者。因此,本发明统一了针对不同密码设备的访问接口,提高了不同密码设备访问的兼容性和执行效率,有利于密码设备的应用与推广。
[0033]本发明的上述实施例仅用以说明本发明的原理和结构,本领域技术人员据此所作任何之显而易见之变换实施者,均在本发明的保护范围之内。
【权利要求】
1.一种兼容不同密码设备的访问方法,通过可信软件栈访问密码设备,可信软件栈包括TSI模块、KTSI模块、TCS模块和TDDI模块,所述的访问方法包括如下步骤:TSI模块和KTSI模块分别在应用层/内核层接收用户的访问请求;TSI模块和KTSI模块判断调用参数的合法性,通过后将访问请求发送至TCS模块;TCS模块判断调用者权限,若合法,则对调用进行序列优化和串行化后发送至TDDI模块;TDDI模块接收上层TCS模块下发的命令,按密码设备硬件规定的命令报告格式封装后转发给下层驱动,实现对密码设备的访问;将密码设备返回的运算结果按调用路径反向回传给调用者。
2.如权利要求1所述的访问方法,其特征在于,所述步骤(2)中,所述TSI模块/KTSI响应用户的访问密码设备的请求的处理流程进一步包括:用户调用TSI模块于应用层或KTSI模块于内核层提供的接口 ;TSI模块/KTSI模块对输入参数进行检查,参数合法进入下一步骤;传输到内核TCS模块进行后继处理,否则通过调用接口向调用者返回错误信息;TCS模块处理返回后,向调用者返回调用结果。
3.如权利要求2所述的访问方法,其特征在于,所述TSI到TCS的传输方式包括ioctl、netlink、独立System_Call应用/内核间通信方式,所述KTSI到TCS的传输方式为函数调用。
4.如权利要求1所述的访问方法,其特征在于,所述的步骤(3)中,TCS模块的处理流程包括:TCS模块接收TSI模块/KTSI模块传输的调用指令;TCS模块对调用指令的上下文进行分析,若指令是对连续数据进行操作,则将数据存入数据操作缓冲区;若操作缓冲区长度超过了当前加密设备单次处理长度限制,则将等于当前加密设备单次处理长度的数据做为参数,加入调用队列,否则直接返回调用者,等待后继数据;工作线程检查队列长度,如果队列长度超过了预设限制,则过滤队列中可以使用软算法进行计算的指令,用软算法计算后返回调用者;工作线程将队列中的指令按优先级发送给TDDI模块;将TDDI模块返回的数据回复给上层调用者。
5.如权利要求4所述的访问方法,其特征在于,所述TCS模块对调用指令的上下文进行分析,若指令是对连续数据进行操作的操作包括加密或摘要计算。
6.如权利要求1所述的访问方法,其特征在于,所述的步骤(3)中,还进一步包括TCS模块维护调用队列,并建立工作线程对调用队列进行轮询,按优先级向tddi模块的转发队列中的指令,从而实现串行化机制。
7.如权利要求1所述的访问方法,其特征在于,所述的步骤(4)中,TDDI接收TCS模块的指令,处理数据的流程包括如下步骤:TDDI模块接收TCS模块发送的指令;TDDI模块针对密码设备的接口格式构造指令报文,发送给密码设备驱动;将密码设备驱动返回的数据封装为统一格式,返回给上层调用者。
【文档编号】G06F21/46GK103646206SQ201310719139
【公开日】2014年3月19日 申请日期:2013年12月24日 优先权日:2013年12月24日
【发明者】沈军 申请人:北京可信华泰信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1