專利名稱:數(shù)字認(rèn)證終端的處理方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全技術(shù)領(lǐng)域,尤其涉及數(shù)字認(rèn)證終端的處理方法和裝置。
背景技術(shù):
目前,Linux系統(tǒng)已經(jīng)廣泛應(yīng)用在服務(wù)器、嵌入式等領(lǐng)域,針對(duì)Linux開發(fā)的應(yīng)用程序也越來(lái)越多。在Linux系統(tǒng)下,所有的設(shè)備都以文件的形式存在。當(dāng)數(shù)字認(rèn)證終端,如 USB_Key,連接到運(yùn)行Linux系統(tǒng)的服務(wù)器,該數(shù)字認(rèn)證終端也以設(shè)備文件的形式存儲(chǔ)在服務(wù)器中。Linux系統(tǒng)中的調(diào)用程序可以通過(guò)讀取該設(shè)備文件,與數(shù)字認(rèn)證終端進(jìn)行通信。Linux系統(tǒng)中的一些特定用戶對(duì)連接服務(wù)器的數(shù)字認(rèn)證終端具有讀寫權(quán)限(Root 根權(quán)限),而普通用戶對(duì)數(shù)字認(rèn)證終端只有讀權(quán)限沒(méi)有寫權(quán)限(非Root根權(quán)限)。這對(duì)使用數(shù)字認(rèn)證終端的用戶帶來(lái)很大不便。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種數(shù)字認(rèn)證終端的處理方法和裝置,使得不具有根權(quán)限的用戶可以方便的讀寫數(shù)字認(rèn)證終端。本發(fā)明實(shí)施例提供了一種數(shù)字認(rèn)證終端的處理方法,包括加載具有根權(quán)限的守護(hù)進(jìn)程,建立第一管道和第二管道;所述守護(hù)進(jìn)程通過(guò)所述第一管道讀取客戶端應(yīng)用程序發(fā)送的攜帶操作指令的第一數(shù)據(jù);所述守護(hù)進(jìn)程解析所述第一數(shù)據(jù),獲得其攜帶的操作指令,對(duì)數(shù)字認(rèn)證終端執(zhí)行所述操作指令,獲得執(zhí)行結(jié)果;所述守護(hù)進(jìn)程將攜帶所述執(zhí)行結(jié)果的第二數(shù)據(jù),通過(guò)所述第二管道返回到所述客戶端應(yīng)用程序。本發(fā)明實(shí)施例提供了一種數(shù)字認(rèn)證終端的處理裝置,包括建立模塊,用于加載具有根權(quán)限的守護(hù)進(jìn)程,建立第一管道和第二管道;第一讀取模塊,用于通過(guò)所述第一管道讀取客戶端應(yīng)用程序發(fā)送的攜帶操作指令的第一數(shù)據(jù);操作模塊,用于解析所述第一數(shù)據(jù),獲得其攜帶的操作指令,對(duì)數(shù)字認(rèn)證終端執(zhí)行所述操作指令,獲得執(zhí)行結(jié)果;第一發(fā)送模塊,用于將攜帶所述執(zhí)行結(jié)果的第二數(shù)據(jù),通過(guò)所述第二管道返回到所述客戶端應(yīng)用程序。本發(fā)明實(shí)施例提供了數(shù)字認(rèn)證終端的處理方法和裝置,用于加載具有根權(quán)限的守護(hù)進(jìn)程,建立第一管道和第二管道;所述守護(hù)進(jìn)程通過(guò)所述第一管道讀取客戶端應(yīng)用程序發(fā)送的攜帶操作指令的第一數(shù)據(jù);守護(hù)進(jìn)程解析所述第一數(shù)據(jù),獲得其攜帶的操作指令,對(duì)數(shù)字認(rèn)證終端執(zhí)行所述操作指令,獲得執(zhí)行結(jié)果;守護(hù)進(jìn)程將攜帶所述執(zhí)行結(jié)果的第二數(shù)據(jù),通過(guò)所述第二管道返回到所述客戶端應(yīng)用程序。使用本發(fā)明實(shí)施例提供的數(shù)字認(rèn)證終端的處理方法和裝置,客戶端應(yīng)用進(jìn)程通過(guò)具有根權(quán)限的守護(hù)進(jìn)程對(duì)數(shù)字認(rèn)證終端進(jìn)行處理,并且在守護(hù)進(jìn)程和客戶端應(yīng)用進(jìn)程之間建立兩條管道(pipe),分別用于發(fā)送數(shù)據(jù)和讀取數(shù)據(jù)。由此,普通用戶可以通過(guò)該具有根權(quán)限的守護(hù)進(jìn)程對(duì)數(shù)字認(rèn)證終端進(jìn)行處理,也就是數(shù)字認(rèn)證終端對(duì)于Linux系統(tǒng)的具有Root根權(quán)限的用戶和具有非Root根權(quán)限的用戶均可以正常使用,提高了數(shù)字認(rèn)證終端使用的友好度。
圖1為本發(fā)明實(shí)施例中數(shù)字認(rèn)證終端的處理方法流程示意圖;圖2為本發(fā)明另一實(shí)施例中守護(hù)進(jìn)程側(cè)數(shù)字認(rèn)證終端的處理方法流程示意圖;圖3為本發(fā)明另一實(shí)施例中客戶端應(yīng)用程序側(cè)數(shù)字認(rèn)證終端的處理方法流程示意圖;圖4為本發(fā)明實(shí)施例中數(shù)字認(rèn)證終端的處理裝置示意圖。
具體實(shí)施例方式下面結(jié)合各個(gè)附圖對(duì)本發(fā)明實(shí)施例技術(shù)方案的主要實(shí)現(xiàn)原理具體實(shí)施方式
及其對(duì)應(yīng)能夠達(dá)到的有益效果進(jìn)行詳細(xì)地闡述。為了解決現(xiàn)有技術(shù)存在的問(wèn)題,本發(fā)明實(shí)施例提供了一種數(shù)字認(rèn)證終端的處理方法,如圖1所示,包括以下步驟步驟101、加載具有根權(quán)限的守護(hù)進(jìn)程,建立第一管道和第二管道;步驟102、守護(hù)進(jìn)程通過(guò)第一管道讀取客戶端應(yīng)用程序發(fā)送的攜帶操作指令的第一數(shù)據(jù);步驟103、守護(hù)進(jìn)程解析第一數(shù)據(jù),獲得其攜帶的操作指令,對(duì)數(shù)字認(rèn)證終端執(zhí)行所述操作指令,獲得執(zhí)行結(jié)果;步驟104、守護(hù)進(jìn)程將攜帶執(zhí)行結(jié)果的第二數(shù)據(jù),通過(guò)第二管道返回到客戶端應(yīng)用程序。具體的,由于現(xiàn)有技術(shù)中不具有根權(quán)限的用戶,無(wú)法對(duì)數(shù)字認(rèn)證終端(如USB_ Key)執(zhí)行寫操作等,本發(fā)明實(shí)施例中在服務(wù)器的Linux系統(tǒng)的Root權(quán)限(根權(quán)限)下安裝守護(hù)進(jìn)程,這樣,該守護(hù)進(jìn)行便具有了根權(quán)限。當(dāng)用戶以非根權(quán)限的賬戶登錄服務(wù)器中的 Linux系統(tǒng)時(shí),仍然可以正常操作數(shù)字認(rèn)證終端。服務(wù)器Linux系統(tǒng)啟動(dòng)后,加載具有根權(quán)限的守護(hù)進(jìn)程,建立第一管道和第二管道;然后守護(hù)進(jìn)程判斷該第一管道和第二管道是否成功建立;若成功,守護(hù)進(jìn)程和客戶端應(yīng)用程序打開該第一管道和第二管道;若未成功,重新建立第一管道和第二管道。其中,該第一管道用于守護(hù)進(jìn)程向客戶端應(yīng)用程序發(fā)送數(shù)據(jù), 該第二管道用于客戶端應(yīng)用程序向守護(hù)進(jìn)程發(fā)送數(shù)據(jù)。具體的,守護(hù)進(jìn)程讀取客戶端應(yīng)用程序發(fā)送的第一數(shù)據(jù)時(shí),用讀方式打開第一管道;向客戶端應(yīng)用程序返回第二數(shù)據(jù)時(shí),用讀寫方式打開第二管道;客戶端應(yīng)用程序向守護(hù)進(jìn)程發(fā)送第一數(shù)據(jù)時(shí),用讀寫方式打開第一管道;讀取守護(hù)進(jìn)程返回的第二數(shù)據(jù)時(shí),用讀方式打開第二管道。其中,第一數(shù)據(jù)攜帶操作指令,第二數(shù)據(jù)攜帶執(zhí)行結(jié)果。上述守護(hù)進(jìn)程和客戶端應(yīng)用程序打開第一管道和第二管道之后,還包括判斷守護(hù)進(jìn)程和客戶端應(yīng)用程序是否成功打開第一管道和第二管道。若未成功打開,則重新執(zhí)行打開第一管道和第二管道的操作。
為了更清楚的說(shuō)明本發(fā)明實(shí)施例提供的方法,將客戶端應(yīng)用程序和守護(hù)進(jìn)程的操作過(guò)程分側(cè)進(jìn)行描述。在客戶端應(yīng)用程序側(cè)發(fā)送第一數(shù)據(jù)時(shí)客戶端應(yīng)用程序用讀寫方式打開第一管道,并在檢測(cè)成功打開第一管道后,將攜帶操作指令的第一數(shù)據(jù)通過(guò)該第一管道發(fā)送到守護(hù)進(jìn)程。接收第二數(shù)據(jù)時(shí)客戶端應(yīng)用程序用讀方式打開第二管道,讀取守護(hù)進(jìn)程返回的第二數(shù)據(jù);判斷是否讀取成功;若成功,解析第二數(shù)據(jù),獲取執(zhí)行結(jié)果;若未成功,重新讀取第二管道中的第二數(shù)據(jù)。在守護(hù)進(jìn)程側(cè)接收第一數(shù)據(jù)時(shí)守護(hù)進(jìn)程用讀方式打開第一管道;讀取第一管道中客戶端應(yīng)用程序發(fā)送的第一數(shù)據(jù);解析第一數(shù)據(jù),獲得其攜帶的操作指令。發(fā)送第二數(shù)據(jù)時(shí)守護(hù)進(jìn)程用讀寫方式打開第二管道;將操作指令的執(zhí)行結(jié)果攜帶在第二數(shù)據(jù)中,并通過(guò)第二管道返回到客戶端應(yīng)用程序。其中,上述操作指令包括但不限于連接數(shù)字認(rèn)證終端、對(duì)數(shù)字認(rèn)證終端轉(zhuǎn)發(fā)該操作指令和斷開數(shù)字認(rèn)證終端等。相應(yīng)的,守護(hù)進(jìn)程根據(jù)該操作指令連接數(shù)字認(rèn)證終端、對(duì)數(shù)字認(rèn)證終端轉(zhuǎn)發(fā)該操作指令和斷開數(shù)字認(rèn)證終端等。通過(guò)上述描述,可以看出,使用本發(fā)明實(shí)施例提供的數(shù)字認(rèn)證終端的處理方法,客戶端應(yīng)用進(jìn)程通過(guò)具有根權(quán)限的守護(hù)進(jìn)程對(duì)數(shù)字認(rèn)證終端進(jìn)行處理,并且在守護(hù)進(jìn)程和客戶端應(yīng)用進(jìn)程之間建立兩條管道,分別用于發(fā)送數(shù)據(jù)和讀取數(shù)據(jù)。由此,普通用戶可以通過(guò)該具有根權(quán)限的守護(hù)進(jìn)程對(duì)數(shù)字認(rèn)證終端進(jìn)行處理,也就是數(shù)字認(rèn)證終端對(duì)于Linux系統(tǒng)的具有Root權(quán)限的用戶和具有非Root權(quán)限的用戶均可以正常使用,提高了數(shù)字認(rèn)證終端使用的友好度。下面通過(guò)具體實(shí)施例對(duì)本發(fā)明提供的數(shù)字認(rèn)證終端的處理方法進(jìn)行詳細(xì)說(shuō)明。在守護(hù)進(jìn)程側(cè),根據(jù)客戶端應(yīng)用程序發(fā)送的操作指令對(duì)數(shù)字認(rèn)證終端進(jìn)行處理的過(guò)程,如圖2所示,包括以下步驟步驟201、Linux系統(tǒng)啟動(dòng),運(yùn)行預(yù)先安裝的具有根權(quán)限的守護(hù)進(jìn)程;具體的,首先可以編寫Iinux系統(tǒng)下啟動(dòng)服務(wù)的腳本,用于實(shí)現(xiàn)守護(hù)進(jìn)程的啟動(dòng)、 關(guān)閉等工作。并且,修改啟動(dòng)腳本為可運(yùn)行的權(quán)限,可以通過(guò)命令chmod+x wd_udk命令修改腳本權(quán)限。其次,編寫shell安裝腳本,用于實(shí)現(xiàn)將守護(hù)進(jìn)程以及啟動(dòng)服務(wù)的腳本拷貝到指定路徑的工作,以及用系統(tǒng)命令chkconfig將守護(hù)進(jìn)程加入到系統(tǒng)服務(wù),再用start命令啟動(dòng)服務(wù)。最后,在Linux系統(tǒng)的root賬戶權(quán)限下運(yùn)行該shell安裝腳本,完成該守護(hù)進(jìn)程的啟動(dòng)。以后每次啟動(dòng)Linux系統(tǒng),該守護(hù)進(jìn)程均會(huì)自動(dòng)運(yùn)行。步驟202、守護(hù)進(jìn)程建立兩個(gè)管道用于在守護(hù)進(jìn)程和客戶端應(yīng)用程序之間進(jìn)行通信;其中,第一管道用于客戶端應(yīng)用程序向守護(hù)進(jìn)程發(fā)送數(shù)據(jù);第二管道用于守護(hù)進(jìn)程向客戶端應(yīng)用程序發(fā)送數(shù)據(jù)。具體的,Linux系統(tǒng)下的管道(如pipe管道)都是單向管道,而需要在守護(hù)進(jìn)程和客戶端應(yīng)用程序之間雙向進(jìn)行通信,因此需要建立兩個(gè)管道。
較佳的,首先用unlink函數(shù)刪除已經(jīng)存在的管道文件,然后再建立上述兩個(gè)管道,權(quán)限可以為777,也就是所有用戶權(quán)限均可以使用。步驟203、判斷管道是否建立成功;若成功,則執(zhí)行步驟204;若未成功,則返回步驟 202。步驟204、用讀方式打開第一管道,同時(shí)用讀寫方式打開第二管道;其中,打開第一管道用于讀取客戶端程序發(fā)送的攜帶操作指令的第一數(shù)據(jù);打開第二管道用于向客戶端程序返回操作指令的執(zhí)行結(jié)果。該第二管道可以與第一管道同時(shí)打開,也可以在守護(hù)進(jìn)程向客戶端程序返回?cái)?shù)據(jù)時(shí)再打開。步驟205、判斷是否成功打開管道;如果成功,則執(zhí)行步驟206 ;若未成功,則返回步驟202。步驟206、讀取第一管道,接收客戶端應(yīng)用程序發(fā)送的第一數(shù)據(jù);步驟207、判斷是否讀取到第一數(shù)據(jù);若是,則執(zhí)行步驟208 ;否則,執(zhí)行步驟206。 具體的,當(dāng)讀取到的數(shù)據(jù)長(zhǎng)度不為0時(shí),表明讀取到數(shù)據(jù)。步驟208、解析接收到的第一數(shù)據(jù),獲取該第一數(shù)據(jù)攜帶的操作指令;具體的,可以定義結(jié)構(gòu)體,用于組織客戶端應(yīng)用進(jìn)程將第一數(shù)據(jù)發(fā)送到具有根權(quán)限的守護(hù)進(jìn)程。可以用pipeCmd->Cmd_type,來(lái)判斷操作指令的類型。較佳的,可以定義如下幾個(gè)操作類型來(lái)方便客戶端操作#def ine CMD_C0NNECT 1//表示連接數(shù)字認(rèn)證終端#define CMD_DISCONNECT 2//表示斷開數(shù)字認(rèn)證終端的連接#define CMD_C0MMAND 3//表示向數(shù)字認(rèn)證終端發(fā)送命令步驟209、判斷操作類型,執(zhí)行不同的操作;如果pipecmd- > cmd_type是CMD_ CONNECT類型,則執(zhí)行步驟210 ;如果pipecmd- > cmd_type是CMD_C0MMAND類型,則執(zhí)行步驟211 ;否則如果pipecmd- > cmd_type是CMD_DISCONNECT類型,則執(zhí)行步驟212 ;如果都不是,則執(zhí)行步驟213。步驟210、連接數(shù)字認(rèn)證終端,然后執(zhí)行步驟213 ;通過(guò)比對(duì)數(shù)字認(rèn)證終端的VID來(lái)判斷某一個(gè)數(shù)字認(rèn)證終端是否為操作指令所指定的數(shù)字認(rèn)證終端;如果是,則打開數(shù)字認(rèn)證終端。步驟211、執(zhí)行操作指令,然后執(zhí)行步驟213 ;步驟212、斷開數(shù)字認(rèn)證終端的連接;具體可以由下面的代碼來(lái)實(shí)現(xiàn)步驟213、將操作指令的執(zhí)行結(jié)果按照傳輸格式進(jìn)行封裝,形成第二數(shù)據(jù);步驟214、將第二數(shù)據(jù)寫入第二管道,然后返回步驟206等待接收客戶端應(yīng)用程序發(fā)送的下一條第一數(shù)據(jù)。具體的,將對(duì)數(shù)字認(rèn)證終端的操作結(jié)果按照定義的格式封裝后,通過(guò)第二管道發(fā)送給客戶端應(yīng)用程序。本發(fā)明實(shí)例中,如果Linux系統(tǒng)上插入多個(gè)數(shù)字認(rèn)證終端,如USBJfey設(shè)備,則服務(wù)器中的守護(hù)進(jìn)程會(huì)枚舉到多個(gè)USBJfey設(shè)備,然后分別操作每個(gè)USBJfey在/dev下的設(shè)備節(jié)點(diǎn)文件,從而使得守護(hù)進(jìn)程可以支持多設(shè)備的使用。在客戶端應(yīng)用程序側(cè),通過(guò)具有根權(quán)限的守護(hù)進(jìn)程對(duì)數(shù)字認(rèn)證終端進(jìn)行操作的過(guò)程,如圖3所示,包括以下步驟步驟301、啟動(dòng)客戶端應(yīng)用程序;步驟302、用讀寫方式打開第一管道,用讀方式打開第二管道;步驟303、判斷是否成功打開管道;若成功,則執(zhí)行步驟304 ;若未成功,則返回步驟 302。步驟304、根據(jù)操作內(nèi)容,將相應(yīng)的操作指令封裝為第一數(shù)據(jù);若為連接數(shù)字認(rèn)證終端的操作,執(zhí)行步驟305 ;若為向數(shù)字認(rèn)證終端進(jìn)行相應(yīng)操作,執(zhí)行步驟306 ;若為斷開數(shù)字認(rèn)證終端的連接,執(zhí)行步驟307 ;具體的,對(duì)同一數(shù)字認(rèn)證終端進(jìn)行操作的順序一般為首先要連接數(shù)字認(rèn)證終端并打開,然后向其發(fā)送指令來(lái)實(shí)現(xiàn)應(yīng)用,最后需要關(guān)閉數(shù)字認(rèn)證終端斷開連接。步驟305、實(shí)現(xiàn)連接數(shù)字認(rèn)證終端的操作命令,然后執(zhí)行步驟308 ;步驟306、實(shí)現(xiàn)向數(shù)字認(rèn)證終端的發(fā)送指令的操作命令,然后執(zhí)行步驟308 ;步驟307、實(shí)現(xiàn)斷開數(shù)字認(rèn)證終端連接的操作命令;步驟308、將第一數(shù)據(jù)寫入第一管道;步驟309、客戶端應(yīng)用程序讀取第二管道,等待守護(hù)進(jìn)程發(fā)送的攜帶執(zhí)行結(jié)果的第二數(shù)據(jù);步驟310、客戶端應(yīng)用程序判斷是否讀取到第二數(shù)據(jù);若是,則執(zhí)行步驟311 ;否則,返回步驟309再次讀取第二數(shù)據(jù)。步驟311、解析接收到的第二數(shù)據(jù),將函數(shù)返回值發(fā)送給數(shù)字認(rèn)證終端的應(yīng)用程序,程序退出時(shí)關(guān)閉打開的第一管道和第二管道。通過(guò)上述描述,可以看出,使用本發(fā)明實(shí)施例提供的數(shù)字認(rèn)證終端的處理方法,客戶端應(yīng)用進(jìn)程通過(guò)具有根權(quán)限的守護(hù)進(jìn)程對(duì)數(shù)字認(rèn)證終端進(jìn)行處理,并且在守護(hù)進(jìn)程和客戶端應(yīng)用進(jìn)程之間建立兩條管道,分別用于發(fā)送數(shù)據(jù)和讀取數(shù)據(jù)。由此,普通用戶可以通過(guò)該具有根權(quán)限的守護(hù)進(jìn)程對(duì)數(shù)字認(rèn)證終端進(jìn)行處理,也就是數(shù)字認(rèn)證終端對(duì)于Linux系統(tǒng)的具有Root權(quán)限的用戶和具有非Root權(quán)限的用戶均可以正常使用,提高了數(shù)字認(rèn)證終端使用的友好度。基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供了一種數(shù)字認(rèn)證終端的處理裝置,如圖4 所示,包括建立模塊401,用于加載具有根權(quán)限的守護(hù)進(jìn)程,建立第一管道和第二管道;第一讀取模塊402,用于通過(guò)所述第一管道讀取客戶端應(yīng)用程序發(fā)送的攜帶操作指令的第一數(shù)據(jù);操作模塊403,用于解析所述第一數(shù)據(jù),獲得其攜帶的操作指令,對(duì)數(shù)字認(rèn)證終端執(zhí)行所述操作指令,獲得執(zhí)行結(jié)果;第一發(fā)送模塊404,用于將攜帶所述執(zhí)行結(jié)果的第二數(shù)據(jù),通過(guò)所述第二管道返回到所述客戶端應(yīng)用程序。較佳的,該處理裝置還包括第一判斷模塊405,用于判斷所述第一管道和第二管道是否成功建立;若未成功, 通知所述建立模塊401重新建立所述第一管道和第二管道;打開模塊406,用于所述第一判斷模塊405判斷成功建立后,打開所述第一管道和所述第二管道。較佳的,所述打開模塊406,具體用于所述守護(hù)進(jìn)程讀取所述客戶端應(yīng)用程序發(fā)送的第一數(shù)據(jù)時(shí),用讀方式打開所述第一管道;向所述客戶端應(yīng)用程序返回所述第二數(shù)據(jù)時(shí), 用讀寫方式打開所述第二管道;所述客戶端應(yīng)用程序向所述守護(hù)進(jìn)程發(fā)送第一數(shù)據(jù)時(shí),用讀寫方式打開所述第一管道;讀取所述守護(hù)進(jìn)程返回的所述第二數(shù)據(jù)時(shí),用讀方式打開所
述第二管道。較佳的,處理裝置還包括第二判斷模塊407,用于判斷所述打開模塊406是否成功打開所述第一管道和所述第二管道;若守護(hù)進(jìn)程未成功,則通知所述建立模塊401重新建立所述第一管道和第二管道;若客戶端應(yīng)用程序未成功,則通知所述打開模塊406重新打開所述第一管道和所述
第二管道。較佳的,所述第一讀取模塊402,用于所述守護(hù)進(jìn)程用讀方式打開所述第一管道; 讀取所述第一管道中客戶端應(yīng)用程序發(fā)送的第一數(shù)據(jù);解析所述第一數(shù)據(jù),獲得其攜帶的操作指令。較佳的,所述第一發(fā)送模塊404,具體用于所述守護(hù)進(jìn)程用讀寫方式打開所述第二管道;將所述操作指令的執(zhí)行結(jié)果攜帶在第二數(shù)據(jù)中,并通過(guò)所述第二管道返回到所述客戶端應(yīng)用程序。較佳的,還包括第二讀取模塊408,用于所述客戶端應(yīng)用程序用讀方式打開所述第二管道,讀取所述守護(hù)進(jìn)程返回的所述第二數(shù)據(jù);第三判斷模塊409,用于判斷是否讀取成功;若成功,解析所述第二數(shù)據(jù),獲取所述執(zhí)行結(jié)果;若未成功,通知所述第二讀取模塊408重新讀取所述第二管道中的第二數(shù)據(jù)。通過(guò)上述描述,可以看出,使用本發(fā)明實(shí)施例提供的數(shù)字認(rèn)證終端的處理方法和裝置,客戶端應(yīng)用進(jìn)程通過(guò)具有根權(quán)限的守護(hù)進(jìn)程對(duì)數(shù)字認(rèn)證終端進(jìn)行處理,并且在守護(hù)進(jìn)程和客戶端應(yīng)用進(jìn)程之間建立兩條管道,分別用于發(fā)送數(shù)據(jù)和讀取數(shù)據(jù)。由此,普通用戶可以通過(guò)該具有根權(quán)限的守護(hù)進(jìn)程對(duì)數(shù)字認(rèn)證終端進(jìn)行處理,也就是數(shù)字認(rèn)證終端對(duì)于 Linux系統(tǒng)的具有Root權(quán)限的用戶和具有非Root權(quán)限的用戶均可以正常使用,提高了數(shù)字認(rèn)證終端使用的友好度。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種數(shù)字認(rèn)證終端的處理方法,其特征在于,包括 加載具有根權(quán)限的守護(hù)進(jìn)程,建立第一管道和第二管道;所述守護(hù)進(jìn)程通過(guò)所述第一管道讀取客戶端應(yīng)用程序發(fā)送的攜帶操作指令的第一數(shù)據(jù);所述守護(hù)進(jìn)程解析所述第一數(shù)據(jù),獲得其攜帶的操作指令,對(duì)數(shù)字認(rèn)證終端執(zhí)行所述操作指令,獲得執(zhí)行結(jié)果;所述守護(hù)進(jìn)程將攜帶所述執(zhí)行結(jié)果的第二數(shù)據(jù),通過(guò)所述第二管道返回到所述客戶端應(yīng)用程序。
2.如權(quán)利要求1所述的處理方法,其特征在于,所述建立第一管道和第二管道之后,還包括所述守護(hù)進(jìn)程判斷所述第一管道和第二管道是否成功建立;若成功,所述守護(hù)進(jìn)程和所述客戶端應(yīng)用程序打開所述第一管道和所述第二管道;若未成功,重新建立所述第一管道和第二管道。
3.如權(quán)利要求2所述的處理方法,其特征在于,所述守護(hù)進(jìn)程和所述客戶端應(yīng)用程序打開所述第一管道和所述第二管道,包括所述守護(hù)進(jìn)程讀取所述客戶端應(yīng)用程序發(fā)送的第一數(shù)據(jù)時(shí),用讀方式打開所述第一管道;向所述客戶端應(yīng)用程序返回所述第二數(shù)據(jù)時(shí),用讀寫方式打開所述第二管道;所述客戶端應(yīng)用程序向所述守護(hù)進(jìn)程發(fā)送第一數(shù)據(jù)時(shí),用讀寫方式打開所述第一管道;讀取所述守護(hù)進(jìn)程返回的所述第二數(shù)據(jù)時(shí),用讀方式打開所述第二管道。
4.如權(quán)利要求2所述的處理方法,其特征在于,所述守護(hù)進(jìn)程和所述客戶端應(yīng)用程序打開所述第一管道和所述第二管道之后,還包括判斷所述守護(hù)進(jìn)程和所述客戶端應(yīng)用程序是否成功打開所述第一管道和所述第二管道;若守護(hù)進(jìn)程未成功,則守護(hù)進(jìn)程重新建立所述第一管道和第二管道;若客戶端應(yīng)用程序未成功,則客戶端應(yīng)用程序重新打開所述第一管道和所述第二管道。
5.如權(quán)利要求1或2所述的處理方法,其特征在于,所述守護(hù)進(jìn)程將攜帶所述執(zhí)行結(jié)果的第二數(shù)據(jù),通過(guò)所述第二管道返回到所述客戶端應(yīng)用程序之后,還包括所述客戶端應(yīng)用程序用讀方式打開所述第二管道,讀取所述守護(hù)進(jìn)程返回的所述第二數(shù)據(jù);判斷是否讀取成功;若成功,解析所述第二數(shù)據(jù),獲取所述執(zhí)行結(jié)果;若未成功,重新讀取所述第二管道中的第二數(shù)據(jù)。
6.一種數(shù)字認(rèn)證終端的處理裝置,其特征在于,包括建立模塊,用于加載具有根權(quán)限的守護(hù)進(jìn)程,建立第一管道和第二管道; 第一讀取模塊,用于通過(guò)所述第一管道讀取客戶端應(yīng)用程序發(fā)送的攜帶操作指令的第一數(shù)據(jù);操作模塊,用于解析所述第一數(shù)據(jù),獲得其攜帶的操作指令,對(duì)數(shù)字認(rèn)證終端執(zhí)行所述操作指令,獲得執(zhí)行結(jié)果;第一發(fā)送模塊,用于將攜帶所述執(zhí)行結(jié)果的第二數(shù)據(jù),通過(guò)所述第二管道返回到所述客戶端應(yīng)用程序。
7.如權(quán)利要求6所述的處理裝置,其特征在于,還包括第一判斷模塊,用于判斷所述第一管道和第二管道是否成功建立;若未成功,通知所述建立模塊重新建立所述第一管道和第二管道;打開模塊,用于所述第一判斷模塊判斷成功建立后,打開所述第一管道和所述第二管道。
8.如權(quán)利要求7所述的處理裝置,其特征在于,所述打開模塊,具體用于所述守護(hù)進(jìn)程讀取所述客戶端應(yīng)用程序發(fā)送的第一數(shù)據(jù)時(shí),用讀方式打開所述第一管道;向所述客戶端應(yīng)用程序返回所述第二數(shù)據(jù)時(shí),用讀寫方式打開所述第二管道;所述客戶端應(yīng)用程序向所述守護(hù)進(jìn)程發(fā)送第一數(shù)據(jù)時(shí),用讀寫方式打開所述第一管道;讀取所述守護(hù)進(jìn)程返回的所述第二數(shù)據(jù)時(shí),用讀方式打開所述第二管道。
9.如權(quán)利要求7或8所述的處理裝置,其特征在于,還包括第二判斷模塊,用于判斷所述打開模塊是否成功打開所述第一管道和所述第二管道; 若守護(hù)進(jìn)程未成功,則通知所述建立模塊重新建立所述第一管道和第二管道;若客戶端應(yīng)用程序未成功,則通知所述打開模塊重新打開所述第一管道和所述第二管道。
10.如權(quán)利要求9所述的處理裝置,其特征在于,還包括第二讀取模塊,用于所述客戶端應(yīng)用程序用讀方式打開所述第二管道,讀取所述守護(hù)進(jìn)程返回的所述第二數(shù)據(jù);第三判斷模塊,用于判斷是否讀取成功;若成功,解析所述第二數(shù)據(jù),獲取所述執(zhí)行結(jié)果;若未成功,通知所述第二讀取模塊重新讀取所述第二管道中的第二數(shù)據(jù)。
全文摘要
本發(fā)明涉及信息安全技術(shù)領(lǐng)域,尤其涉及數(shù)字認(rèn)證終端的處理方法和裝置,用于加載具有根權(quán)限的守護(hù)進(jìn)程,建立第一管道和第二管道;守護(hù)進(jìn)程通過(guò)第一管道讀取客戶端應(yīng)用程序發(fā)送的攜帶操作指令的第一數(shù)據(jù);守護(hù)進(jìn)程解析第一數(shù)據(jù),獲得其攜帶的操作指令,對(duì)數(shù)字認(rèn)證終端執(zhí)行所述操作指令,獲得執(zhí)行結(jié)果;守護(hù)進(jìn)程將攜帶執(zhí)行結(jié)果的第二數(shù)據(jù),通過(guò)第二管道返回到所述客戶端應(yīng)用程序。使用本發(fā)明實(shí)施例提供的數(shù)字認(rèn)證終端的處理方法和裝置,客戶端應(yīng)用進(jìn)程通過(guò)具有根權(quán)限的守護(hù)進(jìn)程對(duì)數(shù)字認(rèn)證終端進(jìn)行處理,由此,數(shù)字認(rèn)證終端對(duì)于Linux系統(tǒng)的具有根權(quán)限的用戶和具有非根權(quán)限的用戶均可以正常使用,提高了數(shù)字認(rèn)證終端使用的友好度。
文檔編號(hào)G06F21/00GK102542200SQ20111043357
公開日2012年7月4日 申請(qǐng)日期2011年12月21日 優(yōu)先權(quán)日2011年12月21日
發(fā)明者張淵 申請(qǐng)人:北京握奇數(shù)據(jù)系統(tǒng)有限公司