一種基于核間異步消息隊(duì)列與共享內(nèi)存的域間通信方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種基于核間異步消息隊(duì)列與共享內(nèi)存的域間通信方法。
【背景技術(shù)】
[0002]當(dāng)前,基于虛擬機(jī)的域間通信的典型示例是Xen及KVM(Kernel Virtual Monitor內(nèi)核虛擬監(jiān)控器),二者實(shí)現(xiàn)域間通信的主要方式是虛擬網(wǎng)絡(luò),直接通過(guò)通信雙方的虛擬網(wǎng)卡來(lái)實(shí)現(xiàn)的den還提供了一種事件通道的方式來(lái)實(shí)現(xiàn)虛擬域和VMM之間、虛擬域以及虛擬域之間的簡(jiǎn)單通信。
[0003]在現(xiàn)有技術(shù)中,基于虛擬網(wǎng)絡(luò)的域間通信要求通信雙方的角色都是用戶進(jìn)程,而沒(méi)有考慮到通信雙方可能是操作系統(tǒng)內(nèi)核或B1S。而且其中,Xen基于事件通道實(shí)現(xiàn)的虛擬域間的簡(jiǎn)單通信則是將通信消息放置于Xen的一片共享內(nèi)存中,由通信對(duì)方發(fā)送消息到這片內(nèi)存或者從這片內(nèi)存處接收消息,這片共享內(nèi)存對(duì)于通信雙方域都是可見(jiàn)的,一旦惡意攻擊者獲取了某一方信息處理域的訪問(wèn)權(quán)限,也就意味著可以獲取對(duì)這片共享內(nèi)存的操作權(quán)限,進(jìn)而危害通信雙方傳輸信息的安全可靠性。另一方面,現(xiàn)有的域間通信技術(shù)并未考慮為用戶提供靈活的用戶層通信接口。
【發(fā)明內(nèi)容】
[0004]本發(fā)明所要解決的技術(shù)問(wèn)題是針對(duì)現(xiàn)有技術(shù)中存在計(jì)算機(jī)安全產(chǎn)品中不同信息處理域之間的安全通信問(wèn)題,提供一種基于核間異步消息隊(duì)列與共享內(nèi)存的域間通信方法,其中通信雙方的角色可以不對(duì)等,可以分別是用戶進(jìn)程和操作系統(tǒng);同時(shí)基于Netlink套接字API提供了用戶層的通信接口,供用戶程序在不同信息處理域間收發(fā)消息時(shí)使用,提供了高效靈活的域間安全通信方式。
[0005]根據(jù)本發(fā)明,提供了一種基于核間異步消息隊(duì)列與共享內(nèi)存的域間通信方法,包括:
[0006]第一步驟:創(chuàng)建一對(duì)Netlink套接字,分別位于用戶空間和內(nèi)核空間,用于實(shí)現(xiàn)用戶與內(nèi)核之間的通信;
[0007]第二步驟:發(fā)送方進(jìn)程通過(guò)Netlink套接字將消息傳遞給內(nèi)核空間,操作系統(tǒng)內(nèi)核對(duì)消息進(jìn)行預(yù)處理后,調(diào)用超級(jí)調(diào)用陷入安全通信層;其中,所述安全通信層對(duì)信息處理域的操作系統(tǒng)內(nèi)核及用戶進(jìn)程都是不可見(jiàn)的;
[0008]第三步驟:安全通信層申請(qǐng)共享內(nèi)存,封裝待發(fā)送的消息并將其寫(xiě)入共享內(nèi)存,并向接收方的CPU核發(fā)送MailBox核間中斷,通知接收方對(duì)方消息已經(jīng)到來(lái);
[0009]第四步驟:接收方在核間中斷的觸發(fā)下產(chǎn)生特權(quán)自陷;
[0010]第五步驟:消息發(fā)送完成,釋放共享內(nèi)存。
[0011]優(yōu)選地,發(fā)送消息的發(fā)送方或接收消息的接收方分別處于同一臺(tái)物理機(jī)上的不同信息域。
[0012]優(yōu)選地,所述第四步驟包括下述子步驟:
[0013]第一子步驟:接收方的安全通信模塊首先進(jìn)行中斷的預(yù)處理;
[0014]第二子步驟:跳轉(zhuǎn)到操作系統(tǒng)的中斷例程,從中斷例程中取出共享內(nèi)存中的消息;
[0015]第三子步驟:判斷發(fā)送方發(fā)送過(guò)來(lái)的消息的目標(biāo)進(jìn)程是操作系統(tǒng)內(nèi)核還是用戶進(jìn)程,如果是操作系統(tǒng)內(nèi)核,則直接在中斷例程中進(jìn)行處理,并返回;否則,跳轉(zhuǎn)到第四子步驟;
[0016]第四子步驟:接收方將接收到的消息通過(guò)Netlink機(jī)制發(fā)送給用戶層,用戶層進(jìn)程讀取消息并處理。
[0017]隨著當(dāng)前信息技術(shù)的發(fā)展,信息處理域間需要頻繁地在不同層次上進(jìn)行協(xié)作,對(duì)域間通信的安全性和靈活性提出了很高的要求。本發(fā)明在信息處理域和硬件層之間直接引入了一個(gè)安全通信層,信息處理域之間的安全通信必須且只能通過(guò)這個(gè)安全通信層進(jìn)行處理,并且這個(gè)安全通信層對(duì)信息處理域是不可見(jiàn)的,因此保證了信息處理域之間通信的安全性。同時(shí),本發(fā)明還提供了供用戶層使用的消息庫(kù)接口,方便用戶的編程使用。
【附圖說(shuō)明】
[0018]結(jié)合附圖,并通過(guò)參考下面的詳細(xì)描述,將會(huì)更容易地對(duì)本發(fā)明有更完整的理解并且更容易地理解其伴隨的優(yōu)點(diǎn)和特征,其中:
[0019]圖1示意性地示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于核間異步消息隊(duì)列與共享內(nèi)存的域間通信方法的流程圖。
[0020]圖2示意性地示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于核間異步消息隊(duì)列與共享內(nèi)存的域間通信方法的示意圖。
[0021]需要說(shuō)明的是,附圖用于說(shuō)明本發(fā)明,而非限制本發(fā)明。注意,表示結(jié)構(gòu)的附圖可能并非按比例繪制。并且,附圖中,相同或者類似的元件標(biāo)有相同或者類似的標(biāo)號(hào)。
【具體實(shí)施方式】
[0022]為了使本發(fā)明的內(nèi)容更加清楚和易懂,下面結(jié)合具體實(shí)施例和附圖對(duì)本發(fā)明的內(nèi)容進(jìn)行詳細(xì)描述。
[0023]本發(fā)明結(jié)合核間異步消息隊(duì)列及共享內(nèi)存機(jī)制實(shí)現(xiàn)了一種域間安全通信方法,該方法在原有的信息處理域?qū)优c硬件層之間引入了一個(gè)安全通信層。該安全通信層對(duì)信息處理域的操作系統(tǒng)內(nèi)核及用戶進(jìn)程都是不可見(jiàn)的,信息處理域的操作系統(tǒng)內(nèi)核只有通過(guò)特定接口才能陷入到該層,因此從根本上保證了域間通信的安全;與此同時(shí),本發(fā)明還基于Netlink套接字API提供了用戶層的消息庫(kù)接口,為用戶提供了多域之間進(jìn)行安全通信的靈活易用的接口。
[0024]下面將結(jié)合附圖來(lái)描述本發(fā)明的具體優(yōu)選實(shí)施例。
[0025]圖1示意性地示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于核間異步消息隊(duì)列與共享內(nèi)存的域間通信方法的流程圖。圖2示意性地示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于核間異步消息隊(duì)列與共享內(nèi)存的域間通信方法的示意圖。
[0026]其中,域間安全通信指的是共生在同一臺(tái)物理機(jī)上的不同信息域之間的安全通
?目Ο
[0027]在圖1和圖2中,以信息處理域X與信息處理域Y之間的通信為例,闡述域間安全通信的流程(在該通信流程中,發(fā)送消息的一方稱為發(fā)送方,接收消息的一方稱為接收方)。其中,發(fā)送方和接收方分別處于同一臺(tái)物理機(jī)上的不同信息域。例如,發(fā)送方處于信息處理域X,而接收方處于信息處理域Υ;反之亦然。
[0028]如圖1和圖2所示,根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于核間異步消息隊(duì)列與共享內(nèi)存的域間通信方法包括:
[0029]第一步驟S1:創(chuàng)建一對(duì)Netlink套接字,分別位于用戶空間和內(nèi)核空間,用于實(shí)現(xiàn)用戶與內(nèi)核之間的通信;
[0030]第二步驟S2:發(fā)送方進(jìn)程通過(guò)Netlink套接字將消息傳遞給內(nèi)核空間,操作系統(tǒng)內(nèi)核對(duì)消息進(jìn)行預(yù)處理后,調(diào)用超級(jí)調(diào)用陷入安全通信層;其中,所述安全通信層對(duì)信息處理域的操作系統(tǒng)內(nèi)核及用戶進(jìn)程都是不可見(jiàn)的;
[0031]第三步驟S3:安全通信層申請(qǐng)共享內(nèi)存,封裝待發(fā)送的消息并將其寫(xiě)入共享內(nèi)存,并向接收方的CPU核發(fā)送Mai ΙΒοχ核間中斷,通知接收方對(duì)方消息已經(jīng)到來(lái);
[0032]第四步驟S4:接收方在核間中斷的觸發(fā)下產(chǎn)生特權(quán)自陷;
[0033]優(yōu)選地,第四步驟S4可包括下述子步驟:
[0034]第一子步驟:接收方的安全通信模塊首先進(jìn)行中斷的預(yù)處理;
[0035]第二子步驟:跳轉(zhuǎn)到操作系統(tǒng)的中斷例程,從中斷例程中取出共享內(nèi)存中的消息;
[0036]第三子步驟:判斷發(fā)送方發(fā)送過(guò)來(lái)的消息的目標(biāo)進(jìn)程是操作系統(tǒng)內(nèi)核還是用戶進(jìn)程,如果是操作系統(tǒng)內(nèi)核,則直接在中斷例程中進(jìn)行處理,并返回;否則,跳轉(zhuǎn)到第四子步驟;
[0037]第四子步驟:接收方將接收到的消息通過(guò)Netlink機(jī)制發(fā)送給用戶層,用戶層進(jìn)程讀取消息并處理。
[0038]第五步驟S5:消息發(fā)送完成,釋放共享內(nèi)存。
[0039]由此,本發(fā)明在信息處理域和硬件層直接引入安全通信層,安全通信層供所有信息處理域共享,并且對(duì)信息處理域是不可見(jiàn)的。信息處理域之間請(qǐng)求信息及數(shù)據(jù)的傳輸必須且只能通過(guò)安全通信層。因此保證了信息處理域之間通信的安全性。而且,本發(fā)明為不同信息處理域提供了用戶層的消息庫(kù)接口,便于用戶的編程使用。
[0040]此外,需要說(shuō)明的是,除非特別指出,否則說(shuō)明書(shū)中的術(shù)語(yǔ)“第一”、“第二”、“第三”等描述僅僅用于區(qū)分說(shuō)明書(shū)中的各個(gè)組件、元素、步驟等,而不是用于表示各個(gè)組件、元素、步驟之間的邏輯關(guān)系或者順序關(guān)系等。
[0041]可以理解的是,雖然本發(fā)明已以較佳實(shí)施例披露如上,然而上述實(shí)施例并非用以限定本發(fā)明。對(duì)于任何熟悉本領(lǐng)域的技術(shù)人員而言,在不脫離本發(fā)明技術(shù)方案范圍情況下,都可利用上述揭示的技術(shù)內(nèi)容對(duì)本發(fā)明技術(shù)方案作出許多可能的變動(dòng)和修飾,或修改為等同變化的等效實(shí)施例。因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所做的任何簡(jiǎn)單修改、等同變化及修飾,均仍屬于本發(fā)明技術(shù)方案保護(hù)的范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種基于核間異步消息隊(duì)列與共享內(nèi)存的域間通信方法,其特征在于包括: 第一步驟:創(chuàng)建一對(duì)Netlink套接字,分別位于用戶空間和內(nèi)核空間,用于實(shí)現(xiàn)用戶與內(nèi)核之間的通信; 第二步驟:發(fā)送方進(jìn)程通過(guò)Netlink套接字將消息傳遞給內(nèi)核空間,操作系統(tǒng)內(nèi)核對(duì)消息進(jìn)行預(yù)處理后,調(diào)用超級(jí)調(diào)用陷入安全通信層;其中,所述安全通信層對(duì)信息處理域的操作系統(tǒng)內(nèi)核及用戶進(jìn)程都是不可見(jiàn)的; 第三步驟:安全通信層申請(qǐng)共享內(nèi)存,封裝待發(fā)送的消息并將其寫(xiě)入共享內(nèi)存,并向接收方的CPU核發(fā)送MailBox核間中斷,通知接收方對(duì)方消息已經(jīng)到來(lái); 第四步驟:接收方在核間中斷的觸發(fā)下產(chǎn)生特權(quán)自陷; 第五步驟:消息發(fā)送完成,釋放共享內(nèi)存。2.根據(jù)權(quán)利要求1所述的基于核間異步消息隊(duì)列與共享內(nèi)存的域間通信方法,其特征在于,發(fā)送消息的發(fā)送方或接收消息的接收方分別處于同一臺(tái)物理機(jī)上的不同信息域。3.根據(jù)權(quán)利要求1或2所述的基于核間異步消息隊(duì)列與共享內(nèi)存的域間通信方法,其特征在于,第四步驟包括下述子步驟: 第一子步驟:接收方的安全通信模塊首先進(jìn)行中斷的預(yù)處理; 第二子步驟:跳轉(zhuǎn)到操作系統(tǒng)的中斷例程,從中斷例程中取出共享內(nèi)存中的消息;第三子步驟:判斷發(fā)送方發(fā)送過(guò)來(lái)的消息的目標(biāo)進(jìn)程是操作系統(tǒng)內(nèi)核還是用戶進(jìn)程,如果是操作系統(tǒng)內(nèi)核,則直接在中斷例程中進(jìn)行處理,并返回;否則,跳轉(zhuǎn)到第四子步驟;第四子步驟:接收方將接收到的消息通過(guò)Netlink機(jī)制發(fā)送給用戶層,用戶層進(jìn)程讀取消息并處理。
【專利摘要】本發(fā)明提供了一種基于核間異步消息隊(duì)列與共享內(nèi)存的域間通信方法,包括:創(chuàng)建一對(duì)Netlink套接字,分別位于用戶空間和內(nèi)核空間,用于實(shí)現(xiàn)用戶與內(nèi)核之間的通信;發(fā)送方進(jìn)程通過(guò)Netlink套接字將消息傳遞給內(nèi)核空間,操作系統(tǒng)內(nèi)核對(duì)消息進(jìn)行預(yù)處理后,調(diào)用超級(jí)調(diào)用陷入安全通信層;其中,所述安全通信層對(duì)信息處理域的操作系統(tǒng)內(nèi)核及用戶進(jìn)程都是不可見(jiàn)的;安全通信層申請(qǐng)共享內(nèi)存,封裝待發(fā)送的消息并將其寫(xiě)入共享內(nèi)存,并向接收方的CPU核發(fā)送MailBox核間中斷,通知接收方對(duì)方消息已經(jīng)到來(lái);接收方在核間中斷的觸發(fā)下產(chǎn)生特權(quán)自陷;消息發(fā)送完成,釋放共享內(nèi)存。
【IPC分類】G06F9/54
【公開(kāi)號(hào)】CN105487933
【申請(qǐng)?zhí)枴緾N201510830247
【發(fā)明人】何升, 殷紅武, 劉了, 林海南, 雷鳴
【申請(qǐng)人】無(wú)錫江南計(jì)算技術(shù)研究所
【公開(kāi)日】2016年4月13日
【申請(qǐng)日】2015年11月24日