数字认证终端的处理方法和装置的制作方法

文档序号:6442528阅读:163来源:国知局
专利名称:数字认证终端的处理方法和装置的制作方法
技术领域
本发明涉及信息安全技术领域,尤其涉及数字认证终端的处理方法和装置。
背景技术
目前,Linux系统已经广泛应用在服务器、嵌入式等领域,针对Linux开发的应用程序也越来越多。在Linux系统下,所有的设备都以文件的形式存在。当数字认证终端,如 USB_Key,连接到运行Linux系统的服务器,该数字认证终端也以设备文件的形式存储在服务器中。Linux系统中的调用程序可以通过读取该设备文件,与数字认证终端进行通信。Linux系统中的一些特定用户对连接服务器的数字认证终端具有读写权限(Root 根权限),而普通用户对数字认证终端只有读权限没有写权限(非Root根权限)。这对使用数字认证终端的用户带来很大不便。

发明内容
本发明实施例提供了一种数字认证终端的处理方法和装置,使得不具有根权限的用户可以方便的读写数字认证终端。本发明实施例提供了一种数字认证终端的处理方法,包括加载具有根权限的守护进程,建立第一管道和第二管道;所述守护进程通过所述第一管道读取客户端应用程序发送的携带操作指令的第一数据;所述守护进程解析所述第一数据,获得其携带的操作指令,对数字认证终端执行所述操作指令,获得执行结果;所述守护进程将携带所述执行结果的第二数据,通过所述第二管道返回到所述客户端应用程序。本发明实施例提供了一种数字认证终端的处理装置,包括建立模块,用于加载具有根权限的守护进程,建立第一管道和第二管道;第一读取模块,用于通过所述第一管道读取客户端应用程序发送的携带操作指令的第一数据;操作模块,用于解析所述第一数据,获得其携带的操作指令,对数字认证终端执行所述操作指令,获得执行结果;第一发送模块,用于将携带所述执行结果的第二数据,通过所述第二管道返回到所述客户端应用程序。本发明实施例提供了数字认证终端的处理方法和装置,用于加载具有根权限的守护进程,建立第一管道和第二管道;所述守护进程通过所述第一管道读取客户端应用程序发送的携带操作指令的第一数据;守护进程解析所述第一数据,获得其携带的操作指令,对数字认证终端执行所述操作指令,获得执行结果;守护进程将携带所述执行结果的第二数据,通过所述第二管道返回到所述客户端应用程序。使用本发明实施例提供的数字认证终端的处理方法和装置,客户端应用进程通过具有根权限的守护进程对数字认证终端进行处理,并且在守护进程和客户端应用进程之间建立两条管道(pipe),分别用于发送数据和读取数据。由此,普通用户可以通过该具有根权限的守护进程对数字认证终端进行处理,也就是数字认证终端对于Linux系统的具有Root根权限的用户和具有非Root根权限的用户均可以正常使用,提高了数字认证终端使用的友好度。


图1为本发明实施例中数字认证终端的处理方法流程示意图;图2为本发明另一实施例中守护进程侧数字认证终端的处理方法流程示意图;图3为本发明另一实施例中客户端应用程序侧数字认证终端的处理方法流程示意图;图4为本发明实施例中数字认证终端的处理装置示意图。
具体实施例方式下面结合各个附图对本发明实施例技术方案的主要实现原理具体实施方式
及其对应能够达到的有益效果进行详细地阐述。为了解决现有技术存在的问题,本发明实施例提供了一种数字认证终端的处理方法,如图1所示,包括以下步骤步骤101、加载具有根权限的守护进程,建立第一管道和第二管道;步骤102、守护进程通过第一管道读取客户端应用程序发送的携带操作指令的第一数据;步骤103、守护进程解析第一数据,获得其携带的操作指令,对数字认证终端执行所述操作指令,获得执行结果;步骤104、守护进程将携带执行结果的第二数据,通过第二管道返回到客户端应用程序。具体的,由于现有技术中不具有根权限的用户,无法对数字认证终端(如USB_ Key)执行写操作等,本发明实施例中在服务器的Linux系统的Root权限(根权限)下安装守护进程,这样,该守护进行便具有了根权限。当用户以非根权限的账户登录服务器中的 Linux系统时,仍然可以正常操作数字认证终端。服务器Linux系统启动后,加载具有根权限的守护进程,建立第一管道和第二管道;然后守护进程判断该第一管道和第二管道是否成功建立;若成功,守护进程和客户端应用程序打开该第一管道和第二管道;若未成功,重新建立第一管道和第二管道。其中,该第一管道用于守护进程向客户端应用程序发送数据, 该第二管道用于客户端应用程序向守护进程发送数据。具体的,守护进程读取客户端应用程序发送的第一数据时,用读方式打开第一管道;向客户端应用程序返回第二数据时,用读写方式打开第二管道;客户端应用程序向守护进程发送第一数据时,用读写方式打开第一管道;读取守护进程返回的第二数据时,用读方式打开第二管道。其中,第一数据携带操作指令,第二数据携带执行结果。上述守护进程和客户端应用程序打开第一管道和第二管道之后,还包括判断守护进程和客户端应用程序是否成功打开第一管道和第二管道。若未成功打开,则重新执行打开第一管道和第二管道的操作。
为了更清楚的说明本发明实施例提供的方法,将客户端应用程序和守护进程的操作过程分侧进行描述。在客户端应用程序侧发送第一数据时客户端应用程序用读写方式打开第一管道,并在检测成功打开第一管道后,将携带操作指令的第一数据通过该第一管道发送到守护进程。接收第二数据时客户端应用程序用读方式打开第二管道,读取守护进程返回的第二数据;判断是否读取成功;若成功,解析第二数据,获取执行结果;若未成功,重新读取第二管道中的第二数据。在守护进程侧接收第一数据时守护进程用读方式打开第一管道;读取第一管道中客户端应用程序发送的第一数据;解析第一数据,获得其携带的操作指令。发送第二数据时守护进程用读写方式打开第二管道;将操作指令的执行结果携带在第二数据中,并通过第二管道返回到客户端应用程序。其中,上述操作指令包括但不限于连接数字认证终端、对数字认证终端转发该操作指令和断开数字认证终端等。相应的,守护进程根据该操作指令连接数字认证终端、对数字认证终端转发该操作指令和断开数字认证终端等。通过上述描述,可以看出,使用本发明实施例提供的数字认证终端的处理方法,客户端应用进程通过具有根权限的守护进程对数字认证终端进行处理,并且在守护进程和客户端应用进程之间建立两条管道,分别用于发送数据和读取数据。由此,普通用户可以通过该具有根权限的守护进程对数字认证终端进行处理,也就是数字认证终端对于Linux系统的具有Root权限的用户和具有非Root权限的用户均可以正常使用,提高了数字认证终端使用的友好度。下面通过具体实施例对本发明提供的数字认证终端的处理方法进行详细说明。在守护进程侧,根据客户端应用程序发送的操作指令对数字认证终端进行处理的过程,如图2所示,包括以下步骤步骤201、Linux系统启动,运行预先安装的具有根权限的守护进程;具体的,首先可以编写Iinux系统下启动服务的脚本,用于实现守护进程的启动、 关闭等工作。并且,修改启动脚本为可运行的权限,可以通过命令chmod+x wd_udk命令修改脚本权限。其次,编写shell安装脚本,用于实现将守护进程以及启动服务的脚本拷贝到指定路径的工作,以及用系统命令chkconfig将守护进程加入到系统服务,再用start命令启动服务。最后,在Linux系统的root账户权限下运行该shell安装脚本,完成该守护进程的启动。以后每次启动Linux系统,该守护进程均会自动运行。步骤202、守护进程建立两个管道用于在守护进程和客户端应用程序之间进行通信;其中,第一管道用于客户端应用程序向守护进程发送数据;第二管道用于守护进程向客户端应用程序发送数据。具体的,Linux系统下的管道(如pipe管道)都是单向管道,而需要在守护进程和客户端应用程序之间双向进行通信,因此需要建立两个管道。
较佳的,首先用unlink函数删除已经存在的管道文件,然后再建立上述两个管道,权限可以为777,也就是所有用户权限均可以使用。步骤203、判断管道是否建立成功;若成功,则执行步骤204;若未成功,则返回步骤 202。步骤204、用读方式打开第一管道,同时用读写方式打开第二管道;其中,打开第一管道用于读取客户端程序发送的携带操作指令的第一数据;打开第二管道用于向客户端程序返回操作指令的执行结果。该第二管道可以与第一管道同时打开,也可以在守护进程向客户端程序返回数据时再打开。步骤205、判断是否成功打开管道;如果成功,则执行步骤206 ;若未成功,则返回步骤202。步骤206、读取第一管道,接收客户端应用程序发送的第一数据;步骤207、判断是否读取到第一数据;若是,则执行步骤208 ;否则,执行步骤206。 具体的,当读取到的数据长度不为0时,表明读取到数据。步骤208、解析接收到的第一数据,获取该第一数据携带的操作指令;具体的,可以定义结构体,用于组织客户端应用进程将第一数据发送到具有根权限的守护进程。可以用pipeCmd->Cmd_type,来判断操作指令的类型。较佳的,可以定义如下几个操作类型来方便客户端操作#def ine CMD_C0NNECT 1//表示连接数字认证终端#define CMD_DISCONNECT 2//表示断开数字认证终端的连接#define CMD_C0MMAND 3//表示向数字认证终端发送命令步骤209、判断操作类型,执行不同的操作;如果pipecmd- > cmd_type是CMD_ CONNECT类型,则执行步骤210 ;如果pipecmd- > cmd_type是CMD_C0MMAND类型,则执行步骤211 ;否则如果pipecmd- > cmd_type是CMD_DISCONNECT类型,则执行步骤212 ;如果都不是,则执行步骤213。步骤210、连接数字认证终端,然后执行步骤213 ;通过比对数字认证终端的VID来判断某一个数字认证终端是否为操作指令所指定的数字认证终端;如果是,则打开数字认证终端。步骤211、执行操作指令,然后执行步骤213 ;步骤212、断开数字认证终端的连接;具体可以由下面的代码来实现步骤213、将操作指令的执行结果按照传输格式进行封装,形成第二数据;步骤214、将第二数据写入第二管道,然后返回步骤206等待接收客户端应用程序发送的下一条第一数据。具体的,将对数字认证终端的操作结果按照定义的格式封装后,通过第二管道发送给客户端应用程序。本发明实例中,如果Linux系统上插入多个数字认证终端,如USBJfey设备,则服务器中的守护进程会枚举到多个USBJfey设备,然后分别操作每个USBJfey在/dev下的设备节点文件,从而使得守护进程可以支持多设备的使用。在客户端应用程序侧,通过具有根权限的守护进程对数字认证终端进行操作的过程,如图3所示,包括以下步骤步骤301、启动客户端应用程序;步骤302、用读写方式打开第一管道,用读方式打开第二管道;步骤303、判断是否成功打开管道;若成功,则执行步骤304 ;若未成功,则返回步骤 302。步骤304、根据操作内容,将相应的操作指令封装为第一数据;若为连接数字认证终端的操作,执行步骤305 ;若为向数字认证终端进行相应操作,执行步骤306 ;若为断开数字认证终端的连接,执行步骤307 ;具体的,对同一数字认证终端进行操作的顺序一般为首先要连接数字认证终端并打开,然后向其发送指令来实现应用,最后需要关闭数字认证终端断开连接。步骤305、实现连接数字认证终端的操作命令,然后执行步骤308 ;步骤306、实现向数字认证终端的发送指令的操作命令,然后执行步骤308 ;步骤307、实现断开数字认证终端连接的操作命令;步骤308、将第一数据写入第一管道;步骤309、客户端应用程序读取第二管道,等待守护进程发送的携带执行结果的第二数据;步骤310、客户端应用程序判断是否读取到第二数据;若是,则执行步骤311 ;否则,返回步骤309再次读取第二数据。步骤311、解析接收到的第二数据,将函数返回值发送给数字认证终端的应用程序,程序退出时关闭打开的第一管道和第二管道。通过上述描述,可以看出,使用本发明实施例提供的数字认证终端的处理方法,客户端应用进程通过具有根权限的守护进程对数字认证终端进行处理,并且在守护进程和客户端应用进程之间建立两条管道,分别用于发送数据和读取数据。由此,普通用户可以通过该具有根权限的守护进程对数字认证终端进行处理,也就是数字认证终端对于Linux系统的具有Root权限的用户和具有非Root权限的用户均可以正常使用,提高了数字认证终端使用的友好度。基于同一发明构思,本发明实施例还提供了一种数字认证终端的处理装置,如图4 所示,包括建立模块401,用于加载具有根权限的守护进程,建立第一管道和第二管道;第一读取模块402,用于通过所述第一管道读取客户端应用程序发送的携带操作指令的第一数据;操作模块403,用于解析所述第一数据,获得其携带的操作指令,对数字认证终端执行所述操作指令,获得执行结果;第一发送模块404,用于将携带所述执行结果的第二数据,通过所述第二管道返回到所述客户端应用程序。较佳的,该处理装置还包括第一判断模块405,用于判断所述第一管道和第二管道是否成功建立;若未成功, 通知所述建立模块401重新建立所述第一管道和第二管道;打开模块406,用于所述第一判断模块405判断成功建立后,打开所述第一管道和所述第二管道。较佳的,所述打开模块406,具体用于所述守护进程读取所述客户端应用程序发送的第一数据时,用读方式打开所述第一管道;向所述客户端应用程序返回所述第二数据时, 用读写方式打开所述第二管道;所述客户端应用程序向所述守护进程发送第一数据时,用读写方式打开所述第一管道;读取所述守护进程返回的所述第二数据时,用读方式打开所
述第二管道。较佳的,处理装置还包括第二判断模块407,用于判断所述打开模块406是否成功打开所述第一管道和所述第二管道;若守护进程未成功,则通知所述建立模块401重新建立所述第一管道和第二管道;若客户端应用程序未成功,则通知所述打开模块406重新打开所述第一管道和所述
第二管道。较佳的,所述第一读取模块402,用于所述守护进程用读方式打开所述第一管道; 读取所述第一管道中客户端应用程序发送的第一数据;解析所述第一数据,获得其携带的操作指令。较佳的,所述第一发送模块404,具体用于所述守护进程用读写方式打开所述第二管道;将所述操作指令的执行结果携带在第二数据中,并通过所述第二管道返回到所述客户端应用程序。较佳的,还包括第二读取模块408,用于所述客户端应用程序用读方式打开所述第二管道,读取所述守护进程返回的所述第二数据;第三判断模块409,用于判断是否读取成功;若成功,解析所述第二数据,获取所述执行结果;若未成功,通知所述第二读取模块408重新读取所述第二管道中的第二数据。通过上述描述,可以看出,使用本发明实施例提供的数字认证终端的处理方法和装置,客户端应用进程通过具有根权限的守护进程对数字认证终端进行处理,并且在守护进程和客户端应用进程之间建立两条管道,分别用于发送数据和读取数据。由此,普通用户可以通过该具有根权限的守护进程对数字认证终端进行处理,也就是数字认证终端对于 Linux系统的具有Root权限的用户和具有非Root权限的用户均可以正常使用,提高了数字认证终端使用的友好度。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种数字认证终端的处理方法,其特征在于,包括 加载具有根权限的守护进程,建立第一管道和第二管道;所述守护进程通过所述第一管道读取客户端应用程序发送的携带操作指令的第一数据;所述守护进程解析所述第一数据,获得其携带的操作指令,对数字认证终端执行所述操作指令,获得执行结果;所述守护进程将携带所述执行结果的第二数据,通过所述第二管道返回到所述客户端应用程序。
2.如权利要求1所述的处理方法,其特征在于,所述建立第一管道和第二管道之后,还包括所述守护进程判断所述第一管道和第二管道是否成功建立;若成功,所述守护进程和所述客户端应用程序打开所述第一管道和所述第二管道;若未成功,重新建立所述第一管道和第二管道。
3.如权利要求2所述的处理方法,其特征在于,所述守护进程和所述客户端应用程序打开所述第一管道和所述第二管道,包括所述守护进程读取所述客户端应用程序发送的第一数据时,用读方式打开所述第一管道;向所述客户端应用程序返回所述第二数据时,用读写方式打开所述第二管道;所述客户端应用程序向所述守护进程发送第一数据时,用读写方式打开所述第一管道;读取所述守护进程返回的所述第二数据时,用读方式打开所述第二管道。
4.如权利要求2所述的处理方法,其特征在于,所述守护进程和所述客户端应用程序打开所述第一管道和所述第二管道之后,还包括判断所述守护进程和所述客户端应用程序是否成功打开所述第一管道和所述第二管道;若守护进程未成功,则守护进程重新建立所述第一管道和第二管道;若客户端应用程序未成功,则客户端应用程序重新打开所述第一管道和所述第二管道。
5.如权利要求1或2所述的处理方法,其特征在于,所述守护进程将携带所述执行结果的第二数据,通过所述第二管道返回到所述客户端应用程序之后,还包括所述客户端应用程序用读方式打开所述第二管道,读取所述守护进程返回的所述第二数据;判断是否读取成功;若成功,解析所述第二数据,获取所述执行结果;若未成功,重新读取所述第二管道中的第二数据。
6.一种数字认证终端的处理装置,其特征在于,包括建立模块,用于加载具有根权限的守护进程,建立第一管道和第二管道; 第一读取模块,用于通过所述第一管道读取客户端应用程序发送的携带操作指令的第一数据;操作模块,用于解析所述第一数据,获得其携带的操作指令,对数字认证终端执行所述操作指令,获得执行结果;第一发送模块,用于将携带所述执行结果的第二数据,通过所述第二管道返回到所述客户端应用程序。
7.如权利要求6所述的处理装置,其特征在于,还包括第一判断模块,用于判断所述第一管道和第二管道是否成功建立;若未成功,通知所述建立模块重新建立所述第一管道和第二管道;打开模块,用于所述第一判断模块判断成功建立后,打开所述第一管道和所述第二管道。
8.如权利要求7所述的处理装置,其特征在于,所述打开模块,具体用于所述守护进程读取所述客户端应用程序发送的第一数据时,用读方式打开所述第一管道;向所述客户端应用程序返回所述第二数据时,用读写方式打开所述第二管道;所述客户端应用程序向所述守护进程发送第一数据时,用读写方式打开所述第一管道;读取所述守护进程返回的所述第二数据时,用读方式打开所述第二管道。
9.如权利要求7或8所述的处理装置,其特征在于,还包括第二判断模块,用于判断所述打开模块是否成功打开所述第一管道和所述第二管道; 若守护进程未成功,则通知所述建立模块重新建立所述第一管道和第二管道;若客户端应用程序未成功,则通知所述打开模块重新打开所述第一管道和所述第二管道。
10.如权利要求9所述的处理装置,其特征在于,还包括第二读取模块,用于所述客户端应用程序用读方式打开所述第二管道,读取所述守护进程返回的所述第二数据;第三判断模块,用于判断是否读取成功;若成功,解析所述第二数据,获取所述执行结果;若未成功,通知所述第二读取模块重新读取所述第二管道中的第二数据。
全文摘要
本发明涉及信息安全技术领域,尤其涉及数字认证终端的处理方法和装置,用于加载具有根权限的守护进程,建立第一管道和第二管道;守护进程通过第一管道读取客户端应用程序发送的携带操作指令的第一数据;守护进程解析第一数据,获得其携带的操作指令,对数字认证终端执行所述操作指令,获得执行结果;守护进程将携带执行结果的第二数据,通过第二管道返回到所述客户端应用程序。使用本发明实施例提供的数字认证终端的处理方法和装置,客户端应用进程通过具有根权限的守护进程对数字认证终端进行处理,由此,数字认证终端对于Linux系统的具有根权限的用户和具有非根权限的用户均可以正常使用,提高了数字认证终端使用的友好度。
文档编号G06F21/00GK102542200SQ20111043357
公开日2012年7月4日 申请日期2011年12月21日 优先权日2011年12月21日
发明者张渊 申请人:北京握奇数据系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1