本發(fā)明涉及操作系統(tǒng)的遠(yuǎn)程加載方法,更具體地說,涉及一種操作系統(tǒng)安全遠(yuǎn)程加載方法。
背景技術(shù):
在云計算飛速發(fā)展的今天,數(shù)據(jù)的安全問題也越來越嚴(yán)重,在使用安全軟件保證計算機(jī)安全的同時,對于操作系統(tǒng)加載的安全性保護(hù)也是一項很重要的任務(wù)。目前實現(xiàn)操作系統(tǒng)安全保護(hù)的技術(shù)已經(jīng)非常豐富,然而對于操作系統(tǒng)加載環(huán)境和操作系統(tǒng)加載過程以及遠(yuǎn)程加載的安全性保護(hù)措施仍然不夠完善。在遠(yuǎn)程加載操作系統(tǒng)的過程中,操作系統(tǒng)的安全性和完整性都難以保證,同時由于網(wǎng)絡(luò)傳輸?shù)牟话踩赡軐?dǎo)致操作系統(tǒng)在傳輸過程中被篡改,一旦操作系統(tǒng)被篡改,有可能造成客戶機(jī)被劫持等諸多問題。
目前計算機(jī)對惡意軟件所采取的方法是在系統(tǒng)中加入惡意代碼防范技術(shù),這類技術(shù)主要是通過特征碼掃描、完整性檢查、訪問控制技術(shù)等對系統(tǒng)中運行的程序代碼進(jìn)行掃描和監(jiān)控,從而阻止惡意代碼的破壞性行為。惡意代碼為了能夠長期地在系統(tǒng)中停留,保持對系統(tǒng)的控制權(quán),會利用各種隱藏技術(shù)逃避安全防范軟件的查殺,甚至一些惡意軟件使用系統(tǒng)級的rootkit技術(shù)在系統(tǒng)加載過程中,搶在安全軟件之前啟動,從而獲取操作系統(tǒng)內(nèi)核的控制權(quán),破壞操作系統(tǒng)內(nèi)核,甚至終止安全軟件的執(zhí)行,從而使操作系統(tǒng)處于不受保護(hù)的狀態(tài)。而這些惡意軟件很難被現(xiàn)有的安全防范技術(shù)所識別。
隨著惡意軟件的快速演變,惡意軟件正在將啟動路徑作為首選攻擊目標(biāo)。此類攻擊很難防范,因為惡意軟件可以禁用反惡意軟件的產(chǎn)品,徹底阻止加載反惡意軟件?,F(xiàn)有的遠(yuǎn)程加載模式,存在惡意程序攻擊的危險,無法對服務(wù)器的安全性進(jìn)行驗證,從而存在被惡意服務(wù)器攻擊的危險。
而借助安全啟動體系結(jié)構(gòu)及其建立的信任根,通過確保在加載操作系統(tǒng)之前,僅能夠執(zhí)行已簽名并獲得認(rèn)證的“已知安全”代碼和啟動加載程序,可以防止用戶在根路徑中執(zhí)行惡意代碼。在統(tǒng)一可擴(kuò)展固件接口(unifiedextensiblefirmwareinterface,uefi)協(xié)議中,安全啟動作為其一種功能,支持固件對組件的可靠性驗證,并且原始設(shè)備制造商可以通過其平臺自定義證書和管理級別來對固件進(jìn)行自定義,從而滿足客戶的需求。同時在uefi中,支持固件實施安全策略,uefi的安全啟動協(xié)議是實現(xiàn)跨平臺和固件安全的基礎(chǔ),與體系結(jié)構(gòu)無關(guān),在執(zhí)行固件映像之前,安全啟動基于公鑰基礎(chǔ)結(jié)構(gòu)(publickeyinfrastructure,pki)流程來驗證固件映像,幫助降低遭受啟動加載程序攻擊的風(fēng)險。但是,盡管在uefi啟動階段將安全啟動作為可選功能納入到操作系統(tǒng)啟動過程中,但是沒有從服務(wù)器的角度來對操作系統(tǒng)進(jìn)行完整性度量,因此仍然存在操作系統(tǒng)被篡改的危險。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)的缺點,本發(fā)明的目的在于提供一種操作系統(tǒng)安全遠(yuǎn)程加載方法,在加載過程中保證操作系統(tǒng)的安全性和完整性。
為了實現(xiàn)上述目的,本發(fā)明的技術(shù)方案為:一種操作系統(tǒng)安全遠(yuǎn)程加載方法,包括:(1)待加載計算機(jī)的合法性驗證步驟;(2)操作系統(tǒng)的遠(yuǎn)程加載步驟;(3)加載過程中,操作系統(tǒng)的完整性測量步驟。
作為本發(fā)明的一種改進(jìn),在步驟(1)中,包括:(101)在dhcp服務(wù)器上建立可信列表,所述可信列表用于保存可信任的系統(tǒng)數(shù)據(jù)、可信任的主機(jī)信息以及可信任的用戶程序信息;(102)待加載計算機(jī)啟動網(wǎng)卡驅(qū)動,并向dhcp服務(wù)器發(fā)出ip地址請求;dhcp服務(wù)器對待加載計算機(jī)進(jìn)行身份驗證,將其接收到的請求信息與所述可信列表中的信息進(jìn)行對比,如果相同則表示待加載計算機(jī)可信,繼續(xù)步驟(2),否則不可信并終止加載過程。
作為本發(fā)明的一種改進(jìn),所述ip地址請求包括:在基于tcp/ip協(xié)議的無盤啟動rom接口獲得控制權(quán)之前進(jìn)行自我測試,測試所得的信息包括主機(jī)的物理地址、cpu、內(nèi)存、網(wǎng)卡的信息,所述信息被封裝為dhcp報文,所述dhcp報文被發(fā)送到dhcp服務(wù)器。
作為本發(fā)明的一種改進(jìn),在步驟(102)中,所述的對比步驟包括:(102a)dhcp服務(wù)器讀取dhcp報文的chaddr字段,從其中讀取出待加載計算機(jī)的硬件地址;(102b)讀取dhcp報文的options字段,獲取主機(jī)的標(biāo)識符;(102c)將(102a)和(102b)中獲取到的內(nèi)容進(jìn)行hash運算,并將運算后的值與可信列表保存的值進(jìn)行對比。
作為本發(fā)明的一種改進(jìn),在步驟(2)中,包括:(201)待加載計算機(jī)的合法性驗證通過后,dhcp服務(wù)器為待加載計算機(jī)分配動態(tài)ip地址,并向待加載計算機(jī)提供tftp服務(wù)器的地址;(202)待加載計算機(jī)從tftp服務(wù)器獲取操作系統(tǒng)啟動文件并啟動加載過程,所述操作系統(tǒng)啟動文件包括grub的配置文件bootx64.conf、uefi的啟動鏡像文件bootx64.efi以及uefi啟動菜單工具splash.xpm.gz;(203)待加載計算機(jī)加載uefi驅(qū)動并與ftp服務(wù)器建立網(wǎng)絡(luò)連接,從ftp服務(wù)器獲取操作系統(tǒng)和操作系統(tǒng)的sha1值;(204)將操作系統(tǒng)的控制權(quán)交給pei內(nèi)核,所述控制權(quán)轉(zhuǎn)移首先將計算機(jī)從實模式轉(zhuǎn)換到包含模式,并且在uefi固件中尋找bfv并從bfv中找到sec鏡像,然后調(diào)用sec入口函數(shù),在sec的函數(shù)中首先初始化棧和idt和efi_sec_pei_hand_off,初始化完成后將efi_sec_pei_hand_off傳遞給pei,此時控制權(quán)移交給pei。
作為本發(fā)明的一種改進(jìn),在步驟(3)中,通過uefi固件啟動完整性測量代理,所述完整性測量的步驟具體包括:(301)啟動tpm芯片,將系統(tǒng)上的pcr清零;(302)計算crtm的sha1值,將得到的結(jié)果與pcr的值做或運算;(303)使用步驟(302)中得到的值依次與grub的sha1值、操作系統(tǒng)的sha1值進(jìn)行或運算,并將該值保存到安全度量列表中;(304)將當(dāng)前獲取的grub和操作系統(tǒng)代碼與crtm做sha1運算,并與安全度量列表中的值進(jìn)行比較,如果相同,則操作系統(tǒng)進(jìn)入啟動階段,否則中斷操作系統(tǒng)的加載。
與現(xiàn)有技術(shù)相比,本發(fā)明針對目前安全軟件無法解決操作系統(tǒng)級惡意程序的問題,能夠在操作系統(tǒng)啟動之前對操作系統(tǒng)進(jìn)行完整性度量,從而保證啟動前的環(huán)境安全;另外,針對目前遠(yuǎn)程加載無法驗證服務(wù)器的問題,本發(fā)明從uefi固件入手,在uefi固件中寫入驗證程序,在啟動過程中根據(jù)安全芯片(trustedplatformmodule,tpm)的可信根建立可信鏈,從而解決保證系統(tǒng)加載過程中的安全。
附圖說明
下面結(jié)合附圖和具體實施方式,對本發(fā)明的結(jié)構(gòu)及其有益技術(shù)效果進(jìn)行詳細(xì)說明。
圖1為本發(fā)明操作系統(tǒng)安全遠(yuǎn)程加載方法流程圖。
圖2為本發(fā)明操作系統(tǒng)安全遠(yuǎn)程加載方法所使用的硬件連接示意圖。
圖3為本發(fā)明的uefi框架執(zhí)行流程圖。
具體實施方式
為了使本發(fā)明的發(fā)明目的、技術(shù)方案及其有益技術(shù)效果更加清晰,以下結(jié)合附圖和具體實施方式,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解的是,本說明書中描述的具體實施方式僅僅是為了解釋本發(fā)明,并非為了限定本發(fā)明。
本實施例中,tftp服務(wù)器和ftp服務(wù)器使用ubuntu14.04作為操作系統(tǒng),數(shù)據(jù)庫為mysql;客戶端(待加載計算機(jī))為臺式機(jī),待加載的操作系統(tǒng)為windows7操作系統(tǒng)。
請參閱圖1、圖2和圖3,本實施例操作系統(tǒng)安全遠(yuǎn)程加載方法,包括以下步驟:
步驟1.在配置了動態(tài)主機(jī)配置協(xié)議(dynamichostconfigurationprotocol,dhcp)的服務(wù)器上建立可信列表,所述可信列表用于保存可信任的系統(tǒng)數(shù)據(jù)、可信任的主機(jī)信息以及可信任的用戶程序信息。
所述dhcp服務(wù)器是指配置了動態(tài)主機(jī)配置協(xié)議的服務(wù)器,本實例中是一臺安裝了windows2000server/advancedserver系統(tǒng)的計算機(jī),該服務(wù)器控制一段ip范圍,客戶機(jī)登錄該服務(wù)器將會自動獲取ip地址。
步驟2.待加載計算機(jī)啟動網(wǎng)卡驅(qū)動,并向dhcp服務(wù)器發(fā)出地址請求請求,所述請求內(nèi)容包括待加載主機(jī)的物理地址(mediumaccesscontrol,mac)和硬件信息,硬件信息主要包括網(wǎng)卡的mac信息。ip地址請求的方法:在基于tcp/ip協(xié)議的無盤啟動rom接口(bootrom)獲得控制權(quán)之前會進(jìn)行自我測試,測試所得信息即包括主機(jī)的物理地址、cpu、內(nèi)存、網(wǎng)卡等信息,這些信息會被封裝為dhcp報文。然后bootprom將報文發(fā)送到dhcp服務(wù)器,如果服務(wù)器收到該要求并對客戶端進(jìn)行身份驗證,驗證成功會送回bootp/dhcp回應(yīng),內(nèi)容包括客戶端的ip地址,預(yù)設(shè)網(wǎng)關(guān),及開機(jī)映像文件。否則,服務(wù)器會忽略這個要求。
步驟3.dhcp服務(wù)器對步驟2中的信息進(jìn)行驗證,驗證過程如下:
a1.讀取dhcp報文的chaddr字段,從其中讀取出客戶端的硬件地址;
a2.讀取options字段,獲取主機(jī)的標(biāo)識符;
a3.將a1和a2中獲取到的內(nèi)容進(jìn)行hash運算,并將運算后的值與步驟1中可信列表保存的值進(jìn)行對比,如果相同則表示客戶端可信,轉(zhuǎn)到步驟4,否則客戶端不可信,終止加載過程。
步驟4.dhcp服務(wù)器為待加載計算機(jī)分配動態(tài)ip地址,并向待加載計算機(jī)提供tftp服務(wù)器的地址;所述tftp服務(wù)器是指配置了簡單文本傳輸協(xié)議(trivialfiletransferprotocol,tftp)的服務(wù)器,主要用來為操作系統(tǒng)的加載提供引導(dǎo)文件。
步驟5.待加載計算機(jī)從tftp服務(wù)器獲取操作系統(tǒng)啟動文件并啟動加載過程,所述操作系統(tǒng)啟動文件包括統(tǒng)一引導(dǎo)裝入器(grandunifiedbootloader,grub)的配置文件bootx64.conf、uefi的啟動鏡像文件bootx64.efi以及uefi啟動菜單工具splash.xpm.gz。
步驟6.待加載計算機(jī)加載uefi驅(qū)動并與ftp服務(wù)器建立網(wǎng)絡(luò)連接,從ftp服務(wù)器獲取操作系統(tǒng)和操作系統(tǒng)的sha1值;
步驟7:將操作系統(tǒng)的控制權(quán)交給預(yù)置可擴(kuò)展固件接口初始化(pre-efiinitialization,pei)內(nèi)核,所述控制權(quán)轉(zhuǎn)移首先將計算機(jī)從實模式轉(zhuǎn)換到包含模式,并且在uefi固件中尋找啟動固件卷(bootfirmwarevolume,bfv)并從bfv中找到sec鏡像,然后調(diào)用安全(security,sec)入口函數(shù),在sec的函數(shù)中首先初始化棧和idt和efi_sec_pei_hand_off,初始化完成后將efi_sec_pei_hand_off傳遞給pei,此時控制權(quán)移交給pei。
步驟8:通過uefi固件啟動完整性測量代理,對步驟4的操作系統(tǒng)進(jìn)行完整性測量,所述完整性測量具體步驟如下:
a1.啟動tpm芯片,將系統(tǒng)上的pcr清零。
a2.計算crtm的sha1值,將得到的結(jié)果與平臺狀態(tài)寄存器(pcr)的值做或運算;
a3.使用a2中得到的值依次與grub的sha1值、操作系統(tǒng)的sha1值進(jìn)行或運算,并將該值保存到安全度量列表中。
a4.將當(dāng)前獲取的grub和操作系統(tǒng)代碼與可信度量根(corerootoftrustformeasurement,crtm)做sha1運算,并與安全度量列表中的值進(jìn)行比較,如果相同,則轉(zhuǎn)到步驟9,否則中斷操作系統(tǒng)的加載。
步驟9:進(jìn)入啟動階段,該階段以后與傳統(tǒng)操作系統(tǒng)啟動方式相同,本說明書不再贅述。
本發(fā)明是一種基于uefi的操作系統(tǒng)安全遠(yuǎn)程加載方法,通過uefi固件寫入的方式驗證遠(yuǎn)程操作系統(tǒng)的完整性,來保證操作系統(tǒng)的安全加載。本發(fā)明能夠保證待啟動計算機(jī)的安全性,現(xiàn)有的技術(shù)對待啟動計算機(jī)的驗證,僅僅通過其網(wǎng)卡的mac地址進(jìn)行比較,因此存在著被惡意程序攻擊的危險,本發(fā)明在dhcp服務(wù)器中建立可信列表,從而僅為列表中的計算機(jī)提供ip服務(wù);能夠保證操作系統(tǒng)加載過程中的安全性,本發(fā)明采用了tpm可信鏈技術(shù),在操作系統(tǒng)加載的過程中,對操作系統(tǒng)進(jìn)行完整性度量;能夠提高加載速度,采用uefi固件驗證技術(shù),解決現(xiàn)有bios中存在的加載速度慢的問題。
從操作系統(tǒng)的加載方式來看:對于遠(yuǎn)程加載方式的實現(xiàn)主要是通過pxe的方式來實現(xiàn),通過pxe的方式對操作系統(tǒng)的加載主要是通過加載操作系統(tǒng)鏡像,通過遠(yuǎn)程主機(jī)安裝的方法對客戶端提供服務(wù)支持;本發(fā)明從uefi的角度,通過加載uefi固件從而直接加載操作系統(tǒng),在uefi固件程序之上將操作系統(tǒng)通過流式加載到本地。從安全性角度而言:目前操作系統(tǒng)的加載僅僅是通過啟動完成后的惡意代碼檢測工具來完成對操作系統(tǒng)運行的檢測,盡管在uefi啟動階段將安全性啟動作為可選功能納入到操作系統(tǒng)啟動過程中,但是仍然沒有從服務(wù)器的角度來對操作系統(tǒng)進(jìn)行完整性度量,因此仍然存在操作系統(tǒng)被篡改的危險;;本發(fā)明主要通過遠(yuǎn)程服務(wù)器提供操作系統(tǒng)摘要,并且在加載過程中對操作系統(tǒng)進(jìn)行完整性度量,保證了操作系統(tǒng)的完整性和安全性。
根據(jù)上述說明書的揭示和教導(dǎo),本發(fā)明所屬領(lǐng)域的技術(shù)人員還可以對上述實施方式進(jìn)行適當(dāng)?shù)淖兏托薷?。因此,本發(fā)明并不局限于上面揭示和描述的具體實施方式,對本發(fā)明的一些修改和變更也應(yīng)當(dāng)落入本發(fā)明的權(quán)利要求的保護(hù)范圍內(nèi)。此外,盡管本說明書中使用了一些特定的術(shù)語,但這些術(shù)語只是為了方便說明,并不對本發(fā)明構(gòu)成任何限制。