專利名稱:進(jìn)程間信息交互的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全領(lǐng)域,尤其涉及一種進(jìn)程間信息交互的方法及裝置。
背景技術(shù):
進(jìn)程間進(jìn)行信息交互的方式有很多,在現(xiàn)有技術(shù)中,在進(jìn)程間通信過程中
常用的信息交互通道主要有系統(tǒng)消息、共享內(nèi)存、有名管道及窗口標(biāo)題等; 由于這些信息交互通道都是約定好而固定不變的,因此一旦這些信息交互通道 被非法進(jìn)程截獲就會對正常進(jìn)程間信息交互的安全性產(chǎn)生威脅。例如
在使用消息傳遞進(jìn)行進(jìn)程間的信息交互時,自定義的消息ID通常是固定不 變的,如果固定的消息ID被其他非法進(jìn)程截獲,就會千擾甚至破壞正常的進(jìn)程 間通信;
有名管道和共享內(nèi)存等信息交互通道在進(jìn)行進(jìn)程間信息交互的過程中也是 被約定好而固定不變的,因此同樣會使得進(jìn)程間的通信存在安全威脅;
此外,鉤子程序可以根據(jù)窗口的標(biāo)題獲得窗口句柄^^而對某一進(jìn)程創(chuàng)建的 窗口進(jìn)行非法操作,進(jìn)程間進(jìn)行信息交互的安全性受到極大的威脅。
發(fā)明內(nèi)容
本發(fā)明的實施例提供一種進(jìn)程間信息交互的方法及裝置,提高進(jìn)程間進(jìn)行 信息交互的安全性。
為達(dá)到上述目的,本發(fā)明的實施例采用如下技術(shù)方案
一種進(jìn)程間信息交互的方法,包括
獲取信息交互通道的動態(tài)參數(shù)作為標(biāo)識參數(shù);
根據(jù)所述標(biāo)識參數(shù)訪問信息交互通道;
通過所述信息交互通道進(jìn)行進(jìn)程間的信息交互。
一種實現(xiàn)進(jìn)程間信息交互的裝置,包括
獲取單元,用于獲取信息交互通道的動態(tài)參數(shù)作為標(biāo)識參數(shù);
訪問單元,用于根據(jù)所述標(biāo)識參數(shù)訪問信息交互通道;通信單元,用于通過所述信息交互通道進(jìn)行進(jìn)程間的信息交互。 本發(fā)明實施例提供的進(jìn)程間信息交互的方法及裝置,在進(jìn)程啟動后確定信 息交互通道的過程中,獲取信息交互通道的標(biāo)識參數(shù),該標(biāo)識參數(shù)可以是預(yù)詔二 參數(shù)也可以是新生成的動態(tài)參數(shù),然后根據(jù)該標(biāo)識參數(shù)訪問信息交互通道,使 得信息交互通道根據(jù)標(biāo)識參數(shù)的變化而變化,從而增大了一個進(jìn)程對應(yīng)的信息
交互通道被其他進(jìn)程截獲的難度;與現(xiàn)有技術(shù)相比,本發(fā)明實施例提供的進(jìn)程 間信息交互的方法及裝置,實現(xiàn)了動態(tài)的信息交互通道,提高了進(jìn)程間進(jìn)行信 息交互時的安全性。
圖1為本發(fā)明實施例1提供的進(jìn)程間信息交互的方法流程圖; 圖2為本發(fā)明實施例2提供的進(jìn)程間信息交互的方法流程圖; 圖3為本發(fā)明實施例3提供的進(jìn)程間信息交互的方法流程圖; 圖4為本發(fā)明實施例4提供的進(jìn)程間信息交互的方法流程圖; 圖5為本發(fā)明實施例5提供的進(jìn)程間信息交互的方法流程圖; 圖6為本發(fā)明實施例6提供的進(jìn)程間信息交互的方法流程圖; 圖7為本發(fā)明實施例7提供的進(jìn)程間信息交互的方法流程圖; 圖8為本發(fā)明實施例8提供的實現(xiàn)進(jìn)程間信息交互的裝置示意圖; 圖9為本發(fā)明實施例9提供的實現(xiàn)進(jìn)程間信息交互的裝置示意圖。
具體實施例方式
為了提高進(jìn)程間進(jìn)行信息交互的安全性,本發(fā)明的實施例提供一種進(jìn)程間 信息交互的方法及裝置。下面結(jié)合附圖對本發(fā)明實施例提供的進(jìn)程間信息交互 的方法及裝置進(jìn)行詳細(xì)描述。
實施例1
如圖1所示,本發(fā)明實施例提供的進(jìn)程間信息交互的方法,包括 步驟101、獲取信息交互通道的動態(tài)參數(shù)作為標(biāo)識參數(shù); 所述信息交互通道的標(biāo)識參數(shù)可以是預(yù)設(shè)的標(biāo)識參數(shù)(以下簡稱預(yù)設(shè)參 數(shù)),也可以是在預(yù)設(shè)參數(shù)不存在的情況下,隨機(jī)生成的新的標(biāo)識參數(shù)(即動態(tài)
7參數(shù));在本發(fā)明實施例中,優(yōu)選地以所述動態(tài)參數(shù)作為信息交互通道的標(biāo)識參 數(shù)。
步驟102、根據(jù)所述標(biāo)識參數(shù)訪問信息交互通道;
所述標(biāo)識參數(shù)包括消息標(biāo)識、窗口標(biāo)題、共享內(nèi)存的名字、或者有名管 道的名字;
而且,在本發(fā)明實施例中,所述根據(jù)標(biāo)識參數(shù)訪問信息交互通道可以是打 開或者獲取已有的與所述標(biāo)識參數(shù)對應(yīng)的信息交互通道;如果所述與標(biāo)識參數(shù) 對應(yīng)的信息交互通道不存在的話,則所述根據(jù)標(biāo)識參數(shù)訪問信息交互通道還可 以是以所述標(biāo)識參數(shù)為通道名稱創(chuàng)建新的信息交互通道。
步驟103、通過所述信息交互通道進(jìn)行進(jìn)程間的信息交互。
本發(fā)明實施例提供的進(jìn)程間信息交互的方法,在進(jìn)程啟動后確定信息交互 通道的過程中,獲取信息交互通道的標(biāo)識參數(shù),該標(biāo)識參數(shù)可以是預(yù)設(shè)參數(shù)也 可以是新生成的動態(tài)參數(shù),然后根據(jù)該標(biāo)識參數(shù)訪問信息交互通道,使得信息 交互通道根據(jù)標(biāo)識參數(shù)的變化而變化,增大了 一個進(jìn)程對應(yīng)的信息交互通道被 其他進(jìn)程截獲的難度,從而實現(xiàn)了動態(tài)的信息交互通道,提高了進(jìn)程間進(jìn)行信 息交互時的安全性。
實施例2
在本發(fā)明實施例中,信息安全設(shè)備均為智能卡,且均以進(jìn)程A與其他進(jìn)程 進(jìn)行信息交互為例,以下皆同,不再贅述。
在標(biāo)識參數(shù)存儲在智能卡、且所述信息交互通道為消息ID的情況下,本發(fā) 明實施例提供的通過動態(tài)消息ID實現(xiàn)進(jìn)程間信息交互的方法,如圖2所示,具 體包括以下步驟
步驟201、啟動主機(jī)上的進(jìn)程A;
步驟202、進(jìn)程A向智能卡發(fā)送驗證用戶身份的指令,具體為驗證用戶PIN 碼的指令;
在本發(fā)明實施例中,驗證用戶PIN碼的指令為APDU指令,具體為 APDU apdu(0x00, 0x20, 0x00, 0x00, 8, "12345678") 其中"12345678"為用戶的PIN碼。
8步驟203、智能卡驗證用戶的PIN碼是否正確;
如果驗證結(jié)果表明PIN碼正確,說明用戶為合法用戶,則執(zhí)行步驟204;如 果驗證結(jié)果表明PIN碼不正確,說明用戶為不合法用戶,則進(jìn)程A退出。
步驟204、進(jìn)程A判斷智能卡內(nèi)是否已保存有預(yù)^沒參數(shù);
本發(fā)明實施例中,約定預(yù)設(shè)參數(shù)存放在智能卡存儲區(qū)的文件ID為0xA008 的私有文件中。如果該私有文件中已存在預(yù)設(shè)參數(shù),則扭^亍步驟207;如果該私 有文件中不存在預(yù)設(shè)參數(shù),則執(zhí)行步驟205。
步驟205、進(jìn)程A向智能卡發(fā)送生成隨機(jī)數(shù)的指令;
在本發(fā)明實施例中,進(jìn)程A向智能卡發(fā)送生成隨機(jī)數(shù)的指令為APDU指令, 具體為
APDU apdu(0x00, 0x84, 0x00, 0x00, 0x08)
步驟206、智能卡生成隨機(jī)數(shù),并將該隨機(jī)數(shù)作為標(biāo)識參數(shù)存儲在智能卡中;
在本發(fā)明實施例中,智能卡生成隨機(jī)數(shù)"77CD5240B667BB76",并將生成 的隨機(jī)數(shù)作為標(biāo)識參數(shù)保存在智能卡指定的私有文件內(nèi);在本發(fā)明實施例中, 指定的私有文件的ID為0xA008。
步驟206執(zhí)行完畢后繼續(xù)執(zhí)行步驟207。
步驟207、進(jìn)程A從智能卡中讀取標(biāo)識參數(shù);
進(jìn)程A訪問智能卡中文件ID為0xA008的私有文件,并讀取其中的預(yù)設(shè)參 數(shù)或者新保存的隨機(jī)數(shù)。
步驟208、進(jìn)程A通過調(diào)用函數(shù)RegisterWindowMessage(LPCTSTR lpString) 獲取函數(shù)的返回值,該返回值即為進(jìn)程A要使用的消息ID;
具體地,函數(shù)RegisterWindowMessage(LPCTSTR lpString)中的參數(shù)是步驟 207中所讀取的標(biāo)識參數(shù)。
步驟209、進(jìn)程A獲取到消息ID后,利用此消息ID和其他進(jìn)程進(jìn)行信息 交互。
在本發(fā)明實施例中,步驟204-205還可以由步驟204,-205,來代替,即如 果步驟203中的驗證結(jié)果表明PIN碼正確,則執(zhí)行步驟204,。步驟204,、進(jìn)程A向智能卡發(fā)送讀取標(biāo)識參數(shù)的指令; 步驟205'、智能卡判斷是否保存有預(yù)設(shè)參數(shù);
智能卡判斷存儲區(qū)中文件ID為0xA008的私有文件中是否保存有預(yù)i殳參數(shù); 如果有,則執(zhí)行步驟207;如果沒有,則執(zhí)行步驟206。
為了保證進(jìn)程間信息交互的安全性,本發(fā)明實施例在步驟201之前,還包
括
步驟200、在智能卡與主機(jī)連接后,啟動主機(jī)上的初始化工具自動清除智能 卡上保存的預(yù)設(shè)參數(shù)。
如果執(zhí)行步驟200的話,則上述步驟204可以省去,即如果步驟203中 的驗證結(jié)果表明PIN碼正確,則執(zhí)行步驟205 。
或者,在本發(fā)明實施例在步驟201之前還包括
步驟200,、在智能卡上電后自動生成動態(tài)參數(shù),并以新生成的動態(tài)參數(shù)代 替原有的預(yù)設(shè)參數(shù)。
在智能卡與主機(jī)連接后,智能卡的操作系統(tǒng)加電后自動生成隨機(jī)數(shù),并將 該隨機(jī)數(shù)替代原有的預(yù)設(shè)參數(shù)作為標(biāo)識參數(shù)存儲在智能卡中。
在本發(fā)明實施例中,智能卡生成隨機(jī)數(shù)"77CD5240B667BB76",并將生成 的隨機(jī)數(shù)作為標(biāo)識參數(shù)保存在智能卡指定的私有文件內(nèi)。在本發(fā)明實施例中, 指定的私有文件的ID為0xA008。
如果執(zhí)行步驟200,的話,則上述步驟204-206可以省去,即如果步驟203 中的驗證結(jié)果表明PIN碼正確,則執(zhí)行步驟207。
本發(fā)明實施例提供的進(jìn)程間信息交互的方法,在進(jìn)程啟動后獲取進(jìn)程消息 ID的過程中,動態(tài)地獲取信息交互通道的參標(biāo)識數(shù),然后根據(jù)該標(biāo)識參數(shù)獲取 與之對應(yīng)的消息ID,使得獲取到的消息ID根據(jù)標(biāo)識參數(shù)的變化而變化,增大了 一個進(jìn)程對應(yīng)的消息ID被其他進(jìn)程截獲的難度,從而實現(xiàn)了動態(tài)的信息交互通 道,提高了進(jìn)程間進(jìn)行信息交互時的安全性。
實施例3
在標(biāo)識參數(shù)存儲在主機(jī)、且所述信息交互通道為消息ID的情況下,本發(fā)明
10實施例提供的通過動態(tài)消息ID實現(xiàn)進(jìn)程間信息交互的方法,如圖3所示,具體 包括以下步驟
步驟301、啟動主機(jī)上的進(jìn)程A;
步驟302、進(jìn)程A向智能卡發(fā)送驗證用戶身份的指令,具體為驗證用戶PIN 碼的指令;
在本發(fā)明實施例中,驗證用戶PIN碼的指令為APDU指令,具體為
APDU apdu(0x00, 0x20, 0x00, 0x00, 8, "12345678")
其中"12345678"為用戶的PIN碼。
步驟303 、智能卡驗證用戶的PIN碼是否正確;
如果驗證結(jié)果表明PIN碼正確,說明用戶為合法用戶,則執(zhí)行步驟304;如 果驗證結(jié)果表明PIN碼不正確,說明用戶為不合法用戶,則進(jìn)程A退出。
步驟304、進(jìn)程A判斷主機(jī)注冊表中是否存儲有臨時鍵值;
本發(fā)明實施例中,進(jìn)程A訪問主機(jī)注冊表中的HKEY一LOCAL—MACHINE\ SOFTWARE\FTRANDOM,并判斷是否存在id鍵對應(yīng)的數(shù)據(jù);
如果存在,則執(zhí)行步驟311;如果不存在,則進(jìn)行步驟305。
步驟305、進(jìn)程A向智能卡發(fā)送生成隨機(jī)數(shù)的指令;
在本發(fā)明實施例中,進(jìn)程A向智能卡發(fā)送的隨機(jī)數(shù)生成指令為APDU指令, 具體為
APDU apdu(OxOO, 0x84, 0x00, 0x00, 0x08) 步驟306、智能卡生成隨機(jī)數(shù);
在本發(fā)明實施例中,智能卡生成的隨機(jī)數(shù)為"77CD5240B667BB76"。 步驟307、進(jìn)程A對智能卡中新生成的隨機(jī)數(shù)進(jìn)行HASH (哈希)運算,
生成隨機(jī)數(shù)的HASH值;
步驟308、進(jìn)程A生成RSA密鑰對,并將該RSA密鑰對中的私鑰存儲在智
能卡中;
步驟309、進(jìn)程A使用所述RSA密鑰對中的公鑰對步驟307中的HASH值 做加密運算,得到加密結(jié)果;
步驟310、進(jìn)程A創(chuàng)建注冊表臨時鍵值,并將所述加密結(jié)果作為標(biāo)識參數(shù)存儲在主機(jī)的注冊表中;
具體地,進(jìn)程A在主機(jī)注冊表的HKEY—LOCAL—MACHINE\ SOFTWARE\ FTRANDOM下,創(chuàng)建id鍵,并設(shè)置該id鍵的數(shù)據(jù)為步驟309中的加密結(jié)果。
步驟310執(zhí)行完畢后,跳轉(zhuǎn)到步驟315。
步驟311、進(jìn)程A讀取主機(jī)注冊表中存儲的臨時鍵值;
步驟312、進(jìn)程A判斷智能卡中是否存儲有RSA私鑰;
如果有,則執(zhí)行步驟313;如果沒有,則執(zhí)行步驟305。
步驟313、進(jìn)程A調(diào)用智能卡中存儲的RSA私鑰;
步驟314、進(jìn)程A利用RSA私鑰對步驟311中讀取的臨時鍵值進(jìn)行解密, 獲取解密后的數(shù)據(jù);
步驟315、進(jìn)程A調(diào)用函數(shù)RegisterWindowMessage(LPCTSTR lpString)獲取 函數(shù)的返回值,該返回值即為進(jìn)程A要使用的消息ID;
具體地,函數(shù)RegisterWindowMessage(LPCTSTR lpString)中參數(shù)是步驟314 中獲取的解密后的數(shù)據(jù),或者是步驟307中生成的隨機(jī)數(shù)的HASH值。
步驟316、進(jìn)程A獲取到消息ID后,利用此消息ID和其他進(jìn)程進(jìn)行信息 交互。
以上步驟編碼并不用于限定本發(fā)明實施例各步驟間的先后順序,具體實現(xiàn) 過程可根據(jù)實際需要進(jìn)行調(diào)整。
本發(fā)明實施例提供的進(jìn)程間信息交互的方法,在進(jìn)程啟動后獲取進(jìn)程消息 ID的過程中,動態(tài)地獲取信息交互通道的標(biāo)識參數(shù),然后根據(jù)該標(biāo)識參數(shù)獲取 與之對應(yīng)的消息ID,使得獲取到的消息ID根據(jù)標(biāo)識參數(shù)的變化而變化,增大了 一個進(jìn)程對應(yīng)的消息ID被其他進(jìn)程截獲的難度,從而實現(xiàn)了動態(tài)的信息交互通 道,提高了進(jìn)程間進(jìn)行信息交互時的安全性。
實施例4
在標(biāo)識參數(shù)存儲在智能卡、且所述信息交互通道為窗口標(biāo)題的情況下,本 發(fā)明實施例提供的通過動態(tài)窗口標(biāo)題實現(xiàn)進(jìn)程間信息交互的方法,首先創(chuàng)建進(jìn) 程A的動態(tài)窗口 ,與進(jìn)程A進(jìn)行通信的進(jìn)程B則需要獲取進(jìn)程A的窗口句柄從 而與進(jìn)程A進(jìn)行信息交互;如圖4所示,具體包括以下步驟步驟401、啟動主^f幾上的進(jìn)程A;
步驟402、進(jìn)程A向智能卡發(fā)送驗證用戶身份的指令,具體為驗證PIN碼 的指令;
在本發(fā)明實施例中,驗證用戶PIN碼的指令A(yù)PDU指令,具體為
APDU apdu(0x00, 0x20, 0x00, 0x00, 8, "12345678")
其中"12345678"為用戶的PIN碼。
步驟403 、智能卡驗證用戶的PIN碼是否正確;
如果驗證結(jié)果表明PIN碼正確,說明用戶為合法用戶,則執(zhí)行步驟404;如 果驗證結(jié)果表明PIN碼不正確,說明用戶為不合法用戶,則進(jìn)程A退出。 步驟404、進(jìn)程A判斷智能卡內(nèi)是否已保存有預(yù)設(shè)參數(shù); 本發(fā)明實施例中,約定預(yù)設(shè)參數(shù)存放在智能卡存儲區(qū)的文件ID為0xA008 的私有文件中。
如果該私有文件中已存在預(yù)設(shè)參數(shù),則執(zhí)行步驟407;如果該私有文件中不 存在預(yù)設(shè)參數(shù),則執(zhí)行步驟405。
步驟405、進(jìn)程A向智能卡發(fā)送生成隨機(jī)數(shù)的指令;
在本發(fā)明實施例中,進(jìn)程A向智能卡發(fā)送生成隨機(jī)數(shù)的指令為APDU指令, 具體為
APDU apdu(OxOO, 0x84, 0x00, 0x00, 0x08)
步驟406、智能卡生成隨機(jī)數(shù),并將該隨機(jī)數(shù)作為標(biāo)識參數(shù)保存在指定的私
有文件中;
在本發(fā)明實施例中,智能卡生成隨機(jī)數(shù)"77CD5240B667BB76",并將生成 的隨機(jī)數(shù)作為標(biāo)識參數(shù)保存在智能卡指定的私有文件內(nèi);在本實施例中,指定 的私有文件的ID為0xA008。
步驟406執(zhí)行完畢后繼續(xù)執(zhí)行步驟407。
步驟407、進(jìn)程A訪問保存有標(biāo)識參數(shù)的私有文件,并讀取預(yù)設(shè)參數(shù); 具體地,進(jìn)程A訪問智能卡中文件ID為0xA008的私有文件,并讀取到其 中的預(yù)設(shè)參數(shù)或者新保存的隨機(jī)數(shù)"77CD5240B667BB76"。
步驟408、進(jìn)程A根據(jù)所述標(biāo)識參數(shù)調(diào)用窗口創(chuàng)建函數(shù),來創(chuàng)建進(jìn)程A的在本發(fā)明實施例中,進(jìn)程A調(diào)用以下窗口創(chuàng)建函數(shù)
HWND CreateWindow( LPCTSTR lpClassName, LPCTSTR IpWindowName, DWORD dwStyle, int x, inty,
int nWidth, int nHeight, HWND hWndParent, HMENU固enu, HANDLE hlnstance, PVOID lpParam
)
來創(chuàng)建進(jìn)程A的窗口 ;其中,該函數(shù)中的參數(shù)IpWindowName是進(jìn)程A訪 問智能卡中指定的私有文件所讀取到的標(biāo)識參數(shù);
另外,在本發(fā)明實施例中,步驟408中進(jìn)程A調(diào)用窗口函數(shù),創(chuàng)建進(jìn)程A 的窗口的過程還可以通過以下窗口創(chuàng)建函數(shù)來實現(xiàn) HWND CreateWindowEx(DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR IpWindowName, DWORD dwStyle, int x, inty,
int nWi她, int nHeight, HWND hWndParent,HME而hMenu, HINSTANCE hlnstance, LPVOID lpParam
)
其中,該函數(shù)中的參數(shù)lpWindowName同樣是進(jìn)程A訪問智能卡中指定的 私有文件所讀取到的標(biāo)識參數(shù)。
步驟409、啟動需要對進(jìn)程A的窗口進(jìn)行操作的進(jìn)程B;
步驟410、進(jìn)程B向智能卡發(fā)送驗證用戶身份的指令,具體為驗證用戶PIN 碼的指令;
在本發(fā)明實施例中,驗證用戶PIN碼的指令為APDU指令,具體為 APDU apdu(0x00, 0x20, 0x00, 0x00, 8, "12345678") 其中"12345678"為用戶的PIN碼。 步驟411、智能卡鳥全證用戶的PIN碼是否正確;
如果驗證結(jié)果表明PIN碼正確,說明用戶為合法用戶,則執(zhí)行步驟412;如 果驗證結(jié)果表明PIN碼不正確,說明用戶為不合法用戶,則進(jìn)程B退出。
步驟412、進(jìn)程B訪問智能卡中文件ID為0xA008的私有文件,并讀取智 能卡內(nèi)保存的標(biāo)識參數(shù);
步驟413、進(jìn)程B根據(jù)所述標(biāo)識參數(shù)調(diào)用窗口查找函數(shù)來獲取要操作窗口的 句柄。
在本發(fā)明實施例中,進(jìn)程B調(diào)用以下窗口查找函數(shù) static CWnd* PASCAL FindWindow( LPCTSTR lpszClassName, LPCTSTR lpszWindowName ),
該函數(shù)中的參數(shù)IpszWindowName是在步驟412中進(jìn)程B所讀取到的標(biāo)識 參數(shù),通過調(diào)用該函數(shù),進(jìn)程B獲取到的返回值為要操作窗口的窗口句柄,即 進(jìn)程A新建窗口的窗口句柄;
在本發(fā)明實施例中,步驟413中調(diào)用窗口查找函數(shù)獲取進(jìn)程A新建窗口的 窗口句柄的過程還可以通過以下窗口查找函凄t來實現(xiàn)static CWnd* FindWindowEx( HWND hwndParent, HWND hwndChildAfter, LPCTSTR IpszClass, LPCTSTR IpszWindow
)
其中,該函數(shù)中的參數(shù)IpszWindow同樣是在步驟412中進(jìn)程B訪問智能卡 中指定的私有文件所讀取到的標(biāo)識參數(shù)。
步驟414、進(jìn)程B獲取到進(jìn)程A的窗口句柄后,對進(jìn)程A的窗口進(jìn)4亍:燥作。
在本發(fā)明實施例中,步驟404-405還可以由步驟404,-405,來代替,即如 果步驟403中的驗證結(jié)果表明PIN碼正確,則執(zhí)行步驟404,。 步驟404,、進(jìn)程A向智能卡發(fā)送讀取標(biāo)識參數(shù)的指令; 步驟405,、智能卡判斷是否保存有預(yù)設(shè)參數(shù);
智能卡判斷存儲區(qū)中文件ID為0xA008的私有文件中是否保存有預(yù)設(shè)參數(shù); 如果有,則執(zhí)行步驟407;如果沒有,則執(zhí)行步驟406。
為了保證進(jìn)程間信息交互的安全性,本發(fā)明實施例在步驟401之前,還包
括
步驟400、在智能卡與主機(jī)連接后,啟動主機(jī)上的初始化工具自動清除智能 卡上保存的預(yù)設(shè)參數(shù)。
如果執(zhí)行步驟400的話,則上述步驟404可以省去,即如果步驟403中 的驗證結(jié)果表明PIN碼正確,則執(zhí)行步驟405 。
或者,本發(fā)明實施例在步驟401之前還包括
步驟400,、在智能卡上電后自動生成動態(tài)參數(shù),并以新生成的動態(tài)參數(shù)代 替原有的預(yù)設(shè)參數(shù)。
在智能卡與主機(jī)連接后,智能卡的操作系統(tǒng)加電后自動生成隨機(jī)數(shù),并將 該隨機(jī)數(shù)替代原有的預(yù)設(shè)參數(shù)作為標(biāo)識參數(shù)存儲在智能卡中。
在本發(fā)明實施例中,智能卡生成隨機(jī)數(shù)"77CD5240B667BB76",并將生成的隨機(jī)數(shù)作為標(biāo)識參數(shù)保存在智能卡指定的私有文件內(nèi)。在本發(fā)明實施例中,
指定的私有文件的ID為0xA008。
如果執(zhí)行步驟400,的話,則上述步驟404-406可以省去,即如果步驟403 中的驗證結(jié)果表明PIN碼正確,則執(zhí)行步驟407。
以上步驟編碼并不用于限定本發(fā)明實施例各步驟間的先后順序,具體實現(xiàn) 過程可根據(jù)實際需要進(jìn)行調(diào)整。
本發(fā)明實施例提供的進(jìn)程間信息交互的方法,在進(jìn)程啟動后動態(tài)地獲取標(biāo) 識參數(shù),然后根據(jù)該標(biāo)識參數(shù)創(chuàng)建與之對應(yīng)的動態(tài)窗口,然后需要對該窗口進(jìn) 行操作的進(jìn)程會根據(jù)所述標(biāo)識參數(shù)查找到所述動態(tài)窗口的窗口標(biāo)題,從而實現(xiàn) 進(jìn)程間的信息交互,由于動態(tài)的窗口標(biāo)題根據(jù)標(biāo)識參數(shù)的變化而變化,增大了 一個進(jìn)程對應(yīng)的窗口標(biāo)題被其他進(jìn)程截獲的難度,從而實現(xiàn)了動態(tài)的信息交互 通道,提高了進(jìn)程間進(jìn)行信息交互時的安全性。
實施例5
在標(biāo)識參數(shù)存儲在智能卡、且所述信息交互通道為有名管道(FIFO, First In First Out)的情況下,本發(fā)明實施例提供的Linux系統(tǒng)下通過動態(tài)的有名管道實 現(xiàn)進(jìn)程間信息交互的方法,如圖5所示,具體包括以下步驟
步驟501、啟動主機(jī)上的進(jìn)程A;
步驟502、進(jìn)程A向智能卡發(fā)送驗證用戶身份的指令,具體為驗證用戶PIN 碼的指令;
在本發(fā)明實施例中,驗證用戶PIN碼的指令為APDU指令,具體為
APDU apdu(OxOO, 0x20, 0x00, 0x00, 8, "12345678")
其中"12345678"為用戶的PIN碼。
步驟503 、智能卡驗證用戶的PIN碼是否正確;
如果驗證結(jié)果表明PIN碼正確,說明用戶為合法用戶,則執(zhí)行步驟504;如 果驗證結(jié)果表明PIN碼不正確,說明用戶為不合法用戶,則進(jìn)程A退出。 步驟504、進(jìn)程A判斷智能卡內(nèi)是否已保存有預(yù)設(shè)參數(shù); 本發(fā)明實施例中,約定預(yù)設(shè)參數(shù)存放在智能卡存儲區(qū)的文件ID為0xA008的私有文件中。
如果該私有文件中已存在預(yù)設(shè)參數(shù),則執(zhí)行步驟507;如果該私有文件中不 存在預(yù)設(shè)參數(shù),則執(zhí)行步驟505。
步驟505、進(jìn)程A向智能卡發(fā)送生成隨機(jī)數(shù)的指令;
在本發(fā)明實施例中,進(jìn)程A向智能卡發(fā)送生成隨機(jī)數(shù)的指令為APDU指令, 具體為
APDU apdu(OxOO, 0x84, 0x00, 0x00, 0x08)
步驟506、智能卡生成隨機(jī)數(shù),并將該隨機(jī)數(shù)作為標(biāo)識參數(shù)存儲在智能卡中;
在本發(fā)明實施例中,智能卡生成隨機(jī)數(shù)"77CD5240B667BB76",并將生成 的隨機(jī)數(shù)作為標(biāo)識參數(shù)保存在智能卡指定的私有文件內(nèi);在本發(fā)明實施例中, 指定的私有文件的ID為OxA008。
步驟506執(zhí)行完畢后繼續(xù)執(zhí)行步驟507。
步驟507、進(jìn)程A從智能卡中讀取標(biāo)識參數(shù);
進(jìn)程A訪問文件ID為OxA008的私有文件,并讀取其中的預(yù)設(shè)參數(shù)或者新 保存的隨機(jī)數(shù)。
步驟508、判斷是否存在與所讀取的標(biāo)識參數(shù)對應(yīng)的有名管道(FIFO ); 如果存在,則執(zhí)行步驟509和511;如果不存在,則執(zhí)行步驟510和511。 步驟509、進(jìn)程A打開與所述標(biāo)識參數(shù)對應(yīng)的FIFO;
在本發(fā)明實施例中,進(jìn)程A調(diào)用Open函數(shù)打開FIFO,參數(shù)為進(jìn)程A所讀 耳又的標(biāo)識參凄t。
步驟510、進(jìn)程A根據(jù)所述標(biāo)識參數(shù)創(chuàng)建FIFO;
在本發(fā)明實施例中,進(jìn)程A調(diào)用函數(shù)int mkinfo(const char *pathname, mode—t mode)來創(chuàng)建FIFO ,其中參數(shù)pathn ame是進(jìn)程A所讀取的標(biāo)識參數(shù);具體地, 進(jìn)行FIFO創(chuàng)建的函凄丈為
mkinfo("77CD5240B667BB76", 0666)
步驟511、進(jìn)程A通過FIFO與其他進(jìn)程進(jìn)行信息交互。
在本發(fā)明實施例中,步驟504-505還可以由步驟504,-505,來代替,即如果步驟503中的驗證結(jié)果表明PIN碼正確,則執(zhí)行步驟504,。 步驟504,、進(jìn)程A向智能卡發(fā)送讀取標(biāo)識參數(shù)的指令; 步驟505'、智能卡判斷是否保存有預(yù)設(shè)參數(shù);
智能卡判斷存儲區(qū)中文件ID為0xA008的私有文件中是否保存有預(yù)設(shè)參數(shù); 如果有,則執(zhí)行步驟507;如果沒有,則執(zhí)行步驟506。
為了保證進(jìn)程間信息交互的安全性,本發(fā)明實施例在步驟501之前,還包
括
步驟500、在智能卡與主機(jī)連接后,啟動主機(jī)上的初始化工具自動清除智能 卡上保存的預(yù)設(shè)參數(shù)。
如果執(zhí)行步驟500的話,則上述步驟504可以省去,即如果步驟503中 的驗證結(jié)果表明PIN碼正確,則執(zhí)行步驟505。
或者,本發(fā)明實施例在步驟501之前還包括
步驟500,、在智能卡上電后自動生成動態(tài)參數(shù),并以新生成的動態(tài)參數(shù)代 替原有的預(yù)設(shè)參數(shù)。
在智能卡與主機(jī)連接后,智能卡的操作系統(tǒng)加電后自動生成隨機(jī)數(shù),并將 該隨機(jī)數(shù)替代原有的預(yù)設(shè)參數(shù)作為標(biāo)識參數(shù)存儲在智能卡中。
在本發(fā)明實施例中,智能卡生成隨機(jī)數(shù)"77CD5240B667BB76",并將生成 的隨機(jī)數(shù)作為標(biāo)識參數(shù)保存在智能卡指定的私有文件內(nèi)。在本發(fā)明實施例中, 指定的私有文件的ID為OxA008。
如果執(zhí)行步驟500,的話,則上述步驟504-506可以省去,即如果步驟503 中的驗證結(jié)果表明PIN碼正確,則執(zhí)行步驟507。
本發(fā)明實施例提供的進(jìn)程間信息交互的方法,在進(jìn)程啟動后動態(tài)地荻取標(biāo) 識參數(shù),然后根據(jù)該標(biāo)識參數(shù)打開或者創(chuàng)建與之對應(yīng)的有名管道,從而實現(xiàn)進(jìn) 程間的信息交互,由于有名管道根據(jù)標(biāo)識參數(shù)的變化而變化,增大了一個進(jìn)程 對應(yīng)的有名管道被其他進(jìn)程截獲的難度,從而實現(xiàn)了動態(tài)的信息交互通道,提 高了進(jìn)程間進(jìn)行信息交互時的安全性。
實施例6
19在標(biāo)識參數(shù)存儲在智能卡、且所述信息交互通道為共享內(nèi)存的情況下,本
發(fā)明實施例提供的Linux系統(tǒng)下通過動態(tài)的共享內(nèi)存實現(xiàn)進(jìn)程間信息交互的方 法,如圖6所示,具體包括以下步驟 步驟601、啟動主機(jī)上的進(jìn)程A;
步驟602、進(jìn)程A向智能卡發(fā)送驗證用戶身份的指令,具體為驗證用戶PIN 碼的指令;
在本發(fā)明實施例中,驗證用戶PIN碼的指令為APDU指令,具體為 APDU apdu(0x00, 0x20, 0x00, 0x00, 8, "12345678") 其中"12345678"為用戶的PIN碼。 步驟603、智能卡騶、證用戶的PIN碼是否正確;
如果驗證結(jié)果表明PIN碼正確,說明用戶為合法用戶,則執(zhí)行步驟604;如 果驗證結(jié)果表明PIN碼不正確,說明用戶為不合法用戶,則進(jìn)程A退出。 步驟604、進(jìn)程A判斷智能卡內(nèi)是否已保存有預(yù)設(shè)參數(shù); 本發(fā)明實施例中,約定預(yù)設(shè)參數(shù)存放在智能卡存儲區(qū)的文件ID為0xA008 的私有文件中。
如果該私有文件中已存在預(yù)設(shè)參數(shù),則執(zhí)行步驟607;如果該私有文件中不 存在預(yù)設(shè)參數(shù),則執(zhí)行步驟605。
步驟605、進(jìn)程A向智能卡發(fā)送生成隨機(jī)數(shù)的指令;
在本發(fā)明實施例中,進(jìn)程A向智能卡發(fā)送生成隨機(jī)數(shù)的指令為APDU指令, 具體為
APDU apdu(OxOO, 0x84, 0x00, 0x00, 0x08)
步驟606、智能卡生成隨機(jī)數(shù),并將該隨機(jī)數(shù)作為標(biāo)識參數(shù)存儲在智能卡中;
在本發(fā)明實施例中,智能卡生成隨機(jī)數(shù)"77CD5240B667BB76",并將生成 的隨機(jī)數(shù)作為標(biāo)識參數(shù)保存在智能卡指定的私有文件內(nèi);在本發(fā)明實施例中, 指定的私有文件的ID為0xA008。
步驟606執(zhí)行完畢后繼續(xù)執(zhí)行步驟607。
步驟607、進(jìn)程A從智能卡中讀取標(biāo)識參數(shù);
進(jìn)程A訪問智能卡中文件ID為0xA008的私有文件,并讀取其中的預(yù)設(shè)參數(shù)或者新保存的隨機(jī)數(shù)。
步驟608、進(jìn)程A將所讀取的標(biāo)識參數(shù)轉(zhuǎn)換成key_t類型的數(shù)據(jù);
本發(fā)明實施例中,步驟608的具體實現(xiàn)方法如下
key_t key = StringToKey(strName)
其中,參數(shù)strName為進(jìn)程A讀取到的預(yù)設(shè)參數(shù)。
步驟609、進(jìn)程A嘗試打開與所述key_t類型數(shù)據(jù)對應(yīng)的共享內(nèi)存;
在本發(fā)明實施例中,進(jìn)程A通過調(diào)用共享內(nèi)存打開函數(shù)來嘗試打開想要才喿
作的共享內(nèi)存;如果嘗試打開的操作成功,則執(zhí)行步驟611;如果嘗試打開的操
作失敗,則執(zhí)行步驟610和611。
步驟610、進(jìn)程A根據(jù)所述keyj類型數(shù)據(jù)創(chuàng)建共享內(nèi)存; 在本發(fā)明實施例中,進(jìn)程A調(diào)用共享內(nèi)存創(chuàng)建函數(shù)來完成共享內(nèi)存的創(chuàng)建;
共享內(nèi)存創(chuàng)建函凄t類型為int shmget(key一t key, int size, int flags);其中參凄tkey
是步驟608所得的數(shù)據(jù),size是需創(chuàng)建的共享內(nèi)存的大小。
本發(fā)明實施例中,創(chuàng)建共享內(nèi)存的過程具體實現(xiàn)代碼如下 m_hFileMapping = shmget(key, 0,IPC—EXCL | S—IRUSR | S—IRGRP |
SJ衡SR I S一IWGRP I S—IROTH | S_IWOTH);
if(IPC—INVALUE_HANDLE == m一hFileMapping)
mJiFileMapping = shmget(key, ulSize,IPC一CREAT | IPC—EXCL | SVSHM一MODE);
步驟611、進(jìn)程A通過共享內(nèi)存與其他進(jìn)程進(jìn)行信息交互。
在本發(fā)明實施例中,步驟604-605還可以由步驟604,-605,來代替,即如 果步驟603中的驗證結(jié)果表明PIN碼正確,則執(zhí)行步驟604,。 步驟604,、進(jìn)程A向智能卡發(fā)送讀取標(biāo)識參數(shù)的指令; 步驟605'、智能卡判斷是否保存有預(yù)設(shè)參數(shù); 智能+刺賊
21如果有,則執(zhí)行步驟607;如果沒有,則執(zhí)行步驟606。
為了保證進(jìn)程間信息交互的安全性,本發(fā)明實施例在步驟601之前,還包
括
步驟600、在智能卡與主機(jī)連接后,啟動主機(jī)上的初始化工具自動清除智能 卡上保存的預(yù)設(shè)參凄t。
如果執(zhí)行步驟600的話,則上述步驟604可以省去,即如果步驟603中 的驗證結(jié)果表明PIN碼正確,則執(zhí)行步驟605 。
或者,在本發(fā)明實施例在步驟601之前還包括
步驟600,、在智能卡上電后自動生成動態(tài)參數(shù),并以新生成的動態(tài)參數(shù)代 替原有的預(yù)設(shè)參數(shù)。
在智能卡與主機(jī)連接后,智能卡的操作系統(tǒng)加電后自動生成隨機(jī)數(shù),并將 該隨機(jī)數(shù)替代原有的預(yù)設(shè)參數(shù)作為標(biāo)識參數(shù)存儲在智能卡中。
在本發(fā)明實施例中,智能卡生成隨機(jī)數(shù)"77CD5240B667BB76",并將生成 的隨機(jī)數(shù)作為標(biāo)識參數(shù)保存在智能卡指定的私有文件內(nèi)。在本發(fā)明實施例中, 指定的私有文件的ID為OxA008。
如果執(zhí)行步驟600,的話,則上述步驟604-606可以省去,即如果步驟603 中的驗證結(jié)果表明PIN碼正確,則執(zhí)行步驟607。
本發(fā)明實施例提供的進(jìn)程間信息交互的方法,在進(jìn)程啟動后動態(tài)地獲取標(biāo) 識參數(shù),然后根據(jù)該標(biāo)識參數(shù)打開或者創(chuàng)建與之對應(yīng)的共享內(nèi)存,從而實現(xiàn)進(jìn) 程間的信息交互,由于共享內(nèi)存根據(jù)標(biāo)識參數(shù)的變化而變化,增大了一個進(jìn)程 對應(yīng)的共享內(nèi)存被其他進(jìn)程截獲的難度,從而實現(xiàn)了動態(tài)的信息交互通道,提 高了進(jìn)程間進(jìn)行信息交互時的安全性。
實施例7
在標(biāo)識參數(shù)存儲在智能卡、且所述信息交互通道為共享內(nèi)存的情況下,本 發(fā)明實施例提供的Windows系統(tǒng)下通過動態(tài)的共享內(nèi)存實現(xiàn)進(jìn)程間信息交互的 方法,如圖7所示,具體包括以下步驟
步驟701、啟動主才幾上的進(jìn)程A;步驟702、進(jìn)程A向智能卡發(fā)送驗證用戶身份的指令,具體為驗證用戶PIN 碼的指令;
在本發(fā)明實施例中,驗證用戶PIN碼的指令為APDU指令,具體為
APDU apdu(0x00, 0x20, 0x00, 0x00, 8, "12345678")
其中"12345678"為用戶的PIN碼。
步驟703 、智能卡驗證用戶的PIN碼是否正確;
如果驗證結(jié)果表明PIN碼正確,說明用戶為合法用戶,則執(zhí)行步驟704;如 果驗證結(jié)果表明PIN碼不正確,說明用戶為不合法用戶,則進(jìn)程A退出。 步驟704、進(jìn)程A判斷智能卡內(nèi)是否已保存有預(yù)設(shè)參數(shù); 本發(fā)明實施例中,約定預(yù)設(shè)參數(shù)存放在智能卡存儲區(qū)的文件ID為0xA008 的私有文件中。
如果該私有文件中已存在預(yù)設(shè)參數(shù),則執(zhí)行步驟707;如果該私有文件中不 存在預(yù)設(shè)參數(shù),則執(zhí)行步驟705。
步驟705、進(jìn)程A向智能卡發(fā)送生成隨機(jī)數(shù)的指令;
在本發(fā)明實施例中,進(jìn)程A向智能卡發(fā)送生成隨機(jī)數(shù)的指令為APDU指令, 具體為
APDU apdu(OxOO, 0x84, 0x00, 0x00, 0x08)
步驟706、智能卡生成隨機(jī)數(shù),并將生成的隨機(jī)數(shù)作為標(biāo)識參數(shù)保存在指定 的私有文件;
在本發(fā)明實施例中,智能卡生成隨機(jī)數(shù)"77CD5240B667BB76",并將生成 的隨機(jī)數(shù)作為標(biāo)識參數(shù)保存在智能卡指定的私有文件內(nèi);在本發(fā)明實施例中, 指定的私有文件的ID為0xA008 。
步驟706執(zhí)行完畢后繼續(xù)執(zhí)行步驟707。
步驟707 、進(jìn)程A從智能卡中讀取標(biāo)識參數(shù);
進(jìn)程A訪問智能卡中文件ID為0xA008的私有文件,并讀耳又其中的預(yù)設(shè)參 數(shù)或者新保存的隨機(jī)數(shù)。
步驟708、進(jìn)程A嘗試打開與所讀取的標(biāo)識參數(shù)對應(yīng)的共享內(nèi)存; 在本發(fā)明實施例中,進(jìn)程A通過調(diào)用如下函數(shù)來打開共享內(nèi)存
23HANDLE 。penFi固apping( DWORD dwDesiredAccess, BOOL blnheritHandle, LPCTSTR lpName
)
其中參數(shù)LPCTSTR lpName是進(jìn)程A所讀取的標(biāo)識參數(shù);如果上述函數(shù)執(zhí) 行完成后的返回值為NULL,說明進(jìn)程A嘗試打開共享內(nèi)存的操作失敗,參數(shù) LPCTSTR lpName對應(yīng)的共享內(nèi)存不存在,則執(zhí)行步驟709、 710;否則,上述 函數(shù)執(zhí)行完成后的返回值即為進(jìn)程A所要操作的共享內(nèi)存的句柄,進(jìn)而執(zhí)行步 驟710。
步驟709、進(jìn)程A根據(jù)所讀取的標(biāo)識參數(shù)創(chuàng)建共享內(nèi)存; 在本發(fā)明實施例中,進(jìn)程A通過調(diào)用如下函數(shù)來創(chuàng)建共享內(nèi)存 HANDLE CreateFileMapping( HANDLE hFile,
LPSECURITY_ATTRIBUTES lpAttributes, DWORD flProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, LPCTSTR lpName
)
其中參數(shù)LPCTSTR lpName是進(jìn)程A所讀取的預(yù)設(shè)參數(shù)。 步驟710 、進(jìn)程A通過共享內(nèi)存與其他進(jìn)程進(jìn)行信息交互。
在本發(fā)明實施例中,步驟704-705還可以由步驟704,-705,來代替,即如 果步驟703中的驗證結(jié)果表明PIN碼正確,則執(zhí)行步驟704,。 步驟704,、進(jìn)程A向智能卡發(fā)送讀取標(biāo)識參數(shù)的指令; 步驟705'、智能卡判斷是否保存有預(yù)設(shè)參數(shù);如果有,則執(zhí)行步驟707;如果沒有,則執(zhí)行步驟706。
為了保證進(jìn)程間信息交互的安全性,本發(fā)明實施例在步驟701之前,還包
括
步驟700、在智能卡與主機(jī)連接后,啟動主機(jī)上的初始化工具自動清除智能 卡上保存的預(yù)設(shè)參數(shù)。
如果執(zhí)行步驟700的話,則上述步驟704可以省去,即如杲步驟703中 的驗證結(jié)果表明PIN碼正確,則執(zhí)行步驟705 。
或者,本發(fā)明實施例在步驟701之前還包括
步驟700'、在智能卡上電后自動生成動態(tài)參數(shù),并以新生成的動態(tài)參數(shù)代 替原有的預(yù)設(shè)參數(shù)。
在智能卡與主機(jī)連接后,智能卡的操作系統(tǒng)加電后自動生成隨機(jī)數(shù),并將 該隨機(jī)數(shù)替代原有的預(yù)設(shè)參數(shù)作為標(biāo)識參數(shù)存儲在智能卡中。
在本發(fā)明實施例中,智能卡生成隨機(jī)數(shù)"77CD5240B667BB76",并將生成 的隨機(jī)數(shù)作為標(biāo)識參數(shù)保存在智能卡指定的私有文件內(nèi)。在本發(fā)明實施例中, 指定的私有文件的ID為0xA008。
如果執(zhí)行步驟700,的話,則上述步驟704-706可以省去,即如果步驟703 中的驗證結(jié)果表明PIN碼正確,則執(zhí)行步驟707。
本發(fā)明實施例提供的進(jìn)程間信息交互的方法,在進(jìn)程啟動后動態(tài)地獲取標(biāo) 識參數(shù),然后根據(jù)該標(biāo)識參數(shù)打開或者創(chuàng)建與之對應(yīng)的共享內(nèi)存,從而實現(xiàn)進(jìn) 程間的信息交互,由于共享內(nèi)存根據(jù)標(biāo)識參數(shù)的變化而變化,增大了一個進(jìn)程 對應(yīng)的共享內(nèi)存被其他進(jìn)程截獲的難度,從而實現(xiàn)了動態(tài)的信息交互通道,提 高了進(jìn)程間進(jìn)行信息交互時的安全性。
實施例8
如圖8所示,本發(fā)明實施例提供的實現(xiàn)進(jìn)程間信息交互的裝置,包括獲取 單元81、訪問單元82及通信單元83;其中,
獲取單元81,用于獲取信息交互通道的動態(tài)參數(shù)作為標(biāo)識參數(shù);訪問單元 82,用于根據(jù)獲取單元81獲取到的標(biāo)識參數(shù)訪問信息交互通道,所述標(biāo)識參數(shù)可以是消息ID、窗口標(biāo)題、共享內(nèi)存的名字、或者有名管道的名字;通信單元 83,用于通過所述信息交互通道進(jìn)行進(jìn)程間的信息交互。
本發(fā)明實施例提供的實現(xiàn)進(jìn)程間信息交互的裝置,在進(jìn)程啟動后確定信息 交互通道的過程中,獲取信息交互通道的標(biāo)識參數(shù),該標(biāo)識參數(shù)可以是預(yù)設(shè)參 數(shù)也可以是新生成的動態(tài)參數(shù),然后根據(jù)該標(biāo)識參數(shù)訪問信息交互通道,使得 信息交互通道根據(jù)標(biāo)識參數(shù)的變化而變化,增大了 一個進(jìn)程對應(yīng)的信息交互通 道被其他進(jìn)程截獲的難度,從而實現(xiàn)了動態(tài)的信息交互通道,提高了進(jìn)程間進(jìn) 行信息交互時的安全性。
實施例9
如圖9所示,本發(fā)明實施例提供的實現(xiàn)進(jìn)程間信息交互的裝置,包括獲取 單元91、訪問單元92、通信單元93及驗證單元94;其中,
首先,驗證單元94指令智能卡驗證用戶是否為合法用戶;如果用戶為合法 用戶,則獲取單元91執(zhí)行獲取信息交互通道的動態(tài)參數(shù)作為標(biāo)識參數(shù)的操作; 如果用戶為不合法用戶,則結(jié)束進(jìn)程;
之后,訪問單元92根據(jù)獲取單元91獲取到的標(biāo)識參數(shù)訪問信息交互通道, 所述標(biāo)識參數(shù)可以是消息ID、窗口標(biāo)題、共享內(nèi)存的名字、或者有名管道的名 字;通信單元93通過訪問單元92訪問的信息交互通道進(jìn)行進(jìn)程間的信息交互。
其中,所述訪問單元92進(jìn)一步包括
判斷模塊921、用于判斷是否存在與所述標(biāo)識參數(shù)對應(yīng)的信息交互通道; 打開模塊922,用于在判斷模塊921判斷結(jié)果為是時,打開所述信息交互通
道;
通道創(chuàng)建模塊923,用于在判斷模塊921判斷結(jié)果為否時,以所述標(biāo)識參數(shù) 為通道名稱創(chuàng)建新的信息交互通道。
此外,本發(fā)明實施例提供的實現(xiàn)進(jìn)程間信息交互的裝置,還包括判斷單 元95,用于判斷是否存在信息交互通道的預(yù)設(shè)參數(shù);如果存在,則獲取單元91 用于獲取信息交互通道的預(yù)設(shè)參數(shù);如果不存在,則獲^l單元91用于獲取信息 交互通道的動態(tài)參凄丈。
在存在預(yù)設(shè)參數(shù)的情況下,所述獲取單元91直接讀取已存的信息交互通道的預(yù)設(shè)參數(shù),所述預(yù)設(shè)參數(shù)存儲在主機(jī)中或者信息安全設(shè)備中;如果所述預(yù)設(shè) 參數(shù)存儲在主機(jī)中,則所述獲取單元91還對所讀取到的信息交互通道的預(yù)_沒參 數(shù)進(jìn)行解密,并將解密后得到的數(shù)據(jù)作為標(biāo)識參數(shù),此時所述訪問單元92根據(jù) 解密后得到的數(shù)據(jù)訪問信息交互通道。
在預(yù)設(shè)參數(shù)不存在的情況下,就需要通過所迷獲取單元91得到信息交互通 道的動態(tài)參數(shù),此時所述獲取單元91具體包括
參數(shù)創(chuàng)建模塊911,用于創(chuàng)建信息交互通道的動態(tài)參數(shù),該動態(tài)參數(shù)可以是 隨機(jī)數(shù),也可以是對隨機(jī)數(shù)進(jìn)行HASH (哈希)運算后得到的HASH值;
存儲模塊912,用于將所述動態(tài)參數(shù)存儲到主機(jī)中或者信息安全設(shè)備中;
讀取模塊913,用于讀取所述動態(tài)參數(shù)作為標(biāo)識參數(shù)。
其中,如果所述動態(tài)參數(shù)為隨機(jī)數(shù),則所述存儲模塊912將所述隨機(jī)數(shù)存 儲到信息安全設(shè)備中;
如果所述動態(tài)參數(shù)為隨機(jī)數(shù)的HASH值,則所述存儲模塊912還需對所述 隨機(jī)數(shù)的HASH值進(jìn)行加密,將加密后的數(shù)據(jù)存儲到主機(jī)中。
此外,本發(fā)明實施例中的獲取單元91還可以獲取信息安全設(shè)備中新生成 的動態(tài)參數(shù)作為標(biāo)識參數(shù);其中,所述新生成的動態(tài)參數(shù)由信息安全設(shè)備在上 電后自動生成。
本發(fā)明實施例提供的實現(xiàn)進(jìn)程間信息交互的裝置,在進(jìn)程啟動后確定信息 交互通道的過程中,獲取信息交互通道的標(biāo)識參數(shù),該標(biāo)識參數(shù)可以是預(yù)設(shè)參 數(shù)也可以是新生成的動態(tài)參數(shù),然后打開與所述標(biāo)識參數(shù)對應(yīng)的信息交互通道 或者根據(jù)該標(biāo)識參數(shù)創(chuàng)建新的信息交互通道,使得信息交互通道根據(jù)標(biāo)識參數(shù) 的變化而變化,增大了一個進(jìn)程對應(yīng)的信息交互通道被其他進(jìn)程截獲的難度, 從而實現(xiàn)了動態(tài)的信息交互通道,提高了進(jìn)程間進(jìn)行信息交互時的安全性。
以上所述,僅為本發(fā)明的具體實施方式
,但本發(fā)明的保護(hù)范圍并不局限于 此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到 的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍 應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1、一種進(jìn)程間信息交互的方法,其特征在于,包括獲取信息交互通道的動態(tài)參數(shù)作為標(biāo)識參數(shù);根據(jù)所述標(biāo)識參數(shù)訪問信息交互通道;通過所述信息交互通道進(jìn)行進(jìn)程間的信息交互。
2、 根據(jù)權(quán)利要求1所述的進(jìn)程間信息交互的方法,其特征在于,所述標(biāo)識 參數(shù)包括消息標(biāo)識、窗口標(biāo)題、有名管道的名字、或者共享內(nèi)存的名字。
3、 根據(jù)權(quán)利要求1所述的進(jìn)程間信息交互的方法,其特征在于,所述獲取 信息交互通道的動態(tài)參數(shù)作為標(biāo)識參數(shù)之前,還包括指示信息安全設(shè)備驗證 用戶是否為合法用戶;所述獲取信息交互通道的動態(tài)參數(shù)作為標(biāo)識參數(shù)為在所述用戶為合法用 戶時,獲取信息交互通道的動態(tài)參數(shù)作為標(biāo)識參數(shù);否則,結(jié)束進(jìn)程。
4、 根據(jù)權(quán)利要求1所述的進(jìn)程間信息交互的方法,其特征在于,在所述獲 取信息交互通道的動態(tài)參數(shù)之前,還包括判斷是否存在信息交互通道的預(yù)設(shè)參數(shù); 如果存在,則獲:f又信息交互通道的預(yù)設(shè)參數(shù)作為標(biāo)識參數(shù); 所迷獲取信息交互通道的動態(tài)參數(shù)作為標(biāo)識參數(shù)為在不存在信息交互通 道的預(yù)設(shè)參數(shù)時,獲取信息交互通道的動態(tài)參數(shù)作為標(biāo)識參數(shù)。
5、 根據(jù)權(quán)利要求4所述的進(jìn)程間信息交互的方法,其特征在于,所述信息 交互通道的預(yù)設(shè)參數(shù)為存儲在主機(jī)上的加密數(shù)據(jù),則所述獲取信息交互通道的預(yù)設(shè)參數(shù)作為標(biāo)識參數(shù)為讀取所述預(yù)設(shè)參數(shù)并 對其進(jìn)行解密,將解密后得到的數(shù)據(jù)作為標(biāo)識參數(shù)。
6、 根據(jù)權(quán)利要求4所述的進(jìn)程間信息交互的方法,其特征在于,所述獲取 信息交互通道的動態(tài)參數(shù)作為標(biāo)識參數(shù)包括創(chuàng)建信息交互通道的動態(tài)參數(shù);將所述動態(tài)參數(shù)存儲到主機(jī)中或者信息安全設(shè)備中;讀取所述動態(tài)參數(shù)作為標(biāo)識參數(shù)。
7、 根據(jù)權(quán)利要求6所述的進(jìn)程間信息交互的方法,其特征在于,所述創(chuàng)建信息交互通道的動態(tài)參數(shù)為向所述信息安全設(shè)備發(fā)送生成動態(tài)參數(shù)的指令, 所述動態(tài)參數(shù)為隨機(jī)數(shù)或者隨機(jī)數(shù)的哈希值。
8、 根據(jù)權(quán)利要求7所述的進(jìn)程間信息交互的方法,其特征在于,所述動態(tài) 參數(shù)為隨機(jī)數(shù)的哈希值,則將所述動態(tài)參數(shù)存儲到主機(jī)中;且,所述將動態(tài)參數(shù)存儲到主機(jī)中為對所迷隨機(jī)數(shù)的哈希值進(jìn)行加密,并將 加密后的數(shù)據(jù)存儲到所述主機(jī)中。
9、 根據(jù)權(quán)利要求6所述的進(jìn)程間信息交互的方法,其特征在于,所述創(chuàng)建 信息交互通道的動態(tài)參數(shù)為信息安全設(shè)備自動生成動態(tài)參數(shù),所述動態(tài)參數(shù) 為隨機(jī)數(shù)。
10、 根據(jù)權(quán)利要求1所述的進(jìn)程間信息交互的方法,其特征在于,在獲取 信息交互通道的動態(tài)參數(shù)作為標(biāo)識參數(shù)之前,還包括信息安全設(shè)備上電后自動重置預(yù)設(shè)參數(shù)。
11、 根據(jù)權(quán)利要求IO所述的進(jìn)程間信息交互的方法,其特征在于,所述自 動重置預(yù)設(shè)參數(shù)為自動清除原有的預(yù)設(shè)參數(shù)。
12、 根據(jù)權(quán)利要求IO所述的進(jìn)程間信息交互的方法,其特征在于,所述自 動重置預(yù)設(shè)參數(shù)為自動生成動態(tài)參數(shù),并以新生成的動態(tài)參數(shù)替代原有的預(yù) 設(shè)參數(shù);所述獲取信息交互通道的動態(tài)參數(shù)作為標(biāo)識參數(shù),具體為獲取信息安全 設(shè)備中新生成的動態(tài)參數(shù)作為標(biāo)識參數(shù)。
13、 根據(jù)權(quán)利要求1所述的進(jìn)程間信息交互的方法,其特征在于,所述根 據(jù)所述標(biāo)識參數(shù)訪問信息交互通道,包括判斷是否存在與所述標(biāo)識參數(shù)對應(yīng)的信息交互通道;如果存在,則打開所述信息交互通道;如果不存在,則以所述標(biāo)識參數(shù)作 為通道名稱創(chuàng)建新的信息交互通道。
14、 一種實現(xiàn)進(jìn)程間信息交互的裝置,其特征在于,包括 荻取單元,用于獲取信息交互通道的動態(tài)參數(shù)作為標(biāo)識參數(shù); 訪問單元,用于才艮據(jù)所述標(biāo)識參數(shù)訪問信息交互通道; 通信單元,用于通過所述信息交互通道進(jìn)行進(jìn)程間的信息交互。
15、 根據(jù)權(quán)利要求14所述的實現(xiàn)進(jìn)程間信息交互的裝置,其特征在于,所 述標(biāo)識參數(shù)包括消息標(biāo)識、窗口標(biāo)題、有名管道的名字、或者共享內(nèi)存的名 字。
16、 根據(jù)權(quán)利要求14所述的實現(xiàn)進(jìn)程間信息交互的裝置,其特征在于,該 裝置還包括驗證單元,用于指示信息安全設(shè)備驗證用戶是否為合法用戶;獲取信息交互通道的動態(tài)參數(shù)作為標(biāo)識參數(shù)。
17、 根據(jù)權(quán)利要求14所述的實現(xiàn)進(jìn)程間信息交互的裝置,其特征在于,該 裝置還包括判斷單元,用于判斷是否存在信息交互通道的預(yù)設(shè)參數(shù);所述獲取單元,在所述判斷單元的判斷結(jié)果為是時,獲取信息交互通道的預(yù)設(shè)參數(shù)作為標(biāo)識參數(shù);在所述判斷單元的判斷結(jié)果為否時,獲取信息交互通道的動態(tài)參數(shù)作為標(biāo)識參數(shù)。
18、 根據(jù)權(quán)利要求17所述的實現(xiàn)進(jìn)程間信息交互的裝置,其特征在于,當(dāng) 所述判斷單元的判斷結(jié)果為是,且所述信息交互通道的預(yù)設(shè)參數(shù)為存儲在主機(jī) 上的加密數(shù)據(jù)時,所述獲取單元,用于讀取所述預(yù)設(shè)參數(shù)并對其進(jìn)行解密,將解密后得到的 數(shù)據(jù)作為標(biāo)識參數(shù)。
19、 根據(jù)權(quán)利要求17所述的實現(xiàn)進(jìn)程間信息交互的裝置,其特征在于,在 所述判斷單元的判斷結(jié)果為否時,所述獲取單元包括參數(shù)創(chuàng)建模塊,用于創(chuàng)建信息交互通道的動態(tài)參數(shù);存儲模塊,用于將所述動態(tài)參數(shù)存儲到主機(jī)中或者信息安全設(shè)備中;讀取模塊,用于讀取所述動態(tài)參數(shù)作為標(biāo)識參數(shù)。
20、 根據(jù)權(quán)利要求19所述的實現(xiàn)進(jìn)程間信息交互的裝置,其特征在于,所 述參數(shù)創(chuàng)建模塊用于向信息安全設(shè)備發(fā)送生成動態(tài)參數(shù)的指令,所述動態(tài)參數(shù) 為隨機(jī)數(shù)或者隨機(jī)數(shù)的哈希值。
21、 根據(jù)權(quán)利要求20所述的實現(xiàn)進(jìn)程間信息交互的裝置,其特征在于,所述動態(tài)參數(shù)為隨機(jī)數(shù)的哈希值,則所述存儲模塊用于對所述隨機(jī)數(shù)的哈希值進(jìn)行加密,并將加密后的數(shù)據(jù)存儲到所述主機(jī)中。
22、 根據(jù)權(quán)利要求14所述的實現(xiàn)進(jìn)程間信息交互的裝置,其特征在于,所述獲取單元,用于獲取信息安全設(shè)備中新生成的動態(tài)參數(shù)作為標(biāo)識參數(shù);其中,所述新生成的動態(tài)參數(shù)由信息安全設(shè)備上電后自動生成。
23、 根據(jù)權(quán)利要求14所述的實現(xiàn)進(jìn)程間信息交互的裝置,其特征在于,所述訪問單元進(jìn)一步包括判斷模塊,用于判斷是否存在與所述標(biāo)識參數(shù)對應(yīng)的信息交互通道;打開模塊,用于在所述判斷模塊判斷結(jié)果為是時,打開所述信息交互通道;通道創(chuàng)建模塊,用于在所述判斷模塊判斷結(jié)果為否時,以所述標(biāo)識參數(shù)作為通道名稱創(chuàng)建新的信息交互通道。
全文摘要
本發(fā)明實施例公開了一種進(jìn)程間信息交互的方法及裝置,涉及信息安全領(lǐng)域,用以提高進(jìn)程間進(jìn)行信息交互的安全性。本發(fā)明實施例提供的進(jìn)程間信息交互的方法,包括獲取信息交互通道的動態(tài)參數(shù)作為標(biāo)識參數(shù);根據(jù)所述標(biāo)識參數(shù)訪問信息交互通道;通過所述信息交互通道進(jìn)行進(jìn)程間的信息交互。本發(fā)明實施例提供的方法及裝置適用于對信息交互安全性要求較高的進(jìn)程間通信。
文檔編號G06F9/54GK101504622SQ20091008068
公開日2009年8月12日 申請日期2009年3月25日 優(yōu)先權(quán)日2009年3月25日
發(fā)明者于華章, 舟 陸 申請人:北京飛天誠信科技有限公司