專(zhuān)利名稱(chēng):支持可信計(jì)算的虛擬機(jī)系統(tǒng)及在其上實(shí)現(xiàn)可信計(jì)算的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及虛擬計(jì)算機(jī)系統(tǒng)和可信計(jì)算方法,特別是指一種支持可信計(jì)算的虛擬機(jī)系統(tǒng)和在該支持可信計(jì)算的虛擬機(jī)系統(tǒng)上實(shí)現(xiàn)可信計(jì)算的方法。
背景技術(shù):
在現(xiàn)有的計(jì)算機(jī)體系架構(gòu)中,一般而言,所有類(lèi)型的操作系統(tǒng)(OperatingSystem,OS)都可以在一臺(tái)計(jì)算機(jī)上運(yùn)行,因此運(yùn)行在操作系統(tǒng)上的軟件進(jìn)程原則上可以任意訪問(wèn)計(jì)算機(jī)上的硬件資源,比如讀取內(nèi)存中的數(shù)據(jù)、修改硬盤(pán)上的數(shù)據(jù)等。這種完全開(kāi)放式架構(gòu)已經(jīng)帶來(lái)了大量的信息安全問(wèn)題,包括眾所周知的病毒和網(wǎng)絡(luò)詐騙。因此,人們開(kāi)始尋找一些改進(jìn)的架構(gòu)和技術(shù),從根本上改善計(jì)算機(jī)的信息安全性。
一種典型的技術(shù)是開(kāi)發(fā)防病毒軟件,將其安裝到計(jì)算機(jī)上,用于預(yù)防和清除計(jì)算機(jī)病毒。傳統(tǒng)的防病毒軟件是根據(jù)病毒的技術(shù)思路來(lái)編寫(xiě)的,能夠識(shí)別并清除計(jì)算機(jī)病毒。但是,惡意的計(jì)算機(jī)使用人員不斷根據(jù)計(jì)算機(jī)系統(tǒng)的漏洞編寫(xiě)出新的病毒,同時(shí)老的病毒也不斷變種,這些新老病毒嚴(yán)重的破壞了計(jì)算機(jī)的使用。據(jù)不完全統(tǒng)計(jì),現(xiàn)有計(jì)算機(jī)病毒數(shù)據(jù)庫(kù)中所記錄的病毒已經(jīng)超過(guò)7萬(wàn)條,這使得防病毒軟件疲于應(yīng)付,同時(shí)也使防病毒軟件越來(lái)越大,其在運(yùn)行時(shí)使計(jì)算機(jī)系統(tǒng)資源大大浪費(fèi)。實(shí)際上,人們?cè)谑褂糜?jì)算機(jī)過(guò)程中,可以使用的可信應(yīng)用程序相對(duì)而言是很少的,能夠達(dá)到1000種已經(jīng)是非常可觀了,但是這些少數(shù)的可信應(yīng)用程序卻要防范大量計(jì)算機(jī)病毒,并且這些計(jì)算機(jī)病毒還在不斷增加,這成為計(jì)算機(jī)使用過(guò)程中迫切需要解決的重要問(wèn)題。
因此,為了從根本上解決計(jì)算機(jī)安全使用的問(wèn)題,人們提出了支持可信計(jì)算的計(jì)算機(jī)架構(gòu)系統(tǒng)。該計(jì)算機(jī)架構(gòu)系統(tǒng)的設(shè)計(jì)思想是在計(jì)算機(jī)上運(yùn)行應(yīng)用軟件之前,首先檢查應(yīng)用軟件的可信度,在計(jì)算機(jī)操作系統(tǒng)確保該應(yīng)用軟件是可信安全的應(yīng)用軟件后,計(jì)算機(jī)操作系統(tǒng)才接受并在本機(jī)上運(yùn)行該應(yīng)用軟件,否則拒絕該應(yīng)用軟件在本機(jī)上運(yùn)行。
在可信計(jì)算組織(Trusted Computing Group,TCG)提出的一種可信計(jì)算架構(gòu)中,要求在主板的LPC總線上增加一個(gè)可信平臺(tái)模塊(Trusted PlatformModule,TPM)芯片,該芯片用作檢查計(jì)算機(jī)上其他軟件模塊可信度的基礎(chǔ),其首先檢查BIOS的完整性是否被改變,然后檢查主引導(dǎo)記錄(Master BootRecord,MBR)的完整性是否被改變,接著檢查操作系統(tǒng)內(nèi)核(OperatingSystem Kernel)的完整性是否被改變,最后檢查上層應(yīng)用軟件的完整性是否改變。這種方法可以保證計(jì)算機(jī)始終運(yùn)行在某種可信狀態(tài)下,但是其在如何判斷哪些新進(jìn)程是可信進(jìn)程方面沒(méi)有提供簡(jiǎn)單可行的方法,并且由于需要修改操作系統(tǒng)的內(nèi)核,因此無(wú)法在不對(duì)現(xiàn)有操作系統(tǒng)做大的改變的情況下實(shí)現(xiàn)這種可信計(jì)算架構(gòu)。
微軟公司的中國(guó)專(zhuān)利申請(qǐng)第200410056423.1號(hào)公開(kāi)了其下一代操作系統(tǒng)中的NGSCB(Next Generation Secure Computing Base)可信計(jì)算架構(gòu),該可信計(jì)算架構(gòu)借助于可信平臺(tái)模塊和主板上的CPU和芯片組(Chipsets)隔離計(jì)算指令,將進(jìn)程分為受保護(hù)進(jìn)程和普通進(jìn)程。對(duì)于受保護(hù)進(jìn)程,其將在受保護(hù)的內(nèi)存中運(yùn)行,這樣惡意程序就很難對(duì)這些受保護(hù)的進(jìn)程進(jìn)行破壞。這種架構(gòu)適合于提高網(wǎng)絡(luò)應(yīng)用的安全性,特別是在用戶使用PC做在線交易的時(shí)候。但是這種架構(gòu)本質(zhì)上是在同一個(gè)操作系統(tǒng)內(nèi)核中構(gòu)建可信計(jì)算的區(qū)域,因此就構(gòu)架原理來(lái)說(shuō),操作系統(tǒng)本身的安全漏洞將會(huì)影響到可信計(jì)算區(qū)域的安全性,同時(shí),該架構(gòu)也需要修改操作系統(tǒng)內(nèi)核,不容易升級(jí)及更新?lián)Q代,不能適應(yīng)計(jì)算機(jī)日新月異的發(fā)展,使新的程序往往得不到保護(hù)。
為了克服上述問(wèn)題,人們考慮到采用虛擬機(jī)平臺(tái)技術(shù)。
目前典型的虛擬機(jī)架構(gòu)有英特爾的VT-i和VT-x技術(shù),其中VT-x是應(yīng)用于臺(tái)式機(jī)和X86服務(wù)器平臺(tái)上的虛擬化技術(shù),而VT-i則是應(yīng)用于安騰平臺(tái)上的虛擬化技術(shù)。此外,還有AMD的Pacifica虛擬化技術(shù)。
如圖1所示,在現(xiàn)有已經(jīng)公開(kāi)的虛擬機(jī)架構(gòu)中,重點(diǎn)是實(shí)現(xiàn)對(duì)于硬件資源的虛擬化,從而在一臺(tái)計(jì)算機(jī)上可以并行地運(yùn)行多個(gè)操作系統(tǒng),圖上表示為操作系統(tǒng)1和操作系統(tǒng)2,這里只是以兩個(gè)操作系統(tǒng)為例,其數(shù)量不限于兩個(gè)。由于這些操作系統(tǒng)相互之間不干擾,比如OS1能訪問(wèn)的內(nèi)存是OS2所不能訪問(wèn)的,這樣,這種架構(gòu)也同時(shí)實(shí)現(xiàn)了多個(gè)操作系統(tǒng)之間的隔離。
在這種虛擬機(jī)架構(gòu)中,通過(guò)在實(shí)際的硬件層面上增加一組專(zhuān)門(mén)給虛擬機(jī)監(jiān)視器(Virtual Machine Monitor,VMM)使用的指令、虛擬計(jì)算資源、存儲(chǔ)資源以及I/O資源,使得用戶操作系統(tǒng)(Guest OS)不需要任何修改就可以運(yùn)行在虛擬機(jī)架構(gòu)上,這就提供了一個(gè)非常廣的創(chuàng)新應(yīng)用范圍。其中,常用的用戶操作系統(tǒng)可以包括Windows98、Windows2000、WindowsXP、Linux、Unix、Mac等。
然而,圖1所示的虛擬機(jī)架構(gòu)并未實(shí)現(xiàn)在某個(gè)用戶操作系統(tǒng)中的進(jìn)程訪問(wèn)硬件資源時(shí)對(duì)該進(jìn)程的可信度檢查,因此,惡意進(jìn)程可以直接通過(guò)I/O指令訪問(wèn)硬件資源,甚至破壞硬件資源,例如,清除硬盤(pán)上的數(shù)據(jù)等。
并且,從計(jì)算機(jī)芯片技術(shù)的發(fā)展趨勢(shì)來(lái)看,不管是Intel、AMD,還是其他芯片供應(yīng)商,都把虛擬化當(dāng)作未來(lái)計(jì)算機(jī)發(fā)展的重要趨勢(shì),也就是說(shuō),在這種趨勢(shì)下,以后市場(chǎng)上出售的計(jì)算機(jī)幾乎都會(huì)支持虛擬機(jī)架構(gòu)。如何實(shí)現(xiàn)虛擬機(jī)平臺(tái)技術(shù)架構(gòu)上的可信計(jì)算成了業(yè)界研究的一個(gè)熱點(diǎn)。
發(fā)明內(nèi)容
本發(fā)明的目的之一在于提供一種支持可信計(jì)算的虛擬機(jī)系統(tǒng),其能從根本上提升使用計(jì)算機(jī)的信息安全性,并且不增加額外的硬件成本。
本發(fā)明的另一目的在于提供一種實(shí)現(xiàn)可信計(jì)算的方法,其能從根本上提升使用計(jì)算機(jī)的信息安全性。
根據(jù)本發(fā)明的第一方面,提供一種支持可信計(jì)算的虛擬機(jī)系統(tǒng),其具有虛擬機(jī)監(jiān)視器、硬件以及多個(gè)操作系統(tǒng)。該多個(gè)操作系統(tǒng)中包括至少一可信操作系統(tǒng)、以及至少一不可信操作系統(tǒng),該虛擬機(jī)監(jiān)視器中設(shè)置有重定向通道,該重定向通道用于將來(lái)自不可信操作系統(tǒng)的I/O指令重定向到可信操作系統(tǒng)。其中,可信操作系統(tǒng)對(duì)來(lái)自不可信操作系統(tǒng)的進(jìn)程信息進(jìn)行可信度檢查,并將經(jīng)可信度檢查確認(rèn)為可信進(jìn)程信息所對(duì)應(yīng)的、經(jīng)重定向通道傳送的來(lái)自不可信操作系統(tǒng)的I/O指令發(fā)送給硬件,由硬件執(zhí)行I/O操作。
根據(jù)本發(fā)明的第二方面,提供一種實(shí)現(xiàn)可信計(jì)算的方法,其包括如下步驟步驟一,不可信操作系統(tǒng)發(fā)出I/O指令和進(jìn)程信息;
步驟二,虛擬機(jī)監(jiān)視器截獲該I/O指令,通過(guò)重定向通道將I/O指令重定向到可信操作系統(tǒng);步驟三,可信操作系統(tǒng)對(duì)接收到的進(jìn)程信息進(jìn)行可信度檢查,并將經(jīng)可信度檢查確認(rèn)為可信進(jìn)程信息所對(duì)應(yīng)的I/O指令發(fā)送給硬件,由硬件執(zhí)行I/O操作。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是由于本發(fā)明提供利用進(jìn)程過(guò)濾模塊和可信進(jìn)程庫(kù)對(duì)來(lái)自不可信操作系統(tǒng)的進(jìn)程信息進(jìn)行可信度檢查,可以避免惡意進(jìn)程訪問(wèn)硬件資源,破壞硬件資源。并且,本發(fā)明在現(xiàn)有的硬件基礎(chǔ)上即可實(shí)現(xiàn),因此不需要花費(fèi)額外的硬件成本,簡(jiǎn)單易行。
圖1為現(xiàn)有技術(shù)虛擬機(jī)架構(gòu)的結(jié)構(gòu)示意圖;圖2為本發(fā)明支持可信計(jì)算的虛擬機(jī)系統(tǒng)的結(jié)構(gòu)示意圖;圖3為在圖2所示的虛擬機(jī)系統(tǒng)上實(shí)現(xiàn)進(jìn)程信息可信度檢查以及執(zhí)行I/O操作的流程圖;圖4為圖2中所示的共享內(nèi)存的信息存儲(chǔ)區(qū)域設(shè)計(jì)的示意圖。
具體實(shí)施例方式
下面結(jié)合附圖詳細(xì)描述本發(fā)明的支持可信計(jì)算的虛擬機(jī)系統(tǒng)和在該支持可信計(jì)算的虛擬機(jī)系統(tǒng)上實(shí)現(xiàn)可信計(jì)算的方法。
第1實(shí)施例圖2為本發(fā)明第1實(shí)施例支持可信計(jì)算的虛擬機(jī)系統(tǒng)的結(jié)構(gòu)框圖。其中,該支持可信計(jì)算的虛擬機(jī)系統(tǒng)包括硬件100、虛擬機(jī)監(jiān)視器110以及其上運(yùn)行的多個(gè)操作系統(tǒng)。為了方便描述,這里僅僅以兩個(gè)操作系統(tǒng)為例進(jìn)行說(shuō)明。在這兩個(gè)操作系統(tǒng)中,一個(gè)操作系統(tǒng)為可信操作系統(tǒng)120,另一個(gè)操作系統(tǒng)為不可信操作系統(tǒng)130。不可信操作系統(tǒng)130為用戶所控制,運(yùn)行用戶所需要執(zhí)行的應(yīng)用程序,可信操作系統(tǒng)120在該虛擬機(jī)系統(tǒng)的后臺(tái)運(yùn)行。在這個(gè)虛擬機(jī)系統(tǒng)中,始終具有可信操作系統(tǒng)120,可以為一個(gè),也可以為多個(gè)。對(duì)于不可信操作系統(tǒng)130,其數(shù)量可以根據(jù)用戶的需要而安裝在這個(gè)虛擬機(jī)系統(tǒng)中。
硬件100為現(xiàn)有計(jì)算機(jī)系統(tǒng)的硬件,其具有處理器、內(nèi)存、I/O設(shè)備、PCI設(shè)備以及其他設(shè)備。
虛擬機(jī)監(jiān)視器110運(yùn)行在上層的操作系統(tǒng)與底層的硬件之間,對(duì)所有的硬件系統(tǒng)資源的操作請(qǐng)求(如,I/O指令等)進(jìn)行監(jiān)視,同時(shí)將所有對(duì)硬件資源的操作請(qǐng)求重定向到可信操作系統(tǒng)120中。虛擬機(jī)監(jiān)視器110包括虛擬處理器、虛擬內(nèi)存、虛擬I/O設(shè)備、虛擬PCI設(shè)備、以及其他虛擬設(shè)備。該虛擬機(jī)監(jiān)視器110與現(xiàn)有的虛擬機(jī)監(jiān)視器相比,增加了重定向通道111,該重定向通道111可以將來(lái)自不可信操作系統(tǒng)130的I/O指令重定向到可信操作系統(tǒng)120。
可信操作系統(tǒng)120中包括可信進(jìn)程庫(kù)121、進(jìn)程過(guò)濾模塊122、通信協(xié)議模塊123、虛擬驅(qū)動(dòng)模塊124以及物理驅(qū)動(dòng)模塊125。該可信進(jìn)程庫(kù)121中存儲(chǔ)有現(xiàn)有的可信應(yīng)用程序的進(jìn)程信息,該進(jìn)程信息用于判斷來(lái)自不可信操作系統(tǒng)130的進(jìn)程信息是否為可信進(jìn)程信息。
該不可信操作系統(tǒng)130包括進(jìn)程監(jiān)控模塊131、通信協(xié)議模塊132、虛擬驅(qū)動(dòng)模塊133以及物理驅(qū)動(dòng)模塊134。該不可信操作系統(tǒng)130上所運(yùn)行的應(yīng)用程序?yàn)樾碌奈唇?jīng)過(guò)可信度檢查的應(yīng)用程序,這里將其假定為不可信程序。
以上的通信協(xié)議模塊124和132所采用的通信協(xié)議可以是TCP/IP協(xié)議,因?yàn)樵诎惭b系統(tǒng)的時(shí)候,可以給可信操作系統(tǒng)和不可信操作系統(tǒng)分配獨(dú)立的IP地址。
以上的通信協(xié)議模塊124和132所采用的通信協(xié)議也可以是一種簡(jiǎn)化的通信協(xié)議。在這個(gè)簡(jiǎn)化的通信協(xié)議中,各個(gè)不可信操作系統(tǒng)之間以數(shù)字序號(hào)作為標(biāo)記進(jìn)行區(qū)分,虛擬機(jī)監(jiān)視器110事先會(huì)在內(nèi)存中為操作系統(tǒng)之間的通信劃分出如圖4所示的共享內(nèi)存,該共享內(nèi)存中設(shè)置有與各個(gè)不可信操作系統(tǒng)(用戶操作系統(tǒng))對(duì)應(yīng)的內(nèi)容,即用戶操作系統(tǒng)編號(hào)、操作系統(tǒng)名稱(chēng)、操作系統(tǒng)類(lèi)型、發(fā)送數(shù)據(jù)以及返回?cái)?shù)據(jù)等信息。然后不同的操作系統(tǒng)的通信協(xié)議模塊之間通過(guò)定期查詢的機(jī)制去該共享內(nèi)存區(qū)域中讀取對(duì)方發(fā)送過(guò)來(lái)的信息。
具體而言,當(dāng)不可信操作系統(tǒng)需要給可信操作系統(tǒng)傳遞參數(shù)或者數(shù)據(jù)時(shí),通信協(xié)議模塊將這些參數(shù)或者數(shù)據(jù)存儲(chǔ)到“發(fā)送數(shù)據(jù)”區(qū)域中,可信操作系統(tǒng)中的通信模塊定期檢查該“發(fā)送數(shù)據(jù)”區(qū)域中是否有新的發(fā)送數(shù)據(jù),進(jìn)而讀取該發(fā)送數(shù)據(jù)。當(dāng)可信操作系統(tǒng)的進(jìn)程過(guò)濾模塊需要將可信度檢查結(jié)果反饋給不可信操作系統(tǒng)時(shí),其通信協(xié)議模塊將該結(jié)果存儲(chǔ)在“返回?cái)?shù)據(jù)”區(qū)域,同樣的,不可信操作系統(tǒng)的通信協(xié)議模塊也會(huì)定期檢查該“返回?cái)?shù)據(jù)”區(qū)域中是否有新的返回?cái)?shù)據(jù),進(jìn)而讀取該返回?cái)?shù)據(jù)。
在本發(fā)明的虛擬機(jī)系統(tǒng)中,當(dāng)不可信操作系統(tǒng)130執(zhí)行應(yīng)用程序時(shí),由于假定這些應(yīng)用程序?yàn)椴豢尚懦绦?,其進(jìn)程也為不可信進(jìn)程。為了保證虛擬機(jī)系統(tǒng)不受到惡意進(jìn)程的破壞,因此,在不可信進(jìn)程通過(guò)I/O指令訪問(wèn)硬件100之前,需要利用可信操作系統(tǒng)120對(duì)來(lái)自不可信操作系統(tǒng)130的進(jìn)程信息進(jìn)行可信度檢查。只有在該進(jìn)程信息經(jīng)可信操作系統(tǒng)120確認(rèn)為是可信的進(jìn)程信息時(shí),硬件100才執(zhí)行與該確認(rèn)為可信進(jìn)程的不可信進(jìn)程對(duì)應(yīng)的I/O指令,完成I/O操作。從而,可以防止惡意進(jìn)程破壞硬件100。
在現(xiàn)有的虛擬機(jī)系統(tǒng)中,虛擬機(jī)監(jiān)視器的處理器具有兩組計(jì)算指令一組是Root指令,包含有VM-Entry指令,虛擬機(jī)監(jiān)視器使用該VM-Entry指令來(lái)將控制權(quán)將給指定操作系統(tǒng);另一組是Non-Root指令,包含有VM-Exit指令,操作系統(tǒng)使用該VM-Exit指令來(lái)將控制權(quán)交回給虛擬機(jī)監(jiān)視器。同時(shí),虛擬機(jī)系統(tǒng)也為每個(gè)操作系統(tǒng)定義了對(duì)應(yīng)的虛擬機(jī)控制(Virtual-MachineControl Structure,VMCS)數(shù)據(jù)結(jié)構(gòu),VMCS用于保存和恢復(fù)該操作系統(tǒng)的狀態(tài)。虛擬機(jī)監(jiān)視器為每個(gè)VMCS在內(nèi)存中分配空間,并且通知處理器當(dāng)前需要處理的VMCS的起始地址。當(dāng)虛擬機(jī)監(jiān)視器110需要把控制權(quán)交給某個(gè)操作系統(tǒng)時(shí),其調(diào)用VM-Entry指令(該指令中包含有與該操作系統(tǒng)的VMCS對(duì)應(yīng)的信息),處理器就會(huì)從該操作系統(tǒng)對(duì)應(yīng)的VMCS中恢復(fù)該操作系統(tǒng)的狀態(tài);當(dāng)該操作系統(tǒng)需要訪問(wèn)硬件資源時(shí),就由其中的虛擬驅(qū)動(dòng)模塊調(diào)用VM-Exit指令,處理器就會(huì)把該操作系統(tǒng)的狀態(tài)保存在VMCS中,同時(shí)虛擬驅(qū)動(dòng)模塊將控制權(quán)交還給虛擬機(jī)監(jiān)視器。
為了便于進(jìn)一步理解本發(fā)明第1實(shí)施例的支持可信計(jì)算的虛擬機(jī)系統(tǒng),請(qǐng)一并參考圖2和圖3,其中,圖3為該虛擬機(jī)系統(tǒng)中執(zhí)行的I/O操作可信度檢查的流程圖。
首先,在不可信操作系統(tǒng)130中,當(dāng)應(yīng)用程序進(jìn)程開(kāi)始執(zhí)行的時(shí)候,一方面,應(yīng)用程序進(jìn)程發(fā)出硬件訪問(wèn)請(qǐng)求,此時(shí),虛擬驅(qū)動(dòng)模塊133在收到該硬件訪問(wèn)請(qǐng)求后將硬件訪問(wèn)請(qǐng)求傳遞給物理驅(qū)動(dòng)模塊134,然后,物理驅(qū)動(dòng)模塊134將該硬件訪問(wèn)請(qǐng)求轉(zhuǎn)換為I/O指令發(fā)送給虛擬機(jī)監(jiān)視器110。同時(shí),虛擬驅(qū)動(dòng)模塊133調(diào)用VM-Exit指令,從而將控制權(quán)交給虛擬機(jī)監(jiān)視器110,處理器將該不可信操作系統(tǒng)130的狀態(tài)保存在該不可信操作系統(tǒng)130所對(duì)應(yīng)的VMCS中。
另一方面,進(jìn)程監(jiān)控模塊131截獲應(yīng)用程序進(jìn)程的進(jìn)程信息,通過(guò)通信協(xié)議模塊132將該進(jìn)程信息傳送到共享內(nèi)存(未標(biāo)示)。如圖4所示,該共享內(nèi)存中設(shè)置有與不可信操作系統(tǒng)130對(duì)應(yīng)的內(nèi)容,即用戶操作系統(tǒng)編號(hào)、操作系統(tǒng)名稱(chēng)、操作系統(tǒng)類(lèi)型、發(fā)送數(shù)據(jù)以及返回?cái)?shù)據(jù)等信息。該進(jìn)程信息存儲(chǔ)在共享內(nèi)存中與不可信操作系統(tǒng)對(duì)應(yīng)的“發(fā)送數(shù)據(jù)”區(qū)域中。
其次,在虛擬機(jī)監(jiān)視器110中,當(dāng)虛擬機(jī)監(jiān)視器110截獲到該I/O指令后,其通過(guò)調(diào)用VM-Entry指令將控制權(quán)交給可信操作系統(tǒng)120,從而從VMCS中恢復(fù)可信操作系統(tǒng)120的狀態(tài)。并且,該虛擬機(jī)監(jiān)視器110通過(guò)重定向通道111,將該I/O指令發(fā)送給可信操作系統(tǒng)120的進(jìn)程控制模塊122。然后,進(jìn)程過(guò)濾模塊122從該I/O指令中提取出進(jìn)程導(dǎo)引(Guid),根據(jù)該進(jìn)程導(dǎo)引通過(guò)通信協(xié)議模塊123從共享內(nèi)存中的“發(fā)送數(shù)據(jù)”區(qū)域獲得不可信操作系統(tǒng)130所存儲(chǔ)的進(jìn)程信息。
接下來(lái),進(jìn)程過(guò)濾模塊122根據(jù)存儲(chǔ)在可信進(jìn)程庫(kù)121中的可信應(yīng)用程序進(jìn)程信息,判斷該進(jìn)程信息是否為可信進(jìn)程信息。
(1)如果該進(jìn)程信息為可信進(jìn)程信息,則,進(jìn)程過(guò)濾模塊122將I/O指令發(fā)送到物理驅(qū)動(dòng)模塊125,物理驅(qū)動(dòng)模塊125通過(guò)虛擬機(jī)監(jiān)視器110將該I/O指令傳送給硬件100,由硬件100執(zhí)行I/O操作。在存在多個(gè)不可信操作系統(tǒng)時(shí),當(dāng)來(lái)自各個(gè)不可信操作系統(tǒng)的I/O指令都需要執(zhí)行時(shí),該可信操作系統(tǒng)120需要增加一個(gè)排序機(jī)制,例如圖2中的排序處理模塊124,來(lái)對(duì)各個(gè)I/O指令進(jìn)行排序處理,然后依次發(fā)送給物理驅(qū)動(dòng)模塊125。當(dāng)然,在只有一個(gè)不可信操作系統(tǒng)時(shí),也可以通過(guò)該排序處理模塊124發(fā)送給物理驅(qū)動(dòng)模塊125。
最后,由硬件100依次執(zhí)行這些I/O指令。
(2)如果該進(jìn)程信息被判斷為不可信的進(jìn)程信息,則,進(jìn)程過(guò)濾模塊122將該進(jìn)程信息被判斷為不可信進(jìn)程信息的信息通過(guò)通信協(xié)議模塊123存儲(chǔ)到共享內(nèi)存中與不可信操作系統(tǒng)130所對(duì)應(yīng)的“返回?cái)?shù)據(jù)”區(qū)域。然后,不可信操作系統(tǒng)130通過(guò)通信協(xié)議模塊132獲得存儲(chǔ)在共享內(nèi)存的“返回?cái)?shù)據(jù)”區(qū)域中的信息,進(jìn)而取消該I/O操作。
第2實(shí)施例以上介紹的是在一臺(tái)虛擬機(jī)系統(tǒng)上實(shí)現(xiàn)可信操作系統(tǒng)120對(duì)來(lái)自不可信操作系統(tǒng)130的進(jìn)程信息進(jìn)行可信度檢查和執(zhí)行I/O操作的情況,由于通用的計(jì)算機(jī)通常具備和LAN或者WAN進(jìn)行通信的接口,本發(fā)明的虛擬機(jī)系統(tǒng)也可以實(shí)現(xiàn)對(duì)來(lái)自內(nèi)部或者外部網(wǎng)絡(luò)的不可信操作系統(tǒng)的進(jìn)程信息的可信度檢查,以及在確認(rèn)該進(jìn)程信息為可信進(jìn)程信息后執(zhí)行I/O操作。
也就是說(shuō),本發(fā)明的虛擬機(jī)系統(tǒng)可以作為一個(gè)網(wǎng)絡(luò)計(jì)算機(jī)系統(tǒng),包括本機(jī)和網(wǎng)絡(luò)計(jì)算機(jī)。其中,本機(jī)為圖2所示的虛擬機(jī)結(jié)構(gòu),其上可以根據(jù)本機(jī)用戶的需要安裝不可信操作系統(tǒng),也可以不安裝不可信操作系統(tǒng)。網(wǎng)絡(luò)計(jì)算機(jī)對(duì)于本機(jī)來(lái)說(shuō)為不可信的計(jì)算機(jī),其所安裝的操作系統(tǒng)為不可信操作系統(tǒng),這些不可信操作系統(tǒng)的相關(guān)信息同本機(jī)上的不可信操作系統(tǒng)一樣,可以存儲(chǔ)在虛擬機(jī)監(jiān)視器所劃分的共享內(nèi)存中。該不可信操作系統(tǒng)與可信操作系統(tǒng)以及虛擬機(jī)監(jiān)視器之間的通信(包括進(jìn)程信息的發(fā)送接收、I/O指令的發(fā)送、以及VM-Entry和VM-Exit指令的傳送)可以通過(guò)現(xiàn)有的通信協(xié)議,例如TCP/IP協(xié)議,來(lái)實(shí)現(xiàn)。對(duì)于本領(lǐng)域的普通技術(shù)人員而言,在本發(fā)明第1實(shí)施例的基礎(chǔ)上很容易實(shí)現(xiàn)上述的架構(gòu)。
本發(fā)明可以應(yīng)用在商用和消費(fèi)計(jì)算機(jī)上,從根本上提升計(jì)算機(jī)的抗攻擊能力。例如當(dāng)本發(fā)明的技術(shù)方案應(yīng)用于網(wǎng)吧安全管理時(shí),一方面可以杜絕木馬程序?qū)W(wǎng)吧電腦上的硬盤(pán)保護(hù)功能的破解,另一方面可以杜絕木馬程序?qū)τ脩舻挠螒驇ぬ?hào)和密碼的盜用,極大地減少用戶的經(jīng)濟(jì)損失。當(dāng)本發(fā)明的技術(shù)方案應(yīng)用于消費(fèi)計(jì)算機(jī)時(shí),可以由生產(chǎn)廠家在互聯(lián)網(wǎng)上維護(hù)一個(gè)進(jìn)程驗(yàn)證服務(wù)器,由客服人員不斷地去更新完善可信進(jìn)程庫(kù),從而幫助廣大消費(fèi)用戶抵御黑客和病毒的攻擊。
在未來(lái)的多網(wǎng)融合的時(shí)代,智能手機(jī)這類(lèi)移動(dòng)設(shè)備、數(shù)字電視機(jī)這類(lèi)家電設(shè)備會(huì)變得很普及,用戶會(huì)越來(lái)越多地通過(guò)手機(jī)或者是數(shù)字電視機(jī)進(jìn)行網(wǎng)上交易等關(guān)鍵應(yīng)用,從而給用戶帶來(lái)更多的信息安全風(fēng)險(xiǎn),因此通過(guò)應(yīng)用本發(fā)明的技術(shù)方案,能從根本上保護(hù)用戶的關(guān)鍵應(yīng)用不被不可信的病毒、木馬破壞。
上述具體實(shí)施方式
僅為詳細(xì)說(shuō)明本發(fā)明的技術(shù)方案,并不是對(duì)本發(fā)明的限制,本領(lǐng)域的技術(shù)人員在不脫離本發(fā)明技術(shù)方案的主旨的情況下所作的變化者在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種支持可信計(jì)算的虛擬機(jī)系統(tǒng),具有虛擬機(jī)監(jiān)視器(110)、硬件(100)以及多個(gè)操作系統(tǒng),其特征在于該多個(gè)操作系統(tǒng)中包括至少一可信操作系統(tǒng)(120)、以及至少一不可信操作系統(tǒng)(130);以及該虛擬機(jī)監(jiān)視器(110)中設(shè)置有重定向通道(111),該重定向通道(111)用于將來(lái)自不可信操作系統(tǒng)(130)的I/O指令重定向到可信操作系統(tǒng)(120),其中,可信操作系統(tǒng)(120)對(duì)來(lái)自不可信操作系統(tǒng)(130)的進(jìn)程信息進(jìn)行可信度檢查,并將經(jīng)可信度檢查確認(rèn)為可信進(jìn)程信息所對(duì)應(yīng)的、經(jīng)重定向通道(111)傳送的來(lái)自不可信操作系統(tǒng)(130)的I/O指令發(fā)送給硬件(100),由硬件(100)執(zhí)行I/O操作。
2.如權(quán)利要求1所述的虛擬機(jī)系統(tǒng),其特征在于不可信操作系統(tǒng)(130)包括進(jìn)程監(jiān)控模塊(131)、通信協(xié)議模塊(132)、虛擬驅(qū)動(dòng)模塊(133)和物理驅(qū)動(dòng)模塊(134),其中,進(jìn)程監(jiān)控模塊(131),用于在不可信操作系統(tǒng)(130)運(yùn)行應(yīng)用程序時(shí),截獲應(yīng)用程序的進(jìn)程信息,并將其通過(guò)通信協(xié)議模塊(132)發(fā)送給可信操作系統(tǒng)(120);虛擬驅(qū)動(dòng)模塊(133),用于獲取來(lái)自應(yīng)用程序的硬件訪問(wèn)請(qǐng)求,并通過(guò)物理驅(qū)動(dòng)模塊(134)將該請(qǐng)求轉(zhuǎn)換為I/O指令發(fā)送給虛擬機(jī)監(jiān)視器(110),以及,該可信操作系統(tǒng)(120)包括可信進(jìn)程庫(kù)(121)、進(jìn)程過(guò)濾模塊(122)、通信協(xié)議模塊(123)和物理驅(qū)動(dòng)模塊(125),其中,進(jìn)程過(guò)濾模塊(122),用于根據(jù)可信進(jìn)程庫(kù)(121)中存儲(chǔ)的可信進(jìn)程判斷通信協(xié)議模塊(123)接收的進(jìn)程信息是否為可信進(jìn)程,當(dāng)該進(jìn)程信息為可信進(jìn)程時(shí),通過(guò)物理驅(qū)動(dòng)模塊(125)將I/O指令發(fā)送給硬件(100),由硬件(100)執(zhí)行I/O操作,當(dāng)該進(jìn)程信息為不可信進(jìn)程時(shí),通過(guò)通信協(xié)議模塊(123)將該進(jìn)程信息為不可信進(jìn)程的信息發(fā)送給不可信操作系統(tǒng)(130),由不可信操作系統(tǒng)(130)取消該I/O指令。
3.如權(quán)利要求1或者2所述的虛擬機(jī)系統(tǒng),其特征在于,該可信操作系統(tǒng)(120)進(jìn)一步包括排序處理模塊(124),在來(lái)自一個(gè)或者多個(gè)不可信操作系統(tǒng)的I/O指令被執(zhí)行之前,該排序處理模塊(124)用于對(duì)I/O指令進(jìn)行排序。
4.如權(quán)利要求3所述的虛擬機(jī)系統(tǒng),其特征在于,該不可信操作系統(tǒng)(130)為網(wǎng)絡(luò)計(jì)算機(jī)上的操作系統(tǒng),其與可信操作系統(tǒng)(120)之間通過(guò)TCP/IP協(xié)議進(jìn)行通信。
5.如權(quán)利要求3所述的虛擬機(jī)系統(tǒng),其特征在于,不可信操作系統(tǒng)(130)和可信操作系統(tǒng)(120)之間通過(guò)設(shè)置共享內(nèi)存進(jìn)行通信。
6.一種在權(quán)利要求1所述的虛擬機(jī)系統(tǒng)上實(shí)現(xiàn)可信計(jì)算的方法,其包括如下步驟步驟一,不可信操作系統(tǒng)(130)發(fā)出I/O指令和進(jìn)程信息;步驟二,虛擬機(jī)監(jiān)視器(110)截獲該I/O指令,通過(guò)重定向通道(111)將I/O指令重定向到可信操作系統(tǒng)(120);步驟三,可信操作系統(tǒng)(120)對(duì)接收到的進(jìn)程信息進(jìn)行可信度檢查,并將經(jīng)可信度檢查確認(rèn)為可信進(jìn)程信息所對(duì)應(yīng)的I/O指令發(fā)送給硬件(100),由硬件(100)執(zhí)行I/O操作。
7.如權(quán)利要求6所述的方法,其特征在于進(jìn)一步包括步驟四,當(dāng)該進(jìn)程信息為不可信進(jìn)程時(shí),將該進(jìn)程信息為不可信進(jìn)程的信息發(fā)送給不可信操作系統(tǒng)(130),由不可信操作系統(tǒng)(130)取消該I/O指令。
8.如權(quán)利要求7所述的方法,其特征在于步驟一中包括進(jìn)程監(jiān)控步驟,在不可信操作系統(tǒng)(130)運(yùn)行應(yīng)用程序時(shí),截獲應(yīng)用程序的進(jìn)程信息,并將其發(fā)送給可信操作系統(tǒng)(120);以及硬件訪問(wèn)請(qǐng)求獲取步驟,用于獲取來(lái)自應(yīng)用程序的硬件訪問(wèn)請(qǐng)求,并將該硬件訪問(wèn)請(qǐng)求轉(zhuǎn)換為I/O指令發(fā)送給虛擬機(jī)監(jiān)視器(110)。
9.如權(quán)利要求6-8中任何一項(xiàng)所述的方法,其特征在于,步驟三中進(jìn)一步包括排序處理步驟,在來(lái)自一個(gè)或者多個(gè)不可信操作系統(tǒng)的I/O指令被執(zhí)行之前,對(duì)I/O指令進(jìn)行排序。
10.如權(quán)利要求9所述的方法,其特征在于,該不可信操作系統(tǒng)(130)與可信操作系統(tǒng)(120)之間通過(guò)TCP/IP協(xié)議或者共享內(nèi)存的方式進(jìn)行通信。
全文摘要
本發(fā)明涉及一種支持可信計(jì)算的虛擬機(jī)系統(tǒng)以及在該系統(tǒng)上實(shí)現(xiàn)可信計(jì)算的方法。該支持可信計(jì)算的虛擬機(jī)系統(tǒng)具有虛擬機(jī)監(jiān)視器、硬件以及多個(gè)操作系統(tǒng)。該多個(gè)操作系統(tǒng)中包括至少一可信操作系統(tǒng)、以及至少一不可信操作系統(tǒng);并且,該虛擬機(jī)監(jiān)視器中設(shè)置有重定向通道,該重定向通道用于將來(lái)自不可信操作系統(tǒng)的I/O指令重定向到可信操作系統(tǒng)。其中,可信操作系統(tǒng)對(duì)來(lái)自不可信操作系統(tǒng)的進(jìn)程信息進(jìn)行可信度檢查,并將經(jīng)可信度檢查確認(rèn)為可信進(jìn)程信息所對(duì)應(yīng)的、經(jīng)重定向通道傳送的來(lái)自不可信操作系統(tǒng)的I/O指令發(fā)送給硬件,由硬件執(zhí)行I/O操作。本發(fā)明可以應(yīng)用在商用和消費(fèi)計(jì)算機(jī)上,從根本上提升計(jì)算機(jī)的抗攻擊能力,并且不增加額外的硬件成本。
文檔編號(hào)G06F1/00GK1896903SQ200510084208
公開(kāi)日2007年1月17日 申請(qǐng)日期2005年7月15日 優(yōu)先權(quán)日2005年7月15日
發(fā)明者王晚丁 申請(qǐng)人:聯(lián)想(北京)有限公司