本發(fā)明涉及信息安全技術(shù)領(lǐng)域,尤其涉及一種基于特權(quán)分離的虛擬化隔離方法。
背景技術(shù):
現(xiàn)有的xen類(lèi)型的系統(tǒng)虛擬機(jī)包括:一個(gè)虛擬機(jī)domain0和多個(gè)虛擬機(jī)domainu。虛擬機(jī)domain0提供系統(tǒng)虛擬機(jī)的管理服務(wù),具有直接訪問(wèn)硬件設(shè)備和管理其他虛擬機(jī)domainu的特權(quán)。虛擬機(jī)domainu不能直接訪問(wèn)硬件資源。xen類(lèi)型的系統(tǒng)虛擬機(jī)中,設(shè)備驅(qū)動(dòng)在虛擬機(jī)domain0中,通過(guò)虛擬機(jī)domain0中的設(shè)備驅(qū)動(dòng)來(lái)完成硬件設(shè)備的訪問(wèn)。當(dāng)虛擬機(jī)domainu與硬件設(shè)備進(jìn)行數(shù)據(jù)交換時(shí),數(shù)據(jù)經(jīng)過(guò)虛擬機(jī)domain0中的設(shè)備驅(qū)動(dòng)進(jìn)行傳輸,但由于設(shè)備驅(qū)動(dòng)中含有的漏洞比較多,數(shù)據(jù)可能被非法用戶獲取,不能保障數(shù)據(jù)安全交換。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問(wèn)題是,提供一種基于特權(quán)分離的虛擬化隔離方法,克服現(xiàn)有技術(shù)中系統(tǒng)虛擬機(jī)中domain0權(quán)限過(guò)大,虛擬機(jī)domainu與硬件設(shè)備進(jìn)行數(shù)據(jù)交換時(shí),不能保障數(shù)據(jù)安全交換。
本發(fā)明采用的技術(shù)方案是,所述基于特權(quán)分離的虛擬化隔離方法,一個(gè)xen類(lèi)型的系統(tǒng)虛擬機(jī)包括:一個(gè)虛擬機(jī)domain0和多個(gè)虛擬機(jī)domainu,所述虛擬機(jī)domain0提供對(duì)所述系統(tǒng)虛擬機(jī)的管理服務(wù);
該方法包括:
步驟一,針對(duì)任一虛擬機(jī)domainu,在所述虛擬機(jī)domainu中構(gòu)建最上層 虛擬域,最上層虛擬域包括:虛擬機(jī)domainu管理域、虛擬機(jī)domainu應(yīng)用域和獨(dú)立設(shè)備驅(qū)動(dòng)域;
步驟二,當(dāng)所述虛擬機(jī)domainu進(jìn)行數(shù)據(jù)存儲(chǔ)時(shí),將虛擬機(jī)domainu應(yīng)用域中的存儲(chǔ)數(shù)據(jù)傳輸給虛擬機(jī)domainu管理域,所述虛擬機(jī)domainu管理域?qū)λ龃鎯?chǔ)數(shù)據(jù)進(jìn)行加密處理,將加密后的所述存儲(chǔ)數(shù)據(jù)傳輸給獨(dú)立設(shè)備驅(qū)動(dòng)域,獨(dú)立設(shè)備驅(qū)動(dòng)域?qū)⒓用芎蟮乃龃鎯?chǔ)數(shù)據(jù)傳輸給外設(shè)的硬件存儲(chǔ)設(shè)備進(jìn)行存儲(chǔ)。
進(jìn)一步的,所述虛擬機(jī)domainu管理域包括:虛擬機(jī)domainu管理域內(nèi)核和所述虛擬機(jī)domainu應(yīng)用域?qū)?yīng)的安全服務(wù)。
進(jìn)一步的,所述虛擬機(jī)domainu管理域內(nèi)核包括:所述系統(tǒng)虛擬機(jī)中的微型操作系統(tǒng);
所述虛擬機(jī)domainu管理域的功能模塊由系統(tǒng)虛擬機(jī)中的虛擬機(jī)domain0通過(guò)linux系統(tǒng)內(nèi)核構(gòu)建;通過(guò)對(duì)linux系統(tǒng)內(nèi)核進(jìn)行裁剪及重新配置編譯,對(duì)虛擬機(jī)domainu管理域的功能模塊進(jìn)行替換或刪減;
虛擬機(jī)domainu管理域的功能模塊包括:文件操作模塊、塊設(shè)備前端驅(qū)動(dòng)模塊、塊設(shè)備后端驅(qū)動(dòng)模塊、數(shù)據(jù)加密模塊、接口模塊和密鑰模塊。
進(jìn)一步的,所述獨(dú)立設(shè)備驅(qū)動(dòng)域的確定過(guò)程,包括:通過(guò)將系統(tǒng)虛擬機(jī)中的獨(dú)立設(shè)備驅(qū)動(dòng)域從虛擬機(jī)domain0中分離出來(lái),放入虛擬機(jī)domainu的最上層虛擬域中。
進(jìn)一步的,所述加密處理的過(guò)程包括:由虛擬機(jī)domainu管理域中的數(shù)據(jù)加密模塊采用128位aes算法對(duì)所述存儲(chǔ)數(shù)據(jù)進(jìn)行加密運(yùn)算。
進(jìn)一步的,在步驟二中,所述將虛擬機(jī)domainu應(yīng)用域中的存儲(chǔ)數(shù)據(jù)傳輸給虛擬機(jī)domainu管理域,具體包括:
虛擬機(jī)domainu管理域加載所述塊設(shè)備前端驅(qū)動(dòng)模塊,通過(guò)所述塊設(shè)備前端驅(qū)動(dòng)模塊綁定虛擬機(jī)domainu應(yīng)用域,將虛擬機(jī)domainu應(yīng)用域中的存儲(chǔ)數(shù)據(jù)傳輸給虛擬機(jī)domainu管理域。
進(jìn)一步的,在步驟二中,將加密后的所述存儲(chǔ)數(shù)據(jù)傳輸給獨(dú)立設(shè)備驅(qū)動(dòng)域, 具體包括:
虛擬機(jī)domainu管理域加載所述塊設(shè)備后端驅(qū)動(dòng)模塊,通過(guò)所述塊設(shè)備后端驅(qū)動(dòng)模塊綁定獨(dú)立設(shè)備驅(qū)動(dòng)域,將虛擬機(jī)domainu管理域中所述加密后的存儲(chǔ)數(shù)據(jù)傳輸給所述外部的獨(dú)立設(shè)備驅(qū)動(dòng)域。
采用上述技術(shù)方案,本發(fā)明至少具有下列優(yōu)點(diǎn):
本發(fā)明所述基于特權(quán)分離的虛擬化隔離方法,通過(guò)對(duì)xen類(lèi)型的系統(tǒng)虛擬機(jī)中虛擬機(jī)domain0的特權(quán)進(jìn)行分離,將漏洞較多的設(shè)備驅(qū)動(dòng)獨(dú)立出來(lái),形成獨(dú)立驅(qū)動(dòng)域?qū)崿F(xiàn)虛擬機(jī)domainu與硬件設(shè)備之間數(shù)據(jù)的安全交換,并構(gòu)建虛擬機(jī)domainu管理域,通過(guò)虛擬機(jī)domainu管理域?qū)?shù)據(jù)進(jìn)行加密,克服現(xiàn)有技術(shù)中系統(tǒng)虛擬機(jī)中虛擬機(jī)domain0權(quán)限過(guò)大,提高了虛擬機(jī)domainu與硬件設(shè)備進(jìn)行數(shù)據(jù)交換時(shí)數(shù)據(jù)安全交換保護(hù)能力。
附圖說(shuō)明
圖1為本發(fā)明第一實(shí)施例的基于特權(quán)分離的虛擬化隔離方法流程圖;
圖2為本發(fā)明第二實(shí)施例的基于特權(quán)分離的虛擬化隔離方法虛擬機(jī)domainu最上層虛擬域構(gòu)成示意圖。
具體實(shí)施方式
為更進(jìn)一步闡述本發(fā)明為達(dá)成預(yù)定目的所采取的技術(shù)手段及功效,以下結(jié)合附圖及較佳實(shí)施例,對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明如后。
本發(fā)明第一實(shí)施例,一種基于特權(quán)分離的虛擬化隔離方法,如圖1所示,包括以下具體步驟:
步驟s101,針對(duì)任一虛擬機(jī)domainu,在虛擬機(jī)domainu中構(gòu)建最上層虛擬域。
具體的,步驟s101,包括:
如圖2,最上層虛擬域由虛擬機(jī)domainu管理域、虛擬機(jī)domainu應(yīng)用域 和獨(dú)立設(shè)備驅(qū)動(dòng)域組成。
獨(dú)立設(shè)備驅(qū)動(dòng)域通過(guò)將系統(tǒng)虛擬機(jī)xen中的idd(isolateddriverdomainain,獨(dú)立驅(qū)動(dòng)域)從虛擬機(jī)domain0中分離出來(lái)構(gòu)成。
虛擬機(jī)domainu管理域由虛擬機(jī)domainu管理域內(nèi)核和虛擬機(jī)domainu應(yīng)用域?qū)?yīng)的安全服務(wù)組成。
其中虛擬機(jī)domainu管理域內(nèi)核由系統(tǒng)虛擬機(jī)xen中minios(minioperationsystem,微型操作系統(tǒng))構(gòu)成。
虛擬機(jī)domainu管理域的功能以模塊形式存在,由系統(tǒng)虛擬機(jī)xen中的虛擬機(jī)domain0通過(guò)linux系統(tǒng)內(nèi)核構(gòu)建,并通過(guò)對(duì)linux系統(tǒng)內(nèi)核裁剪及重新配置編譯對(duì)虛擬機(jī)domainu管理域功能模塊進(jìn)行的替換或刪減,以保證虛擬機(jī)domainu管理域內(nèi)核的性能及穩(wěn)定性。
虛擬機(jī)domainu管理域功能模塊包括文件操作模塊、塊設(shè)備前端驅(qū)動(dòng)模塊、塊設(shè)備后端驅(qū)動(dòng)模塊、數(shù)據(jù)加密模塊、接口模塊、密鑰模塊等功能模塊。
步驟s102,當(dāng)虛擬機(jī)domainu進(jìn)行數(shù)據(jù)存儲(chǔ)時(shí),將虛擬機(jī)domainu應(yīng)用域中的存儲(chǔ)數(shù)據(jù)傳輸給虛擬機(jī)domainu管理域,對(duì)存儲(chǔ)數(shù)據(jù)進(jìn)行加密處理,然后再將加密后的存儲(chǔ)數(shù)據(jù)傳輸給獨(dú)立設(shè)備驅(qū)動(dòng)域,獨(dú)立設(shè)備驅(qū)動(dòng)域?qū)⒓用芎蟮拇鎯?chǔ)數(shù)據(jù)傳輸給外設(shè)的硬件存儲(chǔ)設(shè)備進(jìn)行存儲(chǔ)。
具體的,步驟s102,包括:
步驟a1,在啟動(dòng)虛擬機(jī)domainu時(shí),加載虛擬機(jī)domainu管理域內(nèi)核鏡像,虛擬機(jī)domainu管理域內(nèi)核鏡像以文件形式存儲(chǔ)在文件操作模塊中;
步驟a2,在虛擬機(jī)domainu管理域中加載塊設(shè)備前端驅(qū)動(dòng)模塊、塊設(shè)備后端驅(qū)動(dòng)模塊,塊設(shè)備前端驅(qū)動(dòng)模塊綁定虛擬機(jī)domainu應(yīng)用域,塊設(shè)備后端驅(qū)動(dòng)模塊綁定獨(dú)立設(shè)備驅(qū)動(dòng)域;
步驟a3,將虛擬機(jī)domainu應(yīng)用域中的存儲(chǔ)數(shù)據(jù)通過(guò)塊設(shè)備前端驅(qū)動(dòng)模塊傳輸給虛擬機(jī)domainu管理域;
步驟a4,在虛擬機(jī)domainu管理域中加載數(shù)據(jù)加密模塊,數(shù)據(jù)加密模塊 通過(guò)加密軟件dm_cryptapi(applicationprogramminginterface,應(yīng)用程序編程接口)實(shí)現(xiàn)128位aes(advancedencryptionstandard,高級(jí)加密標(biāo)準(zhǔn))算法對(duì)存儲(chǔ)數(shù)據(jù)進(jìn)行加密運(yùn)算;
步驟a5,在虛擬機(jī)domainu管理域中加載密鑰模塊,通過(guò)密鑰模塊的密封功能實(shí)現(xiàn)對(duì)稱密鑰的安全存儲(chǔ),并利用對(duì)稱密鑰完成存儲(chǔ)數(shù)據(jù)加密;
步驟a6,將虛擬機(jī)domainu管理域中加密后的存儲(chǔ)數(shù)據(jù)通過(guò)塊設(shè)備后端驅(qū)動(dòng)模塊傳輸?shù)姜?dú)立設(shè)備驅(qū)動(dòng)域;
步驟a7,獨(dú)立設(shè)備驅(qū)動(dòng)域?qū)⒓用芎蟮拇鎯?chǔ)數(shù)據(jù)傳輸給外設(shè)的硬件存儲(chǔ)設(shè)備進(jìn)行存儲(chǔ)。
本發(fā)明第二實(shí)施例,本實(shí)施例是在上述實(shí)施例的基礎(chǔ)上,以基于特權(quán)分離的虛擬化隔離方法為例,結(jié)合附圖2介紹一個(gè)本發(fā)明的應(yīng)用實(shí)例。
步驟s201,針對(duì)任一虛擬機(jī)domainu,在虛擬機(jī)domainu中構(gòu)建最上層虛擬域。
具體的,步驟s201,包括:
最上層虛擬域由虛擬機(jī)domainu管理域、虛擬機(jī)domainu應(yīng)用域和獨(dú)立設(shè)備驅(qū)動(dòng)域組成。
獨(dú)立設(shè)備驅(qū)動(dòng)域通過(guò)將系統(tǒng)虛擬機(jī)xen中的idd(isolateddriverdomainain,獨(dú)立驅(qū)動(dòng)域)從虛擬機(jī)domain0中分離出來(lái)構(gòu)成。
虛擬機(jī)domainu管理域由虛擬機(jī)domainu管理域內(nèi)核和虛擬機(jī)domainu應(yīng)用域?qū)?yīng)的安全服務(wù)組成。
其中虛擬機(jī)domainu管理域內(nèi)核由系統(tǒng)虛擬機(jī)xen中minios(minioperationsystem,微型操作系統(tǒng))構(gòu)成。
虛擬機(jī)domainu管理域的功能以模塊形式存在,由系統(tǒng)虛擬機(jī)xen中的虛擬機(jī)domain0通過(guò)linux系統(tǒng)內(nèi)核構(gòu)建,并通過(guò)對(duì)linux系統(tǒng)內(nèi)核裁剪及重新配置編譯對(duì)虛擬機(jī)domainu管理域功能模塊進(jìn)行的替換或刪減,以保證虛擬機(jī)domainu管理域內(nèi)核的性能及穩(wěn)定性。
虛擬機(jī)domainu管理域功能模塊包括文件操作模塊、塊設(shè)備前端驅(qū)動(dòng)模塊、塊設(shè)備后端驅(qū)動(dòng)模塊、數(shù)據(jù)加密模塊、接口模塊、密鑰模塊等功能模塊。
步驟s202,當(dāng)虛擬機(jī)domainu進(jìn)行數(shù)據(jù)存儲(chǔ)時(shí),將虛擬機(jī)domainu應(yīng)用域中的存儲(chǔ)數(shù)據(jù)傳輸給虛擬機(jī)domainu管理域,對(duì)存儲(chǔ)數(shù)據(jù)進(jìn)行加密處理,然后再將加密后的存儲(chǔ)數(shù)據(jù)傳輸給獨(dú)立設(shè)備驅(qū)動(dòng)域,獨(dú)立設(shè)備驅(qū)動(dòng)域?qū)⒓用芎蟮拇鎯?chǔ)數(shù)據(jù)傳輸給外設(shè)的硬件存儲(chǔ)設(shè)備進(jìn)行存儲(chǔ)。
具體的,步驟s202,包括:
步驟b1,在啟動(dòng)虛擬機(jī)domainu時(shí),加載虛擬機(jī)domainu管理域內(nèi)核鏡像,虛擬機(jī)domainu管理域內(nèi)核鏡像以文件形式存儲(chǔ)在文件操作模塊中;
步驟b2,在虛擬機(jī)domainu管理域中加載塊設(shè)備前端驅(qū)動(dòng)模塊、塊設(shè)備后端驅(qū)動(dòng)模塊,塊設(shè)備前端驅(qū)動(dòng)模塊綁定虛擬機(jī)domainu應(yīng)用域,塊設(shè)備后端驅(qū)動(dòng)模塊綁定獨(dú)立設(shè)備驅(qū)動(dòng)域;
步驟b3,將虛擬機(jī)domainu應(yīng)用域中的存儲(chǔ)數(shù)據(jù)通過(guò)塊設(shè)備前端驅(qū)動(dòng)模塊傳輸給虛擬機(jī)domainu管理域;
步驟b4,在虛擬機(jī)domainu管理域中加載數(shù)據(jù)加密模塊,數(shù)據(jù)加密模塊通過(guò)加密軟件dm_cryptapi(applicationprogramminginterface,應(yīng)用程序編程接口)實(shí)現(xiàn)128位aes(advancedencryptionstandard,高級(jí)加密標(biāo)準(zhǔn))算法對(duì)存儲(chǔ)數(shù)據(jù)進(jìn)行加密運(yùn)算;
步驟b5,在虛擬機(jī)domainu管理域中加載密鑰模塊,通過(guò)密鑰模塊的密封功能實(shí)現(xiàn)對(duì)稱密鑰的安全存儲(chǔ),并利用對(duì)稱密鑰完成存儲(chǔ)數(shù)據(jù)加密;
步驟b6,將虛擬機(jī)domainu管理域中加密后的存儲(chǔ)數(shù)據(jù)通過(guò)塊設(shè)備后端驅(qū)動(dòng)模塊傳輸?shù)姜?dú)立設(shè)備驅(qū)動(dòng)域;
步驟b7,獨(dú)立設(shè)備驅(qū)動(dòng)域?qū)⒓用芎蟮拇鎯?chǔ)數(shù)據(jù)傳輸給外設(shè)的硬件存儲(chǔ)設(shè)備進(jìn)行存儲(chǔ)。
例如:虛擬機(jī)domainu進(jìn)行數(shù)據(jù)存儲(chǔ)的具體流程如下:
步驟c1,在啟動(dòng)虛擬機(jī)domainu時(shí),加載虛擬機(jī)domainu管理域內(nèi)核鏡 像,虛擬機(jī)domainu管理域內(nèi)核鏡像以文件形式存儲(chǔ)在文件操作模塊中;
步驟c2,在虛擬機(jī)domainu管理域中加載塊設(shè)備前端驅(qū)動(dòng)模塊、塊設(shè)備后端驅(qū)動(dòng)模塊,塊設(shè)備前端驅(qū)動(dòng)模塊綁定虛擬機(jī)domainu應(yīng)用域,塊設(shè)備后端驅(qū)動(dòng)模塊綁定獨(dú)立設(shè)備驅(qū)動(dòng)域;
步驟c3,在虛擬機(jī)domainu管理域中,加載塊設(shè)備前端驅(qū)動(dòng)模塊與塊設(shè)備后端驅(qū)動(dòng)模塊,并對(duì)塊設(shè)備前端驅(qū)動(dòng)模塊與塊設(shè)備后端驅(qū)動(dòng)模塊進(jìn)行初始化,建立塊設(shè)備前端驅(qū)動(dòng)與塊設(shè)備后端驅(qū)動(dòng)的通道;
例如:
加載前端驅(qū)動(dòng)模塊:/drivers/xen/blkfront;
加載后端驅(qū)動(dòng)模塊:/drivers/xen/blkback;
調(diào)用函數(shù)static_int_initblkif_init(void)進(jìn)行塊設(shè)備后端的初始化;
調(diào)用函數(shù)blkfront_probe進(jìn)行塊設(shè)備前端的初始化;
調(diào)用函數(shù)talk_to_backend建立塊設(shè)備前端驅(qū)動(dòng)與塊設(shè)備后端驅(qū)動(dòng)的通道;
步驟c3,虛擬機(jī)domainu應(yīng)用域中的存儲(chǔ)數(shù)據(jù)通過(guò)塊設(shè)備前端驅(qū)動(dòng)模塊傳輸給虛擬機(jī)domainu管理域;
步驟c4,在虛擬機(jī)domainu管理域中,加載數(shù)據(jù)加密模塊;
具體的,步驟c4,包括:
步驟d1,加載加密軟件dm-crypt;
例如:通過(guò)命令#modprobedm-crypt加載加密軟件dm-crypt。
步驟d2,創(chuàng)建一個(gè)虛擬磁盤(pán)映像,作為對(duì)獨(dú)立設(shè)備驅(qū)動(dòng)域的回傳設(shè)備。
例如:通過(guò)命令#ddif=/dev/zeroof=/crypt.imgbs=1mcount=128創(chuàng)建一個(gè)128m的虛擬映像磁盤(pán)crypt.img;
通過(guò)命令#losetup/dev/loop1/crypt.img將crypt.img與虛擬塊設(shè)備/dev/loop1綁定在一起。
步驟c5,將加密軟件dm_crypt的回傳設(shè)備與塊設(shè)備的前后端驅(qū)動(dòng)i/o環(huán)隊(duì)列綁定;
步驟c6,加密軟件dm_crypt通過(guò)128位aes(advancedencryptionstandard,高級(jí)加密標(biāo)準(zhǔn))算法對(duì)存儲(chǔ)數(shù)據(jù)進(jìn)行加密運(yùn)算;
步驟c7,在虛擬機(jī)domainu管理域中加載密鑰模塊,利用密鑰模塊的密封功能實(shí)現(xiàn)對(duì)稱密鑰的安全存儲(chǔ),并利用對(duì)稱密鑰對(duì)存數(shù)數(shù)據(jù)加密;
步驟c8,將虛擬機(jī)domainu管理域中加密后的存儲(chǔ)數(shù)據(jù)通過(guò)塊設(shè)備后端驅(qū)動(dòng)模塊傳送到獨(dú)立設(shè)備驅(qū)動(dòng)域;
步驟c9,獨(dú)立設(shè)備驅(qū)動(dòng)域?qū)⒓用芎蟮拇鎯?chǔ)數(shù)據(jù)傳輸給外設(shè)的硬件存儲(chǔ)設(shè)備進(jìn)行存儲(chǔ)。
通過(guò)具體實(shí)施方式的說(shuō)明,應(yīng)當(dāng)可對(duì)本發(fā)明為達(dá)成預(yù)定目的所采取的技術(shù)手段及功效得以更加深入且具體的了解,然而所附圖示僅是提供參考與說(shuō)明之用,并非用來(lái)對(duì)本發(fā)明加以限制。