片上系統(tǒng)設(shè)備中的密鑰撤消的制作方法
【技術(shù)領(lǐng)域】
[0001]本公開總體上涉及計(jì)算領(lǐng)域。更具體地,本發(fā)明的實(shí)施例總體上涉及片上系統(tǒng)(也被稱為SOC或SoC)設(shè)備中的密鑰撤消。
【背景技術(shù)】
[0002]對(duì)移動(dòng)設(shè)備而言,安全啟動(dòng)是重要的過程以確保僅僅授權(quán)固件和/或軟件被加載在平臺(tái)上。為了支持安全啟動(dòng),可以使用加密。這樣的加密可以依賴于原始設(shè)備制造商(OEM)提供的公鑰。然而,如果與該公鑰相關(guān)聯(lián)的OEM的私鑰受到損壞,則可能會(huì)失去對(duì)平臺(tái)的控制。同樣,移動(dòng)設(shè)備上的存儲(chǔ)空間可能是有限的,這繼而限制可以存儲(chǔ)在該移動(dòng)設(shè)備上的公鑰的數(shù)量。因此,實(shí)現(xiàn)在移動(dòng)平臺(tái)上的安全啟動(dòng),需要更多的靈活性。
【附圖說明】
[0003]參照附圖提供了【具體實(shí)施方式】。在圖中,附圖標(biāo)記的最左側(cè)數(shù)位標(biāo)識(shí)在其中該附圖標(biāo)記首次出現(xiàn)的圖。在不同的圖中使用相同的附圖標(biāo)記指示類似或相同的項(xiàng)。
[0004]圖1示出了根據(jù)實(shí)施例的SOC的部件的框圖;
[0005]圖2示出了在一些實(shí)施例中密鑰證書如何起作用的更詳細(xì)的視圖的框圖;
[0006]圖3示出了根據(jù)實(shí)施例的密鑰證書的結(jié)構(gòu)。
[0007]圖4示出了根據(jù)實(shí)施例的提供片上系統(tǒng)設(shè)備中的密鑰撤消的方法的流程圖。
[0008]圖5和圖6示出了可以被利用來實(shí)現(xiàn)本文討論的一些實(shí)施例的計(jì)算系統(tǒng)的實(shí)施例的框圖。
【具體實(shí)施方式】
[0009]在以下描述中,闡述了大量的具體細(xì)節(jié),以便提供對(duì)各種實(shí)施例的充分理解。然而,可以在沒有這些具體細(xì)節(jié)的情況下來實(shí)踐本發(fā)明的各種實(shí)施例。在其他實(shí)例中,沒有詳細(xì)描述公知的方法、程序、部件以及電路,以便不使本發(fā)明的特定實(shí)施例難以理解。此外,可以使用各種手段(例如,集成半導(dǎo)體電路(“硬件”)、組織在一個(gè)或多個(gè)程序中的計(jì)算機(jī)可讀指令(“軟件”)、或者硬件和軟件的某種組合)來執(zhí)行本發(fā)明的實(shí)施例的各種方面。出于本公開的目的,提到的“邏輯”是要表示硬件、軟件、固件(FM)、或其某種組合。
[0010]一些實(shí)施例允許片上系統(tǒng)(也稱為SOC或SoC)設(shè)備中的(例如,OEM)密鑰撤消。例如,各種實(shí)施例提供了以下內(nèi)容:(I)使存儲(chǔ)OEM(原始設(shè)備制造商)密鑰所需要的熔斷器的數(shù)量最小化,例如,同時(shí)支持任何數(shù)量的OEM密鑰;和/或⑵管理OEM密鑰的機(jī)制(例如,通過撤消和/或恢復(fù))。
[0011 ] 一般地,安全啟動(dòng)對(duì)于移動(dòng)設(shè)備(例如,電話、平板、UMPC (超便攜個(gè)人計(jì)算機(jī))、膝上計(jì)算機(jī)、超級(jí)本等)而言是重要的過程,其用于確保僅在平臺(tái)上加載授權(quán)的固件和/或軟件(例如,每OEM需求(例如,經(jīng)由B1S (基本輸入輸出系統(tǒng))和/或OS(操作系統(tǒng)))。為了支持安全啟動(dòng),可以使用加密。這樣的加密可以依賴于由OEM提供的一個(gè)或多個(gè)公鑰。例如,為了支持安全啟動(dòng),SOC制造商可以通過使用非對(duì)稱加密(例如,RSA(Rivest、Shamir、以及Adleman)數(shù)字簽名驗(yàn)證)經(jīng)由UEFI (統(tǒng)一可擴(kuò)展固件接口)安全級(jí)部件(在UEFI上下文中)或傳統(tǒng)B1S中的啟動(dòng)塊,來對(duì)B1S的第一級(jí)進(jìn)行驗(yàn)證,由此錨定啟動(dòng)過程。由此,在啟動(dòng)過程的不同啟動(dòng)階段中并且一直到主OS,信任鏈可以由B1S使用來加載控制并且將控制傳送到相關(guān)部件。
[0012]此外,一些SOC制造商可以使用熔斷器(例如,現(xiàn)場(chǎng)可編程熔斷器(FPF))來存儲(chǔ)公鑰,所述公鑰由OEM選擇/生成,以對(duì)在啟動(dòng)過程中錨定信任鏈的第一 B1S塊進(jìn)行驗(yàn)證。通常,OEM公鑰(或利用熔斷器的一部分的公鑰的散列)在OEM制造時(shí)間而不是在SOC制造時(shí)間被編程,以允許OEM決定將何種密鑰用于其設(shè)備,直到這些密鑰準(zhǔn)備就緒為止,并且這便于SOC供應(yīng)商便于進(jìn)行SOC SKU管理。隨后安全引擎(其可以存在于SOC上,例如,其可以包括自有的/專用的處理器核心或協(xié)處理器)使用存儲(chǔ)在SOC上(或?qū)OC可用)的OEM公鑰(或散列)來對(duì)OEM B1S的第一級(jí)的完整性和真實(shí)性進(jìn)行驗(yàn)證。
[0013]然而,對(duì)于這樣的方案,存在至少兩個(gè)挑戰(zhàn):(I)熔斷器的數(shù)量可能受到限制(例如,有時(shí)在SOC中可用的熔斷器少于Ik),因此僅可以存儲(chǔ)一個(gè)或最多兩個(gè)密鑰(其中,每一個(gè)密鑰散列為32字節(jié)=256位=256個(gè)熔斷器),而保留空間以用于SOC制造商的其他用途。這有時(shí)不能給予OEM在它們的產(chǎn)品中利用比一個(gè)或兩個(gè)更多的密鑰的靈活性;以及(2)OEM可能需要密鑰撤消機(jī)制,使得在暴露了 OEM私鑰的不可能事件中,OEM可以通過撤消損壞的密鑰來重新獲得對(duì)平臺(tái)的控制并且引入新的密鑰。如果這些問題不被解決,則可能會(huì)失去對(duì)平臺(tái)的控制。此外,用來對(duì)OEM密鑰證書的簽名進(jìn)行驗(yàn)證的SOC制造商公鑰可以存儲(chǔ)在安全引擎能夠訪問的ROM (只讀存儲(chǔ)器)中或存儲(chǔ)在僅有安全引擎可以訪問的SOC熔斷器中,以確保密鑰值的完整性,并且該SOC制造商的公鑰在SOC制造時(shí)間被供應(yīng)。
[0014]為了這個(gè)目的,一些實(shí)施例提供了以下內(nèi)容:⑴使存儲(chǔ)0ΕΜ(原始設(shè)備制造商)密鑰所需要的熔斷器的數(shù)量最小化,例如,同時(shí)支持任何數(shù)量的OEM密鑰;以及(2)管理OEM的機(jī)制(例如,通過撤消和/或恢復(fù))。這樣的實(shí)施例不僅為OEM提供了部署各種密鑰的靈活性,而且還在OEM密鑰的一個(gè)或多個(gè)受到損壞的情況下提供了密鑰撤消和恢復(fù)機(jī)制。
[0015]圖1示出了根據(jù)實(shí)施例的SOC的部件的框圖。如圖1所示,SOC 100包括安全引擎102、SOC制造商熔斷器104、FPF 106、一個(gè)或多個(gè)處理器核心108 (例如,參照?qǐng)D5_6所討論的那些)、存儲(chǔ)器110 (例如,一個(gè)或多個(gè)存儲(chǔ)設(shè)備,例如,如參照?qǐng)D5-6所討論的那些)。SOC 100可以耦合到SPI (串行外圍接口)閃存或任何其他非易失性存儲(chǔ)設(shè)備,例如移動(dòng)設(shè)備112中的eMMC 112 (嵌入式多媒體卡)。在實(shí)施例中,密鑰證書可以駐留在安全引擎能夠訪問的任何NV(非易失性)存儲(chǔ)器上,例如,在啟動(dòng)時(shí)間(其中存儲(chǔ)設(shè)備可以是SPI閃存、eMMC, UFS (通用閃速存儲(chǔ)裝置)或其他)。依次地,F(xiàn)PF 106包括熔斷器集合114。此外,SOC 100可以包括其他部件,例如,參照?qǐng)D5和/或6的系統(tǒng)所討論的部件中的一個(gè)或多個(gè)。
[0016]如圖1所示,熔斷器104可以存儲(chǔ)SOC制造商的公鑰散列。此外,可以將FPF 106組織為熔斷器集合。此外,熔斷器集合112可以包括如圖1所示的,以及如下文進(jìn)一步討論的熔斷器集合類型和熔斷器集合標(biāo)識(shí)符(其中“FS”指代熔斷器類型,“CERT”指代證書版本,“UNIT8”指代8位的無符號(hào)整數(shù),并且“UNIT16”指代16位的無符號(hào)整數(shù)。
[0017]如上文討論的,一些實(shí)施例提供了以下內(nèi)容:(1)使存儲(chǔ)OEM(原始設(shè)備制造商)密鑰所需要的熔斷器的數(shù)量最小化,例如,同時(shí)支持任何數(shù)量的OEM密鑰;和/或(2)管理OEM密鑰的機(jī)制(例如,通過撤消和/或恢復(fù))。為了實(shí)現(xiàn)上述兩個(gè)目標(biāo),使用如下的間接技術(shù):(1)兩個(gè)FPF熔斷器集合;(2) OEM密鑰綁定到OEM平臺(tái)和驗(yàn)證;和/或(3) OEM密鑰撤消/恢復(fù)機(jī)制。通常,間接技術(shù)指在兩個(gè)部分之間增加可以提供額外的控制/功能的層的技術(shù)。在這種情況下,該層提供了熔斷器的節(jié)約以及簡(jiǎn)單的密鑰撤消方案。
[0018]兩個(gè)FPF熔斷器集合包括:(I)用于存儲(chǔ)OEM ID (例如,最少8位)的一個(gè)靜態(tài)熔斷器集合(能夠被寫入一次),其中,該靜態(tài)熔斷器集合被用于將OEM密鑰綁定到OEM平臺(tái);
(2)用于存儲(chǔ)版本信息(例如,最少8位)的一個(gè)動(dòng)態(tài)/可更新的熔斷器集合(能夠被寫入多于一次),其中,該熔斷器集合被用于管理OEM密鑰集合;(3)將上文所述的16個(gè)靜態(tài)和動(dòng)態(tài)熔斷器(用于管理OEM密鑰)與用于存儲(chǔ)單個(gè)密鑰的256個(gè)熔斷器進(jìn)行比較;和/或
(4)可選地,可以引入另一靜態(tài)熔斷器集合以向使用同一 SOC的OEM產(chǎn)品提供SKU(庫存單元)識(shí)別。
[0019]OEM密鑰綁定到OEM平臺(tái)和驗(yàn)證包括:(I) SOC制造商將CEM標(biāo)識(shí)符分配給它的OEM客戶/合作商;⑵每一個(gè)OEM將它們各自的OEM標(biāo)識(shí)符(ID)燒入FPF (例如,OEM ID的靜態(tài)熔斷器集合)中;(3) SOC制造商對(duì)每OEM的OEM數(shù)字證書進(jìn)行簽名,所述OEM數(shù)字證書將所選擇的OEM密鑰綁定到其特定的OEM ID (其中,OEM密鑰證書包含:0ΕΜ將使用其來對(duì)B10S/0S/調(diào)制解調(diào)器固件進(jìn)行簽名的任何數(shù)量的密鑰、單調(diào)的版本計(jì)數(shù)器(例如,取決于實(shí)施方式,初始設(shè)置為I)、可選的SKU ID,在OEM想要單獨(dú)管理SKU的情況