專利名稱:實施計算機策略的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及實施計算機策略的系統(tǒng)和方法。
背景技術(shù):
公司安全策略(SPs)是公司安全管理的極其重要的部分。當允許雇員帶著組織機構(gòu)的最重要的資產(chǎn)-信息隨意走動時,所述策略將處于嚴重的危險之中。這是非常重要的問題也很難令人滿意地解決。例如,公司策略可以要求公司的任何便攜式電腦保護存儲在其上的任何數(shù)據(jù),SP使數(shù)據(jù)被盜,也就是即使對手能夠在物理上訪問所述便攜式電腦并且其被帶到公司范圍外(策略通常在公司范圍以內(nèi)實施)。相似地,被雇員以授權(quán)的形式帶回家的公司便攜式電腦仍然應該由公司策略進行管理,即使該便攜式電腦是在公司場所的外面。 現(xiàn)有的安全策略管理起來通常是復雜且耗時的,那是由于當雇員在辦公室之間移動和在公司范圍內(nèi)外的多種不同計算設備上工作的時侯需要復制加密密鑰(encryptionkey)。當雇員離職時,需要廢除所有的對應的加密密鑰。這些密鑰管理的分配,對于試圖在流動和不斷變化的勞動力上實施安全策略的公司意味著極大的成本。
發(fā)明內(nèi)容
本發(fā)明的目的是至少緩解這些困難。根據(jù)本發(fā)明的第一方面,提供了實施計算機策略的方法,包括(a)定義策略,所述策略用于通過密鑰控制用戶對客戶端設備上的敏感數(shù)據(jù)的訪問;(b)在服務器上存儲所述策略和相關(guān)的密鑰;(C)查明用戶的身份,并且通過所述客戶端設備的安全環(huán)境使用密碼確認所述客戶端設備的身份和可信性;(d)當策略允許時,將所述密鑰從服務器安全傳送至客戶端設備的安全環(huán)境;和(e)所述密鑰向用戶提供對所述敏感數(shù)據(jù)的訪問而不向用戶泄露密鑰。根據(jù)第二方面,提供了實施計算機策略的系統(tǒng),包括(a)存儲了策略和相關(guān)的密鑰的服務器,所述策略用于控制用戶對客戶端設備上的敏感數(shù)據(jù)的訪問;(b)由用戶操作的客戶端設備,所述設備包括持有所述密鑰的安全環(huán)境,當策略允許時,所述密鑰允許用戶對所述客戶端設備上加密的敏感數(shù)據(jù)的訪問而不向用戶泄露密鑰;(C)裝置,所述裝置用于查明用戶的身份,并且用于使用密碼確認所述客戶端設備的身份和可信性;和(d)裝置,當策略允許時,所述裝置用于將所述密鑰從所述服務器安全傳送至所述客戶端設備的安全環(huán)境。
本發(fā)明的另一方面提供了一種為了執(zhí)行加密操作而訪問遠程服務器上存儲的密鑰的方法,包括確定用戶的身份;使用密碼確認客戶端設備 的身份;確定用戶的身份和客戶端設備的身份是否滿足遠程服務器上存儲的訪問條件;當滿足所述訪問條件時將所述密碼從所述遠程服務器安全傳送至所述客戶端設備;和使用密鑰以執(zhí)行加密操作而不向用戶泄露所述密鑰所述。所述方法可以用于控制用戶對以加密的形式存儲在所述客戶端設備上的數(shù)據(jù)的訪問。然后所述密碼操作可以包括對數(shù)據(jù)進行解密。所述方法可以進一步地包括,所述密碼向用戶提供對已解密數(shù)據(jù)的訪問而不向用戶泄露密鑰。這個方面延伸到客戶端設備,客戶端設備配置為允許使用密碼確認所述設備的身份;從遠程服務器接收安全傳送的密鑰;并且并且使用所述密鑰以執(zhí)行加密操作而不向用戶泄露密鑰。數(shù)據(jù)可以以加密的形式存儲在所述客戶端設備上,所述設備配置為,使用所述密鑰對數(shù)據(jù)進行解密并且向用戶提供對已解密數(shù)據(jù)的訪問。這個方面進一步地延伸到服務器,密鑰和訪問條件存儲在服務器上,其中服務器被配置為確定用戶的身份和客戶端設備的身份是否滿足所述訪問條件;和當滿足所述訪問條件時將所述密鑰安全傳送至所述客戶端設備。訪問條件可以與所述客戶端設備上以加密的形式存儲的加密密鑰和/或數(shù)據(jù)有關(guān)。除了用戶身份的概念并且獨立于用戶身份的概念,機器身份用于使復雜的并且更有表現(xiàn)力的策略能夠被定義和實施。這允許系統(tǒng)管理員指定特定的用戶能夠做什么,并且同樣地指定用戶在使用特定的機器時可以做什么。優(yōu)選地,客戶端設備包括安全密碼處理器或硬件安全模塊。這樣可以提供安全環(huán)境(例如,可信平臺模塊)。優(yōu)選地,設備配置為使用安全密碼處理器以允許使用密碼確認設備的身份。優(yōu)選地,設備配置為使用安全密碼處理器以執(zhí)行密碼操作,例如使用密鑰對存儲在設備上的數(shù)據(jù)進行解密。然而專用的硬件安全環(huán)境不是必需的,并且在一些實施例中,客戶端設備可以使用在微控制器或中央處理器(CPU)上運行的軟件以創(chuàng)建安全環(huán)境。這樣的裝置可以用于執(zhí)行密碼操作和/或允許使用密碼核實設備的身份。所述客戶端設備優(yōu)選地配置為在易失性存儲器(例如,RAM)中持有密鑰并且在執(zhí)行密碼操作之后從存儲器中清除所述密鑰。優(yōu)選地,服務器配置為確認客戶端設備的身份。用戶的身份可以由客戶端設備和/或遠程服務器核實??蛻舳嗽O備可以配置為確認服務器的身份。用于保護客戶端設備上的敏感數(shù)據(jù)的全部密鑰優(yōu)選地存儲在中央服務器上,并且優(yōu)選地從不存儲在客戶端機器的本地磁盤上。這減少了便攜式客戶端設備的失竊的影響一存儲在這樣的設備上的加密的數(shù)據(jù)不能恢復,因為必需的解密密鑰將不可用。待解密的數(shù)據(jù)可以是任何類型;例如,它們可以包括電子郵件消息的全部或部分。所述密鑰可以由客戶端設備用于任何的多種目的;例如,解密數(shù)據(jù)、加密數(shù)據(jù)、給數(shù)據(jù)簽名或與遠程設備建立安全會話。訪問條件可以制定安全策略。與實施計算機策略的現(xiàn)有方法相反,在優(yōu)選的實施例中-密鑰(用于保護數(shù)據(jù))優(yōu)選地不長期地存儲在客戶端設備上;-系統(tǒng)可以控制客戶端密鑰是否對客戶端設備可用(從而實施策略),這是因為其遠程識別設備和用戶的身份以及核實遠程設備的完整性的能力。 這允許了服務器中心策略甚至在遠程設備上的實施。所述策略實施可以在任何分布式環(huán)境中發(fā)生(例如,云計算)。所述密鑰可以對于用戶是特定的。遠程服務器可以傳送一個或多個證書以及所述密鑰。它可以將多個密鑰傳送至客戶端設備。在一些實施例中,可信計算用于策略的實施,覆蓋了包含特定用戶的保密的密鑰的用戶配置文件的下載。這與其他的應用(例如,可信軟件下載應用)在以下方面有所區(qū)別-用戶配置文件對于用戶是特定的,不是軟件的通用部分;-對用戶配置文件的特定部分的訪問的基于策略的控制使得對保密且私有的密鑰的訪問的基于策略的控制能夠以靈活的方式實施——例如,策略可以允許低級密鑰向廣泛種類的平臺發(fā)布,但是只允許高級密鑰下載到非常特定的可能的軟件狀態(tài)集合的非常特定的平臺上;-用戶配置文件的基于策略的控制使得許多其他的應用成為可能,因為它給出了對密鑰(它們自身可以用于控制對深層的服務和/或信息的訪問)的靈活的訪問。在適當?shù)那闆r下,一個方面的任何可選功能可以是任何其他的方面的可選功能。
具體實施例方式現(xiàn)在僅通過示例來描述本發(fā)明的某些優(yōu)選的實施例。優(yōu)選的實施例包含下列設備I.服務器計算設備,優(yōu)選地提供網(wǎng)絡服務;2.用戶代理客戶端設備,其配有符合可信計算組(Trusted Computing Group)規(guī)范的可信平臺模塊(TPM)(或提供相似的安全服務的任何其他設備或系統(tǒng))。每一個用戶代理的TPM配有公共/私有密碼密鑰(cryptographic key)對,提供唯一的用戶代理(機器)身份的基礎(chǔ)。由于其設計方式,并且考慮到其防篡改特性,TPM私鑰從不會在TPM外部可用,使得客戶端設備的身份盜用非常困難??蛻舳?服務器協(xié)議為使服務器核實用戶代理的身份,并因此在策略實施中使用該身份,應用如下的協(xié)議I.用戶代理/客戶端設備對服務器進行核實。這通過核實服務器產(chǎn)生的簽名和檢查服務器的公鑰來完成(在用戶代理中編程)。2.服務器通過詢問TPM核實用戶代理。服務器質(zhì)詢TPM,請求TPM使用屬于TPM的私鑰計算簽名。注意,TPM的私鑰從不在未加密的形式下離開TPM,因而不會被盜(例如,通過運行在客戶端平臺上的惡意軟件)。一旦用戶代理的物理設備的身份已經(jīng)通過驗證,則經(jīng)過恰當?shù)挠脩趄炞C機制執(zhí)行用戶核實,例如,涉及密碼、密碼密鑰對和/或生物統(tǒng)計學。系統(tǒng)允許對設備和用戶的任意組合的識別,即,單一用戶可以利用多個設備,并且單一設備可以由多個用戶利用。然后可以相應地實施策略。 遠稈地核實用戶代理策略可以限制系統(tǒng)功能,例如通過在連接至公司VPN時禁止未受控制的因特網(wǎng)連接,避免經(jīng)過(不安全的)因特網(wǎng)的數(shù)據(jù)泄漏??梢詫τ脩舸磉M行編程以實施所述策略。然而,通過密鑰的服務器控制和在客戶端平臺上的TPM的組合使用,我們描述的解決方案還可以向服務器保證策略實際上正在實施。設想惡意的、被修改的用戶代理向服務器報告其正在實施策略,然而事實上沒有。服務器可以經(jīng)過遠程系統(tǒng)的TPM核實遠程系統(tǒng)的完整性,并且因此使用如下過程檢測被修改的用戶代理的存在。I.在引導時,TPM核實操作系統(tǒng)的完整性,并且安全地對測量進行記錄,該測量描述已經(jīng)加載的軟件的特征。2.操作系統(tǒng)(其完整性由在引導時進行的TPM測量保證)核實用戶代理的完整性。所述測量的結(jié)果也在內(nèi)部存儲于TPM。3.當服務器驗證了遠程設備的身份時,它也確認了所述遠程設備的完整性。即,驗證過程涉及步驟I和2提到的完整性測量從TPM至服務器的轉(zhuǎn)移;所述轉(zhuǎn)移以這樣的一種方式發(fā)生,即服務器可以核實所述測量確實來自嵌入與服務器通信的平臺的真實TPM。這由TPM使用可核實為對于所述TPM唯一的私鑰對測量完整性進行數(shù)字簽名來完成。這個過程稱為證明(attestation)。4.服務器為客戶端平臺進行完整性測量,并且判定這是否表明處理環(huán)境與正在實施的安全策略一致。5.如果滿足策略要求,則服務器以如下方式將密碼密鑰轉(zhuǎn)移至設備,即客戶端平臺只能在步驟3中發(fā)送的完整性測量仍然是有效的情況下對其解密。這使用了稱為密封存儲(例如,在Bryan Parno 2007年6月21日的論文可信平臺模塊(TPM)和密封存儲(TheTrusted Platform Module (TPM) and Sealed Storage)中描述的,該論文可見于 www. rsa.com/rsalabs/technotes/tpm/sealedstorage. pdf )的功能。這有效地將安全策略束縛于下載至客戶端平臺的密鑰集,即,使得密鑰只對滿足策略要求的客戶端平臺可用。這個過程說明了用于確保在遠程設置中實施策略的機器身份的概念的重要性。服務器中心的密鑰管理和使用基于TPM完整性測量的組合被認為是本發(fā)明獨有的。基于密鑰的策略實施策略可以并且通常確實限制了對客戶端設備上擁有的敏感數(shù)據(jù)的訪問。假定解密必需的密鑰是保密的,則加密的數(shù)據(jù)可以自由地透露。因而,限制數(shù)據(jù)訪問的問題可以轉(zhuǎn)換成密鑰管理問題;通過拒絕用戶訪問密鑰,用戶不能訪問(加密的)數(shù)據(jù)。以這種方式執(zhí)行策略控制提供了極大的優(yōu)點,尤其對遠程設備。如果遠程設備擁有明文數(shù)據(jù)并且被盜,則數(shù)據(jù)可以通過分析硬盤內(nèi)容直接讀取,而不管任何操作系統(tǒng)實施的訪問約束或TPM的存在。這在數(shù)據(jù)是加密的并且必要的解密密鑰沒有存儲在客戶端設備上的情況下是不可能的。為了實施關(guān)于敏感數(shù)據(jù)的處理的策略,使用如下機制I.用在服務器上產(chǎn)生和保存的密鑰對數(shù)據(jù)進行加密。2.如果正在實施的策略允許用戶訪問數(shù)據(jù),則服務器只在用戶代理的主機和用戶已經(jīng)得到認證之后向用戶代理透露必要的解密密鑰。終端用戶從來不會從用戶代理得知密鑰,因為密鑰從不(以明文的形式)存儲在客戶端機器的硬盤上并且只存儲在被保護的存儲器中,使(比方說)調(diào)試程序不能訪問。實施這些特性是因為系統(tǒng)的完整性已經(jīng)由服務器(例如,使用TPM證明過程)核實。因為終端用戶從來不會得知解密密鑰,所以可以通過從 用戶代理的存儲器中簡單地消除密鑰來廢除所述密鑰并因此廢除數(shù)據(jù)訪問。3.為了允許離線的數(shù)據(jù)訪問,用戶代理可以(服從于策略)將數(shù)據(jù)加密密鑰以加密的形式存儲在磁盤上。用于加密數(shù)據(jù)密鑰的密鑰使用TPM的密封存儲功能保護,由于TPM的防篡改特性使得未授權(quán)的恢復是不切實際的。僅當客戶端系統(tǒng)運行恰當?shù)能浖?包括合法的用戶代理)時,TPM將允許加密密鑰被解密(使用密封存儲功能)。將對策略(和密鑰)進行管理的服務器中心(server-centricity)以及將核實策略實施并允許離線的數(shù)據(jù)使用的安全環(huán)境(例如TPM)的使用的新穎組合,實現(xiàn)了在遠程設備上的健壯的基于服務器的公司策略管理和實施。配置文件轉(zhuǎn)移我們現(xiàn)在轉(zhuǎn)向詳細解釋將用戶配置文件從服務器轉(zhuǎn)移至客戶端設備。導言這里使用的術(shù)語“配置文件(profile)”是指在中央服務器上存儲的一組特定用戶的數(shù)據(jù)。所述配置文件包括事物,例如,涉及個人的密碼密鑰和策略信息(例如,他/她被授權(quán)使用哪些應用,以及在什么情況下應該將密鑰下載至客戶端)。寬松地使用術(shù)語配置文件——通過對根據(jù)客戶端正在使用的類型的要素的選擇和/或下載時的特定用戶要求,僅將配置文件信息的一部分下載至客戶端機器也許是適宜的。我們把對配置文件轉(zhuǎn)移協(xié)議的描述分成三個階段初步(準備)階段和兩個主要階段。對于每一個有關(guān)的實體,準備階段只執(zhí)行一次,而另外兩個階段在用戶希望利用客戶端機器(即,每次會話)時都會執(zhí)行。在此分別地描述所述主要階段(階段I和II)以簡化解釋;然而,在實踐中,實現(xiàn)方式可以重疊,例如,可以在發(fā)送實現(xiàn)階段I的消息的同時發(fā)送一些實現(xiàn)階段II的消息。每個用戶和每個服務器必須在參與協(xié)議前執(zhí)行準備階段。這個階段將建立全部必要的長期密鑰和用戶配置文件。一旦執(zhí)行,通常不會再次執(zhí)行準備階段,除非已經(jīng)發(fā)生安全損害或者用戶狀態(tài)已經(jīng)改變。階段I計劃使客戶端平臺和服務器能夠分享保密的會話密鑰,其可以接著用于在階段II中保護用戶配置文件的轉(zhuǎn)移。在階段II中,客戶(安全地)從服務器請求配置文件,可以使用在階段I中建立的會話密鑰對所述請求進行驗證。例如,請求可以指出需要哪種類型的密鑰。然后服務器選擇配置文件的有關(guān)部分發(fā)送至用戶,產(chǎn)生任何必要的短期密鑰對和/或保密的密鑰,產(chǎn)生任何必要的短期公鑰證書,并且收集待發(fā)送至用戶的材料。然后,配置文件數(shù)據(jù)包使用在階段I中建立的會話密鑰來加密并進行完整性保護,并且將所述數(shù)據(jù)包發(fā)送至客戶端。在從服務器收到配置文件數(shù)據(jù)后,客戶端對其核實并解密,并且處理信息以便使用。準備階段初步階段的目的是用資源配備在方案中涉及的各方,所述各方需要所述資源來參與協(xié)議。我們把這個討論分成三個部分,覆蓋了對于服務器、用戶和客戶的準備需求。服務器準備建立服務器以支持方案,發(fā)生如下步驟
I.安裝必要的軟件。2.做出準備,使用戶配置文件和用戶密碼能夠安全地存儲。用戶準各為使用戶開始使用方案,執(zhí)行如下步驟I.用戶建立與服務器的關(guān)系。這可以(例如)是付費合同關(guān)系(服務器向用戶提供服務),或者因用戶的雇用“默認”出現(xiàn)的關(guān)系,其中服務器由雇主或代表雇主運行。2.用戶選擇一個或多個證書授權(quán)中心(Certificate Authorities (CAs)),其將負責產(chǎn)生用戶公鑰的證書。當然,依據(jù)服務器-用戶關(guān)系,這可以由服務器為用戶自動地完成。3.用戶建立與服務器共享的保密的密碼。4.服務器為用戶創(chuàng)建配置文件。用戶指定(或已經(jīng)自動地選擇)需要哪種類型的密鑰。然后服務器將產(chǎn)生必要的保密的密鑰和非對稱密鑰對,并且從一個或多個CAs獲得公鑰的證書。(注意,只有需要作為用戶配置文件的一部分的長期密鑰可以是簽名密鑰對。)5.然后服務器將安全地把文檔(包含,例如,保密的密鑰、非對稱密鑰對和伴隨的公鑰證書)連同用戶密碼或其他的用戶識別細節(jié)一起存儲。注意,每一個密鑰有與它相關(guān)的某種信息,包括它使用的算法的標識符、計劃的使用(例如,加密、產(chǎn)生MAC、產(chǎn)生簽名、等)、和有效期??蛻魷蕚錇槭箍蛻舳嗽O備由用戶用作方案的一部分,執(zhí)行如下步驟I.在客戶端上安裝適當?shù)能浖?然而,這可以通過在使用時將其從服務器下載而動態(tài)地執(zhí)行,例如,Java小應用程序(J ava applet))。2.初始化客戶端機器的TPM,并且使得服務器能夠處理包含在客戶端機器上使用的TPM的類型或其他的安全環(huán)境的平臺。階段I這個階段的主要的目標是在客戶端機器和服務器之間建立短期的保密的會話密鑰?,F(xiàn)在我們討論實現(xiàn)協(xié)議的這個階段的可能的方式。注意,為了確保配置文件只在運行可信賴的軟件的平臺上可用,可信的計算功能可以用于核實在接收者(客戶端)平臺上的軟件環(huán)境。這應該以如下方式完成,即只有可信賴的平臺將有權(quán)訪問短期的會話密鑰。沒有所述密鑰,從服務器發(fā)送至客戶端的配置文件不能被解密,并且因此對客戶端不可用,即,通過訪問短期的會話密鑰施加了策略控制。下面討論建立短期密鑰的可能的方法。之后討論這個過程可以依靠可信的計算來完成的方式。平凡的方法一種非常簡單的方法是雙方簡單地從共享的保密的密碼獲取密鑰。為了確保每一個會話使用不同的密鑰,雙方中的一方可以首先產(chǎn)生隨機數(shù)r (例如,128比特的),并且將其發(fā)送至另一方。然后服務器和客戶端雙方都產(chǎn)生會話密鑰K = h(p I Ir),其中h是密碼哈希函數(shù)(例如,SHA-256,[5]),P是用戶的保密的密碼,并且| |表示比特串的連接。當非常簡單的時候,這樣的方法有重大的缺點。如果攻擊者截取了 r并且也截取了使用會話密鑰K加密的一些數(shù)據(jù),那么當P取自過小的可能性集合時,進行如下的離線字典攻擊(offine dictionary attack)是可能的: -攻擊者每次一個地遍歷全部可能的密碼集,以如下的簡單方式消除不正確的“猜測”。假定P*是密碼的候選值。攻擊者使用截取的r的值,計算對應的候選會話密鑰K*=h(p*| Ir)。然后攻擊者使用K*嘗試解密截取的密文;如果結(jié)果不產(chǎn)生明文,于是可以排除所述候選密碼。事實上,通過容易地存儲取自很大的集合的密碼來防止所述攻擊是有些困難的。即使我們假設用戶選擇8個字符的密碼,每個字符不是字母就是數(shù)字,那么可能的密碼的數(shù)量只是368 2.8X1012。遍歷這樣大小的集合不是不可行的(雖然是非平凡的)。從而需要使用更健壯的方法,例如,下文建議的方法?;赟SL的方法另一個相關(guān)地簡單的方法要求服務器首先建立與客戶端機器的安全套接字層(SSL)會話??蛻舳藱C器需要方法來核實與適當?shù)姆掌鞯臅捯呀?jīng)準備好。這可以(例如)涉及將軟件下載至預先配有服務器公鑰可信拷貝的客戶端。一旦SSL會話到位,則客戶端軟件可以提示用戶輸入他的/她的密碼,于是密碼可以發(fā)送至服務器(經(jīng)過SSL信道)來核實。因為密碼在加密的信道上通信(由SSL提供),所以保護了所述密碼以防止被攔截者泄密。SSL信道也可以在階段II使用,以提供配置文件的安全方法。這種方法有一個重大的缺點??蛻舳吮仨毦哂蟹椒▉砗藢嵠湔谂c正確的服務器會話,否則將發(fā)動中間人(man-in-the-middle)攻擊。如果由客戶端使用的軟件包含服務器的公鑰,則避免了這個問題——然而,這的確意味著將在客戶端機器上使用的軟件必須是個人專用的,以包括與用戶具有信任關(guān)系的特定服務器的公鑰。可能存在很難安排以上方法的情況。通過下面馬上描述的解決方案避免了上述的問題?;跇藴实姆椒ù嬖谠S多已得到認可的協(xié)議,其設計用于使得保密的會話密鑰能夠使用用戶可存儲的密碼來建立,建立的方式使離線字典攻擊是不可能的。此外,所述協(xié)議也可以設計用于挫敗更多的主動攻擊(只要一些測量到位,以對失敗的驗證嘗試進行計數(shù)并采取適當?shù)膶Σ?O在IS0/IEC 11770-4[6]的附文6中說明了三個這樣的協(xié)議,在那里稱作密鑰協(xié)商機制(Key Agreement Mechanisms) I、2和3。全部這些機制被認為是安全的,并且它們中的任何將適于在方案中使用。接下來我們考慮它們各自的優(yōu)點和缺點。安全特件在IS0/IEC 11770-4中的全部三個機制具有非常相似的安全特征。唯一的重大的差異(以現(xiàn)在的了解)是機制I需要服務器知道密碼,而其他的兩個機制只需要服務器存儲密碼的哈希值。后者的特性將具有一些(小的)實用的優(yōu)點。實現(xiàn)議是頁在選項之間存在一些特性上的差異,如下-機制I(SPEKE)可以使用三個消息流實現(xiàn);機制2 (SRP6)和3 (AMP)需要至少四個消息流;
-機制I和3兩者都可以在“標準的”離散日志設置和橢圓曲線設置中實現(xiàn);-機制2只可以在“標準的”離散日志設置中實現(xiàn);-全部三個機制被認為有相似的計算成本,雖然差異還沒有詳細地檢查過。俥用SPEKE的實現(xiàn)為了闡明上述的討論,我們給出在使用IS0/IEC 11770-4的機制I的情況下對階段I的簡化描述。I.提供用戶名和密碼。用戶將需要運行客戶端軟件并且使客戶端軟件配有用戶的名稱和密碼。在該階段可以適于使用戶來提供附加信息,例如用戶希望具有的從服務器下載的密鑰的類型(這樣的信息將在階段II使用)。2.請求配置文件(階段I)??蛻舳塑浖又鴮⑾蚍掌靼l(fā)送消息,以請求配置文件下載進程的啟動。3.建立會話密鑰(階段I)。服務器和客戶端現(xiàn)在使用SPEKE協(xié)議(如IS0/IEC11770-4 [6]的附文6. I規(guī)定的),以建立共享的保密的密鑰。現(xiàn)在我們更詳細地解釋怎樣可以實現(xiàn)步驟2和3。參照IS0/IEC11770-4[6]的附文6. I中的描述。我們假設客戶端對應11770-4中的A并且服務器對應B。I.客戶端軟件使用用戶提供的密碼π,執(zhí)行附文6. I. 3中規(guī)定的密鑰令牌建立步驟(Al)。2.客戶軟件將Wa與用戶名和開始配置文件下載的請求一起發(fā)送至B。3.在收到來自客戶端的消息之后,服務器從用戶配置文件(由用戶名索引)恢復用戶密碼η,并且使用η執(zhí)行6. I. 3附文中規(guī)定的密鑰令牌建立步驟(BI)。4.服務器將Wb發(fā)送至A。5.服務器使用在步驟Β2中接收的Wa的值,以獲得共享的保密的密鑰6.從服務器收到消息之后,客戶端使用在步驟Α2中接收的%值,以同樣獲得共享的保密的密鑰Ki。注意,密鑰確認步驟被省略了,因為階段II提供了一定程度的(單向)密鑰確認。還要注意,可能對客戶端(A)很有幫助的是在上述步驟2中產(chǎn)生隨機會話標識符并且將其發(fā)送至服務器(B)。然后服務器應該在步驟4中將所述標示符發(fā)回客戶端,使客戶端能夠匹配對請求的響應。階段II
這個階段的主要目的是將用戶配置文件數(shù)據(jù)從服務器安全地下載至客戶端機器。有多種的方式可以實現(xiàn)所述目的。我們給出一個選項。轉(zhuǎn)移協(xié)議采用了如下通用形式。I.客戶端一服務器請求配置文件該請求消息指明客戶端機器需要哪種類型的密鑰。例如,如果用戶只需要執(zhí)行簽名操作,則將要提供給用戶的配置文件信息只需要包括簽名私鑰(和用于對應的公鑰的證書)。注意,該消息可以與階段I中的消息之一同時發(fā)送。然而,可能需要完整保護并且(有可能)加密所述消息。假如這樣的話,則只能在客戶端機器已經(jīng)獲得會話密鑰的拷貝之后再發(fā)送所述消息。
2.服務器準備配置文件一旦服務器已經(jīng)接收(并且核實)了請求,其執(zhí)行對于準備待發(fā)送至客戶端機器的數(shù)據(jù)來說必要的任務。全部必要的密鑰和證書接著被放進格式化的配置文件,準備下載至客戶。3.服務器一客戶端加密的配置文件一旦服務器已經(jīng)收集了包括密鑰和證書的配置文件數(shù)據(jù),該數(shù)據(jù)可以被發(fā)送至客戶。在傳送以前,應該由服務器使用會話密鑰將該數(shù)據(jù)加密。加密方法應該提供機密性和完整性保護,并且強烈推薦IS0/IEC19772[7]中包含的技術(shù)之一。注意,該消息可以與階段I中的消息之一同時發(fā)送,只要必要的會話密鑰對服務器是可用的。4.客戶端處理接受的配置文件最后,收到加密的配置文件之后,客戶端可以使用保密的會話密鑰核實并解密該配置文件。如上所述,通常將為每個用戶產(chǎn)生配置文件。用戶配置文件將包含一系列密鑰和證書。每當建立了會話以后,這些密鑰和證書中的一些或全部則可以被發(fā)送至客戶端機器。所述方法的優(yōu)點是,當客戶請求配置文件時,服務器將不需要產(chǎn)生任何新的密鑰或證書,因為全部必要的密鑰在先前已經(jīng)產(chǎn)生了。同樣地,每一個公鑰具有與它相關(guān)的單一的證書(由可信的CA簽名)。然而,所述方法的缺點是,如果客戶端機器曾經(jīng)泄密,則用戶的長期私鑰也泄密了。此外,當密鑰廢除是可能的時候,這將僅在探測到泄密的情形下發(fā)生,而且并不總是這樣。最后注意,可能存在需要“拆開”配置文件的需求,以向客戶端主機上的其他應用提供密鑰和/或證書。如果私鑰接著處于本發(fā)明的系統(tǒng)的直接控制之外,將難以確保在會話結(jié)束時刪除這些密鑰??尚庞嬎愕氖褂檬聦嵤?,客戶端設備不是可信賴的,并帶來重大的安全風險。如果服務器能夠核實在向客戶端下載配置文件之前正確的軟件在客戶端上運行(而且客戶端操作系統(tǒng)環(huán)境是安全的),則可以極大地改進配置文件的安全。這樣的性能由可信計算提供(例如,見[8])。該技術(shù)目前以專用安全芯片(稱為可信平臺模塊(TPM))的形式存在于大部分新的PC中。所述技術(shù)允許一個設備遠程地核實另一個平臺上運行的軟件的特性,并且限制訪問關(guān)于特定軟件配置的機密。這些特性的出現(xiàn)將理想地適于上述的操作模型?,F(xiàn)在我們考慮可信計算功能,其可以用于使得配置文件轉(zhuǎn)移過程策略受到控制。如上所述,這涉及訪問短期的會話密鑰,前提是服務器滿意遠程客戶端平臺的狀態(tài)。相關(guān)工作如果遠程平臺處于某一狀態(tài)中(正如使用可信計算功能所測試的),只允許特定情況發(fā)生的一般概念是已得到認可的一個概念。可信網(wǎng)絡連接(TNC)協(xié)議使用可信計算來決定是否準許客戶端PC聯(lián)網(wǎng)。在決定是否準許客戶端聯(lián)網(wǎng)之前,服務器需要客戶端提供其軟件配置的證據(jù)。TNC已經(jīng)由可信計算組織(http://www. trustedcomputinggroup. org)標準化,對其操作的簡單描述請見,例如,Rehbock和Hunt [9]。 這個一般性想法也已經(jīng)被推薦作為保護敏感軟件的方法(只通過將所述軟件下載至可核實為處于在可信狀態(tài)的平臺)。這個想法已經(jīng)由Gallery、Tomlinson、Delicata和Mitchell 描述了 [I]、[2]、[3]、[4]。簡單的方法最簡單的方法是,服務器在商定保密的密鑰的過程臨近開始之前要求可信平臺證實其當前的軟件配置。這假定客戶端平臺具有TPM,并且客戶端上的軟件能夠使用TPM來存儲表明TPM內(nèi)的PCRs (平臺配置寄存器)(Platform Configuration Registers)中客戶端平臺的當前狀態(tài)的測量。然后證明過程進行如下操作。I.服務器向客戶端發(fā)送隨機質(zhì)詢和PCRs的序列號,其希望具有對所述序列號的值的保證。2.客戶端將該信息傳送至其TPM,TPM對包含隨機質(zhì)詢和請求的PCRs (和它們的指針)的當前值的字符串進行數(shù)字簽名。3.然后所述簽名傳遞回服務器,服務器可以核實簽名(并且檢查隨機質(zhì)詢的新鮮度)并且因此核實這些PCR值是客戶端平臺的當前軟件狀態(tài)的精確記錄。使用證明身份密鑰和簽名密鑰計算簽名,簽名密鑰的私有值只對TPM是可用的。相關(guān)的(用于核實簽名)公鑰的有效性可以通過服務器檢查公鑰證書來核實,所述公鑰證書也由客戶提供。然后服務器可以核實PCR值與策略語句認為可接收的軟件配置匹配,所述策略語句與相關(guān)的用戶配置文件有關(guān)。如果(并且僅僅是如果)策略認為所述配置是可接受的,則服務器繼續(xù)建立共享的保密的密鑰,如上所述。更健壯的方法上面剛剛描述的方法的一個問題是,客戶端的軟件狀態(tài)在測量發(fā)生時和建立共享的保密的密鑰時之間改變的可能性。通過把證明過程與共享的保密的密鑰的建立相結(jié)合可以除去所述問題。完成這個的方法已經(jīng)在文獻中進行了描述——請見,例如,Gallery、Tomlinson、Delicata和 Mitchell[I]、[2]、[3]、[4]。參考文獻[1]E. Gallery and A. Tomlinson, “有條件訪問應用向移動接收器的安全傳送(Secure delivery of conditional access applications to mobile receivers),,,in:C.J. Mitchell (ed.),可信計算(Trusted Computing),IEE Press,2005,pp. 195-237。[2]E. Gallery and A. Tomlinson,“對SDR設備上的可下載軟件的保護(Protection of Downloadable Software on SDR Devices)”,in:軟件無線電技術(shù)會議(Software Defined Radio Technical Conference) SDR 05,11 月(November) 2005。[3]E. Gallery, A. Tomlinson and R. Delicata,“向移動接收器的安全視頻廣播的可信計算應用(Application of Trusted Computing to Secure Video Broadcasts toMobile Receivers)”,技術(shù)報告(Technical Report)RHUL-MA-2005-ll,倫敦大學皇家霍洛威學院數(shù)學系(Department of Mathematics, Royal Holloway, University of London),6月(June) 2005。[4]E. M. Gallery and C. J. Mitchell,“可信計算技術(shù)及其在高保證SDR平臺的提供中的應用(Trusted computing technologies and their use in the provision ofhigh assurance SDR platforms)”,in:軟件無線電技術(shù)會議2006(Proc. of 2006Software Defined Radio Technical Conference),奧蘭多(Orlando),佛羅里達(Florida),11 月(November) 2006。[5] IS0/IEC 10118-3:2003,信息技術(shù)-安全技術(shù)-哈希函數(shù)(InformationtechnoIogy-Security techniques-Hash functions) :Part3 :專用哈希函數(shù)(Dedicated hash-functions).國際標準化組織(International Organization forStandardization),日內(nèi)瓦(Geneva),2003。[6] IS0/IEC 11770-4:2006,信息技術(shù)-安全技術(shù) _ 密鑰管理(InformationtechnoIogy-Security techniques-Key management):Part4 :基于弱 f呆密白勺機制(Mechanisms based on weak secrets).國際標準化組織(International Organizationfor Standardization),日內(nèi)瓦(Geneva),2006。 [7] IS0/IEC 19772:2009,信息技術(shù)-安全技術(shù)-驗證的加密(InformationtechnoIogy-Security techniques-Authenticated encryption).國際標準化組織(International Organization for Standardization),日內(nèi)瓦(Geneva),2009。[8]C. Mitchell (ed.),可信計算(Trusted Computing) · IEE Press,倫敦(London)2005o[9]S. Rehbock and R. Hunt,“可信賴客戶端將TNC延伸至基于網(wǎng)絡的環(huán)境(Trustworthy clients !Extending TNC to web-based environments),,·計算機通訊(Computer Communications) 32 (2009) 1006-1013。
權(quán)利要求
1.一種為了執(zhí)行密碼操作而訪問遠程服務器上存儲的密鑰的方法,包括 確定用戶的身份; 使用密碼驗證用戶設備的身份; 確定用戶的身份和客戶端設備的身份是否滿足遠程服務器上存儲的訪問條件; 當滿足所述訪問條件時將所述密鑰從所述遠程服務器安全傳送至所述客戶端設備;和 使用所述密鑰執(zhí)行密碼操作而不向用戶透露所述密鑰。
2.根據(jù)權(quán)利要求I所述的方法,其適于控制用戶對以加密的形式存儲在所述客戶端設備上的數(shù)據(jù)的訪問,其中所述密碼操作包括對數(shù)據(jù)進行解密,并且所述方法進一步地包括向用戶提供對已解密數(shù)據(jù)的訪問。
3.根據(jù)權(quán)利要求I或2所述的方法,其中所述密碼操作包括對數(shù)據(jù)進行加密或簽名。
4.根據(jù)上述任一權(quán)利要求所述的方法,其中所述客戶端設備包括安全密碼處理器。
5.根據(jù)上述任一權(quán)利要求所述的方法,其中所述客戶端設備包括可信平臺模塊。
6.根據(jù)上述任一權(quán)利要求所述的方法,包括使用安全密碼處理器,以允許使用密碼確認所述客戶端設備的身份,或者以執(zhí)行所述密碼操作。
7.根據(jù)權(quán)利要求I至4中任一所述的方法,包括所述客戶端設備在微控制器或中央處理器單元上運行軟件,以允許使用密碼確認所述設備的身份,或者以執(zhí)行所述密碼操作。
8.根據(jù)上述任一權(quán)利要求所述的方法,包括所述客戶端設備在易失性存儲器中持有所述密鑰并且在執(zhí)行所述密碼操作之后從存儲器中清除所述密鑰。
9.根據(jù)上述任一權(quán)利要求所述的方法,包括所述服務器確認所述客戶端設備的身份。
10.根據(jù)上述任一權(quán)利要求所述的方法,包括所述服務器核實用戶的身份。
11.根據(jù)上述任一權(quán)利要求所述的方法,包括所述客戶端設備確認所述服務器的身份。
12.根據(jù)上述任一權(quán)利要求所述的方法,其中所述密鑰對于用戶是特定的。
13.根據(jù)上述任一權(quán)利要求所述的方法,包括所述遠程服務器傳送一個或多個證書以及所述密鑰。
14.根據(jù)上述任一權(quán)利要求所述的方法,包括所述遠程服務器向所述客戶端設備傳送多個密鑰。
15.一種客戶端設備,配置為 允許使用密碼確認所述設備的身份; 從遠程服務器接收安全傳送的密鑰;并且 使用所述密鑰執(zhí)行密碼操作而不向用戶透露所述密鑰。
16.根據(jù)權(quán)利要求15所述的客戶端設備,數(shù)據(jù)以加密的形式存儲在所述客戶端設備上,所述客戶端設備被配置為,使用所述密鑰對數(shù)據(jù)進行解密并且向用戶提供對已解密數(shù)據(jù)的訪問。
17.根據(jù)權(quán)利要求15或16所述的客戶端設備,其中所述密碼操作包括對數(shù)據(jù)進行加密或簽名。
18.根據(jù)權(quán)利要求15至17中任一所述的客戶端設備,包括安全密碼處理器。
19.根據(jù)權(quán)利要求15至18中任一所述的客戶端設備,包括可信平臺模塊。
20.根據(jù)權(quán)利要求15至19中任一所述的客戶端設備,其配置為使用安全密碼處理器,以允許使用密碼確認所述客戶端設備的身份,或者以執(zhí)行所述密碼操作。
21.根據(jù)權(quán)利要求15至20中任一所述的客戶端設備,其配置為在微控制器或中央處理器單元上運行軟件,以允許使用密碼確認所述客戶端設備的身份,或者以執(zhí)行所述密碼操作。
22.根據(jù)權(quán)利要求15至21中任一所述的客戶端設備,其配置為在易失性存儲器中持有所述密鑰并且在執(zhí)行所述密碼操作之后從存儲器中清除所述密鑰。
23.根據(jù)權(quán)利要求15至22中任一所述的客戶端設備,其配置為確認所述服務器的身份。
24.一種服務器,密鑰和訪問條件存儲在所述服務器上,其中服務器被配置為 確定用戶的身份和客戶端設備的身份是否滿足所述訪問條件;和 當滿足所述訪問條件時將所述密鑰安全傳送至所述客戶端設備。
25.根據(jù)權(quán)利要求24所述的服務器,其中訪問條件與所述客戶端設備上以加密的形式存儲的數(shù)據(jù)有關(guān)。
26.根據(jù)權(quán)利要求24或25所述的服務器,其配置為確認所述客戶端設備的身份。
27.根據(jù)權(quán)利要求24至26中任一所述的服務器,其配置為核實用戶的身份。
28.根據(jù)權(quán)利要求24至27中任一所述的服務器,其配置為傳送一個或多個證書以及所述密鑰。
29.根據(jù)權(quán)利要求24至28中任一所述的服務器,其配置為向所述客戶端設備傳送多個密鑰。
30.一種實施計算機策略的方法,包括 (a)定義策略,所述策略用于通過密鑰控制用戶對客戶端設備上的敏感數(shù)據(jù)的訪問; (b)在服務器上存儲所述策略和所述相關(guān)的密鑰; (c)查明用戶的身份,并且通過所述客戶端設備的安全環(huán)境使用密碼確認所述客戶端設備的身份和可信性; (d)當策略允許時,將所述密鑰從服務器安全傳送至客戶端設備的安全環(huán)境;和 (e)向用戶提供對所述敏感數(shù)據(jù)的訪問而不向用戶透露所述密鑰。
31.根據(jù)權(quán)利要求30所述的方法,其中所述密鑰在使用時被保存在所述客戶端設備受保護的存儲器中。
32.根據(jù)權(quán)利要求30所述的方法,其中所述密鑰僅以加密的形式對于所述客戶端設備的用戶是可見的。
33.根據(jù)權(quán)利要求30至32中任一所述的方法,其中所述安全環(huán)境是可信平臺模塊(TPM)并且其中所述客戶端設備的身份和可信性由TPM證明過程進行核實。
34.根據(jù)權(quán)利要求33所述的方法,當權(quán)利要求33引用權(quán)利要求32時,其中所述密鑰用第二密鑰進行加密,所述第二密鑰由TPM密封存儲進行保護。
35.根據(jù)權(quán)利要求31所述的方法,其中如果用戶或客戶端設備不再服從策略,所述密鑰通過從被保護的存儲器中刪除而被廢除。
36.根據(jù)權(quán)利要求30所述的方法,包括初始的準備階段,在所述準備階段中配置,所述服務器和所述客戶端設備以創(chuàng)建和分享保密的會話密鑰。
37.根據(jù)權(quán)利要求36所述的方法,包括下載階段,在所述下載階段中,所述策略和相關(guān)的密鑰從服務器下載至客戶端設備,所述下載階段由保密的會話密鑰進行保護。
38.根據(jù)權(quán)利要求30至37中任一所述的方法,其中與特定用戶相關(guān)的策略和密鑰預先生成并且作為用戶配置文件存儲在服務器上。
39.根據(jù)權(quán)利要求38所述的方法,當權(quán)利要求38引用權(quán)利要求37時,在所述下載階段期間,只下載配置文件的在使用中對特定的客戶端設備可用的部分。
40.一種實施計算機策略的系統(tǒng),包括 (a)存儲了策略和相關(guān)的密鑰的服務器,所述策略用于控制用戶對客戶端設備上的敏感數(shù)據(jù)的訪問; (b)由用戶操作的客戶端設備,所述設備包括安全環(huán)境,所述安全環(huán)境持有允許用戶訪問所述安全環(huán)境的所述密鑰,當策略允許時,所述密鑰在客戶設備上加密敏感數(shù)據(jù)而不向用戶透露密鑰; (C)裝置,所述裝置用于查明用戶的身份,并且用于使用密碼確認所述客戶端設備的身份和可信性;和 (d)裝置,當策略允許時,所述裝置用于將所述密鑰從所述服務器安全傳送至所述客戶端設備的安全環(huán)境。
41.根據(jù)權(quán)利要求40所述的系統(tǒng),所述系統(tǒng)中的安全環(huán)境是可信平臺模塊(TPM)。
全文摘要
本發(fā)明涉及實施計算機策略的系統(tǒng)和方法,其使用中央服務器來管理用戶配置文件、策略和密鑰。服務器只在檢查出策略已經(jīng)被遵守之后向客戶端設備安全供應密鑰。所述檢查包括用戶的身份和客戶端設備的機器身份。密鑰存放在客戶端設備的安全環(huán)境中(例如在可信平臺模塊(TPM)中),并且一直保持終端用戶不可訪問。便攜式客戶端設備的失竊或丟失不會導致任何加密的數(shù)據(jù)泄密,因為需要對數(shù)據(jù)進行解密的密鑰不是從安全環(huán)境中可獲取的。
文檔編號G06F21/00GK102812684SQ201180012382
公開日2012年12月5日 申請日期2011年1月11日 優(yōu)先權(quán)日2010年1月11日
發(fā)明者G·錢德拉斯卡蘭 申請人:森特里克斯信息安全技術(shù)有限公司