專利名稱:內容消費環境的完整性驗證和確認的系統和方法
技術領域:
本發明涉及完整性(integrity)驗證和確認。本發明具體涉及在內容消費環境中的完整性驗證和確認。
背景技術:
阻礙通過電子商務廣泛分發數字文件的一個最重要的問題是,在如今數字文件的分發和使用中,缺乏對內容擁有者和供應者的知識產權保護。解決這個問題的工作被稱為知識產權管理(IPRM),數字產權管理(DPRM),知識財產管理(IPM),數字權管理(DRM),權利管理(RM)和電子著作權管理(ECM)。
內容供應者經常希望他們的內容由具有所需特征和/或行為的驗證應用程序和系統來消費。公開密鑰基礎結構(PKI)的直接使用,使應用程序和系統供應者能夠確證他們自己的產品,使內容供應者能夠驗證用于消費其內容的應用程序和系統的完整性。
發明內容
不過,PKI的直接使用產生了賣方和供應者間的多對多關系。這類關系可能標定得不完善,從而難以管理這類關系,難以有效實時地進行完整性驗證。
內容供應者經常希望他們的內容由用希望的特征和行為的驗證應用程序和系統來消費。通過控制內容消費環境的這些方面,內容供應者能夠限制諸如復制,打印,嵌入,分發等使用。
例如,內容供應者可希望要求消費內容的系統帶有某一等級完整性和權限管理能力,保護內容不被濫用。該內容供應者也可希望在用戶系統上,保證沒有諸如調試器,病毒,監聽程序等,會挪用或“偷竊”內容或其它敏感信息的“異類”應用程序干擾內容消費應用程序。比如,在此處完全引用標題為“DocumentDistribution Management Method And Apparatus Using A Standard RenderingEngine And A Method And Apparatus For Controlling A Standard RenderingEngine”的代理號為111325 000002文件,在文中,通過控制用戶系統的功能,限制用戶訪問和控制文件。
為了驗證帶有所需特征和行為的給定應用程序和系統,需要驗證所有的應用程序和系統構件,來消費由驗證應用程序確認的內容。
本發明描述了為內容消費環境提供驗證和確認服務的系統和方法。在這樣的系統中,內容供應者和內容消費系統/應用程序供應者間,引入了提供這些服務的完整性驗證和確認設備。這個驗證設備注冊來自各個供應者的各個應用程序和/或系統,根據預定的選擇確認這些應用程序和/或系統對內容供應者的完整性。通過使用這個設備,內容供應者能夠“確信”(trust)完整性驗證和確認系統。經過這個確信,供應者建立了允許消費其內容的一系列驗證和確認設備的簡檔表,并且根據這個簡檔表,在用戶系統上驗證用戶的這一系列應用程序和系統是真實的。
具體而言,這個發明的系統和方法為消費環境中的例如文檔內容完整性提供了驗證和確認服務。在這個環境中,在內容供應者、內容消費系統和應用程序供應者間,引入提供這些服務的完整性驗證和確認設備,它們可以分布于諸如個人計算機,手提計算機,PDAs,多媒體顯示裝置,DVD播放器,分布式網絡電話,以及應用程序例如可以是文字處理器,文件瀏覽器,多媒體播放器等等。完整性驗證和確認設備注冊來自各個內容消費系統/應用程序供應者的各個應用程序和/或系統,并且對內容供應者證明這些應用程序和系統。用這個設備,內容供應者可以選擇或確信這個完整性驗證和確認設備,建立允許消費其內容的一系列應用程序和系統的簡檔表,并根據該簡檔表在用戶系統上驗證在其上的那個系列應用程序和系統是真實的。在這種方式中,可以對請求或提交的內容控制由用戶訪問或控制的范圍。
在這里所述用的術語文檔,是被分發或傳送的任意信息主題單元,包括但不限于,信件,書,雜志,期刊,新聞報紙,其它報紙,軟件,插件,照片和其它圖像,音頻和視頻剪切,和其它多媒體表示。文檔可以是紙張印刷形式,存儲介質上的數據形式,或任意其它已知或未來將出現的各種介質或軟件,例如包括光盤(CD),數字視頻光盤(DVD),激光影碟,磁介質和磁光介質,等等。
本發明系統和方法提供完整性驗證和確認服務。
本發明為內容消費環境分別提供用于完整性驗證和確認服務的系統和方法。
本發明也為確定完整性簡檔表分別提供系統和方法。
本發明此外還為驗證一個或更多系統環境的完整性分別提供系統和方法。
本發明也為管理完整性簡檔表,系統和系統構件信息提供系統和方法。
本發明另外還通過使用完整性簡檔表,提供在用戶系統上執行完整性檢查的系統和方法。
特別是諸如文檔發布者或分發者的內容供應者,它啟動對完整性簡檔表的請求,并轉送到完整性驗證和確認設備。如果還不存在用于請求的應用程序和系統構件的完整性簡檔表,完整性驗證和確認設備將對例如向用戶提供各種系統構件和/或應用程序的內容消費系統/應用程序供應者進行詢問。內容消費系統/應用程序提供者返回關于特別應用程序或系統構件的完整性驗證和確認設備的認證信息。在用戶系統上的應用程序或系統構件和由內容消費系統/應用程序供應者分發的初始應用程序或系統構件之間,能夠通過認證信息進行比較或完整性驗證。
在構件數據庫中存儲用于系統應用程序和構件的認證信息,在簡檔表數據庫中存儲內容供應者所需的簡檔表。另一方面,內容消費系統/應用程序供應者也可以保持認征信息數據庫,其中認證信息可以直接轉送到完整性驗證和確認設備各自的數據庫,而無須完整性驗證和確認設備來確定完整性簡檔表。接著,對應于確定的完整性簡檔表的完整性簡檔表的標識被返回給內容供應者。
諸如文檔分發者的內容供應者例如向用戶提供被保護的內容。內容供應者向用戶轉送被保護的數字內容版本,例如包括許可協議和完整性簡檔表標識。完整性簡檔表標識包括可與被保護內容聯合使用的應用程序和系統構件,和用于那些系統/應用程序的完整性簡檔表標識。
在用戶系統的請求下,擁有了從內容消費系統/應用程序供應者取得認證信息,完整性驗證和確認設備將完整性簡檔表轉送到用戶系統。利用這個完整性簡檔表可執行用戶系統的完整性驗證。如果確定用戶系統的構件/應用程序是真實的,則例如根據附加的簡檔表信息,就可由用戶應用程序和系統訪問由內容供應者提供的數字內容。
不過須注意,對完整性驗證的請求發起不一定需要有供應者。反過來說,通過嵌入在簡檔表識別信息中的隨被保護內容從內容供應者轉送到用戶系統的軟件應用程序,能夠發起完整性請求。
另外,內容供應者也可以用作完整性驗證和確認設備。在這種情況中,內容供應者通過取得適當的認證信息并確定完整性簡檔表是供內容供應者自己使用時,自己就可以進行完整性驗證和確認服務。
此外,內容消費應用程序/系統供應者也能夠起到完整性驗證和確認設備的作用。在這種情況中,該內容消費應用程序/系統供應者例如也可以提供完整性簡檔表和相應的應用程序和/或系統構件。
根據本發明的第一方面,提供一種在內容消費或計算環境中提供被保護的執行環境的系統,所述系統包括至少一個用于內容消費的應用程序,在所述被保護的執行環境中運行;完整性認證器,用于在運行所述被保護的執行環境中的應用程序之前驗證所述用于內容消費的應用程序的完整性;以及監控器,用于保護所述完整性認證器以及所述在被保護執行環境中運行的用于內容消費的應用程序不被監控或調試。
根據本發明的第二方面,提供一種在內容消費或計算環境中提供被保護的執行環境的方法,所述方法包括建立被保護的執行環境,用于保護在所述被保護執行環境中消費的內容;保護在所述被保護執行環境中消費的內容,其中所述保護步驟進一步包括驗證消費所述被保護執行環境中的內容的應用程序的完整性;如果驗證了所述應用程序的完整性,則運行該應用程序;和監控所述應用程序不被監控或調試。
在下面較佳實施例的詳細描述中,描述了本發明上述和其它的特征和優點。
通過引用附圖,將詳細描述本發明的較佳實施例,其中圖1是根據本發明,示出完整性驗證和確認系統的第一個示范實施例的功能概圖。
圖2是根據本發明,示出完整性驗證和確認系統的第一個示范實施例的功能方框圖。
圖3是根據本發明,示出完整性驗證和確認系統的示范工作流程圖。
圖4是根據本發明,示出的完整性簡檔表的示范結構。
圖5是根據本發明,示出的示范環境堆棧。
圖6是根據本發明,示出的示范環境堆棧。
圖7是根據本發明,示出的示范堆棧工作流程。
圖8是根據本發明,示出的示范堆棧工作流程。
圖9是根據本發明,示出的操縱堆棧的示范方法。
圖10是根據本發明,通過使用調試防止動態篡改的示范方法。
圖11是根據本發明,用于完整性驗證和確認方法的一個示范實施例的概要流程圖。
圖12是根據本發明,用于注冊應用程序和/或系統的方法的一個示范實施例的概要流程圖。
圖13是根據本發明,用于確定完整性簡檔表的方法的一個示范實施例的概要流程圖。
圖14是根據本發明,用于驗證完整性認證器的完整性的方法的一個示范實施例的概要流程圖。
具體實施例方式
本發明提供了確定內容消費環境完整性的驗證和確認服務的系統和方法。在該系統中一個或更多的內容供應者和一個或更多的內容消費系統及應用程序供應者間,引入了完整性驗證和確認設備。該完整性驗證和確認設備從內容消費供應者和/或系統供應者取得認證信息。該認證信息使內容供應者相信內容將被提供到的環境。這樣,根據由內容消費應用程序和系統供應者接收的認證信息,建立完整性簡檔表。接著,這個簡檔表轉送到用戶系統,確認用戶沒有在未授權的方式下,改變,修改,或干涉內容供應者提供的數字內容。
圖1示出用于執行完整性驗證和確認的示范系統。具體而言,完整性驗證和確認系統100包括完整性驗證和確認設備200,內容供應者和/或分發者300,用戶系統400,內容消費環境/應用程序供應者500,構件數據庫260和簡檔數據庫270。
在示范的操作環境中,內容消費系統/應用程序供應者500為用戶提供了應用程序,系統和/或軟件/硬件構件。用戶系統400使文檔等數字內容消費,該內容由內容供應者和300分發者提供。為驗證用戶系統400的完整性,完整性驗證和確認設備200,采集并注冊來自內容消費系統/應用程序供應者500的,關于各個應用程序,系統和/或軟件/硬件構件的認證信息。使用這個認證信息,根據來自內容供應者300的服務請求20,完整性驗證和確認設備200確定并驗證一個或更多的應用程序,系統和/或系統構件的完整性簡檔表。然后,這個確定的完整性簡檔表50轉送到用戶系統400,這樣可以確定用戶系統400的完整性。
在操作中,內容供應者和分發者300提供文檔等數字內容到用戶系統400。用戶系統400包括一個或更多的系統構件,諸如硬件構件和/或各種軟件應用程序。這些應用程序和硬/軟件構件通常由用戶從一個或更多的內容消費系統/應用程序供應者(諸如計算機供應商,軟件倉庫,應用程序供應者,等等)得到。這些應用程序以及硬件和軟件構件,隨后,如果沒有完成組裝,將由用戶在適當的時間候組裝和安裝,使用戶能消費文檔等內容。
這樣,在使用用戶環境的應用程序和硬件/軟件的過程中,用戶可能想要查看文檔等被保護的內容。這樣,用戶400將從內容供應者300請求一個或更多的文件,諸如電子書籍,多媒體文件,圖像,模板,等等。收到這些請求后,內容供應者和分發者300可以將在被保護形式中的所需內容和簡檔表標識10提供給最終用戶400。這個簡檔表標識10包括諸如關于從中可見到的應用程序被保護內容的細節,和在特定軟/硬件環境中被提供內容可以操作的范圍。
此外,內容供應者300可以把服務請求20轉送到完整性驗證和確認設備200。該服務請求20可例如包括一個構件和/或軟件應用程序的列表,在其上列有內容供應者300允許用戶系統400消費所分發的被保護內容。由完整性驗證和確認設備200確定,是否在服務請求20中標識的構件和應用程序/軟件有存儲在構件數據庫260中和/或簡檔表數據庫270中的相關的認證信息,如果沒有這種信息,則該設備200可向一個或更多的內容消費系統/應用程序供應者500請求關于特定應用程序,系統,硬/軟件構件等的認證信息。用這個認證信息,該設備200將在構件數據庫260中存儲屬于應用程序和系統構件的信息。另外,完整性驗證和確認設備200可以為一個或更多的應用程序開發完整性簡檔表。用這個確認應用程序、系統和系統構件的認證的信息,該完整性驗證和確認設備200將完整性簡檔表50轉送到用戶系統400。這個完整性簡檔表50用于確認用戶系統400的系統,系統構件和/或應用程序的真實性,如果被確定為真實的,則將被保護內容10解保護,從而用戶系統400可依照完整性簡檔表,見到或操作被保護內容。
圖2是根據本發明的一個示范實施例,示出的完整性驗證和確認環境100的構件概圖。具體而言,完整性驗證和確認環境100包括一個或更多的內容供應者300,一個或更多的用戶系統400,一個或更多的完整性驗證和確認裝置200,和一個或更多的內容消費系統/應用程序供應者500。
內容供應者300例如可包括控制器310,存儲器320,I/O控制器330和內容數據庫340。不過須注意,內容供應者300也可以用更常規的方式分發內容。例如,內容供應者可以分發含有內容的光盤,光盤可被通過郵政服務郵寄給用戶。本發明的系統和方法可用任意類型的分發和分配處理。
完整性驗證和確認設備200包括控制器210,存儲器220和I/O控制器230,數字簽名裝置240,構件注冊裝置250,構件數據庫260,簡檔表數據庫270,簡檔表創建裝置280,簡檔表分發裝置290和簡檔表驗證裝置295。完整性驗證和確認設備200提供下列服務構件注冊服務和完整性簡檔表服務。注冊服務能夠對來自各個供應者的應用程序,系統,和/或軟/硬件作為真實的進行注冊,并帶有所需的特征,目的和/或行為。
完整性簡檔表服務為內容供應者提供服務,建立和檢索完整性簡檔表。完整性簡檔表是一種具有任選項數字簽名的文檔,包含可驗證的信息和一系列要消費被保護文檔內容的已注冊的系統構件。完整性簡檔表一旦創建,其標識會返回給內容供應者。內容供應者包括完整性簡檔表標識和任選項被保護文檔的使用許可。當消費被保護文檔的內容并需要傳送用戶的系統和環境的本地完整性驗證時,完整性簡檔表可從完整性驗證和確認設備200檢索到用戶系統。
用戶系統可400包括控制器410,存儲器420,I/O控制器430,存儲設備440,完整性認證設備450和簡檔表存儲設備460。不過須理解,這個示范用戶系統是基于計算機模型,而用戶系統的構件可以依照例如所消費內容的類型而改變。通常本發明的系統和方法可包括任何帶有完整性可被檢驗的部分的用戶系統。
內容消費系統/應用程序供應者500可例如包括,控制器510,存儲器520,I/O控制器530,注冊應用程序設備540,應用程序數據庫550和系統數據庫560。不過,類似于內容供應者300,內容消費系統/應用程序供應者可以有幾個不同的形式,該形式依賴于內容消費系統/應用程序供應者500提供的系統和/或應用程序。例如,如果內容消費系統/應用程序供應者500提供了特定的硬件構件,內容消費系統/應用程序供應者500可以不保持應用程序和系統數據庫。另外,例如系統/設備構件供應者可以在盤片上直接發送認證信息到完整性驗證和確認設備200。
此外,內容消費系統/應用程序供應者500可以和內容供應者300協調一起促進完整性簡檔表的確定。通常,內容消費系統/應用程序供應者可以同樣是能夠提供硬件或軟件和認證信息的任何實體。
雖然在這個示范實施例中,內容消費系統/應用程序供應者500由不同的系統構件組成,須理解內容消費系統/應用程序供應者500可以是計算機分配者,軟件開發者,軟件供應者,軟件分發者等等。這樣,內容消費系統/應用程序供應者500能夠提供允許消費由內容供應者300提供的內容的設備和/或軟件。
完整性驗證和確認環境100的各種構件能夠通過鏈路5互相通信,鏈路5可以是有線或無線鏈路,或任意其它已知或將來開發的,能夠從互連構件發送或接收電子數據的構件。例如鏈路5可以是一個或多個分布網絡,其依次連接到一個或多個附加的完整性驗證和確認環境100,或連接到內容供應者300,用戶系統400,內容消費系統/應用程序供應者500和完整性驗證和確認設備200中任意一個或多個的多重實例。
##在用戶系統400的用戶請求下,內容供應者300將文檔等內容分發到用戶系統400。具體而言,從用戶系統400的內容供應者300可以接收請求。這個請求,通過I/O控制器330接收,并由控制器310結合存儲器320處理,以從內容數據庫340檢索請求內容。比如,內容供應者300可以是在線內容供應者,書店,軟件供應者,或任意其它希望將例如文檔等內容提供給用戶的內容供應者。
在接收到來自用戶系統400的內容請求后,內容供應者300將所請求內容和關于被保護內容的附加信息送回到用戶系統。這個附加信息可以包括簡檔表標識。另外,附加信息可以包括指示用戶系統以請求簡檔表的信息,和在啟用內容前的完整性驗證。
##因而,在存儲在一個或多個存儲器420和存儲設備440中的控制器410的指示下,用戶系統400通過I/O控制器430,接收一個或更多的所需內容,附加信息和簡檔表標識。
在一個示范實施例中,內容供應者300可以啟動,諸如來自完整性驗證和確認設備260的,對完整性簡檔表的服務請求20。完整性驗證和確認設備260通過I/O控制器230并結合控制器210和存儲器220,接收來自內容供應者300的服務請求。
如上所述,完整性驗證和確認設備200包括構件數據庫260和簡檔表數據庫270。構件數據庫260存儲屬于系統和系統構件的,可以由一個或更多的內容消費系統/應用程序供應者500分發的認證信息。類似地,簡檔表數據庫270為一個或多個單個內容供應者300存儲可驗證信息和一系列要消費被保護文件內容的注冊系統構件。
這樣,在為完整性簡檔表接收來自內容供應者300的請求后,在控制器210的指引下和存儲器220的協助下,完整性驗證和確認設備200查找構件數據庫260和簡檔表數據庫270,確定是否已經存在對應于服務請求信息的認證信息。
另外,完整性驗證和確認設備200可以執行在線驗證服務。在線驗證服務提供比如在完整性驗證和確認設備200內實時執行在線完整性驗證。為啟動這個服務,將一個稱作完整性認證器的軟件轉送到用戶系統400。完整性認證器采集本地軟件和/或硬件構件的信息。另外,完整性認證器可以是專用設備,諸如圖2所示的完整性認證設備。采集的關于本地軟件和/或硬件構件信息和完整性簡檔表標識一起被返回給完整性驗證和確認設備200,從而執行在線完整性檢驗。構件注冊設備250檢查來自各自的供應者的軟/硬件構件,并在構件數據庫260中存儲標識信息。屬于軟/硬件構件的信息可以被進行散列操作,又散列值可以用作真實軟件/硬件的標識。但是須注意,標識各個軟/硬件構件的信息可是任何已知的或未來將開發的能允許對硬件和/或軟件的真實片段進行標識的方法。
在下面敘述特定軟件和/或硬件構件的注冊。例如,內容消費系統/應用程序供應者500可與完整性驗證和確認設備200的通信以請求注冊服務,或者,另一方面,標識和驗證確認設備200也可與內容消費系統/應用程序供應者500通信以確保認證信息。在這個例子中,注冊應用程序設備540結合控制器510,存儲器520和I/O控制器530,查找一個或多個應用程序數據庫550和系統數據庫560,以確保關于特定軟件和/或硬件的信息,例如供應者名稱,構件標識,諸如序列號,版本號,創建號等,或應用程序本身。
例如,在一個特別的操作情景中,完整性驗證和確認設備200可以從內容消費系統/應用程序供應者500請求諸如軟件應用程序的特定應用程序,而不是從該特定內容消費系統供應者500處獲取認證信息。這樣,完整性驗證和確認設備200不需要認證信息,就可以直接從內容消費系統/應用程序供應者500確保特定的軟件應用程序。
構件注冊設備250驗證構件信息,可任選地計算可被例如用于作為真實的軟件和/或硬件標識的散列值。然后,構件注冊設備250在構件數據庫260中存儲構件信息和散列值。
另一方面,內容消費系統/應用程序供應者500可以不發送軟件和/或硬件構件到注冊應用程序設備540,而是連接到構件注冊設備250,以下載小的諸如注冊應用程序的軟件應用程序,并在本地執行這個程序。這個注冊應用程序將檢查目標軟件/硬件構件,并且將屬于這個軟件/硬件構件的信息或許和諸如散列值的完整性數據一起,發送回到隨后可能在構件數據庫260中存儲關于該構件的認證信息的構件注冊設備250。
另外,簡檔表創建設備280為軟件創建完整性簡檔表。特別地,可以從構件數據庫檢索各個軟件應用程序的諸如散列值的完整性數據并將其存儲。該簡檔表還包括了任選的構件間的互動關系。這種關系用于標識構件的調用和返回次序,防止構件和其它構件發生不希望的交互動作。然后,對完整性簡檔表的內容作數字化簽名,并把所產生的簽名添加到完整性簡檔表。每個完整性簡檔表與唯一的標識相關聯。
圖3示出了由完整性驗證和確認設備200提供的輸入,輸出,服務和操作的示范性工作流程。特別對于構件注冊服務,可把關于特別構件的構件標識以及任選地把它的元信息轉送到構件注冊設備250。構件注冊設備250在構件數據庫中注冊該構件,并可帶有所需的特征,目的和行為。然后,構件注冊設備250將已注冊的構件的標識返回到例如內容消費系統/應用程序供應者,并使該標識可用于例如內容供應者300。
在簡檔表創建中,簡檔表創建設備280接收已注冊構件的標識。已注冊構件標識可先與相關構件信息(如果有的話)結合,然后數字化簽名并被存儲到簡檔表數據庫中。將完整性簡檔表標識返回給請求者。
類似的,簡檔表分發設備290接收完整性簡檔表標識。然后,詢問簡檔表數據庫270,確定對應于完整性簡檔表標識的完整性簡檔表是否可供使用。如果可以,則將完整性簡檔表返回給請求者。不然,則在簡檔表創建設備280的輔助下,確定完整性簡檔表。
簡檔表驗證設備295接收識別一個或更多的構件和完整性簡檔表標識的信息。簡檔表驗證設備比較構件標識,完整性簡檔表標識和相應的完整性簡檔表,來確定驗證數據。如果簡檔表與構件和標識符合,則驗證了系統的完整性。不然,該系統就不是完整性簡檔表所指定的系統,或在某些方面被改動了。
圖4示出了示范的完整性簡檔表。通過簡檔表創建設備280可以創建這個示范完整性簡檔表。為了給已認證的內容供應者建立完整性簡檔表,可開始請求創建一個完整性簡檔表。例如,供應者可以與完整性驗證和確認設備200接觸,請求創建完整性簡檔表,然后發送軟件和/或硬件構件的名稱清單給完整性驗證和確認設備200。接著,簡檔表創建設備280,從構件數據庫260檢索諸如各個構件的完整性或散列值的標識。然后,該設備確定各個構件的包含諸如完整性或散列值的認證信息的完整性簡檔表,和其它信息,諸如完整性簡檔表標識,版本號,創建日期,構成日期,內容供應者名稱,以及例如可任選的任何軟件和/或硬件構件間的互動關系。
簡檔表創建設備280將已確定的完整性簡檔表轉送到隨后可對簡檔表內容簽名的數字簽名器240。然后,簡檔表創建設備280在簡檔表數據庫270中存儲已簽名簡檔表,并且將簡檔表標識返回內容供應者300。
在創建例如用于被保護文檔內容的使用許可時,內容供應者300能夠任選地在使用許可中包括完整性簡檔表標識。在用戶系統400上,完整性簡檔表將被用于驗證鑒別在環境調用堆棧中的所有軟件/硬件構件。這保證只能由授權的軟件/硬件構件或任何它們的組合消費敏感信息。
簡檔表分發設備290接收為得到完整性簡檔表的請求,從簡檔表數據庫270檢索它們,并將完整性簡檔表返回到各個請求者。類似地,簡檔表驗證設備295接收為一個或多個系統環境驗證用戶系統的請求。該簡檔表驗證設備295根據完整性簡檔表,采集關于軟件/硬件構件的信息,將信息與簡檔表核對,并且將核對后的結果返回請求者。
用戶系統400包括完整性認證設備450。后者例如可在任何內容消費應用程序的頂層運行。
這樣,圖5示出在用戶系統400上的驗證系統完整性的示范系統環境堆棧。特別地,用戶系統環境堆棧包括完整性認證器和一個或多個系統構件。
圖6示出了環境堆棧的示例,它包括完整性認證器,插件,翻譯(render)應用程序,操作系統,操作系統(OS)引導,和各個硬件。
在示范操作環境中,完整性認證設備450包含它自己的加密/解密密鑰對和標識驗證和確認設備的驗證密鑰。對于這個發明的防篡改方面,這些密鑰可以隱藏在和/或嵌入在完整性認證設備400中。對那些需要使用用戶信息或包含敏感文檔和數據的應用程序,完整性認證設備450可以使用相關聯的完整性簡檔表,來驗證所有在用戶系統環境的調用堆棧上的軟件/硬件構件。
完整性驗證設備450先用完整性驗證和確認設備的驗證密鑰來驗證簡檔表的簽名。如圖7-9所示,一旦驗證了該簽名,完整性認證設備450檢查當前調用堆棧,并用在完整性簡檔表中提供的信息,開始認證在調用堆棧上的各個軟件/硬件構件。該調用堆棧是由存儲圖像和所包含的函數或程序組成的連續存儲塊。該堆棧以后進先出的概念操作,且堆棧的基本操作是堆棧“壓入”和堆棧“彈出”。壓入用于把圖像存儲到堆棧上,推進到堆棧頂部的位置。彈出用于把數據從堆棧中移出,并將堆棧頂部恢復到先前的位置。
對于調用堆棧,當前執行的函數的圖像處于堆棧頂部。在當前執行的函數啟用或調用下一個函數后,下一個函數的存儲圖象壓入到調用堆棧頂部,而調用堆棧的頂部指向下一個函數的圖像。各部分堆棧圖象在完成調用函數的執行后,將包含地址或返回指令。
圖10示出怎樣保護執行環境。特別為保護完整性認證器(IA),由作為IA一部分的信任的應用程序監控該IA的執行。該監控進程,諸如應用程序,可以是防止IA被系統中任意其它進程或應用程序監測的調試器或特定進程。在這樣的環境中,當進程只能由一個進程調試時,該信任的監控程序能夠用作調試器。由于監控程序是信任的應用程序,監控程序的完整性必需處于當前完整性簡檔表中。因此,IA在加載和運行前,將核對該信任的應用程序的完整性。信任的監控應用程序的一個功能是防止IA被其它進程監控,控制和捕獲。該應用程序的另一個功能是監控當前環境,并確定環境中的改變是否是有效的。不過和IA相似,也必需保護被信任的控應用程序,而IA則扮演了保護信任的監控應用程序不被其它應用程序監控,捕獲和/或控制的監控器的角色。這樣的雙重保護機制創造了防止其它應用程序監控該完整性認證器運行的封閉系統。
圖11示出操作完整性驗證和確認設備的示范方法。具體而言,控制從步驟S100開始,接著執行步驟S110。在步驟S110,確定完整性簡檔表。在下面的步驟S120,驗證完整性簡檔表。其后,在步驟S130,將完整性簡檔表轉送給用戶。然后控制進入步驟S140。
在步驟S140,核對用戶系統的完整性。接著,在步驟S150,確定用戶系統是否是真實的。如果用戶系統是真實的,則控制進入允許用戶訪問所需內容的步驟S160。不然,控制跳到拒絕訪問內容的步驟S170。然后,控制進入控制流程結束的步驟S180。
圖12示出根據本發明的注冊構件/硬件和/或軟件的示范方法。具體而言,控制從步驟S200開始,進入步驟S210。在步驟210,開始注冊服務。下面,在步驟S220,構件供應者提供關于特定構件/硬件和/或軟件的認證信息。然后,在步驟230,驗證關于特定構件/硬件和/或軟件的信息。接著,控制進入步驟S240。
在步驟240,確定完整性值是否需要被確定。如果需要,則控制進入確定完整性值的步驟250。不然,控制跳到存儲關于構件/硬件和/或軟件的認證信息的步驟260。
下面,在步驟S270,確定是否要存儲完整性值。如果需要,控制進入存儲完整性值的步驟S280。不然,如果不需要存儲完整性值,控制跳到控制流程結束的步驟S290。
圖13示出根據本發明確定簡檔表的示范方法。具體而言,控制從步驟S300開始,進入步驟S310。在步驟S310,開始確定簡檔表。下面在步驟S320,得到諸如構件和/或硬件或軟件的標識的名稱。然后,在步驟S330,檢索用于構件/硬件或軟件的標識。接著,控制進入步驟S340。
在步驟S340,確定完整性簡檔表。下面,在步驟S350,數字化簽名完整性簡檔表。然后,在步驟S360,存儲已數字簽名的完整性簡檔表。接著,控制進入步驟S370。
在步驟S370,已簽名的完整性簡檔表隨后被轉送到請求者,諸如內容消費系統/應用程序供應者.然后控制進入控制流程結束的步驟S380。
圖14示出了根據根據一個方面的驗證完整性認證器的完整性的示范方法。控制從步驟S400開始,并進入步驟S410。在步驟S410,核對完整性認證器的完整性。下面,在步驟S420,確定完整性認證器是否有效。如果有效,控制進入步驟S430,不然,控制跳到步驟S540。
在步驟S430,建立防篡改環境。下面在步驟S440,驗證完整性簡檔表。然后,在步驟S450,確定完整性簡檔表是否有效。如果有效,控制進入步驟S460,不然,控制跳到步驟S540。
在步驟S460,加載完整性簡檔表。下面,在步驟S470,構造關于圖6示出的當前運行環境的調用堆棧。在調用堆棧的底部是一系列硬件和/或設備,而所有的軟件構件朝著堆棧頂部。堆棧中的構件關系是,較低的構件調用就在其上的那個構件。一旦構建了調用堆棧,就定位了包含最近被執行構件的運行圖象的堆棧頂部。這樣,在堆棧中各個構件的執行圖象幫助識別調用構件。然后,在步驟S480,檢索調用構件的標識。接著,控制進入步驟S490。
在步驟S490,將構件的完整性與完整性簡檔表核對。下面,在步驟S500,確定構件是否有效。如果有效,控制進入步驟S510。不然,控制跳到步驟S540。
在步驟S510,確定堆棧是否為空。如果堆棧為空,控制跳到步驟S520。不然,控制跳到步驟S530。在步驟S520,定位堆棧中的下一個構件,并把該構件設置為當前堆棧幀。然后,控制回到步驟S480進行驗證。
在步驟S530,完成完整性驗證,控制進入控制流程結束的步驟S550。
在步驟S540,完整性檢查失敗,控制進入控制流程結束的步驟S550。
如圖1-2所示,完整性驗證和確認設備較佳地用單程序通用計算機或分立程序通用計算機來實現。不過,該設備也能夠用專用計算機,編程微處理器或微控制器和外圍集成電路,ASIC,或其它集成電路,數字信號處理器,諸如分立元件電路的硬布線電子或邏輯電路,諸如PLA,PLD,FPGA,PAL等的可編程邏輯設備來實現。一般而言,可實現有限狀態機器的任何設備從而可實現圖11-14中示出流程圖,從而可用于實現完整性驗證和確認設備。
此外,在各種計算機或工作站硬件平臺中,提供可移植源代碼的環境內,使用對象或面向對象軟件開發技術的軟件中,易于實現所述方法。另外,所揭示的完整性驗證和確認設備可部分或完全地用標準邏輯電路或VLSI結構的硬件來實現。是否使用軟件或硬件來實現根據本發明系統和方法取決于系統需要的速度和/或效率,特定的功能以及準備使用的特定的硬件或軟件系統,或微處理器或微型計算機系統。不過,本領域的普通技術人員,無需對所述功能描述進行過多試驗,就可易于將上述完整性驗證和確認設備和方法,采用任何已知的或未來將開發的系統、結構、設備和/或軟件加上計算機技術的知識以硬件或軟件來實現。而且,所揭示的方法易于作為在可編程的通用計算機,專用計算機,微處理器,服務器等設備上的被執行的軟件而實現。在這種情況下,本發明的方法和系統可用作嵌入在個人計算機或服務器中的例行程序而實現,這種例行程序比如是作為服務器或圖形工作站的資源的JAVA或CGI腳本,嵌入在專用完整性驗證和確認設備,web瀏覽器,web TV界面,PDA界面,多媒體演示設備等中。通過將該系統和方法物理結合到諸如圖形工作站或專用完整性驗證和確認設備的軟件和/或硬件系統中,也可以實現該完整性驗證和確認設備。
顯然,本發明提供了用于完整性驗證的系統和方法。本發明已描述了較佳的實施例,而對本領域的普通技術人員而言,相應的替換方案,修改和變化是顯然的。因此,申請人認為,在本發明的精神和范圍中包含了所有這樣的替換方案,修改和變化。
權利要求
1.一種在內容消費或計算環境中提供被保護的執行環境的系統,所述系統包括至少一個用于內容消費的應用程序,在所述被保護的執行環境中運行;完整性認證器,用于在運行所述被保護的執行環境中的應用程序之前驗證所述用于內容消費的應用程序的完整性;以及監控器,用于保護所述完整性認證器以及所述在被保護執行環境中運行的用于內容消費的應用程序不被監控或調試。
2.如權利要求1所述的系統,其特征在于,所述系統還包括至少一個完整性簡檔表,所述完整性簡檔表包括在所述被保護執行環境中運行的應用程序的標識和完整性信息。
3.如權利要求1所述的系統,其特征在于,所述完整性認證器當被運行時驗證所述監控器的完整性,而如果驗證了所述監控器的完整性則運行所述監控器。
4.如權利要求1所述的系統,其特征在于,所述完整性認證器在運行所述用于內容消費的應用程序之前運行所述監控器。
5.如權利要求1所述的系統,其特征在于,所述完整性認證器保護所述監控器不被監控或調試。
6.一種在內容消費或計算環境中提供被保護的執行環境的方法,所述方法包括建立被保護的執行環境,用于保護在所述被保護執行環境中消費的內容;保護在所述被保護執行環境中消費的內容,其中所述保護步驟進一步包括驗證消費所述被保護執行環境中的內容的應用程序的完整性;如果驗證了所述應用程序的完整性,則運行該應用程序;和監控所述應用程序不被監控或調試。
7.如權利要求6所述的方法,其特征在于,所述建立步驟包括運行完整性認證器,該完整性認證器當被運行時,驗證用于內容消費的應用程序的完整性,且如果驗證了所述應用程序的完整性則運行該應用程序;驗證所述監控器的完整性,且如果驗證了所述監控器的完整性則運行該監控器。
8.如權利要求6所述的方法,其特征在于,所述被保護的執行環境包括至少一個完整性簡檔表。
9.如權利要求6所述的方法,其特征在于,所述建立步驟進一步包括驗證所述完整性簡檔表的完整性并加載所述完整性簡檔表。
全文摘要
諸如文檔發行者或分發者的內容供應者,向用戶提供例如被保護內容,以用于在信任的用戶環境中的消費。通過提供完整性驗證和確認設備,驗證內容消費環境的真實性。內容供應者將包括例如許可協議和完整性簡檔表標識的被保護的數字內容版本,轉送給用戶。該簡檔表包括例如被允許與被保護內容結合使用的應用程序和系統構件。此外,內容供應者啟動對完整性簡檔表的請求。該對完整性簡檔表的請求被轉送到完整性驗證和確認設備。如果不存在用于所請求的應用程序和/或系統構件的完整性簡檔表,則完整性驗證和確認設備能夠詢問將系統構件供應給用戶的內容消費系統/應用程序供應者。該供應者返回關于特定應用程序或系統構件的完整性驗證和確認設備的驗證信息。該信息在用戶系統上的應用程序和/或系統構件與由內容消費系統/應用程序供應者分發的原始應用程序或系統構件之間,進行比較或完整性驗證。
文檔編號G06F21/00GK1953459SQ20061013658
公開日2007年4月25日 申請日期2001年8月28日 優先權日2000年8月28日
發明者T·塔, X·王 申請人:康坦夾德控股股份有限公司