亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

進程的身份認證方法和裝置與流程

文檔序號:11959971閱讀:232來源:國知局
進程的身份認證方法和裝置與流程

本申請涉及分布式計算領域,特別是涉及進程的身份認證方法和裝置。



背景技術:

在分布式計算環(huán)境中,分布在不同機器上的進程通過網(wǎng)絡互相通信。然而,如果實現(xiàn)進程間通信的網(wǎng)絡是一個開放的、不安全的網(wǎng)絡,進程間通信的安全性是無法得到有效保證的,黑客很有可能會入侵并訪問分布式計算環(huán)境,以使得黑客的非法進程與其它合法進程進行通信。

為了保證進程間通信的安全性,避免黑客的非法進程與合法進程進行通信,在通信之前,需要對通信的進程進行身份認證。

但是,在實現(xiàn)本申請的過程中,本申請的發(fā)明人發(fā)現(xiàn)現(xiàn)有技術中至少存在如下問題:目前現(xiàn)有的身份認證協(xié)議基本上都是對互聯(lián)網(wǎng)中某一應用場景中的“用戶”實現(xiàn)身份認證,實現(xiàn)方式一般都是“一般用戶”采用普通的網(wǎng)絡協(xié)議完成身份認證,獲得“合法用戶”的身份,進而獲得通信用的會話密鑰。但是,由于本申請中實現(xiàn)進程間通信的網(wǎng)絡是一個開放的、不安全的網(wǎng)絡,因此,如果“進程”采用普通的網(wǎng)絡協(xié)議進行身份認證,不僅“合法進程”可以通過身份認證,黑客的“非法進程”也完全可以通過同樣的手段通過身份認證,因此,無法保證身份認證的過程的安全性。



技術實現(xiàn)要素:

為了解決上述技術問題,本申請實施例提供了進程的身份認證方法和裝置,以盡可能地保證身份認證過程的安全性,阻止黑客的“非法進程”通過同樣的手段通過身份認證。

本申請實施例公開了如下技術方案:

一種進程的身份認證方法,在機器上配置有一個專屬于所述機器的認證代理,所述機器為處于分布式計算環(huán)境中的任一機器,所述方法包括:

所述機器上的啟動單元在啟動進程之前為所述進程生成進程信息,并將所述進程信息發(fā)送給所述機器上的認證代理;

所述進程在被啟動后向所述機器上的認證代理請求身份認證;

響應于身份認證請求,所述機器上的認證代理從所述機器的系統(tǒng)資源中獲取所述進程的進程信息,并將獲取的所述進程的進程信息與啟動單元發(fā)送的所述進程的進程信息進行比對,如果相同,將所述進程認定為合法進程,如果不同,將所述進程認定為非法進程。

優(yōu)選的,所述進程信息包括進程的PID、進程的可執(zhí)行文件的訪問路徑和進程的可執(zhí)行文件的簽名值中的至少一個。

優(yōu)選的,所述方法還包括:

所述機器上的啟動單元為所述進程生成初始密鑰,將所述初始密鑰發(fā)送給所述機器上的認證代理,并在啟動所述進程后將所述初始密鑰發(fā)送給所述進程;

在將所述進程認定為合法進程之前,所述機器上的認證代理利用所述啟動單元發(fā)送的所述進程的初始密鑰對所述進程請求身份認證時使用的初始密鑰進行驗證,如果驗證通過,將所述進程認定為合法進程,如果驗證不通過,將所述進程認定為非法進程;

則所述進程在被啟動后向所述機器上的認證代理請求身份認證具體為:

所述進程在被啟動后利用所述初始密鑰向所述機器上的認證代理請求身份認證。

優(yōu)選的,所述初始密鑰的生命周期為一次。

優(yōu)選的,當所述進程是子進程時,所述啟動單元為所述子進程的父進程,當所述進程為父進程時,所述啟動單元為所述機器上的認證代理。

優(yōu)選的,所述方法還包括:

在將所述進程認定為合法進程之后,所述機器上的認證代理按照被啟動關系從所述進程開始一直回溯到所述機器上的認證代理,并將回溯的路徑作為所述進程唯一的身份標識。

優(yōu)選的,所述方法還包括:

在將所述進程被認定為合法進程之后,所述機器上的認證代理與所述進 程協(xié)商第一密鑰;其中,所述第一密鑰用于所述機器上的認證代理與所述進程之間的安全通信。

優(yōu)選的,所述方法還包括:

所述進程向所述機器上的認證代理請求與目標進程通信;

響應于與目標進程通信的請求,所述機器上的認證代理與所述目標進程所在機器上的認證代理協(xié)商會話密鑰,利用所述第一密鑰加密所述會話密鑰,生成第一票據(jù),并將所述第一票據(jù)返回給所述進程;

所述進程利用所述第一密鑰解密所述第一票據(jù),獲得會話密鑰,所述會話密鑰用于所述進程與所述目標進程之間的安全通信。

優(yōu)選的,所述方法還包括:

在所述機器上的認證代理與所述目標進程所在機器上的認證代理協(xié)商會話密鑰之后,所述機器上的認證代理接收所述目標進程所在機器上的認證代理發(fā)送的第二票據(jù),并將所述第二票據(jù)返回給所述進程;其中,所述第二票據(jù)是利用第二密鑰加密所述會話密鑰生成的,所述第二密鑰用于所述目標進程與所在機器上的認證代理之間的安全通信;

所述進程將所述第二票據(jù)發(fā)送給所述目標進程,以便所述目標進程解密所述第二票據(jù)獲得會話密鑰。

優(yōu)選的,所述方法還包括:

所述機器上的認證代理從所述目標進程所在機器上的認證代理獲取所述目標進程的身份標識;

所述機器上的認證代理利用所述第一密鑰加密所述會話密鑰,生成第一票據(jù),并將所述第一票據(jù)返回給所述進程具體為:

所述機器上的認證代理利用所述第一密鑰加密所述會話密鑰和所述目標進程的身份標識,生成第一票據(jù),并將所述第一票據(jù)返回給所述進程;

所述進程利用所述第一密鑰解密所述第一票據(jù),獲得會話密鑰具體為:

所述進程利用所述第一密鑰解密所述第一票據(jù),獲得會話密鑰和所述目標進程的身份標識。

優(yōu)選的,所述方法還包括:

在所述進程利用所述會話密鑰與所述目標進程進行通信之前,所述進程 根據(jù)所述目標進程的身份標識確定所述目標進程是否為期望通信的對象,如果是,后續(xù)所述進程再利用所述會話密鑰與所述目標進程進行通信。

一種進程的身份認證裝置,所述裝置位于分布式計算環(huán)境中的任一機器上,所述裝置包括:認證代理、啟動單元以及進程;其中,

所述啟動單元,用于在啟動所述進程之前為所述進程生成進程信息,并將所述進程信息發(fā)送給所述認證代理;

所述進程,用于在被啟動后向所述認證代理請求身份認證;

所述認證代理,用于響應于身份認證請求,從所述機器的系統(tǒng)資源中獲取所述進程的進程信息,并將獲取的所述進程的進程信息與所述啟動單元發(fā)送的所述進程的進程信息進行比對,如果相同,將所述進程認定為合法進程,如果不同,將所述進程認定為非法進程。

優(yōu)選的,所述進程信息包括進程的PID、進程的可執(zhí)行文件的訪問路徑和進程的可執(zhí)行文件的簽名值中的至少一個。

優(yōu)選的,所述啟動單元還用于,為所述進程生成初始密鑰,將所述初始密鑰發(fā)送給所述認證代理,并在啟動所述進程后將所述初始密鑰發(fā)送給所述進程;

則所述認證代理還用于,在將所述進程認定為合法進程之前,所述機器上的認證代理利用所述啟動單元發(fā)送的所述進程的初始密鑰對所述進程請求身份認證時使用的初始密鑰進行驗證,如果驗證通過,將所述進程認定為合法進程,如果驗證不通過,將所述進程認定為非法進程;

則所述進程具體用于,在被啟動后利用所述初始密鑰向所述認證代理請求身份認證。

優(yōu)選的,所述認證代理還用于,按照被啟動關系從所述進程開始一直回溯到所述認證代理,并將回溯的路徑作為所述進程唯一的身份標識。

優(yōu)選的,所述認證代理還用于,在將所述進程認定為合法進程之后,與所述進程協(xié)商第一密鑰;其中,所述第一密鑰用于所述認證代理與所述進程之間的安全通信。

優(yōu)選的,所述進程還用于,向所述認證代理請求與目標進程通信,接收所述認證代理發(fā)送的第一票據(jù),利用所述第一密鑰解密所述第一票據(jù),獲得 會話密鑰,利用所述會話密鑰與所述目標進程進行通信;

所述認證代理還用于,響應于與目標進程通信的請求,與所述目標進程所在機器上的認證代理協(xié)商會話密鑰,利用所述第一密鑰加密所述會話密鑰,生成第一票據(jù),將所述第一票據(jù)返回給所述進程。

優(yōu)選的,所述認證代理還用于,在與所述目標進程所在機器上的認證代理協(xié)商會話密鑰之后,接收所述目標進程所在機器上的認證代理發(fā)送的第二票據(jù),并將所述第二票據(jù)返回給所述進程;其中,所述第二票據(jù)是利用第二密鑰加密所述會話密鑰生成的,所述第二密鑰用于所述目標進程與所在機器上的認證代理之間的安全通信;

所述進程還用于,將所述第二票據(jù)發(fā)送給所述目標進程,以便所述目標進程解密所述第二票據(jù)獲得會話密鑰。

優(yōu)選的,所述認證代理還用于,從所述目標進程所在機器上的認證代理獲取所述目標進程的身份標識;

所述認證代理具體用于,利用所述第一密鑰加密所述會話密鑰和所述目標進程的身份標識,生成第一票據(jù),并將所述第一票據(jù)返回給所述進程;

所述進程具體用于,利用所述第一密鑰解密所述第一票據(jù),獲得會話密鑰和所述目標進程的身份標識。

優(yōu)選的,在利用所述會話密鑰與所述目標進程進行通信之前,根據(jù)所述目標進程的身份標識確定所述目標進程是否為期望通信的對象,如果是,后續(xù)再利用所述會話密鑰與所述目標進程進行通信。

由上述實施例可以看出,與現(xiàn)有技術相比,本申請的優(yōu)點在于:

在機器上,由本地的認證代理完成對本地進程的身份認證。在認證過程中,對于每一個本地進程,在其被啟動之前,啟動單元已經(jīng)向本地的認證代理報備了本地進程的進程信息,也就是說,凡是本地進程,其進程信息在本地的認證代理中都有記錄,所有記錄相當于構(gòu)成了一個關于本地進程的“白名單”。當有進程請求身份認證時,本地的認證代理先從本地機器的系統(tǒng)資源中獲取該進程的進程信息,并判斷該進程信息是否在“白名單”中,如果是本地進程請求身份認證,獲取的進程信息必然在“白名單”中,而如果是黑客的“非法進程”偽裝本地進程請求身份認證,獲取的進程信息必然不在“白 名單”中。因此,保證了身份認證的過程的安全性。

附圖說明

為了更清楚地說明本申請實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1示意性地示出了本申請的實施方式可以在其中實施的一個示例性應用場景;

圖2示意性地示出了根據(jù)本申請的一個實施方式的進程的身份認證方法的流程圖;

圖3示意性地示出了根據(jù)本申請的另一個實施方式的進程的身份認證方法的流程圖;

圖4示意性地示出了根據(jù)本申請的另一個實施方式的進程的身份認證方法的流程圖;

圖5示意性地示出了本申請的實施方式可以在其中實施的另一個示例性應用場景;

圖6示意性地示出了根據(jù)本申請的一個實施方式的進程間通信的方法的流程圖;

圖7示意性地示出了根據(jù)本申請的一個實施例的進程的身份認證裝置的結(jié)構(gòu)框圖。

具體實施方式

首先參考圖1,圖1示意性地示出了本申請的實施方式可以在其中實施的示例性應用場景。其中,在分布式環(huán)境中包含多個機器,為了方便描述,假設在分布式環(huán)境中共包含兩個機器10和20,為機器10設置專屬于該機器的認證代理11,為機器20設置專屬于該機器的認證代理21。認證代理11專門負責對機器10上運行的任一進程進行身份認證,而認證代理21專門負責對機器20上運行的任一進程進行身份認證。假設在機器10上存在3個合法進程和1個非法進程,合法進程為進程1、2和3,其中,認 證代理11啟動進程1和進程2,進程1進一步啟動進程3,即,進程1為進程3的父進程,進程3為進程1的子進程。在機器20上存在3個合法進程,分別為進程4、5和6,認證代理21啟動進程4,進程4進一步啟動進程5和進程6,即,進程4是進程5和6的父進程,而進程5和6是進程4的子進程。本領域技術人員可以理解,圖1所示的示意圖僅是本申請的實施方式可以在其中得以實現(xiàn)的一個示例。本申請實施方式的應用范圍不受到該框架任何方面的限制。例如,在分布式計算環(huán)境中除了可以包含機器10和20之外,還可以包含更多的機器,并且機器上運行的進程也不僅限于圖1所示的數(shù)量。

為使本申請的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖對本申請實施例進行詳細描述。

方法實施例

請參閱圖2,圖2示意性地示出了根據(jù)本申請的一個實施方式的進程的身份認證方法的流程圖,例如,針對機器10中的進程3,該認證方法例如包括以下步驟:

步驟201:機器10上的進程1在啟動進程3之前為進程3生成一個進程信息,并將該進程信息發(fā)送給認證代理11。

進程信息可以包括進程3的PID、進程3的可執(zhí)行文件的訪問路徑和進程3的可執(zhí)行文件的簽名值中的至少一個。

其中,進程1可以利用預設的簽名算法計算可執(zhí)行文件的簽名值。例如,如果可執(zhí)行文件的簽名值為sha1值,進程1可以利用linux系統(tǒng)的sha1sum命令來計算可執(zhí)行文件的sha1值。

例如,進程3的進程信息為:

PID:14632

可執(zhí)行文件的訪問路徑:/bin/sleep

可執(zhí)行文件的sha1值:5bbc30bb0b086b587d2a55b93d5cdbe6fb03cc3f

當然,除了進程3之外,機器10中所有被啟動進程的進程信息都會被發(fā)送到認證代理11處,也就是說,在認證代理11中,維護了機器10中所有被 啟動進程的進程信息,并且,這些進程信息是進程的啟動單元發(fā)送過來的。

步驟202:進程3被啟動后向認證代理11請求身份認證。

進程3被啟動后,可以先通過linux的domainsocket方式與認證代理進行通信,以請求身份認證。

步驟203:響應于身份認證請求,認證代理11從機器10的系統(tǒng)資源中獲取進程3的進程信息,并將獲取的進程3的進程信息與進程1發(fā)送的進程3的進程信息進行比對,如果相同,進入步驟204,如果不同,進入步驟205。

步驟204:認證代理11將進程3認定為合法進程,結(jié)束流程。

步驟205:認證代理11將進程3認定為非法進程,結(jié)束流程。

其中,認證代理11在接收到進程3的請求后,可以通過linux系統(tǒng)中的getsockopt接口以及SO_PEERCRED參數(shù),從內(nèi)核中獲取進程3的PID,然后依據(jù)進程3的PID從/proc文件系統(tǒng)獲取進程3的可執(zhí)行文件的訪問路徑,最后利用預設的簽名算法計算可執(zhí)行文件的簽名值。

如果是進程3向認證代理11請求身份認證,認證代理11從機器10的系統(tǒng)資源中獲取的必然是進程3的進程信息,并且通過比對可以發(fā)現(xiàn),獲取到的進程3的進程信息與進程1發(fā)送的進程3的進程信息必然是相同的,說明當前請求身份認證的進程3確實是由進程1啟動的,即,進程3不是偽裝的,而是一個合法的進程。

如果一個非法進程偽裝成進程3同樣向認證代理11請求身份認證,由于認證代理從機器10的系統(tǒng)資源中獲取到的是該非法進程的進行信息,而不是其偽裝的進程3的進程信息,因此通過比對可以發(fā)現(xiàn),獲取到的非法進程的進程信息與進程1發(fā)送的進程3的進程信息必然是不同的,說明當前請求身份認證的進程3并不是由進程1啟動的,而是由非法進程偽裝的。

其中,認證代理11可以將獲取到的進程3的進程信息與自身維護的所有進程信息進行逐一比對,如果與自身維護的其中一個進程相同,說明進程3是合法的,如果與自身維護的每一個進程都不同,說明進程3是非法的。

在申請的一個優(yōu)選實施方式中,為了增強認證結(jié)果的可靠性,如圖3所示,該方法例如包括以下步驟:

步驟301:機器10上的進程1在啟動進程3之前為進程3生成一個進程 信息以及一個初始密鑰,將該進程信息和該初始密鑰發(fā)送給認證代理11,并在啟動進程3后將該初始密鑰發(fā)送給進程3。

步驟302:進程3被啟動后利用初始密鑰向認證代理11請求身份認證。

步驟303:響應于身份認證請求,認證代理11從機器10的系統(tǒng)資源中獲取進程3的進程信息,并將獲取的進程3的進程信息與進程1發(fā)送的進程3的進程信息進行比對,如果相同,進入步驟304,如果不同,進入步驟305。

步驟304:認證代理11利用進程1發(fā)送的初始密鑰對進程3請求身份認證時使用的初始密鑰進行驗證,如果驗證通過,進入步驟306,如果驗證不通過,進入步驟305。

其中,上述驗證過程可以使用消息驗證碼(MAC)技術,或者,也可以使用Authenticated Encryption技術。

步驟305:認證代理11認定進程3為非法進程,結(jié)束流程。

步驟306:認證代理11認定進程3為合法進程,結(jié)束流程。

顯然,對于認證代理來說,其除了比對進程信息之外,還需要驗證初始密鑰,與只比對進程信息相比,增加對初始密鑰的驗證,可以使認證的結(jié)果更可靠,更加保證了身份認證過程的安全性。

在本申請的另一個優(yōu)選實施方式中個,可以將初始密鑰的生命周期設置為一次。也就是說,初始密鑰被進程3在身份認證時使用一次后,該初始密鑰即失效。即使非法進程獲取到了進程3的初始密鑰,由于該初始密鑰使用一次即失效,因此,該非法進程也無法再利用該初始密鑰通過認證代理11的認證。

另外,認證代理11還可以將進程1發(fā)送的進程3的進程信息與初始密鑰建立對應關系,在響應進程3的身份認證請求時,可以從自身維護的所有進程信息中查找與進程3使用的初始密鑰對應的進程信息,進而直接將獲取的進程3的進程信息與查找到的進程信息(即,進程1發(fā)送的進程3的進程信息)進行比對,而不再需要將獲取得到的進程3的進程信息與自身維護的所有進程信息一一地進行比對,更有效地節(jié)約了比對的時間,加快了身份認證的處理進度。當然,在進程3的初始密鑰失效后,認證代理11還需要解除進程信息與該初始密鑰之間的對應關系。

當然,需要說明的是,通過上述方法,除了可以對進程3進行身份認證之外,還可以對機器10上的其它進程進行身份認證。例如,可以對進程1或進程2進行身份認證,并且,由于進程1和進程2是由認證代理11啟動的,因此,認證代理11本身可以完成進程信息以及初始密鑰的生成。

可以理解的,在機器10上,被認證通過的所有合法進程在認證代理11中都有記錄,并且,按照啟動和被啟動關系,被認證通過的所有合法進程可以形成一個樹狀結(jié)構(gòu),而樹的根節(jié)點就是認證代理11。在本申請中,從樹上的某一個節(jié)點回溯到根節(jié)點的整個路徑可以作為該節(jié)點唯一的身份標識。

因此,在本申請另一個優(yōu)選實施方式中,認證代理11可以按照被啟動關系從進程3開始一直回溯到認證代理11,并將回溯的路徑作為進程3唯一的身份標識。

即,進程3的身份標識為:進程3@進程1@認證代理11;進程1的身份標識為:進程1@認證代理11;進程2的身份標識為:進程2@認證代理11。

類似的,進程5的身份標識為:進程5@進程4@認證代理21;進程6的身份標識為:進程6@進程4@認證代理21。

在本申請的另一個優(yōu)選實施方式中,如圖4所示,在將進程3認定為合法進程之后,認證代理11與進程3協(xié)商第一密鑰,其中,第一密鑰用于進程3與認證代理11之間的安全通信,以便于進程3通過安全通信從認證代理11獲取到與目標進程實現(xiàn)進程間通信的會話密鑰。

其中,秘鑰協(xié)商在現(xiàn)有技術中有多種方案,本申請可以采用現(xiàn)有技術中提供的任意中方案實現(xiàn)第一密鑰的協(xié)商。例如,采用現(xiàn)有技術中比較常用的Diffie–Hellman key exchange方案實現(xiàn)密鑰協(xié)商。

如圖5所示,假設機器1上的client進程與機器2上的server進程都通過了認證代理的認證,是合法進程,并且,client進程已經(jīng)從機器1上的agent_c中獲得了其與agent_c之間實現(xiàn)安全通信的密鑰client_key;類似的,server也已經(jīng)從機器2上的agent_s中獲得了其與agent_s之間實現(xiàn)安全通信的會話密鑰server_key。

當client進程需要與server進程實現(xiàn)進程間通信時,請參閱圖6,圖6示意性地示出了根據(jù)本申請的一個實施方式的進程間通信的方法的流程圖,該 通信方法例如包括以下步驟:

步驟601:機器1上的client進程向本地的agent_c請求與機器2上server進程通信。

步驟602:agent_c與agent_s通信,協(xié)商出一個session_key。

步驟603:agent_c產(chǎn)生一個client_ticket,agent_s產(chǎn)生一個server_ticket。

其中,client_ticket=Encrypt(session_key,client_key),即,利用client_key加密session_key。

類似的,server_ticket=Encrypt(session_key,server_key)即,利用server_key加密session_key。

步驟604:agent_s將server_ticket發(fā)送給agent_c。

步驟605:agent_c向client進程返回client_ticket和server_ticket。

步驟606:client進程持有client_key,直接利用client_key解密client_ticket,獲得session_key。

步驟607:client進程將server_ticket發(fā)送給server進程。

步驟608:server進程持有server_key,直接利用server_key解密server_ticket,獲得session_key。

步驟609:client進程與server進程之間通過session_key進行加密通信。

當然,在通過認證后,client進程具有自己唯一的身份標識client_info,類似的,server進程也具有自己唯一的身份標識server_info。在上述步驟602中,還可以通過以下方式產(chǎn)生client_ticket和server_ticket:

client_ticket=Encrypt(session_key+server_info,client_key),即,利用client_key加密session_key和server_info。

類似的,server_ticket=Encrypt(session_key+client_info,server_key)即,利用server_key加密session_key和client_info。

相應的,在步驟606中,client進程利用client_key解密client_ticket,不僅可以獲得session_key,還可以獲得server_info。而在步驟608中,server進程利用server_key解密server_ticket,也可以獲得session_key和client_info。

在步驟609之前,client可以先根據(jù)獲得的server_info確定server進程是否為自己期望通信的對象,server進程也可以根據(jù)獲得的client_info確定client 進程是否為自己期望通信的對象。

如果client進程確定server進程是自己期望通信的對象,在步驟608中,client進程就會通過session_key向server進程發(fā)送網(wǎng)絡消息,如果client進程確定server進程不是自己期望通信的對象,則不會向server進程發(fā)送網(wǎng)絡消息。當client進程向server進程發(fā)送網(wǎng)絡消息時,如果server進程確定client進程是自己期望通信的對象,就會對client進程進行響應,如果server進程確定client進程不是自己期望通信的對象,則不會對client進程進行響應。

由上述實施例可以看出,與現(xiàn)有技術相比,本申請的優(yōu)點在于:

在機器上,由本地的認證代理完成對本地進程的身份認證。在認證過程中,對于每一個本地進程,在其被啟動之前,啟動單元已經(jīng)向本地的認證代理報備了本地進程的進程信息,也就是說,凡是本地進程,其進程信息在本地的認證代理中都有記錄,所有記錄相當于構(gòu)成了一個關于本地進程的“白名單”。當有進程請求身份認證時,本地的認證代理先從本地機器的系統(tǒng)資源中獲取該進程的進程信息,并判斷該進程信息是否在“白名單”中,如果是本地進程請求身份認證,獲取的進程信息必然在“白名單”中,而如果是黑客的“非法進程”偽裝本地進程請求身份認證,獲取的進程信息必然不在“白名單”中。因此,保證了身份認證的過程的安全性。

裝置實施例

與上述一種進程的身份認證方法相對應,本申請實施例還提供了一種進程的身份認證裝置。請參閱圖7,圖7示意性地示出了根據(jù)本申請的一個實施例的進程的身份認證裝置的結(jié)構(gòu)框圖,該裝置位于分布式計算環(huán)境中的任意機器上,該裝置例如可以包括:認證代理71、啟動單元72以及進程73。下面結(jié)合該裝置的工作原理進一步介紹其內(nèi)部結(jié)構(gòu)以及連接關系。

啟動單元72,用于在啟動進程73前為進程73生成進程信息,并將所述進程信息發(fā)送給認證代理71;

進程73,用于在被啟動后向認證代理71請求身份認證;

認證代理71,用于響應于身份認證請求,從所述機器的系統(tǒng)資源中獲取進程73的進程信息,并將獲取的進程73的進程信息與啟動單元72發(fā)送的進 程73的進程信息進行比對,如果相同,將進程73認定為合法進程,如果不同,將進程73認定為非法進程。

在本申請的一個優(yōu)選實施方式中,所述進程信息包括進程的PID、進程的可執(zhí)行文件的訪問路徑和進程的可執(zhí)行文件的簽名值中的至少一個。

在本申請的另一個優(yōu)選實施方式中,啟動單元72還用于,為進程73生成初始密鑰,將所述初始密鑰發(fā)送給認證代理71,并在啟動進程73后將所述初始密鑰發(fā)送給進程73;則認證代理71還用于,在將所述進程認定為合法進程之前,所述機器上的認證代理利用所述啟動單元發(fā)送的所述進程的初始密鑰對所述進程請求身份認證時使用的初始密鑰進行驗證,如果驗證通過,將所述進程認定為合法進程,如果驗證不通過,將所述進程認定為非法進程;

則進程73具體用于,在被啟動后利用所述初始密鑰向認證代理71請求身份認證。

在本申請的另一個優(yōu)選實施方式中,所述初始密鑰的生命周期為一次。

在本申請的另一個優(yōu)選實施方式中,認證代理71還用于,按照被啟動關系從進程73開始一直回溯到認證代理71,并將回溯的路徑作為進程73唯一的身份標識。

在本申請的另一個優(yōu)選實施方式中,認證代理71還用于,在將進程73認定為合法進程之后,與進程73協(xié)商第一密鑰;其中,所述第一密鑰用于進程73與認證代理71之間的安全通信。

在本申請的另一個優(yōu)選實施方式中,進程73還用于,向認證代理71請求與目標進程通信,接收認證代理71發(fā)送的第一票據(jù),利用所述第一密鑰解密所述第一票據(jù),獲得會話密鑰,利用所述會話密鑰與所述目標進程進行通信;

認證代理71還用于,響應于與目標進程通信的請求,與所述目標進程所在機器上的認證代理協(xié)商會話密鑰,利用所述第一密鑰加密所述會話密鑰,生成第一票據(jù),將所述第一票據(jù)返回給進程73。

在本申請的另一個優(yōu)選實施方式中,認證代理71還用于,在與所述目標進程所在機器上的認證代理協(xié)商會話密鑰之后,接收所述目標進程所在機器上的認證代理發(fā)送的第二票據(jù),并將所述第二票據(jù)返回給進程73;其中,所 述第二票據(jù)是利用第二密鑰加密所述會話密鑰生成的,所述第二密鑰用于所述目標進程與所在機器上的認證代理之間的安全通信;

進程73還用于,將所述第二票據(jù)發(fā)送給所述目標進程,以便所述目標進程解密所述第二票據(jù)獲得會話密鑰。

在本申請的另一個優(yōu)選實施方式中,認證代理71還用于,從所述目標進程所在機器上的認證代理獲取所述目標進程的身份標識;

認證代理71具體用于,利用所述第一密鑰加密所述會話密鑰和所述目標進程的身份標識,生成第一票據(jù),并將所述第一票據(jù)返回給進程73;

進程73具體用于,利用所述第一密鑰解密所述第一票據(jù),獲得會話密鑰和所述目標進程的身份標識。

在本申請的另一個優(yōu)選實施方式中,進程73還用于,在利用所述會話密鑰與所述目標進程進行通信之前,根據(jù)所述目標進程的身份標識確定所述目標進程是否為期望通信的對象,如果是,后續(xù)再利用所述會話密鑰與所述目標進程進行通信。

由上述實施例可以看出,與現(xiàn)有技術相比,本申請的優(yōu)點在于:

在機器上,由本地的認證代理完成對本地進程的身份認證。在認證過程中,對于每一個本地進程,在其被啟動之前,啟動單元已經(jīng)向本地的認證代理報備了本地進程的進程信息,也就是說,凡是本地進程,其進程信息在本地的認證代理中都有記錄,所有記錄相當于構(gòu)成了一個關于本地進程的“白名單”。當有進程請求身份認證時,本地的認證代理先從本地機器的系統(tǒng)資源中獲取該進程的進程信息,并判斷該進程信息是否在“白名單”中,如果是本地進程請求身份認證,獲取的進程信息必然在“白名單”中,而如果是黑客的“非法進程”偽裝本地進程請求身份認證,獲取的進程信息必然不在“白名單”中。因此,保證了身份認證的過程的安全性。

所述領域的技術人員可以清楚地了解到,為了描述的方便和簡潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。

在本申請所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng)、裝置和 方法,可以通過其它的方式實現(xiàn)。例如,以上所描述到的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性、機械或其它的形式。

所述作為分離部件說明的單元可以是或者也可以是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。

另外,在本申請各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),可以采用軟件功能單元的形式實現(xiàn)。

需要說明的是,本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。

以上對本申請所提供的一種進程的身份注冊方法和裝置進行了詳細介紹,本文中應用了具體實施例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本申請的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本申請的限制。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1