背景技術(shù):
卡計(jì)算設(shè)備可以在從移動(dòng)電話到自動(dòng)柜員機(jī)和駕駛執(zhí)照的各種系統(tǒng)中提供標(biāo)識(shí)、認(rèn)證、數(shù)據(jù)存儲(chǔ)和應(yīng)用處理。java已經(jīng)變成用于為卡計(jì)算設(shè)備創(chuàng)建應(yīng)用的通用開(kāi)發(fā)平臺(tái)。例如,javacardtm是用于包括卡計(jì)算設(shè)備的嵌入式設(shè)備的小型java實(shí)現(xiàn)。此外,網(wǎng)絡(luò)入侵和攻擊一直在增加,常常暴露敏感信息。
傳統(tǒng)上,由卡計(jì)算設(shè)備上的應(yīng)用(或小應(yīng)用程序)進(jìn)行的密碼密鑰導(dǎo)出一般涉及復(fù)制在卡計(jì)算設(shè)備的存儲(chǔ)器(例如,隨機(jī)存取存儲(chǔ)器或ram)中的用作密鑰導(dǎo)出和/或其它密碼素材的一部分并且該應(yīng)用可訪問(wèn)的各種數(shù)據(jù)。例如,隨機(jī)數(shù)據(jù)和附加導(dǎo)出數(shù)據(jù)一般被復(fù)制到字節(jié)數(shù)組中并作為參數(shù)傳遞到密鑰導(dǎo)出過(guò)程。此外,這些數(shù)據(jù)在字節(jié)數(shù)組和內(nèi)部緩沖區(qū)之間復(fù)制,作為密鑰導(dǎo)出過(guò)程的一部分。而且,密鑰導(dǎo)出過(guò)程的結(jié)果一般被傳遞回應(yīng)用,諸如在字節(jié)數(shù)組中。
一般而言,在卡計(jì)算設(shè)備上執(zhí)行的應(yīng)用可訪問(wèn)的正常ram沒(méi)有受保護(hù)的非易失性存儲(chǔ)器那么安全(例如,從密碼的角度來(lái)看)。傳統(tǒng)上,通過(guò)芯片的ram傳遞的敏感數(shù)據(jù)(例如,用作密鑰導(dǎo)出過(guò)程的一部分的數(shù)據(jù))可能容易受到密碼攻擊,并且攻擊者可以頻繁地分析芯片行為并獲得關(guān)于導(dǎo)出的密鑰的附加信息以及其它密碼數(shù)據(jù)(例如,由于數(shù)據(jù)通過(guò)芯片的正常、不太安全的ram傳遞)。
技術(shù)實(shí)現(xiàn)要素:
在諸如卡計(jì)算設(shè)備上的虛擬化執(zhí)行環(huán)境內(nèi)的安全密鑰導(dǎo)出可以涉及利用完全在執(zhí)行環(huán)境的平臺(tái)層內(nèi)駐留和/或執(zhí)行的密鑰導(dǎo)出模塊。在執(zhí)行環(huán)境的應(yīng)用層內(nèi)執(zhí)行的應(yīng)用可以訪問(wèn)密鑰導(dǎo)出模塊,以便根據(jù)(可能標(biāo)準(zhǔn)化的)密鑰導(dǎo)出功能來(lái)生成(例如,導(dǎo)出)密碼密鑰。導(dǎo)出的密鑰可以不被返回到應(yīng)用,而是可以替代地存儲(chǔ)在執(zhí)行環(huán)境的安全存儲(chǔ)區(qū)域內(nèi),而無(wú)需甚至臨時(shí)地存儲(chǔ)在執(zhí)行環(huán)境的非安全區(qū)域中。應(yīng)用可以接收對(duì)由其它密碼處理可用的導(dǎo)出密鑰的引用。
卡計(jì)算設(shè)備可以容納包括多個(gè)標(biāo)準(zhǔn)化密鑰導(dǎo)出功能的虛擬化執(zhí)行環(huán)境,并且可以提供允許在卡計(jì)算設(shè)備上執(zhí)行的應(yīng)用利用密鑰導(dǎo)出功能來(lái)安全地生成和存儲(chǔ)密碼密鑰的api。執(zhí)行環(huán)境可以允許密鑰導(dǎo)出功能在各種應(yīng)用之間的共享。
應(yīng)用可以將密鑰引用(諸如經(jīng)由密鑰導(dǎo)出功能獲得的密鑰引用)傳遞到密碼模塊的方法,并且密鑰引用可以被密碼模塊用于從安全存儲(chǔ)區(qū)域訪問(wèn)導(dǎo)出的密鑰,以用于執(zhí)行各種密碼處理(例如,加密、解密、認(rèn)證等)當(dāng)中的任何一個(gè)。
附圖說(shuō)明
圖1是示出根據(jù)現(xiàn)有技術(shù)的被配置為實(shí)現(xiàn)密鑰導(dǎo)出功能的系統(tǒng)的邏輯框圖。
圖2是示出根據(jù)如本文所述的一個(gè)實(shí)施例的被配置為實(shí)現(xiàn)安全密鑰導(dǎo)出功能的系統(tǒng)的邏輯框圖。
圖3是示出如本文所述的用于安全密鑰導(dǎo)出的方法的一個(gè)實(shí)施例的流程圖。
圖4是示出根據(jù)一個(gè)實(shí)施例的密碼密鑰的導(dǎo)出的邏輯框圖。
圖5是示出被配置為實(shí)現(xiàn)安全密鑰導(dǎo)出功能的虛擬執(zhí)行環(huán)境的邏輯框圖。
圖6是示出根據(jù)一個(gè)實(shí)施例的利用具有導(dǎo)出的密碼密鑰的密碼功能的應(yīng)用的邏輯框圖。
圖7是示出根據(jù)一個(gè)實(shí)施例的用于經(jīng)由密鑰引用使用導(dǎo)出的密碼密鑰的方法的一個(gè)實(shí)施例的流程圖。
圖8是示出如本文所述的被配置為實(shí)現(xiàn)安全密鑰導(dǎo)出模塊的卡計(jì)算設(shè)備的一個(gè)實(shí)施例的框圖。
雖然本文通過(guò)若干實(shí)施例的示例和說(shuō)明性附圖描述了各種實(shí)施例,但是本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,實(shí)施例不限于所描述的實(shí)施例或附圖。應(yīng)當(dāng)理解,附圖及其詳細(xì)描述不意在將實(shí)施例限制到所公開(kāi)的特定形式,而是相反,本發(fā)明意在覆蓋落入本公開(kāi)內(nèi)容的精神和范圍內(nèi)的所有修改、等同物和替代方案。本文使用的任何標(biāo)題僅用于組織目的,而不意味著用于限制描述的范圍。如貫穿本申請(qǐng)所使用的,詞語(yǔ)“可以”在許可的意義上(即,意味著有可能)而不是在強(qiáng)制的意義上(即,意味著必須)使用。類似地,詞語(yǔ)“包括”意味著包括但不限于。
具體實(shí)施方式
圖1是示出根據(jù)現(xiàn)有技術(shù)的被配置為實(shí)現(xiàn)密鑰導(dǎo)出功能的系統(tǒng)的邏輯框圖。如圖1中所示,卡計(jì)算設(shè)備100可以被配置為容納包括平臺(tái)層110和應(yīng)用層130的虛擬化執(zhí)行環(huán)境105。在一些實(shí)施例中,虛擬化執(zhí)行環(huán)境105可以被配置為在應(yīng)用層130容納一個(gè)或多個(gè)應(yīng)用的執(zhí)行,同時(shí)在平臺(tái)層110提供設(shè)備級(jí)功能以支持應(yīng)用的執(zhí)行。例如,虛擬化執(zhí)行環(huán)境可以提供應(yīng)用編程接口(api),從而允許應(yīng)用訪問(wèn)設(shè)備級(jí)(和/或系統(tǒng)級(jí))功能。此外,虛擬化執(zhí)行環(huán)境可以在平臺(tái)層提供用于管理(例如,加載、安裝和/或移除)應(yīng)用的功能。應(yīng)用140可以被配置為基于密碼素材170來(lái)確定和使用一個(gè)或多個(gè)密碼密鑰,諸如導(dǎo)出的密鑰160。應(yīng)用140可以包括密鑰導(dǎo)出模塊150并使用密鑰導(dǎo)出模塊150以使用密碼素材170生成導(dǎo)出的密鑰160。
如圖1中所示,根據(jù)現(xiàn)有技術(shù),在卡計(jì)算設(shè)備100上執(zhí)行的應(yīng)用140在應(yīng)用層130中執(zhí)行密鑰導(dǎo)出模塊150,從而導(dǎo)致導(dǎo)出的密鑰160也在應(yīng)用層130中。傳統(tǒng)上,導(dǎo)出的密鑰160、密碼素材170以及用作生成導(dǎo)出的密鑰160的一部分的其它中間數(shù)據(jù)將必然存在于由卡計(jì)算設(shè)備100的應(yīng)用層130使用的正常存儲(chǔ)器(例如,ram)中。
傳統(tǒng)上,當(dāng)在安全環(huán)境(即,用于tee的javacard或oraclejava)中的與平臺(tái)無(wú)關(guān)的面向?qū)ο蟮恼Z(yǔ)言中實(shí)現(xiàn)密鑰導(dǎo)出功能時(shí),密鑰導(dǎo)出功能由應(yīng)用級(jí)(例如,在應(yīng)用層內(nèi))的應(yīng)用執(zhí)行。例如,平臺(tái)層和/或規(guī)范可以不提供對(duì)密鑰導(dǎo)出功能的支持。但是,在應(yīng)用級(jí)實(shí)現(xiàn)這種敏感功能可以將所創(chuàng)建的數(shù)據(jù)和初始長(zhǎng)期活動(dòng)密鑰(例如,主密鑰)暴露于不必要的風(fēng)險(xiǎn),因?yàn)槊荑€數(shù)據(jù)(特別是導(dǎo)出的密碼密鑰)未保存在芯片的安全部分中。它們將至少短時(shí)間保持在芯片的(不太安全的)ram中,這可以將它們(和密碼處理)暴露于各種密碼攻擊中任何一種。
圖2是示出根據(jù)如本文所述的一個(gè)實(shí)施例的被配置為實(shí)現(xiàn)安全密鑰導(dǎo)出功能的系統(tǒng)的邏輯框圖。如圖2中所示,卡計(jì)算設(shè)備200可以被配置為實(shí)現(xiàn)如本文所述的安全密鑰導(dǎo)出功能。
如本文所提到的,卡計(jì)算設(shè)備可以指具有嵌入式集成電路的各種類型的袖珍卡當(dāng)中任何一種,包括但不限于智能卡、芯片卡、集成電路卡(icc)、嵌入式安全芯片、智能安全數(shù)字(sd)卡(例如,智能microsd卡)或通用集成電路卡(uicc)??ㄓ?jì)算設(shè)備可以被配置為在各種系統(tǒng)當(dāng)中的任何一種中用于各種角色,諸如提供標(biāo)識(shí)、認(rèn)證、數(shù)據(jù)存儲(chǔ)和/或應(yīng)用處理??ㄓ?jì)算設(shè)備還可以為大型組織內(nèi)的單點(diǎn)登錄(sso)提供強(qiáng)大的安全認(rèn)證。
在各種實(shí)施例中,卡計(jì)算設(shè)備可以包括(但不限于)信用卡、自動(dòng)柜員機(jī)(atm)卡、移動(dòng)電話訂戶身份模塊(sim)卡、駕駛執(zhí)照、付費(fèi)電視授權(quán)卡、預(yù)付費(fèi)卡、高安全性標(biāo)識(shí)卡、門禁卡和電話支付卡。此外,卡計(jì)算設(shè)備可以被配置為用作電子錢包,諸如通過(guò)記錄和管理一個(gè)或多個(gè)金融賬戶。雖然主要就可移動(dòng)卡計(jì)算設(shè)備進(jìn)行描述,但是本文所述的方法和/或技術(shù)還適用于嵌入式卡計(jì)算設(shè)備,諸如嵌入式sim卡、嵌入式通用集成電路卡(euicc)、可信平臺(tái)模塊(tpm),或其它嵌入式安全芯片。
卡計(jì)算設(shè)備200可以被配置為經(jīng)由操作系統(tǒng)或運(yùn)行時(shí)環(huán)境(諸如虛擬化執(zhí)行環(huán)境205)來(lái)存儲(chǔ)和執(zhí)行一個(gè)或多個(gè)應(yīng)用,諸如(一個(gè)或多個(gè))應(yīng)用240。例如,在一個(gè)實(shí)施例中,卡計(jì)算設(shè)備可以被配置為存儲(chǔ)和執(zhí)行基于java的運(yùn)行時(shí)環(huán)境和諸如根據(jù)javacardtm規(guī)范的java小應(yīng)用程序。如本文所使用的,javacardtm可以指允許基于java的應(yīng)用(例如,小應(yīng)用程序)在卡計(jì)算設(shè)備上執(zhí)行的技術(shù)。在一些實(shí)施例中,基于javacardtm的卡計(jì)算設(shè)備可以包括虛擬機(jī)(例如,javacardtm虛擬機(jī)或javacardtmvm)和運(yùn)行時(shí)庫(kù)以及一個(gè)或多個(gè)小應(yīng)用程序的組合。在一些實(shí)施例中,卡計(jì)算設(shè)備可以被配置為執(zhí)行具有能夠執(zhí)行安全密鑰導(dǎo)出功能的一個(gè)或多個(gè)模塊的javacardtm運(yùn)行時(shí)環(huán)境(jcre),諸如在平臺(tái)層210內(nèi)。在一些實(shí)施例中,虛擬化執(zhí)行環(huán)境205和/或平臺(tái)層210可以表示在卡計(jì)算設(shè)備上執(zhí)行的javacardtm虛擬機(jī)實(shí)現(xiàn)。
此外,在一些實(shí)施例中,卡計(jì)算設(shè)備可以被配置為利用安全的、受保護(hù)的處理環(huán)境,諸如可信執(zhí)行環(huán)境(tee)。作為一個(gè)示例,移動(dòng)電話可以包括實(shí)現(xiàn)tee的處理器,并且結(jié)合到電話中的卡計(jì)算設(shè)備(例如,sim卡)可以被配置為利用處理器的tee。
如圖2中所示,卡計(jì)算設(shè)備200可以被配置為在平臺(tái)層210中實(shí)現(xiàn)安全密鑰導(dǎo)出功能,諸如密鑰導(dǎo)出模塊250。例如,如下所述,根據(jù)一些實(shí)施例,虛擬化執(zhí)行環(huán)境可以在平臺(tái)層提供支持密鑰導(dǎo)出功能的功能。根據(jù)一些實(shí)施例,在應(yīng)用層230中執(zhí)行的應(yīng)用可以訪問(wèn)并利用密鑰導(dǎo)出模塊250,以便諸如通過(guò)利用密碼素材270生成導(dǎo)出的密鑰260。在一些實(shí)施例中,虛擬化執(zhí)行環(huán)境205可以被配置為在應(yīng)用層230容納一個(gè)或多個(gè)應(yīng)用的執(zhí)行,同時(shí)在平臺(tái)層210提供支持應(yīng)用的執(zhí)行的設(shè)備級(jí)功能。如圖2中所示,密鑰導(dǎo)出模塊250可以被配置為利用安全存儲(chǔ)裝置220生成導(dǎo)出的密鑰260,安全存儲(chǔ)裝置220可以表示平臺(tái)層210可用的虛擬化執(zhí)行環(huán)境205和/或卡計(jì)算設(shè)備200的執(zhí)行模式和/或各種類型的密碼安全存儲(chǔ)器區(qū)域當(dāng)中的任何一種。
在一些實(shí)施例中,安全存儲(chǔ)裝置220可以表示能夠確保數(shù)據(jù)的機(jī)密性、完整性、可用性和持久性(例如,至少在執(zhí)行的持續(xù)時(shí)間內(nèi))的各種形式的存儲(chǔ)裝置當(dāng)中的任何一種。在一些實(shí)施例中,安全存儲(chǔ)裝置220可以通過(guò)硬件與主操作系統(tǒng)分離,并且可以確保敏感數(shù)據(jù)的安全存儲(chǔ)和處理。
因此,在一些實(shí)施例中,密鑰導(dǎo)出模塊250可以生成導(dǎo)出的密鑰260,而不將導(dǎo)出的密鑰暴露于應(yīng)用層。
在一些實(shí)施例中,導(dǎo)出密鑰的輸出數(shù)據(jù)可以永遠(yuǎn)不暴露于應(yīng)用(例如,小應(yīng)用程序)層。應(yīng)用可以只獲得引用對(duì)象,作為密鑰導(dǎo)出方法的返回值。因此,根據(jù)一個(gè)實(shí)施例,可以更好地優(yōu)化和保護(hù)將數(shù)據(jù)饋送到密碼中并將用于導(dǎo)出的密鑰的輸出存儲(chǔ)在存儲(chǔ)器的安全部分中的處理。
在一些實(shí)施例中,密鑰導(dǎo)出功能(kdf)可以被認(rèn)為是提供密鑰素材的密碼分離的單向功能。例如,kdf可以使用長(zhǎng)期活動(dòng)密碼密鑰(例如,主密鑰)連同從其導(dǎo)出新密鑰(諸如導(dǎo)出的密鑰260)的密鑰導(dǎo)出數(shù)據(jù)。這個(gè)新密鑰可以短時(shí)間使用和/或僅用于特定目的。可以作為kdf的輸入的長(zhǎng)期活動(dòng)密鑰可以不用于除導(dǎo)出新密鑰之外的任何其它目的。
此外,密鑰導(dǎo)出模塊250可以被配置為確保導(dǎo)出的密鑰260以及密碼素材270駐留在安全存儲(chǔ)裝置220中。根據(jù)一些實(shí)施例,密鑰導(dǎo)出模塊250、導(dǎo)出的密鑰260以及密碼素材270可以永遠(yuǎn)不存在于應(yīng)用層230的一般不太安全的應(yīng)用存儲(chǔ)裝置225中。因此,在一些實(shí)施例中,密鑰導(dǎo)出模塊250、導(dǎo)出的密鑰260以及密碼素材270可以不可用于諸如密碼攻擊的檢查和/或分析。
應(yīng)用240可以被配置為經(jīng)由密鑰導(dǎo)出模塊250發(fā)起導(dǎo)出的密鑰260的生成。密鑰導(dǎo)出模塊250可以返回應(yīng)用240可以用于引用導(dǎo)出的密鑰260的導(dǎo)出的密鑰引用280,諸如密鑰對(duì)象,如下面將更詳細(xì)地討論的。導(dǎo)出的密鑰引用280可以返回到應(yīng)用240并存儲(chǔ)在應(yīng)用層230中的應(yīng)用存儲(chǔ)裝置225中。根據(jù)一些實(shí)施例,導(dǎo)出的密鑰引用280可以不包括任何密碼敏感的素材或數(shù)據(jù),而是替代地可以是允許其它編程模塊(諸如可以在平臺(tái)層210內(nèi)執(zhí)行的編程模塊)從安全存儲(chǔ)裝置220訪問(wèn)導(dǎo)出的密鑰260的編程對(duì)象或引用。
因此,根據(jù)一些實(shí)施例,導(dǎo)出的密鑰數(shù)據(jù)(諸如導(dǎo)出的密鑰260)可以留在運(yùn)行時(shí)環(huán)境(例如,虛擬化執(zhí)行環(huán)境205)的安全部分內(nèi)??梢詣?chuàng)建隨后可以在密碼操作中使用的密鑰對(duì)象(諸如導(dǎo)出的密鑰引用280)。此外,在一些實(shí)施例中,可以不需要經(jīng)由應(yīng)用層中的存儲(chǔ)器將來(lái)自導(dǎo)出功能的(安全或密碼)數(shù)據(jù)復(fù)制到密鑰對(duì)象中。
在一些實(shí)施例中,密鑰導(dǎo)出功能(諸如由密鑰導(dǎo)出模塊250實(shí)現(xiàn)的密鑰導(dǎo)出功能)可以在硬件中實(shí)現(xiàn),其可以提供優(yōu)于僅軟件方法的性能和/或安全益處。此外,在一些實(shí)施例中,平臺(tái)層210可以是經(jīng)認(rèn)證的平臺(tái)(或可以是其一部分),因此密鑰導(dǎo)出功能也可以是經(jīng)認(rèn)證的平臺(tái)的一部分。
各種標(biāo)準(zhǔn)化密鑰導(dǎo)出功能已經(jīng)由各種行業(yè)和/或組織(諸如金融行業(yè)、國(guó)家標(biāo)準(zhǔn)與技術(shù)研究所(nist)、互聯(lián)網(wǎng)工程任務(wù)組(ietf)、歐洲電信標(biāo)準(zhǔn)協(xié)會(huì)、第三代合作伙伴計(jì)劃、可信計(jì)算組的可信平臺(tái)模塊(tmp)規(guī)范等)定義(或推薦)。在一些實(shí)施例中,標(biāo)準(zhǔn)化kdf可以在安全環(huán)境的安全芯片或硬化os中實(shí)現(xiàn),諸如在卡計(jì)算設(shè)備200的硬件內(nèi)或在虛擬化執(zhí)行環(huán)境205的安全部分內(nèi)。
根據(jù)一些實(shí)施例,kdf的輸出數(shù)據(jù)(諸如導(dǎo)出的密鑰260)可以在這個(gè)安全區(qū)域中被直接管理,并且因此密鑰的內(nèi)容可以不暴露于芯片的(更不安全的)ram或環(huán)境的通用存儲(chǔ)器(例如,可經(jīng)由應(yīng)用層230訪問(wèn)的存儲(chǔ)器)。換句話說(shuō),可以在執(zhí)行環(huán)境的安全部分(例如,在平臺(tái)層的芯片或安全區(qū)域內(nèi))中創(chuàng)建和初始化導(dǎo)出的密鑰。
此外,在平臺(tái)的安全區(qū)域內(nèi)實(shí)現(xiàn)密鑰導(dǎo)出功能可以防止應(yīng)用使用不正確kdf實(shí)現(xiàn)以及將導(dǎo)出的密鑰的內(nèi)容(或其一部分)留在不安全的共享緩沖區(qū)或存儲(chǔ)器的其它部分中(就與平臺(tái)的安全區(qū)域相同的程度而言)。
在一些實(shí)施例中,在平臺(tái)層實(shí)現(xiàn)密鑰導(dǎo)出功能還可以減小個(gè)體應(yīng)用(或小應(yīng)用程序)的尺寸以及應(yīng)用層中應(yīng)用所需的總尺寸。例如,密鑰導(dǎo)出功能可以在應(yīng)用之間共享,并且每個(gè)應(yīng)用可以不必實(shí)現(xiàn)與另一個(gè)應(yīng)用相同的密鑰導(dǎo)出功能。在一些實(shí)施例中,密鑰導(dǎo)出功能可以由卡計(jì)算設(shè)備的安全域?qū)崿F(xiàn)為可共享的服務(wù),并且密鑰導(dǎo)出功能和主密鑰因此可以在若干應(yīng)用之間共享。
圖3是示出如本文所述的用于安全密鑰導(dǎo)出的方法的一個(gè)實(shí)施例的流程圖。如方框300中所示,根據(jù)一個(gè)實(shí)施例,用于實(shí)現(xiàn)安全密鑰導(dǎo)出的方法可以包括在計(jì)算設(shè)備的平臺(tái)層根據(jù)密鑰導(dǎo)出功能導(dǎo)出密碼密鑰。例如,密鑰導(dǎo)出模塊250可以在卡計(jì)算設(shè)備200的平臺(tái)層210內(nèi)執(zhí)行。密鑰導(dǎo)出模塊250可以在平臺(tái)層210內(nèi)導(dǎo)出導(dǎo)出的密鑰260。
如本文所使用的,術(shù)語(yǔ)“密鑰導(dǎo)出功能”可以指用于生成密碼密鑰的特定方法(即,公式),或者指(在sw和/或hw中實(shí)現(xiàn)的)根據(jù)這種方法生成密碼密鑰的計(jì)算模塊,或兩者兼有。因此,密鑰導(dǎo)出模塊250可以表示當(dāng)在卡計(jì)算設(shè)備200上的平臺(tái)層210中執(zhí)行時(shí)可以根據(jù)特定密鑰導(dǎo)出功能(例如,用于導(dǎo)出密碼密鑰的特定方法)生成導(dǎo)出的密鑰260的軟件模塊。
如方框310中所示,根據(jù)一個(gè)實(shí)施例,用于實(shí)現(xiàn)安全密鑰導(dǎo)出的方法還可以包括在計(jì)算設(shè)備的密碼安全的存儲(chǔ)器區(qū)域中存儲(chǔ)導(dǎo)出的密鑰,而不在計(jì)算機(jī)設(shè)備的應(yīng)用層中甚至臨時(shí)地存儲(chǔ)導(dǎo)出的密鑰。例如,密鑰導(dǎo)出模塊250可以在卡計(jì)算設(shè)備205的安全存儲(chǔ)裝置220中存儲(chǔ)導(dǎo)出的密鑰260,而不在應(yīng)用層230的不太安全的存儲(chǔ)區(qū)域(諸如應(yīng)用存儲(chǔ)裝置225)中甚至臨時(shí)地存儲(chǔ)導(dǎo)出的密鑰260。
圖4是示出根據(jù)一個(gè)實(shí)施例的密碼密鑰的導(dǎo)出的邏輯框圖。在一些實(shí)施例中,應(yīng)用(諸如應(yīng)用240)可以被配置為向密鑰導(dǎo)出模塊(諸如密鑰導(dǎo)出模塊250)提供數(shù)據(jù)(諸如初始數(shù)據(jù)410),用于生成密碼密鑰(諸如導(dǎo)出的密鑰260)。例如,在一個(gè)實(shí)施例中,初始數(shù)據(jù)410可以表示至少部分地用于初始化要由密鑰導(dǎo)出模塊250使用的隨機(jī)數(shù)生成器(例如隨機(jī)數(shù)生成器460)的數(shù)據(jù)。因此,應(yīng)用240可以向密鑰導(dǎo)出模塊250提供初始數(shù)據(jù)410,密鑰導(dǎo)出模塊250又可以將其提供給隨機(jī)數(shù)生成器460,以生成要在導(dǎo)出的密鑰260的生成期間使用的隨機(jī)數(shù)據(jù)430。
即使初始數(shù)據(jù)410可以至少臨時(shí)駐留在應(yīng)用層230中,并且因此從密碼攻擊來(lái)看可能不是安全的,但是根據(jù)一些實(shí)施例,隨機(jī)數(shù)生成器460以及隨機(jī)數(shù)據(jù)430可以是平臺(tái)層210的一部分并且可以駐留在平臺(tái)層210和/或卡計(jì)算設(shè)備的密碼安全特征(諸如安全存儲(chǔ)裝置220)中或利用該密碼安全特征。
在一些實(shí)施例中,密鑰導(dǎo)出功能可以集成到芯片硬件和芯片操作系統(tǒng)的低級(jí)軟件層中(或在其中實(shí)現(xiàn))。例如,根據(jù)一些實(shí)施例,密鑰導(dǎo)出模塊250可以被配置為利用實(shí)現(xiàn)為卡計(jì)算機(jī)設(shè)備200的硬件的一部分(或集成到其中)的密鑰導(dǎo)出功能。
如圖4中所示,根據(jù)一個(gè)實(shí)施例,密鑰導(dǎo)出模塊250可以被配置為基于隨機(jī)數(shù)據(jù)430和/或主密鑰450生成全都可以存儲(chǔ)在安全存儲(chǔ)裝置220中的導(dǎo)出的密鑰260。因此,在一些實(shí)施例中,在生成密碼密鑰中使用的一些(或全部)數(shù)據(jù)可以保留在平臺(tái)層210中,并且因此可以存儲(chǔ)在由平臺(tái)層210和/或卡計(jì)算設(shè)備200提供的安全特征中或利用該安全特征。
在一些實(shí)施例中,主密鑰(諸如主密鑰450)以及其它密碼素材(諸如隨機(jī)數(shù)據(jù)430和/或密碼素材270)可以在卡計(jì)算設(shè)備的生產(chǎn)過(guò)程期間(例如,當(dāng)設(shè)備被加載軟件時(shí))被加載到安全存儲(chǔ)裝置220中,并且因此永遠(yuǎn)不被甚至臨時(shí)地存儲(chǔ)在虛擬化執(zhí)行環(huán)境205的非安全區(qū)域內(nèi)。在其它實(shí)施例中,主密鑰450、隨機(jī)數(shù)據(jù)430和/或密碼素材270可以以其它方式或在其它時(shí)間存儲(chǔ)在安全存儲(chǔ)裝置220中。
在一些實(shí)施例中,可以通過(guò)從隨機(jī)數(shù)生成器460檢索隨機(jī)數(shù)據(jù)430、用主密鑰初始化密碼加密以及可以對(duì)導(dǎo)出數(shù)據(jù)執(zhí)行密碼加密操作來(lái)從主密鑰450導(dǎo)出導(dǎo)出的密鑰260。在一些實(shí)施例中,導(dǎo)出數(shù)據(jù)可以從隨機(jī)數(shù)據(jù)以及一些其它附加數(shù)據(jù)形成。因此,通過(guò)在平臺(tái)層(的安全區(qū)域)內(nèi)實(shí)現(xiàn)隨機(jī)數(shù)生成器和密鑰導(dǎo)出功能,不必使用應(yīng)用層中的存儲(chǔ)器來(lái)復(fù)制隨機(jī)數(shù)據(jù)和任何附加導(dǎo)出數(shù)據(jù)。
例如,在一個(gè)實(shí)施例中,安全存儲(chǔ)裝置220可以表示卡計(jì)算設(shè)備的安全域(sd),并且主密鑰450可以存儲(chǔ)在這個(gè)sd內(nèi)。此外,sd可以向在設(shè)備上執(zhí)行的其它應(yīng)用提供共享接口。因此,根據(jù)一些實(shí)施例,主密鑰450可以保留在sd內(nèi),同時(shí)在多個(gè)應(yīng)用之間共享。
應(yīng)當(dāng)指出,圖4中所示的特定實(shí)施例僅表示一個(gè)可能的示例,并且在其它實(shí)施例中,密鑰導(dǎo)出模塊可以使用不同的數(shù)據(jù)、技術(shù)和方法生成密碼密鑰。
圖5是示出被配置為實(shí)現(xiàn)安全密鑰導(dǎo)出功能的虛擬執(zhí)行環(huán)境的邏輯框圖。在一些實(shí)施例中,卡計(jì)算設(shè)備可以包括由在卡計(jì)算設(shè)備上執(zhí)行的應(yīng)用可使用的多個(gè)密鑰導(dǎo)出模塊以及多個(gè)密碼模塊。因此,卡計(jì)算設(shè)備200可以包括在虛擬化執(zhí)行環(huán)境205內(nèi)執(zhí)行的平臺(tái)層210。平臺(tái)層210可以包括一個(gè)或多個(gè)密鑰導(dǎo)出模塊510,其可以被配置為根據(jù)各種密鑰導(dǎo)出功能或方法生成(例如,導(dǎo)出)密碼密鑰,諸如(一個(gè)或多個(gè))導(dǎo)出的密鑰550。在一些實(shí)施例中,在卡計(jì)算設(shè)備上執(zhí)行的應(yīng)用可以被配置為直接訪問(wèn)(一個(gè)或多個(gè))密鑰導(dǎo)出模塊510中的一個(gè)或多個(gè),以使得生成密碼密鑰。
但是,在其它實(shí)施例中,平臺(tái)層210可以被配置為實(shí)現(xiàn)密鑰導(dǎo)出功能工廠500,密鑰導(dǎo)出功能工廠500又可以被配置為在應(yīng)用請(qǐng)求的情況下生成特定密鑰導(dǎo)出模塊和/或提供對(duì)特定密鑰導(dǎo)出模塊的訪問(wèn)。例如,密鑰導(dǎo)出功能工廠500可以包括并暴露卡計(jì)算設(shè)備的應(yīng)用層內(nèi)的應(yīng)用可訪問(wèn)的一個(gè)或多個(gè)工廠api方法。應(yīng)用可以經(jīng)由一個(gè)或多個(gè)工廠api方法訪問(wèn)密鑰導(dǎo)出功能工廠500,以請(qǐng)求特定密鑰導(dǎo)出模塊510。作為響應(yīng),密鑰導(dǎo)出功能工廠500可以生成被配置為提供對(duì)特定密鑰導(dǎo)出模塊的訪問(wèn)的編程對(duì)象。例如,在一個(gè)實(shí)施例中,密鑰導(dǎo)出功能工廠500可以被配置為生成并返回包括用于訪問(wèn)和執(zhí)行密鑰導(dǎo)出模塊的一個(gè)或多個(gè)方法調(diào)用的密鑰導(dǎo)出功能對(duì)象。
(一個(gè)或多個(gè))密鑰導(dǎo)出模塊510可以被配置為生成(例如,導(dǎo)出)密碼密鑰(諸如(一個(gè)或多個(gè))導(dǎo)出的密鑰550),密碼密鑰又可以在一個(gè)或多個(gè)密碼模塊530中可用。在一些實(shí)施例中,(一個(gè)或多個(gè))密鑰導(dǎo)出模塊510可以被配置為基于單個(gè)主密鑰(諸如主密鑰540)生成多于一個(gè)導(dǎo)出的密鑰。因此,通過(guò)利用安全密鑰導(dǎo)出功能,運(yùn)行時(shí)環(huán)境的平臺(tái)層(諸如虛擬化執(zhí)行環(huán)境205的平臺(tái)層210)可以保護(hù)運(yùn)行時(shí)環(huán)境中的標(biāo)準(zhǔn)化kdf,并且可以被配置為在若干應(yīng)用(諸如(一個(gè)或多個(gè))應(yīng)用240)之間共享kdf和主密鑰。
但是,在其它實(shí)施例中,(一個(gè)或多個(gè))密鑰導(dǎo)出模塊510可以不基于單個(gè)主密鑰生成多個(gè)密鑰。一般而言,根據(jù)不同實(shí)施例,可以使用用于生成或?qū)С雒艽a密鑰的各種技術(shù)當(dāng)中的任何一種。
在一些實(shí)施例中,(一個(gè)或多個(gè))密碼模塊530可以表示利用(或需要)密碼密鑰(諸如加密、解密、認(rèn)證等)的各種方法和/或功能當(dāng)中的任何一種。
圖6是示出根據(jù)一個(gè)實(shí)施例的利用具有導(dǎo)出的密碼密鑰的密碼功能的應(yīng)用的邏輯框圖。如圖6中所示,在虛擬化執(zhí)行環(huán)境205的應(yīng)用層230內(nèi)執(zhí)行的應(yīng)用(諸如應(yīng)用240)可以從密鑰導(dǎo)出功能工廠500獲得密鑰導(dǎo)出功能對(duì)象610。
例如,應(yīng)用240可以調(diào)用密鑰導(dǎo)出功能工廠500的方法,并且可以指定(或識(shí)別)特定密鑰導(dǎo)出功能。作為響應(yīng),密鑰導(dǎo)出功能工廠500可以創(chuàng)建密鑰導(dǎo)出功能對(duì)象610并將其配置為提供對(duì)特定密鑰導(dǎo)出功能的訪問(wèn)(諸如通過(guò)能夠調(diào)用對(duì)應(yīng)密鑰導(dǎo)出模塊的方法)。
然后應(yīng)用240可以使用密鑰導(dǎo)出功能對(duì)象610來(lái)訪問(wèn)密鑰導(dǎo)出模塊510,以便生成導(dǎo)出的密鑰260。例如,在一個(gè)實(shí)施例中,密鑰導(dǎo)出功能工廠500的方法可以返回密鑰導(dǎo)出功能對(duì)象610的實(shí)例,并且密鑰導(dǎo)出功能對(duì)象610可以提供經(jīng)由密鑰導(dǎo)出模塊510對(duì)一個(gè)特定密鑰導(dǎo)出功能的訪問(wèn)。此外,根據(jù)一些實(shí)施例,應(yīng)用可以能夠重用密鑰導(dǎo)出功能對(duì)象610,以便經(jīng)由不同的密鑰導(dǎo)出模塊訪問(wèn)不同的密鑰導(dǎo)出功能,諸如通過(guò)調(diào)用密鑰導(dǎo)出功能工廠500的另一個(gè)方法。
密鑰導(dǎo)出模塊510可以向應(yīng)用240返回密鑰引用(諸如導(dǎo)出的密鑰引用280)。在一些實(shí)施例中,導(dǎo)出的密鑰引用280可以表示編程對(duì)象,諸如在面向?qū)ο蟮木幊陶Z(yǔ)言實(shí)現(xiàn)中。在其它實(shí)施例中,導(dǎo)出的密鑰引用280可以表示引用平臺(tái)層210內(nèi)的數(shù)據(jù)的另一種方法。
然后應(yīng)用240可以將導(dǎo)出的密鑰引用280傳遞到密碼模塊530,使得密碼模塊530可以經(jīng)由導(dǎo)出的密鑰引用280訪問(wèn)安全存儲(chǔ)裝置220中的導(dǎo)出的密鑰260。因此,在一些實(shí)施例中,密碼模塊530可以經(jīng)由導(dǎo)出的密鑰引用280訪問(wèn)導(dǎo)出的密鑰260,諸如為了使用導(dǎo)出的密鑰260執(zhí)行一個(gè)或多個(gè)密碼功能(例如,加密、解密、認(rèn)證等)。
如圖6中所示,只有對(duì)密碼對(duì)象的引用(諸如密鑰導(dǎo)出功能對(duì)象610和導(dǎo)出的密鑰引用280)可以駐留在應(yīng)用層230中。在一些實(shí)施例中,密鑰導(dǎo)出功能工廠500、(一個(gè)或多個(gè))密鑰導(dǎo)出模塊510、導(dǎo)出的密鑰260和(一個(gè)或多個(gè))密碼模塊530可以駐留在平臺(tái)層210中和/或在其中執(zhí)行。因此,根據(jù)各種實(shí)施例,敏感的密碼信息(諸如密鑰導(dǎo)出功能的細(xì)節(jié)、導(dǎo)出的密鑰和密碼模塊的細(xì)節(jié))以及其它密碼敏感素材可以在平臺(tái)層和/或卡計(jì)算設(shè)備的一個(gè)或多個(gè)安全特征內(nèi)、之下或利用所述安全特征。
換句話說(shuō),相比于密碼功能和/或數(shù)據(jù)在應(yīng)用層230內(nèi)的情況,攻擊者可以更難以定位、獲得和/或分析在平臺(tái)層210內(nèi)(或者在平臺(tái)層210內(nèi)執(zhí)行)的密碼功能和/或數(shù)據(jù)。例如,密碼數(shù)據(jù)(諸如導(dǎo)出的密鑰260)可以存儲(chǔ)在安全存儲(chǔ)裝置220內(nèi),安全存儲(chǔ)裝置220可以表示比分配給應(yīng)用層230和/或由應(yīng)用層230使用的(一個(gè)或多個(gè))存儲(chǔ)器區(qū)域更安全(例如,針對(duì)密碼攻擊)的存儲(chǔ)器的區(qū)域。
圖7是示出根據(jù)一個(gè)實(shí)施例的用于經(jīng)由密鑰引用使用導(dǎo)出的密碼密鑰的方法的一個(gè)實(shí)施例的流程圖。如方框710中所示,根據(jù)一個(gè)實(shí)施例,應(yīng)用可以執(zhí)行返回密鑰導(dǎo)出功能對(duì)象的卡計(jì)算設(shè)備的平臺(tái)層的工廠api方法,諸如可以由導(dǎo)出功能工廠500提供的工廠api方法。此外,如方框720中所示,應(yīng)用可以經(jīng)由密鑰導(dǎo)出功能對(duì)象執(zhí)行平臺(tái)層的密鑰導(dǎo)出功能,該密鑰導(dǎo)出功能返回與根據(jù)密鑰導(dǎo)出功能導(dǎo)出的密鑰對(duì)應(yīng)的密鑰引用。例如,如上所述,導(dǎo)出功能工廠500可以返回密鑰導(dǎo)出功能對(duì)象610,其可用于訪問(wèn)密鑰導(dǎo)出模塊510的一個(gè)或多個(gè)方法。
導(dǎo)出的密鑰可以存儲(chǔ)在卡計(jì)算設(shè)備的密碼安全存儲(chǔ)器區(qū)域中,如在方框720中。例如,在一個(gè)實(shí)施例中,導(dǎo)出的密鑰260可以由密鑰導(dǎo)出模塊510存儲(chǔ)在安全存儲(chǔ)裝置220中。如方框730中所示,可以執(zhí)行平臺(tái)層的密碼功能,將密鑰引用作為輸入傳遞。例如,應(yīng)用240可以執(zhí)行密碼模塊530的一個(gè)或多個(gè)方法,并且可以將導(dǎo)出的密鑰引用280作為輸入傳遞到所執(zhí)行的(一個(gè)或多個(gè))方法。此外,如方框740中所示,根據(jù)一些實(shí)施例,密碼功能可以經(jīng)由密鑰引用訪問(wèn)安全存儲(chǔ)器區(qū)域中的導(dǎo)出的密鑰。例如,密碼模塊530的一個(gè)或多個(gè)方法可以被配置為使用密碼密鑰來(lái)執(zhí)行一個(gè)或多個(gè)密碼功能(例如,加密、解密、認(rèn)證等)。因此,密碼模塊530可以經(jīng)由導(dǎo)出的密鑰引用280訪問(wèn)安全存儲(chǔ)裝置220中的導(dǎo)出的密鑰260。
本文所述的用于安全密鑰導(dǎo)出的技術(shù)可以在各種各樣的計(jì)算系統(tǒng)當(dāng)中的任何一個(gè)中實(shí)現(xiàn)。圖8示出了如本文所述并根據(jù)各種實(shí)施例的被配置為實(shí)現(xiàn)安全密鑰導(dǎo)出的卡計(jì)算設(shè)備。
在一些實(shí)施例中,卡計(jì)算設(shè)備1400可以是具有嵌入式集成電路的各種類型的袖珍卡當(dāng)中的任何一種,包括但不限于智能卡、芯片卡、集成電路卡(icc)或通用集成電路卡(uicc)、信用卡、自動(dòng)柜員機(jī)(atm)卡、移動(dòng)電話訂戶身份模塊(sim)卡、付費(fèi)電視授權(quán)卡、預(yù)付費(fèi)卡、高安全性標(biāo)識(shí)卡、接入控制卡和電話支付卡。卡計(jì)算設(shè)備1400可以被配置為在各種系統(tǒng)當(dāng)中的任何一個(gè)中用于各種角色,諸如為了提供標(biāo)識(shí)、認(rèn)證、數(shù)據(jù)存儲(chǔ)和/或應(yīng)用處理。
如本文所述,卡計(jì)算設(shè)備1400可以被配置為經(jīng)由各種卡讀取設(shè)備和/或接口當(dāng)中的任何一個(gè)與外部設(shè)備和服務(wù)通信。例如,在一些實(shí)施例中,卡計(jì)算設(shè)備1400可以包括一個(gè)或多個(gè)終端接口1450。在一些實(shí)施例中,終端接口1450可以是卡計(jì)算設(shè)備與用于卡計(jì)算設(shè)備的主機(jī)或終端之間的通信介質(zhì)。終端接口1450可以被配置為根據(jù)各種協(xié)議(包括但不限于單線協(xié)議(swp)和主機(jī)控制器接口(hci)規(guī)范)當(dāng)中的任何一種進(jìn)行通信。
在一些實(shí)施例中,終端接口1450可以包括接觸區(qū)域,該接觸區(qū)域包括若干導(dǎo)電接觸墊,當(dāng)插入終端、主機(jī)或其它讀卡器時(shí),接觸墊可以提供電連接。在其它實(shí)施例中,終端接口1450可以包括被配置為經(jīng)由無(wú)線電波與終端通信的非接觸式通信設(shè)備。
雖然本文主要參考較小的(例如,袖珍)集成電路卡來(lái)描述,但本文所述的方法和技術(shù)也可以在其它計(jì)算設(shè)備上執(zhí)行。因此,在一些實(shí)施例中,卡計(jì)算設(shè)備1400可以是各種類型的設(shè)備當(dāng)中的任何一種,包括但不限于移動(dòng)電話、個(gè)人計(jì)算機(jī)系統(tǒng)、臺(tái)式計(jì)算機(jī)、膝上型或筆記本計(jì)算機(jī)、大型計(jì)算機(jī)系統(tǒng)、工作站、網(wǎng)絡(luò)計(jì)算機(jī)、消費(fèi)者設(shè)備、應(yīng)用服務(wù)器、存儲(chǔ)設(shè)備、外圍設(shè)備(諸如交換機(jī)、調(diào)制解調(diào)器、路由器等),或者一般而言任何類型的計(jì)算設(shè)備。
在一些實(shí)施例中,本文所述的方法可以由可包括其上存儲(chǔ)有指令的非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的計(jì)算機(jī)程序產(chǎn)品或軟件實(shí)現(xiàn),指令可以用于對(duì)計(jì)算機(jī)系統(tǒng)(或其它電子設(shè)備)進(jìn)行編程,以執(zhí)行本文所述的一些或全部技術(shù)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以包括用于以機(jī)器(例如,計(jì)算機(jī))可讀的形式(例如,軟件、處理應(yīng)用)存儲(chǔ)信息的任何機(jī)制。機(jī)器可讀介質(zhì)可以包括但不限于磁存儲(chǔ)介質(zhì)(例如,硬盤驅(qū)動(dòng)器或軟盤);光存儲(chǔ)介質(zhì)(例如,cd-rom);磁-光存儲(chǔ)介質(zhì);只讀存儲(chǔ)器(rom);隨機(jī)存取存儲(chǔ)器(ram);可擦可編程存儲(chǔ)器(例如,eprom和eeprom);閃存;電的或適于存儲(chǔ)程序指令的其它類型的介質(zhì)。此外,程序指令可以使用光學(xué)、聲學(xué)或其它形式的傳播信號(hào)(例如,載波、紅外信號(hào)、數(shù)字信號(hào)等)來(lái)傳送。
卡計(jì)算設(shè)備1400可以包括處理器單元1470(可能包括集成電路、可自編程的單芯片微型計(jì)算機(jī)(spom)、多處理器、單線程處理器、多線程處理器、多核處理器等),其可以被配置為執(zhí)行運(yùn)行時(shí)環(huán)境,諸如包括一個(gè)或多個(gè)組件或應(yīng)用(諸如虛擬化執(zhí)行環(huán)境205、平臺(tái)層210和密鑰導(dǎo)出模塊250)的運(yùn)行時(shí)環(huán)境1430,這些組件或應(yīng)用可以存在于存儲(chǔ)在運(yùn)行時(shí)環(huán)境1430在其上執(zhí)行的相同卡計(jì)算設(shè)備1400的存儲(chǔ)器1410中的程序指令1420中或者可以存在于存儲(chǔ)在類似于或不同于卡計(jì)算設(shè)備1400的另一個(gè)計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器中的程序指令中。
卡計(jì)算設(shè)備1400可以包括可以是可變或不可變的一個(gè)或多個(gè)系統(tǒng)存儲(chǔ)器1410(例如,高速緩存、sramdram、rdram、edoram、ddrram、sdram、rambusram、eeprom等當(dāng)中的一個(gè)或多個(gè))、系統(tǒng)互連1440(例如,ldt、pci、isa等)和終端接口1450(例如,atm接口、以太網(wǎng)接口、幀中繼接口等)。存儲(chǔ)介質(zhì)也可以包括其它類型的存儲(chǔ)器,或者其組合。在其它實(shí)施例中,卡計(jì)算設(shè)備1400可以包括比圖14所示更多、更少或不同的組件。(一個(gè)或多個(gè))處理器1470、終端接口1450和系統(tǒng)存儲(chǔ)器1410可以耦合到系統(tǒng)互連1440。
系統(tǒng)存儲(chǔ)器1410當(dāng)中的一個(gè)或多個(gè)可以包括被配置為實(shí)現(xiàn)本文所述的用于建立和管理安全信道通信(根據(jù)本文所述的任何實(shí)施例)的一些或全部技術(shù)的程序指令1420。例如,根據(jù)一個(gè)實(shí)施例,系統(tǒng)存儲(chǔ)器1410中的一個(gè)或多個(gè)可以包括實(shí)現(xiàn)和/或執(zhí)行運(yùn)行時(shí)環(huán)境1430、虛擬化執(zhí)行環(huán)境205、平臺(tái)層210和密鑰導(dǎo)出模塊250的代碼。
在各種實(shí)施例中,程序指令1420、運(yùn)行時(shí)環(huán)境1430、虛擬化執(zhí)行環(huán)境205、平臺(tái)層210和密鑰導(dǎo)出模塊250和/或這些組件的各個(gè)子模塊可以各自以各種編程語(yǔ)言或方法當(dāng)中的任何一種來(lái)實(shí)現(xiàn)。例如,在一個(gè)實(shí)施例中,虛擬化執(zhí)行環(huán)境205、平臺(tái)層210和密鑰導(dǎo)出模塊250可以是基于java的,而在另一個(gè)實(shí)施例中,它們可以使用c或c++編程語(yǔ)言來(lái)編寫。類似地,根據(jù)各種實(shí)施例,運(yùn)行時(shí)環(huán)境1430可以使用java、c、c++或另一種編程語(yǔ)言來(lái)編寫。而且,在一些實(shí)施例中,運(yùn)行時(shí)環(huán)境1430、虛擬化執(zhí)行環(huán)境205、平臺(tái)層210和密鑰導(dǎo)出模塊250以及這些組件的各種子模塊可以不使用相同的編程語(yǔ)言來(lái)實(shí)現(xiàn)。
雖然本文已經(jīng)參考具體的實(shí)施例描述了各種系統(tǒng)和方法,但是應(yīng)當(dāng)理解,這些實(shí)施例是說(shuō)明性的,并且本公開(kāi)內(nèi)容的范圍不限于這些具體的實(shí)施例。許多變化、修改、添加和改進(jìn)是可能的。例如,在描述中識(shí)別出的塊和邏輯單元是為了理解所描述的實(shí)施例,而不意味著限制本公開(kāi)內(nèi)容。功能可以在本文所述的系統(tǒng)和方法的各種實(shí)現(xiàn)中以不同的方式在方框中分離或組合,或者用不同的術(shù)語(yǔ)來(lái)描述。
這些實(shí)施例意在是說(shuō)明性而非限制性的。相應(yīng)地,可以為在本文中描述為單個(gè)實(shí)例的組件提供多個(gè)實(shí)例。各種組件、操作和數(shù)據(jù)存儲(chǔ)之間的邊界在某種程度上是任意的,并且特定操作在具體說(shuō)明性配置的上下文中示出。可以想到功能的其它分配,并且這些分配可以落入隨后的權(quán)利要求的范圍內(nèi)。最后,在示例性配置中作為離散組件給出的結(jié)構(gòu)和功能可以實(shí)現(xiàn)為組合的結(jié)構(gòu)或組件。這些和其它變化、修改、添加和改進(jìn)可以落入如隨后權(quán)利要求中定義的本公開(kāi)內(nèi)容的范圍內(nèi)。
雖然已經(jīng)詳細(xì)描述了上述實(shí)施例,但是一旦完全理解了上述公開(kāi)內(nèi)容,許多變化和修改就將變得顯而易見(jiàn)。意在將以下權(quán)利要求解釋為包括所有此類變化和修改。