專利名稱:使用便攜式計算設(shè)備作為智能密鑰設(shè)備的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及改進的數(shù)據(jù)處理系統(tǒng),更具體地,涉及使用加密學(xué)的數(shù)據(jù)存儲保護方法和裝置。
背景技術(shù):
大部分?jǐn)?shù)據(jù)處理系統(tǒng)包含需要保護的敏感數(shù)據(jù)。例如,配置信息的數(shù)據(jù)完整性需要保護以防止非法修改,而其它信息例如口令文件也需要保護以防止非法公開。給定數(shù)據(jù)處理系統(tǒng)的操作者可以使用許多不同類型的安全機制來保護數(shù)據(jù)處理系統(tǒng)。例如,數(shù)據(jù)處理系統(tǒng)上的操作系統(tǒng)可以提供多種軟件機制來保護敏感數(shù)據(jù),例如各種認證和授權(quán)措施,而某些硬件設(shè)備和軟件應(yīng)用程序可能依賴于硬件機制來保護敏感數(shù)據(jù),例如硬件安全標(biāo)記和生物測定傳感器設(shè)備。雖然多個軟件和硬件機制可以在給定的數(shù)據(jù)處理系統(tǒng)中被使用以保護敏感數(shù)據(jù),但是敏感數(shù)據(jù)也可以被加密使得如果某個人取得了對加密敏感數(shù)據(jù)的非法訪問,那么如果沒有對加密敏感數(shù)據(jù)的解密能力,加密敏感數(shù)據(jù)的任何副本都將是無用的。
不過,最終保護數(shù)據(jù)處理系統(tǒng)內(nèi)所包含所有信息的能力是有限的。例如,為進一步保護口令文件,口令文件可以用通常稱為主秘密(secret)的例如口令或加密密鑰的另一個秘密加密。但是,這個新的秘密也需要以某種形式被保護。因此,系統(tǒng)管理員可能會進入兩難的情況,其中,想要實現(xiàn)另一層保護的任何嘗試都會導(dǎo)致另外的敏感信息也需要保護?,F(xiàn)在回到本發(fā)明,其余的圖描繪了解決該難題的本發(fā)明的示例性實施例。
因此,具有用于安全地存儲和管理例如加密密鑰的秘密信息的機制將是很有優(yōu)勢的。能夠安全地存儲和管理被用于保護其它秘密信息的主秘密將是特別有優(yōu)勢的。
發(fā)明內(nèi)容
包括第一內(nèi)部加密設(shè)備的第一數(shù)據(jù)處理系統(tǒng)與包括第二內(nèi)部加密設(shè)備的第二數(shù)據(jù)處理系統(tǒng)通信耦合。兩個加密設(shè)備參考它們各自的系統(tǒng)來進行自身認證。兩個加密設(shè)備然后互相認證。第一加密設(shè)備存儲第一非對稱加密密鑰對的私鑰和與第二數(shù)據(jù)處理系統(tǒng)相關(guān)聯(lián)的第二非對稱加密密鑰對的公鑰。第二加密設(shè)備存儲第二非對稱加密密鑰對的私鑰和與第一數(shù)據(jù)處理系統(tǒng)相關(guān)聯(lián)的第一非對稱加密密鑰對的公鑰。響應(yīng)于在兩個加密系統(tǒng)之間成功進行的相互認證操作,第一數(shù)據(jù)處理系統(tǒng)被使得能夠調(diào)用第一加密設(shè)備上的敏感加密功能,而第一數(shù)據(jù)處理系統(tǒng)保持與第二數(shù)據(jù)處理系統(tǒng)通信耦合。
被認為是本發(fā)明特征的新穎特征在所附權(quán)利要求中給出。在參照附圖來看下面的詳細描述時,本發(fā)明本身及其目的和優(yōu)點將被最好地理解,其中圖1A描繪了數(shù)據(jù)處理系統(tǒng)的典型網(wǎng)絡(luò),其中每一個都可以實現(xiàn)本發(fā)明;
圖1B描繪了可以在其中可以實現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)內(nèi)使用的典型計算機體系結(jié)構(gòu);圖2描繪了示出個人獲得數(shù)字證書的典型方式的框圖;圖3描繪了示出實體可以使用數(shù)字證書被認證進入數(shù)據(jù)處理系統(tǒng)的典型方式的框圖;圖4描繪了示出數(shù)據(jù)處理系統(tǒng)一部分的框圖,該數(shù)據(jù)處理系統(tǒng)接受可移動硬件設(shè)備來使能數(shù)據(jù)處理系統(tǒng)內(nèi)硬件安全單元中的加密功能;圖5描繪了示出包含內(nèi)部智能密鑰設(shè)備且使用內(nèi)部密鑰設(shè)備來使能內(nèi)部密鑰設(shè)備內(nèi)加密功能的系統(tǒng)單元的框圖;圖6描繪了示出用于使能主機系統(tǒng)的內(nèi)部智能密鑰設(shè)備的加密功能的過程概況的流程圖;圖7描繪了示出用于使能由具體的軟件智能密鑰單元使用的、主機系統(tǒng)的內(nèi)部智能密鑰設(shè)備的加密功能的過程概況的流程圖;圖8描繪了示出用于禁止主機系統(tǒng)的內(nèi)部智能密鑰設(shè)備的加密功能的過程的流程圖;圖9A到9B描繪了示出圖6中方塊604所示相互認證程序的進一步細節(jié)的一對流程圖;圖10A到10B描繪了示出圖7中方塊704所示相互認證程序的進一步細節(jié)的一對流程圖;圖11A描繪了示出用于在軟件智能密鑰單元請求時進行操作的內(nèi)部智能密鑰設(shè)備中的過程的流程圖,其中,所述操作基于外部智能密鑰設(shè)備的存在而被使能或禁止;圖11B描繪了示出用于在軟件智能密鑰單元請求時進行操作的內(nèi)部智能密鑰設(shè)備中的過程的流程圖,其中,所述操作不需要基于外部智能密鑰設(shè)備的存在被使能;圖12描繪了示出用于保護主秘密的本發(fā)明實施例的框圖;圖13到15描繪了示出多個外部智能密鑰設(shè)備與多個內(nèi)部智能密鑰設(shè)備之間不同關(guān)系的框圖;
圖16A到16C描繪了示出一組典型的信任關(guān)系的框圖;圖17描繪了示出由基于內(nèi)部智能密鑰設(shè)備所提供信任的信任關(guān)系構(gòu)成的信任模式示例的框圖;圖18描繪了示出用于產(chǎn)生操作系統(tǒng)文件的數(shù)據(jù)處理系統(tǒng)的框圖,其中,所述操作系統(tǒng)中的每一個程序?qū)嶓w都包含基于內(nèi)部智能密鑰設(shè)備在信任等級中建立信任關(guān)系的功能;圖19描繪了示出產(chǎn)生包含軟件智能密鑰單元使得操作系統(tǒng)模塊相互間能夠進行認證操作的操作系統(tǒng)模塊的過程的流程圖;圖20描繪了示出用于產(chǎn)生項目代碼的數(shù)據(jù)處理系統(tǒng)的框圖,其中,每一個程序?qū)嶓w都包含基于內(nèi)部智能密鑰設(shè)備在信任等級中建立信任關(guān)系的功能;圖21描繪了示出擴展內(nèi)部智能密鑰設(shè)備的證書鏈的過程的流程圖;圖22描繪了示出由基于單個本地內(nèi)部智能密鑰設(shè)備所提供信任的信任關(guān)系構(gòu)成的信任模式示例的框圖,所述單個本地內(nèi)部智能密鑰設(shè)備為外來內(nèi)部智能密鑰設(shè)備保持包含多個根證書的證書鏈;圖23描繪了示出獲得由本地內(nèi)部智能密鑰設(shè)備保持的當(dāng)前根證書鏈的過程的流程圖;圖24描繪了示出用于判斷來自外來內(nèi)部智能密鑰設(shè)備的數(shù)字證書是否可信的過程的流程圖;圖25描繪了示出硬件輔助的信任模式內(nèi)可以被用來確保軟件模塊完整性的實體的數(shù)據(jù)流圖;以及圖26描繪了示出用于確保軟件模塊完整性的過程的流程圖。
圖27描繪了示出圖5數(shù)據(jù)處理系統(tǒng)的一部分和第二數(shù)據(jù)處理系統(tǒng)的框圖,當(dāng)所述兩個系統(tǒng)被通信耦合時,彼此相互認證以使能所述數(shù)據(jù)處理系統(tǒng)之一或兩者內(nèi)的硬件安全單元中的加密功能;圖28描繪了示出圖27所描述第二系統(tǒng)單元的框圖,該第二系統(tǒng)單元包含在圖5的系統(tǒng)單元內(nèi)用于執(zhí)行加密功能的內(nèi)部智能密鑰設(shè)備;
圖29描繪了示出用于通過圖27和28中的第二系統(tǒng)單元來使能圖5和圖27中第一系統(tǒng)單元的內(nèi)部智能密鑰設(shè)備的加密功能的過程概況的流程圖;圖30描繪了示出用于使能圖5和圖27中系統(tǒng)單元的內(nèi)部智能密鑰設(shè)備的加密功能的過程概況的流程圖;圖31描繪了示出用于禁止圖5和圖27中第一系統(tǒng)單元的內(nèi)部智能密鑰設(shè)備的加密功能的過程的流程圖;以及圖32描繪了圖5、27和28中第一和第二數(shù)據(jù)處理系統(tǒng)的部分的框圖,圖示了被用來執(zhí)行所公開發(fā)明主題的加密密鑰對。
具體實施例方式
一般而言,可能包括或涉及本發(fā)明的設(shè)備包括很廣范圍的多種數(shù)據(jù)處理技術(shù)。因此,作為背景,在更詳細地描述本發(fā)明之前,描述分布式數(shù)據(jù)處理系統(tǒng)內(nèi)的硬件和軟件部分的典型組織。
現(xiàn)在參照附圖,圖1A描繪了數(shù)據(jù)處理系統(tǒng)的典型網(wǎng)絡(luò),其中每一個都可以實現(xiàn)本發(fā)明的一部分。分布式數(shù)據(jù)處理系統(tǒng)100包含網(wǎng)絡(luò)101,該網(wǎng)絡(luò)是可以用來在分布式數(shù)據(jù)處理系統(tǒng)100內(nèi)連接在一起的各種設(shè)備與計算機之間提供通信鏈路的介質(zhì)。網(wǎng)絡(luò)101可以包括永久連接,例如電線或光纖電纜,或者是通過電話或無線通信進行的暫時連接。在所描繪的示例中,服務(wù)器102和服務(wù)器103以及存儲單元104都被連接到網(wǎng)絡(luò)101。此外,客戶機105到107也被連接到網(wǎng)絡(luò)101??蛻魴C105到107和服務(wù)器102到103可以由例如主機、個人計算機、個人數(shù)字助理(PDA)等的多種計算設(shè)備表示。分布式數(shù)據(jù)處理系統(tǒng)100可以包括額外的未示出的服務(wù)器、客戶機、路由器、其它設(shè)備和對等體系結(jié)構(gòu)。
在所描繪的示例中,分布式數(shù)據(jù)處理系統(tǒng)100可以包括互聯(lián)網(wǎng),以網(wǎng)絡(luò)101表示使用多種協(xié)議來彼此通信的全世界范圍的網(wǎng)絡(luò)和網(wǎng)關(guān)集合,所述協(xié)議例如輕量級目錄訪問協(xié)議(LDAP)、傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP)、超文本傳輸協(xié)議(HTTP)、無線應(yīng)用協(xié)議(WAP)等。當(dāng)然,分布式數(shù)據(jù)處理系統(tǒng)100還可以包括大量不同類型的網(wǎng)絡(luò),例如內(nèi)聯(lián)網(wǎng)、局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)。例如,服務(wù)器102直接支持客戶機109和網(wǎng)絡(luò)110,其包含無線通信鏈路。網(wǎng)絡(luò)使能電話111通過無線鏈路112連接到網(wǎng)絡(luò)110,PDA113通過無線鏈路114連接到網(wǎng)絡(luò)110。電話111和PDA 113還可以使用例如BluetoothTM無線技術(shù)的合適技術(shù)來建立所謂的個人局域網(wǎng)(PAN)或個人ad-hoc網(wǎng)絡(luò)跨過無線鏈路115而在彼此之間直接傳送數(shù)據(jù)。以類似的方式,PDA 113可以經(jīng)由無線通信鏈路116將數(shù)據(jù)傳送到PDA107。
本發(fā)明可以在多種硬件平臺上實現(xiàn);圖1A旨在作為異類計算環(huán)境的示例,而不是作為對本發(fā)明的體系結(jié)構(gòu)的限制。
現(xiàn)在參照圖1B,框圖描繪了其中可以實施本發(fā)明的、如圖1A所示的數(shù)據(jù)處理系統(tǒng)的典型計算機體系結(jié)構(gòu)。數(shù)據(jù)處理系統(tǒng)120包含連接到內(nèi)部系統(tǒng)總線123的一個或多個中央處理單元(CPU)122,該總線將隨機訪問存儲器(RAM)124、只讀存儲器126和支持各種I/O設(shè)備的輸入/輸出適配器128彼此連接在一起,所述I/O設(shè)備例如打印機130、盤單元132或者未示出的其它設(shè)備例如音頻輸出系統(tǒng)等。系統(tǒng)總線123還連接提供接入通信鏈路136的通信適配器134。用戶接口適配器148連接多種用戶設(shè)備,例如鍵盤140和鼠標(biāo)142或者其它未示出的設(shè)備例如接觸屏、手寫筆、麥克風(fēng)等。顯示適配器144將系統(tǒng)總線123連接到顯示設(shè)備146。
本領(lǐng)域的普通技術(shù)人員將了解圖1B中的硬件可以取決于系統(tǒng)實現(xiàn)而有所不同。例如,系統(tǒng)可以具有一個或多個處理器,例如基于IntelPentium的處理器和數(shù)字信號處理器(DSP),以及一種或多種類型的易失性或非易失性存儲器。其它外圍設(shè)備可以被額外使用或者替代圖1B中所描繪的硬件。所描繪的示例不意味著對本發(fā)明體系結(jié)構(gòu)的限制。
除了能夠在多種硬件平臺上實現(xiàn)之外,本發(fā)明也可以在多種軟件環(huán)境中實現(xiàn)。典型的操作系統(tǒng)可以被用來控制每一個數(shù)據(jù)處理系統(tǒng)內(nèi)的程序執(zhí)行。例如,一個設(shè)備可以運行Unix操作系統(tǒng),而另一個設(shè)備可以包含簡單的Java運行時環(huán)境。代表性的計算機平臺可以包括瀏覽器,瀏覽器是用于訪問多種格式的超文本文檔的公知的軟件應(yīng)用程序,所述文檔和格式例如圖表文件、字處理文件、可擴展標(biāo)記語言(XML)、超文本標(biāo)記語言(HTML)、手持設(shè)備標(biāo)記語言(HDML)、無線標(biāo)記語言(WML)和多種其它的格式和類型的文件。
本發(fā)明可以在多種硬件和軟件平臺上實現(xiàn),如以上參照圖1A和圖1B描述的。但是,更具體地,本發(fā)明旨在用于通過使用硬盤安全記號來確保秘密信息的機制。不過,在更詳細地描述本發(fā)明之前,提供了一些有關(guān)數(shù)字證書的背景信息用來評價本發(fā)明的操作效率和其它優(yōu)點。
數(shù)字證書支持公鑰加密,其中通信或交易中涉及的每一方都具有一對密鑰,即公鑰和私鑰。每一方的公鑰被公開,而私鑰被保密。公鑰是與具體實體相關(guān)聯(lián)的數(shù)字,并且旨在被需要與該實體具有信任交互的每一個人知道。私鑰是被認為只被具體實體知道的數(shù)字,也就是說保密。在典型的非對稱加密系統(tǒng)中,私鑰精確地對應(yīng)于一個公鑰。
在公鑰加密系統(tǒng)內(nèi),因為所有通信都只包括公鑰而從來沒有私鑰被傳輸或共享,所以機密消息可以只使用公共信息來產(chǎn)生,并且可以只使用要到的接收者唯一擁有的私鑰來解密。而且,公鑰加密還可以用來認證,即數(shù)字簽名,以及用于保密,即加密。
加密是將數(shù)據(jù)轉(zhuǎn)變成在沒有秘密解密密鑰時不能被任何人讀的形式;加密通過對非要到的任何人、甚至那些可以看見加密數(shù)據(jù)的人隱藏信息內(nèi)容來確保私秘。認證是數(shù)字消息的接收者通過其可以確信發(fā)送者身份和/或消息完整性的過程。
例如,當(dāng)發(fā)送者給消息加密時,接收者的公鑰被用來將原始消息內(nèi)的數(shù)據(jù)轉(zhuǎn)變成加密消息的內(nèi)容。發(fā)送者使用要到的接收者的公鑰來對數(shù)據(jù)加密,而接收者使用其私鑰來對加密消息進行解密。
在認證數(shù)據(jù)時,數(shù)據(jù)可以通過使用簽名者的私鑰根據(jù)數(shù)據(jù)計算數(shù)字簽名來被簽署。數(shù)據(jù)一旦被數(shù)字簽署,其就可以與簽名者身份和證明數(shù)據(jù)來源于簽名者的簽名存儲在一起。簽名者使用其私鑰來簽署數(shù)據(jù),接收者使用簽名者的公鑰來檢驗簽名。
證書是擔(dān)保實體的身份和密鑰所有權(quán)的數(shù)字文檔,所述實體例如個人、計算機系統(tǒng)、在該系統(tǒng)上運行的通用服務(wù)器等。證書由認證機構(gòu)頒發(fā)。認證機構(gòu)(CA)是實體,通常是交易的被信任第三方,其被信任為其他人或?qū)嶓w簽署或頒發(fā)證書。認證機構(gòu)通常具有某種對公鑰與其所有者之間的綁定進行擔(dān)保的法定責(zé)任,其允許一方信任簽署證書的實體?,F(xiàn)在有許多商業(yè)認證機構(gòu);這些機構(gòu)在頒發(fā)證書時負責(zé)檢驗實體的身份和密鑰所有權(quán)。
如果認證機構(gòu)為實體頒發(fā)了證書,那么實體必須提供公鑰和有關(guān)實體的某些信息。軟件工具,例如特定配備的Web瀏覽器,可以數(shù)字化地簽署該信息并將其發(fā)送給認證機構(gòu)。認證機構(gòu)可以是提供被信任第三方證書頒發(fā)服務(wù)的商業(yè)公司。認證機構(gòu)然后將產(chǎn)生證書并將其返回。證書可以包含其它信息,例如序號和證書在其間有效的日期。由認證機構(gòu)提供的值的一部分將被部分地基于它們的檢驗要求用作中立受信任介紹服務(wù),所述檢驗要求被公開發(fā)表在它們的證書服務(wù)慣例(CSP)上。
認證機構(gòu)通過嵌入請求實體的公鑰以及其它識別信息、然后用認證機構(gòu)的私鑰簽署數(shù)字證書來建立新的數(shù)字證書。在交易或通信期間接收數(shù)字證書的任何人然后都可以使用認證機構(gòu)的公鑰來檢認證書內(nèi)被簽署的公鑰。本發(fā)明是認證機構(gòu)的簽名表現(xiàn)為數(shù)字證書上的防篡改封印,從而確保證書中數(shù)據(jù)的完整性。
證書處理的其它方面也被標(biāo)準(zhǔn)化。Myers等人的“Internet X.509Certificate Request Message Format”,Internet Engineering TaskForce(IETF)Request for Comments(RFC)2511,1999年3月,指定了已經(jīng)被推薦用于在依賴方從認證機構(gòu)請求證書的任何時候使用的格式。Adams等人的“Internet X.509 Public Key InfrastructureCertificate Management Protocols”,IETF RFC 2511,1999年3月,指定了用于傳送證書的協(xié)議。本發(fā)明屬于使用數(shù)字證書的分布式數(shù)據(jù)處理系統(tǒng);圖2到3的描述提供了有關(guān)涉及數(shù)字證書的典型操作的背景信息。
現(xiàn)在參照圖2,框圖描繪了個人獲得數(shù)字證書的典型方式。用戶202,在某種類型的客戶計算機上操作,先前得到了或產(chǎn)生了公/私鑰對,例如用戶公鑰204和用戶私鑰206。用戶202產(chǎn)生對包含用戶公鑰204的證書208的請求,并將該請求發(fā)送到擁有CA公鑰212和CA私鑰214的認證機構(gòu)210。認證機構(gòu)210以某種方式檢驗用戶202的身份,并產(chǎn)生包含用戶公鑰218的X.509數(shù)字證書216。整個證書都用CA密鑰214簽署;證書包括用戶的公鑰、與用戶相關(guān)聯(lián)的名字以及其它屬性。用戶202接收新產(chǎn)生的數(shù)字證書216,用戶202然后就可以在必要時顯示數(shù)字證書216以參與信任交易或信任通信。從用戶202接收數(shù)字證書216的實體可以通過使用被公開且對正檢驗實體可用的CA公鑰212來檢驗認證機構(gòu)的簽名。
現(xiàn)在參照圖3,框圖描繪了實體可以使用數(shù)字證書而被認證進入數(shù)據(jù)處理系統(tǒng)的典型方式。用戶302擁有X.509數(shù)字證書304,該證書被傳送到主機系統(tǒng)308上的互聯(lián)網(wǎng)或內(nèi)聯(lián)網(wǎng)應(yīng)用程序306;應(yīng)用程序306包括用于處理和使用數(shù)字證書的X.509功能。用戶302用其私鑰對其發(fā)送到應(yīng)用程序306的數(shù)據(jù)進行簽署或加密。
接收證書304的實體可以是應(yīng)用程序、系統(tǒng)、子系統(tǒng)等等。證書304包含主體名或向應(yīng)用程序306標(biāo)識用戶302的主體標(biāo)識符,其可以對用戶302進行某種類型的服務(wù)。使用證書304的實體在使用證書之前參考來自用戶302的被簽署或加密的數(shù)據(jù)檢認證書的真實性。
主機系統(tǒng)308還可以包含系統(tǒng)登記表310,用來授權(quán)用戶302訪問系統(tǒng)308內(nèi)的服務(wù)和資源,也就是用來使用戶的身份與用戶特權(quán)相一致。例如,系統(tǒng)管理員可能已經(jīng)將用戶身份配置成屬于某個安全組,因此用戶被限制為只能夠訪問被配置為對整個安全組可用的那些資源。用于施加授權(quán)方案的多種公知方法都可以在系統(tǒng)內(nèi)使用。
為了正確地確認或檢驗數(shù)字證書,應(yīng)用程序必須檢查證書是否已經(jīng)被吊銷。當(dāng)認證機構(gòu)頒發(fā)證書時,認證機構(gòu)產(chǎn)生標(biāo)識證書的唯一序號,并且該序號被存儲在X.509證書內(nèi)的“序號”域內(nèi)。典型地,已被吊銷的X.509證書在CRL內(nèi)經(jīng)由證書的序號標(biāo)識;被吊銷證書的序號出現(xiàn)在CRL內(nèi)的序號列表內(nèi)。
為了判斷證書304是否仍舊有效,應(yīng)用程序306從CRL儲存庫312得到證書吊銷列表(CRL),并確認CRL。應(yīng)用程序306比較證書304內(nèi)的序號和所檢索出的CRL內(nèi)的序號列表,如果不存在匹配的序號,那么應(yīng)用程序306確認證書306。如果CRL有匹配的序號,那么證書304應(yīng)該被拒絕,應(yīng)用程序306可以采取合適的措施來拒絕用戶對訪問任何受控資源的請求。
大部分?jǐn)?shù)據(jù)處理系統(tǒng)包含需要保護的敏感數(shù)據(jù)。例如,配置信息的數(shù)據(jù)完整性需要防止被非法修改,而其它信息例如口令文件需要防止被非法公開。給定數(shù)據(jù)處理系統(tǒng)的操作者可以使用許多不同類型的安全機制來保護數(shù)據(jù)處理系統(tǒng)。例如,數(shù)據(jù)處理系統(tǒng)上的操作系統(tǒng)可以提供多種軟件機制來保護敏感數(shù)據(jù),例如多種認證和授權(quán)措施,而某些硬件設(shè)備和軟件應(yīng)用程序可以依賴于硬件機制來保護敏感數(shù)據(jù),例如硬件安全記號和生物傳感器設(shè)備。多種軟件和硬件機制可以被用在給定的數(shù)據(jù)處理系統(tǒng)中以保護敏感數(shù)據(jù),不過敏感數(shù)據(jù)也可以被加密使得如果某個人非法訪問了加密的敏感數(shù)據(jù),如果沒有能力對加密的機密數(shù)據(jù)進行解密,那么加密敏感數(shù)據(jù)的任何副本都將是無用的。
不過,最終保護數(shù)據(jù)處理系統(tǒng)內(nèi)所包含所有信息的能力是有限的。例如,為進一步保護口令文件,口令文件可以用通常稱為主秘密(secret)的例如口令或加密密鑰的另一個秘密加密。但是,這個新的秘密也需要以某種形式被保護。因此,系統(tǒng)管理員可能會進入兩難的情況,其中,想要實現(xiàn)另一層保護的任何嘗試都會導(dǎo)致另外的敏感信息也需要保護?,F(xiàn)在回到本發(fā)明,其余的圖描繪了解決該難題的本發(fā)明的示例性實施例。
現(xiàn)在參照圖4,框圖描繪了接受可移動硬件設(shè)備以使能根據(jù)本發(fā)明實施例的數(shù)據(jù)處理系統(tǒng)內(nèi)硬件安全單元中的加密功能的數(shù)據(jù)處理系統(tǒng)的一部分。本發(fā)明使用保留加密密鑰并進行加密功能的一對匹配的智能密鑰設(shè)備。系統(tǒng)單元402與作為可便攜或可移動設(shè)備的外部智能密鑰設(shè)備(EXSKD)404接口。系統(tǒng)單元402還包含內(nèi)部智能密鑰設(shè)備(INSKD)406,其是作為接收例如母板的可移動設(shè)備的主機系統(tǒng)必要部分的匹配設(shè)備。內(nèi)部智能密鑰設(shè)備優(yōu)選地是難以從主機系統(tǒng)上去除的封裝式集成電路;雖然其被描述為硬件安全單元或設(shè)備,但是其也可以包括用于執(zhí)行指令的處理單元。在該示例中,EXSKD 404和INSKD 406是成對設(shè)備??梢苿釉O(shè)備由例如IT管理員的系統(tǒng)管理人員進行物理保護;當(dāng)IT管理員需要使能可以由主機上的匹配設(shè)備例如INSKD406進行的某些加密功能時,可移動設(shè)備也就是EXSKD 404,被插入到主機中,例如系統(tǒng)單元402中。換句話說,當(dāng)外部智能密鑰設(shè)備被插入到系統(tǒng)單元中時,某些加密功能是可用的。INSKD 406產(chǎn)生IT管理員需要的結(jié)果,因為INSKD 406包含用于產(chǎn)生某種加密輸出的一個或多個具體的加密私鑰。系統(tǒng)單元402上的應(yīng)用程序408具有類似于EXSKD 404和INSKD 406的軟件智能密鑰單元(SWSKU)410。應(yīng)用程序408使用SWSKU 410來進行某些功能,這將在下面進行更詳細的說明。
現(xiàn)在參照圖5,框圖描繪了根據(jù)本發(fā)明實施例的包含內(nèi)部智能密鑰設(shè)備、且使用外部智能密鑰設(shè)備來使能內(nèi)部智能密鑰設(shè)備內(nèi)的加密功能的系統(tǒng)單元。圖5類似于圖4,只是圖5包括存儲在多個部分內(nèi)的加密密鑰的額外細節(jié)。
外部智能密鑰設(shè)備(EXSKD)502是可移動硬件設(shè)備;EXSKD 502優(yōu)選地是由系統(tǒng)管理員控制且作為硬件安全記號的便攜式設(shè)備。具有電學(xué)接口504的外部智能密鑰設(shè)備502被插入到具有電學(xué)接口508的系統(tǒng)單元506中;外部智能密鑰設(shè)備502和系統(tǒng)單元506通過它們各自的接口來電學(xué)結(jié)合,從而交換代表數(shù)字信息的電學(xué)信號。
外部智能密鑰設(shè)備502包含加密引擎510,用于使用存儲在外部智能密鑰設(shè)備502中的多種數(shù)據(jù)項進行加密功能。EXSKD私鑰512以下面的方式存儲使得其不能被EXSKD 502外部的實體讀取或訪問;EXSKD 502不包含用于傳送或者提供EXSKD私鑰512副本的功能。EXSKD公鑰證書514包含與EXSKD私鑰512相對應(yīng)的EXSKD公鑰516的副本作為非對稱加密密鑰對。EXSKD 502還包含INSKD公鑰證書518的副本,而INSKD公鑰證書518本身包含與INSKD私鑰526相對應(yīng)的INSKD公鑰520的副本作為非對稱加密密鑰對。INSKD公鑰證書518的副本可以被寫到EXSKD 502上作為其制造或初始化過程的一部分。
系統(tǒng)單元506包含內(nèi)部智能密鑰設(shè)備(INSKD)522。內(nèi)部智能密鑰設(shè)備522包含加密引擎524,用于使用存儲在內(nèi)部智能密鑰設(shè)備522中的多種數(shù)據(jù)項進行加密功能。INSKD私鑰526被以下面的方式存儲使得其不能被INSKD 522外部的實體讀取或訪問;INSKD 522不包含用于傳送或者提供INSKD私鑰526副本的功能。INSKD公鑰證書528包含與INSKD私鑰526相對應(yīng)的INSKD公鑰530的副本作為非對稱加密密鑰對。INSKD522還包含EXSKD公鑰證書532的副本,而EXSKD公鑰證書532本身包含與EXSKD私鑰512相對應(yīng)的INSKD公鑰534的副本作為非對稱加密密鑰對。EXSKD公鑰證書532的副本可以被寫到INSKD522中作為其制造或初始化過程的一部分。
在可替換實施例中,INSKD私鑰526和INSKD公鑰530被用于其它功能。在圖5所示的優(yōu)選實施例中,INSKD私鑰526和INSKD公鑰530被預(yù)留用于在INSKD 522與EXSKD 502之間進行通信,而INSKD 522使用一個或多個其它的加密密鑰對用于其它功能。在該示例中,INSKD_SW私鑰536由INSKD 522使用,用于確保INSKD522與應(yīng)用程序540中的軟件智能密鑰單元(SWSKU)538之間的通信。INSKD_SW公鑰證書542包含與INSKD_SW公鑰536相對應(yīng)的INSKD_SW公鑰544的副本作為非對稱加密密鑰對。INSDK 522還包含SWSKU公鑰證書546的副本,而SWSKU公鑰證書546本身包含與SWSKU私鑰550相對應(yīng)的SWSKU公鑰548的副本作為非對稱加密密鑰對。
系統(tǒng)單元506支持包含SWSKU 538的應(yīng)用程序540的執(zhí)行,而SWSKU 538自身包含加密引擎552,用于使用存儲在軟件智能密鑰單元538中的多種數(shù)據(jù)項進行加密功能。SWSKU 538不包含用于傳送或者提供SWSKU私鑰550副本的功能。SWSKU公鑰證書554包含與SWSKU公鑰550相對應(yīng)的SWSKU公鑰556的副本作為非對稱加密密鑰對。SWSKU 538還包含INSKD_SW公鑰證書558的副本,而INSKD_SW公鑰證書558本身包含與INSKD_SW私鑰536相對應(yīng)的INSKD_SW公鑰560的副本作為非對稱加密密鑰對。如下面更詳細說明的,SWSKU538可以被數(shù)字簽署。在圖5所示的示例中,SWSKU538包含已經(jīng)在SWSKU 538上使用INSKD_SW私鑰536被計算的數(shù)字簽名562;換句話說,INSKD 522已經(jīng)使用INSKD_SW私鑰536對SWSKU 538進行了數(shù)字簽署。
現(xiàn)在參照圖6,流程圖描繪了用于使能主機系統(tǒng)內(nèi)部智能密鑰設(shè)備的加密功能的過程的概況。該過程當(dāng)在塊602開始時,外部智能密鑰設(shè)備與包括內(nèi)部智能密鑰設(shè)備的系統(tǒng)單元電學(xué)結(jié)合。例如,IT管理員可以將外部智能密鑰設(shè)備插入到包括用于接收外部智能密鑰設(shè)備的插槽的接收單元中。然后在塊604,內(nèi)部智能密鑰設(shè)備和外部智能密鑰設(shè)備進行相互間的認證程序,之后,在塊606,內(nèi)部智能密鑰設(shè)備被使能以進行加密功能,過程結(jié)束。可以假設(shè)相互認證程序中的任何錯誤都會導(dǎo)致內(nèi)部智能密鑰設(shè)備的連續(xù)禁止。在更少限制的實施例中,內(nèi)部智能密鑰設(shè)備的加密功能然后可以被在主機系統(tǒng)上運行的任何應(yīng)用程序調(diào)用。在更多限制的實施例中,內(nèi)部智能密鑰設(shè)備的加密功能只能由包括軟件智能密鑰單元的應(yīng)用程序調(diào)用,如圖7所示。
現(xiàn)在參照圖7,流程圖描繪了根據(jù)本發(fā)明實施例的用于使能由具體軟件智能密鑰單元使用的主機系統(tǒng)的內(nèi)部智能密鑰設(shè)備加密功能的過程。過程在塊702開始時,包含軟件智能密鑰單元的應(yīng)用程序或小應(yīng)用程序例如通過應(yīng)用編程接口(API)調(diào)用內(nèi)部智能密鑰設(shè)備的加密功能。然后在塊704,內(nèi)部智能密鑰設(shè)備和軟件智能密鑰單元進行相互間的認證程序,然后在塊706,內(nèi)部智能密鑰設(shè)備被使能以進行對軟件智能密鑰單元的加密功能,過程結(jié)束。假設(shè)主機系統(tǒng)上的多個軟件智能密鑰單元已經(jīng)結(jié)束了與內(nèi)部智能密鑰設(shè)備的相互認證程序,那么內(nèi)部智能密鑰設(shè)備可以被同時使能以代表多個軟件智能密鑰單元進行加密功能。
雖然外部智能密鑰設(shè)備保持與包含內(nèi)部智能密鑰設(shè)備的系統(tǒng)單元結(jié)合,但是內(nèi)部智能密鑰設(shè)備被使能用于提供功能以起到認證機構(gòu)的作用,即產(chǎn)生新的公共證書。在一個實施例中,當(dāng)安裝新的軟件包時,外部智能密鑰設(shè)備應(yīng)該與包含內(nèi)部智能密鑰設(shè)備的系統(tǒng)單元結(jié)合。新的公共證書可以在軟件安裝期間被頒發(fā)給新的軟件包;與新頒發(fā)的數(shù)字證書中的公鑰對應(yīng)的私鑰可以被嵌入在軟件包中,并且私鑰可以通過使內(nèi)部智能密鑰設(shè)備對軟件包進行簽署來保護。而且,在Java環(huán)境中,其中嵌入私鑰的JAR文件和Java包還可以被密封以防止惡意用戶篡改私鑰。
現(xiàn)在參照圖8,流程圖描繪了用于禁止根據(jù)本發(fā)明實施例的主機系統(tǒng)中內(nèi)部智能密鑰設(shè)備的加密功能的過程。在塊802,當(dāng)外部智能密鑰設(shè)備例如在外部智能密鑰設(shè)備已經(jīng)被插入而且內(nèi)部智能密鑰設(shè)備已經(jīng)被使能之后的某個隨后點被從包含內(nèi)部智能密鑰設(shè)備的系統(tǒng)單元上電學(xué)斷開時,過程開始。當(dāng)系統(tǒng)單元檢測到外部智能密鑰設(shè)備的斷開時,然后在塊804,內(nèi)部智能密鑰設(shè)備變?yōu)楸唤惯M一步進行加密功能,過程結(jié)束。
圖8中示出的過程作為圖6或圖7所示過程之一的補充過程。但是,應(yīng)該注意,取決于本發(fā)明的實現(xiàn),內(nèi)部智能密鑰設(shè)備仍舊可以進行某些功能使得其不會被完全禁止??梢约僭O(shè)內(nèi)部智能密鑰設(shè)備中的加密功能可以通過軟件或硬件使能或禁止。例如,在硬件模式中,內(nèi)部智能密鑰設(shè)備中具體電路的操作可以通過某些觸發(fā)或必須基于表示外部智能密鑰設(shè)備是否已經(jīng)被接受的使能狀態(tài)被設(shè)定或清零的其它機制而被防止進入可操作狀態(tài);在軟件模式中,某些加密功能的操作可以通過設(shè)定和清零邏輯地控制加密功能執(zhí)行的特定使能標(biāo)記來保護。
現(xiàn)在參照圖9A到9B,一對流程圖描繪了在圖6的塊604中所示相互認證程序的進一步的細節(jié)。圖9A描繪了內(nèi)部智能密鑰設(shè)備認證外部智能密鑰設(shè)備的過程,而圖9B描繪了外部智能密鑰設(shè)備認證內(nèi)部智能密鑰設(shè)備的過程。圖9A中所示的過程可以在圖9B所示過程之前進行,反之亦然;取決于本發(fā)明被實現(xiàn)的方式,所述過程可以單獨和/或可以同時進行,例如通過指示操作正被嘗試的合適信號或狀態(tài)標(biāo)記進行。
現(xiàn)在參照圖9A,在塊902過程開始時,內(nèi)部智能密鑰設(shè)備使用外部智能密鑰設(shè)備的公鑰來對例如隨機文本串的消息加密。在塊904,內(nèi)部智能密鑰設(shè)備通過主機系統(tǒng)的合適接口將加密消息傳送到外部智能密鑰設(shè)備,然后在塊906,外部智能密鑰設(shè)備用其私鑰對加密消息進行解密。然后在塊908,外部智能密鑰設(shè)備用內(nèi)部智能密鑰設(shè)備的公鑰對解密消息進行加密,并且在塊910將加密消息傳遞到內(nèi)部智能密鑰設(shè)備。然后在塊912,內(nèi)部智能密鑰設(shè)備用其私鑰對加密消息進行解密,然后在塊914,比較所接收的消息和其原始消息。如果兩個消息匹配,那么在塊916,內(nèi)部智能密鑰設(shè)備例如通過合適的信號或者通過設(shè)置邏輯標(biāo)記變量來提供指示,即內(nèi)部智能密鑰設(shè)備已經(jīng)判斷出外部智能密鑰設(shè)備是真實的,從而結(jié)束過程。
現(xiàn)在參照圖9B,在塊922,當(dāng)外部智能密鑰設(shè)備使用內(nèi)部智能密鑰設(shè)備的公鑰來對例如隨機文本串的消息加密時,過程開始。在塊924,外部智能密鑰設(shè)備將加密消息傳送到內(nèi)部智能密鑰設(shè)備,然后在塊926,內(nèi)部智能密鑰設(shè)備用其私鑰對加密消息進行解密。然后在塊928,內(nèi)部智能密鑰設(shè)備用外部智能密鑰設(shè)備的公鑰對解密消息進行加密,并且在塊930將加密消息傳遞到外部智能密鑰設(shè)備。然后在塊932,外部智能密鑰設(shè)備用其私鑰對加密消息進行解密,然后在塊934,比較所接收的消息和其原始消息。如果兩個消息匹配,那么在塊936,外部智能密鑰設(shè)備例如通過合適的信號或者通過設(shè)置邏輯標(biāo)記變量來提供指示,即外部智能密鑰設(shè)備已經(jīng)判斷出內(nèi)部智能密鑰設(shè)備是真實的,從而結(jié)束過程。
現(xiàn)在參照圖10A到10B,一對流程圖描繪了圖7塊704所示相互認證程序的進一步的細節(jié)。圖10A描繪了軟件智能密鑰單元認證內(nèi)部智能密鑰設(shè)備的過程,而圖10B描繪了內(nèi)部智能密鑰設(shè)備認證軟件智能密鑰單元的過程。圖10A所示過程可以在圖10B所示過程之前進行,反之亦然;取決于本發(fā)明實現(xiàn)的方式,所述過程可以單獨和/或可以同時進行,例如通過指示操作正被嘗試的合適消息或狀態(tài)標(biāo)記進行。
現(xiàn)在參照圖10A,在塊1002,當(dāng)軟件智能密鑰單元使用內(nèi)部智能密鑰設(shè)備的公鑰來對例如隨機文本串的消息加密時,過程開始。在塊1004,軟件智能密鑰單元將加密消息傳送到內(nèi)部智能密鑰設(shè)備,然后在塊1006,內(nèi)部智能密鑰設(shè)備用其私鑰對加密消息進行解密。然后在塊1008,內(nèi)部智能密鑰設(shè)備用軟件智能密鑰單元的公鑰對解密消息進行加密,并且在塊1010將加密消息傳遞到軟件智能密鑰單元。然后在塊1012,軟件智能密鑰單元用其私鑰對加密消息進行解密,然后在塊1014,比較所接收的消息和其原始消息。如果兩個消息匹配,那么在塊1016,軟件智能密鑰單元例如通過合適的消息或者通過設(shè)置邏輯標(biāo)記變量來提供指示,即軟件智能密鑰單元已經(jīng)判斷出內(nèi)部智能密鑰設(shè)備是真實的,從而結(jié)束過程。
與圖10A形成對比,圖10B圖示了會話密鑰而非隨機文本串作為在兩個實體之間傳遞的消息的使用。如果兩個實體之間的相互認證過程被成功結(jié)束,那么會話密鑰被用于確保兩個實體之間會話期間后續(xù)的消息流量;會話可以是定時的,或者會話可以由具體的事件終止,所述事件例如軟件實體執(zhí)行的終止或者硬件實體的電源關(guān)閉。會話密鑰在加密之前可以放在包含其它消息的更大的消息內(nèi),而之后加密消息在兩個實體之間傳遞。在可替換實施例中,隨機文本串可以用于認證程序,之后兩個實體可以交換會話密鑰。如下面更詳細說明的,在認證過程期間額外的信息可以在兩個實體之間可靠地傳遞以減少用于交換信息的行為數(shù)量。
現(xiàn)在參照圖10B,在塊1022,當(dāng)內(nèi)部智能密鑰設(shè)備使用軟件智能密鑰單元的公鑰來對會話密鑰加密時,過程開始。在塊1024,內(nèi)部智能密鑰設(shè)備將加密會話密鑰傳送到軟件智能密鑰單元,然后在塊1026,軟件智能密鑰單元用其私鑰對加密會話密鑰進行解密。然后在塊1028,軟件智能密鑰單元用內(nèi)部智能密鑰設(shè)備的公鑰對解密會話密鑰進行加密,并且在塊1030將加密會話密鑰傳遞到內(nèi)部智能密鑰設(shè)備。然后在塊1032,內(nèi)部智能密鑰設(shè)備用其私鑰對加密會話密鑰進行解密,然后在塊1034,比較所接收的會話密鑰和其原始會話密鑰。如果兩個版本的會話密鑰匹配,那么在塊1036,內(nèi)部智能密鑰設(shè)備例如通過合適的消息或者通過設(shè)置邏輯標(biāo)記變量來提供指示,即內(nèi)部智能密鑰設(shè)備已經(jīng)判斷出軟件智能密鑰單元是真實的,從而結(jié)束過程。
額外的保護行為可以與圖7所示過程結(jié)合進行。例如,在塊702,應(yīng)用程序或小應(yīng)用程序已經(jīng)請求使用嵌入在內(nèi)部智能密鑰設(shè)備中的功能。在開始圖10B所示的過程之前某個時間點,內(nèi)部智能密鑰設(shè)備可以進行檢驗請求應(yīng)用程序或小應(yīng)用程序中的軟件智能密鑰單元是否包含安全代碼的額外行為。如以上參考圖5提到的,SWSKU 538可以被數(shù)字簽署;SWSKU 538包含已經(jīng)使用INSKD_SW私鑰536在SWSKU 538上計算出的數(shù)字簽名562。因此,內(nèi)部智能密鑰設(shè)備可以通過檢驗與軟件智能密鑰單元相關(guān)聯(lián)的數(shù)字簽名,來檢驗請求應(yīng)用程序或小應(yīng)用程序中的軟件智能密鑰單元是否包含安全代碼。
在Java環(huán)境中,軟件智能密鑰單元可以被實現(xiàn)為簽署的JAR文件;在一個實施例中,內(nèi)部智能密鑰設(shè)備被用于檢驗被簽署JAR文件的數(shù)字簽名。在不同的實施例中,JAR文件和Java包還可以被密封使得類加載程序?qū)嵤┌械乃写a都應(yīng)該從密封的JAR文件被裝入。密封JAR文件和Java包的行為可以防止功能被惡意用戶通過將代碼注入到類路徑中而修改。此外,類加載程序本身可以被簽署和密封,使得類加載程序的完整性可以被證實。
在更一般的計算環(huán)境中,雖然內(nèi)部智能密鑰設(shè)備可以數(shù)字化簽署軟件智能密鑰單元并在隨后確認數(shù)字簽名,但是確保軟件智能密鑰單元被簽署和確認的過程可以由數(shù)據(jù)處理系統(tǒng)內(nèi)合適的操作系統(tǒng)模塊加上內(nèi)部智能密鑰設(shè)備的輔助而被控制,所述內(nèi)部智能密鑰設(shè)備例如為裝入用于執(zhí)行的軟件模塊的程序加載程序。在允許軟件模塊執(zhí)行之前,程序加載程序可以進行額外的安全過程。此外,程序加載程序本身可以被簽署和密封,使得程序加載程序的完整性可以被證實。
雖然上述過程提供了用于確保軟件智能密鑰單元完整性的機制,但是數(shù)據(jù)處理系統(tǒng)內(nèi)的軟件智能密鑰單元的操作可能仍舊被認為是在一定程度上易受攻擊的,因為其加密密鑰可以通過檢查包括軟件智能密鑰單元的代碼而被看到和拷貝;可以假設(shè)加密密鑰被沒有危險地存儲在軟件智能密鑰單元內(nèi)。
因此,為了保護軟件智能密鑰單元,尤其是其私鑰,另一個安全行為可以與圖7所示的過程結(jié)合進行。在某個之前的時間點,軟件智能密鑰單元可以被加密,從而隱蔽軟件智能密鑰單元內(nèi)的任何敏感信息,尤其是其私鑰。在不同的實施例中,包括軟件智能密鑰單元的軟件模塊可以被加密。例如,當(dāng)軟件模塊被安裝到數(shù)據(jù)處理系統(tǒng)上時,數(shù)據(jù)處理系統(tǒng)上的內(nèi)部智能密鑰設(shè)備可以對軟件模塊進行加密,作為包括軟件模塊的應(yīng)用程序安裝過程的一部分。
在其中進行該額外行為的系統(tǒng)中,然后軟件智能密鑰單元和/或包括軟件智能密鑰單元的軟件模塊在其被執(zhí)行之前將需要解密。在與上述參照使用數(shù)字簽名保護軟件智能密鑰單元完整性描述的時間點類似的時間點,例如在開始圖10B所示過程之前的某個時間點,內(nèi)部智能密鑰設(shè)備將進行對軟件智能密鑰單元和/或包括軟件智能密鑰單元的軟件模塊進行解密的額外行為。同樣,以與前述類似的方式,解密過程可以由數(shù)據(jù)處理系統(tǒng)內(nèi)合適的操作系統(tǒng)加上內(nèi)部智能密鑰設(shè)備的輔助而被控制。有關(guān)在軟件模塊安裝以與內(nèi)部智能密鑰設(shè)備結(jié)合使用時改變軟件模塊的過程以及以安全方式執(zhí)行這種軟件模塊的過程的進一步細節(jié)將在下面提供。
現(xiàn)在參照圖11A,流程圖描繪了內(nèi)部智能密鑰設(shè)備中用于進行軟件智能密鑰單元所請求操作的過程,其中,所述操作基于外部智能密鑰設(shè)備的存在而被使能或禁止。在塊1102,當(dāng)內(nèi)部智能密鑰設(shè)備從軟件智能密鑰單元接收到請求消息時,過程開始;請求消息包含消息類型的變量,該變量指示正被軟件智能密鑰單元請求的操作類型。然后在塊1104,進行軟件智能密鑰單元是否已經(jīng)被內(nèi)部智能密鑰設(shè)備認證的判斷;該判斷可以通過使用在例如參照圖10B描述的在先認證程序期間由內(nèi)部智能密鑰設(shè)備傳遞給軟件智能密鑰單元的會話密鑰對所接收消息的內(nèi)容成功地解密來進行。如果軟件智能密鑰單元還沒有被認證,那么在塊1106,內(nèi)部智能密鑰設(shè)備產(chǎn)生合適的錯誤響應(yīng),并且在塊1108,將響應(yīng)消息返回給發(fā)出請求的軟件智能密鑰單元,從而結(jié)束過程。
如果軟件智能密鑰單元已經(jīng)被認證,那么在塊1110,內(nèi)部智能密鑰設(shè)備判斷外部智能密鑰設(shè)備是否仍舊與系統(tǒng)單元電學(xué)結(jié)合。例如,該判斷可能只需要檢查在系統(tǒng)單元與外部智能密鑰設(shè)備之間的電學(xué)連接已經(jīng)斷開時將被清零的專用寄存器。如果外部智能密鑰設(shè)備沒有與系統(tǒng)單元電學(xué)結(jié)合,那么內(nèi)部智能密鑰設(shè)備在塊1106產(chǎn)生錯誤響應(yīng),并在塊1108將響應(yīng)消息返回給軟件智能密鑰單元,從而結(jié)束過程。
如果軟件智能密鑰單元已經(jīng)被認證,并且外部智能密鑰設(shè)備仍舊與系統(tǒng)單元電學(xué)結(jié)合,那么如果可能,內(nèi)部智能密鑰設(shè)備對軟件智能密鑰單元進行所請求的功能。塊1112和塊1114描繪了可以由內(nèi)部智能密鑰設(shè)備提供的功能示例;這些示例的列舉并不意味著在本發(fā)明的其它實現(xiàn)中其它功能不可用。在優(yōu)選實施例中,只有當(dāng)外部智能密鑰設(shè)備在相互認證之后保持與內(nèi)部智能密鑰設(shè)備電學(xué)結(jié)合時,內(nèi)部智能密鑰設(shè)備才進行下面的功能作為認證機構(gòu)頒發(fā)新的數(shù)字證書;并且使用內(nèi)部智能密鑰設(shè)備的私鑰簽署軟件模塊,其中,私鑰對應(yīng)于可用的公鑰證書。應(yīng)該注意,本發(fā)明不允許內(nèi)部智能密鑰設(shè)備的用于檢索私鑰的任何接口;因此,使用其私鑰進行簽署操作只能夠通過內(nèi)部智能密鑰設(shè)備進行。
如果軟件智能密鑰單元已經(jīng)請求嵌入在請求消息內(nèi)的數(shù)據(jù)項上的數(shù)字簽名,那么在塊1112,內(nèi)部智能密鑰設(shè)備使用合適的私鑰計算數(shù)據(jù)項上的數(shù)字簽名,并將數(shù)字簽名(優(yōu)選地,連同其返回的數(shù)據(jù)項副本)插入到響應(yīng)消息中。如果軟件智能密鑰單元已經(jīng)請求數(shù)字證書,那么在塊1114,內(nèi)部智能密鑰設(shè)備使用合適的私鑰產(chǎn)生數(shù)字證書,并將數(shù)字證書插入到響應(yīng)消息中;數(shù)字證書可以包括由請求消息內(nèi)由軟件智能密鑰單元提供的任何標(biāo)識信息。在合適的響應(yīng)消息已經(jīng)被產(chǎn)生之后,所述產(chǎn)生將包括用合適的會話密鑰對任何敏感數(shù)據(jù)進行加密,在塊1108,響應(yīng)消息被返回到軟件智能密鑰單元,過程結(jié)束。
再次返回到塊1112,任何類型的數(shù)字?jǐn)?shù)據(jù)項都可以被簽署。再次參照圖4,應(yīng)用程序408表示可以包含本發(fā)明功能的許多不同類型的應(yīng)用程序。在一個實施例中,應(yīng)用程序可以是簽署JavaJAR文件的應(yīng)用服務(wù)器,或者是已經(jīng)由應(yīng)用服務(wù)器直接產(chǎn)生的或者代表主機系統(tǒng)上其它應(yīng)用程序的文件。在某些情況下,新產(chǎn)生的JAR文件本身就可以包含能夠調(diào)用主機系統(tǒng)內(nèi)部智能密鑰設(shè)備中的功能的軟件智能密鑰單元。
現(xiàn)在參照圖11B,流程圖描繪了內(nèi)部智能密鑰設(shè)備中用于進行軟件智能密鑰單元所請求操作的過程,其中,所述操作不需要外部智能密鑰設(shè)備的存在來使能。在塊1122,當(dāng)內(nèi)部智能密鑰設(shè)備從軟件智能密鑰單元接收到請求消息時,過程開始;請求消息包含消息類型的變量,該變量指示正被軟件智能密鑰單元請求的操作類型。然后在塊1124,進行軟件智能密鑰單元是否已經(jīng)被內(nèi)部智能密鑰設(shè)備認證的判斷;該判斷可以通過使用在例如參照圖10B描述的在先認證程序期間由內(nèi)部智能密鑰設(shè)備傳遞給軟件智能密鑰單元的會話密鑰對所接收消息的內(nèi)容成功地解密來進行。如果軟件智能密鑰單元還沒有被認證,那么在塊1126,內(nèi)部智能密鑰設(shè)備產(chǎn)生合適的錯誤響應(yīng),并且在塊1128,將響應(yīng)消息返回給發(fā)出請求的軟件智能密鑰單元,從而結(jié)束過程。
如果軟件智能密鑰單元已經(jīng)被認證,那么如果可能,內(nèi)部智能密鑰設(shè)備進行對軟件智能密鑰單元的請求功能。塊1130和塊1132描繪了可以由內(nèi)部智能密鑰設(shè)備提供的功能示例;這些示例的列舉并不意味著在本發(fā)明的其它實現(xiàn)中不可用其它功能。在優(yōu)選實施例中,在不存在外部智能密鑰設(shè)備時,下面的功能將由內(nèi)部智能密鑰設(shè)備進行給定所需密鑰時的加密和解密;給定證書時確認數(shù)字簽名;相互認證軟件智能密鑰單元;以及允許所存儲的敏感信息由相互被認證的軟件智能密鑰單元進行讀/寫訪問。
如果軟件智能密鑰單元已經(jīng)請求嵌入在請求消息內(nèi)的主秘密的登記,那么在塊1130,內(nèi)部智能密鑰設(shè)備存儲主秘密以及軟件智能密鑰單元的某些標(biāo)識信息,并產(chǎn)生響應(yīng)消息。如果軟件智能密鑰單元已經(jīng)請求在先登記的主秘密的檢索,那么在塊1132,內(nèi)部智能密鑰設(shè)備基于軟件智能密鑰單元的身份檢索主秘密,并產(chǎn)生響應(yīng)消息。在合適的響應(yīng)消息已經(jīng)被產(chǎn)生之后,其中所述產(chǎn)生包括用合適的會話密鑰對任何敏感數(shù)據(jù)進行加密,在塊1128,響應(yīng)消息被返回到軟件智能密鑰單元,過程結(jié)束。
以這種方式,如果例如頒發(fā)數(shù)字證書的特別敏感的操作需要由內(nèi)部智能密鑰設(shè)備進行,那么只需要使外部智能密鑰設(shè)備與內(nèi)部智能密鑰設(shè)備電學(xué)結(jié)合。如參照圖11B描述的,軟件智能密鑰單元可以在軟件智能密鑰單元已經(jīng)與內(nèi)部智能密鑰設(shè)備進行相互認證之后將例如加密密鑰的敏感信息存儲在內(nèi)部智能密鑰設(shè)備中,而無需外部智能密鑰設(shè)備的存在;敏感信息只能被相同的軟件智能密鑰單元檢索。
該方法是有優(yōu)勢的,因為軟件智能密鑰單元可以以獨立于外部智能密鑰設(shè)備的方式與內(nèi)部智能密鑰設(shè)備進行相互認證。例如,該方法允許以無人操作模式開始軟件程序,也就是說,沒有人插入外部智能密鑰設(shè)備;程序可以使用在先簽署和密封的軟件智能密鑰單元來從內(nèi)部智能密鑰設(shè)備檢索任何敏感信息。軟件程序可以從內(nèi)部智能密鑰設(shè)備檢索到用于解密口令的主秘密以及用于無需人為干預(yù)來安全地結(jié)束啟動過程的其它加密配置信息。
現(xiàn)在參照圖12,框示了用于保護主秘密的本發(fā)明的實施例。如上面提到的,存儲在數(shù)據(jù)處理系統(tǒng)上的秘密消息可以用主秘密來加密,這使得保護主秘密的需要成為必要。在現(xiàn)有的系統(tǒng)中,主秘密的保護典型地是通過主秘密正在其上被使用的主機系統(tǒng)之外的機制進行的。與典型的現(xiàn)有系統(tǒng)相對比,本發(fā)明的實施例可以用來保護主秘密將在其中被使用的主機系統(tǒng)上的主秘密。
圖12類似于圖4;系統(tǒng)單元1202與外部智能密鑰設(shè)備1204接口,系統(tǒng)單元1202還包含內(nèi)部智能密鑰設(shè)備1206。系統(tǒng)單元1202還支持軟件智能密鑰單元1208到1212。但是與圖4相對比,圖12中的內(nèi)部智能密鑰設(shè)備1206已經(jīng)被增強而包括用于保護主秘密的主秘密登記表1214,所述主秘密可能是口令、加密密鑰或某種其它形式。如上面參照圖11B中的塊1130和1132簡要描述的,軟件智能密鑰單元1208到1212可以通過安全請求/響應(yīng)機制將主秘密存儲在內(nèi)部智能密鑰設(shè)備1206中。內(nèi)部智能密鑰設(shè)備1206將來自軟件智能密鑰單元1208到1212的主秘密與用于請求軟件智能密鑰單元的標(biāo)識信息相關(guān)聯(lián)存儲。例如,主秘密登記表1214包含與主秘密1218相關(guān)聯(lián)的SWSKU標(biāo)識符1216;可以在SWSKU ID 1216上進行的查找操作將使其與主秘密1218相關(guān)?;蛘?,主秘密登記表1214可以支持每個軟件智能密鑰單元多于一個的主秘密;一組主秘密可以在合適時通過每一個請求操作而被登記或檢索。雖然圖11B只圖示了登記操作和檢索操作,但是可能與主秘密管理相關(guān)的其它操作例如刪除操作或覆蓋操作也可以被支持。
如圖10B的描述提到的,額外的信息可以在認證過程期間在內(nèi)部智能密鑰設(shè)備與軟件智能密鑰單元之間被安全地傳遞以減少用于交換信息的行為數(shù)量。為此,用于軟件智能密鑰單元的主秘密可以在認證過程期間被傳遞。因為可信的軟件智能密鑰單元是應(yīng)該具有軟件智能密鑰單元的私鑰副本的唯一實體,那么只有軟件智能密鑰單元能夠解密在認證期間由內(nèi)部智能密鑰設(shè)備提供的軟件智能密鑰單元的主秘密。
現(xiàn)在參照圖13到15,框示了多個外部智能密鑰設(shè)備與多個內(nèi)部智能密鑰設(shè)備之間的不同關(guān)系。前面附圖的描述可能似乎暗示在外部智能密鑰設(shè)備與內(nèi)部智能密鑰設(shè)備之間存在唯一的一一對應(yīng)關(guān)系。現(xiàn)在參照圖13,唯一的內(nèi)部智能密鑰設(shè)備1302可以通過使用多個外部智能密鑰設(shè)備1304到1308中的任何一個被使能。例如,IT管理員小組中的每一個都可以具有可以被插入到包含內(nèi)部智能密鑰設(shè)備1302的具體服務(wù)器機中的可移動智能密鑰設(shè)備?,F(xiàn)在參照圖14,唯一的外部智能密鑰設(shè)備1402可以使能多個內(nèi)部智能密鑰設(shè)備1404到1408中的任何一個。例如,IT管理員可以在多個服務(wù)器機上使用單個可移動智能密鑰設(shè)備,所述多個服務(wù)器機的每一個都只包含內(nèi)部智能密鑰設(shè)備1404到1408中的一個?,F(xiàn)在參照圖15,多個外部智能密鑰設(shè)備1502到1506可以使能多個內(nèi)部智能密鑰設(shè)備1512到1515中的任何一個。例如,IT管理員小組中的每一個都可以具有可以被插入到許多不同服務(wù)器機中的可移動智能密鑰設(shè)備,所述許多不同的服務(wù)器機中每一個都只包含內(nèi)部智能密鑰設(shè)備1512-1516中的一個。為了支持給定智能密鑰設(shè)備上的多對一關(guān)系或一對多關(guān)系,給定的智能密鑰設(shè)備只要求對額外的相應(yīng)內(nèi)部智能密鑰設(shè)備和/或外部智能密鑰設(shè)備的額外公鑰證書的存儲或配置。
在討論本發(fā)明的其它實施例之前,提供有關(guān)基于數(shù)字證書的信任關(guān)系的一些背景信息,用于評價本發(fā)明其它實施例的操作效率和其它優(yōu)點。
現(xiàn)在參照圖16A到16C,每一個框圖描繪了一組典型的信任關(guān)系。現(xiàn)在參照圖16A,認證機構(gòu)1602已經(jīng)向服務(wù)器1604和1606頒發(fā)了數(shù)字證書。如前面提到的,認證機構(gòu)是代表可能是人類用戶的其它實體、但是也可能代表例如應(yīng)用程序或數(shù)據(jù)處理設(shè)備的程序?qū)嶓w或硬件實體頒發(fā)數(shù)字證書的可信任實體。因此,服務(wù)器1604和1606可能已經(jīng)由用戶代表,例如圖2或圖3中示出的用戶202或302;或者,服務(wù)器1604和1606可以是某種其它類型的程序?qū)嶓w,例如圖4所示的應(yīng)用程序408。認證機構(gòu)1602已經(jīng)向服務(wù)器1604和1606頒發(fā)了數(shù)字證書。服務(wù)器1604和1606通過如本發(fā)明描述地與認證機構(gòu)1602進行相互認證而隨后建立與認證機構(gòu)1602的信任關(guān)系1608和1610。在某個時間點,服務(wù)器1604可以將其數(shù)字證書連同例如已經(jīng)使用其私鑰簽署的數(shù)據(jù)項的相應(yīng)私鑰擁有證明顯示給服務(wù)器1606,同時請求由服務(wù)器1606提供的服務(wù)。因為服務(wù)器1606信任認證機構(gòu)1602,所以服務(wù)器1606能夠通過檢驗從服務(wù)器1604接收的數(shù)字證書是被認證機構(gòu)1602簽署的來認證服務(wù)器1604。相反的情況也是真的,因為服務(wù)器1604將能夠認證服務(wù)器1606。以這種方式,服務(wù)器1604和服務(wù)器1606能夠在它們之間建立信任關(guān)系1612。
現(xiàn)在參照圖16B,服務(wù)器1614已經(jīng)與服務(wù)器1606建立了信任關(guān)系1616。在該示例中,沒有為信任關(guān)系1616提供基礎(chǔ),并且服務(wù)器1604還沒有接受與服務(wù)器1614的信任關(guān)系1616。
現(xiàn)在參照圖16C,類似的標(biāo)號指代與圖16A中所示的類似的單元;不過,圖16C示出了除16A所示那些單元之外的額外單元。認證機構(gòu)1620已經(jīng)向服務(wù)器1606和1622頒發(fā)了數(shù)字證書。倘若認證機構(gòu)1620已經(jīng)向服務(wù)器1606和1622頒發(fā)了數(shù)字證書,那么認證機構(gòu)就被認為已經(jīng)分別與服務(wù)器1606和1622建立了信任關(guān)系1624和1626。在某個時間點,服務(wù)器1622可以將其數(shù)字證書顯示給服務(wù)器1606,同時請求由服務(wù)器1606提供的服務(wù)。因為服務(wù)器1622信任認證機構(gòu)1620,所以服務(wù)器1606能夠通過檢驗從服務(wù)器1622接收的數(shù)字證書是由認證機構(gòu)1620簽署的來認證服務(wù)器1622。相反的情況也是真實的,服務(wù)器1622將能夠認證服務(wù)器1606。以這種方式,服務(wù)器1622和服務(wù)器1606能夠在它們之間建立信任關(guān)系1628。
信任關(guān)系可以是傳遞性的。如前面參照圖16B提到的,服務(wù)器1606已經(jīng)與服務(wù)器1614建立了信任關(guān)系1616。但是,服務(wù)器1604不承認信任關(guān)系1616,這可能是因為服務(wù)器1606不能提供有關(guān)信任關(guān)系1616基礎(chǔ)的充分信息。但是,在圖16C中,服務(wù)器1606能夠提供有關(guān)其在服務(wù)器之間的信任關(guān)系的充分信息,所述服務(wù)器是服務(wù)器1606已經(jīng)與其建立信任關(guān)系的服務(wù)器。在該示例中,服務(wù)器1606將有關(guān)信任關(guān)系1628的信息提供給服務(wù)器1604。給定了服務(wù)器1604與服務(wù)器1606之間的信任關(guān)系1612和服務(wù)器1606與服務(wù)器1622之間的信任關(guān)系1628,服務(wù)器1604和服務(wù)器1622能夠在服務(wù)器1604與服務(wù)器1622之間建立傳遞性的信任關(guān)系1630。服務(wù)器可以根據(jù)前面提到的證書管理協(xié)議傳送證書。
以這種方式,服務(wù)器能夠在它們自身與認證機構(gòu)之間形成復(fù)雜的、分等級的信任關(guān)系。每一個認證機構(gòu)可以被看作是樹結(jié)構(gòu)的根;認證機構(gòu)有時被稱為根機構(gòu),特別是在樹結(jié)構(gòu)內(nèi)的其它實體也作為二級認證機構(gòu)時。多根認證機構(gòu)的使用允許多個樹結(jié)構(gòu)重疊,如圖16C所示。現(xiàn)在轉(zhuǎn)回本發(fā)明,剩余的附圖描繪了本發(fā)明實施例的示例,其中本發(fā)明被實現(xiàn)為使用如上描述的內(nèi)部和外部智能密鑰設(shè)備的優(yōu)點來構(gòu)成信任模式。
現(xiàn)在參照圖17,框圖描繪了根據(jù)本發(fā)明實施例由基于內(nèi)部智能密鑰設(shè)備所提供信任的信任關(guān)系構(gòu)成的信任模式的示例。本發(fā)明的內(nèi)部智能密鑰設(shè)備在作為認證機構(gòu)時提供高級別的可信度。如參照其它附圖描述的,內(nèi)部智能密鑰設(shè)備提供用于保護信息的機制。如參照圖11描述的,可以由內(nèi)部智能密鑰設(shè)備提供的功能之一就是數(shù)字證書的頒發(fā)。因為內(nèi)部智能密鑰設(shè)備將被實現(xiàn)為數(shù)據(jù)處理系統(tǒng)內(nèi)系統(tǒng)單元的一部分,例如母板上的專門化芯片,所以內(nèi)部智能密鑰設(shè)備應(yīng)該被物理保護,從而使得惡意用戶難以實現(xiàn)不適當(dāng)?shù)姆桨浮4送?,?nèi)部智能密鑰設(shè)備的可信度通過如下事實增強,所述事實即內(nèi)部智能密鑰設(shè)備的數(shù)字證書的頒發(fā)可以由系統(tǒng)管理員通過使用外部智能密鑰設(shè)備來控制。因此,內(nèi)部智能密鑰設(shè)備頒發(fā)數(shù)字證書的能力允許內(nèi)部智能密鑰設(shè)備起到信任模式基礎(chǔ)的作用。
以這種方式,不同類型的實體,例如不同種類的硬件和軟件計算資源,能夠在它們與作為基于硬件的認證機構(gòu)的內(nèi)部智能密鑰設(shè)備之間形成復(fù)雜的、分等級的信任關(guān)系。在該信任模式中,信任是根生于由數(shù)據(jù)處理系統(tǒng)上的內(nèi)部智能密鑰設(shè)備提供的認證機構(gòu)功能中。信任關(guān)系等級可以由如圖17所示的倒金字塔表示,其中,內(nèi)部智能密鑰設(shè)備位于倒金字塔的頂端,并且計算資源形成倒金字塔。在分布式數(shù)據(jù)處理環(huán)境中,信任關(guān)系可以被看作是重疊的倒金字塔的集合,其中每一個倒金字塔基于每一個機器上的內(nèi)部智能密鑰設(shè)備,如圖17所示。
在圖17中,信任模式的示例示出了兩個內(nèi)部智能密鑰設(shè)備1702和1704,它們分別包括包含允許每一個內(nèi)部智能密鑰設(shè)備作為認證機構(gòu)功能的認證機構(gòu)模塊1706和1708。內(nèi)部智能密鑰設(shè)備1704已經(jīng)向二級軟件認證機構(gòu)模塊1710頒發(fā)了證書,所述二級軟件認證機構(gòu)模塊1710是在與內(nèi)部智能密鑰設(shè)備1704在其上駐留的相同系統(tǒng)單元上執(zhí)行的軟件應(yīng)用程序。數(shù)據(jù)處理系統(tǒng)內(nèi)等級較高的軟件認證機構(gòu)模塊,例如二級軟件認證機構(gòu)模塊1710,從信任等級內(nèi)等級較低的軟件認證機構(gòu),例如由數(shù)據(jù)處理系統(tǒng)上內(nèi)部智能密鑰設(shè)備的認證機構(gòu)功能提供的根信任(root trust)即內(nèi)部智能密鑰設(shè)備1704,得到授權(quán)。例如,內(nèi)部智能密鑰設(shè)備1704可以簽署二級軟件認證機構(gòu)模塊1710的數(shù)字證書,二級軟件認證機構(gòu)模塊1710使用相應(yīng)的私鑰簽署其頒發(fā)的數(shù)字證書。以這種方式,二級軟件認證機構(gòu)模塊1710作為內(nèi)部智能密鑰設(shè)備1704的下級認證機構(gòu),這在以內(nèi)部智能密鑰設(shè)備1704為根的認證鏈中將有所反映。在另一個示例中,內(nèi)部智能密鑰設(shè)備1704可以簽署下級軟件認證機構(gòu)模塊,而該下級軟件認證機構(gòu)模塊本身可以簽署另一個下級的軟件認證機構(gòu)模塊。
內(nèi)部智能密鑰設(shè)備1702已經(jīng)向?qū)嶓w1712到1718頒發(fā)了數(shù)字證書,而二級軟件認證機構(gòu)1710已經(jīng)向?qū)嶓w1722到1728頒發(fā)了數(shù)字證書,從而在證書頒發(fā)者與證書接受者之間建立了信任關(guān)系;實體1712到1718和實體1722到1728可以是應(yīng)用程序或者某種其它類型的程序?qū)嶓w。此外,二級軟件認證機構(gòu)1710已經(jīng)向?qū)嶓w1716頒發(fā)了數(shù)字證書,從而在這兩個實體之間建立了信任關(guān)系。
因為圖17表示了其中所有計算資源都可以包括用于彼此認證自身的證書處理功能的信任模式,所以這些計算資源需要被配置成包括證書處理功能。例如,如果圖17中的不同實體代表軟件應(yīng)用程序,那么這些軟件應(yīng)用程序需要包括已經(jīng)被提供唯一公鑰證書并且承載唯一相應(yīng)私鑰的模塊。
例如,單獨作用使其需要與其它資源進行認證操作的能力的每一個計算資源可以具有嵌入式軟件智能密鑰單元,例如以圖5所示的方式,在圖5中應(yīng)用程序540包含SWSKU 538。應(yīng)用程序540包含包括SWSKU私鑰550的SWSKU 538;SWSKU公鑰證書554包含與SWSKU私鑰550相應(yīng)的SWSKU公鑰556的副本作為非對稱加密密鑰對。SWSKU 538還包含INSKD_SW公鑰證書558的副本。因此,應(yīng)用程序540是根在INSKD 522中的信任等級的一部分。使用嵌入在SWSKU 538內(nèi)的信息以及SWSKU 538的功能能力,應(yīng)用程序540能夠認證也信任INSKD522的任何其它計算資源。因此,為了根據(jù)本發(fā)明實現(xiàn)其中所有計算資源都可以包括用于相互認證自身的證書處理功能的信任模式,系統(tǒng)管理員需要在計算資源是數(shù)據(jù)處理設(shè)備時確保每一個計算資源包括內(nèi)部智能密鑰設(shè)備,或者在計算資源是程序?qū)嶓w時確保每一個計算資源包括軟件智能密鑰單元。
但是,在圖5所示的示例中,SWKSU 538變?yōu)橐阅撤N方式嵌入在應(yīng)用程序540中。多種過程可以用來將所需功能嵌入在每一個程序資源中,如下面描述的。
現(xiàn)在參照圖18,框圖描繪了根據(jù)本發(fā)明實施例用于產(chǎn)生操作系統(tǒng)文件的數(shù)據(jù)處理系統(tǒng),其中,操作系統(tǒng)中的每一個程序?qū)嶓w都包含用于基于內(nèi)部智能密鑰設(shè)備在信任等級中建立信任關(guān)系的功能。圖18類似于圖4;系統(tǒng)單元1802與外部智能密鑰設(shè)備1804接口,并且系統(tǒng)單元1802還包含內(nèi)部智能密鑰設(shè)備1806。
在該示例中,操作系統(tǒng)安裝應(yīng)用程序1808負責(zé)將操作系統(tǒng)文件安裝到包括系統(tǒng)單元1802的機器上。在安裝程序期間,操作系統(tǒng)安裝應(yīng)用程序1808從例如磁帶或CD-ROM的發(fā)布介質(zhì)上讀取操作系統(tǒng)文件1812,并產(chǎn)生完全可操作的模塊1814,下面將更詳細地進行說明。
應(yīng)該注意,雖然圖18描繪了其中行為是對操作系統(tǒng)文件進行的示例,但是可替換實施例可以應(yīng)用于任何類型的應(yīng)用程序文件。例如,操作系統(tǒng)安裝應(yīng)用程序1808可以被一般化以被描述為用于任何給定軟件應(yīng)用程序的安裝應(yīng)用程序,并且給定的軟件應(yīng)用程序可以由類似于操作系統(tǒng)文件1812的通用應(yīng)用程序文件表示。在安裝過程結(jié)束之后,安裝應(yīng)用程序已經(jīng)產(chǎn)生了類似于已被簽署的操作系統(tǒng)文件1814的、具有承載證書的軟件智能密鑰單元的應(yīng)用程序文件。
雖然圖18描繪了其中所有操作系統(tǒng)文件都被保護使得只有被正確安裝的操作系統(tǒng)模塊才能在系統(tǒng)單元1802上執(zhí)行的系統(tǒng)示例,但是上面提到的可替換實施例能夠限制系統(tǒng)內(nèi)所有軟件的執(zhí)行。對每一個安裝的應(yīng)用程序使用合適的安裝過程,每一個應(yīng)用程序模塊就都可以被保護。以這種方式,系統(tǒng)單元1802可能將軟件執(zhí)行僅限制到已經(jīng)通過由外部智能密鑰設(shè)備的存在控制的過程而安裝在系統(tǒng)上的軟件模塊。在本發(fā)明的基于Java的實現(xiàn)中,所有Java應(yīng)用程序都可能被要求包含在安裝過程期間被放到應(yīng)用程序中的軟件智能密鑰單元;如上所述,所有JAR文件和Java包可以被密封,使得類加載程序?qū)⑵仁拱械乃写a都應(yīng)該從密封的JAR文件中裝入。
現(xiàn)在參照圖19,流程圖描繪了根據(jù)本發(fā)明實施例用于產(chǎn)生操作系統(tǒng)模塊的過程,其中所述操作系統(tǒng)模塊包含軟件智能密鑰單元使得操作系統(tǒng)模塊能夠彼此進行認證操作。在塊1902,過程開始,操作系統(tǒng)安裝應(yīng)用程序檢查是否存在還沒有被處理的至少一個額外的操作系統(tǒng)模塊。如果不存在,那么過程結(jié)束。如果存在,那么在塊1904,操作系統(tǒng)安裝應(yīng)用程序從發(fā)布介質(zhì)上讀取操作系統(tǒng)模塊。例如,再次參照圖18,發(fā)布介質(zhì)上的操作系統(tǒng)模塊不完整;操作系統(tǒng)模塊如果不被進一步處理就不能被安裝。操作系統(tǒng)模塊1812包含操作系統(tǒng)文件的發(fā)布版本形式的樁模塊例程或空模塊;如果這些操作系統(tǒng)文件被安裝然后被執(zhí)行而沒有進一步的修改,那么操作系統(tǒng)服務(wù)將不能進行認證操作,從而使操作系統(tǒng)不可操作。
因此,在操作系統(tǒng)安裝應(yīng)用程序已經(jīng)從例如磁帶或CD-ROM的發(fā)布介質(zhì)上讀取操作系統(tǒng)模塊1812后,在塊1906,操作系統(tǒng)安裝應(yīng)用程序?qū)赌K例程或空模塊從當(dāng)前正被處理的操作系統(tǒng)模塊中刪除。在塊1908,操作系統(tǒng)安裝應(yīng)用程序產(chǎn)生非對稱加密密鑰對,然后在塊1910,請求本地系統(tǒng)單元上的內(nèi)部智能密鑰設(shè)備代表正被處理的操作系統(tǒng)模塊基于新產(chǎn)生的密鑰對頒發(fā)數(shù)字證書。以這種方式,操作系統(tǒng)安裝應(yīng)用程序的SWSKU扮作正代表其請求和頒發(fā)數(shù)字證書的實體;或者,操作系統(tǒng)安裝應(yīng)用程序內(nèi)的軟件認證機構(gòu)功能可以頒發(fā)數(shù)字證書,從而要求軟件認證機構(gòu)的公鑰證書連同內(nèi)部智能密鑰設(shè)備的公鑰證書一起成為正代表其請求且被頒發(fā)數(shù)字證書的實體的證書鏈的一部分??梢约僭O(shè)操作系統(tǒng)安裝操作由擁有外部智能密鑰設(shè)備的系統(tǒng)管理員控制;通過在操作系統(tǒng)安裝過程期間使外部智能密鑰設(shè)備與系統(tǒng)單元結(jié)合,系統(tǒng)管理員使內(nèi)部智能密鑰設(shè)備能夠頒發(fā)數(shù)字證書,從而防止了安裝程序被惡意用戶以某種方式欺騙。還可以假設(shè)每一個操作系統(tǒng)模塊都具有覆蓋所有操作系統(tǒng)模塊的名稱空間內(nèi)的唯一標(biāo)識符,使得唯一標(biāo)識符可以被并入到數(shù)字證書中。
然后在塊1912,操作系統(tǒng)安裝應(yīng)用程序產(chǎn)生軟件智能密鑰單元的實例。新產(chǎn)生的SWSKU并入了由操作系統(tǒng)安裝應(yīng)用程序代表新SWSKU產(chǎn)生的唯一私鑰。新SWSKU還并入了與由本地INSKD頒發(fā)的私鑰相對應(yīng)的公鑰證書;此外,形成新SWSKU的數(shù)字證書鏈一部分的任何其它公鑰證書也可以包括在內(nèi)。證書鏈代表貫穿信任等級的信任路徑。雖然公鑰證書一般是免費給出且可以免費獲得,但是建立證書鏈在計算上可能很貴;因此,新SWSKU可能需要顯示其證書鏈的任何數(shù)字證書的包括允許執(zhí)行時新SWSKU在認證操作期間快速顯示其證書鏈,從而使認證操作更有效率。
然后在塊1914,操作系統(tǒng)安裝應(yīng)用程序通過將新SWSKU嵌入到當(dāng)前正被處理的操作系統(tǒng)模塊中即代替被去除的樁模塊和空模塊,來產(chǎn)生完全可操作的模塊,例如圖18中模塊1814的一個模塊。然后,過程循環(huán)回到塊1902,檢查是否存在任何未被處理的操作系統(tǒng)模塊,如果不存在,過程結(jié)束。當(dāng)操作系統(tǒng)模塊被處理時,新產(chǎn)生的SWSKU模塊在必要時被并入到修改的操作系統(tǒng)模塊中。所部署的操作系統(tǒng)模塊和/或新嵌入的SWSKU模塊還可以被SWSKU 1810數(shù)字化簽署以顯示它們的真實性。
以這種方式,所有操作系統(tǒng)文件被使能以通過用于實現(xiàn)信任關(guān)系的嵌入式功能進行認證操作。在操作系統(tǒng)安裝程序期間,INSKD 1806作為用于頒發(fā)數(shù)字證書的認證機構(gòu),或者操作系統(tǒng)安裝應(yīng)用程序1808作為用于為模塊1814頒發(fā)數(shù)字證書的認證機構(gòu);在它們的證書鏈中,模塊1814中的每一個模塊具有其自己的私鑰和相應(yīng)的公鑰證書、INSKD 1806的公鑰證書,以及如果必要因為其作為認證機構(gòu),還具有操作系統(tǒng)安裝應(yīng)用程序1808的公鑰證書。因此,每一個模塊具有主張基于INSKD 1806的信任等級的證書鏈。在運行時環(huán)境中,當(dāng)模塊1814中的第一模塊試圖認證模塊1814中的第二模塊時,第一模塊會將其證書鏈連同正確的擁有證明例如通過使用相應(yīng)私鑰簽署的數(shù)字簽名一起顯示給第二模塊;因為第二模塊信任第一模塊的證書鏈所基于的INSKD 1806,所以第二模塊將認證并信任第一模塊。因為模塊1814中的每一個模塊信任INSKD 1806并且能夠顯示向回與INSKD 1806有關(guān)的證書鏈,所以每一個模塊都能夠信任其它的類似模塊,從而實現(xiàn)了參照圖17描述的信任模式。
現(xiàn)在參照圖20,框圖描繪了根據(jù)本發(fā)明實施例的用于產(chǎn)生項目代碼的數(shù)據(jù)處理系統(tǒng),其中,每一個程序?qū)嶓w都包含用于基于內(nèi)部智能密鑰設(shè)備在信任等級中建立信任關(guān)系的功能。圖20類似于圖4;系統(tǒng)單元2002與外部智能密鑰設(shè)備2004接口,系統(tǒng)單元2002還包含內(nèi)部智能密鑰設(shè)備2006。
在該示例中,軟件配置管理(SCM)應(yīng)用程序2008負責(zé)管理軟件應(yīng)用程序在其中被建立的具體項目的所有代碼模塊和其它類型的文件。當(dāng)項目文件由軟件工程師創(chuàng)建時,項目文件被檢查進入SCM系統(tǒng)中,SCM系統(tǒng)能夠根據(jù)差異報告和項目時間表跟蹤源代碼的版本。工程師將樁模塊例程或空模塊并入到項目模塊中,使得項目模塊的初始版本能夠被測試和整合而與是否完全實現(xiàn)認證考慮無關(guān)。
但是,當(dāng)需要產(chǎn)生可以發(fā)布給客戶或者在產(chǎn)品環(huán)境中部署的所謂產(chǎn)品級應(yīng)用程序時,SCM系統(tǒng)除去樁模塊和空模塊,并用本身是軟件模塊的嵌入式軟件智能密鑰單元替代它們。因此,在最后編譯和鏈接操作發(fā)生時的某個時間點,SCM應(yīng)用程序2008中的SWSKU 2010產(chǎn)生非對稱密鑰對以及包含新產(chǎn)生的密鑰對和相應(yīng)數(shù)字證書的SWSKU模塊。當(dāng)項目模塊2012被處理時,新產(chǎn)生的SWSKU模塊在必要時被鏈接到項目模塊2014中。產(chǎn)品級項目模塊2014和/或新嵌入的SWSKU模塊還可以被SWSKU 2010數(shù)字化簽署來顯示它們的真實性。
以這種方式,需要結(jié)束認證操作的能力的項目應(yīng)用程序內(nèi)的每一個計算資源都可以設(shè)置有能夠進行認證操作的軟件智能密鑰單元。但是,圖20中所圖示的情況與圖18圖示的情況完全不同。在圖18中,操作系統(tǒng)模塊1814通過系統(tǒng)單元1802上的操作系統(tǒng)安裝應(yīng)用程序1808被修改。在優(yōu)選實施例中,已經(jīng)被頒發(fā)給修改后操作系統(tǒng)模塊1816中的SWSKU的數(shù)字證書已經(jīng)被系統(tǒng)單元1802上的INSKD 1806簽署。
因此,當(dāng)修改后的操作系統(tǒng)模塊在運行時環(huán)境中執(zhí)行時,已經(jīng)為修改后的操作系統(tǒng)模塊頒發(fā)數(shù)字證書的認證機構(gòu)是運行時環(huán)境的一部分。這不是圖20所顯示的情況。當(dāng)修改后的項目模塊在運行時環(huán)境中執(zhí)行時,嵌入在修改后項目模塊的SWSKU中的數(shù)字證書已經(jīng)被項目應(yīng)用程序的生產(chǎn)版本建立在其上的系統(tǒng)單元的內(nèi)部智能密鑰設(shè)備簽署。換句話說,向修改后項目模塊中的SWSKU頒發(fā)數(shù)字證書的認證機構(gòu)不是運行時環(huán)境的一部分。當(dāng)修改后的項目模塊試圖用另一個修改后的項目模塊結(jié)束認證操作時,認證操作可以被結(jié)束,因為修改后的項目模塊中每一個都信任項目應(yīng)用程序的生產(chǎn)版本建立在其上的系統(tǒng)單元的內(nèi)部智能密鑰設(shè)備。但是,當(dāng)修改后的項目模塊試圖通過操作系統(tǒng)模塊例如操作系統(tǒng)模塊1814中的一個來結(jié)束認證操作時,認證操作失敗,因為操作系統(tǒng)模塊不信任作為操作系統(tǒng)模塊的數(shù)字證書的認證機構(gòu)的內(nèi)部智能模塊設(shè)備。因此,需要一種機制來延伸運行時環(huán)境中的信任關(guān)系。
現(xiàn)在參照圖21,流程圖描繪了根據(jù)本發(fā)明實施例的用于延伸內(nèi)部智能密鑰設(shè)備的證書鏈的過程。如前面提到的,正在運行時環(huán)境內(nèi)執(zhí)行的一些模塊可以具有用于建立基于運行時環(huán)境內(nèi)存在的內(nèi)部智能密鑰設(shè)備的信任關(guān)系的功能;因為內(nèi)部智能密鑰設(shè)備已經(jīng)作為這些模塊的認證機構(gòu),所以這些模塊能夠顯示可被容易證實的數(shù)字證書鏈,因為內(nèi)部智能密鑰設(shè)備位于信任等級的根。當(dāng)應(yīng)用程序被安裝到支持本發(fā)明內(nèi)部智能密鑰設(shè)備的運行時環(huán)境中時,應(yīng)用程序模塊可以具有在由于根認證機構(gòu)不同而仍然缺乏與運行時環(huán)境中的其它模塊建立信任關(guān)系的能力的應(yīng)用程序模塊之間建立信任關(guān)系的功能;其它模塊不具有信任由應(yīng)用程序模塊顯示的數(shù)字證書的能力。
下面參照圖21描述的過程提供了允許那些應(yīng)用程序模塊將它們自己建立為可信的機制。該過程優(yōu)選地在應(yīng)用程序模塊正被安裝到包括內(nèi)部智能密鑰設(shè)備的運行時環(huán)境內(nèi)時進行,不過運行時環(huán)境可以在應(yīng)用程序模塊在運行時環(huán)境內(nèi)被執(zhí)行之前的任何時候被修改。不過,在該示例中,應(yīng)用程序模塊不需要被修改。因此,下面描述的過程與參照圖19描述的其中需要操作系統(tǒng)模塊的修改的過程不同。
在塊2102,當(dāng)內(nèi)部智能密鑰設(shè)備從安裝應(yīng)用程序或者某種其它形式的管理實用應(yīng)用程序中的軟件智能密鑰單元接收到請求消息時,過程開始,其中所述請求消息指示主張外來內(nèi)部智能密鑰設(shè)備即本地運行時環(huán)境之外的根數(shù)字證書的請求。例如,管理實用應(yīng)用程序訪問與已經(jīng)被安裝或正被安裝在本地運行時環(huán)境內(nèi)的應(yīng)用程序模塊的生產(chǎn)版本相伴的配置文件。這些配置文件包含由外來內(nèi)部智能密鑰設(shè)備用來以例如與參照圖20所描述的類似方式為嵌入在應(yīng)用程序模塊內(nèi)的軟件智能密鑰單元產(chǎn)生數(shù)字證書的數(shù)字證書的副本。換句話說,配置文件可以伴隨有由生產(chǎn)正被安裝的應(yīng)用程序的賣主的運行時環(huán)境的外來內(nèi)部智能密鑰設(shè)備使用的公鑰證書的副本。在當(dāng)前運行時環(huán)境的內(nèi)部智能密鑰設(shè)備沒有檢查公共信任實體能力的情況下,作出主張外來內(nèi)部智能密鑰設(shè)備的數(shù)字證書的請求;因為每一個內(nèi)部智能密鑰設(shè)備作為其自身信任等級內(nèi)的根信任實體,所以不存在其它可以在其上為當(dāng)前運行時環(huán)境的內(nèi)部智能密鑰設(shè)備和外來內(nèi)部智能密鑰設(shè)備建立信任的公共信任實體。因此,主張數(shù)字證書的過程必須是為結(jié)束任務(wù)提供可信度的可靠程序。
為了確保用于主張外來內(nèi)部智能密鑰設(shè)備的數(shù)字證書操作的可信度,在塊2104進行關(guān)于發(fā)出請求的應(yīng)用程序的軟件智能密鑰單元是否已經(jīng)被內(nèi)部智能密鑰設(shè)備認證的判斷;該判斷可以通過使用在例如參照圖10B描述的在先認證過程中由內(nèi)部智能密鑰設(shè)備傳遞給軟件智能密鑰單元的會話密鑰對所接收消息的內(nèi)容成功解密來進行。如果軟件智能密鑰單元還沒有被認證,那么在塊2106,內(nèi)部智能密鑰設(shè)備產(chǎn)生合適的錯誤響應(yīng),并在塊2108將響應(yīng)消息返回到發(fā)出請求的軟件智能密鑰單元,從而結(jié)束過程。
如果軟件智能密鑰單元已經(jīng)被認證,那么在塊2110,內(nèi)部智能密鑰設(shè)備判斷外部智能密鑰設(shè)備是否仍舊與系統(tǒng)單元電學(xué)結(jié)合。以這種方式,整個程序被確定為處于具有進行該程序特權(quán)的系統(tǒng)管理員的控制之下。如果外部智能密鑰設(shè)備沒有與系統(tǒng)單元電學(xué)結(jié)合,那么在塊2106,內(nèi)部智能密鑰設(shè)備產(chǎn)生錯誤響應(yīng),并在塊2108將響應(yīng)消息返回給軟件智能密鑰單元,從而結(jié)束過程。
如果軟件智能密鑰單元已經(jīng)被認證并且外部智能密鑰設(shè)備仍舊與系統(tǒng)單元電學(xué)結(jié)合,那么內(nèi)部智能密鑰設(shè)備對軟件智能密鑰單元執(zhí)行所請求的功能。在塊2112中,內(nèi)部智能密鑰設(shè)備將所主張的外來內(nèi)部智能密鑰設(shè)備的根證書添加到可能包含先前已經(jīng)被主張的多個證書的信任根證書的表格或列表中。在塊2114,當(dāng)合適的響應(yīng)消息已經(jīng)被建立之后,在塊2108,響應(yīng)消息被返回到軟件智能密鑰單元,過程結(jié)束。
現(xiàn)在參照圖22,框圖描繪了根據(jù)本發(fā)明實施例的由基于單個本地內(nèi)部智能密鑰設(shè)備所提供信任的信任關(guān)系構(gòu)成的信任模式的示例,所述單個本地內(nèi)部智能密鑰設(shè)備為外來內(nèi)部智能密鑰設(shè)備保持包含多個根證書的證書鏈。如參照圖5和其它
的,內(nèi)部智能密鑰設(shè)備擁有至少一個私鑰和其相應(yīng)的公鑰證書;類似地,圖22示出了包含數(shù)字證書2204的內(nèi)部智能密鑰設(shè)備2202。如參照圖21說明的,系統(tǒng)管理員可能有必要主張額外的根證書到具體運行時環(huán)境的信任等級中;圖22示出了先前被主張的、現(xiàn)在存儲在內(nèi)部智能密鑰設(shè)備2202內(nèi)作為其信任證書鏈一部分的數(shù)字證書2206和2208。
如前面提到的,當(dāng)應(yīng)用程序模塊被安裝到支持本發(fā)明內(nèi)部智能密鑰設(shè)備的運行時環(huán)境中時,應(yīng)用程序模塊可以提供有在由于根認證機構(gòu)不同而仍缺乏與運行時環(huán)境中的其它模塊建立信任關(guān)系的能力的應(yīng)用程序模塊之間建立信任關(guān)系的功能。應(yīng)用程序模塊可以被看作是位于一個信任等級中,而另一個模塊位于不同的信任等級內(nèi)。
為了克服該問題,參照圖21描述的過程圖示了用于在單個運行時環(huán)境內(nèi)引入多個信任等級的機制。該解決方案參照圖22被進一步說明。通過接受數(shù)字證書2206和2208,內(nèi)部智能密鑰設(shè)備2202間接地與和所接受數(shù)字證書相關(guān)聯(lián)的外來智能密鑰設(shè)備形成信任關(guān)系2210和2212。以這種方式,內(nèi)部智能密鑰設(shè)備2202支持分別具有根證書2204、2206和2208的信任等級2214、2216和2218。假定根證書2206和2208可用于確認由根證書2206和2208代表的外來內(nèi)部智能密鑰設(shè)備簽署的應(yīng)用程序模塊的數(shù)字證書,那么運行時環(huán)境中的其它模塊能夠形成橋接信任等級的信任關(guān)系2220和2222。
現(xiàn)在參照圖23,流程圖描繪了用于獲得由本地內(nèi)部智能密鑰設(shè)備保持的當(dāng)前根證書鏈的過程。雖然圖21描繪了系統(tǒng)管理器通過將根證書存儲到本地智能密鑰設(shè)備內(nèi)來主張根證書到具體運行時環(huán)境的信任等級中的過程,圖23圖示了用于從本地內(nèi)部智能密鑰設(shè)備獲得當(dāng)前根證書鏈的過程。在塊2302,當(dāng)內(nèi)部智能密鑰設(shè)備從軟件智能密鑰單元接收到請求消息、從而請求由本地內(nèi)部智能密鑰設(shè)備保持的當(dāng)前根證書鏈時,過程開始。在塊2304,本地內(nèi)部智能密鑰設(shè)備然后將包含當(dāng)前根證書鏈的響應(yīng)消息返回到發(fā)出請求的軟件智能密鑰單元,過程結(jié)束。本地內(nèi)部智能密鑰設(shè)備可以要求發(fā)出請求的軟件智能密鑰單元先前已經(jīng)向本地內(nèi)部智能密鑰設(shè)備認證。與圖示了內(nèi)部智能密鑰設(shè)備中僅僅在系統(tǒng)管理員已經(jīng)使用外部智能密鑰設(shè)備來使能操作時才進行的操作的圖11或圖21相對比,圖23中圖示的過程不需要經(jīng)由外部智能密鑰設(shè)備的使能。
現(xiàn)在參照圖24,流程圖描繪了用于判斷來自外來內(nèi)部智能密鑰設(shè)備的數(shù)字證書是否可信的過程。在某個時間點,模塊請求訪問由運行時環(huán)境內(nèi)的另一個模塊控制的計算資源。假設(shè)兩個模塊先前已經(jīng)結(jié)束了相互的認證操作,然后兩個模塊試圖結(jié)束相互認證操作,例如類似于參照圖9A到9B描述的相互認證操作。在該示例中,可以假設(shè)控制期望計算資源的模塊被包括在基于本地內(nèi)部智能密鑰設(shè)備的本地信任等級內(nèi),而發(fā)出請求的模塊包括在基于外來內(nèi)部智能密鑰設(shè)備的信任等級內(nèi);但是,用于外來內(nèi)部智能密鑰設(shè)備的根證書先前已經(jīng)被主張到本地智能密鑰設(shè)備中。
在塊2402,當(dāng)控制模塊和請求模塊已經(jīng)起動認證操作時,過程開始。在塊2404,控制模塊然后獲得發(fā)出請求模塊的數(shù)字證書,最可能是直接從發(fā)出請求的模塊獲得;來自數(shù)字證書的公鑰被用于判斷發(fā)出請求的模塊是否擁有與公鑰對應(yīng)的私鑰,不過這些行為沒有在圖24中示出。
為了判斷發(fā)出請求的模塊的數(shù)字證書上的數(shù)字簽名的真實性,控制模塊需要外來內(nèi)部智能密鑰設(shè)備的數(shù)字證書的可信副本,從而提供與被用于產(chǎn)生數(shù)字簽名的私鑰相應(yīng)的公鑰副本。雖然發(fā)出請求的模塊應(yīng)該擁有已經(jīng)頒發(fā)了發(fā)出請求模塊的數(shù)字證書的外來內(nèi)部智能密鑰設(shè)備的數(shù)字證書副本,從而允許發(fā)出請求的模塊將外來內(nèi)部智能密鑰設(shè)備的數(shù)字證書副本提供給控制模塊,但是控制模塊需要單獨的、可信的方法來獲得外來內(nèi)部智能密鑰設(shè)備的數(shù)字證書副本。為獲得外來內(nèi)部智能密鑰設(shè)備的數(shù)字證書的副本,在塊2406,控制模塊獲得當(dāng)前由本地內(nèi)部智能密鑰設(shè)備保持的根證書鏈。
在塊2408,控制模塊然后檢驗用于外來內(nèi)部智能密鑰設(shè)備的根證書是否在所檢索到的根證書鏈中。如上所述,在圖24所示的示例中,可以假設(shè)用于外來內(nèi)部智能密鑰設(shè)備的根證書已經(jīng)在先前被主張到本地智能密鑰設(shè)備中。因此,塊2406導(dǎo)致包括外來內(nèi)部智能密鑰設(shè)備的數(shù)字證書副本的根證書鏈的返回。
在塊2410,控制模塊然后通過檢驗發(fā)出請求模塊的數(shù)字證書上的數(shù)字簽名,來檢驗發(fā)出請求模塊的數(shù)字證書的真實性,過程結(jié)束。假設(shè)數(shù)字簽名被證實,那么控制模塊可以繼續(xù)進行認證操作。
下面參照圖25和圖26提供了本發(fā)明的另一個實施例,該實現(xiàn)的示例依賴于前面描述的本發(fā)明的多個方面。如上所述,數(shù)據(jù)處理系統(tǒng)內(nèi)的硬件安全單元,例如內(nèi)部智能密鑰設(shè)備,可以起到認證機構(gòu)的作用。如參照圖17描述的,內(nèi)部智能密鑰設(shè)備的認證機構(gòu)功能可以被看作是信任模式的根,在該信任模式中,數(shù)據(jù)處理系統(tǒng)內(nèi)的計算資源是信任關(guān)系等級內(nèi)的實體。如圖17所示,信任關(guān)系等級可以用其中內(nèi)部智能密鑰設(shè)備位于倒金字塔頂端的倒金字塔表示,并且計算資源形成倒金字塔。如參照圖18到20描述的,硬件安全單元的認證機構(gòu)功能可以被用來簽署軟件加密模塊即軟件安全單元或軟件智能密鑰單元,還可以被用來向軟件加密模塊頒發(fā)數(shù)字證書。如前面簡要提到的,軟件加密模塊的軟件包可以被密封以防止代碼篡改。
現(xiàn)在參照圖25,數(shù)據(jù)流框示了根據(jù)本發(fā)明實現(xiàn)的數(shù)據(jù)處理系統(tǒng)內(nèi)的實體,所述數(shù)據(jù)處理系統(tǒng)實現(xiàn)可以被用來確保軟件模塊完整性的硬件輔助的信任模式。在描述圖25之前,描述Java運行時環(huán)境內(nèi)的特定示例。在包括某種形式軟件加密單元的Java應(yīng)用程序的類文件已經(jīng)被密封以防止代碼篡改之后,程序完整性被類加載程序加強了。為了確保類加載程序可以被信任,類加載程序也需要被簽署以及密封。為了保證類加載程序的完整性,給類加載程序加載的加載程序即操作系統(tǒng)程序加載程序需要以某種方式被簽署和密封。為了保證操作系統(tǒng)程序加載程序的完整性,給操作系統(tǒng)程序加載程序加載的加載程序,即數(shù)據(jù)處理系統(tǒng)的ROM中的啟動加載程序,需要被簽署和密封。
關(guān)于更一般的非Java環(huán)境,在軟件加密模塊的軟件包已經(jīng)被密封以防止代碼篡改之后,程序的完整性被操作系統(tǒng)程序加載程序增強了。為了確保操作系統(tǒng)程序加載程序可以被信任,操作系統(tǒng)程序加載程序也需要被簽署和密封。為了保證操作系統(tǒng)程序加載程序的完整性,給操作系統(tǒng)程序加載程序加載的加載程序,即系統(tǒng)ROM中的啟動加載程序,也需要被簽署和密封。這些要求和操作反映在圖25中。
啟動ROM 2502已經(jīng)被內(nèi)部智能密鑰設(shè)備2504的私鑰簽署;這可能在制造過程期間發(fā)生,在其中啟動ROM被使用閃存更新或某種其它方式配置的特定于地點的安裝程序期間發(fā)生。之后,啟動ROM2502能夠與內(nèi)部智能密鑰設(shè)備2504進行相互的認證程序,從而在啟動ROM 2502與內(nèi)部智能密鑰設(shè)備2504之間建立信任關(guān)系。
操作系統(tǒng)程序加載程序2506也已經(jīng)被內(nèi)部智能密鑰設(shè)備2504的私鑰簽署;這可能根據(jù)參照圖18和圖19描述的過程發(fā)生。啟動ROM2502能夠在內(nèi)部智能密鑰設(shè)備2504的輔助下通過確認操作系統(tǒng)程序加載程序2506的(一個或多個)密封程序模塊上的簽名,來保證操作系統(tǒng)程序加載程序2506的完整性,所述內(nèi)部智能密鑰設(shè)備2504輔助啟動ROM 2502,因為其已經(jīng)與啟動ROM 2502通過相互認證程序的結(jié)束而建立了信任關(guān)系。之后,操作系統(tǒng)程序加載程序2506能夠進行與內(nèi)部智能密鑰設(shè)備2504的相互認證程序,從而在操作系統(tǒng)程序加載程序2506與內(nèi)部智能密鑰設(shè)備2504之間建立信任關(guān)系。
應(yīng)用程序模塊2508已經(jīng)被內(nèi)部智能密鑰設(shè)備2504的私鑰或者被作為認證機構(gòu)的操作系統(tǒng)中的軟件加密單元簽署,其中內(nèi)部智能密鑰設(shè)備2504作為根認證機構(gòu);這可能根據(jù)參照圖20描述的過程發(fā)生。操作系統(tǒng)程序加載程序2506能夠在內(nèi)部智能密鑰設(shè)備2504的輔助下通過確認密封應(yīng)用程序模塊上的簽名,來保證應(yīng)用程序模塊2508的完整性,所述內(nèi)部智能密鑰設(shè)備2504輔助操作系統(tǒng)程序加載程序2506,因為其已經(jīng)與操作系統(tǒng)程序加載程序2506通過相互認證程序的結(jié)束而建立了信任關(guān)系。之后,應(yīng)用程序模塊2508能夠進行與內(nèi)部智能密鑰設(shè)備2504、操作系統(tǒng)模塊2510或其它應(yīng)用程序模塊2512的相互認證程序以在必要時信任關(guān)系。
現(xiàn)在參照圖26,流程示了根據(jù)本發(fā)明實現(xiàn)的用于確保軟件模塊完整性的過程。在塊2602,當(dāng)數(shù)據(jù)處理系統(tǒng)內(nèi)的硬件電路通過數(shù)據(jù)處理系統(tǒng)內(nèi)的內(nèi)部智能密鑰單元的輔助而確認啟動ROM上的數(shù)字簽名時,過程在數(shù)據(jù)處理系統(tǒng)的啟動期間開始。假設(shè)啟動ROM上的數(shù)字簽名已經(jīng)成功確認,那么在塊2604,數(shù)據(jù)處理系統(tǒng)上的啟動硬件就激勵數(shù)據(jù)處理系統(tǒng)的啟動ROM,從而防止啟動ROM進行許多類型的操作直到內(nèi)部智能密鑰設(shè)備已經(jīng)對其進行確認,或者在可替換的實現(xiàn)中,防止啟動ROM進行任何操作直到內(nèi)部智能密鑰設(shè)備已經(jīng)確認其。
在某個隨后的時間點,大概仍舊在數(shù)據(jù)處理系統(tǒng)的啟動期間,在塊2606,啟動ROM對數(shù)據(jù)處理系統(tǒng)的進一步初始化所需的在(一個或多個)已被簽署/密封的操作系統(tǒng)模塊上的(一個或多個)數(shù)字簽名進行檢驗。假設(shè)啟動ROM能夠確認(一個或多個)操作系統(tǒng)模塊上的(一個或多個)數(shù)字簽名,那么在塊2608,啟動ROM載入(一個或多個)操作系統(tǒng)模塊,并在塊2610將執(zhí)行控制傳遞給(一個或多個)操作系統(tǒng)模塊。
在某個隨后的時間點,在塊2612,操作系統(tǒng)內(nèi)的程序加載程序,例如響應(yīng)于數(shù)據(jù)處理系統(tǒng)的用戶的請求,檢驗正在數(shù)據(jù)處理系統(tǒng)上被調(diào)用的(一個或多個)已被簽署/密封的應(yīng)用程序模塊上的數(shù)字簽名。假設(shè)程序加載程序能夠確認(一個或多個)應(yīng)用程序模塊上的(一個或多個)數(shù)字簽名,那么在塊2614,程序加載程序載入(一個或多個)應(yīng)用程序模塊,并在塊2616將執(zhí)行控制傳遞給(一個或多個)應(yīng)用程序模塊,從而結(jié)束過程。以這種方式,本發(fā)明可以被用于確保在數(shù)據(jù)處理系統(tǒng)上執(zhí)行的所有軟件模塊的完整性;在數(shù)據(jù)處理系統(tǒng)上執(zhí)行的所有軟件必須由內(nèi)部智能密鑰設(shè)備或者被內(nèi)部智能密鑰設(shè)備信任的軟件認證機構(gòu)模塊簽署。信任關(guān)系經(jīng)由軟件認證機構(gòu)模塊與內(nèi)部智能密鑰設(shè)備之間的相互認證,并經(jīng)由將軟件認證機構(gòu)模塊的證書添加到內(nèi)部智能密鑰設(shè)備中被信任證書列表中的配置過程建立。如參照圖25部分描述的以及參照前面的附圖更完整描述的,合適的信任關(guān)系在軟件執(zhí)行期間通過使用已經(jīng)預(yù)先嵌入在各個實體中的數(shù)字證書的相互認證程序而被建立。
圖27描繪了示出根據(jù)本發(fā)明實施例的兩個數(shù)據(jù)處理系統(tǒng)一部分的框圖,這兩個數(shù)據(jù)處理系統(tǒng)在通信耦合時彼此相互認證以使能數(shù)據(jù)處理系統(tǒng)之一內(nèi)的硬件安全單元中的加密功能。第一系統(tǒng)單元506在前面結(jié)合圖5進行了描述。計算領(lǐng)域的普通技術(shù)人員將知道有多種方式來通信耦合兩個系統(tǒng),例如但不限于直接連接、無線地或跨過許多不同類型的網(wǎng)絡(luò)。
系統(tǒng)單元506包含內(nèi)部智能密鑰設(shè)備(INSKD)522(圖5),1NSKD 522是主機系統(tǒng)506不可缺少的部分,即安裝在系統(tǒng)506內(nèi),例如在母板(未示出)上。如前面提到的,內(nèi)部智能密鑰設(shè)備522優(yōu)選地是難以從主機系統(tǒng)上除去的封裝的集成電路。雖然它被描述為是硬件安全單元或設(shè)備,但是它也可以包括用于執(zhí)行指令的處理單元。除了前面結(jié)合圖5描述的INSKD 522的部分之外,INSKD 522還包括遠程INSKD(RINSKD)公鑰證書2702,其包括RINSKD公鑰2704。INSKD 522還包括本地INSKD(LINSKD)公鑰證書2706,其具有LINSKD公鑰2708。INSKD 522還包括LINSKD私鑰2709,其與LINSKD公鑰2708相對應(yīng)作為非對稱加密密鑰對。LINSKD私鑰2709被以使得其不能被作為外部INSKD 522的實體讀取或訪問的方式存儲。由LINSKD公鑰2708和LINSKD私鑰2709表示的加密密鑰對在INSKD 522已經(jīng)被EXSKD 502(圖5)認證或者可替換地被安裝為制造過程的一部分之后由INSKD 522產(chǎn)生。
第二系統(tǒng)單元2710包含第二內(nèi)部智能密鑰設(shè)備(INSKD_2)2712,其是主機系統(tǒng)2710不可缺少的一部分,即被安裝在系統(tǒng)2710內(nèi),例如在母板(未示出)上。與INSKD 522類似,INSKD_2 2712優(yōu)選地是難以從主機系統(tǒng)上除去的封裝的集成電路。雖然它被描述為是硬件安全單元或設(shè)備,但是它也可以包括用于執(zhí)行指令的處理單元。類似于系統(tǒng)單元506、INSKD 522和EXSKD 502(圖5),系統(tǒng)單元2710和INSKD_2 2712也與作為便攜或可移動設(shè)備的外部智能密鑰設(shè)備(EXSKD_2)2802(見圖28)接口。使用相應(yīng)的INSKD_2私公鑰對和EXSKD_2公私鑰對,與系統(tǒng)單元2710相關(guān)聯(lián)的EXSKD_2 2802被用于使得系統(tǒng)單元2710能夠接受新的密鑰和證書,類似于上面結(jié)合系統(tǒng)單元506和圖6到8以及9A到9B描述的過程。由RINSKD公鑰2716和RINSKD私鑰2724表示的加密密鑰對在INSKD_22712已經(jīng)被EXSKD_22816(見圖29)認證或者可替換地被安裝為制造過程一部分之后,由INSKD_2 2712產(chǎn)生。
INSKD_22712包括包含RINSKD公鑰2716的RINSKD公鑰證書2714,以及包含LINSKD公鑰2720的LINSKD公鑰證書2718。INSKD_22712還包括加密引擎2722和與RINSKD公鑰2716相對應(yīng)作為非對稱加密密鑰對的RINSKD私鑰2724。LINSKD公鑰2720是LINSKD公鑰2708的副本,而RINSKD公鑰2704是RINSKD公鑰2716的副本。RINSKD私鑰2724被以使得其不能被作為外部INSKD_2 2712的實體讀取或訪問的方式存儲。
在該示例中,系統(tǒng)單元2710是便攜式計算機,例如但不限于膝上型計算機、筆記本電腦或個人數(shù)字助理(PDA)設(shè)備。系統(tǒng)單元2710的INSKD_22712使能INSKD 506的功能。或者,INSKD_2 2712和INSKD 506,以及進而的系統(tǒng)單元2701和系統(tǒng)單元506,彼此相互認證。系統(tǒng)單元506與系統(tǒng)單元2710的相互認證過程在下面結(jié)合圖29到31更詳細地說明。簡單說來,一旦INSKD 522已經(jīng)如前面結(jié)合圖6到8和9A到9B描述地被使能、并且INSKD_22710已經(jīng)使用如在圖6到8和9A到9B中描述的過程被使能,那么在類似于圖6到8和9A到9B中描述的以及下面結(jié)合圖29到30更詳細描述的過程中,INSKD 522和INSKD_2 2710使用公鑰證書2702、2706、2714和2718,公鑰2704、2708、2716和2720以及私鑰2709和2704,彼此認證和數(shù)字化簽署。以這種方式,多個系統(tǒng)單元可以被用來相互認證。
系統(tǒng)單元2710通過例如IT管理員的系統(tǒng)管理人員被物理保護。當(dāng)IT管理員需要使能可以被主機上的INSKD即系統(tǒng)單元506上的INSKD 522進行的某些加密功能時,系統(tǒng)單元2710被安全地通信耦合到系統(tǒng)單元506。換句話說,系統(tǒng)單元506上的某些加密功能在系統(tǒng)單元2710被與系統(tǒng)單元506安全地通信耦合時是可用的。INSKD2712產(chǎn)生IT管理員所需的結(jié)果,因為INSKD 2712包含用于產(chǎn)生某種加密輸出的一個或多個具體的加密私鑰。當(dāng)然,如前面提到的,這個關(guān)系可以是對稱的,因為INSKD 522還可以被配置成使能系統(tǒng)單元2710上INSKD 2712的加密功能。計算領(lǐng)域的普通技術(shù)人員將認識到,有任意數(shù)量的方式來安全地通信耦合系統(tǒng)單元506和2710,包括但不限于直接連接、經(jīng)由安全無線連接的連接和使用安全套接層技術(shù)和虛擬專用網(wǎng)技術(shù)以及例如WS-安全等的Web服務(wù)消息層加密的多種網(wǎng)絡(luò)連接。
參照圖28,框圖更詳細地描繪了系統(tǒng)單元2710(圖27)和INSKD_2 2712(圖27)。INSKD_2 2712包括加密引擎2722(圖27)、INSKD_2私鑰2802、INSKD-2公鑰證書2804和EXSKD_2公鑰證書2808。INSKD_2公鑰證書2084包括INSKD_2公鑰2806。EXSKD-2公鑰證書2808包括EXSKD_2公鑰2810。
加密引擎2722使用存儲在INSKD_2 2712中的多種數(shù)據(jù)項執(zhí)行加密功能。INSKD_2私鑰2802以使得其不能被INSKD_2 2712外部的實體讀取或訪問的方式存儲。密鑰以類似于用于保護SWSKU 538(圖6)的過程類似的方式由INSKD_2 2712簽署和檢驗過程(見圖6到8和9A到9B)保護。INSKD_2公鑰證書2804使用與INSKD_2私鑰2802相應(yīng)的INSKD_2公鑰2806作為非對稱加密密鑰對。INSKD_2 2712還包含EXSKD_2公鑰證書2808的副本,EXSKD_2公鑰證書2808本身包含與存儲在外部智能密鑰設(shè)備(EXSKD_2)2816上的EXSKD-2私鑰2818相應(yīng)的EXSKD_2公鑰2810的副本作為非對稱加密密鑰對。EXSKD_2公鑰證書2808的副本可以被寫到INSKD_2 2712上作為其制造或初始化過程的一部分。
系統(tǒng)單元2710包括連接到EXSKD_2 2816上相應(yīng)電學(xué)接口2814的電學(xué)接口2812。EXSKD_2 2816包括使用存儲在EXSKD_2 2816中的多種數(shù)據(jù)項來執(zhí)行加密功能的加密引擎2820。如前面提到的,EXSKD_2 2816存儲EXSKD_2私鑰2818。EXSKD_2還包括EXSKD_2公鑰證書2822和INSKD_2公鑰證書2826。EXSKD_2公鑰證書存儲EXSKD_2公鑰2824,INSKD_2公鑰證書2826存儲INSKD_2公鑰2828。
EXSKD_22816和INSKD_2 2712在類似于圖6到8和9A到9B中描述的過程中,使用公鑰證書2822、2826、2804和2808,公鑰2824、2828、2806和2810以及私鑰2818和2802,彼此認證和數(shù)字化簽署。系統(tǒng)單元506和系統(tǒng)單元2710被通信耦合;INSKD 522和INSKD_22712分別被EXSKD 502和EXSKD_2 2816認證;然后,INSKD 522和INSKD_2 2712被彼此認證。這些認證過程在下面結(jié)合圖29到31更詳細地描述。
現(xiàn)在參照圖29,流程圖描繪了用于通過第二系統(tǒng)單元來使能系統(tǒng)內(nèi)部智能密鑰設(shè)備的加密功能的過程的概況。在塊2902,過程開始,此時系統(tǒng)506(圖5和27)的INSKD 522(圖5和27)與EXSKD 502進行認證過程,系統(tǒng)2710(圖27)的INSKD_2 2712與EXSKD_2 2816進行認證程序。在塊2904,INSKD 522產(chǎn)生由LINSKD公鑰2708和LINSKD私鑰2709表示的加密密鑰對,INSKD_2 2712產(chǎn)生由RINSKD公鑰2716和RINSKD私鑰2724表示的加密密鑰對。INSKD522和INSKD_2 2712的每一個中加密密鑰對的產(chǎn)生都發(fā)生在如塊2902所示的具體設(shè)備已經(jīng)被認證之后。此外,LINSKD公鑰2708被傳送到INSKD_22712,RINSKD公鑰2716被傳送到INSKD 522。用于發(fā)布公鑰2708和2716的裝置不是嚴(yán)格的,例如,技術(shù)人員可以通過敲擊相應(yīng)系統(tǒng)的鍵盤(未示出)而手動地將密鑰2708和2716輸入到合適的設(shè)備中。
在塊2906,被正確配置的計算設(shè)備例如系統(tǒng)單元506(圖5和27)被與系統(tǒng)單元,例如包括在該示例中為INSKD_22712(圖27和28)的內(nèi)部智能密鑰設(shè)備的系統(tǒng)單元2710(圖27和28)電學(xué)結(jié)合。在塊2908,INSKD 522和INSKD_2 2712然后在類似于圖6到8和圖9A到9B所描述過程的過程中,通過使用公鑰證書2822、2826、2804和2808,公鑰2824、2828、2806和2810以及私鑰2818和2802來進行相互的認證過程。
在塊2910,當(dāng)EXSKD 502和EXSKD_2 2816不再存在時,INSKD_2 2712然后被使能以隨后確認INSKD 522。簡短來說,系統(tǒng)單元2710變?yōu)橛糜诠芾硐到y(tǒng)單元506的智能密鑰設(shè)備?;蛘?,1NSKD_2 2712也被使能進行相對于系統(tǒng)單元2710的加密功能,并且系統(tǒng)單元506也變?yōu)橛糜谙到y(tǒng)單元2710的智能密鑰設(shè)備。應(yīng)該注意,結(jié)合圖29描述的在系統(tǒng)506與2710之間建立信任的過程只需要對系統(tǒng)2710進行一次,以能夠作為用于系統(tǒng)506的智能密鑰設(shè)備。
還應(yīng)該注意,系統(tǒng)單元506和系統(tǒng)單元2710在制造過程結(jié)尾典型地是不相關(guān)的。每一個系統(tǒng)單元506和2710分別通過其自己的智能密鑰設(shè)備502和2816進行啟航(ship)。在客戶位置,IT管理員可以使用本發(fā)明中描述的過程來在兩個系統(tǒng)單元506與2710之間建立信任關(guān)系使他可以將系統(tǒng)單元2710用作在橫跨網(wǎng)絡(luò)的安全通信鏈路上用于管理系統(tǒng)單元506的“智能密鑰”設(shè)備。該過程可以被容易地延伸為允許一個膝上型電腦被用于管理多個遠程系統(tǒng)單元。
可以假設(shè)相互認證程序中的任何錯誤都能防止INSKD 522提供對使相互認證程序失敗的設(shè)備或軟件的數(shù)字簽署。換句話說,沒有INSKD_2 2712,INSKD 522就不能簽署新的軟件例如應(yīng)用程序540(圖5),從而防止了對系統(tǒng)506上軟件的修改或安裝。已經(jīng)安裝的任何軟件都可以正常執(zhí)行,并且INSKU 522可以提供數(shù)字簽名確認、解密和加密服務(wù)。在更少限制的實施例中,INSKD522的加密功能然后可以由在主機系統(tǒng)上運行的任何應(yīng)用程序調(diào)用。在更多限制的實施例中,INSKD 522的加密功能只能由包括軟件智能密鑰單元例如SWSKU538(圖5)的應(yīng)用程序調(diào)用。
現(xiàn)在參照圖30,流程圖描繪了在該示例中根據(jù)本發(fā)明實施例用于在圖29的相互認證程序已經(jīng)執(zhí)行之后使能主機系統(tǒng)506(圖5和27)的INSKD 522(圖5和27)的加密功能的過程。在塊3002,當(dāng)系統(tǒng)單元506和2710變?yōu)橥ㄐ偶措妼W(xué)地或經(jīng)由通信鏈路耦合時,過程開始。在塊3104,INSKD 522和INSKD_2 2708然后進行相互認證程序。然后,在塊3006,INSKD 522被使能對系統(tǒng)單元506的其它部分例如SWSKU 538(圖5)進行加密功能,過程結(jié)束。
雖然系統(tǒng)單元506保持與包含INSKU 2712的系統(tǒng)單元2710(圖27和28)通信耦合,但是INSKU 522被使能以提供作為認證機構(gòu)的功能,即產(chǎn)生新的公共證書。根據(jù)INSKD_2 2708的請求參與相互認證的INSKD 522可以發(fā)出會話密鑰以跟蹤會話。典型的技術(shù)例如唯一(隨機)會話密鑰、會話密鑰屆滿超時、會話密鑰更新過程,用于跟蹤會話。換句話說,一旦圖29的相互認證程序結(jié)束,系統(tǒng)單元2710結(jié)合INSKD_2 2712就可以以類似于由EXSKD 502進行的方式使能INSKD 522。
在一個實施例中,在安裝新的軟件包時,系統(tǒng)單元2710應(yīng)該與系統(tǒng)單元522結(jié)合。新的公鑰證書可以在軟件安裝期間被頒發(fā)給新的軟件包;與新頒發(fā)的數(shù)字證書中的公鑰相應(yīng)的私鑰可以嵌入在軟件包內(nèi),并且私鑰可以通過使內(nèi)部智能密鑰設(shè)備簽署軟件包來保護。此外,在Java環(huán)境中,JAR文件和私鑰嵌入在其中的Java包還可以被密封以防止惡意用戶通過私鑰篡改。
現(xiàn)在參照圖31,流程圖描繪了根據(jù)本發(fā)明實施例禁止主機系統(tǒng)的內(nèi)部智能密鑰設(shè)備的加密功能的過程。在塊3102,當(dāng)系統(tǒng)單元2710(圖27和28)被從包含INSKD 522(圖5和27)的系統(tǒng)單元(圖5和27)上解除結(jié)合時,過程開始。在塊3104,當(dāng)系統(tǒng)單元506檢測系統(tǒng)單元2710的解除結(jié)合時,INSKD522變?yōu)楸唤惯M一步進行加密功能,過程結(jié)束。
圖31中示出的過程作為圖29或圖30所示過程之一的補充過程。不過,應(yīng)該注意,INSKD 522或者也可以取決于本發(fā)明的實現(xiàn)而繼續(xù)進行一些功能,使得其沒有被完全禁止。還應(yīng)該注意,上面結(jié)合圖9A、9B、10A、10B、11A、11B和19到26描述的與內(nèi)部智能密鑰設(shè)備和外部智能密鑰設(shè)備有關(guān)的過程還可以應(yīng)用于上面結(jié)合圖27到31描述的硬件系統(tǒng)的加密能力。為了簡便,沒有重復(fù)與圖9A、9B、10A、10B、11A、11B和19到26相應(yīng)的圖。
圖32描繪了數(shù)據(jù)處理系統(tǒng)506(圖5和27)、INSKD 522(圖5和27)、EXSKD 502(圖5)、數(shù)據(jù)處理系統(tǒng)2710(圖27和28)、INSKD_2 2712(圖27和28)以及EXSKD_2 2816(圖28)的部分的框圖,其圖示了用于執(zhí)行所公開主題的加密密鑰對。第一加密密鑰對包括INSKD私鑰526(圖5)和INSKD公鑰520(圖5),其被用于相對于EXSKD 502認證INSKD 522。第二加密密鑰對包括EXSKD私鑰512(圖5)和EXSKD公鑰534(圖5),其被用于相對于INSKD522來認證EXSKD 502。第三加密密鑰對包括LINSKD私鑰2709(圖27)和LINSKD公鑰2708(圖27),其被用于相對于INSKD_2 2712認證INSKD 522。第四加密密鑰對包括RINSKD私鑰2724(圖27)和RINSKD公鑰2704(圖27),其被用于相對于INSKD 522認證INSKD_2 2712。第五加密密鑰對包括INSKD_2私鑰2802(圖28)和INSKD_2公鑰2828(圖28),其被用于相對于EXSKD_2 2816認證INSKD_2 2712。最后,第六加密密鑰對包括EXSKD_2私鑰2818(圖28)和EXSKD_2公鑰2810(圖28),其被用于相對于INSKD_22712認證EXSKD_2 2816。
應(yīng)該注意,每一個加密密鑰不一定都是唯一的。例如,第一加密密鑰對和第三加密密鑰對兩者可以使用相同的私鑰,即INSKD私鑰526可以等同于LINSKD私鑰2709。換句話說,每一個設(shè)備可以存儲在多個加密密鑰對中使用的一個私鑰。
可以假設(shè)內(nèi)部智能密鑰設(shè)備中的加密功能可以通過軟件或硬件使能或禁止。例如,在硬件模式中,內(nèi)部智能密鑰設(shè)備中具體電路的操作可以通過某些觸發(fā)或必須基于表示外部智能密鑰設(shè)備是否已經(jīng)被接受的使能狀態(tài)被設(shè)定或清零的其它機制而被防止進入可操作狀態(tài);在軟件模式中,某些加密功能的操作可以通過設(shè)定和清零邏輯地控制加密功能執(zhí)行的特定使能標(biāo)記來保護。
本發(fā)明的優(yōu)點通過前面提供的詳細描述應(yīng)該很清楚了。本發(fā)明提供了用于確保主機系統(tǒng)內(nèi)的加密功能使得其只能在系統(tǒng)管理員經(jīng)由硬件安全記號而在物理上允許其時使用的機制。此外,硬件安全單元被集成到數(shù)據(jù)處理系統(tǒng)中,并且硬件安全單元作為硬件認證機構(gòu)。硬件安全單元可以被看作支持分布式數(shù)據(jù)處理系統(tǒng)內(nèi)的信任等級或信任體系框架。硬件安全單元可以簽署安裝在包含硬件安全單元的機器上的軟件。使用在機器上運行的已被簽署軟件的服務(wù)器處理可以與硬件安全單元以及其它服務(wù)器處理之間基于它們對硬件安全單元的共同信任來建立相互信任關(guān)系。
重要的是要注意,雖然本發(fā)明是在完全起作用的數(shù)據(jù)處理系統(tǒng)的上下文中描述的,但是本領(lǐng)域的技術(shù)人員將理解,本發(fā)明的過程能夠以計算機可讀介質(zhì)中指令的形式或者多種其它形式被發(fā)布,而與實際用于進行發(fā)布的信號承載介質(zhì)的具體類型無關(guān)。計算機可讀介質(zhì)的示例包括如下介質(zhì),例如EPROM、ROM、磁帶、紙張、軟盤、硬盤驅(qū)動、RAM和CD-ROM以及例如數(shù)模通信鏈路的傳輸類型介質(zhì)。
方法一般地被構(gòu)想為是導(dǎo)致期望結(jié)果的前后一致的行為序列。這些行為需要物理量的物理操縱。雖然不一定,但是通常這些量采取能夠被存儲、傳送、組合、比較或者操縱的電或磁信號的形式。有時,主要是為了通用,將這些信號稱為位、值、參數(shù)、條目、元素、對象、符號、字符、項、數(shù)等是方便的。但是,應(yīng)該注意,所有這些和類似的術(shù)語都與適當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián),并且只是應(yīng)用于這些量的方便標(biāo)記。
本發(fā)明的描述是為了說明的目的而給出的,而不是旨在窮舉或限制為所公開的實施例。許多改變和變化對于本領(lǐng)域的普通技術(shù)人員都是很清楚的。實施例被選擇用于說明本發(fā)明的原理及其實施應(yīng)用,以及能夠使本領(lǐng)域的普通技術(shù)人員能夠理解本發(fā)明,以通過多種修改來實現(xiàn)可能適合于其它所構(gòu)想應(yīng)用的多種實施例。
權(quán)利要求
1.一種數(shù)據(jù)處理系統(tǒng),包括第一系統(tǒng)單元,第一系統(tǒng)單元包括耦合到第一系統(tǒng)單元的第一硬件安全單元,第一硬件安全單元包括對應(yīng)于第一非對稱加密密鑰對的第一私鑰;對應(yīng)于第二非對稱加密密鑰對的第一公鑰;對應(yīng)于第三非對稱加密密鑰對的第二私鑰;以及對應(yīng)于第四非對稱加密密鑰對的第二公鑰;第一可移動硬件設(shè)備,包括對應(yīng)于第一非對稱加密密鑰對的第三公鑰;以及對應(yīng)于第二非對稱加密密鑰對的第三私鑰;其中,第一硬件安全單元包括用于在第一可移動硬件設(shè)備與第一系統(tǒng)單元結(jié)合時基于第一和第二加密密鑰對相對于第一可移動硬件設(shè)備認證第一硬件安全單元的邏輯;第二系統(tǒng)單元,第二系統(tǒng)單元包括耦合到第二系統(tǒng)單元的第二硬件安全單元,第二硬件安全單元包括對應(yīng)于第五非對稱加密密鑰對的第四私鑰;對應(yīng)于第六非對稱加密密鑰對的第四公鑰;對應(yīng)于第三非對稱加密密鑰對的第五公鑰;以及對應(yīng)于第四非對稱加密密鑰對的第五私鑰;第二可移動硬件設(shè)備,包括對應(yīng)于第五非對稱加密密鑰對的第六公鑰;以及對應(yīng)于第六非對稱加密密鑰對的第六私鑰;其中,第二硬件安全單元包括用于在第二可移動硬件設(shè)備與第二系統(tǒng)單元結(jié)合時基于第五和第六加密密鑰對相對于第二可移動硬件設(shè)備認證第二硬件安全單元的邏輯;以及用于在第一和第二系統(tǒng)單元被通信耦合并且在第一硬件安全單元已經(jīng)被相對于第一可移動硬件設(shè)備認證之后以及第二硬件安全單元已經(jīng)被相對于第二可移動硬件設(shè)備認證之后,基于第三和第四加密密鑰對相對于第二硬件安全單元認證第一硬件安全單元的邏輯。
2.權(quán)利要求1的數(shù)據(jù)處理系統(tǒng),所述第一硬件安全單元包括用于在第一和第二系統(tǒng)單元被通信耦合時且在第一硬件安全單元已經(jīng)被相對于第二硬件安全單元認證之后,使能第一系統(tǒng)單元調(diào)用第一硬件安全單元上的加密功能的邏輯。
3.權(quán)利要求1的數(shù)據(jù)處理系統(tǒng),其中,加密功能的一個加密功能是裝載在第一系統(tǒng)單元上的應(yīng)用程序的軟件安全單元的認證。
4.權(quán)利要求3的數(shù)據(jù)處理系統(tǒng),還包括用于在軟件安全單元認證期間在軟件安全單元與第一硬件安全單元之間交換會話密鑰的邏輯。
5.權(quán)利要求4的數(shù)據(jù)處理系統(tǒng),還包括用于由軟件安全單元使用會話密鑰來加密對第一硬件安全單元的隨后請求以證明軟件安全單元身份的邏輯。
6.權(quán)利要求1的數(shù)據(jù)處理系統(tǒng),其中,第一系統(tǒng)單元和第二系統(tǒng)單元經(jīng)由網(wǎng)絡(luò)被通信耦合。
7.權(quán)利要求1的數(shù)據(jù)處理系統(tǒng),還包括用于在成功地在軟件安全單元與硬件安全單元之間進行相互認證操作之后,無需第一系統(tǒng)單元被通信耦合到第二系統(tǒng)單元,響應(yīng)于來自軟件安全單元的請求由第一硬件安全單元對軟件安全單元進行加密功能的邏輯。
8.一種用于進行加密功能的方法,所述方法包括使第一可移動硬件設(shè)備與第一系統(tǒng)單元結(jié)合;使第二可移動硬件設(shè)備與第二系統(tǒng)單元結(jié)合;在第一可移動硬件設(shè)備與第一系統(tǒng)單元結(jié)合且第二可移動硬件設(shè)備與第二系統(tǒng)單元結(jié)合時,通信地耦合第一系統(tǒng)單元和第二系統(tǒng)單元;其中,第一系統(tǒng)單元包括第一硬件安全單元,第二系統(tǒng)單元包括第二硬件安全單元,其中,第一硬件安全單元包括對應(yīng)于第一非對稱加密密鑰對的第一私鑰;對應(yīng)于第二非對稱加密密鑰對的第一公鑰;對應(yīng)于第三非對稱加密密鑰對的第二私鑰;以及對應(yīng)于第四非對稱加密密鑰對的第二公鑰;并且其中,第二硬件安全單元包括對應(yīng)于第二非對稱加密密鑰對的第三私鑰;對應(yīng)于第一非對稱加密密鑰對的第三公鑰;對應(yīng)于第四非對稱加密密鑰對的第四私鑰;以及對應(yīng)于第三非對稱加密密鑰對的第四公鑰;在第一系統(tǒng)單元和第二系統(tǒng)單元被通信耦合時,基于第一和第二非對稱加密密鑰對在第一硬件安全單元與第一可移動硬件設(shè)備之間執(zhí)行相互認證操作;在第一系統(tǒng)單元和第二系統(tǒng)單元被通信耦合時,基于第五和第六非對稱加密密鑰對在第二硬件安全單元與第二可移動硬件設(shè)備之間執(zhí)行相互認證操作;在第一系統(tǒng)單元和第二系統(tǒng)單元被通信耦合時,基于第三和第四非對稱加密密鑰對在第一硬件安全單元與第二硬件安全單元之間執(zhí)行相互認證操作;以及在第一系統(tǒng)單元和第二系統(tǒng)單元保持通信耦合時,響應(yīng)于在第一和第二硬件安全單元之間成功地進行了相互認證操作,使能第一系統(tǒng)單元調(diào)用第一硬件安全單元上的加密功能。
9.權(quán)利要求8的方法,還包括在第一系統(tǒng)單元上執(zhí)行軟件安全單元,其中,軟件安全單元包含對應(yīng)于第七非對稱加密密鑰對的第七私鑰和對應(yīng)于第八非對稱加密密鑰對的第七公鑰,并且其中,第一硬件安全單元包含對應(yīng)于第八非對稱加密密鑰對的第八私鑰和對應(yīng)于第七非對稱加密密鑰對的第八公鑰;基于第七和第八非對稱加密密鑰對在軟件安全單元與第一硬件安全單元之間進行相互認證操作;以及在第一和第二系統(tǒng)單元保持通信耦合時,響應(yīng)于在軟件安全單元與第一硬件安全單元之間成功地進行了相互認證操作,使能軟件安全單元調(diào)用第一硬件安全單元上的功能。
10.權(quán)利要求9的方法,還包括在成功地在第一和第二硬件安全單元之間進行相互認證操作之后,無需第一和第二系統(tǒng)單元保持通信耦合,響應(yīng)于來自軟件安全單元的請求由第一硬件安全單元對軟件安全單元進行加密功能。
11.權(quán)利要求10的方法,還包括在軟件安全單元與第一硬件安全單元之間的相互認證操作期間在軟件安全單元與第一硬件安全單元之間交換會話密鑰。
12.權(quán)利要求11的方法,還包括由軟件安全單元使用會話密鑰來加密對第一硬件安全單元的隨后請求以證明軟件安全單元的身份。
13.權(quán)利要求9的方法,還包括在第一和第二系統(tǒng)單元保持通信耦合時,響應(yīng)于來自軟件安全單元的請求,由第一硬件安全單元產(chǎn)生用于軟件安全單元的數(shù)字證書。
14.權(quán)利要求9的方法,還包括在第一和第二系統(tǒng)單元保持通信耦合時,響應(yīng)于來自軟件安全單元的請求,由第一硬件安全單元數(shù)字化簽署來自軟件安全單元的數(shù)據(jù)項。
15.一種在計算機可讀介質(zhì)上的用于在進行加密功能的數(shù)據(jù)處理系統(tǒng)的計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括存儲在計算機可讀介質(zhì)上用于通信耦合第一可移動硬件設(shè)備和第一系統(tǒng)單元的邏輯;存儲在計算機可讀介質(zhì)上用于通信耦合第二可移動硬件設(shè)備和第二系統(tǒng)單元的邏輯;存儲在計算機可讀介質(zhì)上用于在第一可移動硬件設(shè)備與第一系統(tǒng)單元結(jié)合且第二可移動硬件設(shè)備與第二系統(tǒng)單元結(jié)合時,通信耦合第一系統(tǒng)單元和第二系統(tǒng)單元的邏輯;其中,第一系統(tǒng)單元包括第一硬件安全單元,第二系統(tǒng)單元包括第二硬件安全單元,其中,第一硬件安全單元包括對應(yīng)于第一非對稱加密密鑰對的第一私鑰;對應(yīng)于第二非對稱加密密鑰對的第一公鑰;對應(yīng)于第三非對稱加密密鑰對的第二私鑰;以及對應(yīng)于第四非對稱加密密鑰對的第二公鑰;并且其中,第二硬件安全單元包括對應(yīng)于第二非對稱加密密鑰對的第三私鑰;對應(yīng)于第一非對稱加密密鑰對的第三公鑰;對應(yīng)于第四非對稱加密密鑰對的第四私鑰;以及對應(yīng)于第三非對稱加密密鑰對的第四公鑰;存儲在計算機可讀介質(zhì)上用于在第一系統(tǒng)單元和第二系統(tǒng)單元被通信耦合時,基于第一和第二非對稱加密密鑰對在第一硬件安全單元與第一可移動硬件設(shè)備之間執(zhí)行相互認證操作的邏輯;存儲在計算機可讀介質(zhì)上用于在第一系統(tǒng)單元和第二系統(tǒng)單元被通信耦合時,基于第五和第六非對稱加密密鑰對在第二硬件安全單元與第二可移動硬件設(shè)備之間執(zhí)行相互認證操作的邏輯;存儲在計算機可讀介質(zhì)上用于在第一系統(tǒng)單元和第二系統(tǒng)單元被通信耦合時,基于第三和第四非對稱加密密鑰對在第一硬件安全單元與第二硬件安全單元之間執(zhí)行相互認證操作的邏輯;以及存儲在計算機可讀介質(zhì)上用于在第一系統(tǒng)單元和第二系統(tǒng)單元保持通信耦合時,響應(yīng)于在第一和第二硬件安全單元之間成功地進行了相互認證操作,使能第一系統(tǒng)單元調(diào)用第一硬件安全單元上的加密功能的邏輯。
16.權(quán)利要求15的計算機程序產(chǎn)品,還包括存儲在計算機可讀介質(zhì)上用于在第一系統(tǒng)單元上執(zhí)行軟件安全單元的邏輯,其中,軟件安全單元包含對應(yīng)于第七非對稱加密密鑰對的第七私鑰和對應(yīng)于第八非對稱加密密鑰對的第七公鑰,并且其中,第一硬件安全單元包含對應(yīng)于第八非對稱加密密鑰對的第八私鑰和對應(yīng)于第七非對稱加密密鑰對的第八公鑰;存儲在計算機可讀介質(zhì)上用于基于第七和第八非對稱加密密鑰對在軟件安全單元與第一硬件安全單元之間進行相互認證操作的邏輯;以及存儲在計算機可讀介質(zhì)上用于在第一和第二系統(tǒng)單元保持通信耦合時,響應(yīng)于在軟件安全單元與第一硬件安全單元之間成功地進行了相互認證操作,使能軟件安全單元調(diào)用第一硬件安全單元上的功能的邏輯。
17.權(quán)利要求16的計算機程序產(chǎn)品,還包括存儲在計算機可讀介質(zhì)上用于在成功地在第一和第二硬件安全單元之間進行相互認證操作之后,無需第一和第二系統(tǒng)單元保持通信耦合,響應(yīng)于來自軟件安全單元的請求由第一硬件安全單元對軟件安全單元進行加密功能的邏輯。
18.權(quán)利要求17的計算機程序產(chǎn)品,還包括存儲在計算機可讀介質(zhì)上用于在軟件安全單元與第一硬件安全單元之間的相互認證操作期間在軟件安全單元與第一硬件安全單元之間交換會話密鑰的邏輯。
19.權(quán)利要求18的計算機程序產(chǎn)品,還包括存儲在計算機可讀介質(zhì)上用于由軟件安全單元使用會話密鑰來加密對第一硬件安全單元的隨后請求以證明軟件安全單元的身份的邏輯。
20.權(quán)利要求16的方法,還包括存儲在計算機可讀介質(zhì)上用于在第一和第二系統(tǒng)單元保持通信耦合時,由第一硬件安全單元產(chǎn)生用于軟件安全單元的數(shù)字證書的邏輯。
全文摘要
包括第一加密設(shè)備的第一數(shù)據(jù)處理系統(tǒng)與包括第二加密設(shè)備的第二數(shù)據(jù)處理系統(tǒng)通信耦合。加密設(shè)備然后相互認證自身。第一加密設(shè)備存儲第一非對稱加密密鑰對的私鑰和與第二數(shù)據(jù)處理系統(tǒng)相關(guān)聯(lián)的第二非對稱加密密鑰對的公鑰。第二加密設(shè)備存儲第二非對稱加密密鑰對的私鑰和與第一數(shù)據(jù)處理系統(tǒng)相關(guān)聯(lián)的第一非對稱加密密鑰對的公鑰。響應(yīng)于在兩個加密系統(tǒng)之間成功進行相互認證操作,第一數(shù)據(jù)處理系統(tǒng)被使得能夠調(diào)用第一加密設(shè)備上的敏感加密功能,而第一數(shù)據(jù)處理系統(tǒng)保持與第二數(shù)據(jù)處理系統(tǒng)通信耦合。
文檔編號G06F21/00GK1790359SQ20051012511
公開日2006年6月21日 申請日期2005年11月17日 優(yōu)先權(quán)日2004年12月16日
發(fā)明者史蒂文·A.·巴德, 趙青云 申請人:國際商業(yè)機器公司