專利名稱:將光盤用作智能密鑰裝置的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及改進(jìn)的數(shù)據(jù)處理系統(tǒng),具體地說,涉及利用密碼進(jìn)行數(shù)據(jù)存儲保護(hù)的方法和設(shè)備。
背景技術(shù):
多數(shù)數(shù)據(jù)處理系統(tǒng)包含需要保護(hù)的敏感數(shù)據(jù)。例如,需要防止配置信息的數(shù)據(jù)完整性被非法修改,同時,需要防止其他信息如密碼文件被非法公開。給定的數(shù)據(jù)處理系統(tǒng)的操作員會使用許多不同類型的安全機制來保護(hù)數(shù)據(jù)處理系統(tǒng)。例如,數(shù)據(jù)處理系統(tǒng)上的操作系統(tǒng)會提供各種軟件機制來保護(hù)敏感數(shù)據(jù),如各種驗證和授權(quán)方案,而某些硬件裝置和軟件應(yīng)用程序可以依靠硬件機制來保護(hù)敏感數(shù)據(jù),如硬件安全令牌(security token)和生物傳感器裝置。即使在給定的數(shù)據(jù)處理系統(tǒng)內(nèi)可以使用多個軟件和硬件機制來保護(hù)敏感數(shù)據(jù),仍然可以對敏感數(shù)據(jù)加密,使得如果某人非法訪問經(jīng)過加密的敏感數(shù)據(jù),在不能對經(jīng)過加密的敏感數(shù)據(jù)進(jìn)行解密的情況下,對經(jīng)過加密的敏感數(shù)據(jù)的任何拷貝都是無用的。
然而,包含在數(shù)據(jù)處理系統(tǒng)內(nèi)的對所有信息進(jìn)行最終保護(hù)的能力是有限的。例如,在努力對密碼文件加強保護(hù)的過程中,可以利用另一種秘密如密碼或加密密鑰(cryptographic key)對密碼文件進(jìn)行加密,所述的這種密碼或加密密鑰通常稱為主秘密(master secret)。但是,也需要以某種方式對于這個新秘密進(jìn)行保護(hù)。因此,系統(tǒng)管理員會遇到兩難的情形,即,對實現(xiàn)另一層安全性的任何努力都產(chǎn)生了也需要保護(hù)的附加敏感信息?,F(xiàn)在看本發(fā)明,其余附圖示出了解決這種兩難情形的本發(fā)明的典型實施例。
因此,具有一種用于安全地存儲并管理秘密信息如加密密鑰的機制是有利的。安全地存儲并管理用于對其他秘密信息進(jìn)行保護(hù)的主秘密尤其有利。
發(fā)明內(nèi)容
本發(fā)明的第一方面提供了一種計算機可讀介質(zhì)上的計算機程序產(chǎn)品,用于在數(shù)據(jù)處理系統(tǒng)中執(zhí)行加密功能,該計算機程序產(chǎn)品包括存儲在計算機可讀介質(zhì)上的邏輯,用于利用耦合到系統(tǒng)單元的介質(zhì)讀取裝置,讀取可移動存儲介質(zhì),其中,系統(tǒng)單元包括硬件安全單元和用于對介質(zhì)讀取裝置進(jìn)行控制的裝置驅(qū)動器,其中,可移動存儲介質(zhì)包含與第一不對稱加密密鑰對對應(yīng)的第一私鑰以及與第二不對稱加密密鑰對對應(yīng)的第一公鑰,并且,其中,硬件安全單元包含與第二不對稱加密密鑰對對應(yīng)的第二私鑰以及與第一不對稱加密密鑰對對應(yīng)的第二公鑰;存儲在計算機可讀介質(zhì)上的邏輯,用于在可移動存儲介質(zhì)與介質(zhì)讀取裝置接合(engage)時,在介質(zhì)讀取裝置與硬件安全單元之間進(jìn)行相互驗證操作;以及存儲在計算機可讀介質(zhì)上的邏輯,用于在可移動存儲介質(zhì)與介質(zhì)讀取裝置系統(tǒng)單元保持接合時,響應(yīng)于在可移動存儲介質(zhì)與硬件安全單元之間成功地進(jìn)行了相互驗證操作,啟用硬件安全單元上的加密功能可用。
本發(fā)明的第二方面提供了一種方法,用于執(zhí)行加密功能,該方法包括如下步驟使可移動存儲介質(zhì)與耦合到系統(tǒng)單元的介質(zhì)讀取裝置接合,其中,系統(tǒng)單元包括硬件安全單元和用于對介質(zhì)讀取裝置進(jìn)行控制的裝置驅(qū)動器;并且,其中,可移動存儲介質(zhì)包含與第一不對稱加密密鑰對對應(yīng)的第一私鑰以及與第二不對稱加密密鑰對對應(yīng)的第一公鑰,并且,其中,硬件安全單元包含與第二不對稱加密密鑰對對應(yīng)的第二私鑰以及與第一不對稱加密密鑰對對應(yīng)的第二公鑰;根據(jù)第一和第二不對稱加密密鑰對,在可移動介質(zhì)與硬件安全單元之間進(jìn)行相互驗證操作;并且,響應(yīng)于成功地進(jìn)行了相互驗證操作,在可移動存儲介質(zhì)保持與介質(zhì)讀取裝置接合時,使系統(tǒng)單元能夠調(diào)用硬件安全單元上的加密功能。
本發(fā)明的另一個方面提供了一種計算機可讀介質(zhì)上的計算機程序產(chǎn)品,用于在數(shù)據(jù)處理系統(tǒng)中執(zhí)行加密功能,計算機程序產(chǎn)品包括存儲在計算機可讀介質(zhì)上的邏輯,用于利用耦合到系統(tǒng)單元的介質(zhì)讀取裝置讀取可移動存儲介質(zhì),其中,系統(tǒng)單元包括硬件安全單元和用于對介質(zhì)讀取裝置進(jìn)行控制的裝置驅(qū)動器,其中,可移動存儲介質(zhì)包含與第一不對稱加密密鑰對對應(yīng)的第一私鑰以及與第二不對稱加密密鑰對對應(yīng)的第一公鑰,并且,其中,硬件安全單元包含與第二不對稱加密密鑰對對應(yīng)的第二私鑰以及與第一不對稱加密密鑰對對應(yīng)的第二公鑰;存儲在計算機可讀介質(zhì)上的邏輯,用于在可移動存儲介質(zhì)保持與介質(zhì)讀取裝置接合時,在介質(zhì)讀取裝置與硬件安全單元之間進(jìn)行相互驗證;以及存儲在計算機可讀介質(zhì)上的邏輯,用于響應(yīng)于成功地在可移動存儲介質(zhì)與硬件單元之間進(jìn)行了相互驗證操作,在可移動存儲介質(zhì)保持與介質(zhì)讀取裝置系統(tǒng)單元相接合時,啟用硬件安全單元上的加密功能。
數(shù)據(jù)處理系統(tǒng)接受可移動存儲介質(zhì),可移動存儲介質(zhì)變成與數(shù)據(jù)處理系統(tǒng)內(nèi)的系統(tǒng)單元電氣接合,此后,可移動存儲介質(zhì)與硬件安全單元對其自身進(jìn)行相互驗證??梢苿哟鎯橘|(zhì)存儲第一不對稱加密密鑰對的私鑰和與硬件安全單元相關(guān)聯(lián)的第二不對稱加密密鑰對的公鑰,而硬件安全單元存儲第二不對稱加密密鑰對的私鑰和與可移動存儲介質(zhì)相關(guān)聯(lián)的第一不對稱加密密鑰對的公鑰。響應(yīng)于在可移動存儲介質(zhì)與硬件安全單元之間成功進(jìn)行了相互驗證操作,在可移動存儲介質(zhì)保持與系統(tǒng)單元接合時,使系統(tǒng)單元能夠調(diào)用硬件安全單元上的敏感加密功能。
在所附權(quán)利要求中敘述了據(jù)信能夠表征本發(fā)明的新穎的特性。當(dāng)結(jié)合附圖閱讀時,通過參照以下對說明性實施例的詳細(xì)描述,將得到對本發(fā)明本身以及其他目的和優(yōu)點的最佳理解,其中圖1A示出了數(shù)據(jù)處理系統(tǒng)的典型網(wǎng)絡(luò),其中的每一個都可以實施本發(fā)明;圖1B示出了在可以實施本發(fā)明的數(shù)據(jù)處理系統(tǒng)內(nèi)可以使用的典型的計算機體系結(jié)構(gòu);圖2為示出了個人獲得數(shù)字證書的典型方式的框圖;圖3為示出了實體可以使用數(shù)字證書來向數(shù)據(jù)處理系統(tǒng)進(jìn)行驗證的典型方式的框圖;圖4為示出了數(shù)據(jù)處理系統(tǒng)的一部分的框圖,該數(shù)據(jù)處理系統(tǒng)接受可移動硬件裝置,從而啟用(enable)數(shù)據(jù)處理系統(tǒng)內(nèi)的硬件安全單元中的加密功能;圖5為示出了系統(tǒng)單元的框圖,該系統(tǒng)單元包含內(nèi)部智能密鑰裝置,并且使用外部智能密鑰裝置以便啟用內(nèi)部智能密鑰裝置的加密功能;圖6為示出了用于啟用主機系統(tǒng)的內(nèi)部智能密鑰裝置的加密功能的總體處理的流程圖;圖7為示出了由特殊軟件智能密鑰單元使用的、用于啟用主機系統(tǒng)的內(nèi)部智能密鑰裝置的加密功能的總體處理的流程圖;圖8為示出了用于禁用(disable)主機系統(tǒng)的內(nèi)部智能密鑰裝置的加密功能的處理的流程圖;圖9A-9B為示出了在圖6的框604中示出的相互驗證過程的更多細(xì)節(jié)的一對流程圖;圖10A-10B為示出了在圖7的框704中示出的相互驗證過程的更多細(xì)節(jié)的一對流程圖;
圖11A為示出了內(nèi)部智能密鑰裝置中的處理的流程圖,用于按照軟件智能密鑰單元的請求進(jìn)行操作,其中,根據(jù)是否存在外部智能密鑰裝置,啟用和禁用操作;圖11B為示出了內(nèi)部智能密鑰裝置中的處理的流程圖,用于按照軟件智能密鑰單元的請求進(jìn)行操作,其中,不需要依據(jù)存在外部智能密鑰裝置來啟用操作;圖12為示出了用于保護(hù)主秘密的本發(fā)明的實施例的框圖;圖13-15為示出了多個外部智能密鑰裝置與多個內(nèi)部智能密鑰裝置之間的不同關(guān)系的框圖;圖16A-16C為示出了一套典型的受信任關(guān)系的框圖;圖17為示出了信任模型的例子的框圖,該信任模型由基于由內(nèi)部智能密鑰裝置提供的信任的信任關(guān)系構(gòu)成;圖18為示出了用于生成操作系統(tǒng)文件的數(shù)據(jù)處理系統(tǒng)的框圖,其中,操作系統(tǒng)中的每個編程實體包含用于根據(jù)內(nèi)部智能密鑰裝置建立信任體系中的信任關(guān)系的功能;圖19為示出了用于生成操作系統(tǒng)模塊的處理的流程圖,該操作系統(tǒng)模塊包含軟件智能密鑰單元,使得操作系統(tǒng)模塊能夠進(jìn)行相互驗證操作;圖20為示出了用于生成項目代碼(project code)的數(shù)據(jù)處理系統(tǒng)的框圖,其中,每個編程實體包含用于根據(jù)內(nèi)部智能密鑰裝置建立信任體系中的信任關(guān)系的功能;圖21為示出了用于擴展內(nèi)部智能密鑰裝置的證書鏈的處理的流程圖;圖22為示出了信任模型的例子的框圖,該信任模型由信任關(guān)系構(gòu)成,其中,信任關(guān)系是基于由保持包含用于外來(foreign)內(nèi)部智能密鑰裝置的多個根證書的證書鏈的單個本地內(nèi)部智能密鑰裝置提供的信任;圖23為示出了用于獲得由本地內(nèi)部智能密鑰裝置保持的當(dāng)前根證書鏈的處理的流程圖;
圖24為示出了用于確定來自外來內(nèi)部智能密鑰裝置的數(shù)字證書是否可信的處理的流程圖;圖25為示出了在可以用于保證軟件模塊的完整性的硬件輔助信任模型內(nèi)的實體的數(shù)據(jù)流圖;圖26為示出了用于保證軟件模塊的完整性的處理的流程圖;圖27為示出了數(shù)據(jù)處理系統(tǒng)的一部分的框圖,該數(shù)據(jù)處理系統(tǒng)接受可移動存儲介質(zhì),從而啟用數(shù)據(jù)處理系統(tǒng)內(nèi)的硬件安全單元中的加密功能;圖28為示出了啟用內(nèi)部智能密鑰裝置內(nèi)的加密功能的可移動存儲介質(zhì)的框圖;圖29為示出了系統(tǒng)單元的框圖,該系統(tǒng)單元包含內(nèi)部智能密鑰裝置以及與圖28的可移動存儲介質(zhì)結(jié)合的可移動存儲介質(zhì)智能密鑰裝置,以啟用內(nèi)部智能密鑰裝置內(nèi)的加密功能;圖30為示出了用于啟用主機系統(tǒng)的內(nèi)部智能密鑰裝置的加密功能的總體處理的流程圖;圖31為示出了由特定可移動介質(zhì)使用的、啟用主機系統(tǒng)的內(nèi)部智能密鑰裝置的加密功能的總體處理的流程圖;并且圖32為示出了用于禁用主機系統(tǒng)的內(nèi)部智能密鑰裝置的加密功能的處理的流程圖。
具體實施例方式
一般而言,可以包括或者涉及本發(fā)明的設(shè)備包括種類繁多的數(shù)據(jù)處理技術(shù)。因此,作為背景,在對本發(fā)明進(jìn)行更詳細(xì)的描述之前,先對分布式數(shù)據(jù)處理系統(tǒng)內(nèi)的硬件和軟件組件的典型結(jié)構(gòu)進(jìn)行描述。
參照附圖,圖1A示出了數(shù)據(jù)處理系統(tǒng)的典型網(wǎng)絡(luò),其中的每個部分可以實施本發(fā)明的一部分。分布式數(shù)據(jù)處理系統(tǒng)100包含網(wǎng)絡(luò)101,它是可以用于在各種裝置和計算機之間提供通信鏈接的媒介,這些裝置和計算機在分布式數(shù)據(jù)處理系統(tǒng)100內(nèi)連接在一起。網(wǎng)絡(luò)101可以包括永久連接如導(dǎo)線或光纖電纜;或者,通過電話或無線通信形成的臨時連接。在示出的例子中,服務(wù)器102和服務(wù)器103連同存儲單元104一起連接到網(wǎng)絡(luò)101。此外,客戶機105-107也連接到網(wǎng)絡(luò)101。各種計算設(shè)備如大型計算機、個人計算機、個人數(shù)字助理(PDA)等可以代表客戶機105-107以及服務(wù)器102-103。分布式數(shù)據(jù)處理系統(tǒng)100可以包括沒有示出的附加服務(wù)器、客戶機、路由器、其他設(shè)備以及對等構(gòu)架。
在示出的例子中,分布式數(shù)據(jù)處理系統(tǒng)100可以包括具有網(wǎng)絡(luò)101的因特網(wǎng),代表在全球范圍內(nèi)的網(wǎng)絡(luò)和網(wǎng)關(guān)的匯集,這些網(wǎng)絡(luò)和網(wǎng)關(guān)利用各種協(xié)議相互通信,其中,這些協(xié)議包括輕權(quán)目錄訪問協(xié)議(Lightweight Directory Access Protocol,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)部網(wǎng)、局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)。例如,服務(wù)器102直接支持并入了無線通信鏈接的客戶機109和網(wǎng)絡(luò)110。網(wǎng)絡(luò)使能(network-enabled)電話111通過無線鏈接112連接到網(wǎng)絡(luò)110,PDA113通過無線鏈接114連接到網(wǎng)絡(luò)110。利用合適的技術(shù),如藍(lán)牙(BletoothTM)無線技術(shù),電話111和PDA 113也可以經(jīng)過無線鏈接115在它們自己之間直接傳輸數(shù)據(jù),從而建立所謂的個人區(qū)域網(wǎng)絡(luò)(personal area network,PAN)或個人自組織(ad-hoc)網(wǎng)絡(luò)。以相似的方式,PDA 113可以通過無線通信鏈接116向PDA 107傳輸數(shù)據(jù)。
本發(fā)明可以在各種硬件平臺上實現(xiàn);圖1A是異構(gòu)計算環(huán)境的例子,而不是對本發(fā)明的結(jié)構(gòu)性限制。
參照圖1B,圖1B示出了如圖1A所示的、可以實施本發(fā)明的數(shù)據(jù)處理系統(tǒng)的典型的計算機體系結(jié)構(gòu)。數(shù)據(jù)處理系統(tǒng)120包含一個或多個連接到內(nèi)部系統(tǒng)總線123的中央處理單元(CPU)122,內(nèi)部系統(tǒng)總線123與隨機存取存儲器(RAM)124、只讀存儲器126和輸入/輸出適配器128互連,輸入/輸出適配器128支持各種I/O裝置,如打印機130、盤單元132或沒有示出的其他設(shè)備,如音頻輸出系統(tǒng)等。系統(tǒng)總線123還連接提供對通信鏈接136的訪問的通信適配器134。用戶接口適配器148連接各種用戶裝置,如鍵盤140和鼠標(biāo)142,或者沒有示出的其他裝置,如觸摸屏、輸入筆(stylus)、麥克風(fēng)等。顯示適配器144將系統(tǒng)總線123連接到顯示裝置146。
本領(lǐng)域技術(shù)人員應(yīng)該明白,可以根據(jù)系統(tǒng)實施方案來改變圖1B中的硬件。例如,系統(tǒng)可以具有一個或多個處理器,如基于IntelPentium的處理器和數(shù)字信號處理器(DSP),以及一種或多種易失和非易失存儲器。除了圖1B中示出的硬件以外,可以使用其他外圍裝置,或者可以用其他外圍裝置代替圖1B中示出的硬件。示出的例子不暗示對本發(fā)明的結(jié)構(gòu)性限制。
除了能夠在各種硬件平臺上實施以外,本發(fā)明還可以在各種軟件環(huán)境中實施??梢詫⒌湫偷牟僮飨到y(tǒng)用于對每個數(shù)據(jù)處理系統(tǒng)內(nèi)的程序執(zhí)行進(jìn)行控制。例如,一個裝置可以運行Unix操作系統(tǒng),而另一個裝置包含簡單的Java運行時環(huán)境。代表性的計算機平臺可以包括瀏覽器,它是一個眾所周知的軟件應(yīng)用程序,用于訪問各種格式的超文本文檔,如圖形文件、字處理文件、可擴展標(biāo)識語言(XML)、超文本標(biāo)識語言(HTML)、手持設(shè)備標(biāo)識語言(HDML)、無線標(biāo)識語言(WML)以及各種其他格式和種類的文件。
如上面關(guān)于圖1A和圖1B所述,本發(fā)明可以在各種硬件和軟件平臺上實施。然而,更確切地說,本發(fā)明旨在提出一種用于利用硬件安全令牌(hardware security token)來保護(hù)秘密信息的機制。在詳細(xì)描述本發(fā)明之前,提供關(guān)于數(shù)字證書的一些背景信息,以便對本發(fā)明的操作有效性和其他優(yōu)點進(jìn)行評價。
數(shù)字證書支持公鑰加密,其中,處于通信或交易中的每一方都有一對密鑰,稱為公鑰和私鑰。每一方的公鑰被公開,而私鑰保密。公鑰是與特定實體相關(guān)聯(lián)的號碼,并且為需要與該實體進(jìn)行可信交互的每個人所知。私鑰是只為特定實體所知的號碼、即保密的號碼。在典型的不對稱加密系統(tǒng)中,一個私鑰嚴(yán)格對應(yīng)于一個公鑰。
在公鑰加密系統(tǒng)內(nèi),由于所有通信只涉及公鑰,而私鑰不被發(fā)送或共享,因此,只利用公開信息生成機密消息,并且,只能利用為預(yù)期的接收者所獨自擁有的私鑰對機密消息進(jìn)行解密。此外,可以將公鑰加密用于驗證、即數(shù)字簽名,以及,用于保密、即加密。
加密(encryption)指的是將數(shù)據(jù)轉(zhuǎn)換為不能被沒有秘密的解密密鑰的任何人讀取的形式;加密通過使信息的內(nèi)容相對于非預(yù)期的任何人、甚至那些能夠看到經(jīng)過加密的數(shù)據(jù)的人隱藏起來,來進(jìn)行保密。驗證是這樣一個過程,通過這個過程,數(shù)字消息的接收者能夠確認(rèn)發(fā)送者的身份和/或消息的完整性。
例如,當(dāng)發(fā)送者對消息進(jìn)行加密時,使用接收者的公鑰來將原始消息內(nèi)的數(shù)據(jù)轉(zhuǎn)換為經(jīng)過加密的消息的內(nèi)容。發(fā)送者用預(yù)期接受者的公鑰對數(shù)據(jù)加密,而接收者用其私鑰對經(jīng)過加密的消息進(jìn)行解密。
當(dāng)驗證數(shù)據(jù)時,可以通過利用簽名者的私鑰從數(shù)據(jù)計算數(shù)字簽名,來對數(shù)據(jù)進(jìn)行簽名。一旦對數(shù)據(jù)進(jìn)行了數(shù)字簽名,則可以將它與簽名者的身份以及證明該數(shù)據(jù)源于簽名者的簽名一起存儲。簽名者用其私鑰對數(shù)據(jù)簽名,接收者用簽名者的公鑰對簽名進(jìn)行檢驗。
證書是一個數(shù)字文檔,它用于保證(vouch)實體如個人、計算機系統(tǒng)、在該系統(tǒng)上運行的特定服務(wù)器等的身份和密鑰所有權(quán)。證書由證書管理機關(guān)頒發(fā)。證書管理機關(guān)(certificate authority,CA)是一個實體,通常是對交易來說的受信任的第三方,它被信任來為其他人或?qū)嶓w簽署或頒發(fā)證書。證書管理機關(guān)通常對于其保證公鑰與其所有者之間的綁定關(guān)系、從而使得某人相信簽署證書的實體負(fù)有某種法律責(zé)任。有許多商業(yè)證書管理機關(guān);這些管理機關(guān)負(fù)責(zé)當(dāng)頒發(fā)證書時對實體的身份和密鑰所有權(quán)進(jìn)行檢驗。
如果證書管理機關(guān)為實體頒發(fā)證書,則實體必須提供公鑰以及關(guān)于該實體的某些信息。軟件工具如特殊配備的Web瀏覽器,可以對該信息進(jìn)行數(shù)字簽名,并且將它發(fā)送到證書管理機關(guān)。證書管理機關(guān)可以是提供受信任的第三方證書管理服務(wù)的商業(yè)公司。然后,證書管理機關(guān)生成證書,并將它返回。證書可以包含其他信息,如序列號以及證書的有效日期。某種程度上,根據(jù)證書管理機關(guān)的檢驗要求,證書管理機關(guān)提供的一部分價值是起中立的并且可信的介紹服務(wù)的作用,所述的要求公開地發(fā)布在它們的證明服務(wù)業(yè)務(wù)(certification servicepractice,CSP)上。
證書管理機關(guān)通過嵌入請求實體的公鑰與其他識別信息,然后用證書管理機關(guān)的私鑰簽署數(shù)字證書,來創(chuàng)建新的數(shù)字證書。接收數(shù)字證書的任何人都可以在交易或通信期間,利用證書管理機關(guān)的公鑰對簽署在證書內(nèi)的公鑰進(jìn)行檢驗。意圖在于證書管理機關(guān)的簽名起數(shù)字證書的防篡改封條的作用,由此確保證書內(nèi)的數(shù)據(jù)的完整性。
證書處理的其他方面還被標(biāo)準(zhǔn)化。Myers等人的,“Internet X.509Certificate Request Message Format”,Internet Engineering TaskForce(IETF)Request for Comments(RFC)2511,1999年3月,規(guī)定了已經(jīng)推薦的、每當(dāng)信任方請求來自證書管理機關(guān)的證書時使用的格式。Adams等人的,“Internet X.509 Public Key InfrastructureCertificate Management Protocols”,IETF RFC 2511,1999年3月,規(guī)定了用于傳送證書的協(xié)議。本發(fā)明屬于使用數(shù)字證書的分布式數(shù)據(jù)處理系統(tǒng);圖2-3的描述提供了關(guān)于包含數(shù)字證書的典型操作的背景信息。
參照圖2,框圖示出了個人獲得數(shù)字證書的典型方式。在某種類型的客戶計算機上操作的用戶202已經(jīng)預(yù)先獲得了或生成了公鑰/私鑰對,例如,用戶公鑰204和用戶私鑰206。用戶202生成對包含用戶公鑰204的證書208的請求,并且將這個請求發(fā)送到擁有CA公鑰212和CA私鑰214的證書管理機關(guān)210。證書管理機關(guān)210以某種方式對用戶202的身份進(jìn)行檢驗,并且生成包含用戶公鑰218的X.509數(shù)字證書216。用CA私鑰214對整個證書簽名;該證書包括用戶的公鑰、與用戶相關(guān)聯(lián)的名字以及其他屬性。用戶202接收新生成的數(shù)字證書216,然后,用戶202可以按照需要出示數(shù)字證書216,以參與可信交易或可信通信。接收到來自用戶202的數(shù)字證書216的實體可以利用CA公鑰212對證書管理機關(guān)的簽名進(jìn)行檢驗,CA公鑰212是公開的,并且可以由進(jìn)行檢驗的實體獲得。
參照圖3,框圖示出了實體可以使用數(shù)字證書來向數(shù)據(jù)處理系統(tǒng)進(jìn)行驗證的典型方式。用戶302擁有X.509數(shù)字證書304,該證書被發(fā)送到主機系統(tǒng)308上的因特網(wǎng)或內(nèi)部網(wǎng)應(yīng)用程序306;應(yīng)用程序306包括X.509功能,用于處理和使用數(shù)字證書。用戶302用其私鑰對其發(fā)送到應(yīng)用程序306的數(shù)據(jù)進(jìn)行簽名或加密。
接收證書304的實體可以是應(yīng)用程序、系統(tǒng)、子系統(tǒng)等。證書304包含主題名稱或主題標(biāo)識符,用于向應(yīng)用程序306標(biāo)識用戶302,應(yīng)用程序306可以為用戶302提供某種服務(wù)。使用證書304的實體在使用關(guān)于來自用戶302的經(jīng)簽名或加密的數(shù)據(jù)的證書之前,檢驗證書的真實性。
主機系統(tǒng)308還可以包含系統(tǒng)注冊處(registry)3 10,用于授權(quán)用戶302訪問系統(tǒng)308內(nèi)的服務(wù)和資源,即,使用戶的身份與用戶權(quán)利一致。例如,系統(tǒng)管理員已經(jīng)將用戶的身份配置為屬于某個安全組,于是該用戶被限制為只能訪問被配置為對該整個安全組可用的那些資源。可以在系統(tǒng)內(nèi)使用用于實行授權(quán)方案的各種眾所周知的方法。
為了適當(dāng)?shù)卮_認(rèn)(validate)或檢驗數(shù)字證書,應(yīng)用程序必須對證書是否已經(jīng)被撤消進(jìn)行檢查。當(dāng)證書管理機關(guān)頒發(fā)證書時,證書管理機關(guān)生成唯一的序列號,利用該序列號識別證書,并且,該序列號被存儲在X.509證書內(nèi)的“Serial Number”字段內(nèi)。通常,通過證書的序列號,在CRL(certificate revocation list,證書撤消列表)內(nèi)對被撤消的X.509證書進(jìn)行識別;被撤消的證書的序列號出現(xiàn)在CRL內(nèi)的序列號列表中。
為了確定證書304是否仍然有效,應(yīng)用程序306包含來自CRL庫312的證書撤消列表,并且對CRL進(jìn)行確認(rèn)。應(yīng)用程序306將證書304中的序列號與檢索到的CRL內(nèi)的序列號列表進(jìn)行比較,并且,如果沒有匹配的序列號,則應(yīng)用程序306確認(rèn)證書304有效。如果CRL具有匹配的序列號,則證書304應(yīng)該被拒絕,并且,應(yīng)用程序306可以采取適當(dāng)措施,對訪問任何受控資源的用戶請求加以拒絕。
大多數(shù)數(shù)據(jù)處理系統(tǒng)包含需要保護(hù)的敏感數(shù)據(jù)。例如,需要防止配置信息的數(shù)據(jù)完整性被非法修改,同時,需要防止其他信息如密碼文件被非法公開。給定的數(shù)據(jù)處理系統(tǒng)的操作員可以使用許多不同類型的安全機制來保護(hù)數(shù)據(jù)處理系統(tǒng)。例如,數(shù)據(jù)處理系統(tǒng)上的操作系統(tǒng)可以提供各種軟件機制來保護(hù)敏感數(shù)據(jù),如各種驗證和授權(quán)方案,而某些硬件裝置和軟件應(yīng)用程序可以依靠硬件機制來保護(hù)敏感數(shù)據(jù),如硬件安全令牌和生物傳感器裝置。即使在給定的數(shù)據(jù)處理系統(tǒng)內(nèi)可以使用多個軟件和硬件機制來保護(hù)敏感數(shù)據(jù),還可以對敏感數(shù)據(jù)加密,使得如果某人非法訪問經(jīng)過加密的敏感數(shù)據(jù),在不能對經(jīng)過加密的敏感數(shù)據(jù)進(jìn)行解密的情況下,對經(jīng)過加密的敏感數(shù)據(jù)的任何拷貝都是無用的。
然而,對包含在數(shù)據(jù)處理系統(tǒng)內(nèi)的所有信息進(jìn)行最終保護(hù)的能力是有限的。例如,在努力對密碼文件加強保護(hù)的過程中,可以利用另一種秘密如密碼或加密密鑰對密碼文件進(jìn)行加密,這種密碼或加密密鑰通常稱為主秘密。但是,也需要以某種方式對于這個新秘密進(jìn)行保護(hù)。因此,系統(tǒng)管理員會遇到兩難的情形,即,對實現(xiàn)另一層安全性的任何努力都產(chǎn)生了也需要保護(hù)的附加敏感信息?,F(xiàn)在看本發(fā)明,其余附圖示出了解決這種兩難情形的、本發(fā)明的示例性實施例。
參照圖4,框圖示出了按照本發(fā)明實施例的數(shù)據(jù)處理系統(tǒng)的一部分,該數(shù)據(jù)處理系統(tǒng)接受可移動硬件裝置,以啟用數(shù)據(jù)處理系統(tǒng)內(nèi)的硬件安全單元中的加密功能可用。本發(fā)明使用一對匹配的智能密鑰裝置,這對匹配智能密鑰裝置保存加密密鑰,并且執(zhí)行加密功能。系統(tǒng)單元402與作為便攜式裝置或可移動裝置的外部智能密鑰裝置(external smart key device,EXSKD)404接口。系統(tǒng)單元402還包含內(nèi)部智能密鑰裝置(internal smart key device,INSKD)406,它是一個匹配裝置,該匹配裝置是接納可移動裝置的主機系統(tǒng)、如主板的整體部分。最好,內(nèi)部智能密鑰裝置是難以從主機系統(tǒng)中移除的、封裝的集成電路;盡管它可以被描述為硬件安全單元,但是,它也可以包括用于執(zhí)行指令的處理單元。在本例中,EXSKD 404和INSKD 406為成對的裝置??梢苿友b置實際由系統(tǒng)管理人員,例如IT管理員保管;當(dāng)IT管理員需要啟用只能由主機如系統(tǒng)單元402上的匹配裝置、即INSKD 406執(zhí)行的某些加密功能時,可移動裝置、即EXSKD 404被插入主機。換句話說,當(dāng)外部智能密鑰裝置被插入系統(tǒng)單元時,某些加密功能可用。只有INSKD 406能夠產(chǎn)生IT管理員需要的結(jié)果,這是由于只有INSKD 406包含用于產(chǎn)生某種加密輸出的一個或多個特定的加密私鑰。系統(tǒng)單元402上的應(yīng)用程序408具有與EXSKD 404和INSKD 406相似的軟件智能密鑰單元(software smart key unit,SWSKU)410。應(yīng)用程序408用SWSKU 410執(zhí)行某些功能,以下對此進(jìn)行詳細(xì)說明。
參照圖5,框圖示出了按照本發(fā)明的實施例的系統(tǒng)單元,該系統(tǒng)單元包含內(nèi)部智能密鑰裝置,并且使用外部智能密鑰裝置來啟用內(nèi)部智能密鑰裝置的加密功能。除了圖5包括關(guān)于存儲在各個部件內(nèi)的加密密鑰的附加的細(xì)節(jié)以外,圖5與圖4相似。
外部智能密鑰裝置(EXSKD)502為可移動硬件裝置;最好,EXSKD 502為由系統(tǒng)管理員控制的并且起硬件安全令牌作用的便攜式裝置。具有電接口504的外部智能密鑰裝置502可以插入具有電接口508的系統(tǒng)單元506;外部智能密鑰裝置502與系統(tǒng)單元506通過它們各自的接口實現(xiàn)電氣接合,從而交換代表數(shù)字信息的電信號。
外部智能密鑰裝置502包含加密引擎510,用于利用存儲在外部智能密鑰裝置502中的各種數(shù)據(jù)項來執(zhí)行加密功能。以這樣的方式存儲EXSKD私鑰512,使得它不能被EXSKD 502外部的實體讀取或訪問;EXSKD 502不包含發(fā)送或以其他方式提供EXSKD私鑰512的拷貝的功能。EXSKD公鑰證書514包含EXSKD公鑰516的拷貝,與EXSKD私鑰512對應(yīng),作為不對稱加密密鑰對。EXSKD 502還包含INSKD公鑰證書518的拷貝,其本身包含INSKD公鑰520的拷貝,與INSKD私鑰526對應(yīng),作為不對稱加密密鑰對。INSKD公鑰證書518的拷貝可以被寫到EXSKD 502上,作為其制造和初始化處理的一部分。
系統(tǒng)單元506包含內(nèi)部智能密鑰裝置(INSKD)522。內(nèi)部智能密鑰裝置522包含加密引擎524,用于利用存儲在內(nèi)部智能密鑰裝置522中的各種數(shù)據(jù)項執(zhí)行加密功能。以這樣的方式存儲INSKD私鑰526,使得它不能被INSKD 522外部的實體讀取或訪問;INSKD 522不包含發(fā)送或以其他方式提供INSKD私鑰526的拷貝的功能。INSKD公鑰證書528包含INSKD公鑰530的拷貝,與INSKD私鑰526對應(yīng),作為不對稱加密密鑰對。INSKD 522還包含EXSKD公鑰證書532的拷貝,其本身包含INSKD公鑰534的拷貝,與EXSKD私鑰512對應(yīng),作為不對稱加密密鑰對。EXSKD公鑰證書532的拷貝可以被寫到INSKD 522上,作為其制造和初始化處理的一部分。
在另外的實施例中,INSKD私鑰526和INSKD公鑰530可以用于其他功能。在圖5所示的優(yōu)選實施例中,為了在INSKD 522與EXSKD 502之間進(jìn)行通信,保留INSKD私鑰526和INSKD公鑰530,同時INSKD 522使用用于其他功能的一個或多個其他加密密鑰對。在本例中,INSKD_SW私鑰536由INSKD 522使用,用于保護(hù)INSKD522與應(yīng)用程序540中的軟件智能密鑰單元(SWSKU)538之間的通信。INSKD_SW公鑰證書542包含INSKD_SW公鑰544的拷貝,與INSKD_SW私鑰536對應(yīng),作為不對稱加密密鑰對。INSKD 522還包含SWSKU公鑰證書546的拷貝,其本身包含SWSKU公鑰548的拷貝,與SWSKU私鑰550對應(yīng),作為不對稱加密密鑰對。
系統(tǒng)單元506支持執(zhí)行包含SWSKU 538的應(yīng)用程序540,SWSKU 538本身包含加密引擎552,用于利用存儲在軟件智能密鑰單元538中的各種數(shù)據(jù)項執(zhí)行加密功能。SWSKU 538不包含發(fā)送或以其他方式提供SWSKU私鑰550的拷貝的功能。SWSKU公鑰證書554包含SWSKU公鑰556的拷貝,其與SWSKU私鑰550對應(yīng),作為不對稱加密密鑰對。SWSKU 538還包含INSKD_SW公鑰證書558的拷貝,其本身包含INSKD_SW公鑰560的拷貝,與INSKD_SW私鑰536對應(yīng),作為不對稱加密密鑰對。如以下更詳細(xì)說明的,可以對SWSKU 538進(jìn)行數(shù)字簽名。在圖5所示的例子中,SWSKU 538包含已經(jīng)在SWSKU 538之上利用INSKD_SW私鑰536計算的數(shù)字簽名562;換句話說,INSKD 522已經(jīng)利用INSKD_SW私鑰536對SWSKU538進(jìn)行了數(shù)字簽名。
參照圖6,流程圖示出了用于啟用主機系統(tǒng)的內(nèi)部智能密鑰裝置的加密功能的總體處理。當(dāng)外部智能密鑰裝置與包括內(nèi)部智能密鑰裝置的系統(tǒng)單元電氣接合時,處理自框602開始。例如,IT管理員可以將外部智能密鑰裝置插入包括用于接納外部智能密鑰裝置的槽的接收單元。然后,在框604期間,內(nèi)部智能密鑰裝置和外部智能密鑰裝置執(zhí)行相互驗證過程,此后,在框606期間,允許內(nèi)部智能密鑰裝置執(zhí)行加密功能,并且,處理結(jié)束??梢约僭O(shè),相互驗證過程中的任何錯誤導(dǎo)致內(nèi)部智能密鑰裝置持續(xù)禁用。在限制性較小的實施例中,可以由在主機系統(tǒng)上運行的任何應(yīng)用程序調(diào)用內(nèi)部智能密鑰裝置的加密功能。而在限制性較大的實施例中,只能由包括軟件智能密鑰單元的應(yīng)用程序調(diào)用內(nèi)部智能密鑰裝置的加密功能,如圖7所示。
參照圖7,流程圖示出了按照本發(fā)明的實施例的,由特定軟件智能密鑰單元使用的、用于啟用主機系統(tǒng)的內(nèi)部智能密鑰裝置的加密功能的處理的流程圖。當(dāng)包含軟件智能密鑰單元的應(yīng)用程序或小應(yīng)用程序(applet)例如通過應(yīng)用編程接口調(diào)用內(nèi)部智能密鑰裝置的加密功能時,處理自框702開始。然后,在框704期間,內(nèi)部智能密鑰裝置和軟件智能密鑰單元執(zhí)行相互驗證過程,此后,在框706期間,允許內(nèi)部智能密鑰裝置為軟件智能密鑰單元執(zhí)行加密功能,并且,處理結(jié)束。假設(shè)主機系統(tǒng)上的多個軟件智能密鑰單元已經(jīng)完成了與內(nèi)部智能密鑰裝置的相互驗證過程,則可以同時允許內(nèi)部智能密鑰裝置代表多個軟件智能密鑰單元執(zhí)行加密功能。
在外部智能密鑰裝置保持與包含內(nèi)部智能密鑰裝置的系統(tǒng)單元接合時,允許內(nèi)部智能密鑰裝置提供起證書管理機關(guān)的作用的功能,即,生成新的公共證書。在一個實施例中,當(dāng)安裝了新的軟件包時,應(yīng)該使外部智能密鑰裝置與包含內(nèi)部智能密鑰裝置的系統(tǒng)單元接合。在軟件安裝期間,可以給新軟件包頒發(fā)新公共證書;與新頒發(fā)的數(shù)字證書中的公鑰對應(yīng)的私鑰可以被嵌在軟件包中,并且,可以通過使內(nèi)部智能密鑰裝置對軟件包進(jìn)行簽名,對私鑰進(jìn)行保護(hù)。此外,在Java環(huán)境中,可以對嵌入了私鑰的JAR文件和Java數(shù)據(jù)包進(jìn)一步進(jìn)行密封,從而防止惡意用戶篡改私鑰。
參照圖8,流程圖示出了按照本發(fā)明實施例的,用于禁用主機系統(tǒng)的內(nèi)部智能密鑰裝置的加密功能的處理。當(dāng)外部智能密鑰裝置在電氣上與包含內(nèi)部智能密鑰裝置的系統(tǒng)單元脫離(disengage)時,例如,在外部智能密鑰裝置已經(jīng)被插入并且已經(jīng)啟用內(nèi)部智能密鑰裝置之后的某個隨后的時刻,處理在框802中開始。當(dāng)系統(tǒng)單元檢測到外部智能密鑰裝置脫離時,在框804期間,內(nèi)部智能密鑰裝置被禁用,不再執(zhí)行加密功能,處理結(jié)束。
圖8中示出的處理作為圖6或圖7中示出的處理的補充處理運行。應(yīng)該注意,依據(jù)本發(fā)明的實施方案,內(nèi)部智能密鑰裝置仍然可以執(zhí)行某些功能,從而它不被完全禁用??梢约僭O(shè),可以通過軟件或硬件使內(nèi)部智能密鑰裝置中的加密功能啟用或禁用。例如,在硬件模式中,可以利用必須根據(jù)表示是否已經(jīng)接受外部智能密鑰裝置的使能狀態(tài)進(jìn)行設(shè)定或清除的某些觸發(fā)器或其他機構(gòu)來防止內(nèi)部智能密鑰裝置中的特定電路的運行進(jìn)入可操作狀態(tài);在軟件模式中,通過對在邏輯上控制加密功能的執(zhí)行的特定使能標(biāo)志進(jìn)行設(shè)定或清除,可以阻止某些加密功能的運行。
參照圖9A-9B,兩個流程圖示出了在圖6的框604中示出的相互驗證過程的更多細(xì)節(jié)。圖9A示出了內(nèi)部智能密鑰裝置對外部智能密鑰裝置進(jìn)行驗證的處理,而圖9B示出了外部智能密鑰裝置對內(nèi)部智能密鑰裝置進(jìn)行驗證的處理。圖9A中示出的處理可以在圖9B中示出的處理之前進(jìn)行,反之亦然;根據(jù)實施本發(fā)明的方式,這些處理可以是獨立的和/或可以例如通過表示正在試圖進(jìn)行的操作的適當(dāng)信號或狀態(tài)標(biāo)志同時進(jìn)行。
參照圖9A,當(dāng)內(nèi)部智能密鑰裝置利用外部智能密鑰裝置的公鑰對消息例如隨機文本串進(jìn)行加密時,處理自框902開始。在框904期間,內(nèi)部智能密鑰裝置通過主機系統(tǒng)的適當(dāng)接口,將經(jīng)過加密的消息傳送到外部智能密鑰裝置,然后,在框906期間,外部智能密鑰裝置利用其私鑰對經(jīng)過加密的消息進(jìn)行解密。在框908期間,外部智能密鑰裝置用內(nèi)部智能密鑰裝置的公鑰對經(jīng)過解密的消息進(jìn)行加密,并且,在框910期間,將經(jīng)過加密的消息傳遞到內(nèi)部智能密鑰裝置。然后,在框912期間,內(nèi)部智能密鑰裝置用其私鑰對經(jīng)過加密的消息進(jìn)行解密,并且,在框914期間,將接收到的消息與其原始消息進(jìn)行比較。如果兩個消息匹配,則在框916期間,內(nèi)部智能密鑰裝置例如利用適當(dāng)信號或通過設(shè)定邏輯標(biāo)志變量,提供內(nèi)部智能密鑰裝置已經(jīng)確定外部智能密鑰裝置真實可信的指示,由此結(jié)束處理。
參照圖9B,當(dāng)外部智能密鑰裝置利用內(nèi)部智能密鑰裝置的公鑰對消息例如隨機文本串進(jìn)行加密時,處理自框922開始。在框924期間,外部智能密鑰裝置將經(jīng)過加密的消息傳送到內(nèi)部智能密鑰裝置,然后,在框926期間,內(nèi)部智能密鑰裝置利用其私鑰對經(jīng)過加密的消息進(jìn)行解密。在框928期間,內(nèi)部智能密鑰裝置用外部智能密鑰裝置的公鑰對經(jīng)過解密的消息進(jìn)行加密,并且,在框930期間,將經(jīng)過加密的消息傳遞到外部智能密鑰裝置。然后,在框932期間,外部智能密鑰裝置用其私鑰對經(jīng)過加密的消息進(jìn)行解密,并且,在框934期間,將接收到的消息與其原始消息進(jìn)行比較。如果兩個消息匹配,則在框936期間,外部智能密鑰裝置例如利用適當(dāng)信號或通過設(shè)定邏輯標(biāo)志變量,提供外部智能密鑰裝置已經(jīng)確定內(nèi)部智能密鑰裝置真實可信的指示,由此結(jié)束處理。
參照圖10A-10B,兩個流程圖示出了在圖7的框704中示出的相互驗證過程的更多細(xì)節(jié)。圖10A示出了軟件智能密鑰單元對內(nèi)部智能密鑰裝置進(jìn)行驗證的處理,而圖10B示出了內(nèi)部智能密鑰裝置對軟件智能密鑰單元進(jìn)行驗證的處理。圖10A中示出的處理可以在圖10B中示出的處理之前進(jìn)行,反之亦然;根據(jù)實施本發(fā)明的方式,這些處理可以是獨立的和/或例如可以通過表示正在試圖進(jìn)行的操作的適當(dāng)消息或狀態(tài)標(biāo)志同時進(jìn)行。
參照圖10A,當(dāng)軟件智能密鑰單元利用內(nèi)部智能密鑰裝置的公鑰對消息例如隨機文本串加密時,處理自框1002開始。在框1004期間,軟件智能密鑰單元將經(jīng)過加密的消息傳送到內(nèi)部智能密鑰裝置,然后,在框1006期間,內(nèi)部智能密鑰裝置利用其私鑰對經(jīng)過加密的消息進(jìn)行解密。在框1008期間,內(nèi)部智能密鑰裝置用軟件智能密鑰單元的公鑰對經(jīng)過解密的消息進(jìn)行加密,并且,在框1010期間,將經(jīng)過加密的消息傳遞到軟件智能密鑰單元。然后,在框1012期間,軟件智能密鑰單元用其私鑰對經(jīng)過加密的消息進(jìn)行解密,并且,在框1014期間,將接收到的消息與其原始消息進(jìn)行比較。如果兩個消息匹配,則在框1016期間,軟件智能密鑰單元例如利用適當(dāng)信號或通過設(shè)定邏輯標(biāo)志變量,提供軟件智能密鑰單元已經(jīng)確定內(nèi)部智能密鑰裝置真實可信的指示,由此結(jié)束處理。
與圖10A相比,圖10B示出了將會話密鑰而不是隨機文本串用作在兩個實體之間傳遞的消息。如果兩個實體之間的相互驗證處理成功完成,則在兩個實體間的會話期間,會話密鑰用于保護(hù)隨后的消息流(traffic);可以對會話進(jìn)行計時,或者,會話可以由于特殊事件如軟件實體執(zhí)行結(jié)束或硬件實體斷電而終止。會話密鑰可以在加密之前放在較大的包含其他信息的消息內(nèi),此后,經(jīng)過加密的消息在兩個實體之間傳遞。在另一個實施例中,將隨機文本串用于驗證過程,然后,兩個實體可以交換會話密鑰。如以下更詳細(xì)說明的,在驗證處理期間,附加信息可以安全地在兩個實體之間傳遞,從而減少了用于交換信息的動作數(shù)量。
參照圖10B,當(dāng)內(nèi)部智能密鑰裝置利用軟件智能密鑰單元的公鑰對會話密鑰加密時,處理自框1022開始。在框1024期間,內(nèi)部智能密鑰裝置向軟件智能密鑰單元傳送經(jīng)過加密的會話密鑰,然后,在框1026期間,軟件智能密鑰單元利用其私鑰對經(jīng)過加密的會話密鑰進(jìn)行解密。在框1028期間,軟件智能密鑰單元用內(nèi)部智能密鑰裝置的公鑰對經(jīng)過解密的會話密鑰進(jìn)行加密,并且,在框1030期間,將經(jīng)過加密的會話密鑰傳遞到內(nèi)部智能密鑰裝置。然后,在框1032期間,內(nèi)部智能密鑰裝置用其私鑰對經(jīng)過加密的會話密鑰進(jìn)行解密,并且,在框1034期間,將接收到的會話密鑰與其原始會話密鑰進(jìn)行比較。如果會話密鑰的兩個版本匹配,則在框1036期間,內(nèi)部智能密鑰裝置例如利用適當(dāng)消息或通過設(shè)定邏輯標(biāo)志變量,提供內(nèi)部智能密鑰裝置已經(jīng)確定軟件智能密鑰單元真實可信的指示,由此結(jié)束處理。
可以結(jié)合圖7所示的處理,執(zhí)行附加的安全動作。例如,在框702中,應(yīng)用程序或小應(yīng)用程序已經(jīng)請求使用嵌入內(nèi)部智能密鑰裝置中的功能。在圖10B中示出的處理開始之前的某個時刻,內(nèi)部智能密鑰裝置可以執(zhí)行附加動作,用于檢驗請求應(yīng)用程序或小應(yīng)用程序中的軟件智能密鑰單元是否包含安全代碼。如以上針對圖5敘述的,SWSKU 538可以被數(shù)字簽名;SWSKU 538包含已經(jīng)利用INSKD_SW私鑰536在SWSKU 538之上計算的數(shù)字簽名562。因此,內(nèi)部智能密鑰裝置可以通過檢驗與軟件智能密鑰單元相關(guān)聯(lián)的數(shù)字簽名,來檢驗請求應(yīng)用程序或小應(yīng)用程序中的軟件智能密鑰單元是否包含安全代碼。
在Java環(huán)境中,可以將軟件智能密鑰單元實現(xiàn)為經(jīng)過簽名的JAR文件;在一個實施例中,內(nèi)部智能密鑰裝置被用于檢驗經(jīng)過簽名的JAR文件的數(shù)字簽名。在一個不同的實施例中,可以對JAR文件和Java數(shù)據(jù)包進(jìn)一步密封(seal),使得類加載器(class loader)強行從密封的JAR文件中裝載數(shù)據(jù)包中的所有代碼。密封JAR文件和Java數(shù)據(jù)包的動作能夠防止惡意用戶通過將代碼注入類路徑來修改功能。此外,類加載器本身可以被簽名并被密封,使得類加載器的完整性能夠被檢驗。
在更一般的計算環(huán)境中,盡管內(nèi)部智能密鑰裝置可以對軟件智能密鑰單元進(jìn)行數(shù)字簽名,并且隨后可以對數(shù)字簽名進(jìn)行確認(rèn),可以在內(nèi)部智能密鑰裝置的幫助下,通過數(shù)據(jù)處理系統(tǒng)內(nèi)的適當(dāng)?shù)牟僮飨到y(tǒng)模塊,例如用于裝載軟件模塊以便執(zhí)行的程序加載器,對確保對軟件智能密鑰單元進(jìn)行簽名并對其進(jìn)行確認(rèn)的處理進(jìn)行控制。在允許軟件模塊執(zhí)行之前,程序加載器可以執(zhí)行附加安全處理。此外,程序加載器本身可以被簽名并被密封,使得程序加載器的完整性能夠被檢驗。
雖然上述處理提供了用于確保軟件智能密鑰單元的完整性的機制,但是,數(shù)據(jù)處理系統(tǒng)內(nèi)的軟件智能密鑰單元的操作仍然被認(rèn)為易受攻擊,這是由于通過查閱包括軟件智能密鑰單元的代碼,可以看到并復(fù)制軟件智能密鑰單元的加密密鑰;可以假設(shè),加密密鑰以明文(inthe clear)被存儲在軟件智能密鑰單元內(nèi)。
因此,為了保護(hù)軟件智能密鑰單元,尤其是其私鑰,可以結(jié)合圖7中示出的處理,執(zhí)行另一個安全動作??梢栽谏栽绲哪硞€時刻,對軟件智能密鑰單元加密,由此隱藏軟件智能密鑰單元內(nèi)的任何敏感信息,尤其是其私鑰。在不同實施例中,可以對包括軟件智能密鑰單元的軟件模塊加密。例如,當(dāng)在數(shù)據(jù)處理系統(tǒng)上安裝軟件模塊時,作為用于包括軟件模塊的應(yīng)用程序的安裝過程的一部分,數(shù)據(jù)處理系統(tǒng)上的內(nèi)部智能密鑰裝置可以對軟件模塊加密。
在執(zhí)行這個附加動作的系統(tǒng)中,軟件智能密鑰單元和/或包括軟件智能密鑰單元的軟件模塊需要在執(zhí)行之前解密。在與上面關(guān)于利用數(shù)字簽名保護(hù)軟件智能密鑰單元的完整性所述的時刻相似的時刻,例如,在開始圖10B中示出的處理之前的某個時刻,內(nèi)部智能密鑰裝置執(zhí)行對軟件智能密鑰單元和/或包括軟件智能密鑰單元的軟件模塊進(jìn)行解密的附加動作。同樣,以與上述方式相似的方式,可以在內(nèi)部智能密鑰裝置的幫助下,通過數(shù)據(jù)處理系統(tǒng)內(nèi)的適當(dāng)?shù)牟僮飨到y(tǒng)模塊,對解密處理進(jìn)行控制。以下提供關(guān)于在為了結(jié)合內(nèi)部智能密鑰裝置使用而進(jìn)行安裝時對軟件模塊進(jìn)行修改的處理以及關(guān)于以安全方式執(zhí)行這種軟件模塊的處理的進(jìn)一步細(xì)節(jié)。
參照圖11A,流程圖示出了內(nèi)部智能密鑰裝置中的、用于依照軟件智能密鑰單元的請求進(jìn)行操作的處理,其中,根據(jù)是否存在外部智能密鑰裝置,啟用或禁用操作。當(dāng)內(nèi)部智能密鑰裝置接收到來自軟件智能密鑰單元的請求消息時,處理自框1102開始;請求消息包含消息類型變量,表示軟件智能密鑰單元正在請求的操作的類型。在框1104期間,確定軟件智能密鑰單元是否已經(jīng)被內(nèi)部智能密鑰裝置驗證;可以通過利用內(nèi)部智能密鑰裝置在例如針對圖10B描述的先前驗證過程期間傳遞到軟件智能密鑰單元的會話密鑰成功地對接收的消息的內(nèi)容進(jìn)行解密,來進(jìn)行這樣的確定。如果軟件智能密鑰單元還沒有被驗證,則在框1106期間,內(nèi)部智能密鑰裝置生成適當(dāng)?shù)某鲥e響應(yīng),并且,在框1108期間,將該響應(yīng)消息返回到請求軟件智能密鑰單元,由此結(jié)束處理。
如果軟件智能密鑰單元已經(jīng)被驗證,則在框1110期間,內(nèi)部智能密鑰裝置確定外部智能密鑰裝置是否仍然與系統(tǒng)單元電氣接合。例如,該確定可以僅對特殊寄存器進(jìn)行檢查,當(dāng)系統(tǒng)單元與外部智能密鑰裝置之間的電連接已經(jīng)斷開時,該特殊寄存器應(yīng)該被清零。如果外部智能密鑰裝置沒有與系統(tǒng)單元電氣接合,則內(nèi)部智能密鑰裝置在框1106期間生成出錯響應(yīng),并且在框1108期間將該響應(yīng)消息返回到軟件智能密鑰單元,由此結(jié)束處理。
如果軟件智能密鑰單元已經(jīng)被驗證,并且外部智能密鑰裝置仍然與系統(tǒng)單元電氣接合,則如果可能,內(nèi)部智能密鑰裝置為軟件智能密鑰單元執(zhí)行所請求的功能???112和框1114示出了可以由內(nèi)部智能密鑰裝置提供的功能的例子;列舉的這些例子不意味著,在本發(fā)明的其他實施中其他功能不可用。在優(yōu)選實施例中,在相互驗證之后,只有當(dāng)外部智能密鑰裝置保持與內(nèi)部智能密鑰裝置電氣接合時,內(nèi)部智能密鑰裝置執(zhí)行以下功能頒發(fā)新的數(shù)字證書,其間起證書管理機關(guān)的作用;并且,利用內(nèi)部智能密鑰裝置的私鑰對軟件模塊簽名,其中,私鑰與可用公鑰證書對應(yīng)。應(yīng)該注意,本發(fā)明不允許用于檢索內(nèi)部智能密鑰裝置的私鑰的任何接口;因此,只有內(nèi)部智能密鑰裝置能夠利用其私鑰進(jìn)行簽名操作。
如果軟件智能密鑰單元已經(jīng)請求對嵌在請求消息內(nèi)的數(shù)據(jù)項進(jìn)行數(shù)字簽名,則在框1112期間,內(nèi)部智能密鑰裝置利用適當(dāng)?shù)乃借€,計算關(guān)于數(shù)據(jù)項的數(shù)字簽名,并且,將數(shù)字簽名(最好,與它返回的數(shù)據(jù)項的拷貝一起)插入響應(yīng)消息。如果軟件智能密鑰單元已經(jīng)請求數(shù)字證書,則在框1114期間,內(nèi)部智能密鑰裝置利用適當(dāng)?shù)乃借€生成數(shù)字證書,并且將數(shù)字證書插入響應(yīng)消息;數(shù)字證書可以包括由軟件智能密鑰單元在請求消息內(nèi)提供的各種識別信息。在已經(jīng)生成了適當(dāng)?shù)捻憫?yīng)消息之后(包括用適當(dāng)?shù)臅捗荑€對任何敏感數(shù)據(jù)加密),在框1108將響應(yīng)消息返回軟件智能密鑰單元,處理結(jié)束。
再次參照框1112,可以對任何類型的數(shù)字?jǐn)?shù)據(jù)項進(jìn)行簽名。再次參照圖4,應(yīng)用程序408代表并入了本發(fā)明的功能的許多不同類型的應(yīng)用程序。在一個實施例中,應(yīng)用程序可以是對JavaJAR文件進(jìn)行簽名的應(yīng)用服務(wù)器,所述文件或者已經(jīng)由應(yīng)用服務(wù)器直接生成,或者代表主機系統(tǒng)上的其他應(yīng)用程序。在某些情況下,新生成的JAR文件本身可以包含能夠調(diào)用主機系統(tǒng)的內(nèi)部智能密鑰裝置中的功能的軟件智能密鑰單元。
參照圖11B,流程圖示出了內(nèi)部智能密鑰裝置中的、用于依照軟件智能密鑰單元的請求進(jìn)行操作的處理,其中,不需要依據(jù)存在外部智能密鑰裝置來啟用操作。當(dāng)內(nèi)部智能密鑰裝置接收到來自軟件智能密鑰單元的請求消息時,處理自框1122開始;請求消息包含消息類型變量,表示軟件智能密鑰單元正在請求的操作的類型。在框1124期間,確定軟件智能密鑰單元是否已經(jīng)被內(nèi)部智能密鑰裝置驗證;可以通過利用內(nèi)部智能密鑰裝置在例如針對圖10B描述的先前驗證過程期間傳遞到軟件智能密鑰單元的會話密鑰成功地對接收的消息的內(nèi)容進(jìn)行解密,進(jìn)行這樣的確定。如果軟件智能密鑰單元還沒有被驗證,則在框1126期間,內(nèi)部智能密鑰裝置生成適當(dāng)?shù)某鲥e響應(yīng),并且,在框1128期間,將該響應(yīng)消息返回到請求軟件智能密鑰單元,由此結(jié)束處理。
如果軟件智能密鑰單元已經(jīng)被驗證,則如果可能,內(nèi)部智能密鑰裝置為軟件智能密鑰單元執(zhí)行請求的功能???130和框1132示出了可以由內(nèi)部智能密鑰裝置提供的功能的例子;列舉的這些例子不意味著,在本發(fā)明的其他實施方案中,其他功能不可用。在優(yōu)選實施例中,在不存在外部智能密鑰裝置的情況下,內(nèi)部智能密鑰裝置將執(zhí)行如下功能在給出所需密鑰的情況下進(jìn)行加密和解密;在給出證書的情況下對數(shù)字簽名進(jìn)行確認(rèn);對軟件智能密鑰單元進(jìn)行相互驗證;并且,允許由經(jīng)過相互驗證的軟件智能密鑰單元對存儲的敏感信息進(jìn)行讀/寫訪問。
如果軟件智能密鑰單元要求了對嵌在請求消息內(nèi)的主秘密進(jìn)行注冊,則在框1130期間,內(nèi)部智能密鑰裝置將主秘密與針對軟件智能密鑰單元的某些識別信息一起存儲,并且生成響應(yīng)消息。如果軟件智能密鑰單元要求檢索以前注冊的主秘密,則在框1132期間,內(nèi)部智能密鑰裝置根據(jù)軟件智能密鑰單元的身份,對主秘密進(jìn)行檢索。在已經(jīng)生成了適當(dāng)響應(yīng)信息之后(包括用適當(dāng)?shù)臅捗荑€對任何敏感數(shù)據(jù)加密),在框1128將響應(yīng)消息返回到軟件智能密鑰單元,處理結(jié)束。
以這樣的方式,如果需要由內(nèi)部智能密鑰裝置執(zhí)行特別敏感的操作,如頒發(fā)數(shù)字證書,則只需要保持外部智能密鑰裝置與內(nèi)部智能密鑰裝置電氣接合。如針對圖11B描述的,在不要求存在外部智能密鑰裝置的情況下,軟件智能密鑰單元能夠在軟件智能密鑰單元已經(jīng)與內(nèi)部智能密鑰裝置進(jìn)行相互驗證之后在內(nèi)部智能密鑰裝置中保存敏感信息,如加密密鑰;敏感信息只能由同一個軟件智能密鑰單元檢索。
這種方法是有利的,這是由于軟件智能密鑰單元可以以獨立于外部智能密鑰裝置的方式與內(nèi)部智能密鑰裝置進(jìn)行相互驗證。例如,這種方法允許以無人管理的模式啟動軟件程序,即,沒有人插入外部智能密鑰裝置;該程序可以用以前被簽名并被密封的軟件智能密鑰單元從內(nèi)部智能密鑰裝置中檢索任何敏感信息。軟件程序可以在無人干涉的情況下,從內(nèi)部智能密鑰裝置中檢索主秘密,從而對密碼以及其他經(jīng)過加密的配置信息進(jìn)行解密,以安全地完成啟動過程。
參照圖12,框圖示出了本發(fā)明的、用于保護(hù)主秘密的實施例。如上所述,可以用主秘密對存儲在數(shù)據(jù)處理系統(tǒng)上的秘密信息進(jìn)行加密,這使得需要保護(hù)主秘密。在現(xiàn)有技術(shù)的系統(tǒng)中,通常通過正在使用主秘密的主機系統(tǒng)外部的機制來保護(hù)主秘密。與典型的現(xiàn)有技術(shù)的系統(tǒng)相反,可以將本發(fā)明的實施例用于保護(hù)其中將使用主秘密的主機系統(tǒng)上的主秘密。
圖12與圖4相似;系統(tǒng)單元1202與外部智能密鑰裝置1204接口,并且,系統(tǒng)單元1202還包含內(nèi)部智能密鑰裝置1206。系統(tǒng)單元1202還支持軟件智能密鑰單元1208-1212。與圖4對照,圖12中的內(nèi)部智能密鑰裝置1206已經(jīng)被增強為包括主秘密注冊處1214,用于保護(hù)可以是密碼、加密密鑰或某種其他形式的主秘密。如以上針對圖11B中的框1130和1132簡要描述的,軟件智能密鑰單元1208-1212可以通過安全的請求/響應(yīng)機制來存儲內(nèi)部智能密鑰裝置中的主秘密。內(nèi)部智能密鑰裝置1206將來自軟件智能密鑰單元1208-1212的主秘密與用于請求軟件智能密鑰單元的識別信息一起存儲。例如,主秘密注冊處1214包含與主秘密1218相關(guān)聯(lián)的SWSKU標(biāo)識符1216;對SWSKU ID1216進(jìn)行的查表操作將使它與主秘密1218聯(lián)系起來?;蛘?,主秘密注冊處1214可以支持每個軟件智能密鑰單元的不止一個主秘密;適當(dāng)時,可以用每個請求的操作對一組主秘密進(jìn)行注冊或檢索。雖然圖11B只示出了注冊操作和檢索操作,但是,還可以支持與管理主秘密相關(guān)的其他操作,例如,刪除操作或覆寫操作。
如以上圖10B描述的,在驗證處理期間,可以在內(nèi)部智能密鑰裝置與軟件智能密鑰單元之間安全地傳遞附加信息,從而減少了用于交換信息的動作數(shù)量。為此,可以在驗證處理期間傳遞軟件智能密鑰單元的主秘密。由于真實的軟件智能密鑰單元是具有軟件智能密鑰單元的私鑰的拷貝的唯一實體,因此在驗證處理期間,應(yīng)該只有軟件智能密鑰單元能夠?qū)τ蓛?nèi)部智能密鑰裝置提供的、軟件智能密鑰單元的主秘密進(jìn)行解密。
參照圖13-15,框圖示出了多個外部智能密鑰裝置與多個內(nèi)部智能密鑰裝置之間的不同關(guān)系。前面出現(xiàn)的附圖的描述表示外部智能密鑰裝置與內(nèi)部智能密鑰裝置之間是唯一的一對一關(guān)系。參照圖13,可以通過使用多個外部智能密鑰裝置1304-1308中的任何一個來啟用唯一的內(nèi)部智能密鑰裝置1302。例如,一小組IT管理員中的每個管理員都可以有一個可以插入包含內(nèi)部智能密鑰裝置1302的特定服務(wù)器機器的可移動智能密鑰裝置。參照圖14,唯一的外部智能密鑰裝置1402可以啟用多個內(nèi)部智能密鑰裝置1404-1408中的任何一個。例如,一個IT管理員可以在多個服務(wù)器機器上使用單個可移動智能密鑰裝置,每個服務(wù)器機器只包含內(nèi)部智能密鑰裝置1404-1408中的一個。參照圖15,多個外部智能密鑰裝置1502-1506可以啟用多個內(nèi)部智能密鑰裝置1512-1516中的任何一個。例如,一小組IT管理員中的每個管理員都有一個可以插入許多不同服務(wù)器機器的可移動智能密鑰裝置,而許多不同服務(wù)器機器中的每一個只包含內(nèi)部智能密鑰裝置1512-1516中的一個。為了支持關(guān)于給定智能密鑰裝置的多對一關(guān)系或一對多關(guān)系,給定的智能密鑰裝置只需要為附加的對應(yīng)內(nèi)部智能密鑰裝置和/或外部智能密鑰裝置存儲或配置附加公鑰證書。
在對用于本發(fā)明的附加實施例進(jìn)行討論之前,先提供一些關(guān)于基于數(shù)字證書的信任關(guān)系的背景信息,用于評價本發(fā)明的附加實施例的運行效率和其他優(yōu)點。
參照圖16A-16C,每個框圖示出了一套典型的可信關(guān)系。參照圖16A,證書管理機關(guān)1602已經(jīng)給服務(wù)器1604和1606頒發(fā)了數(shù)字證書。如上所述,證書管理機關(guān)是可信實體,它代表其他實體頒發(fā)數(shù)字證書,其他實體可能是自然人用戶,也可能代表編程實體或硬件實體,如應(yīng)用程序或數(shù)據(jù)處理裝置。因此,可以由用戶,如圖2或圖3中示出的用戶202或302,代表服務(wù)器1604和1606;或者,服務(wù)器1604和1606可以是某些其他類型的編程實體,如圖4中示出的應(yīng)用程序408。證書管理機關(guān)1602已經(jīng)給服務(wù)器1604和1606頒發(fā)了數(shù)字證書。此后,如本發(fā)明所描述的,服務(wù)器1604和1606可以通過與證書管理機關(guān)1602進(jìn)行相互驗證,建立與證書管理機關(guān)1602的信任關(guān)系1608和1610。在某個時刻,在請求服務(wù)器1606提供的服務(wù)時,服務(wù)器1604可以將它的數(shù)字證書與對應(yīng)的私鑰的擁有證明,例如已經(jīng)用它的私鑰進(jìn)行過簽名的數(shù)據(jù)項,一起出示給服務(wù)器1606。由于服務(wù)器1602信任證書管理機關(guān)1602,因此,服務(wù)器1606可以通過檢驗從服務(wù)器1604接收的數(shù)字證書被證書管理機關(guān)1602進(jìn)行過簽名,來對服務(wù)器1604進(jìn)行驗證。反過來的情況也成立,并且,服務(wù)器1604可以對服務(wù)器1606進(jìn)行驗證。以這樣的方式,服務(wù)器1604和服務(wù)器1606能夠在它們自己之間建立信任關(guān)系。
參照圖16B,服務(wù)器1614已經(jīng)與服務(wù)器1606建立了信任關(guān)系1616。在該例中,沒有給信任關(guān)系1616提供基礎(chǔ),并且,服務(wù)器1604還沒有接受與服務(wù)器1614的信任關(guān)系1616。
參照圖16C,相似的標(biāo)號表示與圖16A中示出的要素相似的要素;圖16C示出了圖16A中示出的要素以外的要素。證書管理機關(guān)1620已經(jīng)給服務(wù)器1606和1622頒發(fā)了數(shù)字證書。假設(shè)證書管理機關(guān)1620已經(jīng)給服務(wù)器1606和1622頒發(fā)了數(shù)字證書,則認(rèn)為證書管理機關(guān)1620已經(jīng)分別建立了與服務(wù)器1606和1622的信任關(guān)系1624和1626。在服務(wù)器1622請求服務(wù)器1606提供的服務(wù)時,在某個時刻,服務(wù)器1622可以將它的數(shù)字證書出示給服務(wù)器1606。由于服務(wù)器1622信任證書管理機關(guān)1620,因此,服務(wù)器1606可以通過檢驗從服務(wù)器1622接收的數(shù)字證書被證書管理機關(guān)1620進(jìn)行過簽名,來對服務(wù)器1622進(jìn)行驗證。反過來的情況也成立,并且,服務(wù)器1622可以對服務(wù)器1606進(jìn)行驗證。以這樣的方式,服務(wù)器1622和服務(wù)器1606能夠在它們自己之間建立信任關(guān)系1628。
信任關(guān)系可以傳遞。如以上針對圖16B描述的,服務(wù)器1606已經(jīng)建立了與服務(wù)器1614的信任關(guān)系1616。但是,服務(wù)器1604沒有承認(rèn)信任關(guān)系1616,這可能是由于服務(wù)器1606沒能提供關(guān)于信任關(guān)系1616的基礎(chǔ)的足夠信息。不過在圖16C中,服務(wù)器1606能夠在已經(jīng)與服務(wù)器1606建立了信任關(guān)系的服務(wù)器當(dāng)中,提供關(guān)于其信任關(guān)系的足夠信息。在本例中,服務(wù)器1606向服務(wù)器1604提供關(guān)于信任關(guān)系1628的信息。在給定了服務(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ù)器可以按照上述的證書管理協(xié)議傳送證書。
以這樣的方式,服務(wù)器能夠在它們自己與證書管理機關(guān)之間形成復(fù)雜的、分級的信任關(guān)系??梢詫⒚總€證書管理機關(guān)看成樹結(jié)構(gòu)的根;尤其當(dāng)樹結(jié)構(gòu)內(nèi)的其他實體還起第二證書管理機關(guān)的作用時,證書管理機關(guān)有時被稱為根管理機關(guān)。使用多個根證書管理機關(guān)允許多個樹結(jié)構(gòu)重疊,如圖16C所示?;氐奖景l(fā)明,剩余的附圖示出了本發(fā)明的實施例的例子,其中,利用上面已經(jīng)描述的內(nèi)部和外部智能密鑰裝置的優(yōu)點來實施本發(fā)明,從而構(gòu)成信任模型。
參照圖17,框圖示出了按照本發(fā)明實施例的,由基于內(nèi)部智能密鑰裝置提供的信任的信任關(guān)系構(gòu)成的信任模型的例子。本發(fā)明的內(nèi)部智能密鑰裝置在充當(dāng)證書管理機關(guān)的過程中,提供了高度的可信度。如以上參考其他附圖所述的,內(nèi)部智能密鑰裝置提供用于保護(hù)信息的機制。如以上參考其他附圖所述的內(nèi)部智能密鑰裝置提供用于保護(hù)信息的機制。如以上針對圖11描述的,內(nèi)部智能密鑰裝置可以提供的功能之一是頒發(fā)數(shù)字證書。由于內(nèi)部智能密鑰裝置將被實施為數(shù)據(jù)處理系統(tǒng)內(nèi)的系統(tǒng)單元部分,例如主板上的專用芯片,因此,應(yīng)該在物理上對內(nèi)部智能密鑰裝置進(jìn)行保護(hù),使得惡意用戶難以實施不良企圖。此外,依據(jù)系統(tǒng)管理員可以通過使用外部智能密鑰裝置對內(nèi)部智能密鑰裝置頒發(fā)數(shù)字證書進(jìn)行控制的事實,提高了內(nèi)部智能密鑰裝置的可信度。因此,內(nèi)部智能密鑰裝置頒發(fā)數(shù)字證書的能力允許內(nèi)部智能密鑰裝置起信任模型的基礎(chǔ)的作用。
以這樣的方式,不同類型的實體,例如,不同種類的硬件和軟件計算資源能夠在它們自己與起基于硬件的證書管理機關(guān)的內(nèi)部智能密鑰裝置之間,形成復(fù)雜的、分級的信任關(guān)系。在這樣的信任模型中,信任的根在于由數(shù)據(jù)處理系統(tǒng)上的內(nèi)部智能密鑰裝置提供的證書管理機關(guān)功能。如圖17所示,信任關(guān)系的分級結(jié)構(gòu)可以表示為倒金字塔形,其中,內(nèi)部智能密鑰裝置位于倒金字塔的頂點,并且,計算資源形成了倒金字塔。在分布式數(shù)據(jù)處理環(huán)境中,如圖17所示,信任關(guān)系可以被看作重疊的倒金字塔的集合,其中,每個金字塔基于每臺機器上的內(nèi)部智能密鑰裝置。
在圖17中,信任模型的例子示出了兩個內(nèi)部智能密鑰裝置1702和1704,內(nèi)部智能密鑰裝置1702和1704分別包括證書管理機關(guān)模塊1706和1708,證書管理機關(guān)模塊1706和1708包含用于允許每個內(nèi)部智能密鑰裝置起證書管理機關(guān)作用的功能。內(nèi)部智能密鑰裝置1704已經(jīng)向二級軟件證書管理機關(guān)模塊1710頒發(fā)了證書,二級軟件證書管理機關(guān)模塊1710是在內(nèi)部智能密鑰裝置1704所在的同一個系統(tǒng)上執(zhí)行的軟件應(yīng)用程序。在數(shù)據(jù)處理系統(tǒng)內(nèi),分級結(jié)構(gòu)中的上面的軟件證書管理機關(guān)模塊,如二級軟件證書管理機關(guān)模塊1710,從信任分級結(jié)構(gòu)中的下面的軟件證書管理機關(guān)獲得權(quán)力,如數(shù)據(jù)處理系統(tǒng)上的內(nèi)部智能密鑰裝置即內(nèi)部智能密鑰裝置1704的證書管理機關(guān)功能提供的根信任。例如,內(nèi)部智能密鑰裝置1704可以對二級軟件證書管理機關(guān)模塊1710的數(shù)字證書進(jìn)行簽名,該二級軟件證書管理機關(guān)模塊1710利用對應(yīng)的私鑰對它頒發(fā)的數(shù)字證書簽名。以這樣的方式,二級軟件證書管理機關(guān)模塊1710起內(nèi)部智能密鑰裝置1704的下級證書管理機關(guān)的作用。這將反映在以內(nèi)部智能密鑰裝置1704為根的證書鏈中。在另一個例子中,內(nèi)部智能密鑰裝置1704可以對下級軟件證書管理機關(guān)模塊進(jìn)行簽名,而該下級軟件證書管理機關(guān)模塊本身又可以對另一個下級軟件證書管理機關(guān)模塊簽名。
內(nèi)部智能密鑰裝置1702已經(jīng)向?qū)嶓w1712-1718頒發(fā)了數(shù)字證書,而二級軟件證書管理機關(guān)1710已經(jīng)向?qū)嶓w1722-1728頒發(fā)了數(shù)字證書,由此在證書頒發(fā)者與證書頒發(fā)對象之間建立信任關(guān)系;實體1712-1718以及實體1722-1728可以是應(yīng)用程序或者某些其它類型的編程實體。此外,二級軟件證書管理機關(guān)1710已經(jīng)向?qū)嶓w1716頒發(fā)了數(shù)字證書,由此在這兩個實體之間建立信任關(guān)系。
盡管圖17代表了這樣的信任模型,其中所有計算資源可以包括用于它們自己彼此驗證的證書處理功能,但是,這些計算資源也需要被配置為包括證書處理功能。例如,如果圖17中的不同實體代表軟件應(yīng)用程序,則這些軟件應(yīng)用程序需要包括已經(jīng)被提供了唯一的公鑰證書并且具有唯一的、對應(yīng)的私鑰的模塊。
例如,獨立起作用、因而需要與其他資源進(jìn)行驗證操作的能力的每個計算資源可以例如以圖5中示出的方式具有嵌入的軟件智能密鑰單元,其中,應(yīng)用程序540包含SWSKU 538。應(yīng)用程序540包含SWSKU 538,SWSKU 538包括SWSKU私鑰550;SWSKU公鑰證書554包含與SWSKU私鑰550對應(yīng)的SWSKU公鑰556的拷貝,作為不對稱加密密鑰對。SWSKU 538還包含INSKD_SW公鑰證書558的拷貝。這里,應(yīng)用程序540是根基在INSKD 522的信任體系的一部分。利用嵌在SWSKU 538內(nèi)的信息和SWSKU 538的操作能力(functionalability),應(yīng)用程序540能夠與也信任INSKD 522的任何其他計算資源進(jìn)行驗證。因此,按照本發(fā)明,為了實現(xiàn)所有計算資源可以包括用于它們自己相互驗證的證書處理功能的信任模型,如果計算資源是數(shù)據(jù)處理裝置,則系統(tǒng)管理員需要確保每個計算資源包括內(nèi)部智能密鑰裝置,而如果計算資源是編程實體,則系統(tǒng)管理員需要確保每個計算資源包括軟件智能密鑰單元。
但是,在圖5所示的例子中,SWSKU 538被以某種方式嵌入應(yīng)用程序540。如以下描述的,可以用各種處理將需要的功能嵌入每個編程資源。
參照圖18,框圖示出了按照本發(fā)明實施例的,用于生成操作系統(tǒng)文件的數(shù)據(jù)處理系統(tǒng),其中,操作系統(tǒng)中的每個編程實體包含用于根據(jù)內(nèi)部智能密鑰裝置在信任體系中建立信任關(guān)系的功能。圖18與圖4相似;系統(tǒng)單元1802與外部智能密鑰裝置1804接口,并且,系統(tǒng)單元1802還包含內(nèi)部智能密鑰裝置1806。
在本例中,操作系統(tǒng)安裝應(yīng)用程序1808負(fù)責(zé)將操作系統(tǒng)文件安裝在包括系統(tǒng)單元1802的機器上。如以下更詳細(xì)說明的,在安裝過程中,操作系統(tǒng)安裝應(yīng)用程序1808從諸如磁帶或CD-ROM的分布介質(zhì)中讀取操作系統(tǒng)文件1812,并且生成完全可操作模塊1814。
應(yīng)該注意,盡管圖18示出了對操作系統(tǒng)文件執(zhí)行動作的例子,但是,另一個實施例可以應(yīng)用于任何類型的應(yīng)用程序文件。例如,可以對操作系統(tǒng)安裝應(yīng)用程序1808進(jìn)行概括,從而將其描述為用于任何給定的軟件應(yīng)用程序的安裝應(yīng)用程序,并且,可以用與操作系統(tǒng)文件1812相似的一般應(yīng)用程序文件代表給定的軟件應(yīng)用程序。在安裝處理完成之后,安裝應(yīng)用程序已經(jīng)生成了具有攜帶證書的軟件智能密鑰單元的應(yīng)用程序文件,與經(jīng)過簽名的操作系統(tǒng)文件1814相似。
盡管圖18示出了這樣的系統(tǒng)的例子,其中,對所有操作系統(tǒng)文件進(jìn)行保護(hù),使得只有適當(dāng)安裝的操作系統(tǒng)模塊可以在系統(tǒng)單元1802上執(zhí)行,上述的另一個實施例會對系統(tǒng)內(nèi)的所有軟件的執(zhí)行進(jìn)行限制。利用用于每個已經(jīng)安裝的應(yīng)用程序的適當(dāng)?shù)陌惭b處理,可以保護(hù)每個應(yīng)用程序模塊。以這樣的方式,系統(tǒng)單元1802可以只對通過由外部智能密鑰裝置的存在控制的處理安裝在系統(tǒng)上的軟件模塊限制軟件執(zhí)行。在本發(fā)明的基于Java的實施方式中,可以要求所有Java應(yīng)用程序包含在安裝應(yīng)用程序過程期間放入應(yīng)用程序中的軟件智能密鑰單元;如上所述,可以對所有JAR文件和Java數(shù)據(jù)包進(jìn)行密封,使得類加載器將強行從密封的JAR文件中裝載數(shù)據(jù)包中的所有代碼。
參照圖19,流程圖示出了按照本發(fā)明實施例的,用于生成操作系統(tǒng)模塊的處理,該操作系統(tǒng)模塊包含軟件智能密鑰單元,使得操作系統(tǒng)模塊能夠相互進(jìn)行驗證操作。處理自框1902開始,操作系統(tǒng)安裝應(yīng)用程序?qū)κ欠翊嬖谥辽僖粋€還沒有被處理過的附加操作系統(tǒng)模塊進(jìn)行檢查。如果不存在,則處理結(jié)束。如果存在,則在框1904中,操作系統(tǒng)安裝應(yīng)用程序從分布介質(zhì)中讀取操作系統(tǒng)模塊。例如,再次參照圖18,分布介質(zhì)上的操作系統(tǒng)模塊不完整;沒有進(jìn)一步處理,操作系統(tǒng)模塊不能被安裝。操作系統(tǒng)模塊1812并入了采用分布式版本的操作系統(tǒng)文件形式的存根例程(stub routine)或空模塊;如果安裝了并且在不進(jìn)一步修改的情況下執(zhí)行了這些操作系統(tǒng)文件,則操作系統(tǒng)服務(wù)將不能執(zhí)行驗證操作,由此使操作系統(tǒng)不能運行。
因此,在操作系統(tǒng)安裝應(yīng)用程序已經(jīng)從諸如磁帶或CD-ROM的分布介質(zhì)中讀取了操作系統(tǒng)模塊1812之后,在框1906期間,操作系統(tǒng)安裝應(yīng)用程序從當(dāng)前正在處理的操作系統(tǒng)模塊中刪除存根例程或空模塊。在框1908期間,操作系統(tǒng)安裝應(yīng)用程序生成不對稱加密密鑰對,然后,在框1910期間,請求本地系統(tǒng)單元上的內(nèi)部智能密鑰裝置代表當(dāng)前正在處理的操作系統(tǒng)模塊根據(jù)新生成的密鑰對頒發(fā)數(shù)字證書。以這樣的方式,操作系統(tǒng)安裝應(yīng)用程序的SWSKU模仿實體,代表該實體數(shù)字證書正在被請求并且被頒發(fā);或者,操作系統(tǒng)安裝應(yīng)用程序內(nèi)的軟件證書管理機關(guān)功能可以頒發(fā)數(shù)字證書,由此要求軟件證書管理機關(guān)的公鑰證書與內(nèi)部智能密鑰裝置的公鑰證書一起成為實體的證書鏈的一部分,代表該實體數(shù)字證書正在被請求并且被頒發(fā)??梢约僭O(shè),操作系統(tǒng)安裝操作受擁有外部智能密鑰裝置的系統(tǒng)管理員的控制;通過在操作系統(tǒng)安裝過程期間,使外部智能密鑰裝置與系統(tǒng)單元接合,系統(tǒng)管理員允許內(nèi)部智能密鑰裝置頒發(fā)數(shù)字證書,由此防止安裝過程被惡意用戶以某種方式欺騙。還可以假設(shè),每個操作系統(tǒng)模塊具有在覆蓋了所有操作系統(tǒng)模塊的命名空間(namespace)內(nèi)的唯一的標(biāo)識符,使得這個唯一的標(biāo)識符可以被并入數(shù)字證書。
然后,在框1912期間,操作系統(tǒng)安裝應(yīng)用程序生成軟件智能密鑰單元的實例。新生成的SWSKU并入了由代表新的SWSKU的操作系統(tǒng)安裝應(yīng)用程序生成的唯一的私鑰。新的SWSKU還并入了與由本地INSKD頒發(fā)的私鑰對應(yīng)的公鑰證書;此外,還可以包括構(gòu)成了用于新的SWSKU的數(shù)字證書鏈的一部分的任何其他公鑰證書。證書鏈代表穿過信任體系的信任路徑。雖然公鑰證書被自由授予并且可以自由獲得,但是,建立證書鏈在計算方面非常昂貴;因此,包括新的SWSKU可能需要用來代表其證書鏈的任何數(shù)字證書允許新的SWSKU在執(zhí)行時在驗證操作期間快速出示其證書鏈,由此使驗證操作更有效。
然后,在框1914期間,操作系統(tǒng)安裝應(yīng)用程序通過將新的SWSKU嵌入當(dāng)前正在被處理的操作系統(tǒng)模塊,即,取代被移除的存根或空模塊,生成完全可操作模塊,如圖18中的模塊1814中的一個。然后,處理返回到框1902,檢查是否還有未處理的操作系統(tǒng)模塊,如果沒有,則處理結(jié)束。當(dāng)操作系統(tǒng)模塊被處理時,按照需要,將新生成的SWSKU模塊并入經(jīng)過修改的操作系統(tǒng)模塊。部署的操作系統(tǒng)模塊和/或新嵌入的SWSKU模塊也可以被SWSKU 1810數(shù)字簽名,以顯示它們的真實性。
以這樣的方式,使所有操作系統(tǒng)文件能夠利用嵌入的、用于實現(xiàn)信任關(guān)系的功能,進(jìn)行驗證操作。在操作系統(tǒng)安裝過程期間,INSKD1806起頒發(fā)數(shù)字證書的證書管理機關(guān)的作用,或者,操作系統(tǒng)安裝應(yīng)用程序1808起給模塊1814頒發(fā)數(shù)字證書的證書管理機關(guān)的作用;在它們的證書鏈中,模塊1814中的每個模塊都具有它自己的私鑰以及對應(yīng)的公鑰證書、INSKD 1806的公鑰證書,并且,如果由于它起證書管理機關(guān)的作用而需要,模塊1814中的每個模塊還具有操作系統(tǒng)安裝應(yīng)用程序1808的公鑰證書。因此,每個模塊都具有維護(hù)(assert)基于INSKD 1806的信任體系的證書鏈。在運行時環(huán)境中,當(dāng)模塊1814中的第一模塊試圖向模塊1814中的第二模塊進(jìn)行驗證時,第一模塊會將其證書鏈與適當(dāng)?shù)膿碛凶C明、例如利用對應(yīng)的私鑰簽名的數(shù)字簽名,一起出示給第二模塊;由于第二模塊信任第一模塊的證書鏈基于的INSKD 1806,因此,第二模塊將驗證并且信任第一模塊。由于模塊1814中的每個模塊都信任INSKD 1806,并且能夠出示與INSKD 1806相關(guān)的證書,因此,每個模塊都可以信任其他相似的模塊,由此實現(xiàn)針對圖17描述的信任模型。
參照圖20,框圖示出了按照本發(fā)明實施例的,用于生成項目代碼(project code)的數(shù)據(jù)處理系統(tǒng),其中,每個編程實體包含用于根據(jù)內(nèi)部智能密鑰裝置在信任體系中建立信任關(guān)系的功能。圖20與圖4相似;系統(tǒng)單元2002與外部智能密鑰裝置2004接口,并且,系統(tǒng)單元2002還包含內(nèi)部智能密鑰裝置2006。
在本例中,軟件配置管理(software configuration management,SCM)應(yīng)用程序2008負(fù)責(zé)管理所有代碼模塊以及用于正在創(chuàng)建軟件應(yīng)用程序的特定項目的其他類型的文件。在軟件工程師創(chuàng)建項目文件時,項目文件被登記到SCM系統(tǒng)中,SCM系統(tǒng)能夠根據(jù)不符報告(discrepancy report)和項目時間線,跟蹤源代碼的版本。工程師將存根例程或空模塊并入項目模塊,使得能夠在不考慮完全實現(xiàn)驗證因素的情況下,測試并集成項目模塊的初級版本。
但是,當(dāng)需要生成可以分發(fā)給用戶或以其他方式部署在生產(chǎn)環(huán)境中的所謂生產(chǎn)級應(yīng)用程序時,SCM系統(tǒng)去除存根和空模塊,并且用嵌入的軟件智能密鑰單元替換它們,這些軟件智能密鑰單元就是軟件模塊本身。因此,當(dāng)進(jìn)行最后的編譯或鏈接操作時的某個時刻,SCM應(yīng)用程序2008中的SWSKU 2010生成不對稱密鑰對,連同包含新生成的密鑰對和對應(yīng)的數(shù)字證書的SWSKU模塊。在對項目模塊2012進(jìn)行處理時,按照需要,將新生成的SWSKU模塊鏈接到項目模塊2014中。SWSKU 2010還可以對生產(chǎn)級的項目模塊2014和/或新嵌入的SWSKU模塊進(jìn)行數(shù)字簽名,以顯示它們的真實性。
以這樣的方式,需要完成驗證操作的能力的項目應(yīng)用程序內(nèi)的每個計算資源都可以配備有能夠進(jìn)行驗證操作的軟件智能密鑰單元。但是,圖20中示出的情況與圖18中示出的情況明顯不同。在圖18中,由系統(tǒng)單元1802上的操作系統(tǒng)安裝應(yīng)用程序1808對操作系統(tǒng)模塊1814進(jìn)行修改。在優(yōu)選實施例中,已經(jīng)由系統(tǒng)單元1802上的INSKD1806對已經(jīng)頒發(fā)給經(jīng)過修改的操作系統(tǒng)模塊1816中的SWSKU的數(shù)字證書進(jìn)行了簽名。
因此,當(dāng)經(jīng)過修改的操作系統(tǒng)模塊正在運行時環(huán)境中執(zhí)行時,為經(jīng)過修改的操作系統(tǒng)模塊頒發(fā)數(shù)字證書的證書管理機關(guān)是運行時環(huán)境的一部分。這與圖20中呈現(xiàn)的情況不同。當(dāng)經(jīng)過修改的項目模塊正在運行時環(huán)境中執(zhí)行時,系統(tǒng)單元的內(nèi)部智能密鑰裝置已經(jīng)對嵌在經(jīng)過修改的項目模塊的SWSKU中的數(shù)字證書進(jìn)行了簽名,其中,在系統(tǒng)單元上,創(chuàng)建了項目應(yīng)用程序的生產(chǎn)版本。換句話說,給經(jīng)過修改的項目模塊中的SWSKU頒發(fā)數(shù)字證書的證書管理機關(guān)不是運行時環(huán)境的一部分。當(dāng)經(jīng)過修改的項目模塊試圖完成與另一個經(jīng)過修改的項目模塊的驗證操作時,由于經(jīng)過修改的項目模塊中的每一個信任系統(tǒng)單元的內(nèi)部智能密鑰裝置,因此,驗證操作可以完成,其中,在系統(tǒng)單元上,創(chuàng)建了項目應(yīng)用程序的生產(chǎn)版本。但是,當(dāng)經(jīng)過修改的項目模塊試圖完成與操作系統(tǒng)模塊,例如操作系統(tǒng)模塊1814中的一個的驗證操作時,由于操作系統(tǒng)模塊不信任起用于操作系統(tǒng)模塊的數(shù)字證書的證書管理機關(guān)作用的內(nèi)部智能密鑰裝置,因此驗證操作失敗。因此,需要用于對運行時環(huán)境中的信任關(guān)系進(jìn)行擴展的機制。
參照圖21,流程圖示出了按照本發(fā)明實施例的,用于對內(nèi)部智能密鑰裝置的證書鏈進(jìn)行擴展的處理。如上所述,在運行時環(huán)境內(nèi)正在執(zhí)行的某些模塊可以具有建立信任關(guān)系的功能,該信任關(guān)系基于在運行時環(huán)境內(nèi)存在的內(nèi)部智能密鑰裝置;由于對這些模塊來說,內(nèi)部智能密鑰裝置起證書管理機關(guān)的作用,因此,由于內(nèi)部智能密鑰裝置處在信任體系的根部使得這些模塊能夠出示便于檢驗的數(shù)字證書鏈。當(dāng)應(yīng)用程序被安裝在支持本發(fā)明的內(nèi)部智能密鑰裝置的運行時環(huán)境中時,由于根證書管理機關(guān)不同,因此,應(yīng)用程序模塊可以具有在還沒有能力與其他模塊建立信任關(guān)系的應(yīng)用程序模塊之間建立信任關(guān)系的功能;其他模塊不具有相信由所述應(yīng)用程序模塊出示的數(shù)字證書的能力。
以下針對圖21描述的處理提供了用于允許這些應(yīng)用程序模塊將它們自己建立為可信的機制。最好當(dāng)正在包括內(nèi)部智能密鑰裝置的運行時環(huán)境內(nèi)安裝應(yīng)用程序模塊時執(zhí)行這個處理,盡管可以在在運行時環(huán)境內(nèi)執(zhí)行應(yīng)用程序模塊之前的任何時候?qū)\行時環(huán)境進(jìn)行修改。然而,在本例中,不需要對應(yīng)用程序模塊進(jìn)行修改。因此,以下描述的處理與針對圖19描述的處理不同,在針對圖19描述的處理中,需要對操作系統(tǒng)模塊進(jìn)行修改。
當(dāng)內(nèi)部智能密鑰裝置接收到來自安裝應(yīng)用程序或者某些其他形式的管理實用程序中的軟件智能密鑰單元的請求消息時,處理從框2102開始,其中,請求消息表示對維護(hù)(assert)外來的、即本地運行時環(huán)境之外的內(nèi)部智能密鑰裝置的根數(shù)字證書的請求。例如,管理實用程序可以訪問伴隨在本地運行時環(huán)境內(nèi)已經(jīng)安裝或正在安裝的應(yīng)用程序模塊的生產(chǎn)版本的配置文件。這些配置文件包含由外來內(nèi)部智能密鑰裝置使用的數(shù)字證書的拷貝,以便例如以與針對圖20描述的方式相似的方式,為嵌在應(yīng)用程序模塊內(nèi)的軟件智能密鑰單元生成數(shù)字證書。換句話說,由制作正在安裝的應(yīng)用程序的銷售商的運行時環(huán)境的外來內(nèi)部智能密鑰裝置使用的公鑰證書的拷貝可以伴隨配置文件。在當(dāng)前運行時環(huán)境的內(nèi)部智能密鑰裝置沒有檢查共同信任的實體的能力的情況下,提出維護(hù)外來內(nèi)部智能密鑰裝置的數(shù)字證書的請求;由于每個內(nèi)部智能密鑰裝置起它自己的信任體系內(nèi)的根受信實體的作用,因此,沒有其他共同信任的實體,在這個實體上,可以為當(dāng)前運行時環(huán)境的內(nèi)部智能密鑰裝置和外來內(nèi)部智能密鑰裝置找到信任。因此,維護(hù)數(shù)字證書的處理必須是為了完成任務(wù)而提供信任的安全過程。
為了確保對維護(hù)外來內(nèi)部智能密鑰裝置的數(shù)字證書的操作的信任,在框2104期間,確定內(nèi)部智能密鑰裝置是否已經(jīng)驗證了請求應(yīng)用程序的軟件智能密鑰單元;通過利用在驗證過程之前,例如,針對圖10B描述的由內(nèi)部智能密鑰裝置傳遞給軟件智能密鑰單元的會話密鑰,成功地對接收的消息的內(nèi)容進(jìn)行解密,可以進(jìn)行該確定。如果軟件智能密鑰單元還沒有被驗證,則在框2106期間,內(nèi)部智能密鑰裝置生成適當(dāng)?shù)某鲥e響應(yīng),并且,在框2108期間,將響應(yīng)消息返回到請求軟件智能密鑰單元,由此結(jié)束處理。
如果軟件智能密鑰單元已經(jīng)被驗證,則在框2110期間,內(nèi)部智能密鑰裝置確定外部智能密鑰裝置是否仍然與系統(tǒng)單元電氣接合。以這樣的方式,整個過程被確定為在具有執(zhí)行該過程的特權(quán)的系統(tǒng)管理員的控制下。如果外部智能密鑰裝置沒有與系統(tǒng)單元電氣接合,則內(nèi)部智能密鑰裝置在框2106生成出錯響應(yīng),并且,在框2108,將響應(yīng)消息返回到軟件智能密鑰單元,由此結(jié)束處理。
如果軟件智能密鑰單元已經(jīng)被驗證,并且外部智能密鑰裝置仍然與系統(tǒng)單元電氣接合,則內(nèi)部智能密鑰裝置為軟件智能密鑰單元執(zhí)行請求的功能。在框2112期間,內(nèi)部智能密鑰裝置將外來內(nèi)部智能密鑰裝置的所維護(hù)的根證書添加到信任的根證書的表格或列表中,這可能包含前面已經(jīng)維護(hù)的多個證書。在已經(jīng)在框2114期間建立了適當(dāng)?shù)捻憫?yīng)消息之后,在框2108將響應(yīng)消息返回到軟件智能密鑰單元,由此結(jié)束處理。
參照圖22,框圖示出了按照本發(fā)明實施例的信任模型的例子,該信任模型由信任關(guān)系構(gòu)成,而信任關(guān)系基于由單個本地內(nèi)部智能密鑰裝置提供的信任,這個單個本地內(nèi)部智能密鑰裝置保持包含用于外來內(nèi)部智能密鑰裝置的多個根證書的證書鏈。如針對圖5和其他
的,內(nèi)部智能密鑰裝置擁有至少一個私鑰及其對應(yīng)的公鑰證書;相似地,圖22示出了包含數(shù)字證書2204的內(nèi)部智能密鑰裝置2202。如針對圖21說明的,需要系統(tǒng)管理員將附加的根證書維護(hù)到特定運行時環(huán)境的信任體系中;圖22示出了數(shù)字證書2206和2208以前已經(jīng)被維護(hù),并且現(xiàn)在被存儲在內(nèi)部智能密鑰裝置2202中,作為其信任的證書鏈的一部分。
如上所述,當(dāng)應(yīng)用程序模塊被安裝到支持本發(fā)明的內(nèi)部智能密鑰裝置的運行時環(huán)境中時,由于根證書管理機關(guān)不同,因此,給應(yīng)用程序模塊配備了這樣的功能,即,用于在沒有能力在運行時環(huán)境中與其他模塊建立信任關(guān)系的應(yīng)用程序模塊之間建立信任關(guān)系??梢哉J(rèn)為應(yīng)用程序模塊駐留在一個信任體系中而其他模塊駐留在一個不同信任體系內(nèi)。
為了解決這個問題,針對圖21描述的處理說明了用于在單個運行時環(huán)境內(nèi)引入多個信任體系的機制。針對圖22,對這個解決措施進(jìn)一步進(jìn)行了說明。通過接受數(shù)字證書2206和2208,內(nèi)部智能密鑰裝置2202隱含地形成了與外來內(nèi)部智能密鑰裝置的信任關(guān)系2210和2212,所述外來內(nèi)部智能密鑰裝置與接受的數(shù)字證書有關(guān)。以這樣的方式,內(nèi)部智能密鑰裝置2202分別利用根證書2204、2206和2208支持信任體系2214、2216和2218。假定根證書2206和2208可用于對應(yīng)用程序模塊的數(shù)字證書進(jìn)行確認(rèn),其中,這些數(shù)字證書由根證書2206和2208所代表的外來內(nèi)部智能密鑰裝置簽名,則運行時環(huán)境中的其他模塊能夠形成橋接該信任體系的信任關(guān)系2220和2222。
參照圖23,流程圖示出了用于獲得由本地內(nèi)部智能密鑰裝置保持的當(dāng)前根證書鏈的處理。圖21示出了系統(tǒng)管理員通過將根證書存儲在本地智能密鑰裝置內(nèi),將根證書維護(hù)到特定運行時環(huán)境的信任體系中的處理,而圖23示出了用于從本地內(nèi)部智能密鑰裝置中獲得當(dāng)前根證書鏈的處理。當(dāng)內(nèi)部智能密鑰裝置從軟件智能密鑰單元接收請求消息從而請求由本地內(nèi)部智能密鑰裝置保持的當(dāng)前根證書鏈時,處理自框2302開始。然后,在框2304期間,本地內(nèi)部智能密鑰裝置將包含當(dāng)前根證書鏈的響應(yīng)消息返回到請求軟件智能密鑰單元,并且,處理結(jié)束。本地內(nèi)部智能密鑰裝置可以要求請求軟件智能密鑰單元先前已經(jīng)對本地內(nèi)部智能密鑰裝置進(jìn)行過驗證。圖11或圖21示出了只有當(dāng)系統(tǒng)管理員已經(jīng)利用外部智能密鑰裝置啟用操作時在內(nèi)部智能密鑰裝置中進(jìn)行的操作,與圖11或圖21相反,圖23中示出的處理不要求通過外部智能密鑰裝置來啟用操作。
參照圖24,流程圖示出了用于確定來自外來內(nèi)部智能密鑰裝置的數(shù)字證書是否可信的處理。某些時候,模塊請求訪問受運行時環(huán)境內(nèi)的另一模塊控制的計算資源。假設(shè)兩個模塊還沒有預(yù)先完成相互驗證操作,則兩個模塊試圖完成相互驗證操作,例如,與針對圖9A-9B描述的相似的相互驗證操作。在本例中,可以假設(shè)正在對希望的計算資源進(jìn)行控制的模塊包括在基于本地內(nèi)部智能密鑰裝置的本地信任體系內(nèi),而請求模塊包括在基于外來內(nèi)部智能密鑰裝置的信任體系內(nèi);但是,先前已經(jīng)將用于外來內(nèi)部智能密鑰裝置的根證書維護(hù)到本地智能密鑰裝置中。
當(dāng)控制模塊和請求模塊已經(jīng)開始驗證操作時,處理自框2402開始。然后,在框2404期間,控制模塊很可能直接從請求模塊獲得請求模塊的數(shù)字證書;來自數(shù)字證書的公鑰被用于確定請求模塊是否擁有與公鑰對應(yīng)的私鑰,盡管圖24中沒有示出這些動作。
為了確定請求模塊的數(shù)字證書上的數(shù)字簽名的真實性,控制模塊需要外來內(nèi)部智能密鑰裝置的數(shù)字證書的可信拷貝,由此提供與用于生成數(shù)字證書的私鑰的對應(yīng)的公鑰的拷貝。盡管請求模塊擁有用于已經(jīng)頒發(fā)了請求模塊的數(shù)字證書的外來內(nèi)部智能密鑰裝置的數(shù)字證書的拷貝,由此允許請求模塊向控制模塊提供外來內(nèi)部智能密鑰裝置的數(shù)字證書的拷貝,但是,控制模塊需要用于獲得外來內(nèi)部智能密鑰裝置的數(shù)字證書的拷貝的獨立并且可信的方法。在試圖獲得外來內(nèi)部智能密鑰裝置的數(shù)字證書的拷貝的過程中,在框2406期間,控制模塊獲得當(dāng)前正在由本地內(nèi)部智能密鑰裝置保持的根證書鏈。
然后,在框2408期間,控制模塊檢驗用于外來內(nèi)部智能密鑰裝置的根證書是否在檢索的根證書鏈中。如上所述,在圖24所示的例子中,可以假設(shè)先前已經(jīng)將用于外來內(nèi)部智能密鑰裝置的根證書維護(hù)到本地智能密鑰裝置中。因此,框2406導(dǎo)致返回包括外來內(nèi)部智能密鑰裝置的數(shù)字證書的拷貝的根證書鏈。
然后,在框2410期間,控制模塊通過檢驗請求模塊的數(shù)字證書上的數(shù)字簽名,檢驗請求模塊的數(shù)字證書的真實性,并且,處理結(jié)束。假設(shè)數(shù)字簽名經(jīng)過驗證,則控制模塊可以繼續(xù)進(jìn)行驗證操作。
以下針對圖25和圖26,提供本發(fā)明的另一個實施例,這個實施方案依賴于前面已經(jīng)描述的本發(fā)明的各個方面。如上所述,數(shù)據(jù)處理系統(tǒng)內(nèi)的硬件安全單元,如內(nèi)部智能密鑰裝置可以起證書管理機關(guān)的作用。如針對圖17描述的,內(nèi)部智能密鑰裝置的證書管理機關(guān)功能可以被看作信任模型的根,其中,數(shù)據(jù)處理系統(tǒng)內(nèi)的計算資源是信任關(guān)系體系內(nèi)的實體。像圖17中那樣,信任關(guān)系體系可以用倒金字塔代表,其中,內(nèi)部智能密鑰裝置處在倒金字塔的頂點,而計算資源構(gòu)成了倒金字塔。如針對圖18-20描述的,硬件安全單元的證書管理機關(guān)功能可以用于對軟件加密模塊、即軟件安全單元或軟件智能密鑰單元進(jìn)行簽名,并且,還向軟件加密模塊頒發(fā)數(shù)字證書。如以上簡要描述的,可以對軟件加密模塊的軟件包進(jìn)行密封,以便防止代碼被篡改。
參照圖25,數(shù)據(jù)流圖示出了按照本發(fā)明一個實施方案的,在用于實現(xiàn)硬件輔助信任模型的數(shù)據(jù)處理系統(tǒng)內(nèi)的實體,其中,硬件輔助信任模型可以用于保證軟件模塊的完整性。在描述圖25之前,在Java運行時環(huán)境內(nèi),對特定例子進(jìn)行描述。在已經(jīng)對包括某種形式的軟件加密單元的Java應(yīng)用程序的類文件進(jìn)行密封以防止代碼被篡改之后,利用類加載器提高程序完整性。為了確保類加載器可以被信任,類加載器同樣需要被簽名并且被密封。為了保證類加載器的完整性,用于裝入類加載器的加載器,即,操作系統(tǒng)程序加載器,需要以某種方式被簽名并且被密封。為了保證操作系統(tǒng)程序加載器的完整性,用于裝入操作系統(tǒng)程序的加載器,即,數(shù)據(jù)處理系統(tǒng)的ROM中的引導(dǎo)加載器需要被簽名并且被密封。
對于更一般的、非Java環(huán)境,在已經(jīng)將軟件加密模塊的軟件數(shù)據(jù)包密封以防止代碼篡改之后,利用操作系統(tǒng)程序加載器提高程序完整性。為了確保操作系統(tǒng)程序加載器可以被信任,操作系統(tǒng)程序加載器同樣需要被簽名并且被密封。為了保證操作系統(tǒng)程序加載器的完整性,用于裝入操作系統(tǒng)程序加載器的加載器、即系統(tǒng)ROM中的引導(dǎo)加載器,也需要被簽名并且被密封。這些需要和操作反映在圖25中。
引導(dǎo)ROM 2502已經(jīng)被內(nèi)部智能密鑰裝置2504的私鑰簽名;這可以發(fā)生在制造過程期間,在利用閃速存儲器更新或者以某種其他方式對引導(dǎo)ROM進(jìn)行配置的針對特定地點的安裝過程期間。此后,引導(dǎo)ROM 2502能夠執(zhí)行與內(nèi)部智能密鑰裝置2504的相互驗證過程,由此在引導(dǎo)ROM 2502與內(nèi)部智能密鑰裝置2504之間建立信任關(guān)系。
操作系統(tǒng)程序加載器2506也已經(jīng)被內(nèi)部智能密鑰裝置2504的私鑰進(jìn)行了簽名;這可以按照針對圖18和圖19描述的處理發(fā)生。借助于內(nèi)部智能密鑰裝置2504的幫助,通過對操作系統(tǒng)程序加載器2506的、經(jīng)過密封的程序模塊上的簽名進(jìn)行確認(rèn),引導(dǎo)ROM 2502能夠保證操作系統(tǒng)程序加載器2506的完整性,其中,由于內(nèi)部智能密鑰裝置2504通過完成相互驗證過程,已經(jīng)與引導(dǎo)ROM 2502建立了信任關(guān)系,因此內(nèi)部智能密鑰裝置2504幫助引導(dǎo)ROM 2502。此后,操作系統(tǒng)程序加載器2506能夠與內(nèi)部智能密鑰裝置2504進(jìn)行相互驗證過程,由此在操作系統(tǒng)程序加載器2506與內(nèi)部智能密鑰裝置2504之間建立信任關(guān)系。
應(yīng)用程序模塊2508已經(jīng)被內(nèi)部智能密鑰裝置2504的私鑰,或者被操作系統(tǒng)中的、起證書管理機關(guān)作用的軟件加密單元,利用起根證書管理機關(guān)作用的內(nèi)部智能密鑰裝置2504進(jìn)行了簽名;這可以按照針對圖20描述的處理發(fā)生。操作系統(tǒng)程序加載器2506能夠借助于內(nèi)部智能密鑰裝置2504,通過對經(jīng)過密封的應(yīng)用程序模塊上的簽名進(jìn)行確認(rèn),保證應(yīng)用程序模塊2508的完整性,其中,由于內(nèi)部智能密鑰裝置2504通過完成相互驗證過程已經(jīng)與操作系統(tǒng)程序加載器2506建立了信任關(guān)系,因此內(nèi)部智能密鑰裝置2504幫助操作系統(tǒng)程序加載器2506。此后,為了按需要信任關(guān)系,應(yīng)用程序模塊2508能夠與內(nèi)部智能密鑰裝置2504、操作系統(tǒng)模塊2510或其他應(yīng)用程序模塊2512進(jìn)行相互驗證過程。
參照圖26,流程圖示出了按照本發(fā)明的實施方案的,用于保證軟件模塊的完整性的處理。在數(shù)據(jù)處理系統(tǒng)啟動期間,當(dāng)通過數(shù)據(jù)處理系統(tǒng)內(nèi)的內(nèi)部智能密鑰裝置的幫助,數(shù)據(jù)處理系統(tǒng)內(nèi)的硬件電路對引導(dǎo)ROM上的數(shù)字簽名進(jìn)行確認(rèn)時,處理自框2602開始。假設(shè)已經(jīng)成功地對引導(dǎo)ROM上的數(shù)字簽名進(jìn)行確認(rèn),則在框2604期間,數(shù)據(jù)處理系統(tǒng)上的啟動硬件將數(shù)據(jù)處理系統(tǒng)的引導(dǎo)ROM激活,由此,在內(nèi)部智能密鑰裝置已經(jīng)對引導(dǎo)ROM進(jìn)行確認(rèn)之前,防止引導(dǎo)ROM進(jìn)行多種類型的操作,或者,在另外的實施方案中,在內(nèi)部智能密鑰裝置已經(jīng)對引導(dǎo)ROM進(jìn)行確認(rèn)之前,防止引導(dǎo)ROM進(jìn)行任何操作。
在隨后的某個時刻,可以假設(shè)仍然在數(shù)據(jù)處理系統(tǒng)的啟動過程期間,在框2606期間,引導(dǎo)ROM檢驗對數(shù)據(jù)處理系統(tǒng)進(jìn)行進(jìn)一步初始化所要求的經(jīng)過簽名的/經(jīng)過密封的操作系統(tǒng)模塊上的數(shù)字簽名。假設(shè)引導(dǎo)ROM能夠?qū)Σ僮飨到y(tǒng)模塊上的數(shù)字簽名進(jìn)行確認(rèn),則在框2608期間,引導(dǎo)ROM裝入操作系統(tǒng)模塊,并且,在框2610期間,引導(dǎo)ROM向操作系統(tǒng)模塊傳遞執(zhí)行控制。
在隨后的某個時刻,例如,響應(yīng)于數(shù)據(jù)處理系統(tǒng)的用戶的請求,在框2612期間,操作系統(tǒng)內(nèi)的程序加載器對數(shù)據(jù)處理系統(tǒng)上正在被調(diào)用的、經(jīng)過簽名的/經(jīng)過密封的應(yīng)用程序模塊上的數(shù)字簽名進(jìn)行檢驗。假設(shè)程序加載器能夠?qū)?yīng)用程序模塊上的數(shù)字簽名進(jìn)行確認(rèn),則在框2614期間,則程序加載器裝入應(yīng)用程序模塊,并且,在框2616期間,向應(yīng)用程序模塊傳遞執(zhí)行控制,由此結(jié)束處理。以這樣的方式,可以利用本發(fā)明來確保在數(shù)據(jù)處理系統(tǒng)上執(zhí)行的所有軟件模塊的完整性;在數(shù)據(jù)處理系統(tǒng)上執(zhí)行的所有軟件必須被內(nèi)部智能密鑰裝置或者被內(nèi)部智能密鑰裝置信任的軟件證書管理機關(guān)模塊簽名。通過軟件證書管理機關(guān)模塊與內(nèi)部智能密鑰裝置之間的相互驗證,并且,通過將軟件證書管理機關(guān)模塊的證書添加到內(nèi)部智能密鑰裝置信任的證書的列表中的配置處理,建立信任關(guān)系。如針對圖25部分描述的以及針對前面的附圖更充分描述的,在通過使用已經(jīng)預(yù)先嵌入各個實體中的數(shù)字證書的相互驗證過程來執(zhí)行軟件期間,建立適當(dāng)?shù)男湃侮P(guān)系。
參照圖27,框圖示出了按照本發(fā)明實施例的一部分?jǐn)?shù)據(jù)處理系統(tǒng),該數(shù)據(jù)處理系統(tǒng)接受可移動存儲介質(zhì),從而啟用數(shù)據(jù)處理系統(tǒng)內(nèi)的硬件安全單元中的加密功能。本發(fā)明將可移動存儲介質(zhì),例如但不限于光盤(CD)、數(shù)字多用或視頻盤(DVD)或磁帶,與智能密鑰裝置結(jié)合起來使用,可移動存儲介質(zhì)與智能密鑰裝置都持有加密密鑰。利用加密密鑰啟用加密功能。系統(tǒng)單元2702與介質(zhì)讀取裝置接口,在本例中,介質(zhì)讀取裝置為CD裝置2704,它被安裝在系統(tǒng)單元2702中,并且能夠讀取CD 2712。如上所述,可以使用目前可以買到的以及尚在開發(fā)的、其他類型的介質(zhì)讀取裝置以及對應(yīng)的介質(zhì),例如但不限于各種類型的CD、DVD和磁帶裝置中的任何一種。在許多可能配置中的一種配置中,CD裝置2704可以被耦合到系統(tǒng)單元2702,對于計算領(lǐng)域的技術(shù)人員來說,這是顯而易見的。例如,CD讀取器可以被安裝在系統(tǒng)單元2702的外部或內(nèi)部。
系統(tǒng)單元2702包含內(nèi)部智能密鑰裝置(INSKD)2706,后者是主機系統(tǒng)2702的整體部分,即,被安裝在系統(tǒng)2702內(nèi),例如主板(沒有示出)上。最好,內(nèi)部智能密鑰裝置2706是經(jīng)過封裝的、難以從主機系統(tǒng)移除的集成電路。盡管它被描述為硬件安全單元或裝置,但是,它也可以包括用于執(zhí)行指令的處理單元。在本例中,CD 2712和INSKD2706是配對的,因而CD 2712啟用INSKD 2706的功能。CD 2712由系統(tǒng)管理人員,例如IT管理員保管。當(dāng)IT管理員需要啟用只能由主機上的匹配裝置、即INSKD 2706執(zhí)行的某些加密功能時,CD 2712被插入與主機如系統(tǒng)單元2702耦合的CD裝置2704。換句話說,當(dāng)CD 2712被插入CD裝置2704時,某些加密功能可用。由于只有INSKD2706包含用于生成某個加密輸出的一個或多個特定加密私鑰,因此,只有INKSD 2706能夠生成IT管理員需要的結(jié)果。
系統(tǒng)單元2702上的應(yīng)用程序2708具有與CD 2712和INSKD2706類似的軟件智能密鑰單元(SWSKU)2710。應(yīng)用程序2708利用SWSKU 2710執(zhí)行某些功能,以下將對此進(jìn)行更詳細(xì)的說明。系統(tǒng)單元2702還包括CD裝置驅(qū)動器2714,它是對CD裝置2704的工作進(jìn)行控制的邏輯。CD裝置驅(qū)動器2704的標(biāo)準(zhǔn)的非加密功能為計算領(lǐng)域的技術(shù)人員所熟悉。以下將結(jié)合圖29,對INKSD 2706、應(yīng)用程序2708、SWSKU 2710和CD裝置驅(qū)動器2714進(jìn)行更詳細(xì)的說明。
參照圖28,框圖示出了啟用內(nèi)部智能密鑰裝置內(nèi)的加密功能的可移動存儲介質(zhì)。本例中的可移動存儲介質(zhì)為CD 2712(圖27)。CD 2712包括用于加密引擎2810、CD私鑰2812、內(nèi)部智能密鑰裝置(INSKD)公鑰2814、CD公鑰證書2816和數(shù)字簽名2816的存儲器,其中,CD公鑰證書2816本身包含CD公鑰2818。以下將結(jié)合圖29,對加密引擎2810、CD私鑰2812、INSKD公鑰2814、CD公鑰證書2816、CD公鑰2818和數(shù)字簽名2820進(jìn)行更詳細(xì)的描述。如以下結(jié)合圖29描述的,INSKD公鑰2814為INSKD公鑰2930的拷貝。由于CD、如CD2712能夠被克隆,因此系統(tǒng)的安全性取決于CD 2712的安全存儲,即,CD 2712必須被存儲在安全的地方,以防止CD 2712被克隆。
在一個實施例中,CD裝置2704(圖27)從CD 2712中讀取并向CD 2712寫入。在這種情況下,系統(tǒng)管理員可以利用系統(tǒng)單元2702和CD裝置2704,將包含在CD 2712中的信息寫到2712。在另一個實施例中,CD裝置2704只能讀取CD 2712。在這種情況下,系統(tǒng)管理員在利用CD 2712啟用INKSD 2706(圖27)的加密功能之前,利用單獨的裝置(沒有示出)對CD 2712進(jìn)行一次配置。
參照圖29,框圖更詳細(xì)地示出了圖27的系統(tǒng)單元。如以上結(jié)合圖27說明的,按照本發(fā)明的實施例,系統(tǒng)單元2702包含INKSD 2706(圖27),INKSD 2706與介質(zhì)讀取裝置或CD裝置2704(圖27)一道利用CD 2712(圖27)啟用INKSD 2706內(nèi)的加密功能。除了圖29包括關(guān)于各種組件和存儲在組件內(nèi)的加密密鑰的附加細(xì)節(jié)之外,圖29與圖27相似。
如以上結(jié)合圖27說明的,由裝置驅(qū)動器控制的介質(zhì)讀取器對諸如CD、DVD、磁帶等外部存儲介質(zhì)或任何其他外部存儲介質(zhì)進(jìn)行讀取,并且可能進(jìn)行寫入。在本例中,在CD裝置驅(qū)動器2714(圖27)的控制下,CD裝置2704從CD 2712中讀取并向CD 2712寫入。CD 2712由系統(tǒng)管理員控制并用作硬件安全令牌??梢詫D 2712插入用于使CD 2712耦合到系統(tǒng)單元2702的CD裝置2704中。CD 2712和CD裝置2704通過CD讀取器驅(qū)動器2714與系統(tǒng)單元2702接合并通信,以便交換代表數(shù)字信息的電信號。以上結(jié)合圖28,對CD 2712的邏輯圖進(jìn)行了說明。
INKSD 2706包含加密引擎2924,用于利用存儲在INKSD 2706中的各種數(shù)據(jù)項執(zhí)行加密功能。以這樣的方式存儲INSKD私鑰2926,使得它不能被INKSD 2706外部的實體讀取或訪問。INKSD 2706不包含用于發(fā)送或以其他方式提供INSKD私鑰2926的拷貝的功能。INSKD公鑰證書2928包含INSKD公鑰2930的拷貝,INSKD公鑰2930與INSKD私鑰2926對應(yīng),作為不對稱加密密鑰對。INKSD 2706還包含CD公鑰證書2932的拷貝,CD公鑰證書2932本身包含CD公鑰2933的拷貝。CD公鑰2933是CD公鑰2818(圖28)的拷貝,二者都與CD私鑰2812(圖28)對應(yīng),作為不對稱加密密鑰對。CD公鑰證書2932可以被寫入INSKD 2706,作為其制造或初始化過程的一部分。
INKSD 2706還包含CDD公鑰證書2934的拷貝,CDD公鑰證書2934本身包含CDD公鑰2935的拷貝。CD公鑰2935是CDD公鑰2988的拷貝,CDD公鑰2988與CDD私鑰2996對應(yīng),作為不對稱加密密鑰對。CDD公鑰證書2934可以被寫入INSKD 2706,作為其制造或初始化過程的一部分。
在另外的實施例中,INSKD私鑰2926和INSKD公鑰2930可以用于多種功能。在圖29所示的實施例中,在INKSD 2706使用用于其他功能的一個或多個其他加密密鑰對的同時,保留INSKD私鑰2926和INSKD公鑰2930,用于在INKSD 2706與CD裝置驅(qū)動器2714之間以及INKSD 2706與CD 2712之間進(jìn)行通信。在本例中,INKSD 2706利用INSKD_SW私鑰2936對INKSD 2706與應(yīng)用程序2708中的軟件智能密鑰單元(SWSKU)2710(圖27)之間的通信進(jìn)行保護(hù)。INSKD_SW公鑰證書2942包含INSKD_SW公鑰2944的拷貝,INSKD_SW公鑰2944與INSKD_SW私鑰2936對應(yīng),作為不對稱加密密鑰對。盡管本例示出了單個SWSKU 2710,但是,也可以是多個SWSKU。在這種情況下,每個SWSKU將擁有它自己的、與INSKD_SW私鑰2936對應(yīng)的私鑰。INKSD 2706還包含SWSKU公鑰證書2946的拷貝,SWSKU公鑰證書2946本身包含SWSKU公鑰2948的拷貝,SWSKU公鑰2948與SWSKU 2710中的SWSKU私鑰2950對應(yīng),作為不對稱加密密鑰對。
系統(tǒng)單元2702支持執(zhí)行包含SWSKU 2710的應(yīng)用程序2708,SWSKU 2710本身包含加密引擎2952,用于利用存儲在軟件智能密鑰單元2710中的各種數(shù)據(jù)項執(zhí)行加密功能。SWSKU公鑰證書2954包含SWSKU公鑰2956的拷貝,SWSKU公鑰2956與SWSKU私鑰2950對應(yīng),作為不對稱加密密鑰對。SWSKU 2710還包含INSKD_SW公鑰證書2958的拷貝,INSKD_SW公鑰證書2958本身包含INSKD_SW公鑰2944的拷貝,INSKD_SW公鑰2944與INSKD_SW私鑰2936對應(yīng),作為不對稱加密密鑰對。如以下更詳細(xì)說明的,可以對SWSKU2710進(jìn)行數(shù)字簽名。在圖29所示的例子中,SWSKU 2710包含已經(jīng)在SWSKU 2710上利用INSKD_SW私鑰2936計算的數(shù)字簽名2962。換句話說,INSKD 2706利用INSKD_SW私鑰2936對SWSKU 2710進(jìn)行數(shù)字簽名。如上所述,通常,應(yīng)該有用于應(yīng)用程序的每個實例的、不同的INSKD_SW私鑰2936,并且,不同的應(yīng)用程序具有不同的INSKD_SW。
CD裝置驅(qū)動器2714(圖27)包括CD驅(qū)動器智能密鑰單元(CDDSKU)2982。CDDSKU 2982包含加密引擎2984,用于利用存儲在CD 2712和CDDSKU 2982中的各種數(shù)據(jù)項執(zhí)行加密功能。在另一個實施例中,可以使用加密引擎2924,或者,可以下載并使用存儲在CD 2712上的加密引擎2810(圖28)。盡管可以讀取CD 2712、CD裝置驅(qū)動器2714以及存儲在其中的密鑰,但是,以與如本說明書中描述的多個例子中的用于保護(hù)SWSKU 2710的處理相似的方式,通過INSKU 2706進(jìn)行簽名以及檢驗處理,對這些密鑰進(jìn)行保護(hù)。CDDSKU公鑰證書2986使用CDD公鑰2988,CDD公鑰2988與CDD私鑰2996對應(yīng),作為不對稱加密密鑰對。
CDDSKW 2982包含已經(jīng)在CDDSKU 2982上利用INSKD私鑰2926計算的數(shù)字簽名2990。換句話說,INSKD 2706利用INSKD私鑰2926和CDD私鑰2996對CDDSKU 2982進(jìn)行數(shù)字簽名。該處理對CD裝置驅(qū)動器2714進(jìn)行驗證。
參照圖30,流程圖示出了用于啟用主機系統(tǒng)的內(nèi)部智能密鑰裝置的加密功能的總體處理。處理自框3002開始,在此期間,CD或其他可移動存儲介質(zhì)與相容的介質(zhì)讀取裝置接合。在框3004期間,介質(zhì)讀取裝置與包括內(nèi)部智能密鑰裝置的系統(tǒng)單元電氣接合,同時,CD或其他可移動存儲介質(zhì)與介質(zhì)讀取裝置接合。例如,IT管理員可以將CD 2712(圖27和28)插入CD裝置2704(圖27和29),由此使CD 2704與系統(tǒng)單元2702(圖27和29)以及兼容單元如INSKD 2706(圖27和29)耦合。在框3006期間,INSKD 2704與CD 2712,以及INSKD 2704與CD裝置驅(qū)動器2714(圖27和29)執(zhí)行相互驗證過程。這個相互驗證過程包括INSKD 2704根據(jù)INSKD私鑰2996,對數(shù)字簽名2990(圖29)進(jìn)行確認(rèn),以及,INSKD 2704還根據(jù)INSKD私鑰2996,對數(shù)字簽名2820進(jìn)行確認(rèn)(圖28)。在另一個實施例中,INSKD 2706可以將不同的私鑰用于對CD2712和CD裝置驅(qū)動器2714進(jìn)行驗證。這樣的確認(rèn)確保了CD 2712和CD裝置驅(qū)動器2714的真實性。然后,在框3008期間,允許INSKD 2704進(jìn)行加密,并且,處理結(jié)束。
可以假設(shè)在相互驗證過程中的任何錯誤使得防止INSKD 2704給相互驗證處理失敗的裝置或軟件提供數(shù)字簽名。換句話說,沒有CD2712,INSKD 2704不能對新軟件進(jìn)行簽名,由此防止在系統(tǒng)2702上修改或安裝軟件。已經(jīng)安裝的任何軟件可以正常執(zhí)行,并且,INSKD2704可以提供確認(rèn)數(shù)字簽名、解密以及加密等服務(wù)。在限制較少的實施例中,INSKD 2704的加密功能可以由在主機系統(tǒng)上運行的任何應(yīng)用程序調(diào)用。在限制較多的實施例中,INSKD 2704的加密功能僅可以由包括軟件智能密鑰單元如SWSKU 2710(圖27和29)的應(yīng)用程序調(diào)用。
參照圖31,流程圖示出了按照本發(fā)明實施例的,由特定CD智能密鑰單元使用的,啟用主機系統(tǒng)的內(nèi)部智能密鑰裝置的加密功能的處理。在框3102期間,當(dāng)包含CD驅(qū)動器智能密鑰單元如CDDSKU2714(圖27和29)的CD裝置驅(qū)動器例如通過應(yīng)用編程接口(API)調(diào)用INSKD 2704的驗證過程時,處理開始。INSKD 2706,或者在另一個系統(tǒng)軟件(沒有示出)中,利用INSKD公鑰2934(圖29)對確實被INSKD私鑰2927簽名的數(shù)字簽名2990(圖29)進(jìn)行檢驗。這個確認(rèn)過程保證了CDDSKU 2982相互驗證密鑰沒有被另一個應(yīng)用程序或裝置占用。
在框3104期間,允許INSKD 2706執(zhí)行用于CDDSKU 2982的加密功能。在框3106期間,CDDSKU 2982調(diào)用INSKD 2706的加密功能,并且處理結(jié)束。假設(shè),除了CDDSKU 2982以外,主機系統(tǒng)上的多個軟件智能密鑰單元已經(jīng)完成了與內(nèi)部智能密鑰裝置的相互驗證過程,則可以同時允許INSKD 2707代表CDDSKU 2982和多個軟件智能密鑰單元執(zhí)行加密功能。
在CD 2712保持與CD裝置2704(圖27和29)接合,并且因此與包含INSKD 2706的系統(tǒng)單元2702接合時,允許INSKD 2706起證書管理機關(guān)的作用,例如,生成新的公共證書。在一個實施例中,當(dāng)安裝新軟件包時,應(yīng)該使CD 2712與CD裝置2704以及系統(tǒng)單元2702接合。INSKD 2706給新軟件頒發(fā)相互驗證證書,并且對軟件連同密鑰一起進(jìn)行簽名和密封。在對新軟件簽名之后,可以將CD 2712移除,并且,經(jīng)過簽名的軟件能夠繼續(xù)啟動并使用INSKD 2706的加密功能。
在軟件安裝期間,可以給新軟件包頒發(fā)新的公共證書;與新頒發(fā)的數(shù)字證書中的公鑰對應(yīng)的私鑰可以被嵌入該軟件包,并且,通過使內(nèi)部智能密鑰裝置對軟件包進(jìn)行簽名,可以保護(hù)私鑰。此外,在Java環(huán)境中,可以對嵌入了私鑰的JAR文件和Java數(shù)據(jù)包進(jìn)一步進(jìn)行密封,以防止惡意用戶篡改私鑰。
參照圖32,流程圖示出了按照本發(fā)明實施例的,用于禁用主機系統(tǒng)的內(nèi)部智能密鑰裝置的加密功能的處理。在框3202期間,當(dāng)將CD2712(圖27和28)從CD裝置2704中取出,由此將CD 2712與包含INSKD 2706(圖27和29)的系統(tǒng)單元2702(圖27和29)分離時,處理開始。在框3204期間,當(dāng)系統(tǒng)單元2702檢測出CD 2712脫離時,INSKD2706被禁止再進(jìn)行數(shù)字簽名、頒發(fā)密鑰或執(zhí)行證書,并且處理結(jié)束。應(yīng)該注意,INKSD 2706繼續(xù)執(zhí)行其他加密功能,如確認(rèn)簽名、加密和解密服務(wù)。
圖32中示出的處理起圖30或圖31中示出的處理的補充處理的作用。然而,應(yīng)該注意,在另一個實施例中,根據(jù)本發(fā)明的實施方案,INSKD 2706可以繼續(xù)執(zhí)行某些功能,因而它沒有完全被禁用。還應(yīng)該注意,與以上結(jié)合圖9A、9B、10A、10B、11A、11B以及19-26描述的內(nèi)部智能密鑰裝置和外部智能密鑰裝置有關(guān)的處理,還可以應(yīng)用于以上結(jié)合圖27-32描述的可移動存儲介質(zhì)安全系統(tǒng)的加密功能。此外,由于CD裝置驅(qū)動器2714是在系統(tǒng)單元2702上執(zhí)行的軟件,因此,本說明書針對軟件描述的安全功能同樣可以應(yīng)用于CD裝置驅(qū)動器2714。為了簡單起見,沒有針對CDDSKU 2982和CD 2712,重復(fù)與圖9A、9B、10A、10B、11A、11B和19-26對應(yīng)的圖。
可以假設(shè),可以通過軟件或硬件啟用內(nèi)部智能密鑰裝置的加密功能。例如,在硬件模式中,根據(jù)代表外部智能密鑰裝置是否已經(jīng)被接受的使能狀態(tài),利用必須被設(shè)定或清除的某種觸發(fā)或其他機制,可以防止內(nèi)部智能密鑰裝置中的特定電路的運行進(jìn)入可操作狀態(tài);在軟件模式中,通過設(shè)定和清除對執(zhí)行加密功能進(jìn)行邏輯控制的特定使能標(biāo)志,對某些加密功能的操作進(jìn)行保護(hù)。
根據(jù)以上提供的詳細(xì)描述,本發(fā)明的優(yōu)點應(yīng)該顯而易見。本發(fā)明提供了用于保護(hù)主機系統(tǒng)內(nèi)的加密功能的機制,使得只有當(dāng)系統(tǒng)管理員親自通過硬件安全令牌允許它時,它才可以被使用。此外,硬件安全單元被集成到數(shù)據(jù)處理系統(tǒng)中,并且,硬件安全單元起硬件證書管理機關(guān)的作用。硬件安全單元可以被看作對分布式數(shù)據(jù)處理系統(tǒng)內(nèi)的信任體系或信任框架進(jìn)行支持。硬件安全單元可以對安裝在包含硬件安全單元的機器上的軟件進(jìn)行簽名。使用在機器上運行的經(jīng)過簽名的軟件的服務(wù)器處理可以建立與硬件安全單元的相互信任關(guān)系以及與其他服務(wù)器處理之間的相互信任關(guān)系,這個相互信任關(guān)系基于這些服務(wù)器處理對硬件安全單元的共同信任。
重要的是注意到,盡管已經(jīng)在全功能數(shù)據(jù)處理系統(tǒng)的情況下,對本發(fā)明進(jìn)行了描述,但是,本領(lǐng)域一般技術(shù)人員應(yīng)該理解,本發(fā)明的處理能夠以計算機可讀介質(zhì)中的指令的形式以及各種其他形式分布,不論實際用于執(zhí)行分布的信號承載介質(zhì)的具體類型如何。計算機可讀介質(zhì)的例子包括諸如EPROM、ROM、磁帶、紙、軟盤、硬盤驅(qū)動器、RAM和CD-ROM等介質(zhì)以及諸如數(shù)字的和模擬的通信鏈接等傳輸型介質(zhì)。
一般將方法想象成導(dǎo)致希望的結(jié)果的自相容動作序列。這些動作要求對物理量的物理操作。通常(但不是必要的),這些量采用能夠被存儲、傳輸、組合、比較以及以其他方式操作的電或磁信號的形式。主要出于公共使用的原因,將這些信號稱為位、值、參數(shù)、項目、要素、對象、符號、字符、術(shù)語、號碼等更為方便。但是,應(yīng)該注意,所有這些術(shù)語以及相似術(shù)語都與合適的物理量相關(guān),并且,僅僅是應(yīng)用于這些量的方便的標(biāo)簽。
出于說明的目的,已經(jīng)給出了對本發(fā)明的描述,但是,描述的意圖不是窮舉或者對公開的實施例進(jìn)行限制。本領(lǐng)域的一般技術(shù)人員應(yīng)該明白許多修改和變化。實施例被選擇來對本發(fā)明的原理及其實際應(yīng)用進(jìn)行說明,并且使本領(lǐng)域的其他一般技術(shù)人員能夠理解本發(fā)明,以便當(dāng)適合于其他預(yù)期用途時,利用各種修改實現(xiàn)各種實施例。
為了避免疑惑,在說明書和權(quán)利要求中使用的術(shù)語“包括”不應(yīng)該理解為“僅由…組成”的意思。
權(quán)利要求
1.一種數(shù)據(jù)處理系統(tǒng),包括系統(tǒng)單元;介質(zhì)讀取裝置,與所述系統(tǒng)單元耦合;裝置驅(qū)動器,用于對所述介質(zhì)讀取裝置進(jìn)行控制;可移動存儲介質(zhì),可以被所述介質(zhì)讀取裝置讀取,其中,所述可移動存儲介質(zhì)存儲與第一不對稱加密密鑰對對應(yīng)的第一私鑰以及與第二不對稱加密密鑰對對應(yīng)的第一公鑰;以及硬件安全單元,與所述系統(tǒng)單元耦合,其中,所述硬件安全單元存儲與第二不對稱加密密鑰對對應(yīng)的第二私鑰以及與第一不對稱加密密鑰對對應(yīng)的第二公鑰,所述硬件安全單元包括用于根據(jù)所述第一和第二加密密鑰對,對所述可移動存儲介質(zhì)與所述硬件安全單元進(jìn)行驗證的邏輯;以及用于在所述可移動存儲介質(zhì)與硬件安全單元已經(jīng)相互驗證后,在所述可移動存儲介質(zhì)保持與所述介質(zhì)讀取裝置接合時,允許所述系統(tǒng)單元調(diào)用所述硬件安全單元上的加密功能的邏輯。
2.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),還包括下述邏輯,用于一旦所述可移動存儲介質(zhì)已經(jīng)被驗證,并且所述可移動存儲介質(zhì)保持與所述介質(zhì)讀取裝置接合,則對應(yīng)用程序進(jìn)行驗證。
3.如權(quán)利要求1或2所述的數(shù)據(jù)處理系統(tǒng),還包括下述邏輯,用于在所述可移動存儲介質(zhì)保持與所述介質(zhì)讀取裝置接合時,利用所述硬件安全單元為所述可移動存儲介質(zhì)生成數(shù)字證書。
4.如權(quán)利要求1、2或3所述的數(shù)據(jù)處理系統(tǒng),還包括下述邏輯,用于在所述可移動存儲介質(zhì)保持與所述介質(zhì)讀取裝置接合時,響應(yīng)于來自所述裝置驅(qū)動器的請求,利用所述硬件安全單元對來自所述裝置驅(qū)動器的數(shù)據(jù)項進(jìn)行數(shù)字簽名。
5.如前述權(quán)利要求中的任何一項所述的數(shù)據(jù)處理系統(tǒng),還包括下述邏輯,用于在成功地進(jìn)行了所述可移動存儲介質(zhì)與所述硬件安全單元之間的相互驗證操作之后,響應(yīng)于來自所述裝置驅(qū)動器的請求,利用所述硬件安全單元為所述裝置驅(qū)動器執(zhí)行加密功能,而不要求所述可移動存儲介質(zhì)與所述介質(zhì)讀取裝置接合。
6.如前述權(quán)利要求中的任何一項所述的數(shù)據(jù)處理系統(tǒng),所述裝置驅(qū)動器包括第三私鑰,與第三不對稱加密密鑰對對應(yīng);以及第三公鑰,與第四不對稱加密密鑰對對應(yīng),并且所述數(shù)據(jù)處理系統(tǒng)還包括第四私鑰,存儲在所述硬件安全單元上,與所述第四不對稱加密密鑰對對應(yīng),以及第四公鑰,與所述第三不對稱加密密鑰對對應(yīng);用于根據(jù)所述第三和第四不對稱加密密鑰對,在所述裝置驅(qū)動器與所述硬件安全單元之間進(jìn)行相互驗證操作的邏輯;以及用于在所述可移動存儲介質(zhì)與所述裝置驅(qū)動器已經(jīng)相互驗證之后,在所述可移動存儲單元保持與所述介質(zhì)讀取裝置接合時,允許所述裝置驅(qū)動器調(diào)用所述硬件安全單元上的功能的邏輯。
7.如權(quán)利要求6所述的數(shù)據(jù)處理系統(tǒng),還包括下述邏輯,用于一旦所述可移動存儲介質(zhì)和所述裝置驅(qū)動器已經(jīng)被驗證,并且所述可移動存儲單元保持與所述介質(zhì)讀取裝置接合,則對應(yīng)用程序進(jìn)行驗證。
8.如權(quán)利要求6或7所述的數(shù)據(jù)處理系統(tǒng),還包括下述邏輯,用于在所述可移動存儲介質(zhì)保持與所述介質(zhì)讀取裝置接合時,利用所述硬件安全單元為所述裝置驅(qū)動器生成數(shù)字證書。
9.一種用于執(zhí)行加密功能的方法,所述方法包括如下步驟使可移動存儲介質(zhì)與耦合到系統(tǒng)單元的介質(zhì)讀取裝置接合,其中,所述系統(tǒng)單元包括硬件安全單元和用于對所述介質(zhì)讀取裝置進(jìn)行控制的裝置驅(qū)動器;并且其中,所述可移動存儲介質(zhì)包含與第一不對稱加密密鑰對對應(yīng)的第一私鑰以及與第二不對稱加密密鑰對對應(yīng)的第一公鑰,并且其中,所述硬件安全單元包含與第二不對稱加密密鑰對對應(yīng)的第二私鑰以及與第一不對稱加密密鑰對對應(yīng)的第二公鑰;根據(jù)所述第一和第二不對稱加密密鑰對,在所述可移動存儲介質(zhì)與所述硬件安全單元之間執(zhí)行相互驗證操作;并且響應(yīng)于成功地進(jìn)行了相互驗證操作,在所述可移動存儲介質(zhì)保持與所述介質(zhì)讀取裝置接合時,允許所述系統(tǒng)單元調(diào)用所述硬件安全單元上的加密功能。
10.如權(quán)利要求9所述的方法,還包括一旦所述可移動存儲介質(zhì)已經(jīng)被驗證,并且在所述可移動存儲單元保持與所述介質(zhì)讀取裝置接合時,對應(yīng)用程序進(jìn)行驗證。
11.如權(quán)利要求9或10所述的方法,還包括在所述可移動存儲介質(zhì)保持與所述介質(zhì)讀取裝置接合時,利用所述硬件安全單元為所述可移動存儲介質(zhì)生成數(shù)字證書。
12.如權(quán)利要求9、10或11所述的方法,還包括在所述可移動存儲介質(zhì)保持與所述介質(zhì)讀取裝置接合時,響應(yīng)于來自所述裝置驅(qū)動器的請求,利用所述硬件安全單元對來自所述裝置驅(qū)動器的數(shù)據(jù)項進(jìn)行數(shù)字簽名。
13.如權(quán)利要求9到12中的任何一項所述的方法,還包括在成功地進(jìn)行了所述可移動存儲介質(zhì)與所述硬件安全單元之間的相互驗證操作之后,響應(yīng)于來自所述裝置驅(qū)動器的請求,利用所述硬件安全單元執(zhí)行加密功能,而不要求所述可移動存儲介質(zhì)與所述介質(zhì)讀取裝置接合。
14.如權(quán)利要求9到13中的任何一項所述的方法,其中,所述裝置驅(qū)動器包括第三私鑰,與第三不對稱加密密鑰對對應(yīng);以及,第三公鑰,與第四不對稱加密密鑰對對應(yīng),并且其中,所述數(shù)據(jù)處理系統(tǒng)還包括第四私鑰,存儲在所述硬件安全單元上,與所述第四不對稱加密密鑰對對應(yīng),以及,第四公鑰,與所述第三不對稱加密密鑰對對應(yīng);所述方法還包括如下步驟根據(jù)所述第三和第四不對稱加密密鑰對,在所述裝置驅(qū)動器與所述硬件安全單元之間進(jìn)行相互驗證操作;并且在所述可移動存儲介質(zhì)與所述裝置驅(qū)動器已經(jīng)進(jìn)行相互驗證之后,在所述可移動存儲單元保持與所述介質(zhì)讀取裝置接合時,允許所述裝置驅(qū)動器調(diào)用所述硬件安全單元上的功能。
15.如權(quán)利要求14所述的方法,還包括一旦所述可移動存儲介質(zhì)和所述裝置驅(qū)動器已經(jīng)被驗證,并且所述可移動存儲單元保持與所述介質(zhì)讀取裝置接合,則對應(yīng)用程序進(jìn)行驗證。
16.如權(quán)利要求14或15所述的方法,在所述可移動存儲介質(zhì)保持與所述介質(zhì)讀取裝置接合時,利用所述硬件安全單元為所述裝置驅(qū)動器生成數(shù)字證書。
17.一種位于計算機可讀介質(zhì)上的計算機程序產(chǎn)品,用于在數(shù)據(jù)處理系統(tǒng)中執(zhí)行加密功能,所述計算機程序產(chǎn)品包括存儲在所述計算機可讀介質(zhì)上的邏輯,用于利用耦合到系統(tǒng)單元的介質(zhì)讀取裝置讀取可移動存儲介質(zhì),其中,所述系統(tǒng)單元包括硬件安全單元和用于對所述介質(zhì)讀取裝置進(jìn)行控制的裝置驅(qū)動器,其中,所述可移動存儲介質(zhì)包含與第一不對稱加密密鑰對對應(yīng)的第一私鑰以及與第二不對稱加密密鑰對對應(yīng)的第一公鑰,并且其中,所述硬件安全單元包含與第二不對稱加密密鑰對對應(yīng)的第二私鑰以及與第一不對稱加密密鑰對對應(yīng)的第二公鑰;存儲在所述計算機可讀介質(zhì)上的邏輯,用于在所述可移動存儲介質(zhì)與所述介質(zhì)讀取裝置接合時,在所述介質(zhì)讀取裝置與所述硬件安全單元之間執(zhí)行相互驗證操作;以及存儲在所述計算機可讀介質(zhì)上的邏輯,用于響應(yīng)于在所述可移動存儲介質(zhì)與所述硬件單元之間成功地進(jìn)行了相互驗證操作,在所述可移動存儲介質(zhì)保持與所述介質(zhì)讀取裝置系統(tǒng)單元接合時,啟用所述硬件安全單元上的加密功能。
18.如權(quán)利要求17所述的計算機程序產(chǎn)品,還包括存儲在所述計算機可讀介質(zhì)上的邏輯,用于一旦所述可移動存儲介質(zhì)已經(jīng)被驗證,并且在所述可移動存儲單元保持與所述介質(zhì)讀取裝置接合時,對應(yīng)用程序進(jìn)行驗證。
19.如權(quán)利要求17或18所述的計算機程序產(chǎn)品,還包括存儲在所述計算機可讀介質(zhì)上的邏輯,用于在所述可移動存儲介質(zhì)保持與所述介質(zhì)讀取裝置接合時,利用所述硬件安全單元為所述可移動存儲介質(zhì)生成數(shù)字證書。
20.如權(quán)利要求17、18或19所述的計算機程序產(chǎn)品,還包括存儲在所述計算機可讀介質(zhì)上的邏輯,用于在所述可移動存儲介質(zhì)保持與所述介質(zhì)讀取裝置接合時,響應(yīng)于來自所述裝置驅(qū)動器的請求,利用所述硬件安全單元對來自所述裝置驅(qū)動器的數(shù)據(jù)項進(jìn)行數(shù)字簽名。
21.如權(quán)利要求17到20中的任何一項所述的計算機程序產(chǎn)品,還包括存儲在所述計算機可讀介質(zhì)上的邏輯,用于在成功地進(jìn)行了所述可移動存儲介質(zhì)與所述硬件安全單元之間的相互驗證操作之后,響應(yīng)于來自所述裝置驅(qū)動器的請求,利用所述硬件安全單元為所述裝置驅(qū)動器執(zhí)行加密功能,而不要求所述可移動存儲介質(zhì)與所述介質(zhì)讀取裝置接合。
22.如權(quán)利要求17到21中的任何一項所述的計算機程序產(chǎn)品,其中,所述裝置驅(qū)動器包括第三私鑰,與第三不對稱加密密鑰對對應(yīng);以及,第三公鑰,與第四不對稱加密密鑰對對應(yīng),并且其中,所述數(shù)據(jù)處理系統(tǒng)包括第四私鑰,存儲在所述硬件安全單元上,與所述第四不對稱加密密鑰對對應(yīng),以及第四公鑰,與所述第三不對稱加密密鑰對對應(yīng);所述計算機程序產(chǎn)品還包括存儲在所述計算機可讀介質(zhì)上的邏輯,用于根據(jù)所述第三和第四不對稱加密密鑰對,在所述裝置驅(qū)動器與所述硬件安全單元之間進(jìn)行相互驗證操作;以及存儲在所述計算機可讀介質(zhì)上的邏輯,用于在所述可移動存儲介質(zhì)與所述裝置驅(qū)動器已經(jīng)進(jìn)行相互驗證之后,在所述可移動存儲單元保持與所述介質(zhì)讀取裝置接合時,允許所述裝置驅(qū)動器調(diào)用所述硬件安全單元上的功能。
23.如權(quán)利要求22所述的計算機程序產(chǎn)品,還包括存儲在所述計算機可讀介質(zhì)上的邏輯,用于一旦所述可移動存儲介質(zhì)和所述裝置驅(qū)動器已經(jīng)被驗證,并且所述可移動存儲單元保持與所述介質(zhì)讀取裝置接合,則對應(yīng)用程序進(jìn)行驗證。
24.如權(quán)利要求22或23所述的計算機程序產(chǎn)品,還包括存儲在所述計算機可讀介質(zhì)上的邏輯,用于在所述可移動存儲介質(zhì)保持與所述介質(zhì)讀取裝置接合時,利用所述硬件安全單元為所述裝置驅(qū)動器生成數(shù)字證書。
全文摘要
數(shù)據(jù)處理系統(tǒng)接受可移動存儲介質(zhì),可移動存儲介質(zhì)變成與數(shù)據(jù)處理系統(tǒng)內(nèi)的系統(tǒng)單元電氣接合,此后,可移動存儲介質(zhì)與硬件安全單元彼此進(jìn)行相互驗證??梢苿哟鎯橘|(zhì)存儲第一不對稱加密密鑰對的私鑰和與硬件安全單元相關(guān)的第二不對稱加密密鑰對的公鑰,而硬件安全單元存儲第二不對稱加密密鑰對的私鑰和與可移動存儲介質(zhì)相關(guān)的第一不對稱加密密鑰對的公鑰。響應(yīng)于在可移動存儲介質(zhì)與硬件安全單元之間成功進(jìn)行了相互驗證操作,在可移動存儲介質(zhì)保持與系統(tǒng)單元接合時,允許系統(tǒng)單元調(diào)用硬件安全單元上的加密功能。
文檔編號G06F21/20GK101044490SQ200580036200
公開日2007年9月26日 申請日期2005年11月30日 優(yōu)先權(quán)日2004年12月16日
發(fā)明者史蒂文·貝德, 趙青云 申請人:國際商業(yè)機器公司