專利名稱:使用分發(fā)cd將直接證明私鑰傳遞給設備的方法
背景1.領域本發(fā)明一般涉及計算機安全,尤其涉及安全地將密碼密鑰分發(fā)給處理系統(tǒng)中的設備。
2.描述某些處理系統(tǒng)體系結構支持的內容保護和/或計算機安全特征要求,即特別受保護或“可信”的軟件模塊能夠創(chuàng)建與處理系統(tǒng)中特定受保護或“可信”的硬件設備(諸如,例如圖形控制器卡)的經(jīng)認證的加密的通信會話。用于標識設備同時建立加密的通信會話的一種常用的方法是使用單邊認證的Diffie-Helman(DH)密鑰交換處理。在這種處理中,設備被分配唯一的公共/私有Rivest、Shamir和Adelman(RSA)算法密鑰對或唯一的橢圓曲線密碼(ECC)密鑰對。然而,因為這種認證處理使用RSA或ECC密鑰,因此設備具有唯一且可證實的身份,而這可能引起私密性問題。在最壞的情況中,這些問題可能導致缺乏原始設備制造商(OEM)對構建提供這種安全性的可信設備的支持。
附圖簡述通過閱讀本發(fā)明的以下詳細描述,本發(fā)明的特征和優(yōu)點將變得顯而易見,附圖中
圖1示出了以使用根據(jù)本發(fā)明的一個實施例操作的可信平臺模塊(TPM)實現(xiàn)的平臺為特征的系統(tǒng);圖2示出了包括圖1的TPM的平臺的第一實施例。
圖3示出了包括圖1的TPM的平臺的第二實施例。
圖4示出了以圖2的TPM實現(xiàn)的計算機系統(tǒng)的示例性實施例。
圖5是根據(jù)本發(fā)明的一個實施例的用于分發(fā)直接證明密鑰的系統(tǒng)的示意圖。
圖6是示出根據(jù)本發(fā)明的一個實施例的分發(fā)直接證明密鑰的方法的各階段的流程圖。
圖7是示出根據(jù)本發(fā)明的一個實施例的設備制造設置處理的流程圖。
圖8是示出根據(jù)本發(fā)明的一個實施例的設備制造生產處理的流程圖。
圖9是根據(jù)本發(fā)明的一個實施例的客戶計算機系統(tǒng)設置處理的流程圖。
圖10是根據(jù)本發(fā)明的一個實施例的客戶計算機系統(tǒng)處理的流程圖。
詳細描述使用基于直接證明的Diffie-Helman密鑰交換協(xié)議來允許受保護/可信的設備來認證自己并建立與可信的軟件模塊的加密通信會話,這避免在處理系統(tǒng)中創(chuàng)建任何唯一身份信息,從而避免引入私密性問題。然而,在生產線上的設備中直接嵌入直接證明私鑰比其它方法需要設備上的更多受保護的非易失性存儲,從而增加了設備的成本。本發(fā)明的一個實施例是允許直接證明私有密鑰(例如,用于簽署)以安全的方式在分發(fā)光盤只讀存儲器(CD-ROM)上傳遞并隨后由設備自己安裝在設備中的方法。本發(fā)明中提供的方法被設計成使得設備不必為安裝過程揭示身份信息。在一個實施例中,支持這種能力所需的設備存儲可能從大約300-700字節(jié)減少到大約20字節(jié)。對設備實現(xiàn)基于直接證明的Diffie-Helman密鑰交換所需的非易失性存儲的數(shù)量上的這一減少可使得這種技術能被更廣泛地采用。
本說明書中對本發(fā)明的“一個實施例”或“實施例”的引用意味著,結合該實施例描述的特定特征、結構或特性被包括在本發(fā)明的至少一個實施例中。因此,在說明書各處出現(xiàn)的短語“在一個實施例中”的出現(xiàn)不必全部指的是同一實施例。
在以下描述中,某些術語用于描述本發(fā)明的一個或多個實施例的某些特征。例如,“平臺”被定義為適用于發(fā)送和接收信息的任何類型的通信設備。各種平臺的示例包括,但不限于或約束于計算機系統(tǒng)、個人數(shù)字助理、手機、機頂盒、傳真機、打印機、調制解調器、路由器等?!巴ㄐ沛溌贰北粚挿旱囟x為適用于平臺的一個或多個信息承載介質。各種類型的通信鏈路的示例包括但不限于或約束于電線、光纖、電纜、總線跡線或無線信號發(fā)送技術。
“質詢者”指的是向另一實體請求某種真實性或權限的驗證的任何實體(例如,個人、平臺、系統(tǒng)、軟件和/或設備)。正常地,這是在公開或提供所請求的信息之前執(zhí)行的?!绊憫摺敝傅氖潜徽埱筇峁ζ錂嘞蕖⒂行院?或身份的某種證明的任何實體?!霸O備制造商”可與“證書制造商”互換使用,它指的是制造或配置平臺或設備的任何實體。
如此處所使用的,向質詢者“證實”或“使之確信”響應者擁有或了解某些密碼信息(例如,數(shù)字簽名、諸如密鑰等秘密等)意味著,基于向質詢者公開的信息和證明,響應者具有該密碼信息的可能性很高。向質詢者對此進行證實而不向質詢者“揭示”或“公開”該密碼信息意味著,基于對質詢者所公開的信息,質詢者在計算上無法確定密碼信息。
這樣的證明在后文中被稱為直接證明。術語“直接證明”指的是零知識證明,因為這些類型的證明在本領域中是公知的。具體地,如此處所引用的特定直接證明協(xié)議是于11/27/2002提交的轉讓給本發(fā)明的所有者的名為“System and Method forEstablishing Trust Without Revealing Identity(用于建立信任而不揭示身份的系統(tǒng)和方法)”的共同待審專利申請第10/306,336號的主題。直接證明定義了其中發(fā)布者定義了共享如由發(fā)布者定義的公共特征的一族多個成員的協(xié)議。發(fā)布者生成將該族表示為一個整體的族公鑰和私鑰對(Fpub和Fpri)。使用Fpri,發(fā)布者也可為族中的每一個別成員生成唯一的直接證明私有簽署密鑰(DPpri)。由個別DPpri簽署的任何消息可使用族公鑰Fpub來驗證。然而,這樣的驗證僅標識該簽署者是族中的成員;而不會暴露關于個別成員的任何唯一標識信息。在一個實施例中,發(fā)布者可以是設備制造商或代表。即,發(fā)布者可以是具有基于共享的特征定義設備族、生成族公鑰/私鑰對、以及創(chuàng)建DP私有密鑰并將其注入設備中的能力的實體。發(fā)布者也可為族公鑰生成標識密鑰來源和設備族特征的證書。
現(xiàn)在參考圖1,示出了以根據(jù)本發(fā)明的一個實施例操作的可信硬件設備(被稱為“可信平臺模塊”或“TPM”)實現(xiàn)的平臺為特征的系統(tǒng)的一個實施例。第一平臺102(質詢者)發(fā)送請求第二平臺104(響應者)提供關于其自身的信息的請求106。響應于請求106,第二平臺104提供所請求的信息108。
此外,為加強安全性,第一平臺102可能需要驗證所請求的信息108是來自由所選的一個或一組設備制造商(后文中稱之為“設備制造商110”)制造的設備。例如,在本發(fā)明的一個實施例中,第一平臺102質詢第二平臺104,要求它示出其具有由設備制造商110生成的密碼信息(例如,簽名)。質詢可被包含在請求106內(如圖所示)或作為單獨的發(fā)送。第二平臺104通過以回復的方式提供信息來回復該質詢,以使第一平臺102確信第二平臺104具有由設備制造商110生成的密碼信息而不揭示該密碼信息。回復可以是所請求信息108的一部分(如圖所示)或作為單獨的發(fā)送。
在本發(fā)明的一個實施例中,第二平臺104包括可信平臺模塊(TPM)115。TPM115是由設備制造商110制造的密碼設備。在本發(fā)明的一個實施例中,TPM 115包括含有密封在封裝內的少量片上存儲器的處理器。TPM 115被配置成向第一平臺102提供信息,該信息這可使其確定回復是從有效TPM發(fā)送的。所使用的信息是不會使TPM或第二平臺的身份可能被確定的內容。
圖2示出了具有TPM 115的第二平臺104的第一實施例。對本發(fā)明的該實施例,第二平臺104包括耦合至TPM 115的處理器202。一般而言,處理器202是處理信息的設備。例如,在本發(fā)明的一個實施例中,處理器202可被實現(xiàn)為微處理器、數(shù)字信號處理器、微控制器或甚至狀態(tài)機?;蛘?,在本發(fā)明的另一實施例中,處理器202可被實現(xiàn)為可編程或硬編碼的邏輯,諸如現(xiàn)場可編程門陣列(FPGA)、晶體管-晶體管邏輯(TTL)邏輯或甚至專用集成電路(ASIC)。
此處,第二平臺104還包括存儲單元206以允許存儲密碼信息,諸如以下的一個或多個密鑰、散列值、簽名、證書等?!癤”的散列值可被表示為“Hash(X)”。構想了如圖3中所示,這樣的信息可被存儲在TPM 115的內部存儲器220內以代替存儲單元206。密碼信息可被加密,尤其當存儲在TPM 115之外時。
圖4示出了包括以圖2的TPM 115實現(xiàn)的計算機系統(tǒng)300的平臺的實施例。計算機系統(tǒng)300包括總線302和耦合至總線302的處理器310。計算機系統(tǒng)300還包括主存儲器單元304和靜態(tài)存儲器單元306。
此處,主存儲器單元304是用于存儲信息和由處理器310執(zhí)行的指令的易失性半導體存儲器。主存儲器304也可用于在處理器310執(zhí)行指令期間存儲臨時變量或其它中間信息。靜態(tài)存儲器單元306是用于在更持久的特性上為處理器310存儲信息和指令的非易失性半導體存儲器。靜態(tài)存儲器306的示例包括,但不限于或約束于只讀存儲器(ROM)。主存儲器單元304和靜態(tài)存儲器單元306均被耦合至總線302。
在本發(fā)明的一個實施例中,計算機系統(tǒng)300還包括諸如磁盤或光盤等數(shù)據(jù)存儲設備308,其相應的驅動器也可被耦合至計算機系統(tǒng)300以便存儲信息和指令。
計算機系統(tǒng)300也可經(jīng)由總線302耦合至圖形控制器設備314,它控制諸如陰極射線管(CRT)、液晶顯示器(LCD)或任何平面顯示器等顯示器(未示出),以便向最終用戶顯示信息。在一個實施例中,可期望圖形控制器能夠與正由處理器執(zhí)行的軟件模塊建立經(jīng)認證的加密通信會話。
一般,字母數(shù)字輸入設備316(例如鍵盤,小鍵盤等)可被耦合至總線302以便向處理器310傳輸信息和/或命令選擇。另一類型的用戶輸入設備是光標控制單元318,諸如用于向處理器310傳輸方向信息和命令選擇并用于控制顯示器314上的光標移動的鼠標、跟蹤球、觸摸墊、指示筆、或光標方向鍵。
通信接口單元320也被耦合至總線302。接口單元320的示例包括用于耦合至形成局域網(wǎng)或廣域網(wǎng)的一部分的通信鏈路的調制解調器、網(wǎng)絡接口卡或其它公知的接口。以此方式,計算機系統(tǒng)300可經(jīng)由常規(guī)網(wǎng)絡基礎架構,諸如例如公司的內聯(lián)網(wǎng)和/或因特網(wǎng)被耦合至多個客戶機和/或服務器。
可以理解,某些實現(xiàn)可期望比上述更少或更多配備的計算機系統(tǒng)。從而,取決于各種因素,諸如價格約束、性能要求、技術改進和/或其它情況,對各種實現(xiàn),計算機系統(tǒng)300的配置可以有所不同。
在至少一個實施例中,即使當計算機系統(tǒng)中存在其它敵對軟件時,計算機系統(tǒng)300也可支持使用存儲在主存儲器304和/或大容量存儲設備308中并正由處理器310執(zhí)行的特別保護的“可信”軟件模塊(例如,防篡改軟件或具有運行受保護程序的能力的系統(tǒng))以便執(zhí)行特定活動。這些可信軟件模塊中的某一些要求不僅對其它平臺,而且也對同一平臺內的一個或多個外圍設備,諸如圖形控制器314的同等“可信”的受保護訪問。一般而言,這樣的訪問要求可信軟件模塊能夠標識設備的能力和/或特定身份,然后與設備建立加密會話以允許不能被系統(tǒng)中的其它軟件監(jiān)聽或哄騙的數(shù)據(jù)的交換。
標識設備并同時建立加密會話的一種現(xiàn)有技術的方法是使用單邊認證的Diffie-Hellman(DH)密鑰交換處理。在這種處理中,設備被分配唯一的公共/私有RSA或ECC密鑰對。設備持有并保護私鑰,而公鑰以及認證證書可被發(fā)布給軟件模塊。在DH密鑰交換處理期間,設備使用其私鑰簽署消息,而軟件模塊可使用相應的公鑰驗證該消息。這允許軟件模塊認證消息的確來自所感興趣的設備。
然而,因為這種認證處理使用RSA或ECC密鑰,因此設備具有唯一且可證實的身份。可使設備以其私鑰簽署消息的任何軟件模塊可證實該特定唯一設備存在于計算機系統(tǒng)中。假定設備很少在處理系統(tǒng)之間遷移,則這也表示可證實的唯一計算機系統(tǒng)身份。此外,設備的公鑰本身表示一恒定的唯一值;實際上是永久“cookie”。在某些情況中,這些特征可被認為是重要的私密性問題。
一種替換的方法在于2004年提交的轉讓給本申請的所有者的名為“AnApparatus and Method for Establishing an Authenticated Encrypted Session with aDevice Without Exposing Privacy-Sensitive Information(用于與設備建立經(jīng)認證的加密會話而不暴露私有性敏感的信息的裝置和方法)”的共同待審的專利申請第10/???,???號中描述。在這種方法中,以直接證明密鑰代替在單邊認證的Diffie-Helman處理中RSA或ECC密鑰的使用。使用這種方法的設備可被認證為屬于特定的一族設備,這可包括關于設備的行為或可信度的保證。該方法不暴露可用于建立表示該處理系統(tǒng)的唯一身份的任何唯一標識信息。
盡管這種方法工作良好,但它要求設備中的附加存儲以保存直接證明私鑰,這種密鑰可能比RSA或ECC密鑰大。為了減輕這種附加存儲要求的負擔,本發(fā)明的實施例定義用于當設備需要密鑰時確保該設備具有直接證明私鑰而無需設備中的實質上的附加存儲的系統(tǒng)和過程。
在本發(fā)明的至少一個實施例中,設備制造商僅將128位的偽隨機數(shù)存儲到生產線中的設備內,大得多的直接證明私鑰(DPpri)可被加密并使用分發(fā)CD來傳遞。其它的實施例可將長于或短于128位的數(shù)存儲到設備內。這種處理確保僅有指定設備可解密并使用其分配的DPpri密鑰。圖5是根據(jù)本發(fā)明的一個實施例的用于分發(fā)直接證明密鑰的系統(tǒng)500的示意圖。這種系統(tǒng)中存在三個實體,即設備制造受保護系統(tǒng)502、設備制造生產系統(tǒng)503和客戶計算機系統(tǒng)504。設備制造受保護系統(tǒng)包括用于設備506的制造之前的設置處理的處理系統(tǒng)。受保護系統(tǒng)502可由設備制造商操作,使得受保護系統(tǒng)針對來自設備制造位置以外(例如,它是封閉系統(tǒng))的黑客的攻擊受到保護。制造生產系統(tǒng)503可用于制造設備。在一個實施例中,受保護系統(tǒng)和生產系統(tǒng)可以是同一系統(tǒng)。設備506包括包含在客戶計算機中的任何硬件設備(例如,存儲器控制器、諸如圖形控制器、I/O設備等外圍設備等)。在本發(fā)明的實施例中,設備包括存儲在設備的非易失性存儲中的偽隨機值RAND 508。
制造受保護系統(tǒng)包括受保護數(shù)據(jù)庫510和生成功能512。受保護數(shù)據(jù)庫包括用于存儲由生成功能512按如下所述的方式生成的多個偽隨機值(對每個要制造的設備至少有一個值)的數(shù)據(jù)結構。生成功能包括邏輯(以軟件或硬件中任一種實現(xiàn))以生成此處稱為密鑰塊(keyblob)514的數(shù)據(jù)結構。密鑰塊514包括至少三個數(shù)據(jù)項。唯一直接證明私鑰(DPpri)包括可由設備用來簽署的密碼密鑰。DP私有摘要(digest)516(DPpri摘要包括根據(jù)諸如SHA-1等生成安全消息摘要的任何公知方法的DPpri的消息摘要。某些實施例可為兼容性的目的包括含有比特流的偽隨機初始化向量(IV)518作為密鑰塊的一部分。如果為加密使用流密碼,則IV用于在流密碼中使用IV的公知方法。如果為加密使用塊密碼,則IV將被用作要加密的消息的一部分,因此使得加密的每一實例不同。
在本發(fā)明的實施例中,制造受保護系統(tǒng)生成一個或多個密鑰塊(如將在以下詳細描述)并將密鑰塊存儲在CD 522上的密鑰塊數(shù)據(jù)庫520中。在一個實施例中,在單個CD上可能有多個密鑰塊,唯一的限制是CD的物理存儲限制。CD然后經(jīng)由典型的物理通道分發(fā)給計算機系統(tǒng)制造商、計算機分銷商、消費者等。盡管CD此處被描述為存儲介質,但可使用任何合適的可移動存儲介質(例如,數(shù)字多功能盤(DVD)或其它介質)。
一旦CD被插入客戶機計算機系統(tǒng)的CDROM驅動器(未示出)內之后,期望使用直接證明協(xié)議來進行認證以及與客戶計算機系統(tǒng)504內所包含的設備506的通信會話的密鑰交換的系統(tǒng)504可從CD上的密鑰塊數(shù)據(jù)庫520讀出所選密鑰塊514。密鑰塊數(shù)據(jù)可由設備使用來生成本地化的密鑰塊(如下所述)供實現(xiàn)直接證明協(xié)議使用。設備驅動程序軟件526由客戶計算機系統(tǒng)執(zhí)行來初始化并控制設備506。
在本發(fā)明的實施例中,存在四個不同的操作階段。圖6是示出根據(jù)本發(fā)明的實施例的分發(fā)直接證明密鑰的方法的各階段的流程圖600。根據(jù)本發(fā)明的實施例,某些動作可在每一階段執(zhí)行。在設備制造商處,至少存在兩個階段設置階段601和制造生產階段604。設置階段此處參考圖7描述。制造生產階段此處參考圖8描述。在具有客戶計算機系統(tǒng)的消費者處,至少存在兩個階段設置階段606和使用階段608。客戶計算機系統(tǒng)設置階段此處參考圖9描述。客戶計算機系統(tǒng)使用階段此處參考圖10描述。
圖7是示出根據(jù)本發(fā)明的實施例的設備制造設置處理的流程圖700。在一個實施例中,設備制造商可使用制造受保護系統(tǒng)502執(zhí)行這些動作。在框702處,設備制造商為要制造的每一類設備生成直接證明族密鑰對(Fpub和Fpri)。每一唯一設備將具有一DPpri密鑰,使得使用DPpri創(chuàng)建的簽名可由Fpub驗證。一類設備可包括任何設備的集合或子集,諸如所選生產線(即,設備類型)或基于版本號或設備的其它特征的生產線的子集。族密鑰對由為其生成該密鑰的一類設備使用。
對要制造的每一設備,制造受保護系統(tǒng)502的生成功能512執(zhí)行框704到720。首先,在框704處,生成功能生成唯一偽隨機值(RAND)508。在一個實施例中,RAND的長度為128位。在其它實施例中,可使用其它大小的值。在一個實施例中,多個設備的偽隨機值可預先生成。在框706處,使用設備所支持的單向函數(shù)f,生成功能從該唯一RAND值中生成對稱加密密鑰SKEY(SKEY=f(RAND))。該單向函數(shù)可以是適于該目的的任何已知算法(例如,SHA-1、MGF1、數(shù)據(jù)加密標準(DES)、三重DES等)。在框708處,在一個實施例中,生成功能通過使用SKEY加密“空條目”(例如,少量0字節(jié))來生成將用于引用分發(fā)CD 522上該設備的密鑰塊514的標識符(ID)標簽(設備ID=使用SKEY加密(0..0))。在其它實施例中,可使用生成設備ID的其它方式,或可由SKEY加密其它值。
接著,在框710處,生成功能生成與設備的族公鑰(Fpub)有關的DP私有簽署密鑰DPpri。在框713處,生成功能使用已知方法(例如,使用SHA-1或另一散列算法)對DPpri進行散列以產生DPpri摘要。在框714處,生成功能為設備構建密鑰塊數(shù)據(jù)結構。密鑰塊包括至少DPpri和DPpri摘要。在一個實施例中,密鑰塊還包括具有多個偽隨機生成的位的隨機初始化向量。這些值可使用SKEY加密以產生加密的密鑰塊514。在框716處,在框708處生成的設備ID和在框714處生成的加密的密鑰塊514可被存儲在密鑰塊數(shù)據(jù)庫520中的一條目中以便被發(fā)行給分發(fā)CD 522。在一個實施例中,密鑰塊數(shù)據(jù)庫中的條目可由設備ID指示。在框718處,當前的RAND值可被存儲在受保護數(shù)據(jù)庫510中。在框720處,可刪除SKEY和DPpri,因為它們將由設備在現(xiàn)場重新生成??扇绱嗽O計DPpri摘要的創(chuàng)建和由SKEY進行的隨后的加密,使得DPpri的內容不能被不擁有SKEY的任何實體確定,且使得密鑰塊的內容在未經(jīng)擁有SKEY的實體的隨后檢測的情況下不能被不擁有SKEY的實體修改。在其它實施例中,可使用用于提供這種秘密性和完整性保護的其它方法。在某些實施例中,可能不要求完整性保護,因此可使用僅提供秘密性的方法。在這種情況中,DPpri摘要的值將不是必需的。
在框720之后的任何時候,在框722處,RAND值的受保護數(shù)據(jù)庫可被安全地上傳到制造生產系統(tǒng)503,它將在制造處理期間將RAND值存儲到設備內。一旦驗證了這種上傳之后,RAND值可從制造受保護系統(tǒng)502中安全刪除。最后,在框724處,含有多個加密的密鑰塊的密鑰塊數(shù)據(jù)庫可被“刻錄”到公共分發(fā)CD522上。在一個實施例中,CD可沿著每一設備分發(fā),如由設備ID字段所索引的,為每一設備使用一個密鑰塊數(shù)據(jù)庫條目。此外,CD包括密鑰檢索實用軟件模塊,它的使用將在以下更詳細描述。
圖8是示出根據(jù)本發(fā)明的實施例的設備制造生產處理的流程圖800。當設備在生產線中被制造時,在框802處,制造生產系統(tǒng)從受保護數(shù)據(jù)庫中選擇未使用的RAND值。所選RAND值然后可被存儲到設備中的非易失性存儲內。在一個實施例中,該非易失性存儲包括TPM。在框804處,一旦對RAND值的存儲成功之后,制造生產系統(tǒng)毀去受保護數(shù)據(jù)庫中該設備的RAND值的任何記錄。此時,RAND值的唯一副本被存儲在設備中。
在一個替換實施例中,RAND值可在設備的制造期間創(chuàng)建,然后被發(fā)送給制造受保護系統(tǒng)以便計算密鑰塊。
在另一實施例中,RAND值可在設備上創(chuàng)建,且設備和制造受保護系統(tǒng)可訂立使用不在設備外揭示DPpri密鑰的方法生成DPpri密鑰的協(xié)議。然后設備可創(chuàng)建設備ID、SKEY和密鑰塊。設備可將設備ID和密鑰塊傳遞給制造系統(tǒng)以便存儲在受保護數(shù)據(jù)庫510中。以這種方法,制造系統(tǒng)以受保護數(shù)據(jù)庫中的相同信息(設備ID、密鑰塊)結束,而不了解RAND或DPpri的值。
圖9是根據(jù)本發(fā)明的一個實施例的客戶計算機系統(tǒng)設置處理的流程圖900??蛻粲嬎銠C系統(tǒng)可執(zhí)行這些動作作為引導系統(tǒng)的一部分。在框902處,客戶計算機系統(tǒng)可按正常方式引導,設備的設備驅動程序526可被加載到主存儲器內。當設備驅動程序被初始化并開始執(zhí)行時,設備驅動程序確定在設備506的大容量存儲設備308中是否已經(jīng)存儲了加密的本地化密鑰塊524。如果是,則無需執(zhí)行進一步的設置處理,且設置處理在框906處結束。如果否,則處理繼續(xù)至框908。在框908處,設備驅動程序引起消息對客戶計算機系統(tǒng)的用戶的顯示,要求插入分發(fā)CD 522。一旦CD被計算機系統(tǒng)讀取之后,設備驅動程序然后啟動CD上存儲的密鑰檢索實用軟件(圖5中未示出)。該實用軟件向設備506發(fā)出獲取密鑰命令以啟動設備的DP私鑰獲取過程。
作為響應,在框910處,設備使用其單向函數(shù)f來從嵌入的RAND值508重新生成對稱密鑰SKEY(現(xiàn)在供解密使用)(SKEY=f(RAND))。在框912處,設備然后通過使用SKEY來加密“空條目”(例如,少量的0字節(jié))來生成其唯一的設備ID標簽(設備ID=使用SKEY加密(0..0))。設備然后將設備ID返回給密鑰檢索實用軟件。在框914處,密鑰檢索實用軟件在CD上的密鑰塊數(shù)據(jù)庫520中搜索包含匹配的設備ID的數(shù)據(jù)庫條目,提取設備的加密密鑰塊,并將密鑰塊傳送給設備。
在一個實施例中,如果在設備具有密鑰塊之后流氓軟件試圖向設備發(fā)送獲取密鑰命令,則設備不會以設備ID響應該流氓軟件。相反,設備將返回出錯指示符。實際上,如果設備訪問了本地化的密鑰塊,則禁用獲取密鑰命令的功能。以這種方式,除非設備不含有密鑰塊,否則它不會揭示唯一設備ID。
在框916處,設備使用對稱密鑰SKEY解密加密的密鑰塊,以產生DPpri和DPpri摘要,并將這些值存儲到其非易失性存儲中(解密的密鑰塊=使用SKEY解密(IV、DPpri、DPpri摘要))。可丟棄初始化向量(IV)。在框918處,設備然后通過對DPpri進行散列并將結果與DPpri摘要進行比較來檢查DPpri的完整性。如果比較結果良好,則設備接受DPpri作為其有效密鑰。設備也可將密鑰已獲取標志置為真,以指示成功地獲取了DP私鑰。在框920處,設備選擇一新IV并使用該新IV來創(chuàng)建新的加密的本地化密鑰塊(本地化密鑰塊=使用SKEY加密(IV2、DPpri、DPpri摘要))。該新的加密的本地化密鑰塊可被返回給密鑰檢索實用軟件。在框922處,密鑰檢索實用軟件將加密的本地化密鑰塊存儲到客戶計算機系統(tǒng)內的存儲中(諸如,例如大容量存儲設備308)。設備的DPpri現(xiàn)在安全地存儲在客戶計算機系統(tǒng)中。
一旦設備在設置處理期間獲取了DPpri之后,設備則可使用DPpri。圖10是根據(jù)本發(fā)明的一個實施例的客戶計算機系統(tǒng)處理的流程圖??蛻粲嬎銠C系統(tǒng)可在設置完成之后的任何時候執(zhí)行這些動作。在框1002處,客戶計算機系統(tǒng)可按正常方式引導,設備的設備驅動程序526可被加載到主存儲器內。當設備驅動程序被初始化并開始執(zhí)行時,設備驅動程序確定在設備506的大容量存儲設備308中是否已經(jīng)存儲了加密的本地化密鑰塊524。如果否,則執(zhí)行圖9的設置處理。如果存在該設備可用的加密的本地化密鑰塊,則處理繼續(xù)至框1006。在框1006處,設備驅動程序檢索加密的本地化密鑰塊,并將密鑰塊傳送給設備。在一個實施例中,密鑰塊的傳送可通過執(zhí)行加載密鑰塊命令完成的。
在框1008處,設備使用其單向函數(shù)f從嵌入的RAND值508重新生成對稱密鑰SKEY(現(xiàn)在供解密使用)(SKEY=f(RAND))。在框1010處,設備通過使用對稱密鑰SKEY來解密加密的本地化密鑰塊,以產生DPpri和DPpri摘要,并將這些值存儲到其非易失性存儲中(解密的密鑰塊=使用SKEY解密(IV2、DPpri、DPpri摘要))??蓙G棄第二初始化向量(IV2)。在框1012處,設備通過對DPpri進行散列并將結果與DPpri摘要進行比較來檢查DPpri的完整性。如果比較結果良好(例如,摘要匹配),則設備接受該DPpri作為之前獲取的有效密鑰,并允許其使用。設備也可將密鑰已獲取標志置為真,以指示成功地獲取了DP私鑰。在框1014處,設備選擇又一IV并使用該新IV創(chuàng)建新的加密的本地化的密鑰塊(本地化密鑰塊=使用SKEY加密(IV3、DPpri、DPpri摘要))。該新的加密的本地化密鑰塊可被返回給密鑰檢索實用軟件。在框1016處,密鑰檢索實用軟件將加密的本地化密鑰塊存儲到客戶計算機系統(tǒng)內的存儲中(諸如,例如大容量存儲設備308)。設備的DPpri現(xiàn)在再次安全地存儲在客戶計算機系統(tǒng)中。
在本發(fā)明的一個實施例中,不必要一次生成所有的設備DP私鑰。假定分發(fā)CD定期更新,則設備DP私鑰可按需要按批生成。每次“刻錄”分發(fā)CD時,它將包含迄今生成的密鑰塊數(shù)據(jù)庫,包括已經(jīng)被生成但還未分配給設備的那些設備密鑰。
盡管此處討論的操作可被描述為連續(xù)的處理,但某些操作實際上可并行或并發(fā)執(zhí)行。此外,在某些實施例中,操作的順序可被重排,而不背離本發(fā)明的精神。
此處所述的技術不限于任何特定硬件或軟件配置;它們可應用于任何計算或處理環(huán)境。各種技術可以用硬件、軟件或兩者的組合實現(xiàn)。這些技術可用在可編程機器上執(zhí)行的程序來實現(xiàn),這些機器諸如移動或固定計算機、個人數(shù)字助理、機頂盒、手機和尋呼機、以及其它電子設備,它們均包括處理器、可由處理器讀取的存儲介質(包括易失性和非易失性存儲器和/或存儲元件)、至少一個輸入設備和一個或多個輸出設備。程序代碼應用于使用輸入設備輸入的數(shù)據(jù)以執(zhí)行所述功能并生成輸出信息。輸出信息可應用于一個或多個輸出設備。本領域中的普通技術人員可以理解,發(fā)明可使用各種計算機系統(tǒng)配置來實現(xiàn),包括微處理器系統(tǒng)、小型機、大型機等。本發(fā)明也可在分布式計算環(huán)境中實現(xiàn),其中任務可由經(jīng)由通信網(wǎng)絡鏈接的遠程處理設備執(zhí)行。
每一程序可使用高級過程語言或面向對象的程序設計語言來實現(xiàn)以便與處理系統(tǒng)通信。然而,如有需要,程序可使用匯編語言或機器語言來實現(xiàn)。在任何情況中,語言可被編譯或解釋。
程序指令可用于使以指令編程的通用或專用處理系統(tǒng)執(zhí)行此處所述的操作?;蛘撸僮骺捎砂糜趫?zhí)行操作的硬連線邏輯的特定硬件組件,或由已編程的計算機組件和自定義硬件組件的任何組合執(zhí)行。此處所述的方法可作為程序產品來提供,程序產品可包括其上存儲有可用于對處理系統(tǒng)或其它電子設備編程來執(zhí)行該方法的指令的機器可讀介質。如此處所使用的,術語“機器可讀介質”應包括能夠存儲或編碼指令序列以便由機器執(zhí)行并使機器執(zhí)行此處所述的任何一種方法的任何介質。術語“機器可讀介質”從而應包括但不限于,固態(tài)存儲器、光盤和磁盤、以及編碼數(shù)據(jù)信號的載波。而且,本領域中,通常以一種或另一種形式(例如,程序、過程、進程、應用程序、模塊、邏輯等)將軟件說成是采取動作或導致結果。這樣的表示僅是陳述處理系統(tǒng)對軟件的執(zhí)行使得處理器執(zhí)行動作或產生結果的簡寫形式。
盡管參考說明性實施例描述了本發(fā)明,但本描述不旨在以限制的含義解釋。說明性實施例的各種修改以及本發(fā)明的其它實施例對本發(fā)明所屬的領域中的技術人員而言是顯而易見的,它們被認為位于本發(fā)明的精神和范圍內。
權利要求
1.一種方法,包括生成與設備相關聯(lián)的加密數(shù)據(jù)結構,所述加密數(shù)據(jù)結構包括私鑰和私鑰摘要;基于偽隨機生成的值為所述加密數(shù)據(jù)結構生成標識符;將所述標識符和所述加密數(shù)據(jù)結構存儲在可移動存儲介質上;以及將所述偽隨機值存儲到所述設備內的非易失性存儲上。
2.如權利要求1所述的方法,其特征在于,還包括分發(fā)所述可移動存儲介質和所述設備。
3.如權利要求1所述的方法,其特征在于,還包括為一類設備生成直接證明族密鑰對。
4.如權利要求3所述的方法,其特征在于,所述私有密鑰包括與所述直接證明族密鑰對的公鑰相關聯(lián)的直接證明私鑰,且還包括對所述直接證明私鑰進行散列以生成所述私鑰摘要。
5.如權利要求1所述的方法,其特征在于,還包括基于所述設備的偽隨機值生成對稱密鑰。
6.如權利要求5所述的方法,其特征在于,所述生成標識符包括使用所述對稱密鑰加密數(shù)據(jù)值。
7.如權利要求5所述的方法,其特征在于,還包括使用所述對稱密鑰加密所述數(shù)據(jù)結構。
8.如權利要求1所述的方法,其特征在于,所述加密數(shù)據(jù)結構還包括隨機初始化向量。
9.如權利要求1所述的方法,其特征在于,所述可移動存儲介質包括CD。
10.如權利要求1所述的方法,其特征在于,所述設備的偽隨機值是唯一的。
11.一種制品,包括含有多條機器可讀指令的第一存儲介質,其中當所述指令由處理器執(zhí)行時,所述指令通過以下步驟允許向設備傳遞私鑰生成與設備相關聯(lián)的加密數(shù)據(jù)結構,所述加密數(shù)據(jù)結構包括私鑰和私鑰摘要;基于偽隨機生成的值為所述加密數(shù)據(jù)結構生成標識符;將所述標識符和所述加密數(shù)據(jù)結構存儲在第二可移動存儲介質上;以及將所述偽隨機值存儲到所述設備內的非易失性存儲上。
12.如權利要求11所述的制品,其特征在于,還包括用于為一類設備生成直接證明族密鑰對的指令。
13.如權利要求12所述的制品,其特征在于,所述私鑰包括與所述直接證明族密鑰對的公鑰相關聯(lián)的直接證明私鑰,且還包括用于對所述直接證明私鑰進行散列以生成所述私鑰摘錄的指令。
14.如權利要求11所述的制品,其特征在于,還包括用于基于所述設備的所述偽隨機值生成對稱密鑰的指令。
15.如權利要求14所述的制品,其特征在于,所述用于生成標識符的指令包括用于使用所述對稱密鑰加密數(shù)據(jù)值的指令。
16.如權利要求14所述的制品,其特征在于,還包括用于使用所述對稱密鑰加密所述數(shù)據(jù)結構的指令。
17.如權利要求11所述的制品,其特征在于,所述加密數(shù)據(jù)結構還包括隨機初始化向量。
18.如權利要求11所述的制品,其特征在于,所述設備的所述偽隨機值是唯一的。
19.一種方法,包括確定包含私鑰和私鑰摘要且與安裝在計算機系統(tǒng)中的設備相關聯(lián)的加密數(shù)據(jù)結構是否被存儲在所述計算機系統(tǒng)上的存儲器中;如果存儲了所述加密數(shù)據(jù)結構,則禁用獲取密鑰命令的功能;以及如果未存儲所述加密數(shù)據(jù)結構,則從可由所述計算機系統(tǒng)訪問的可移動存儲介質中獲取與所述設備相關聯(lián)的所述加密數(shù)據(jù)結構,所述可移動存儲介質存儲加密數(shù)據(jù)結構的數(shù)據(jù)庫。
20.如權利要求19所述的方法,其特征在于,所述可移動存儲介質包括由所述設備的制造商創(chuàng)建的CD。
21.如權利要求19所述的方法,其特征在于,所述獲取加密數(shù)據(jù)結構包括,向所述設備發(fā)出所述獲取密鑰命令以啟動私鑰獲取過程。
22.如權利要求19所述的方法,其特征在于,所述私有密鑰包括與一類設備的直接證明族密鑰對的公鑰相關聯(lián)的直接證明私鑰。
23.如權利要求21所述的方法,其特征在于,所述私鑰獲取過程包括,基于所述設備中所存儲的唯一偽隨機值生成對稱密鑰。
24.如權利要求23所述的方法,其特征在于,所述私鑰獲取過程包括基于所述偽隨機值為所述加密數(shù)據(jù)結構生成設備標識符。
25.如權利要求24所述的方法,其特征在于,所述私鑰獲取過程還包括,在所述可移動存儲介質中搜索加密數(shù)據(jù)結構的數(shù)據(jù)庫中由匹配所生成的設備標識符的標識符索引的條目,并將所述加密數(shù)據(jù)結構傳送給所述設備。
26.如權利要求25所述的方法,其特征在于,所述私鑰獲取過程還包括,使用所述對稱密鑰解密從所述可移動存儲介質接收的所述加密數(shù)據(jù)結構以獲取所述私鑰和所述私鑰摘要。
27.如權利要求26所述的方法,其特征在于,所述私鑰獲取過程還包括,對所述私鑰進行散列以生成新私鑰摘要,將來自所解密的數(shù)據(jù)結構的私鑰摘要與所述新私鑰摘要進行比較,且當所述摘要匹配時接受所述私有密鑰為對所述設備有效。
28.一種制品,包括含有多條機器可讀指令的第一存儲介質,其中當所述指令由處理器執(zhí)行時,所述指令通過以下步驟允許獲取計算機系統(tǒng)中安裝的設備的私鑰確定包含所述私鑰和私鑰摘要且與安裝在所述計算機系統(tǒng)中的所述設備相關聯(lián)的加密數(shù)據(jù)結構是否被存儲在所述計算機系統(tǒng)上的存儲器中;如果存儲了所述加密數(shù)據(jù)結構,則禁用獲取密鑰命令的功能;以及如果未存儲所述加密數(shù)據(jù)結構,則從可由所述計算機系統(tǒng)訪問的可移動存儲介質中獲取與所述設備相關聯(lián)的所述加密數(shù)據(jù)結構,所述可移動存儲介質存儲加密數(shù)據(jù)結構的數(shù)據(jù)庫。
29.如權利要求28所述的制品,其特征在于,所述用于獲取加密數(shù)據(jù)結構的指令包括用于向所述設備發(fā)出所述獲取密鑰命令以啟動私鑰獲取過程的指令。
30.如權利要求28所述的制品,其特征在于,所述私鑰包括與一類設備的直接證明族密鑰對的公鑰相關聯(lián)的直接證明私鑰。
31.如權利要求29所述的制品,其特征在于,所述私鑰獲取過程包括,用于基于所述設備中所存儲的唯一偽隨機值生成對稱密鑰的指令。
32.如權利要求31所述的制品,其特征在于,所述私鑰獲取過程包括用于基于所述偽隨機值為所述加密數(shù)據(jù)結構生成設備標識符的指令。
33.如權利要求32所述的制品,其特征在于,所述私鑰獲取過程還包括,用于在所述可移動存儲介質中搜索加密數(shù)據(jù)結構的數(shù)據(jù)庫中由匹配所生成的設備標識符的標識符索引的條目并將所述加密數(shù)據(jù)結構傳送給所述設備的指令。
34.如權利要求33所述的制品,其特征在于,所述私鑰獲取過程還包括,用于使用所述對稱密鑰解密從所述可移動存儲介質接收的所述加密數(shù)據(jù)結構以獲取所述私鑰和所述私鑰摘要的指令。
35.如權利要求34所述的制品,其特征在于,所述私鑰獲取過程還包括,用于對所述私鑰進行散列以生成新私鑰摘要,將來自所解密的數(shù)據(jù)結構的私鑰摘要與所述新私鑰摘要進行比較,且當所述摘要匹配時接受所述私鑰為對所述設備有效的指令。
36.一種方法,包括從計算機系統(tǒng)的存儲器上檢索包括私鑰和私鑰摘要且與所述計算機系統(tǒng)中所安裝的設備相關聯(lián)加密數(shù)據(jù)結構;基于所述設備中所存儲的唯一偽隨機值生成對稱密鑰;使用所述對稱密鑰解密所述加密數(shù)據(jù)結構以獲取所述私鑰和所述私鑰摘要;對所述私鑰進行散列以生成新私鑰摘要,將來自所解密的數(shù)據(jù)結構的所述私鑰摘要與所述新私鑰摘要進行比較;以及當所述摘要匹配時接受所述私鑰為對所述設備有效。
37.如權利要求36所述的方法,其特征在于,所述私鑰包括與一類設備的直接證明族密鑰對的公鑰相關聯(lián)的直接證明私鑰。
38.如權利要求36所述的方法,其特征在于,所述設備包括所述計算機系統(tǒng)的外圍設備。
39.如權利要求36所述的方法,其特征在于,還包括生成隨機初始化向量;通過使用所述對稱密鑰加密所述私鑰、私鑰摘要和隨機初始化向量生成新的加密數(shù)據(jù)結構;以及將所述新的加密數(shù)據(jù)結構存儲到所述計算機系統(tǒng)的存儲器中。
全文摘要
現(xiàn)場將直接證明私鑰傳遞給安裝在客戶計算機系統(tǒng)中的設備可按照安全方式完成而無需設備中的大量非易失性存儲。唯一偽隨機值在制造時生成并存儲在設備中。該偽隨機值用于生成對稱密鑰來對保存與設備相關聯(lián)的直接私鑰和私鑰摘要的數(shù)據(jù)結構加密。所得的加密數(shù)據(jù)結構被存儲在可移動存儲介質(諸如CD)上,并被分發(fā)給客戶計算機系統(tǒng)的所有者。當設備在客戶計算機系統(tǒng)上初始化時,系統(tǒng)檢查系統(tǒng)中是否存在本地化的加密數(shù)據(jù)結構。如果否,則系統(tǒng)從可移動存儲介質獲取相關聯(lián)的加密數(shù)據(jù)結構。設備使用從其所存儲的偽隨機值重新生成的對稱密鑰解密該加密數(shù)據(jù)結構,以獲取直接證明私鑰。如果該私鑰有效,則它可用于客戶計算機系統(tǒng)中該設備的隨后的認證處理。
文檔編號H04L9/32GK101019368SQ200580023787
公開日2007年8月15日 申請日期2005年7月8日 優(yōu)先權日2004年7月14日
發(fā)明者E·布萊克爾, J·薩頓二世, C·霍爾, D·格勞羅克 申請人:英特爾公司