欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

處理器安全的制作方法

文檔序號:6360186閱讀:179來源:國知局
專利名稱:處理器安全的制作方法
技術(shù)領域
本發(fā)明涉及對在處理器上執(zhí)行的代碼進行認證。
背景技術(shù)
公開密鑰密碼(cryptography)涉及生成非對稱密鑰對,通常稱之為公開密鑰和私有密鑰。這樣稱呼是因為私有密鑰由上述密碼方案的實施方所保密,同時將公開密鑰分配給一個或多個其他方(然而它不需要在自由或任意可用的意義上“公開”——在很多情況下,仍然謹慎地限制公開密鑰的分配)。如圖I中所示意性示出的,一般是基于輸入到密鑰生成函數(shù)102的大量隨機數(shù)來生成公開和私有密鑰對。公開密鑰K’和私有密鑰K依據(jù)該生成函數(shù)和隨機數(shù)而因此數(shù)學上彼此相關,但是由于該函數(shù)的性質(zhì),因此從公開密鑰K’導出或推斷出私有密鑰K實際上 是不可行的。密鑰生成函數(shù)的一個示例是RSA(Rivest, Shamir和Adleman)算法。適用于密鑰生成函數(shù)102的該算法和其他合適的算法的細節(jié)對于本領域技術(shù)人員是熟悉的。公開密鑰密碼出現(xiàn)了兩種類型。第一種是公開密鑰加密,據(jù)此發(fā)送方使用公開密鑰來加密消息并且接收方使用私有密鑰來解密消息,因此使消息的信息內(nèi)容對于除了私有密鑰的持有者外的任何人保密。第二種是認證,據(jù)此某一信息的供應者使用私有密鑰來“簽名”該信息。然后,公開密鑰的任何持有者均可驗證該信息確實來源于私有密鑰的持有者,并且因此該信息是可靠的。非對稱或公開密鑰技術(shù)的特有特征在于,用于加密或簽名信息的密鑰與用于解密或認證信息的密鑰是不同的。以下涉及后一種用于認證的公開密鑰密碼。如圖2中所示意性示出的,為了對將運行在處理器上的其他軟件的可靠性進行驗證,可由安全引導過程(procedure)來使用這樣的技術(shù)。圖2示出了集成電路(IC)或“芯片”形式的處理器204。處理器芯片204包括中央處理單元(CPU) 206和第一非易失性片上存儲器208,以及可選地包括第二非易失性片上存儲器210。另外,CPU 206可操作地耦合至非易失性片外存儲器212。第一片上存儲器208是主引導存儲器,其存儲主引導代碼。CPU 206是硬連線的,以便處理器一旦啟動或重啟,CPU 206便從主引導存儲器208自動地開始執(zhí)行主引導代碼。主引導代碼被執(zhí)行時,實施處理器啟動和運行所需的基本初始化。主引導存儲器208優(yōu)選地采用安全只讀存儲器(ROM)的形式,該只讀存儲器被安排為不可由客戶或用戶來改變,例如,一次性可編程存儲器,其中的數(shù)據(jù)成分一旦經(jīng)編程就永久性地熔合,從而不能重寫存儲器。片外存儲器212可用于存儲次級引導代碼。主引導代碼據(jù)此包括這樣的過程其一旦已合適地配置處理器,則自動地激發(fā)次級引導代碼的執(zhí)行來提供進一步的“軟件”引導功能。次級引導代碼允許處理器204的一些引導功能由客戶(例如,用戶終端的制作者,所述用戶終端諸如其中將結(jié)合芯片的無線移動蜂窩裝置)“現(xiàn)場(in the field)”編程,相反主引導代碼來自芯片本身的制造商的預編程,并且不應該是由客戶或用戶可改變的。片外存儲器212還可用于存儲用于在處理器上運行的應用程序和/或數(shù)據(jù)文件。片外存儲器212例如可以是諸如外部閃存的可擦除可編程存儲器(EPROM)??商娲鼗虼送猓渭壠洗鎯ζ?10可用于存儲次級引導代碼、其他應用程序和/或數(shù)據(jù)文件。次級片上存儲器210例如可以是諸如片上閃存的EEPR0M。另外,可以從磁性存儲介質(zhì)或甚至從諸如因特網(wǎng)的網(wǎng)絡來取回應用程序和數(shù)據(jù)。生產(chǎn)處理器是供應給客戶用于在諸如用戶終端的產(chǎn)品中使用的處理器的實例(instance)。生產(chǎn)處理器往往經(jīng)配置以僅對使用生產(chǎn)密鑰所簽名的軟件進行認證,將裝置鎖定為僅運行已經(jīng)使用這些安全生產(chǎn)密鑰所正式簽名的代碼。具體地,引導代碼經(jīng)配置以在允許其他代碼執(zhí)行前驗證所述其他代碼已經(jīng)被可靠地簽名。例如,次級引導代碼可經(jīng)配置以在允許應用程序加載和執(zhí)行前驗證所述應用程序已經(jīng)被可靠地簽名。如圖2所示,簽名過程包括將私有密鑰和應用程序代碼兩者輸入密碼函數(shù)202中,其基于私有密鑰輸出具有密碼簽名的代碼。密碼函數(shù)202是諸如哈希函數(shù)的單向函數(shù),其 細節(jié)對于本領域技術(shù)人員將是熟悉的。安裝在片外存儲器212 (或次級片上存儲器210)上的是應用程序的該經(jīng)簽名的版本。引導代碼包括或具有相應公開密鑰的知識,并且經(jīng)配置以在允許將應用程序加載并運行在處理器上(并且僅在驗證的條件下才這樣做)之前使用公開密鑰來驗證該簽名的可靠性。因此,處理器可以驗證它正在執(zhí)行已被授權(quán)用于在該處理器上使用的軟件,即,來源于上述持有私有密鑰并且因此被授權(quán)為處理器供應應用程序的一方(一般是芯片的設計者或制造商,或他們的授權(quán)合作者)。類似的過程也可用于認證數(shù)據(jù)文件。盡管如此,能夠解鎖個別生產(chǎn)處理器從而其可運行試用軟件是可取的。這應該以避免危害尚未被明確解鎖的裝置的方式來進行。習慣上,這往往使用秘密后門來進行。然而,由于隱匿不是足夠的安全措施——“隱匿的”秘密后門機制可能成為公知的,并且如果這樣的話,那么處理器的每個實例的安全均會受到危害,因此該方法有缺陷。另外可以根本不提供進行解鎖的特征,使得不可能為特定裝置提供試用軟件。在這樣的情況下,允許試用軟件的唯一方法將是泄露私有生產(chǎn)密鑰,其將會由于所涉及的安全過程而十分昂貴,并且還將會冒著包括生產(chǎn)密鑰并由此危害處理器的每個實例的安全的風險。已經(jīng)提出涉及在制造裝置時存儲芯片ID的安全數(shù)據(jù)庫的方法。然而,考慮到進行制造的環(huán)境,安全地維護這些數(shù)據(jù)庫將具有先天上的困難。可取的是提供可以被解鎖以運行未經(jīng)簽名的試用軟件的處理器,但是不會顯著地危害處理器的每個實例的安全。

發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個方面,提供一種系統(tǒng)包括包括處理器和存儲器的裝置,所述存儲器存儲經(jīng)安排以由所述處理器一旦啟動或重啟便自動地執(zhí)行的引導代碼,其中所述引導代碼包括可操作以驗證附加代碼是否經(jīng)認證用于在所述處理器上執(zhí)行的代碼認證過程;以及單獨的安全單元,所述單獨的安全單元包括私有解鎖密鑰和密碼邏輯,所述密碼邏輯經(jīng)配置以使用所述私有解鎖密鑰來簽名部分數(shù)據(jù),從而生成經(jīng)簽名的解鎖文件用于供應至存儲位置;其中所述處理器經(jīng)安排以從所述存儲位置訪問所述解鎖文件,使得所述解鎖文件對于所述處理器是可用的,而無需要求所述處理器和所述安全單元之間的連接;以及,其中所述引導代碼進一步包括經(jīng)配置以檢查所述存儲位置中所述解鎖文件的可用性的解鎖認證過程,并且如果可用則基于其簽名來驗證所述解鎖文件是否經(jīng)認證用于在所述處理器上使用,以使得在驗證所述解鎖文件的條件下對所述引導認證過程去除限制。因此,本發(fā)明修改安全引導代碼來查找和認證經(jīng)簽名的解鎖文件。如果存在所述經(jīng)簽名的解鎖文件,則所述安全引導將對所述認證過程去除限制,以優(yōu)選地接受采用相比生產(chǎn)密鑰具有較低安全級別的開發(fā)密鑰所簽名的代碼和數(shù)據(jù),或甚至可能完全繞過所述認證過程。由諸如軟件狗的安全單元來生成所述解鎖文件。常規(guī)的安全軟件狗必須保持插入到裝置中以允許其運行具體的軟件。只要將軟件狗連接至所述裝置,則其使得軟件運行以及不再運行——在所述軟件狗已經(jīng)斷開連接后,所述軟件將不在所述裝置上運行?!?br> 然而,本發(fā)明的所述安全單元生成解鎖文件,其存儲到可由所述處理器訪問但是與所述安全單元分開的位置,并且因此對于所述處理器可用而所述安全單元不需要物理地連接至所述處理器。這樣,一旦已經(jīng)生成所述解鎖文件,即使所述安全單元并沒有物理地存在,但是因為所述解鎖文件被簽名和認證所以安全仍然得以維持,因此可對所述引導認證過程去除限制。在優(yōu)選實施例中,所述處理器具有受限制模式和去除限制模式,并且通過硬件設定或由硬件所保護的其他機制來設置為所述受限制模式,所述代碼認證過程經(jīng)配置以在所述受限制模式中以較高安全級別進行操作以及在去除限制模式中以較低安全級別進行操作;并且在這樣的實施例中,所述解鎖認證過程經(jīng)配置以通過覆寫硬件設定或其他受硬件保護的機制并且因此啟用所述去除限制模式來實施所述去除限制。例如,可由一個或多個熔絲鎖存器來將所述處理器設置為所述受限制模式,并且可通過覆寫所述一個或多個熔絲鎖存器來配置所述解鎖認證過程以實施所述除去限制。因此,所述處理器可包括具有在硬件中所選擇的(例如,通過熔合在所述處理器上一個或多個熔絲鎖存器中的設定)至少兩個(或更多個)安全級別的安全機制。然而,為了降低所述安全級別,本發(fā)明通過使用經(jīng)認證的解鎖文件有利地允許硬件設定隨后被覆與。在具體的優(yōu)選實施例中,所述解鎖文件可包括所述裝置或處理器的標識符,例如所述處理器的芯片ID。有利地,這意味著所述解鎖文件綁定為僅解鎖所述裝置或處理器的特定實例,使得所述解鎖文件的存在性不會危害其他實例的安全。優(yōu)選地,可以通過在便攜式安全單元和與正被解鎖的所述裝置分開的計算機終端之間的交互來生成所述解鎖文件。這是有利的,因為這意味著一旦生成,則所述解鎖文件即可被供應給上述裝置而所述安全單元無需物理地存在于所述裝置的位置處。然而,因為所述解鎖與芯片標識符綁定,因此所述解鎖文件可以不危害所述處理器的任何其他實例的安全,并且可以以非安全的方式從所述計算機終端被運送或傳送至所述裝置,例如經(jīng)過諸如因特網(wǎng)的相對非安全的公開網(wǎng)絡。因此在實施例中,所述計算機終端可經(jīng)安排以經(jīng)由網(wǎng)絡供應所述經(jīng)簽名的解鎖文件至所述存儲位置,例如經(jīng)由諸如因特網(wǎng)的互聯(lián)網(wǎng)。
所述計算機終端可以遠離所述裝置,例如分開至少200米遠。所述計算機終端可在地理上遠離所述裝置,例如分開至少10公里。所述計算機終端可操作以通過所述交互的方式來發(fā)起所述經(jīng)簽名的解鎖文件的所述生成。所述發(fā)起可以包括從所述計算機終端供應所述標識符的所述拷貝給所述便攜式
安全單元。所述計算機終端可以經(jīng)安排以經(jīng)由網(wǎng)絡從所述處理器接收所述標識符的所述拷貝,例如經(jīng)由諸如因特網(wǎng)的互聯(lián)網(wǎng)。所述交互可以包括所述便攜式安全單元與所述計算機終端物理地配對。在實施例中,可以使用插入到PC中的安全軟件狗來生成該解鎖文件。在這樣的情況下,向所述軟件狗反饋將要被解鎖的所述芯片的所述芯片ID,并且所述軟件狗返回經(jīng)簽名的解鎖文件。用于簽名該文件的私有解鎖密鑰在所述軟件狗內(nèi)保密。 因為不能從所述軟件狗中讀取或者以其他方式提取所述私有解鎖密鑰,同時所述軟件狗的內(nèi)部裝置被安全地封裝在防拆封的封裝中,因此該軟件狗將不會危害其他裝置的安全。還應該僅提供少量的軟件狗給具有適當?shù)暮戏ㄏ拗频目尚藕献骰锇椤A硗猓谝粋€具體的有利實施例中,對軟件狗進行預編程以在其必須被“充值”之前允許小數(shù)目( 100)的解鎖事件,所述“充值”例如通過被返回到所述軟件狗提供商或從所述提供商接收充值文件。但是除此之外,優(yōu)選地所述軟件狗應當僅允許非常有限的I/o(優(yōu)選地僅簽名所述解鎖文件和接收重新充值)。因此在實施例中,所述便攜式安全單元可以包括計數(shù)器,其經(jīng)安排以便將所述密碼邏輯限制到生成有限數(shù)目的解鎖文件。所述系統(tǒng)可以包括重新充值設施,其允許經(jīng)授權(quán)的提供商重新充值所述計數(shù)器。所述重新充值設施可以經(jīng)安排以遠程供應經(jīng)簽名的重新充值文件給所述便攜式安全單元,所述重新充值文件采用私有重新充值密鑰所簽名;以及所述密碼邏輯可以經(jīng)配置以使用相應的公開重新充值密鑰來驗證所述重新充值文件是否是采用所述私有重新充值密鑰所簽名,并且在這樣對所述經(jīng)簽名的重新充值文件進行驗證的條件下重新充值所述計數(shù)器。所述密碼邏輯可以經(jīng)配置以防止對于同一個標識符生成多個解鎖證書。在另外的實施例中,可以采用私有代碼密鑰對所述附件代碼進行簽名,所述代碼認證過程可以經(jīng)配置以使用與所述私有代碼密鑰相對應的公開代碼密鑰來驗證所述附加代碼,以及所述解鎖認證過程可以經(jīng)配置以使用與所述私有解鎖密鑰相對應的公開解鎖密鑰來驗證所述解鎖文件。可以采用所述私有代碼密鑰的較高安全實例和所述私有代碼密鑰的較低安全實例之一來對所述附加代碼進行簽名;以及,在所述較高安全級別,所述代碼認證過程可以要求使用與第一私有密鑰的所述較高安全實例相對應的所述公開代碼密鑰的實例來驗證所述附加代碼;以及,在所述較低安全級別,所述代碼認證過程可以允許使用與所述第一私有密鑰的較低安全實例相對應的所述公開代碼密鑰的實例來驗證所述附加代碼。所述引導代碼可以包括主引導代碼和次級引導代碼,所述主引導代碼存儲在嵌入所述處理器上的只讀存儲器中;以及,所述處理器可以硬連線以一旦所述處理器啟動或者重啟則執(zhí)行所述主引導代碼,所述主引導代碼可以包括初步認證過程,其經(jīng)配置以驗證所述次級引導代碼是否經(jīng)認證用于在所述處理器上執(zhí)行,以及所述次級引導代碼可以包括所述代碼認證過程和解鎖認證過程。可以采用第一階段私有代碼密鑰來對次級引導代碼進行簽名,可以采用第二階段私有代碼密鑰來對所述附加代碼進行簽名,所述初步認證過程可以經(jīng)配置以使用與所述第一階段私有代碼密鑰相對應的第一階段公開代碼密鑰來驗證所述次級引導代碼,以及所述次級引導代碼可以經(jīng)配置以使用與所述第二階段私有代碼密鑰相對應的第二階段公開代碼密鑰來驗證所述附加代碼。所述附加代碼可以包括數(shù)據(jù)認證過程,其經(jīng)配置以驗證數(shù)據(jù)是否經(jīng)認證用于在所述處理器上加載??梢圆捎盟接袛?shù)據(jù)密鑰來對所述數(shù)據(jù)進行簽名,并且所述數(shù)據(jù)認證過程可以經(jīng)配置以使用與所述私有數(shù)據(jù)密鑰相對應的公開數(shù)據(jù)密鑰來驗證所述數(shù)據(jù)。所述密碼邏輯可以包括密碼處理器和存儲器,所述存儲器存儲經(jīng)安排用于在所述密碼處理器上執(zhí)行的密碼函數(shù)。所述私有解鎖密鑰可以物理地密封在所述便攜式安全單元中。所述私有解鎖密鑰可以經(jīng)安排以不可外部尋址。所述便攜式安全單元可以包括USB軟件狗和智能卡之一。根據(jù)本發(fā)明的另一個方面,提供一種對包括處理器和存儲器的裝置進行解鎖的方法,所述存儲器存儲經(jīng)安排以由所述處理器一旦啟動或者重啟便自動地執(zhí)行的引導代碼,其中所述引導代碼包括可操作以對附加代碼是否經(jīng)認證用于在所述處理器上執(zhí)行進行驗證的代碼認證過程,所述方法包括在單獨的安全單元內(nèi)使用私有解鎖密鑰來簽名部分數(shù)據(jù),從而生成經(jīng)簽名的解鎖文件;以及供應所述解鎖文件至所述處理器可訪問的存儲位置,使得所述解鎖文件對于所述處理器是可用的,而無需要求所述處理器和所述安全單元之間的連接;以及其中所述引導代碼進一步包括解鎖認證過程,并且所述方法進一步包括,一旦引導便執(zhí)行所述代碼認證過程以對在所述存儲位置中的所述解鎖文件的可用性進行檢查,并且如果可用則基于其簽名來驗證所述解鎖文件是否經(jīng)認證用于所述處理器,使得在驗證所述解鎖文件的條件下對所述引導認證過程去除限制。所述方法可以包括根據(jù)以上任何系統(tǒng)特征的進一步的步驟。


為了更好地理解本發(fā)明和示出如何實施本發(fā)明,通過示例的方式對以下附圖加以參考,其中圖I是公開密鑰和私有密鑰對生成過程的示意性框圖,圖2是用于認證和運行經(jīng)簽名的次級代碼的處理器系統(tǒng)的示意性框圖,圖3是用于認證解鎖文件來對未經(jīng)簽名的次級代碼的運行進行解鎖的處理器系統(tǒng)的示意性框圖,以及圖4是用于生成經(jīng)簽名的解鎖文件的過程的示意性框圖。
具體實施例方式在以下實施例中,本發(fā)明修改安全引導代碼以查找和認證包括當前芯片(處理器)的ID的經(jīng)簽名的解鎖文件。如果存在,安全引導和潛在的任何其他有安全意識的應用程序?qū)⒔邮軟]有采用安全的生產(chǎn)強度密鑰所簽名的其他代碼和數(shù)據(jù)(但取而代之的是僅要求采用低安全的開發(fā)強度密鑰來簽名)。圖3示出類似于關于圖2所描述的處理器204,其包括CPU 206和存儲主引導代碼的主引導存儲器208。處理器204耦合至存儲次級引導代碼以及其他應用程序和/或數(shù)據(jù)的外部存儲器212。可替代地,次級引導代碼可存儲在次級片上存儲器210中,和/或其他應用程序或數(shù)據(jù)可存儲在磁性存儲介質(zhì)中或從因特網(wǎng)取回,但在以下示例中假設這些都存儲在外部閃存形式的片外存儲器212中。將要運行在經(jīng)鎖定的生產(chǎn)裝置302上的任何軟件代碼均由私有生產(chǎn)密鑰所簽名,從而指示它的可靠性(假設它確實是可靠的)。引導代碼經(jīng)安排以便一旦處理器204啟動或重啟便由CPU 206自動地執(zhí)行,并且當如此執(zhí)行時,使用相應的公開生產(chǎn)密鑰來驗證簽名的可靠性。 實際上,在優(yōu)選實施例中有生產(chǎn)密鑰的多個階段,如下所討論的。采用第一階段私有生產(chǎn)密鑰A來簽名次級引導代碼。CPU 206是硬連線的,使得一旦處理器啟動或重啟便從主引導存儲器208自動地開始執(zhí)行主引導代碼。主引導代碼經(jīng)安排,以便當以這樣的方式執(zhí)行時,使用相應的第一階段公開生產(chǎn)密鑰A’來對次級引導代碼的可靠性進行驗證。主引導代碼僅在次級引導代碼經(jīng)驗證已經(jīng)采用正確的第一階段私有生產(chǎn)密鑰A所可靠地簽名的情況下允許其執(zhí)行。采用第二階段私有生產(chǎn)密鑰B來簽名應用程序。次級引導代碼包括負責加載應用程序的引導代碼部分,并且經(jīng)安排以便當被執(zhí)行時使用相應的第二階段生產(chǎn)密鑰B’來對其正試圖加載的任何應用程序的可靠性進行驗證。次級引導代碼因此將僅加載這樣的應用程序已驗證對它們已經(jīng)采用正確的第二階段私有生產(chǎn)密鑰B所可靠地簽名。另外,將采用第三階段私有生產(chǎn)密鑰C來對應用程序所要求的任何數(shù)據(jù)進行簽名。處理器上運行的任何安全應用程序均應該經(jīng)安排以使用相應的第三階段公開生產(chǎn)密鑰C’來驗證數(shù)據(jù)的可靠性。應用程序因此將僅對這樣的數(shù)據(jù)進行操作已驗證對它們已經(jīng)采用正確的第三階段私有生產(chǎn)密鑰C所可靠地簽名。數(shù)據(jù)就以上所使用的意義而言意味著信息而非程序代碼自身的指令。處理器204安裝在裝置302形式的生產(chǎn)平臺內(nèi),裝置302例如用于在諸如移動終端、無線數(shù)據(jù)卡或其他用戶設備的產(chǎn)品中使用的電路板。諸如外部閃存212或RF前端(未示出)的其他部件可以安裝在相同的裝置302內(nèi)并且可操作地耦合至處理器204。處理器204包括諸如電熔絲或激光熔絲的熔絲堆316。在具體的優(yōu)選實施例中,這些熔絲包括至少這樣一個熔絲當其被熔斷時,設置處理器204為受限制的生產(chǎn)模式,否則將其設置為去除限制的開發(fā)模式。對于上述的生產(chǎn)密鑰對的所述階段的每一個來說,還提供相應的開發(fā)密鑰對。引導代碼和應用程序經(jīng)配置以便檢查處理器204的模式,并且如果開發(fā)模式被使能,那么在每個階段都首先試圖使用開發(fā)密鑰來認證下一個階段。如果基于開發(fā)密鑰的認證不成功,那么回復到基于生產(chǎn)密鑰的認證。另一方面,在生產(chǎn)模式中只有采用生產(chǎn)密鑰所簽名的代碼和數(shù)據(jù)可被成功地驗證和運行。也就是說,在開發(fā)模式中,主引導代碼最初嘗試使用第一階段公開開發(fā)密鑰Adev’來驗證次級引導代碼是否采用相應的第一階段私有開發(fā)密鑰Adev所可靠地簽名。如果沒有,然后主引導代碼嘗試使用第一階段公開生產(chǎn)密鑰Apm/來驗證次級引導代碼是否采用第一階段私有生產(chǎn)密鑰Aprod所可靠地簽名。如果任意一次驗證檢查成功,那么主引導代碼允許次級引導代碼執(zhí)行,但是如果兩次均不成功,那么主引導代碼阻止次級引導代碼執(zhí)行。這可能導致引導被掛起并且可能生成異常(exception)。依次,假設第一階段認證過程成功,那么次級引導代碼嘗試使用第二階段公開開發(fā)密鑰Bdev’來驗證它將要加載的任何應用程序是否已經(jīng)采用相應的第二階段私有開發(fā)密鑰Bd6v所可靠地簽名。如果沒有任何應用程序已經(jīng)被可靠地簽名,則次級引導代碼接下來嘗試使用第二階段公開生產(chǎn)密鑰Bpm/來驗證應用程序是否已經(jīng)采用第二階段私有開發(fā)密鑰Bprod所可靠地簽名。如果對于應用程序的任意一次驗證檢查成功,那么第二引導代碼允許應用程序執(zhí)行,但是如果應用程序兩次檢查失敗,那么次級引導代碼阻止應用程序執(zhí)行。如果任何所執(zhí)行的應用程序要求數(shù)據(jù),則它可以進一步要求數(shù)據(jù)文件被認證。因此在這種情況下,應用程序首先嘗試使用第三階段公開開發(fā)密鑰Cdev’來驗證數(shù)據(jù)文件是否已經(jīng)采用相應的第三階段私有開發(fā)密鑰Cdev所可靠地簽名。如果沒有,那么應用程序嘗試使用第三階段公開生產(chǎn)密鑰CPr。/來驗證數(shù)據(jù)文件是否已經(jīng)采用第三階段私有生產(chǎn)密鑰Cprod 所可靠地簽名。如果任意一次驗證檢查成功,那么應用程序允許數(shù)據(jù)文件加載,但是如果兩次均不成功,那么應用程序不加載數(shù)據(jù)文件。另一方面在生產(chǎn)模式中,在熔絲堆316中所熔斷的相關的單個熔絲或數(shù)個熔絲將過程限制為,僅嘗試使用公開生產(chǎn)密鑰Apm/ ,Bpro/、CpMd’來驗證可靠性,并且因此只有采用相應的私有生產(chǎn)密鑰ApMd、Bprod, Cprod所簽名的代碼或數(shù)據(jù)將被成功驗證。在生產(chǎn)模式中采用私有開發(fā)密鑰Ad6V、Bd6V或Cd6v所簽名的任何代碼或數(shù)據(jù)都將被拒絕,這是因為基于公開開發(fā)密鑰Adev’、Bdev’或Cdev’的檢查被禁用。由供應商,諸如板或芯片的制造商或者委托制造板或芯片的某人,來提供在生產(chǎn)模式(生產(chǎn)平臺)中具有處理器204的裝置302。裝置302被提供給客戶,諸如上述的用戶設備的制造者(即,工業(yè)客戶而非最終用戶)。例如客戶可以是OEM(原始設備制造商)。由具有使用在實際產(chǎn)品中的目的的供應商來提供生產(chǎn)平臺。另一方面開發(fā)平臺用于測試。一般因為私有開發(fā)密鑰被制作為更易于得到,因此開發(fā)密鑰的安全性低于生產(chǎn)密鑰。然而,在制造中處理器204的大多數(shù)實例將熔合進入生產(chǎn)模式中。僅很少的保留在開發(fā)模式中的實例將被分配,因此開發(fā)密鑰可被制作為更易于得到而不會危害處理器204的很多實例的安全。盡管如此,允許客戶在生產(chǎn)平臺上測試新的代碼是可取的,但僅是在生成平臺中已經(jīng)被特別“經(jīng)解鎖”用于這種測試的一些個別的實例上。例如,可期望的是,在原始開發(fā)測試之后的階段和/或在不同于客戶主要開發(fā)地點的位置,在“現(xiàn)場”的生產(chǎn)裝置上測試新的軟件。解鎖優(yōu)選地包括使處理器回到開發(fā)模式中,從而處理器可再來驗證僅使用較低安全的開發(fā)密鑰所簽名的軟件,并且不要求生產(chǎn)密鑰。然而可替代地,其他實施例被設想,諸如繞過整個認證過程中的一些或所有。在優(yōu)選實施例中,使用軟件狗(dongle)306生成經(jīng)簽名的解鎖文件來達到解鎖。如圖3中所示,生產(chǎn)裝置或平臺302的CPU 206例如通過裝置302中的通用I/O端口(未示出)或測試接口來耦合至與CPU 206分開的諸如臺式或膝上型PC的本地計算機終端303。另外,提供可在地理上遠離CPU 206、裝置302和它的本地終端303,但經(jīng)由諸如因特網(wǎng)的網(wǎng)絡307連接的遠程計算機終端304。遠程計算機終端304包括軟件狗306可插入其中的端口,諸如USB端口。當計算機終端304地理上遠離CPU 206時,設想它們將一般位于不同的城鎮(zhèn)或地理區(qū)域,或者甚至不同的國家或大洲中,并且因此分開數(shù)公里、數(shù)十公里、數(shù)百公里或更遠的量級的距離。這將意味著超過了局域網(wǎng)(LAN)的范圍之外。然而,在其他情況下,遠程終端304可以只是位于同一個辦公室或復合型公司(complex)的不同的區(qū)域,在這個意義上的遠程是超過本地或點對點(ad-hoc)連接的范圍(例如,由USB 2.0規(guī)定的最大線纜長度是5米、藍牙4. 0具有達到200m的范圍以及Wi-Fi具有一般100_200m的可變范圍)。如圖3和4中所示,軟件狗306自身包括密碼邏輯308,例如以出于是運行密碼函數(shù)402的目的而特別包括的其自己的處理器的形式。這樣的處理器有時可稱之為密碼處理器(cryptoprocessor)。在一個具體示例中,密碼處理器包括用于連接至遠程計算機終端304的USB接口 314;基礎CPU 310 ;以及小的、安全的嵌入式存儲器312,其存儲被安排用于在CPU310上執(zhí)行的密碼函數(shù)。軟件狗的存儲器312還存儲私有解鎖密鑰U,其與開發(fā)和生 產(chǎn)密鑰相異。可替代地,私有解鎖密鑰U可寫入被嵌入在軟件狗306中的單獨的熔絲鎖存器組中,和/或密碼邏輯308可在硬連線電路中實現(xiàn)。另外,處理器204包括芯片標識符(ID),其唯一地識別芯片(實際上,唯一的芯片標識符可以事實上是具有非常低的與另一個芯片的標識符一致的可能性的多位隨機數(shù)——這是在本領域中如果出現(xiàn)術(shù)語“唯一”的常見用法)。該芯片ID優(yōu)選地寫入被包括在處理器204上并耦合至CPU 206的熔絲鎖存器堆316中,或者否則至少可由本地計算機終端303訪問(可訪問,但不能被改變)。這些熔絲鎖存器可以是例如電熔絲或激光熔絲??商娲?,芯片ID原則上可包括在安全的主ROM 208中(盡管一般其實用性很小)。如果期望解鎖特定的生產(chǎn)平臺來測試一些試用代碼,則供應芯片ID給遠程計算機終端304,并且然后在遠程計算機終端304上執(zhí)行工具,該遠程計算機終端304供應芯片ID給軟件狗306的密碼邏輯308。如圖4中所示意性示出的,密碼邏輯308采用芯片ID和潛在的其他信息作為輸入。密碼邏輯308使用私有解鎖密鑰U來簽名該信息(包括芯片ID)并且因此生成經(jīng)簽名的解鎖文件,該解鎖文件返回到在遠程計算機終端304上運行的工具。該工具轉(zhuǎn)而從遠程計算機終端304供應解鎖文件給生產(chǎn)裝置302上的處理器204。然后處理器204存儲解鎖文件至外部存儲器212 (或真正地至另一個存儲器諸如次級片上存儲器210)。優(yōu)選地解鎖文件可經(jīng)由網(wǎng)絡307和本地計算機終端303傳送至生產(chǎn)裝置302,例如通過email ;或在其他實施例中,解鎖文件甚至可在諸如磁盤或記憶棒的便攜式存儲介質(zhì)上通過郵寄或快遞來運送。類似地,芯片ID最初可經(jīng)由網(wǎng)絡307和裝置302的本地終端303,或可替代地通過郵寄或快遞甚或口頭地提供給遠程計算機終端304和軟件狗306。因此有利地,系統(tǒng)經(jīng)安排使得生產(chǎn)裝置302不需要物理連接至軟件狗306或存在于與軟件狗306相同的地點。圖4中所示的一切均可在不同于生產(chǎn)裝置302的地點遠程完成。這很重要,因為客戶可能在一個國家或大洲中的城市諸如圣何塞,同時制造商可能在例如亞洲或歐洲的另一個國家。這樣可以從軟件狗306通過非安全的網(wǎng)絡或其他非安全的運送方式來供應解鎖文件,但是因為解鎖文件與芯片ID綁定,因此該解鎖文件不能用來解鎖預期以外的任何其他裝置,并因此不會危害處理器204的任何其他實例的安全。
當處理器204啟動或重啟,它自動開始從主引導存儲器208執(zhí)行主引導代碼,并且然后從片外存儲器212 (或次級片上存儲器210)執(zhí)行次級引導代碼。次級引導代碼經(jīng)配置以檢查經(jīng)簽名的解鎖文件的可用性。例如,其可經(jīng)配置以檢查次級片上存儲器210和/或外部存儲器212中的一個或多個預定的存儲器位置。如果可靠,如前面的段落中所討論的,解鎖文件將已經(jīng)采用正確的私有解鎖密鑰U所簽名。次級引導代碼包括或具有與私有解鎖密鑰U相對應的公開解鎖密鑰U,的知識,并且經(jīng)配置以如果存在解鎖文件,則使用該公開解鎖密鑰U,來驗證解鎖文件的可靠性。該認證過程還以解鎖文件的芯片ID與處理器204的熔絲堆316上的芯片ID相匹配為條件。如果不匹配,解鎖文件可以是被可靠地簽名的,但其用于處理器的不同實例。在解鎖文件被驗證為可靠的并且基于其芯片ID而被用于處理器204的當前實例的條件下,次級引導代碼使處理器204進入“經(jīng)解鎖”模式,據(jù)此它通過重新允許采用較低安全的開發(fā)密鑰Bdev和Cdev所簽名的應用程序和數(shù)據(jù)得以被認證和運行,來去除對驗證過 程的限制,有效地使處理器204回到開發(fā)模式(除了次級引導代碼仍然不得不采用第一階段生產(chǎn)密鑰Aprad而不是第一階段開發(fā)密鑰Ad6v來簽名以外)??商娲?,經(jīng)解鎖模式甚至可繞過上述描述的一些或所有認證過程(或忽略認證過程的結(jié)果),從而為了測試的目的,可運行或加載未經(jīng)簽名的次級引導代碼、應用程序和/或數(shù)據(jù)文件。另一方面如果認證文件不存在或沒有被驗證為可靠的,或芯片ID不匹配;那么處理器204未被解鎖、去除限制未被實施、并且因此仍然要求基于生產(chǎn)密鑰的認證過程,從而只有采用私有生產(chǎn)密鑰Bprad所簽名的應用程序可以運行,并且只有采用私有生產(chǎn)密鑰Cprod所簽名的數(shù)據(jù)才能加載用于數(shù)據(jù)處理。受制于下列需要條件的其中之一得到滿足,可在處理器204上執(zhí)行這樣的應用程序和/或可加載數(shù)據(jù)(i)代碼和/或數(shù)據(jù)經(jīng)驗證為分別采用較高安全級別的私有密鑰Bprod和/或Cprod所可靠地簽名;或(ii)處理器已經(jīng)由通過私有解鎖密鑰U所簽名的經(jīng)認證解鎖文件的存在所解鎖,并且代碼和/或數(shù)據(jù)經(jīng)驗證為分別采用較低安全級別的私有密鑰Bdev和/或Cd6v所可靠地簽名。在一個具體的優(yōu)選實施例中,密碼邏輯308包括計數(shù)器404,其經(jīng)安排以維護信用值,并且每次生成解鎖文件(“解鎖事件”)時遞減??稍谟糜谠诿艽a處理器上執(zhí)行的固件中或在硬連線電路中實施計數(shù)器功能。向客戶提供充值至一定初始值例如上百量級的計數(shù)器404,并且該計數(shù)器404經(jīng)安排以一旦遞減至零,則阻止任何進一步的解鎖事件。軟件狗的計數(shù)器404可經(jīng)安排使得僅可通過將其返回供應商處才得以重新充值(如果真發(fā)生的話)。信用值自身由另一個私有密鑰所再次簽名以確保安全,同時密碼邏輯308經(jīng)安排以驗證計數(shù)值的可靠性以使得只有由供應商才能對其重新充值。計數(shù)器還可以通過從供應商處接收經(jīng)簽名的重新充值文件來進行重新充值,同時密碼邏輯308經(jīng)安排以在允許重新充值前驗證重新充值文件的可靠性。在那樣的情況下,重新充值還可在客戶的地點遠程實施。不論哪種方式,計數(shù)器404均不能自由地重新充值。為了避免解鎖事件的浪費,在進一步的實施例中,密碼邏輯308可經(jīng)配置以例如通過在其相關聯(lián)的存儲器312中存儲經(jīng)解鎖芯片ID的列表,來禁止對同一芯片ID生成多個解鎖文件??商娲?,為了達到類似的目的,如果解鎖事件針對已經(jīng)被解鎖的芯片ID,則密碼邏輯308可防止計數(shù)器404遞減(盡管如果針對該芯片ID的原始解鎖文件已經(jīng)被故意撤銷或損壞的話,該解決方案可能安全性較低)。如提到的,請注意次級引導代碼經(jīng)配置使得處理器的解鎖是以包含在解鎖文件中的芯片ID是否與處理器204的芯片ID相匹配為條件的。這防止同一個解鎖文件被拷貝并用于解鎖處理器的多個實例。只有已經(jīng)明確地被選擇用于解鎖的處理器的具體實例才可以成功地使用解鎖文件。還要注意,主引導代碼經(jīng)安排使得其不能被客戶或用戶所繞過或修改,同時主引導存儲器208優(yōu)選地被硬連線為引導代碼的最初來源。一旦主引導代碼已經(jīng)認證次級引導代碼,則次級引導代碼就像主引導代碼一樣是可信的并且因此也不能被繞過。另外,軟件狗306經(jīng)安排使得其內(nèi)部內(nèi)容(除了諸如重新充值的特定安全操作以外)不能被讀取或修改——它的內(nèi)部存儲器是不可尋址的或者在其他方面不可從USB接口或類似裝備所訪問 的。優(yōu)選地,應由生產(chǎn)平臺302或處理器204的制造商或供應商以及由被給予軟件狗的用戶,來將軟件狗306的每個實例物理地鎖藏在保險柜或類似設備中,并且應該僅分配少量的軟件狗306給有限數(shù)目的可信客戶。因為每個軟件狗僅可以解鎖特定的生產(chǎn)裝置302、只有很少的軟件狗將投入流通并且每個軟件狗均僅可解鎖很少的最終設備,因此大多數(shù)生產(chǎn)處理器的安全將不會受危害。優(yōu)選地使用標準的PKI (公開密鑰設施)技術(shù)來分配公開密鑰給客戶。該解決方案的優(yōu)點在于,產(chǎn)品的制造者(客戶)可迅速地在現(xiàn)場解鎖個別裝置而不會給其他裝置的安全帶來危險。這使用可信的PKI原理來進行。具體地,關鍵的“機密”僅是用于簽名解鎖文件(在具有有限數(shù)目應用程序的軟件狗中或在安全開發(fā)中心的進行簽名的服務器中是安全的)和重新充值軟件狗(保存在安全開發(fā)中心并且和生產(chǎn)密鑰一樣小心對待)的私有密鑰。對私有密鑰的所有使用和密鑰生成,優(yōu)選地應該采用諸如簽名儀式、審計跟蹤和證據(jù)等預防措施。在另外的實施例中,經(jīng)簽名以形成解鎖文件的信息可以不僅包括芯片ID還包括指示,該指示識別私有解鎖密鑰U的多個版本中哪個已經(jīng)用來簽名解鎖文件。假如解鎖密鑰對U的一個版本受到危害,那么提供機制以撤銷該版本。在該情況下,將分配新的公開解鎖密鑰U’給客戶,并且所有另外的軟件狗306都將經(jīng)配置以采用新的私有解鎖密鑰U來簽名解鎖文件。在解鎖文件中相應的指示將對于處理器204識別應該使用哪個版本公開解鎖密鑰U’來認證它。將理解,僅通過示例的方式描述了以上實施例。例如,本發(fā)明不限于“軟件狗”的任何具體物理形式諸如USB單元,并且更通常地可以任何便攜式安全單元的形式來實施。例如在可替代的實施例中,便攜式安全單元可以采用智能卡的形式。在另一個替代選擇中,遠程服務器可取代便攜式安全單元,經(jīng)經(jīng)配置以簽名解鎖文件。安全單元可輸出解鎖文件用于供應至安全單元自身之外的處理器可訪問的任何存儲位置,無論是在與處理器相同的芯片上或片外,以及是諸如閃存的電子存儲介質(zhì)或諸如硬盤驅(qū)動器的磁性存儲介質(zhì),或其他。另外,雖然為優(yōu)選的,但本發(fā)明不限于用于連續(xù)地驗證次級引導代碼、應用程序和此外的數(shù)據(jù)的可靠性的多階段開發(fā)。例如可替代地,主引導代碼、次級引導代碼和/或應用程序可基于相同的密鑰對來實施它們的認證,或者單個的自包含(self-contained)引導ROM可直接認證應用程序和/或數(shù)據(jù)。另外,本發(fā)明不限于上面所討論的基于開發(fā)和生產(chǎn)密鑰的具體安全模式。在其他實施例中可以僅有一組密鑰,并且依據(jù)解鎖文件的處理器去除限制包括一旦引導,則繞過至少一部分認證過程。可替代地,可以有多級別的去除限制,例如超過一組開發(fā)密鑰和一組生產(chǎn)密鑰,并且不同級別的解鎖文件允許對去除限制的不同級別加以訪問。在該情況下,解鎖文件中的經(jīng)簽名信息可以不僅包括芯片ID而且包括識別解鎖文件的級別的指示。因此不同類型的安全受限制和去除限制的模式均是可能的。另外,這些模式不需要必須由熔絲鎖存器來設置,并且更通常地可以通過任意設定來進行設置,例如另一種硬件設定諸如物理密封的(physically-sealed)的數(shù)字或機械交換機,或者另一種由硬件所保護的機制諸如在一次性可編程(OTP)存儲器中的代碼或數(shù)據(jù)。在該上下文中硬件設定意味著不能由客戶使用外部運行或在處理器204自身上運行的軟件來更改的任何設定。
此外,本發(fā)明不限于涉及主引導代碼和次級引導代碼的情況。在可替代的實施例中,引導代碼可以僅包括主引導代碼,該主引導代碼包括可操作以加載其他非引導應用程序的加載器,其受制于那些應用程序的認證或經(jīng)認證解鎖文件的存在。因此本文所使用的短語“主”引導代碼不必然隱含次級引導代碼的存在,而更通常是指,在處理器的啟動或重啟時必須總是被執(zhí)行的引導代碼。在不需要次級引導的情況下,主引導代碼可實現(xiàn)解鎖文件認證。另外,本發(fā)明不限于在遠程計算機終端304上遠程生成解鎖文件。在另外的替代選擇中,可在本地計算機終端303上或者甚至通過將軟件狗直接插入裝置302的合適端口來生成解鎖文件。在后一種情況下,雖然通過將軟件狗306連接至裝置302來生成解鎖文件,但甚至在軟件狗306隨后已經(jīng)斷開連接之后,對于處理器來說解鎖文件仍保持為可用的。另外,本發(fā)明不限于所描述的涉及供應商和客戶的場景。在其他的用于示例的場景中,生產(chǎn)裝置可從第一部門供應給同一組織的第二部門,并且隨后解鎖文件會允許第二部門來解鎖生產(chǎn)平臺。此外注意,術(shù)語“解鎖文件”不限于任何具體的文件結(jié)構(gòu)。一般而言,解鎖文件可以是其中部分信息采用私有解鎖密鑰所簽名的任何文件、證書或其他數(shù)據(jù)項。如所述的,信息可以包括芯片ID以及可選地包括對于私有解鎖密鑰的哪個版本被使用和/或解鎖文件的安全級別的指示。不排除包括在該信息中包括進一步要素的選項。然而在另外的實施例中,標識符無需是經(jīng)熔合的芯片ID,而可以是芯片204或裝置302的另一種類型的標識符??商娲兀紤]到全局解鎖文件的可能性,解鎖文件中經(jīng)簽名的信息根本不必然需要包括芯片或裝置標識符(雖然該實施例可能造成大多數(shù)應用程序中的不良安全風險)。關于術(shù)語的另一個點,注意本領域中有時可使用術(shù)語“認證”來指代通過簽名來標記代碼或數(shù)據(jù)為可靠的行為,或者作為隨后對可靠性進行驗證的簡要寫法。通過注意該情形來避免混淆——由分配代碼或數(shù)據(jù)的一方來實施簽名,并且在代碼或數(shù)據(jù)已經(jīng)簽名后由處理器來實施驗證。此外,雖然以上已依據(jù)單個的中央處理單元來進行描述,但這不排除處理器陣列的多核中央處理單元的可能性。類似地,在指代上述具體存儲器的場合,不排除可在多個分離的存儲器單元或區(qū)域中實現(xiàn)該存儲器。對于完整性,還要注意在代碼或數(shù)據(jù)的存儲位置與CPU之間可以安排有DMA引擎和/或緩存機制(未示出)。此外,一個或多個存儲器可實現(xiàn)為單獨的程序或數(shù)據(jù)存儲器,或可替代地程序代碼和數(shù)據(jù)可存儲在一個或多個共享存儲器中。對于得到本文公開內(nèi)容的技術(shù)人員來說,本發(fā)明的其他使用和配置可以是明顯的。本發(fā)明不受所描述的實施例所限制,而僅由隨附的權(quán)利要求 所限制。
權(quán)利要求
1.一種系統(tǒng),包括 包括處理器和存儲器的裝置,所述存儲器存儲經(jīng)安排以由所述處理器一旦啟動或重啟便自動執(zhí)行的引導代碼,其中所述引導代碼包括可操作以驗證附加代碼是否經(jīng)認證用于在所述處理器上執(zhí)行的代碼認證過程;以及 包括私有解鎖密鑰和密碼邏輯的單獨的安全單元,所述密碼邏輯經(jīng)配置以使用所述私有解鎖密鑰來簽名部分數(shù)據(jù),從而生成經(jīng)簽名的解鎖文件用于供應至存儲位置; 其中所述處理器經(jīng)安排以從所述存儲位置訪問所述解鎖文件,使得所述解鎖文件對于所述處理器是可用的,而無需要求所述處理器和所述安全單元之間的連接;以及 其中所述引導代碼進一步包括解鎖認證過程,所述解鎖認證過程經(jīng)配置以對在所述存儲位置中的所述解鎖文件的可用性進行檢查,并且如果可用,則基于其簽名來驗證所述解鎖文件是否經(jīng)認證用于在所述處理器上使用,以便在驗證所述解鎖文件的條件下對所述引導認證過程去除限制。
2.根據(jù)權(quán)利要求I所述的系統(tǒng),其中所述處理器具有受限制模式和去除限制模式,并且通過硬件設定或由硬件所保護的其他機制來設置為所述受限制模式,所述代碼認證過程經(jīng)配置以在所述受限制模式中以較高安全級別進行操作,以及在所述去除限制模式中以較低安全級別進行操作;以及 其中所述解鎖認證過程經(jīng)配置以通過覆寫所述硬件設定或其他受硬件保護的機制并且因此啟用所述去除限制模式來實施所述去除限制。
3.根據(jù)權(quán)利要求2所述的系統(tǒng),其中所述處理器由一個或多個熔絲鎖存器設置為所述受限制模式,所述解鎖認證過程經(jīng)配置以通過覆寫所述一個或多個熔絲鎖存器來實施所述去除限制。
4.根據(jù)以上任何一項權(quán)利要求所述的系統(tǒng),其中 所述裝置包括所述裝置和所述處理器中的至少一個的標識符; 所述密碼邏輯經(jīng)配置以使用所述私有解鎖密鑰來對包括所述標識符的拷貝的部分數(shù)據(jù)進行簽名,從而生成所述經(jīng)簽名的解鎖文件;以及 所述解鎖認證過程經(jīng)配置以基于所述解鎖文件的簽名和所述標識符來驗證所述解鎖文件是否經(jīng)認證用于在所述處理器上使用。
5.根據(jù)權(quán)利要求4所述的系統(tǒng),其中 所述處理器具有嵌入式芯片標識符; 所述密碼邏輯經(jīng)配置以使用所述私有解鎖密鑰來對包括所述芯片標識符的拷貝的部分數(shù)據(jù)進行簽名,從而生成所述經(jīng)簽名的解鎖文件;以及 所述解鎖認證過程經(jīng)配置以基于所述解鎖文件的簽名和芯片標識符來驗證所述解鎖文件是否經(jīng)認證用于在所述處理器上使用。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其中所述芯片標識符被寫入所述處理器的熔絲鎖存器中。
7.根據(jù)以上任何一項權(quán)利要求所述的系統(tǒng),其中所述安全單元是便攜式安全單元。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),包括單獨的計算機終端,其可操作以與所述便攜式安全單元交互并由此接收所述經(jīng)簽名的解鎖文件,并且供應所述經(jīng)簽名的解鎖文件至所述存儲位置。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其中所述計算機終端經(jīng)安排以經(jīng)由網(wǎng)絡供應所述經(jīng)簽名的解鎖文件至所述存儲位置。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述計算機終端經(jīng)安排以經(jīng)由互聯(lián)網(wǎng)供應所述經(jīng)簽名的解鎖文件至所述存儲位置。
11.根據(jù)權(quán)利要求8、9或10所述的系統(tǒng),其中所述計算機終端遠離所述裝置,其分開至少200米。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述計算機終端在地理上遠 離所述裝置,其分開至少10公里。
13.根據(jù)權(quán)利要求8至12任何一項所述的系統(tǒng),其中所述計算機終端可操作以通過所述交互的方式來發(fā)起所述經(jīng)簽名的解鎖文件的所述生成。
14.根據(jù)權(quán)利要求4和13所述的系統(tǒng),其中所述發(fā)起包括從所述計算機終端供應所述標識符的所述拷貝給所述便攜式安全單元。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其中所述計算機終端經(jīng)安排以經(jīng)由網(wǎng)絡從所述處理器接收所述標識符的所述拷貝。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述計算機終端經(jīng)安排以經(jīng)由互聯(lián)網(wǎng)從所述處理器接收所述標識符的所述拷貝。
17.根據(jù)權(quán)利要求8至16任何一項所述的系統(tǒng),其中所述交互包括所述便攜式安全單元與所述計算機終端物理地配對。
18.根據(jù)權(quán)利要求7至17任何一項所述的系統(tǒng),其中所述便攜式安全單元包括計數(shù)器,所述計數(shù)器經(jīng)安排以便將所述密碼邏輯限制到生成有限數(shù)目的解鎖文件。
19.根據(jù)權(quán)利要求18所述的系統(tǒng),包括重新充值設施,其允許經(jīng)授權(quán)的提供者來重新充值所述計數(shù)器。
20.根據(jù)權(quán)利要求19所述的系統(tǒng),其中所述重新充值設施經(jīng)安排以遠程供應經(jīng)簽名的重新充值文件給所述便攜式安全單元,所述重新充值文件采用私有重新充值密鑰所簽名;以及所述密碼邏輯經(jīng)配置以使用相應的公開重新充值密鑰來驗證所述重新充值文件是否采用所述私有重新充值密鑰所簽名,并且在這樣對所述經(jīng)簽名的重新充值文件進行驗證的條件下重新充值所述計數(shù)器。
21.根據(jù)權(quán)利要求18、19或20所述的系統(tǒng),其中所述密碼邏輯經(jīng)配置以防止對于同一個標識符生成多個解鎖文件。
22.根據(jù)以上任何一項權(quán)利要求所述的系統(tǒng),其中所述附加代碼采用私有代碼密鑰所簽名,所述代碼認證過程經(jīng)配置以使用與所述私有代碼密鑰相對應的公開代碼密鑰來驗證所述附加代碼,并且所述解鎖認證過程經(jīng)配置以使用與所述私有解鎖密鑰相對應的公開解鎖密鑰來驗證所述解鎖文件。
23.根據(jù)權(quán)利要求2和22所述的系統(tǒng),其中 所述附加代碼采用所述私有代碼密鑰的較高安全實例和所述私有代碼密鑰的較低安全實例之一所簽名; 在所述較高安全級別,所述代碼認證過程要求使用與第一私有密鑰的所述較高安全實例相對應的所述公開代碼密鑰的實例來驗證所述附加代碼;以及 在所述較低安全級別,所述代碼認證過程能使用與所述第一私有密鑰的所述較低安全實例相對應的所述公開代碼密鑰的實例來驗證所述附加代碼。
24.根據(jù)以上任何一項權(quán)利要求所述的系統(tǒng),其中 所述引導代碼包括主引導代碼和次級引導代碼,所述主引導代碼存儲在嵌入所述處理器上的只讀存儲器中;以及 所述處理器硬連線以一旦所述處理器啟動或者重啟,則執(zhí)行所述主引導代碼,所述主引導代碼包括初步認證過程,其經(jīng)配置以驗證所述次級引導代碼是否經(jīng)認證用于在所述處理器上執(zhí)行,以及所述次級引導代碼包括所述代碼認證過程和解鎖認證過程。
25.根據(jù)權(quán)利要求22和24所述的系統(tǒng),其中所述次級引導代碼采用第一階段私有代碼密鑰所簽名,所述附加代碼采用第二階段私有代碼密鑰所簽名,所述初步認證過程經(jīng)配置以使用與所述第一階段私有代碼密鑰相對應的第一階段公開代碼密鑰來驗證所述次級引導代碼,以及所述次級引導代碼經(jīng)配置以使用與所述第二階段私有代碼密鑰相對應的第二階段公開代碼密鑰來驗證所述附加代碼。
26.根據(jù)以上任何一項權(quán)利要求所述的系統(tǒng),其中所述附加代碼包括數(shù)據(jù)認證過程,其經(jīng)配置以驗證數(shù)據(jù)是否經(jīng)認證用于在所述處理器上加載。
27.根據(jù)權(quán)利要求22和26所述的系統(tǒng),其中所述數(shù)據(jù)采用私有數(shù)據(jù)密鑰所簽名,并且所述數(shù)據(jù)認證過程經(jīng)配置以使用與所述私有數(shù)據(jù)密鑰相對應的公開數(shù)據(jù)密鑰來驗證所述數(shù)據(jù)。
28.根據(jù)以上任何一項權(quán)利要求所述的系統(tǒng),其中所述密碼邏輯包括密碼處理器和存儲器,所述存儲器存儲經(jīng)安排用于在所述密碼處理器上執(zhí)行的密碼函數(shù)。
29.根據(jù)權(quán)利要求7或其任何一項從屬權(quán)利要求所述的系統(tǒng),其中所述私有解鎖密鑰物理地密封在所述便攜式安全單元內(nèi)。
30.根據(jù)權(quán)利要求7或其任何一項從屬權(quán)利要求所述的系統(tǒng),其中所述私有解鎖密鑰經(jīng)安排以不可外部尋址。
31.根據(jù)權(quán)利要求7或其任何一項從屬權(quán)利要求所述的系統(tǒng),其中所述便攜式安全單元包括USB軟件狗和智能卡之一。
32.—種對包括處理器和存儲器的裝置進行解鎖的方法,所述存儲器存儲經(jīng)安排以由所述處理器一旦啟動或者重啟便自動執(zhí)行的引導代碼,其中所述引導代碼包括可操作以驗證附加代碼是否經(jīng)認證用于在所述處理器上執(zhí)行的代碼認證過程,所述方法包括 在單獨的安全單元內(nèi)使用私有解鎖密鑰來簽名部分數(shù)據(jù),從而生成經(jīng)簽名的解鎖文件;以及 供應所述解鎖文件至所述處理器可訪問的存儲位置,使得所述解鎖文件對于所述處理器是可用的,而無需要求所述處理器和所述安全單元之間的連接;以及 其中所述引導代碼進一步包括解鎖認證過程,并且所述方法進一步包括一旦引導便執(zhí)行所述代碼認證過程,以對在所述存儲位置中的所述解鎖文件的可用性進行檢查,并且如果可用,則基于其簽名來驗證所述解鎖文件是否經(jīng)認證用于在所述處理器上使用,以便在驗證所述解鎖文件的條件下對所述引導認證過程去除限制。
33.根據(jù)權(quán)利要求32所述的方法,其中所述處理器具有受限制模式和去除限制模式,并且通過硬件設定或者由硬件所保護的其他機制來設置為所述受限制模式,所述代碼認證過程經(jīng)配置以在所述受限制模式中以較高安全級別進行操作,以及在所述去除限制模式中以較低安全級別進行操作;以及 其中所述去除限制包括覆寫所述硬件設定或其他受硬件保護的機制并且因此啟用所述去除限制模式。
34.根據(jù)權(quán)利要求33所述的方法,其中通過一個或多個熔絲鎖存器將所述處理器設置為所述受限制模式,并且所述去除限制包括覆寫所述一個或多個熔絲鎖存器。
35.根據(jù)權(quán)利要求32至34任何一項所述的方法,其中 所述裝置包括所述裝置和所述處理器中的至少一個的標識符; 使用所述私有解鎖密鑰來對包括所述標識符的拷貝的部分數(shù)據(jù)進行簽名,來生成所述解鎖文件;以及 基于所述解鎖文件的簽名和所述標識符來驗證所述解鎖文件是否經(jīng)認證用于在所述處理器上使用。
36.根據(jù)權(quán)利要求35所述的方法,其中 所述處理器具有嵌入式芯片標識符; 使用所述私有解鎖密鑰來對包括所述芯片標識符的拷貝的部分數(shù)據(jù)進行簽名,來生成所述解鎖文件;以及, 所述解鎖認證過程經(jīng)配置以基于所述解鎖文件的簽名和芯片標識符來驗證所述解鎖文件是否經(jīng)認證用于在所述處理器上使用。
37.根據(jù)權(quán)利要求36所述的方法,其中將所述芯片標識符寫入所述處理器的熔絲鎖存器中。
38.根據(jù)權(quán)利要求32至37任何一項所述的方法,其中在便攜式安全單元中生成所述解鎖文件。
39.根據(jù)權(quán)利要求38所述的方法,包括通過與所述便攜式安全單元交互來在單獨的計算機終端處接收所述經(jīng)簽名的解鎖文件,并且從所述計算機終端供應所述經(jīng)簽名的解鎖文件至所述存儲位置。
40.根據(jù)權(quán)利要求39所述的方法,其中經(jīng)由網(wǎng)絡從所述計算機終端供應所述經(jīng)簽名的解鎖文件至所述存儲位置。
41.根據(jù)權(quán)利要求40所述的系統(tǒng),其中經(jīng)由互聯(lián)網(wǎng)從所述計算機終端供應所述經(jīng)簽名的解鎖文件至所述存儲位置。
42.根據(jù)權(quán)利要求39、40、41所述的方法,其中從所述計算機終端遠程供應所述經(jīng)簽名的解鎖文件至所述存儲位置,其分開至少200米。
43.根據(jù)權(quán)利要求42所述的方法,其中所述計算機終端在地理上遠離所述存儲位置,其分開至少10公里。
44.根據(jù)權(quán)利要求39至43任何一項所述的方法,包括通過所述交互的方式來發(fā)起所述經(jīng)簽名的解鎖文件的所述生成。
45.根據(jù)權(quán)利要求35和44所述的方法,其中所述發(fā)起包括從所述計算機終端供應所述標識符的所述拷貝給所述便攜式安全單元。
46.根據(jù)權(quán)利要求45的所述方法,其中由所述計算機終端經(jīng)由網(wǎng)絡從所述處理器接收所述標識符的所述拷貝。
47.根據(jù)權(quán)利要求46所述的方法,其中由所述計算機終端經(jīng)由互聯(lián)網(wǎng)從所述處理器接收所述標識符的所述拷貝。
48.根據(jù)權(quán)利要求39至47任何一項所述的方法,其中所述交互包括所述便攜式安全單元與所述計算機終端物理地配對。
49.根據(jù)權(quán)利要求38至48任何一項所述的方法,包括對所述便攜式安全單元內(nèi)的計數(shù)器進行操作,以便限制由所述便攜式安全單元所生成的解鎖文件的數(shù)目。
50.根據(jù)權(quán)利要求49所述的方法,包括在經(jīng)授權(quán)的提供商的控制下重新充值所述計數(shù)器。
51.根據(jù)權(quán)利要求50所述的方法,包括遠程供應經(jīng)簽名的重新充值文件給所述便攜式安全單元,所述重新充值文件采用私有重新充值密鑰所簽名;以及使用所述便攜式安全單元內(nèi)相應的公開重新充值密鑰來驗證所述重新充值文件是否采用所述私有重新充值密鑰所簽名,并且在這樣對所述經(jīng)簽名的重新充值文件進行驗證的條件下重新充值所述計數(shù)器。
52.根據(jù)權(quán)利要求49、50或51所述的方法,包括阻止對于同一個標識符生成多個解鎖文件。
全文摘要
包括處理器的裝置,該處理器經(jīng)安排以一旦啟動或重啟便自動執(zhí)行引導代碼。引導代碼包括代碼認證過程,以驗證附加代碼是否經(jīng)認證用于在處理器上執(zhí)行。單獨的安全單元包括私有解鎖密鑰和密碼邏輯,該密碼邏輯經(jīng)配置以使用私有解鎖密鑰來簽名部分數(shù)據(jù),從而生成經(jīng)簽名的解鎖文件用于供應至存儲位置。處理器經(jīng)安排以從存儲位置訪問解鎖文件,使其可用而無需連接至安全單元。引導代碼進一步包括解鎖認證過程,其經(jīng)配置以檢查存儲位置中的解鎖文件,并且如果可用則基于其簽名來驗證解鎖文件是否經(jīng)認證用于在該處理器上使用,以便在驗證解鎖文件的條件下對引導認證過程去除限制。
文檔編號G06F21/57GK102971742SQ201180019022
公開日2013年3月13日 申請日期2011年2月14日 優(yōu)先權(quán)日2010年2月12日
發(fā)明者皮特·卡明, 亞歷克斯·伯德瑞, 讓·馬克·吉拉德特 申請人:輝達技術(shù)英國有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
洛扎县| 商水县| 延安市| 乐东| 永靖县| 当阳市| 通河县| 渝中区| 兴义市| 石景山区| 饶河县| 蕲春县| 东安县| 丹巴县| 全州县| 甘肃省| 汽车| 陵水| 江永县| 阿城市| 苏州市| 湘阴县| 衡水市| 保山市| 苏尼特右旗| 启东市| 新野县| 肃南| 辽宁省| 长兴县| 梧州市| 屯门区| 依兰县| 津南区| 吉木萨尔县| 宁阳县| 军事| 肇州县| 上林县| 克山县| 宁国市|