專利名稱:信息流跟蹤和保護的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實施例涉及跟蹤信息流和保護系統(tǒng)之內(nèi)以及跨網(wǎng)絡(luò)的流中信息的領(lǐng)域。
背景技術(shù):
典型的終端用戶計算環(huán)境(包括企業(yè)中、中小型公司中、及消費者家中的那些)在尺寸和復(fù)雜度上都在增加。給定這些系統(tǒng)增加的能力,將“標準的”商業(yè)現(xiàn)貨供應(yīng)(COTS)計算機系統(tǒng)用在關(guān)鍵的基礎(chǔ)設(shè)施中或用作訪問敏感數(shù)據(jù)的客戶端是平常的。由于操作系統(tǒng)和客戶端應(yīng)用程序變得更加復(fù)雜,惡意軟件(例如,間諜軟件和根套件(rootkit))得到了新機會來危害系統(tǒng)及在一些情況下跨網(wǎng)絡(luò)快速傳播。信息盜竊和濫用的事件在增長也就不驚奇了。很多這些信息盜竊由不能簡單信任的操作系統(tǒng)產(chǎn)生。惡意代碼能夠輕易地“鉤”入操作系統(tǒng)的內(nèi)核中,導(dǎo)致了對系統(tǒng)上的所有應(yīng)用程序進行主管(host)的高特權(quán)和惡意意圖環(huán)境。結(jié)果,惡意攻擊不再是隨機的,而是經(jīng)常特定地意在數(shù)據(jù)盜竊。支配對敏感信息和 /或限制的資源進行訪問的策略經(jīng)常受到危害,因為使用其中存有惡意軟件(malware)的相同環(huán)境規(guī)定和實施它們。最后,從運行的觀點,對于疏忽泄漏的機密數(shù)據(jù)沒有可見性,并且存在很少工具來幫助管理員實施機密信息上的限制及安全性和隱私策略。
發(fā)明內(nèi)容
本發(fā)明提供了一種用于信息流跟蹤和保護的方法,包括從駐留在本地計算設(shè)備中的不可信源軟件環(huán)境中的應(yīng)用程序生成數(shù)據(jù)保護策略,以支配對在所述本地計算設(shè)備中的多個存儲器頁的第一存儲器頁中存儲的被保護的數(shù)據(jù)的訪問;將所述數(shù)據(jù)保護策略映射到由所述本地計算設(shè)備上的信息流跟蹤和保護(IFTP)邏輯管理的、可實施的系統(tǒng)級別數(shù)據(jù)保護策略;標志出包含所述被保護的數(shù)據(jù)的所述第一存儲器頁;以及使用所述IFTP邏輯和所述可實施的系統(tǒng)級別數(shù)據(jù)保護策略,為包含所述被保護的數(shù)據(jù)的所述第一存儲器頁實施所生成的數(shù)據(jù)保護策略。本發(fā)明還提供了一種用于信息流跟蹤和保護的系統(tǒng),包括網(wǎng)絡(luò);耦合到所述網(wǎng)絡(luò)的本地計算設(shè)備,所述本地計算設(shè)備從駐留在所述本地計算設(shè)備中的不可信源虛擬機中的應(yīng)用程序生成數(shù)據(jù)保護策略,以支配對在所述本地計算設(shè)備中的多個存儲器頁的第一存儲器頁中存儲的被保護的數(shù)據(jù)的訪問;將所述數(shù)據(jù)保護策略映射到由信息流跟蹤和保護 (IFTP)邏輯管理的、可實施的系統(tǒng)級別數(shù)據(jù)保護策略;標志出包含所述被保護的數(shù)據(jù)的所述第一存儲器頁;以及使用所述IFTP邏輯和所述可實施的系統(tǒng)級別數(shù)據(jù)保護策略,為包含所述被保護的數(shù)據(jù)的所述第一存儲器頁實施所生成的數(shù)據(jù)保護策略。
作為示例而不是限定圖示了本發(fā)明的實施例,在附圖的視圖中,相同的附圖標記指的是類似的元件。
圖1是高級別框圖,其圖示了跟蹤和保護信息流的、計算系統(tǒng)的一實施例的選擇的方面。圖2圖示了被利用以跟蹤和保護信息流的計算機系統(tǒng)的特定軟件、固件、和硬件組件的一實施例。圖3是規(guī)定及映射數(shù)據(jù)保護策略的處理的一實施例的流程圖。圖4圖示了轉(zhuǎn)換及映射輸入數(shù)據(jù)保護策略的處理的一實施例的流程圖。圖5圖示了在本地機器上實施數(shù)據(jù)安全性策略的處理的一實施例的流程圖。圖6圖示了在系統(tǒng)中的可信協(xié)處理器中的硬件之內(nèi)實現(xiàn)的iftp邏輯的一實施例。
具體實施例方式實施例一般針對用于跟蹤和保護信息流的系統(tǒng)、方法、和裝置。圖1是高級別框圖,其圖示了跟蹤和保護信息流的、計算系統(tǒng)的一實施例的選擇的方面。示出了計算機系統(tǒng)100。該計算機系統(tǒng)可以是桌上型計算機、服務(wù)器、工作站、膝上型計算機、手持計算機、電視機頂盒、媒體中心、游戲控制臺、集成系統(tǒng)(例如,在車中)、或其它類型的計算機系統(tǒng)。在幾個實施例中,計算機系統(tǒng)100包括系統(tǒng)板102(即,母板),以將幾個組件耦合在一起。例如,系統(tǒng)板102可通過使用布線引線(wire trace)和特定接口而能夠耦合組件。系統(tǒng)板102可將功率遞送到耦合的組件。此外,系統(tǒng)板可提供通信接口, 以允許多個組件彼此通信。在耦合到系統(tǒng)板102的組件中有一個或多個中央處理單元(cpu)。雖然在許多實施例中潛在地有多個cpu,但是在圖1示出的實施例中為了清楚示出僅一個cpu,cpu 104。 cpu 104可以是Intel 公司的cpu或另一品牌的cpu。cpu 104包括一個或多個核。在示出的實施例中,cpu 104包括四個核核106、核108、核110、以及核112。在其它實施例中, cpu 104可具有比圖1中示出的四個核更多或更少的多個核。在許多實施例中,每個核(例如,核106)包括內(nèi)部功能塊,例如,一個或多個執(zhí)行單元、退出單元(retirement unit)、一組通用及特定寄存器等。如果圖1中示出的核是多線程的或超線程的,則每個硬件線程同樣可認為是核。cpu 104也可包括一個或多個高速緩存,例如高速緩存114。在沒有示出的許多實施例中,實現(xiàn)了不同于高速緩存114的額外高速緩存,其中在每個核中的執(zhí)行單元與存儲器之間存在高速緩存的多個級別。在不同實施例中,可以不同方式分派高速緩存。高速緩存 114可以是不同實施例中的許多不同尺寸之一。例如,高速緩存114可以是8兆字節(jié)(mb) 的高速緩存、16mb的高速緩存等。此外,在不同實施例中,高速緩存可以是直接映射高速緩存,全部相聯(lián)高速緩存,多路組相聯(lián)高速緩存,或帶另一種映射類型的高速緩存。每個高速緩存可包括在各自cpu中所有核之間共享的一個大部分,或者可被劃分為幾個分離的功能片(例如,每個核一片)。每個高速緩存也可包括所有核之中共享的一個部分和作為每核分離功能片的幾個其它部分。在許多實施例中,cpu 104通信地耦合到系統(tǒng)存儲器116。系統(tǒng)存儲器116可包括 物理地連接到系統(tǒng)板102或作為直插存儲器模塊一部分連接到基底的幾個存儲器設(shè)備。在許多實施例中,給定的存儲器設(shè)備的基本結(jié)構(gòu)可以是動態(tài)隨機存取存儲器(dram)的基本結(jié)構(gòu)。在其它實施例中,可以使用諸如非易失性存儲器或相變存儲器的存儲器。(一個或多個)混合存儲器116設(shè)備通過高速(HS)輸入/輸出鏈接118(8卩,互聯(lián)、總線等)通信地耦合到CPU 104。在不同的實施例中,CPU 104和系統(tǒng)存儲器116可通過接口通信。例如,全部緩沖的雙直插存儲器模塊(DIMM)接口、可縮放存儲器接口(SMI)、 專有的點對點接口(例如,Intel 的QuickPath技術(shù))、或者另一種這樣的高速接口。在許多實施例中,鏈接118可包括一條或多條光布線、金屬布線、或能夠傳輸數(shù)據(jù)、地址、控制、和/或時鐘信息的其它布線(即,線路)。在許多實施例中,鏈接是包括多條通道的高速串行接口,每條通道都在CPU 104和系統(tǒng)存儲器116之間傳輸數(shù)據(jù)。在許多實施例中,CPU 104包括存儲器控制器120,以轉(zhuǎn)化跨HS鏈接118發(fā)送和接收的信息。存儲器控制器120可耦合到直接訪問鏈接118的高速I/O接口(未畫出)。在未示出的其它實施例中,存儲器控制器120可以是分立的設(shè)備,其直接耦合到系統(tǒng)板102或潛在地集成在耦合到系統(tǒng)板102的另一個設(shè)備(例如,存儲器控制器集線器)之內(nèi)。CPU 104可通過集成的I/O接口 IM耦合到輸入/輸出(I/O)集線器復(fù)合器122。 I/O集線器復(fù)合器122在一個或多個I/O設(shè)備和CPU 104之間提供通信接口。例如,I/O集線器復(fù)合器122可鏈接到將計算機系統(tǒng)100耦合到外部網(wǎng)絡(luò)1 (即,計算機系統(tǒng)100外部的網(wǎng)絡(luò))的網(wǎng)絡(luò)I/O接口 126。外部網(wǎng)絡(luò)128的示例可包括家庭網(wǎng)絡(luò),公司之內(nèi)的本地內(nèi)聯(lián)網(wǎng),跨廣域網(wǎng)拓撲的分散的分布式網(wǎng)絡(luò),或因特網(wǎng)。I/O集線器復(fù)合器122也可具有一個或多個集成的主管控制器,以控制到給定通信協(xié)議鏈接(例如,通用串行總線(USB)、IEEE 1394火線、SCSI (小型計算機系統(tǒng)接口)等)的通信。在許多實施例中,可信協(xié)處理器130集成到I/O集線器復(fù)合器中。在一些實施例中,可信協(xié)處理器130包括來自Intel 公司的可信平臺模塊或另一種類型的密碼處理器, 其設(shè)計用于使用密碼密鑰、安全本地存儲、遠程認證、及其它硬件安全性機制的信息保護的硬件級別安全性實施。雖然在許多實施例中,可信協(xié)處理器130集成到I/O集線器復(fù)合器中,但是在未示出的其它實施例中,可信協(xié)處理器130可集成到計算機系統(tǒng)100中的其它電路中,或者作為孤立芯片來實現(xiàn)。此外,信息流跟蹤和保護(IFTP) 132邏輯(經(jīng)由管理程序200和測量的軟件環(huán)境 202來描述)可作為硬件可信協(xié)處理器之內(nèi)的電路,在不同實施例中以軟件、固件、或任何這些類型邏輯的組合來實現(xiàn)。圖2中描述了 IFTP邏輯的詳細實現(xiàn)。圖2圖示了被利用以跟蹤(即,追蹤)和保護信息流的、計算機系統(tǒng)的特定軟件、 固件、和硬件組件的一實施例。計算機系統(tǒng)可包括某硬件,例如,圖1中討論的硬件的某些實現(xiàn)。在許多實施例中,計算機系統(tǒng)包括管理程序。管理程序(也可稱為虛擬機監(jiān)視器(VMM))允許多個操作環(huán)境在計算機系統(tǒng)上并發(fā)地運行。每個操作環(huán)境(例如,操作系統(tǒng)(OS))可稱為來賓OS。管理程序可授權(quán)每個來賓OS使用某些平臺資源。例如,可為每個來賓OS分配用于使用的系統(tǒng)存儲器的某部分及使用其它硬件組件。在許多實施例中,以循環(huán)(round-robin)或其它時間共享的方式,對于某時間片給予來賓OS對計算機系統(tǒng)資源的控制,然后給予另一個來賓OS控制,等等。通過管理程序來管理對計算機系統(tǒng)資源控制的傳遞。在許多實施例中,管理程序可以軟件來實現(xiàn)。在低級別保護模式中,管理程序直接運行在硬件之上。例如,管理程序直接與CPU 104、可信協(xié)處理器130、及網(wǎng)絡(luò)I/O硬件接口126 一起工作。在圖2中示出的實施例中,有兩個來賓軟件環(huán)境/OS。在未示出的其它實施例中, 可有額外的來賓軟件環(huán)境。特別地,在圖2中,測量的軟件環(huán)境202和不可信軟件環(huán)境204 都在計算機系統(tǒng)中運行,通過由管理程序200確定的時間分配來潛在地共享硬件的時間片。在許多實施例中,雖然這些軟件環(huán)境正運行在管理程序200之上,但它們可能未察覺管理程序的存在。由于實現(xiàn)的安全性測量在啟動時就進行,并且潛在地在操作期間的其它時間進行,因而測量的軟件環(huán)境202被這樣稱呼。測量的軟件環(huán)境202可在啟動時就核查它的完整性??赏ㄟ^使用在可信協(xié)處理器130中實現(xiàn)的硬件安全性協(xié)議,來執(zhí)行內(nèi)核和其它核心 OS結(jié)構(gòu)的實際測量和認證(例如,通過使用哈希表來使用公共加密密鑰和私有加密密鑰, 以校驗測量環(huán)境的當前映像匹配現(xiàn)有已知的干凈映像版本)。這種測量不但可在計算機系統(tǒng)啟動期間執(zhí)行,而且可在自上次測量起、計算機系統(tǒng)已經(jīng)運行某段時間后固定的間隔時間處潛在地執(zhí)行。因而,在任何給定時間,測量的環(huán)境是沒有任何惡意代碼入侵的、已知的安全操作環(huán)境??筛静粶y量或認證不可信軟件環(huán)境206,以及更確切地說,很少運行或不運行安全性測量。這種環(huán)境對于在它的環(huán)境之內(nèi)運行的任何軟件應(yīng)用程序都造成安全性風(fēng)險,因為惡意代碼潛在地能夠包含(comprising)信息完整性。這兩種軟件環(huán)境(測量的環(huán)境202和不可信環(huán)境204)運行于管理程序200之上, 并與管理程序200通信接觸。特別地,存在處理這兩種環(huán)境與管理程序200之間的通信握手的應(yīng)用程序接口。存儲器標簽接口 206允許通信接觸發(fā)生在測量的軟件環(huán)境202和管理程序200之間,而應(yīng)用程序標簽接口 208允許通信接觸發(fā)生在不可信軟件環(huán)境204和管理程序200之間。這些應(yīng)用程序接口可包括管理程序200和軟件環(huán)境能利用的調(diào)用/指令的集合(即,計算機平臺擴展、指令集等)。在許多實施例中,當網(wǎng)絡(luò)分組從網(wǎng)絡(luò)128、通過硬件網(wǎng)絡(luò)I/O接口 1 抵達時,該分組抵達至測量的軟件環(huán)境202中的輸入標簽校驗/生成模塊210。輸入標簽?zāi)K210生成基于分組內(nèi)容的信息標簽。這個模塊是專用的分組解析器模塊,其能夠基于匹配分組準則生成獨特的標簽。在許多實施例中,輸入分組包括正跨網(wǎng)絡(luò)1 從一個計算機系統(tǒng)傳遞到另一個的一些數(shù)據(jù)。輸入標簽?zāi)K210能夠識別該數(shù)據(jù)并從分組中解析出數(shù)據(jù),用于在本地計算機系統(tǒng)(即,圖1和圖2中示出的計算機系統(tǒng))中使用和存儲。輸入標簽?zāi)K210 還生成獨特的標簽,這些標簽然后在計算機系統(tǒng)上本地使用,以跟蹤已從輸入網(wǎng)絡(luò)分組中解析出的、識別的數(shù)據(jù)的使用。在一些實施例中,網(wǎng)絡(luò)分組抵達時不但帶著數(shù)據(jù),而且?guī)е郊拥臉撕?,以將用于分組中數(shù)據(jù)的安全性通報接收的計算機系統(tǒng)。例如,一個分組可抵達且沒有適當?shù)?in place)安全性,依賴于本地系統(tǒng)中需要的安全性級別,這可引起輸入標簽?zāi)K210對于分組中抵達的數(shù)據(jù)生成普通的基本級別安全性標簽。另一方面,另一個分組可帶著附加的標簽抵達,該標簽校驗了當處理該分組中數(shù)據(jù)時應(yīng)該使用最高安全性。在這種情況下,輸入標簽?zāi)K210可為分組中抵達的數(shù)據(jù)生成安全性標簽的不同集合。所生成的安全性標簽的這個集合可能需要額外的安全性測量用于任何本地實體以便能夠訪問數(shù)據(jù),或者極端地,可能不允許本地的不可信軟件環(huán)境204以任何方式訪問分組中數(shù)據(jù)。
輸入標簽?zāi)K210可向標簽策略模塊212傳遞附加到輸入分組的標簽信息。標簽策略模塊212校驗從附加到輸入分組的標簽接收的標簽策略或通過輸入標簽?zāi)K210生成的標簽策略是否正確執(zhí)行。例如,一個策略可決定用于分組中輸入數(shù)據(jù)存儲的本地存儲器頁是否可被復(fù)制。在更限制的標簽安全性設(shè)置中,標簽策略模塊212可通知輸入標簽?zāi)K 210生成標簽,以不允許對用于數(shù)據(jù)的、利用的存儲器頁進行任何復(fù)制。然后,這種生成的限制標簽從輸入標簽?zāi)K210發(fā)送到管理程序200中的存儲器跟蹤模塊214。存儲器跟蹤模塊214提供存儲器跟蹤和實施功能性作為CPU 104自身的擴展。存儲器跟蹤模塊214管理用于物理存儲器的標簽數(shù)據(jù)庫216。由存儲器保護/管理模塊218 直接訪問標簽數(shù)據(jù)庫216。在許多實施例中,系統(tǒng)存儲器116被劃分為多個段。被劃分的系統(tǒng)存儲器116允許每段分離的安全性保護。在許多實施例中,段的尺寸是存儲器物理頁的尺寸(例如,4千字節(jié)),在其它實施例中,存儲器段的尺寸可小于或大于存儲器頁的尺寸。 在許多實施例中,標簽數(shù)據(jù)庫216對每個段可包括至少一個標簽。在其它實施例中,為了最小化標簽數(shù)據(jù)庫的尺寸,僅具有在保護的基準量之上的保護的段包括詳述該添加的保護的標簽。對于利用基準保護的其它段,如由標簽策略模塊212所確定的,可沒有標簽,及更確切地說,只是缺少標簽(例如,空指針)。存儲器段保護級別的變化可由標簽策略模塊來確定。例如,在簡單的解決方案中, 可僅有兩個保護級別(例如,段被保護或不被保護)。在更復(fù)雜的解決方案中,可有許多保護級別,并且單個段的保護級別由存儲在給定段中數(shù)據(jù)的敏感度來確定。稍有些復(fù)雜的解決方案將有三個保護級別級別0是對段讀/寫訪問,級別1是對段的只讀訪問,級別2是不能訪問段。更加復(fù)雜的保護方案將是對每段具有這三種訪問可能性,但具有幾個用戶訪問權(quán)限級別,其可以相應(yīng)于或不相應(yīng)于訪問可能性。例如,未知用戶,登錄用戶,登錄管理員等可以是用戶級別的一些可能。未知用戶可以不能訪問任何段,登錄用戶可具有對某些段的讀/寫訪問以及對其它段只讀訪問,而登錄管理員可具有對所有段的全部訪問。在不同的實施例中,輸入標簽?zāi)K210可接收不帶標簽的分組、帶特定于發(fā)送系統(tǒng)的標簽的分組、或帶全局標簽的分組。特定于發(fā)送系統(tǒng)的標簽是涉及由遠程計算機系統(tǒng)生成的本地保護策略的標簽。遠程計算機系統(tǒng)可已經(jīng)與包含被保護的數(shù)據(jù)的分組一起發(fā)送了本地標簽信息。雖然這種類型的標簽可有益于其它系統(tǒng),但因為使用本地保護策略生成它,因此這種策略可能不是由其它計算機系統(tǒng)利用的相同類型的策略。在一些實施例中,輸入標簽?zāi)K210和標簽策略模塊212可能能夠解釋這種類型標簽的遠程策略,并生成映出該遠程標簽的本地標簽。將這種類型的標簽從遠程環(huán)境變換到本地環(huán)境的能力可以是遠程標簽系統(tǒng)多么近似地類似于本地系統(tǒng)的函數(shù)。這種類型的解釋策略可導(dǎo)致計算機系統(tǒng)之中不同的保護級別。另一方面,接收有全局標簽的分組利用已經(jīng)在幾個計算機系統(tǒng)之中標準化的標簽策略。遵守全局標簽保護策略的所有計算機系統(tǒng)將能夠直接從網(wǎng)絡(luò)分組中導(dǎo)入 (import)標簽,并利用附加到網(wǎng)絡(luò)分組的標簽之內(nèi)的、系統(tǒng)間傳遞的保護策略。在彼此間傳遞標簽信息的所有參與的計算機系統(tǒng)之中,標準化的數(shù)據(jù)保護策略確保了數(shù)據(jù)的全部保護。輸入標簽?zāi)K210通過解析出分組中的標簽,來處理輸入分組。然后,它將那些標簽向存儲器跟蹤模塊214登記。登記處理將該標簽與存儲接收自網(wǎng)絡(luò)分組的數(shù)據(jù)的一個或多個存儲器段相關(guān)聯(lián)。存儲器跟蹤模塊214通知存儲器保護/管理模塊216更新標簽數(shù)據(jù)庫216。這種更新可由標簽數(shù)據(jù)庫中與存儲新抵達的數(shù)據(jù)的存儲器段相關(guān)聯(lián)的具體位置的標簽安全性信息組成。例如,高保護的數(shù)據(jù)塊可已經(jīng)在網(wǎng)絡(luò)分組中抵達。這個網(wǎng)絡(luò)分組可已經(jīng)包括了陳述本地計算機系統(tǒng)中的不可信環(huán)境沒有數(shù)據(jù)訪問權(quán)限的標簽。然后,數(shù)據(jù)存儲在段245的系統(tǒng)存儲器中。接著,在位置245處更新標簽數(shù)據(jù)庫,這提升了相關(guān)聯(lián)段的安全性級別,以致沒有不可信的環(huán)境可獲取對這個段的訪問。因而,隨后如果不可信環(huán)境中操作系統(tǒng)的用戶嘗試訪問,則通過隨后為該段核查標簽數(shù)據(jù)庫216的存儲器保護/管理模塊 218來處理該訪問嘗試。已知用戶的安全性級別和存儲器段的更高的安全性級別,存儲器保護/管理模塊218意識到用戶不具有訪問該段的、足夠高的安全性許可證(clearance),并拒絕該請求。輸出標簽校驗/生成模塊220用于與運出分組(outbound packet)有關(guān)的標簽信息。輸出標簽?zāi)K220可將標簽映射到另一個計算機系統(tǒng)或另一個虛擬機的安全性關(guān)聯(lián)。 換句話說,如果輸出標簽?zāi)K220察覺到目的地系統(tǒng)的安全性關(guān)聯(lián),它可修改標簽以變得兼容遠程系統(tǒng)。輸出標簽?zāi)K220也可撤下當前已經(jīng)加標簽的分組的標簽(例如,如果分組運出到不利用安全性標簽的遠程網(wǎng)絡(luò)或系統(tǒng))。此外,如果目標目的地系統(tǒng)確實利用相同的數(shù)據(jù)安全性策略,則輸出標簽?zāi)K220可在運出分組中嵌入標簽,因此可在兼容的遠程系統(tǒng)上跟蹤信息。在不同的實施例中,運出分組的目標系統(tǒng)可以是遠程系統(tǒng)或本地系統(tǒng)中的另一個虛擬機。從運入點的角度來看,分組可通過網(wǎng)絡(luò)I/O接口 1 從網(wǎng)絡(luò)1 抵達。由輸入標簽?zāi)K210接收分組,輸入標簽?zāi)K210解析分組,將分組中的數(shù)據(jù)從標簽信息(如果存在) 分離。如果標簽不存在,在與標簽策略模塊212協(xié)商應(yīng)該利用的正確安全性參數(shù)之后,輸入標簽?zāi)K210可為數(shù)據(jù)創(chuàng)建標簽。然后,從輸入標簽?zāi)K210向與存儲器保護/管理模塊 218通信以訪問標簽數(shù)據(jù)庫216的存儲器跟蹤模塊214發(fā)送標簽。輸入標簽?zāi)K210將來自分組的數(shù)據(jù)發(fā)送到不可信軟件環(huán)境204。運行在不可信環(huán)境中的軟件中的網(wǎng)絡(luò)接口 222 接收數(shù)據(jù),該數(shù)據(jù)然后可由運行于不可信環(huán)境中的應(yīng)用程序2M使用。不幸的是,由于這個環(huán)境是不可信的,其它惡意程序也可在該不可信的環(huán)境中運行,例如惡意軟件226。由于不可信環(huán)境中軟件的未知性質(zhì),因此通過任何這種具體軟件訪問數(shù)據(jù)可能受限。給予駐留在不可信環(huán)境中的任何實體的訪問級別由與存儲接收的數(shù)據(jù)的一個或多個存儲器段有關(guān)的、 標簽信息中詳述的安全性策略來確定。從運出點的角度來看,不可信軟件環(huán)境204中的應(yīng)用程序224嘗試將網(wǎng)絡(luò)分組中的數(shù)據(jù)發(fā)送到外部實體(例如,網(wǎng)絡(luò)1 上的另一個計算機系統(tǒng))。不可信環(huán)境取得存儲在系統(tǒng)存儲器中的數(shù)據(jù),并利用網(wǎng)絡(luò)軟件接口 222發(fā)送這個數(shù)據(jù)分組。該分組被構(gòu)建并被假定發(fā)送到網(wǎng)絡(luò),但是在到達網(wǎng)絡(luò)之前,它被輸出標簽?zāi)K220截取。輸出標簽?zāi)K220與存儲器跟蹤模塊214核查關(guān)于分組中數(shù)據(jù)的安全性級別。為了做到這個,輸出標簽?zāi)K220 針對分組中的數(shù)據(jù)向存儲器跟蹤模塊發(fā)送詢問。然后,存儲器跟蹤模塊214在標簽數(shù)據(jù)庫 216中查找用于該數(shù)據(jù)的標簽信息(利用存儲器保護/管理模塊218來做這個)。標簽信息被檢索到并返回給輸出標簽?zāi)K220,輸出標簽?zāi)K隨后與標簽策略模塊協(xié)商,以確定對由檢索的標簽信息描述的安全性級別的數(shù)據(jù)所采取的策略。輸出標簽?zāi)K220和標簽策略模塊212首先校驗是否允許將數(shù)據(jù)發(fā)送到遠程計算機系統(tǒng)。如果不允許發(fā)送數(shù)據(jù),則阻止該網(wǎng)絡(luò)分組并阻擋該嘗試。如果允許發(fā)送數(shù)據(jù),則進行關(guān)于是否將標簽信息附加到分組的下一個確定。在一些實施例中,作為分組目標的遠程計算機系統(tǒng)具有兼容的數(shù)據(jù)標簽系統(tǒng),并且存儲在標簽數(shù)據(jù)庫中的實際標簽(一個或多個)可附加到分組中并被發(fā)送。在許多實施例中,標簽策略模塊可存儲或訪問具有相同基于標簽的數(shù)據(jù)跟蹤系統(tǒng)的已知遠程計算系統(tǒng)的數(shù)據(jù)庫。在其它實施例中,遠程計算機系統(tǒng)不兼容相同的基于標簽的數(shù)據(jù)跟蹤系統(tǒng),但替換性地利用標簽策略模塊兼容的、另一種基于標簽的系統(tǒng)。在這種情況中,標簽策略模塊212將標簽轉(zhuǎn)換信息通知輸出標簽?zāi)K220, 并用與遠程系統(tǒng)兼容的標簽替換本機標簽。在又一實施例中,遠程計算機系統(tǒng)未知來源,那么在允許跨網(wǎng)絡(luò)發(fā)送數(shù)據(jù)分組之前從其中去除所有標簽信息。無論如何,當完成這個處理時,輸出標簽?zāi)K220隨后跨網(wǎng)絡(luò)128向遠程系統(tǒng)發(fā)送分組。在許多實施例中,在不可信環(huán)境中運行的應(yīng)用程序可實際創(chuàng)建數(shù)據(jù),并還指示與該數(shù)據(jù)相關(guān)聯(lián)的安全性級別。在極端場景中,不可信軟件應(yīng)用程序可規(guī)定比它自己的訪問特權(quán)更高的安全性級別。因而,在數(shù)據(jù)被創(chuàng)建并在系統(tǒng)存儲器中存儲之后,不可信軟件應(yīng)用程序可向測量的環(huán)境指示它不再有權(quán)訪問它已創(chuàng)建的數(shù)據(jù)。雖然圖2詳細地描述了作為本地管理程序一部分的IFTP邏輯,但IFTP邏輯可在不同實施例中的許多不同位置中實現(xiàn),如已描述的那樣。圖6中示出了一個這樣的替換性實施例,其圖示了在CPU中實現(xiàn)的IFTP邏輯的元件。圖3是規(guī)定及映射數(shù)據(jù)保護策略的處理的一實施例的流程圖。該流程圖描述了在計算機系統(tǒng)中相互作用的一組實體中的每個的動作。如示出的,圖3中描述的實體駐留在測量的軟件(例如,特權(quán)模式軟件)中,或者駐留在不可信軟件中。該處理開始于數(shù)據(jù)源(例如,在不可信軟件環(huán)境204中運行的軟件應(yīng)用程序224)生成應(yīng)用程序策略來保護其產(chǎn)生的數(shù)據(jù)(處理框300)。這種應(yīng)用程序特定的數(shù)據(jù)保護策略被傳遞到在測量的軟件環(huán)境中運行的標簽策略轉(zhuǎn)換模塊(圖2中的21 。此外,數(shù)據(jù)源還提供用于數(shù)據(jù)保護的請求和被標記為保護的數(shù)據(jù)的位置(處理框302)。換句話說,數(shù)據(jù)源并不能控制標簽數(shù)據(jù)庫以指定保護方案,但是能夠請求特權(quán)模式中的邏輯(即,管理程序)操縱標簽數(shù)據(jù)庫,以向數(shù)據(jù)源產(chǎn)生的數(shù)據(jù)指派安全性標簽。然后,標簽策略轉(zhuǎn)換模塊讀該應(yīng)用程序特定的策略,并將它映射到可實施的系統(tǒng)級別策略(處理框304),其隨后被發(fā)送到存儲器跟蹤模塊(圖2中的214)來實施(處理框 306)。例如,應(yīng)用程序特定的策略可為數(shù)據(jù)請求最高級別的安全性,但是當映射到可實施的系統(tǒng)級別策略時,標簽策略模塊可能對不可信軟件產(chǎn)生數(shù)據(jù)利用最高級別的安全性。該安全性可能不像最高系統(tǒng)級別策略那么高,這樣可為通過測量的環(huán)境產(chǎn)生的數(shù)據(jù)保留更高的安全性級別。通過可信協(xié)處理器130接口,生成的系統(tǒng)級別策略可被封閉(seal)到本地硬件。如果有必要來認證本地策略,這將允許通過遠程計算機系統(tǒng)校驗策略。遠程計算機系統(tǒng)可請求訪問這種被保護的數(shù)據(jù),并且對于遠程系統(tǒng)校驗數(shù)據(jù)安全性的一種方式是通過使用可信協(xié)處理器硬件安全性測量來進行校驗,這樣,遠程系統(tǒng)(通過安全性策略的遠程認證)實際上正實施相同級別的數(shù)據(jù)保護。一旦存儲器跟蹤模塊(圖2中的214)接收到系統(tǒng)策略和數(shù)據(jù)的位置,它就發(fā)送指令到存儲器保護/管理模塊(圖2中的218),以在存儲器中實際實施保護方案(處理框 308)。如上所述,保護方案利用標簽數(shù)據(jù)庫為存儲數(shù)據(jù)的存儲器的段加標簽。標簽附加到數(shù)據(jù),并為存儲器中數(shù)據(jù)提供了訪問權(quán)限安全性級別。例如,當實體嘗試訪問數(shù)據(jù)時,對照用于存儲數(shù)據(jù)的存儲器段的標簽來核查實體的相對訪問級別。如果實體具有最小需要的安全性訪問級別,則數(shù)據(jù)對于實體是可訪問的。然而,在更詳細的方案中,訪問權(quán)限可包括數(shù)據(jù)訪問的多個級別(從能夠讀數(shù)據(jù)的低級別訪問到能夠完全擦除數(shù)據(jù)的高級別訪問權(quán)限)。圖4圖示了轉(zhuǎn)換及映射輸入數(shù)據(jù)保護策略的處理的一實施例的流程圖。測量的軟件環(huán)境從網(wǎng)絡(luò)接收輸入分組(處理框400)。在許多實施例中,這種分組包括數(shù)據(jù)和附加到數(shù)據(jù)的標簽。該標簽規(guī)定了用于發(fā)送實體的數(shù)據(jù)保護的遠程策略。發(fā)送實體可以是網(wǎng)絡(luò)上另一個計算機系統(tǒng)或相同計算機系統(tǒng)上的另一個虛擬機。解析網(wǎng)絡(luò)分組,從分組中的數(shù)據(jù)分出標簽(處理框40 。然后,由測量的軟件環(huán)境對解析的標簽進行分析,以確定標簽正在利用的保護策略。接著,將接收自數(shù)據(jù)分組的應(yīng)用程序策略映射(即, 轉(zhuǎn)換)到能由管理程序?qū)崿F(xiàn)的本地系統(tǒng)安全性策略(處理框404)。在一些實施例中,策略必須被轉(zhuǎn)換,以便由本地管理程序利用。在其它實施例中, 策略可以是由網(wǎng)絡(luò)上所有計算機系統(tǒng)利用的統(tǒng)一的策略,并且因此轉(zhuǎn)換是直接映射。然后, 通過測量的軟件環(huán)境將被解析的數(shù)據(jù)和安全性策略標簽信息推送到管理程序。這允許在數(shù)據(jù)或安全性策略到達本地機器上的不可信軟件環(huán)境之前,實現(xiàn)安全性策略及將數(shù)據(jù)存儲到存儲器中。測量的軟件規(guī)定了數(shù)據(jù)的存儲位置,并請求將與數(shù)據(jù)關(guān)聯(lián)的標簽標記為被保護的(處理框406)。此外,推送包含策略的標簽信息。然后,測量的軟件環(huán)境將被映射的安全性策略和被保護的數(shù)據(jù)位置發(fā)送到用于實現(xiàn)保護過程的管理程序。一旦管理程序中的存儲器跟蹤模塊接收到系統(tǒng)策略和數(shù)據(jù)的位置,它就向存儲器保護/管理模塊發(fā)送指令,以在存儲器中實際實施保護方案(處理框408)。圖5圖示了在本地機器上實施數(shù)據(jù)安全性策略的處理的一實施例的流程圖。在許多實施例中,來自本地計算機系統(tǒng)中的不可信軟件環(huán)境的數(shù)據(jù)消費者請求訪問存儲器中的數(shù)據(jù)(處理框500)。管理程序接收該訪問請求(處理框50 ,然后管理程序核查請求數(shù)據(jù)的安全性策略,以確定請求者的訪問權(quán)限(處理框504)??赏ㄟ^存儲器保護/管理模塊和存儲器跟蹤模塊(分別是圖2中的218和214)兩者中的邏輯執(zhí)行該核查。 例如,存儲器保護模塊可監(jiān)測對所有存儲器的訪問請求,并接收這種訪問請求。訪問請求具有請求者和要訪問的目標位置的存儲器中的數(shù)據(jù)位置。然后,存儲器保護/管理模塊取出 (pull up)標簽數(shù)據(jù)庫(圖2中的216)中的位置,這樣,它維持并獲取用于存儲器中位置的標簽信息。然后,將請求者和標簽安全性信息發(fā)送到存儲器跟蹤模塊,其記錄(ke印track of)請求訪問數(shù)據(jù)的實體的安全性許可證級別,并使用此信息來確定是否允許訪問數(shù)據(jù) (處理框506)。如果數(shù)據(jù)消費者符合所請求數(shù)據(jù)的最小安全性許可證級別,則允許該訪問并向請求者發(fā)布該數(shù)據(jù)(處理框508)。否則,如果不符合訪問數(shù)據(jù)的最小安全性許可證級別,則不發(fā)布該數(shù)據(jù),并且一個或多個存儲器段中的數(shù)據(jù)保持被保護(處理框510)。轉(zhuǎn)到圖6,此附示了在系統(tǒng)的CPU中的硬件之內(nèi)實現(xiàn)的IFTP邏輯的一實施例。 存儲器跟蹤模塊214、存儲器保護/管理模塊218、以及標簽數(shù)據(jù)庫216都可在CPU 104中的硬件電路之內(nèi)實現(xiàn)。標簽數(shù)據(jù)庫可在位于CPU 104之內(nèi)的私有安全存儲器中實現(xiàn),或通過CPU104專門控制。在沒有示出的其它實施例中,部分IFTP可在CPU 104外部的其它硬件電路中實現(xiàn)。此外,如圖6中所述的系統(tǒng)的其它部分也可在硬件中實現(xiàn)。例如,雖然未在圖6中
11特別示出,但輸入標簽校驗生成模塊210、標簽策略轉(zhuǎn)換模塊212、以及輸出標簽校驗生成模塊220也可同樣部分地或完全地在硬件電路中實現(xiàn)。本發(fā)明實施例的元件也可作為用于存儲機器可執(zhí)行指令的機器可讀介質(zhì)來提供。 機器可讀介質(zhì)可包括但不限于閃速存儲器、光盤、壓縮盤-只讀存儲器(CD-ROM)、數(shù)字通用/視頻盤(DVD) ROM、隨機存取存儲器(RAM)、可擦除可編程只讀存儲器(EPROM)、電可擦除可編程只讀存儲器(EEPROM)、磁卡或光卡、傳播介質(zhì)或適于存儲電子指令的其它類型機器可讀介質(zhì)。例如,本發(fā)明的實施例可作為計算機程序被下載,該計算機程序可經(jīng)由通信鏈接(例如,調(diào)制解調(diào)器或網(wǎng)絡(luò)連接)、以包含在載波或其它傳播介質(zhì)中的數(shù)據(jù)信號的方式, 從遠程計算機(例如,服務(wù)器)傳遞到請求的計算機(例如,客戶端)。在上面的描述中,某些術(shù)語用于描述本發(fā)明的實施例。例如,術(shù)語“邏輯”代表執(zhí)行一項或多項功能的硬件、固件、軟件(或它們的任何組合)。例如,“硬件”的示例包括但不限于集成電路、有限狀態(tài)機、或甚至組合邏輯。集成電路可采取處理器的形式,例如微處理器、專用集成電路、數(shù)字信號處理器、微控制器等。應(yīng)該意識到,遍及本說明書的對“ 一個實施例,,或“一實施例”的引用意味著連同該實施例一起描述的具體特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一個實施例中。因此,要強調(diào)并應(yīng)該意識到,在本說明書許多部分中對“一實施例”或“一個實施例”或“一替換性實施例”的兩次或更多的引用不必都指相同的實施例。此外,當在本發(fā)明的一個或多個實施例中適當時,可結(jié)合具體的特征、結(jié)構(gòu)或特性。類似地,應(yīng)該意識到,在對本發(fā)明實施例的在前描述中,各種特征有時一起歸并成單個實施例、附圖、或其描述,目的是簡單化公開,幫助理解各種創(chuàng)造性方面的一個或多個。 但是,本公開的方法不能解釋為反映了這樣的意圖請求保護的主題需要比清楚地列舉在每個權(quán)利要求中更多的特征。更確切地說,如以下權(quán)利要求反映的那樣,創(chuàng)造性方面在于比單個在前公開的實施例的所有特征更少。因而,在詳細描述之后的權(quán)利要求據(jù)此清楚地并入到本詳細描述中。
權(quán)利要求
1.一種用于信息流跟蹤和保護的方法,包括從駐留在本地計算設(shè)備中的不可信源軟件環(huán)境中的應(yīng)用程序生成數(shù)據(jù)保護策略,以支配對在所述本地計算設(shè)備中的多個存儲器頁的第一存儲器頁中存儲的被保護的數(shù)據(jù)的訪問;將所述數(shù)據(jù)保護策略映射到由所述本地計算設(shè)備上的信息流跟蹤和保護(IFTP)邏輯管理的、可實施的系統(tǒng)級別數(shù)據(jù)保護策略;標志出包含所述被保護的數(shù)據(jù)的所述第一存儲器頁;以及使用所述IFTP邏輯和所述可實施的系統(tǒng)級別數(shù)據(jù)保護策略,為包含所述被保護的數(shù)據(jù)的所述第一存儲器頁實施所生成的數(shù)據(jù)保護策略。
2.如權(quán)利要求1所述的方法,進一步包括為所述本地計算設(shè)備中的所述多個存儲器頁維持包括多個標簽的標簽數(shù)據(jù)庫,其中所述多個標簽的給定標簽與所述多個存儲器頁的給定存儲器頁相關(guān)聯(lián),所述標簽數(shù)據(jù)庫識別所述多個存儲器頁的哪些存儲器頁是被保護的。
3.如權(quán)利要求2所述的方法,進一步包括跨網(wǎng)絡(luò)在所述本地計算設(shè)備和遠程計算機之間傳遞所述被保護的數(shù)據(jù),其中所述被保護的數(shù)據(jù)跨所述網(wǎng)絡(luò)、在網(wǎng)絡(luò)分組中傳遞,并且所述數(shù)據(jù)保護策略耦合所述網(wǎng)絡(luò)分組。
4.如權(quán)利要求3所述的方法,進一步包括將與所述被保護的數(shù)據(jù)相關(guān)聯(lián)的所述多個標簽的一個或多個標簽耦合到所述網(wǎng)絡(luò)分組。
5.如權(quán)利要求4所述的方法,進一步包括在遠程計算設(shè)備中存在的遠程IFTP邏輯處,從所述網(wǎng)絡(luò)接收所述網(wǎng)絡(luò)分組; 所述遠程IFTP邏輯從所述網(wǎng)絡(luò)分組中解耦所述數(shù)據(jù)保護策略;以及所述遠程IFTP邏輯在所述遠程計算設(shè)備上對駐留在網(wǎng)絡(luò)分組中的數(shù)據(jù)實施所述數(shù)據(jù)保護策略。
6.如權(quán)利要求4所述的方法,進一步包括在遠程計算設(shè)備中存在的遠程IFTP邏輯處,從所述網(wǎng)絡(luò)接收所述網(wǎng)絡(luò)分組; 所述遠程IFTP邏輯將耦合到所述網(wǎng)絡(luò)分組的一個或多個標簽關(guān)聯(lián)到從所述網(wǎng)絡(luò)分組接收的數(shù)據(jù)。
7.如權(quán)利要求2所述的方法,進一步包括所述應(yīng)用程序請求訪問存儲在所述第一存儲器頁中的被保護的數(shù)據(jù); 所述本地IFTP邏輯截取該訪問請求;所述本地IFTP邏輯核查與所述第一存儲器頁相關(guān)聯(lián)的所述系統(tǒng)級別數(shù)據(jù)保護策略;以及所述本地IFTP邏輯基于所述系統(tǒng)級別數(shù)據(jù)保護策略,確定是否為所述應(yīng)用程序授權(quán)對所述第一存儲器頁的訪問。
8.如權(quán)利要求1所述的方法,其中所述IFTP邏輯駐留在管理程序中。
9.如權(quán)利要求1所述的方法,其中所述IFTP邏輯駐留在所述本地計算設(shè)備上的硬件電路中。
10.一種用于信息流跟蹤和保護的系統(tǒng),包括網(wǎng)絡(luò);耦合到所述網(wǎng)絡(luò)的本地計算設(shè)備,所述本地計算設(shè)備從駐留在所述本地計算設(shè)備中的不可信源虛擬機中的應(yīng)用程序生成數(shù)據(jù)保護策略,以支配對在所述本地計算設(shè)備中的多個存儲器頁的第一存儲器頁中存儲的被保護的數(shù)據(jù)的訪問;將所述數(shù)據(jù)保護策略映射到由信息流跟蹤和保護(IFTP)邏輯管理的、可實施的系統(tǒng)級別數(shù)據(jù)保護策略;標志出包含所述被保護的數(shù)據(jù)的所述第一存儲器頁;以及使用所述IFTP邏輯和所述可實施的系統(tǒng)級別數(shù)據(jù)保護策略,為包含所述被保護的數(shù)據(jù)的所述第一存儲器頁實施所生成的數(shù)據(jù)保護策略。
11.如權(quán)利要求10所述的系統(tǒng),其中所述本地計算設(shè)備進一步包括用于所述本地計算設(shè)備中的所述多個存儲器頁的、包括多個標簽的標簽數(shù)據(jù)庫,其中所述多個標簽的給定標簽與所述多個存儲器頁的給定存儲器頁相關(guān)聯(lián),所述標簽數(shù)據(jù)庫識別所述多個存儲器頁的哪些存儲器頁是被保護的。
12.如權(quán)利要求11所述的系統(tǒng),其中所述本地計算設(shè)備進一步可操作成跨網(wǎng)絡(luò)在所述本地計算設(shè)備和遠程計算機之間傳遞所述被保護的數(shù)據(jù),其中所述被保護的數(shù)據(jù)跨所述網(wǎng)絡(luò)、在網(wǎng)絡(luò)分組中傳遞,并且所述數(shù)據(jù)保護策略耦合所述網(wǎng)絡(luò)分組。
13.如權(quán)利要求12所述的系統(tǒng),其中所述本地計算設(shè)備進一步可操作成將與所述被保護的數(shù)據(jù)相關(guān)聯(lián)的所述多個標簽的一個或多個標簽耦合到所述網(wǎng)絡(luò)分組。
14.如權(quán)利要求13所述的系統(tǒng),進一步包括 遠程計算設(shè)備,以在所述遠程計算設(shè)備中存在的遠程IFTP邏輯處,從所述網(wǎng)絡(luò)接收所述網(wǎng)絡(luò)分組; 從所述網(wǎng)絡(luò)分組中解耦所述數(shù)據(jù)保護策略;以及在所述遠程計算設(shè)備上對駐留在網(wǎng)絡(luò)分組中的數(shù)據(jù)實施所述數(shù)據(jù)保護策略。
15.如權(quán)利要求13所述的系統(tǒng),進一步包括 遠程計算設(shè)備,以在所述遠程計算設(shè)備中存在的遠程IFTP邏輯處,從所述網(wǎng)絡(luò)接收所述網(wǎng)絡(luò)分組; 將耦合到所述網(wǎng)絡(luò)分組的一個或多個標簽關(guān)聯(lián)到從所述網(wǎng)絡(luò)分組中接收的數(shù)據(jù)。
16.如權(quán)利要求10所述的系統(tǒng),其中所述本地計算設(shè)備進一步可操作成截取來自本地應(yīng)用程序的、對存儲在所述第一存儲器頁中的所述被保護的數(shù)據(jù)的訪問請求;核查與所述第一存儲器頁相關(guān)聯(lián)的所述系統(tǒng)級別數(shù)據(jù)保護策略;以及基于所述系統(tǒng)級別數(shù)據(jù)保護策略,確定是否為所述應(yīng)用程序授權(quán)對所述第一存儲器頁的訪問。
17.如權(quán)利要求10所述的系統(tǒng),其中所述IFTP邏輯駐留在管理程序中。
18.如權(quán)利要求10所述的系統(tǒng),進一步包括中央處理單元(CPU),其中所述IFTP邏輯駐留在所述CPU中。
全文摘要
本發(fā)明名稱為“信息流跟蹤和保護”。本發(fā)明的實施例一般針對用于實現(xiàn)基于手勢(gesture)的簽名鑒定的系統(tǒng)、方法、設(shè)備、和機器可讀介質(zhì)。在一個實施例中,一方法可包括從不可信軟件環(huán)境生成數(shù)據(jù)保護策略,以支配對在本地計算機系統(tǒng)中的存儲器中存儲的被保護的數(shù)據(jù)的訪問。然后,該方法將數(shù)據(jù)保護策略映射到由信息流和跟蹤保護(IFTP)邏輯管理的、可實施的系統(tǒng)級別數(shù)據(jù)保護策略。接著,該方法標志出包含被保護的數(shù)據(jù)的第一存儲器頁。最后,該方法使用IFTP邏輯和可實施的系統(tǒng)級別數(shù)據(jù)保護策略,為包含被保護的數(shù)據(jù)的第一存儲器頁實施生成的數(shù)據(jù)保護策略。
文檔編號G06F21/24GK102236768SQ20111016866
公開日2011年11月9日 申請日期2011年5月5日 優(yōu)先權(quán)日2010年5月5日
發(fā)明者M·J·科溫頓, R·薩希塔 申請人:英特爾公司