TW202341162A - 一次性可程式化記憶體的安全程式化 - Google Patents
一次性可程式化記憶體的安全程式化 Download PDFInfo
- Publication number
- TW202341162A TW202341162A TW112105740A TW112105740A TW202341162A TW 202341162 A TW202341162 A TW 202341162A TW 112105740 A TW112105740 A TW 112105740A TW 112105740 A TW112105740 A TW 112105740A TW 202341162 A TW202341162 A TW 202341162A
- Authority
- TW
- Taiwan
- Prior art keywords
- life cycle
- electronic component
- stages
- otp
- stage
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 152
- 230000007704 transition Effects 0.000 claims abstract description 64
- 230000004044 response Effects 0.000 claims abstract description 11
- 238000000034 method Methods 0.000 claims description 83
- 230000006870 function Effects 0.000 claims description 41
- 206010011906 Death Diseases 0.000 description 31
- 238000004519 manufacturing process Methods 0.000 description 12
- 238000012795 verification Methods 0.000 description 11
- 238000012360 testing method Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 239000004744 fabric Substances 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 229910052710 silicon Inorganic materials 0.000 description 4
- 239000010703 silicon Substances 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000002427 irreversible effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 101150051405 MFG1 gene Proteins 0.000 description 1
- 101100268108 Mus musculus Zfp60 gene Proteins 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本發明提供一種電子構件,其可具有複數個經界定生命週期階段及包含複數個生命週期位元之一一次性可程式化(OTP)記憶體,其中該等生命週期位元之各別位元模式可對應於該等經界定生命週期階段中之各別生命週期階段。該電子構件亦可具有一開機程式碼,其儲存於唯讀記憶體中且可由一處理器執行以:接收自一當前生命週期階段轉變至一下一生命週期階段之一請求;及回應於該接收到之請求,在該OTP記憶體不是使用者可存取之一時間期間在該OTP記憶體中自動地產生對應於該複數個經界定生命週期階段中之該下一生命週期階段的一位元模式,且程式化對應於該複數個經界定生命週期階段中之該下一生命週期階段的該位元模式。
Description
[優先權]
本申請案主張2022年2月17日提交之美國臨時專利申請案第63/311,331號之優先權,其內容以全文引用之方式併入本文中。
本揭示係關於電子構件佈建,且更特定地係關於經由電子構件之一次性可程式化(OTP)記憶體的安全程式化來管理電子構件之生命週期的系統及方法。
在構件(例如,晶片)之組構期間用於對資訊進行OTP記憶體程式化的習知技術通常提供對整個組構記憶體映射之可見度,從而使得OTP記憶體容易受到攻擊,例如更改構件組構。典型構件生命週期中之不同步驟(例如,包括第三方製造、開發及客戶程式化)可能需要存取OTP記憶體。因此,在無受控措施之情況下,所有OTP區域可為可存取的且易於攻擊。舉例而言,工廠模式組構區域可在構件生命週期之稍後階段更改,此可鎖定或者解鎖並不意欲用於特定生產線的特徵。
本發明提供一種用於在多個經界定生命週期階段內對電子構件進行安全一次性程式化的不可逆生命週期系統,其中基於當前生命週期對電子構件之各種資源之存取可能受限制。
根據一個實例,一種系統可包括電子構件。電子構件可為伺服器、與伺服器相關聯之構件或者計算平台,且該系統可為用於該伺服器之安全開機控制器、與伺服器相關聯之構件或者計算平台。電子構件可具有複數個經界定生命週期階段且可包括具有複數個生命週期位元之一次性可程式化(OTP)記憶體。複數個生命週期位元之各別位元模式可對應於複數個經界定生命週期階段中之各別生命週期階段。電子構件亦可具有儲存於唯讀記憶體(ROM)中之開機程式碼。開機程式碼可由處理器執行以接收自複數個經界定生命週期階段中之當前生命週期階段轉變至複數個經界定生命週期階段中之下一生命週期階段的請求。自複數個經界定生命週期階段中之當前生命週期階段轉變至複數個經界定生命週期階段中之下一生命週期階段的請求可經由電子構件之實體埠或者經由載入至電子構件上之韌體接收。根據實例,自複數個經界定生命週期階段中之當前生命週期階段轉變至該複數個經界定生命週期階段中之下一生命週期階段的請求可為已簽署命令。開機程式碼亦可執行以回應於接收到之請求而在OTP記憶體不是使用者可存取之時間期間在OTP記憶體中自動產生對應於複數個經界定生命週期階段中之下一生命週期階段的位元模式,且程式化對應於複數個經界定生命週期階段中之下一生命週期階段的位元模式。在一個實例中,OTP記憶體不是使用者可存取之時間可在電子構件之後續重設期間,該重設可為電子構件之構件重設、再開機或者電力循環。根據實例,在OTP記憶體中程式化對應於複數個經界定生命週期狀態中之下一生命週期階段的位元模式之開機程式碼可使得自複數個經界定生命週期階段中之當前生命週期階段轉變為複數個經界定生命週期階段中之下一生命週期階段。
在實例中,開機程式碼可回應於接收到之請求而在OTP記憶體不是使用者可存取之時間期間在OTP記憶體中自動地產生構件唯一資訊且程式化構件唯一資訊。
在實例中,對於複數個經界定生命週期階段中之各別生命週期階段,開機程式碼可使可在複數個經界定生命週期階段中之各別生命週期階段期間執行的對應各別可用功能集合對使用者可用。根據實例,可在複數個經界定生命週期階段中之第一生命週期階段期間執行的各別可用功能集合可包括第一功能;且可在複數個經界定生命週期階段中之第二生命週期階段期間執行的各別可用功能集合可不包括第一功能。
另一實例提供一種系統,其可包括具有OTP記憶體之電子構件,其中OTP記憶體可包括複數個生命週期OTP位元。生命週期位元映射可與電子構件之複數個經界定生命週期階段相關聯。生命週期位元映射可指定複數個生命週期OTP位元模式,其中各別生命週期OTP位元模式可對應於電子構件之各別生命週期階段。生命週期功能資料可指定用於各別生命週期階段之可用功能集合。用於各別生命週期階段之指定可用功能集合可界定可在電子構件之各別生命週期階段期間執行的功能。用於各別第一生命週期階段之指定可用功能集合可不同於用於各別第二生命週期階段之指定可用功能集合。實例系統可包括可儲存於唯讀記憶體中之開機程式碼。開機程式碼可由處理器執行以經由一系列生命週期階段管理電子構件之佈建。開機程式碼可由處理器執行以在OTP記憶體不是使用者可存取之時間期間隨著時間推移選擇性地程式化複數個生命週期OTP位元,從而使電子構件前進通過該一系列生命週期階段。開機程式碼可由處理器執行以當電子構件正在各別第一生命週期階段中操作時,允許僅存取如由生命週期功能資料指定之用於各別第一生命週期階段的可用功能集合。
在實例中,開機程式碼可由處理器執行以在OTP記憶體不是使用者可存取之時間期間在OTP記憶體中自動地產生構件唯一資訊且程式化構件唯一資訊。
根據實例,開機程式碼可由處理器執行以回應於已簽署命令而隨著時間推移選擇性地程式化複數個生命週期OTP位元,以使電子構件前進通過一系列生命週期階段。
另一實例提供一種方法,其用於具有OTP記憶體、複數個經界定生命週期階段及複數個經界定功能之電子構件。方法可包括當電子構件處於複數個經界定生命週期階段中之第一生命週期階段時,提供對複數個經界定功能之第一集合的存取。方法可包括接收將電子構件自複數個經界定生命週期階段中之第一生命週期階段轉變為複數個經界定生命週期階段中之第二生命週期階段之請求。在實例中,將電子構件自複數個經界定生命週期階段中之第一生命週期階段轉變至複數個經界定生命週期階段中之第二生命週期階段的請求可經由電子構件之實體埠或者經由載入至電子構件上之韌體接收。在實例中,將電子構件自複數個經界定生命週期階段中之第一生命週期階段轉變至複數個經界定生命週期階段中之第二生命週期階段的請求可為已簽署命令。方法可包括回應於將電子構件自複數個經界定生命週期階段中之第一生命週期階段轉變至複數個經界定生命週期階段中之第二生命週期階段的接收到之請求,藉由在OTP記憶體不是使用者可存取之第一時間期間用對應於複數個經界定生命週期階段中之第二生命週期階段的資訊來程式化OTP記憶體而將電子構件轉變至複數個經界定生命週期階段中之第二生命週期階段。在一個實例中,OTP記憶體不是使用者可存取之時間可在電子構件之後續重設期間,該重設可為電子構件之構件重設、再開機或者電力循環。方法可包括當電子構件處於複數個經界定生命週期階段中之第二生命週期階段時,提供對複數個經界定功能之第二集合的存取。在實例中,複數個經界定功能之第一集合可包括第一功能,且複數個經界定功能之第二集合可不包括第一功能。
根據實例,方法可包括回應於將電子構件自複數個經界定生命週期階段中之第一生命週期階段轉變至複數個經界定生命週期階段中之第二生命週期階段的接收到之請求,在OTP記憶體不是使用者可存取之時間期間在OTP記憶體中自動地產生及程式化構件唯一資訊。
在實例中,方法可包括在將電子構件轉變至複數個經界定生命週期階段中之第二生命週期階段之後,禁止將電子構件轉變至複數個經界定生命週期階段中之第一生命週期階段。
在實例中,方法可包括接收將電子構件自複數個經界定生命週期階段中之第二生命週期階段轉變至複數個經界定生命週期階段中之第三生命週期階段之請求。方法可包括回應於將電子構件自複數個經界定生命週期階段中之第二生命週期階段轉變至複數個經界定生命週期階段中之第三生命週期階段的接收到之請求,在OTP記憶體不是使用者可存取之第二時間期間用對應於複數個經界定生命週期階段中之第三生命週期階段的資訊,藉由程式化OTP記憶體而將電子構件轉變至複數個經界定生命週期階段中之第三生命週期階段。方法可包括當電子構件處於複數個經界定生命週期階段中之第三生命週期階段時,提供對複數個經界定功能之第三集合的存取。在實例中,方法可包括在將電子構件轉變至複數個經界定生命週期階段中之第三生命週期階段之後,禁止將電子構件轉變至複數個經界定生命週期階段中之第二生命週期階段。
當電子構件(例如,微控制器)啟動時(例如,通電或者在硬體或者軟體重設之後),開機程式碼可由構件上之處理器載入及執行。開機程式碼可執行與構件啟動相關之功能(例如,初始化硬體),該等功能可包括停用中斷、初始化匯流排、在特定狀態中設定處理器及初始化記憶體。在執行硬體初始化之後,開機程式碼接著可例如自應用程式影像載入系統軟體。由開機程式碼執行之功能可被稱為開機過程。
電子構件可能能夠隨著時間推移轉變至各種生命週期階段。電子構件之各種特徵或者功能可在一些生命週期階段中可用且可在其他生命週期階段中不可用。在特定生命週期階段中可用的特徵及功能可係關於構件之安全性。舉例而言,可用於驗證在電子構件上運行之程式碼的密碼編譯金鑰可能在一或多個生命週期階段中可存取但可能在其他生命週期階段中不可存取。在另一實例中,可建立或者允許建立用於電子構件之安全資訊的功能可能在一或多個生命週期階段中可用但可能在其他生命週期階段中不可用。以此方式,電子構件在給定時間之安全性等級可對應於電子構件在彼時間之生命週期階段。
電子構件可含有安全性機構以保護構件免受惡意攻擊。舉例而言,由於電子構件之安全性等級可對應於電子構件之生命週期階段,因此其可含有防止攻擊者改變電子構件之生命週期階段的特徵。
電子構件之安全性特徵可使用電子構件上之開機程式碼來實施。在實例中,可使用不可變開機程式碼來實施安全性特徵。可被稱作硬體信任根之不可變開機程式碼可在製造期間建置至電子構件中,且因此可被隱式地信任,此係因為其不能被修改。
出於本揭示之目的,電子構件可包括可操作以計算、分類、處理、傳輸、接收、擷取、發起、切換、儲存、顯示、顯現、偵測、記錄、再現、處置或者利用任何形式之資訊、情報或者資料以用於商業、科學、控制、娛樂或者其他目的之任何工具或者工具之彙總。舉例而言,電子構件可為個人電腦、PDA、消費型電子構件、伺服器、網路儲存構件或者任何其他合適的構件,且大小、形狀、效能、功能性及價格可變化。電子構件可包括記憶體、一或多個處理資源,諸如中央處理單元(CPU)或者硬體或者軟體控制邏輯。電子構件之額外組件可包括一或多個儲存構件、用於與外部構件通信之一或多個通信埠,以及各種輸入及輸出(I/O)構件,諸如鍵盤、滑鼠及視訊顯示器。電子構件亦可包括可操作以在各種硬體組件之間傳輸通信的一或多個匯流排。
圖1說明經由電子構件之OTP記憶體的安全程式化來管理電子構件101之生命週期的實例系統100的方塊圖。如圖1中所描繪,系統100可包含電子構件101。電子構件101之組件可包括但不限於一或多個處理器160及以通信方式將各種系統組件耦接至處理器160的系統匯流排121,該等系統組件包括例如OTP記憶體110、ROM 130、記憶體170、I/O及埠控制190以及網路介面150。系統匯流排121可為任何適合類型之匯流排結構,例如記憶體匯流排、周邊匯流排或者使用多種匯流排架構中之任一者之局部匯流排。
處理器160可包含可操作以解譯或者執行程式指令或者處理資料之任何系統、構件或者裝置,且可包括但不限於微處理器、微控制器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)或者用以解譯或者執行程式指令或者處理資料之任何其他數位或者類比電路。在一些實例中,處理器160可解譯或者執行局部地儲存(例如,於記憶體170、ROM 130、OTP記憶體110或者電子構件101之另一組件中)之程式指令或者處理資料。在相同或者替代實例中,處理器160可解譯或者執行遠端儲存之程式指令或者處理資料。
OTP記憶體110(一次性可程式化記憶體)可包含可僅一次程式化且其後保持程式化資料的任何系統、構件或者裝置。OTP記憶體110可包含一次性可程式化位元120a、120b等。在實例中,OTP記憶體110之位元120a及120b可包含與金屬佈線連接之傳統邏輯閘,且連接可與熔絲配對。在程式化期間,熔絲可經熔斷以便使此等連接永久。以此方式,OTP記憶體110一旦經程式化可為不可修改的。在實例中,未經程式化位元(例如,120a、120b)在由處理器160讀取時可返回值0,而經程式化位元在由處理器160讀取時可返回值1。根據此實例,一旦位元120a、120b已以1值程式化,其不可再程式化至0值。
ROM 130可包含可操作以在至電子構件101之電力關斷之後保留程式指令或者資料的任何系統、構件或者裝置(例如,非揮發性記憶體)。ROM 130(例如,開機ROM)可包含開機程式碼140,其可在電子構件101之開機過程(或者啟動)期間由處理器160使用。根據實例,開機程式碼140可為不可變的,亦即,在製造期間建置至電子構件中,且因此,可被隱式地信任(例如,硬體信任根),此係因為其不可被修改。開機程式碼140可包含執行包括但不限於功能F1(145a)及F2(145b)以及其他之功能的程式碼。
記憶體170可包含可操作以在一段時間內保持程式指令或者資料之任何系統、構件或者裝置。記憶體170可包含隨機存取記憶體(RAM、SRAM、DRAM)、電可抹除可程式化唯讀記憶體(EEPROM)、PCMCIA卡、快閃記憶體、磁性儲存器、光磁性儲存器、硬體暫存器或者任何合適選擇或者揮發性或者非揮發性記憶體陣列。在所說明之實例中,記憶體170包括但不限於命令記憶體171、快閃記憶體172及SRAM 173。
I/O及埠控制190可包含大體可操作以接收資料或者將資料傳輸至電子構件101/傳輸來自電子構件101之資料/傳輸電子構件101內之資料的任何系統、構件或者裝置。I/O及埠控制190可包含例如任何數目的通信介面、圖形介面、視訊介面、使用者輸入介面或者周邊介面(例如,不限於JTAG、I2C、UART、測試存取埠)。I/O及埠控制190可通信耦接至外部埠/接腳180-1、180-2、…、180-N(且其他未描繪)。
網路介面150可為可操作以充當電子構件101與網路155之間的介面的任何合適的系統、裝置或者構件。網路介面150可使得電子構件101能夠使用任何適合的傳輸協定或者標準經由網路155通信。網路155及其各種組件可使用硬體、軟體或者其任何組合來實施。
儘管圖1說明電子構件101之各種組件,但其他實例系統可包括具有較多或者較少組件之電子構件。在實例中,在不脫離此等所揭示實例之精神及範疇的情況下,根據本揭示之電子構件101可不包括以虛線繪製之組件中的一者或者全部。
圖2說明可用於管理電子構件之生命週期的實例OTP記憶體110。如圖2中所描繪,OTP記憶體110可包含各種經界定區域,其包括生命週期位元203、製造商組構資訊213、客戶資訊223及秘密構件唯一資訊233。在實例中,生命週期位元203可由開機程式碼140程式化(融合),且可引起電子構件101之經界定系列生命週期階段中的不同生命週期階段之間的轉變。在相同或者另一實例中,製造商組構資訊213可例如在佈建電子構件101期間藉由製造商用以程式化OTP記憶體110的測試器或者其他裝置來程式化(融合)。製造商組構資訊213可包括:啟用、停用或者組構電子構件101上之特徵(例如,GPIO接腳之可用性、時脈速率及安全性特徵之可用性)的位元;公開金鑰密碼編譯金鑰對之公開金鑰;及構件識別資訊。在實例中,客戶資訊223可包括由電子構件101之客戶程式化(融合)的位元。
在實例中,秘密構件唯一資訊233可包括:(a)構件身分識別金鑰(「DevIK」)(例如,公開金鑰密碼編譯金鑰對之私密金鑰)或者可產生DevIK之資訊;(b)關鍵構件組構,例如,影像真實性及金鑰真實性;(c)由電子構件101使用之其他密碼編譯金鑰;或者(d)其他構件唯一資訊。在一些實例中,秘密構件唯一資訊233可包括:(a)唯一構件秘密(UDS)或者加密UDS;或者(b)ROM種子(例如,由開機程式碼140產生之隨機數),其中開機程式碼140可使用此類UDS及ROM種子作為源資料以產生DevIK或者其他構件唯一資訊。
電子構件101之生命週期階段
電子構件101可能能夠隨著時間推移轉變至各種生命週期階段。在實例中,生命週期階段可由電子構件101之製造商界定,且可包括但不限於表1中所展示之生命週期階段。
[表1]
階段 | 描述 |
1 | RAW-電子構件之初始階段 |
2 | MFG-製造模式 |
3 | DEV-開發模式 |
4 | PROD-生產模式 |
5 | FA-失效分析模式 |
6 | EOL-生命結束 |
在一個實例中,六個生命週期階段可具有表2至7中所列出之特性。如在表2至7中所揭示,不同功能、特徵及操作可在不同生命週期階段中可用。用於使功能可用之實例方法係在圖13及相關文字中說明。
[表2]
[表3]
[表4]
[表5]
[表6]
[表7]
RAW | 無特徵啟用(防止晶圓被盜)。 |
OTP組構未執行。 | |
MEMBIST、掃描及XOR測試經支援。 | |
支援晶圓探針測試。 | |
ROM及SRAM物理不可複製函數(PUF)秘密受保護。 |
MFG | OTP記憶體及內部SPI快閃記憶體佈建經支援。 |
測試特徵經支援。 | |
OTP生產級特徵未執行(亦即,安全開機程式碼140將不載入程式碼)。 | |
晶圓探針測試經支援。 | |
ROM及SRAM PUF秘密受保護。 |
DEV | OTP記憶體及內部SPI快閃記憶體完全佈建。 |
實驗室調用之測試及生產級特徵經支援。 | |
JTAG可在應用程式碼執行時啟用(部分被視為不安全的)。 | |
ROM及SRAM PUF秘密受保護。 |
PROD | OTP記憶體及內部SPI快閃記憶體完全佈建。 |
生產級特徵經支援。 | |
部分被視為安全的。無測試存取(例如,JTAG),除邊界掃描特徵外。 | |
ROM及SRAM PUF秘密受保護。 |
FA | OTP記憶體及內部SPI快閃記憶體完全佈建。 |
修改之生產級及測試特徵經支援。自SPI快閃記憶體開機源載入之程式碼未執行。 | |
部分不被視為安全的,此係因為JTAG存取可經啟用。然而,所有OTP秘密被損毀。 | |
ROM及SRAM PUF秘密受保護。 |
EOL | OTP被損毀。 |
內部SPI快閃記憶體仍可完全佈建。 | |
測試特徵及生產級特徵未經支援。 | |
ROM及SRAM PUF秘密受保護。 |
生命週期階段之間的轉變可為線性的(例如,自階段1至階段6),可跳過多個生命週期階段,或者可為線性轉變之組合同時跳過一或多個生命週期階段。在實例中,電子構件101之製造商可界定可允許轉變。開機程式碼140可藉由管理電子構件101經由一系列生命週期階段之轉變來實施製造商之經界定可允許轉變。圖3藉由在一系列生命週期階段308中之不同生命週期階段之間的箭頭說明自一個生命週期階段至另一生命週期階段之有效轉變(例如,製造商之經界定可允許轉變)的實例。舉例而言,自RAW階段,構件可被限制為轉變至MFG階段。自MFG階段,構件可轉變至DEV階段,或者替代地至PROD階段。在一些實例中,自一個生命週期階段至另一生命週期階段之轉變經分階段且需要電子構件101之重設(例如,構件重設、再開機或者電力循環)以實現至新生命週期階段之轉變。根據實例,RAW生命週期階段可對應於矽自製造其之鑄造廠運輸至製造商(OEM)的時間。MFG生命週期階段可對應於矽處於製造商持有之時間,例如,在製造商佈建構件期間。剩餘生命週期階段(DEV、PROD、FA、EOL)可對應矽處於顧客持有之時間。
圖4說明例如九(9)個生命週期位元(位元0至8)之實例集合的生命週期位元映射之實例,其中各別生命週期位元映射203a至203f可對應於圖2之OTP記憶體110中的生命週期位元203。生命週期位元映射203a至203f可指定九(9)個生命週期位元之六(6)個生命週期OTP位元模式(404a至404f),各別OTP位元模式對應於一系列生命週期階段408中之各別經界定生命週期階段。如此實例中所說明,生命週期位元映射203a中之生命週期OTP位元模式404a可對應於在生命週期位元映射203a正下方說明之生命週期階段RAW。類似地,生命週期位元映射203b中之生命週期OTP位元模式404b可對應於在生命週期位元映射203b正下方說明之生命週期階段MFG。另一所說明生命週期OTP位元模式(例如,生命週期位元映射203c至203f中之404c至404f)可對應於在其正下方說明之生命週期階段。
如圖4中所說明,生命週期位元映射203a可對應於RAW生命週期階段之生命週期OTP位元模式404a(亦即,未經程式化之位元0至8)。生命週期位元映射203b可對應於MFG生命週期階段之生命週期OTP位元模式404b(亦即,經程式化之位元0及2;未經程式化之位元1及3至8)。生命週期位元映射203c可對應於DEV生命週期階段之生命週期OTP位元模式404c(亦即,經程式化之位元0及2至4;未經程式化之位元1及5至8)。生命週期位元映射203d可對應於PROD生命週期階段之生命週期OTP位元模式404d(亦即,經程式化之位元0、2及4至5;未經程式化之位元1、3及6至8)。生命週期位元映射203e可對應於FA生命週期階段之生命週期OTP位元模式404e(亦即,經程式化之位元0、2至6及8;未經程式化之位元1及7)。生命週期位元映射203f可對應於EOL生命週期階段之生命週期OTP位元模式404f (亦即,經程式化之位元0至8)。
在實例中,電子構件101可經設計以使得開機程式碼140可具有對生命週期位元203之獨佔寫入存取。以此方式,開機程式碼140可例如回應於命令而隨著時間推移選擇性地程式化生命週期位元,以使電子構件以單向方式前進通過一系列生命週期階段。舉例而言,在開機程式碼140用對應於MFG生命週期階段之生命週期OTP位元模式404b來程式化生命週期位元203之後,自MFG生命週期階段返回至RAW生命週期階段之轉變410可經禁止,因為不可能「取消程式化」生命週期位元0及2 (OTP記憶體可經永久程式化)。因此,如藉由生命週期位元映射203c至203f中之實例生命週期OTP位元模式404a至404f所說明,電子構件101可限制為以單向方式(亦即,在圖4中自左至右)前進通過生命週期階段。
圖5說明將製造商OTP組構位元用於針對電子構件101界定之生命週期階段之子階段的實例。舉例來說,製造商可需要以分階段方式佈建電子構件以便限制在佈建期間對電子構件之某些特徵或者功能的存取。在所說明之實例中,製造商可界定子階段515 (MFG0、MFG1及MFG3),該等子階段可分別對應於513a至513c中之製造商OTP組構位元的唯一狀態。在此實例中,生命週期位元映射203a至203f中之生命週期OTP位元模式404a至404f可對應於圖4中所描繪之彼等。類似地,一系列生命週期階段508中之經界定生命週期階段可對應於408中之彼等,除子階段515對應於408中之MFG階段外。因此,當電子構件處於MFG生命週期階段(生命週期OTP位元模式404b、生命週期位元映射203b)時,子階段515可由程式化儲存於OTP記憶體110之製造商組構資訊213(圖2)中的製造商OTP組構位元來界定。在實例中,電子構件101可經設計以使得開機程式碼140可具有對製造商組構資訊213中之製造商OTP組構位元的獨佔寫入存取。在另一實例中,電子構件101可經設計以使得其他程式碼(製造商程式碼)可對製造商組構資訊213中之製造商OTP組構位元具有寫入存取。在又一實例中,製造商可經由外部硬體(例如,JTAG偵錯介面)程式化製造商組構資訊213中之製造商OTP組構位元。如所說明,子階段515可限制為以單向方式前進,因為不可能「取消程式化」製造商OTP組構位元(OTP記憶體可經永久程式化)。
儘管圖5說明界定MFG生命週期階段之子階段的實例,但類似方法可用於界定電子構件之其他生命週期階段之子階段。舉例而言,客戶可需要在開發(DEV生命週期階段)期間之子階段,以便限制對電子構件之某些特徵或者功能的存取。為達成此目的,客戶可界定OTP記憶體110之客戶資訊223中的客戶組構位元以界定子階段(例如,類似於子階段515)。客戶組構位元可由客戶程式碼使用以限制對電子構件之某些特徵或者功能的存取。
圖6說明實例命令記憶體171。命令記憶體171可包含可重寫記憶體(例如,暫存器),且可含有生命週期請求位元682、命令區域684及命令參數區域686。在實例中,生命週期位元682、命令區域684及命令參數區域686可(個別地或者以任何組合方式)使用以起始待由開機程式碼140處理之請求。在實例中,命令記憶體171可為使用者可存取的,使得除開機程式碼140外之程式碼(例如,製造商程式碼、客戶程式碼)可起始待由開機程式碼140處理之請求。在另一實例中,命令記憶體171可經由外部硬體(例如,JTAG偵錯介面、UART介面、I2C介面)存取。
在實例中,生命週期請求位元682在設定時可對應於將電子構件101自當前生命週期階段轉變至下一生命週期階段之請求。在相同或者另一實例中,命令區域684可用命令來程式化,該命令對應於開機程式碼140可執行之功能(例如,圖1中說明為145a及145b之功能F1、F2)。命令參數區域686可用參數來程式化,該參數對應於經程式化至區域684之命令。
圖7說明經由電子構件之OTP記憶體的安全程式化來管理電子構件之生命週期的實例方法700之流程圖。根據一個實例,方法700可在區塊710處開始。在實例中,方法700可由開機程式碼140執行。在一些實例中,開始區塊710可表示電子構件101首先通電之時間,或者電子構件重設(例如,構件重設、再開機或者電力循環)之後的時間。因此,方法700可在OTP記憶體110不是使用者可存取(例如,因為使用者程式碼尚未載入)之時間處由開機程式碼140執行。本揭示之教示可以系統100之多種組構實施。因而,用於方法700之初始化點及包含方法700之710至760之次序可取決於所選擇之實施。
在區塊720處,開機程式碼可藉由自OTP記憶體110讀取生命週期位元203來判定電子構件101之當前生命週期階段(LCS)。在區塊730處,開機程式碼可例如藉由檢查命令記憶體171中之生命週期請求位元682是否經設定來判定是否存在未定的生命週期請求。若不存在未定的生命週期請求,則開機程式碼可行進至區塊740,從而採取適合於當前生命週期階段之任何動作。若開機程式碼在區塊730處判定生命週期請求未定的,則開機程式碼可行進至區塊750。在區塊750中,開機程式碼可用對應於下一生命週期階段之生命週期OTP位元模式(例如,圖4中之404a至404f) 來程式化生命週期位元203。在程式化之後,開機程式碼可行進至區塊760且轉變至下一生命週期階段。
儘管圖7揭示與方法700相關之特定數目個操作,但方法700可用比圖7中所描繪之操作更多或者更少的操作來執行。舉例而言,在區塊750之前,開機程式碼可基於例如OTP組構位元而判定下一生命週期階段。亦在區塊750之前,開機程式碼可產生對應於下一生命週期階段之生命週期位元模式。在另一實例中,在區塊760處,開機程式碼可藉由強制電子構件101之重設而引起至下一生命週期階段之轉變。另外,儘管圖7揭示待關於方法700進行之操作之某一次序,但包含方法700之操作可以任何合適次序完成。
圖8說明經由電子構件之OTP記憶體的安全程式化來管理電子構件之生命週期的實例方法800之流程圖。根據一個實例,方法800可在區塊810處開始。在實例中,方法800可由開機程式碼140執行。在一些實例中,開始區塊810可表示電子構件101首先通電之時間,或者電子構件重設(例如,構件重設、再開機或者電力循環)之後的時間。因此,方法800可在OTP記憶體110不是使用者可存取(例如,因為使用者程式碼尚未載入)之時間處藉由開機程式碼140執行。本揭示之教示可以系統100之多種組構實施。因而,用於方法800之初始化點及包含方法800之810至850之次序可取決於所選擇之實施。
在方法800中,區塊810、815及820可分別對應於區塊710、720及730,除當程式碼在區塊820中判定存在未定的生命週期請求時,該開機程式碼可行進至區塊830,其中開機程式碼判定是否需要安全生命週期請求。在一些實例中,製造商可需要OTP生命週期位元203之安全程式化,使得惡意使用者無法引起不可逆生命週期轉變。根據此等實例,開機程式碼可需要使用者提供已簽署生命週期請求命令,其可用公開金鑰對之密碼編譯金鑰進行簽署。開機程式碼可能能夠存取金鑰對之另一半以便驗證已簽署命令。在區塊830中,若開機程式碼判定不需要安全生命週期請求,則其可行進至可分別對應於方法700之區塊750及760的區塊835及850。
若開機程式碼在區塊830中判定需要安全生命週期請求,則其可行進至區塊840,其中該開機程式碼可自使用者接收已簽署生命週期請求。命令可自來自圖6中所說明之命令記憶體171的命令區域684接收。命令可包括來自命令參數區域686之參數。如關於圖6所論述,使用者可經由韌體(例如,客戶程式碼)或者經由實體介面(例如,JTAG偵錯介面、UART介面、I2C介面)將安全生命週期請求命令寫入至命令記憶體171中。在區塊840處接收到已簽署生命週期請求之後,開機程式碼可行進至區塊845。在區塊845中,開機程式碼可例如藉由使用為使用者用於簽署請求之金鑰對的第二半之秘密密碼編譯金鑰來驗證已簽署生命週期請求。若開機程式碼驗證請求,則其可行進至區塊835 (接著850),如上文所描述。若已簽署生命週期請求驗證失效,則開機程式碼可行進至區塊825,其中當前生命週期階段恢復而不轉變至下一生命週期階段。
儘管圖8揭示與方法800相關之特定數目個操作,但方法800可用比圖8中所描繪之操作更多或者更少的操作來執行。舉例而言,若在區塊845中已簽署生命週期請求驗證失效,則開機程式碼可返回至區塊840,使得使用者可進行提交已簽署生命週期請求命令之第二次嘗試。在另一實例中,開機程式碼可允許在鎖定命令記憶體之前的有限數目個嘗試(例如,對於預定義時間量)。在一些實例中,關於方法700所描述之額外操作可同樣在方法800中執行。另外,儘管圖8揭示待關於方法800進行之操作之某一次序,但包含方法800之操作可以任何合適次序完成。
圖9a至圖9f說明經由電子構件之OTP記憶體的安全程式化來管理電子構件之生命週期的實例方法900之流程圖。根據一個實例,方法900可在圖9a中之區塊902處開始。在實例中,方法900可由開機程式碼140執行。在一些實例中,開始區塊902可表示電子構件101首先通電之時間,或者電子構件重設(例如,構件重設、再開機或者電力循環)之後的時間。因此,方法900可在OTP記憶體110不是使用者可存取(例如,因為使用者程式碼尚未載入)之時間處由開機程式碼140執行。本揭示之教示可以系統100之多種組構實施。因而,用於方法900之初始化點及包含方法900之902至984之次序可取決於所選擇之實施。
在區塊904處,開機程式碼可判定電子構件101之當前生命週期階段(LCS)。在區塊906處,開機程式碼可判定LCS是否為RAW生命週期階段。若如此,則開機程式碼可行進至區塊908且停止執行程式碼。舉例而言,藉由停止程式碼之執行,開機程式碼可不載入任何程式碼影像,使得在電子構件上不啟用特徵或者能力。此特徵可防止矽在自鑄造廠運輸至製造商時被盜(例如,圖3中之RAW生命週期階段)。若開機程式碼在區塊906處判定當前LCS並非RAW生命週期階段,則其可行進至區塊910 (在圖9b中繼續)。在此實例中,開機程式碼可能無法引起自RAW LCS至MFG LCS之轉變。製造商可使得使用外部測試器自RAW LCS轉變至MFG LCS,以將對應於MFG LCS(例如,圖4中之404b)之生命週期OTP位元模式程式化為OTP記憶體110中之生命週期位元203。在其他實例中,開機程式碼104可例如回應於判定一或多個外部接腳(例如,圖1中之180-1、180-2、…、180-N)處於預定義狀態而將對應於MFG LCS(例如,404b)之生命週期OTP位元模式程式化至生命週期位元203中。
圖9b可在區塊910處開始且行進至區塊912。在區塊912處,開機程式碼可判定LCS是否為MFG生命週期階段。若如此,則開機程式碼可行進至區塊914,其中開機程式碼可判定是否存在未定的生命週期請求(例如,如針對圖7及圖8所描述)。若無生命週期請求未定的,則開機程式碼可行進至區塊916,其中當前MFG生命週期階段恢復而不轉變至另一生命週期階段。若在區塊914處,開機程式碼判定存在未定的生命週期請求,則開機程式碼可行進至區塊918。在區塊918處,開機程式碼可判定電子構件101之JTAG能力是否已停用。在一個實例中,開機程式碼藉由讀取來自OTP記憶體110之製造商組構資訊區域213的組構資訊來進行此判定。在此實例中,若JTAG經停用,則製造商可判定自MFG LCS至PROD LCS之轉變係可允許的。因此,開機程式碼可在區塊918實施加此限制。
若判定JTAG經停用,則開機程式碼可行進至區塊920。在區塊920中,開機程式碼可產生PROD生命週期OTP位元模式(例如,圖4中之404d)。此後,開機程式碼可行進至區塊922,且用PROD生命週期OTP位元模式(例如,404d)來程式化OTP記憶體110中之OTP生命週期位元203。開機程式碼可接著行進至區塊924且轉變至PROD LCS。在實例中,在區塊924處,開機程式碼可藉由強制電子構件101之重設而引起至PROD生命週期階段之轉變。在區塊924處,開機程式碼可執行對應於至PROD生命週期階段之轉變的其他操作(例如,如圖12中所說明)。
若在區塊918處判定JTAG未停用,則開機程式碼可行進至區塊926。在區塊926中,開機程式碼可產生DEV生命週期OTP位元模式(例如,圖4中之404c)。此後,開機程式碼可行進至區塊928,且用DEV生命週期OTP位元模式(例如,404c)來程式化OTP記憶體110中之OTP生命週期位元203。開機程式碼可接著行進至區塊930且轉變至DEV LCS。在實例中,在區塊930處,開機程式碼可藉由強制電子構件101之重設而引起至DEV生命週期階段之轉變。在區塊930處,開機程式碼可執行對應於至DEV生命週期階段之轉變的其他操作。
在區塊912中,若開機程式碼判定LCS並非MFG生命週期階段,則開機程式碼可行進至區塊932(在圖9c處繼續)。
圖9c可在區塊932處開始且行進至區塊934。在區塊934中,開機程式碼可判定LCS是否為DEV生命週期階段。若如此,則開機程式碼可行進至區塊936,其中開機程式碼可判定是否存在未定的生命週期請求(例如,如針對圖7及圖8所描述)。若無生命週期請求未定的,則開機程式碼可行進至區塊938,其中當前DEV生命週期階段恢復而不轉變至另一生命週期階段。若在區塊936處,開機程式碼判定存在未定的生命週期請求,則開機程式碼可行進至區塊940。區塊940及942可類似於圖8中之區塊840及845而操作。在此實例中,自DEV LCS至FA或者EOL LCS之轉變可需要可為已簽署生命週期FA/EOL命令之安全生命週期請求。在實例中,接收到之請求/命令之驗證可如針對圖8中之區塊845所描述而繼續。在其他實例中,接收到之請求/命令之驗證可如圖10及圖11中所說明而繼續。若接收之請求/命令之驗證(在區塊942中)失效,則開機程式碼可行進至區塊938。在其他實例(未說明)中,開機程式碼可行進至區塊940以接收額外已簽署生命週期FA/EOL命令嘗試。
若接收到之請求/命令之驗證(在區塊942中)成功,則開機程式碼可行進至區塊944。在區塊944中,開機程式碼可判定已簽署生命週期FA/EOL命令是否指示至FA LCS或者EOL之轉變。舉例而言,已簽署生命週期FA/EOL命令可已經源自於命令記憶體171且可包括可指示需要哪一轉變之命令參數686。在其他實例中,OTP記憶體110中之組構資訊(例如,在製造商組構資訊區域213或者客戶資訊區域223中)可指示需要哪一轉變。
若開機程式碼在區塊944中判定行進至FA LCS之轉變,則開機程式碼可行進至區塊952。在區塊952中,開機程式碼可產生FA生命週期OTP位元模式(例如,圖4中之404e)。此後,開機程式碼可行進至區塊954,且用FA生命週期OTP位元模式(例如,404e)來程式化OTP記憶體110中之OTP生命週期位元203。開機程式碼可接著行進至區塊956且轉變至FA LCS。在實例中,在區塊956處,開機程式碼可藉由強制電子構件101之重設而引起至FA生命週期階段之轉變。在區塊956處,開機程式碼可執行對應於至FA生命週期階段之轉變的其他操作(未說明)。在一個實例中,開機程式碼可有效地抹除儲存於OTP記憶體中之所有秘密(例如,藉由程式化OTP記憶體中之所有位元)及抹除所有記憶體。在此實例中,客戶可將一部分返回至製造商以進行失效分析且將不希望製造商存取客戶之秘密。
若開機程式碼在區塊944中判定行進至EOL LCS之轉變,則開機程式碼可行進至區塊946。在區塊946中,開機程式碼可產生EOL生命週期OTP位元模式(例如,圖4中之404f)。此後,開機程式碼可行進至區塊948,且用EOL生命週期OTP位元模式(例如,404f)來程式化OTP記憶體110中之OTP生命週期位元203。開機程式碼可接著行進至區塊950且轉變至EOL LCS。在實例中,在區塊950處,開機程式碼可藉由強制電子構件101之重設而引起至EOL生命週期階段之轉變。在區塊950處,開機程式碼可執行對應於至EOL生命週期階段之轉變的其他操作(未說明)。在一個實例中,開機程式碼可有效地抹除儲存於OTP記憶體中之所有秘密(例如,藉由程式化OTP記憶體中之所有位元)及抹除所有記憶體,使得該部分無需實體上破壞以保護製造商及客戶秘密。
在區塊934中,若開機程式碼判定LCS並非DEV生命週期階段,則開機程式碼可行進至區塊958(在圖9d處繼續)。
圖9d可在區塊958處開始且行進至區塊960。在區塊960中,開機程式碼可判定LCS是否為PROD生命週期階段。若如此,則開機程式碼可行進至區塊962,其中開機程式碼可判定是否存在未定的生命週期請求(例如,如針對圖7及圖8所描述)。若無生命週期請求未定的,則開機程式碼可行進至區塊964,其中當前PROD生命週期階段恢復而不轉變至另一生命週期階段。若在區塊962處,開機程式碼判定存在未定的生命週期請求,則開機程式碼可行進至區塊966。區塊966及968可類似於區塊840、940及845、942 (分別在圖8及圖9c中)操作,除若驗證在區塊968中失效,則開機程式碼可行進至區塊964外。圖9d中之區塊944、946、948、950、952、954及956用圖9c中之相同編號區塊進行描述。
在區塊960中,若開機程式碼判定LCS並非PROD生命週期階段,則開機程式碼可行進至區塊970 (在圖9e處繼續)。
圖9e可在區塊970處開始且行進至區塊972。在區塊972中,開機程式碼可判定LCS是否為FA生命週期階段。若如此,則開機程式碼可行進至區塊974,其中開機程式碼可判定是否存在未定的生命週期請求(例如,如針對圖7及圖8所描述)。若無生命週期請求未定的,則開機程式碼可行進至區塊976,其中當前FA生命週期階段恢復而不轉變至另一生命週期階段。若在區塊974處,開機程式碼判定存在未定的生命週期請求,則開機程式碼可行進至區塊978。除了若在區塊980中驗證失效,區塊978及980可類似於區塊840、940、966及845、942、968 (分別在圖8、圖9c及圖9d中)操作,開機程式碼可行進至區塊976外。圖9e中之區塊946、948及950用圖9c中之相同編號區塊進行描述。
在區塊972中,若開機程式碼判定LCS並非FA生命週期階段,則開機程式碼可行進至區塊978(在圖9f處繼續)。
圖9f可在區塊978處開始且行進至區塊980。在區塊980中,開機程式碼可判定LCS是否為EOL生命週期階段。若如此,則開機程式碼可行進至區塊982且停止執行程式碼。舉例而言,藉由停止程式碼之執行,開機程式碼可不載入任何程式碼影像,使得在電子構件上不啟用特徵或者能力。對於已達到生命結束(EOL)之部分這可能是所要結果。若在區塊980中,開機程式碼判定LCS並非EOL生命週期階段,則開機程式碼可行進至區塊984。如所說明,區塊984可為LCS錯誤狀態,此係因為LCS並不匹配例如電子構件101之六(6)個經界定生命週期階段中之任一者。替代地,由於錯誤條件為非預期的,故開機程式碼可自區塊984轉變回至圖9a中之區塊902且重新運行方法900。
儘管圖9a至圖9f揭示與方法900相關之特定數目個操作,但方法900可用比圖9a至圖9f中所描繪之操作更多或者更少的操作(例如,上文所描述之操作及其他操作)來執行。圖10至圖12提供具有比圖9a至圖9f中所描繪之操作更多的操作之方法900的額外實例。另外,儘管圖9a至圖9f揭示關於方法900進行之操作之某一次序,但包含方法900之操作可以任何合適的次序完成。
圖10說明用於經由電子構件之OTP記憶體的安全程式化來管理電子構件之生命週期的方法900之額外實例操作之流程圖。圖10說明開機程式碼140在接收及驗證已簽署生命週期FA/EOL命令時可執行之額外操作的實例,如關於圖9c、圖9d、圖9e之區塊940、966、978及942、968、980所描述。在此實例中,製造商可增強與至FA或者EOL生命週期階段之轉變相關的安全性。因此,圖9c、圖9d、圖9e之區塊940、966、978及942、968、980可由圖10之區塊986至994及942、968、980替換。
在區塊986處,開機程式碼可接收構件唯一資料(DUD)之請求。在區塊988處,開機程式碼可獲得或者產生所請求之DUD。在實例中,DUD可包括隨機數。在另一實例中,DUD可包括序號或者可儲存於OTP記憶體110中之其他秘密構件唯一資訊233(參見圖2)。在區塊990處,開機程式碼可例如經由實體介面(例如,JTAG偵錯介面、UART介面、I2C介面)將DUD傳輸至使用者。在區塊992,開機程式碼可接收包括先前在區塊990中傳輸之DUD的已簽署生命週期FA/EOL命令。在區塊994處,開機程式碼可驗證包括DUD之已簽署生命週期FA/EOL命令。在實例中,不包括DUD之生命週期FA/EOL命令可使驗證失效,因此增強電子構件之安全性。
儘管圖10揭示與方法900相關之特定數目個操作,但方法900可用比圖10中所描繪之操作更多或者更少的操作來執行(例如,如圖11中所說明)。另外,儘管圖10揭示待關於方法900進行之操作之某一次序,但包含方法900之操作可以任何合適次序完成。
圖11說明用於經由電子構件之OTP記憶體的安全程式化來管理電子構件之生命週期的方法900之額外實例操作之流程圖。圖11說明與圖10相同的操作,其中添加區塊996。在區塊996處,開機程式碼可實施逾時週期且判定彼週期是否已過去。逾時週期可在開機程式碼在區塊990中傳輸DUD之後開始運行。若逾時週期在開機程式碼接收包括DUD之已簽署生命週期FA/EOL命令之前(區塊992)過去,則開機程式碼可繼續,如同已簽署命令失效驗證。因此,可能需要希望導致轉變至FA或者EOL生命週期階段之使用者再次開始該過程,包括在區塊986處請求DUD。
圖12說明用於經由電子構件之OTP記憶體的安全程式化來管理電子構件之生命週期的方法900之額外實例操作之流程圖。圖12說明開機程式碼140可在圖9b之區塊922與924之間執行的額外操作之實例。在此實例中,開機程式碼可自區塊922行進至區塊923。在區塊923中,開機程式碼可產生構件唯一資訊。在區塊925中,開機程式碼可用在區塊923中產生之構件唯一資訊來程式化OTP記憶體110。在實例中,構件唯一資訊可為公開密碼編譯金鑰、ROM種子或者其他構件唯一資訊。儘管說明為在區塊922與924之間操作,但在實例中,區塊923及925可在區塊928與930之間操作(圖9b)。
圖13說明經由電子構件之OTP記憶體的安全程式化來管理電子構件之生命週期的實例方法1300之流程圖。在實例中,電子構件101可包括指定用於各別生命週期階段之可用功能集合的生命週期功能資料。經指定之用於各別生命週期階段之可用功能集合界定可在電子構件之各別生命週期階段期間執行的功能。在圖13中,開機程式碼可在區塊1302處接收命令。在實例中,命令可自命令記憶體171(例如,圖6)接收。在區塊1304處,開機程式碼可判定接收到之命令是否為已簽署生命週期FA/EOL命令。若如此,則開機程式碼可行進至區塊1306,其中開機程式碼判定當前生命週期階段是否為DEV LCS或者PROD LCS。若如此,則開機程式碼可行進至區塊1310且處理接收到之命令。若當前生命週期階段既不為DEV亦不為PROD,則開機程式碼可行進至區塊1308且忽略接收到之命令。以此方式,開機程式碼可指定用於各別生命週期階段之可用功能集合。在此實例中,已簽署生命週期FA/EOL命令在RAW、MFG、FA或者EOL生命週期階段中不可用。因此,儘管電子構件正在各別生命週期階段中操作,但開機程式碼可限制如由生命週期功能資料界定之彼各別生命週期階段之可用功能。
方法700至1300可使用系統100或者可操作以實施方法700至1300之任何其他系統來實施。儘管上文已描述實例,但可在不脫離此等所揭示實例之精神及範疇的情況下自本揭示進行其他變化及實例。
100:系統
101:電子構件
110:OTP記憶體
120a,120b:一次性可程式化位元
121:系統匯流排
130:ROM
140:開機程式碼
145a,145b:功能
150:網路介面
155:網路
160:處理器
170:記憶體
171:命令記憶體
172:快閃記憶體
173:SRAM
180-1,180-2,…,180-N:外部埠
190:I/O及埠控制
203:生命週期位元
203a,203b,203c,203d,203e,203f:生命週期位元映射
213:製造商組構資訊
223:客戶資訊
233:秘密構件唯一資訊
308,408,508:生命週期階段
404a,404b,404c,404d,404e,404f:生命週期OTP位元模式
410:轉變
513a,513b,513c,513d,513e,513f:製造商OTP組構位元
515:子階段
682:生命週期請求位元
684:命令區域
686:命令參數區域
700,800,900,1300:方法
710,720,730,740,750,760,810,815,820,825,830,835,840,845,850,902,904,906,908,910,912,914,916,918,920,922,923,924,925,926,928,930,932,934,936,938,940,942,944,946,948,950,952,954,956,958,960,962,962,966,968,970,972,974,976,978,980,982,984,986,988,990,992,994,996,1302,1304,1306,1308,1310:區塊
圖式說明經由電子構件之一次性可程式化(OTP)記憶體的安全程式化來管理電子構件之生命週期的實例方法及系統。
圖1說明經由電子構件之OTP記憶體的安全程式化來管理電子構件之生命週期的實例系統之方塊圖。
圖2說明可用於管理電子構件之生命週期的實例OTP記憶體。
圖3說明自電子構件中之一個生命週期階段至另一生命週期階段的有效轉變之實例。
圖4說明九(9)個生命週期OTP位元之實例集合之生命週期位元映射的實例。
圖5說明將製造商OTP組構位元用於針對電子構件界定之生命週期階段之子階段的實例。
圖6說明實例命令記憶體。
圖7說明經由電子構件之OTP記憶體的安全程式化來管理電子構件之生命週期的實例方法之流程圖。
圖8說明經由電子構件之OTP記憶體的安全程式化來管理電子構件之生命週期的實例方法之流程圖。
圖9a至圖9f說明經由電子構件之OTP記憶體的安全程式化來管理電子構件之生命週期的實例方法之流程圖。
圖10說明經由電子構件之OTP記憶體的安全程式化來管理電子構件之生命週期的額外實例操作之流程圖。
圖11說明經由電子構件之OTP記憶體的安全程式化來管理電子構件之生命週期的額外實例操作之流程圖。
圖12說明經由電子構件之OTP記憶體的安全程式化來管理電子構件之生命週期的額外實例操作之流程圖。
圖13說明經由電子構件之OTP記憶體的安全程式化來管理電子構件之生命週期的實例方法之流程圖。
在多個不同圖中出現之任何所說明元件的元件符號在多個圖中具有相同含義,且在任何特定圖之上下文中對任何所說明元件之本文中提及或者論述亦適用於各其他圖(若存在),其中展示相同所說明元件。
100:系統
101:電子構件
110:OTP記憶體
120a,120b:一次性可程式化位元
121:系統匯流排
130:ROM
140:開機程式碼
145a,145b:功能
150:網路介面
155:網路
160:處理器
170:記憶體
171:命令記憶體
172:快閃記憶體
173:SRAM
180-1,180-2,…,180-N:外部埠
190:I/O及埠控制
Claims (23)
- 一種系統,其包含: 一電子構件,其具有複數個經界定生命週期階段,該電子構件包括一一次性可程式化(OTP)記憶體,該一次性可程式化(OTP)記憶體包含複數個生命週期位元,其中該複數個生命週期位元之各別位元模式對應於該複數個經界定生命週期階段中之各別生命週期階段; 一開機程式碼,其儲存於唯讀記憶體中且可由一處理器執行以: 接收自該複數個經界定生命週期階段中之一當前生命週期階段轉變至該複數個經界定生命週期階段中之一下一生命週期階段之一請求;及 回應於該接收到之請求,在該OTP記憶體不是使用者可存取之一時間期間在該OTP記憶體中自動地產生對應於該複數個經界定生命週期階段中之該下一生命週期階段的一位元模式,且程式化對應於該複數個經界定生命週期階段中之該下一生命週期階段的該位元模式。
- 如請求項1之系統,其中,可由該處理器執行以在該OTP記憶體不是使用者可存取之一時間期間在該OTP記憶體中自動地產生及程式化對應於該複數個經界定生命週期階段中之該下一生命週期階段的該位元模式之該開機程式碼包含可由該處理器執行以在該電子構件之一後續重設期間在該OTP記憶體中自動地產生及程式化對應於該複數個經界定生命週期階段中之該下一生命週期階段的該位元模式之開機程式碼。
- 如請求項2之系統,其中,該電子構件之該後續重設包含該電子構件之一構件重設、一再開機或者一電力循環。
- 如請求項1之系統,其中,在該OTP記憶體中程式化對應於該複數個經界定生命週期狀態中之該下一生命週期階段的該位元模式之該開機程式碼使得自該複數個經界定生命週期階段中之該當前生命週期階段轉變至該複數個經界定生命週期階段中之該下一生命週期階段。
- 如請求項1之系統,其中,回應於該接收到之請求,該開機程式碼可由該處理器執行以在該OTP記憶體不是使用者可存取之該時間期間在該OTP記憶體中自動地產生一構件唯一資訊且程式化該構件唯一資訊。
- 如請求項1之系統,其中,對於該複數個經界定生命週期階段中之各別生命週期階段,該開機程式碼使可在該複數個經界定生命週期階段中之該各別生命週期階段期間執行的一對應各別可用功能集合對該使用者可用。
- 如請求項6之系統,其中, 可在該複數個經界定生命週期階段中之一第一生命週期階段期間執行的該各別可用功能集合包括一第一功能;且 可在該複數個經界定生命週期階段中之一第二生命週期階段期間執行的該各別可用功能集合不包括該第一功能。
- 如請求項1之系統,其中,自該複數個經界定生命週期階段中之一當前生命週期階段轉變至該複數個經界定生命週期階段中之一下一生命週期階段之該請求經由該電子構件之一實體埠或者經由載入至該電子構件上之一韌體接收。
- 如請求項1之系統,其中,自該複數個經界定生命週期階段中之一當前生命週期階段轉變至該複數個經界定生命週期階段中之一下一生命週期階段之該請求包含一已簽署命令。
- 如請求項1之系統,其中,該電子構件包含一伺服器、與一伺服器相關聯之一構件或者一計算平台,且其中該系統包含用於該伺服器之一安全開機控制器、與該伺服器相關聯之一構件或者一計算平台。
- 一種系統,其包含: 一電子構件,其具有一一次性可程式化(OTP)記憶體,該OTP記憶體包括複數個生命週期OTP位元; 一生命週期位元映射,其與該電子構件之複數個經界定生命週期階段相關聯,該生命週期位元映射指定複數個生命週期OTP位元模式,各別生命週期OTP位元模式對應於該電子構件之各別生命週期階段; 一生命週期功能資料,其指定用於各別生命週期階段之一可用功能集合,其中: 用於各別生命週期階段之該指定可用功能集合界定可在該電子構件之該各別生命週期階段期間執行的功能;且 用於一各別第一生命週期階段之該指定可用功能集合不同於用於一各別第二生命週期階段之該指定可用功能集合;及 一開機程式碼,其儲存於唯讀記憶體中且可由一處理器執行以經由一系列生命週期階段來管理該電子構件之佈建,包括: 在該OTP記憶體不是使用者可存取之一時間期間隨著時間推移選擇性地程式化該複數個生命週期OTP位元以使該電子構件前進通過該一系列生命週期階段;及 當該電子構件正在該各別第一生命週期階段中操作時,允許僅存取如由該生命週期功能資料指定之用於該各別第一生命週期階段的該可用功能集合。
- 如請求項11之系統,其包含: 可由該處理器執行以在該OTP記憶體不是使用者可存取之一時間期間在該OTP記憶體中自動地產生一構件唯一資訊且程式化該構件唯一資訊的該開機程式碼。
- 如請求項11之系統,其中,可由該處理器執行以隨著時間推移選擇性地程式化該複數個生命週期OTP位元從而使該電子構件前進通過該一系列生命週期階段的該開機程式碼包含回應於一已簽署命令,可由該處理器執行以隨著時間推移選擇性地程式化該複數個生命週期OTP位元從而使該電子構件前進通過該一系列生命週期階段的開機程式碼。
- 一種方法,其包含: 對於具有一一次性可程式化(OTP)記憶體、複數個經界定生命週期階段及複數個經界定功能之一電子構件,當該電子構件處於該複數個經界定生命週期階段中之一第一生命週期階段時,提供對該複數個經界定功能之一第一集合的存取; 接收將該電子構件自該複數個經界定生命週期階段中之該第一生命週期階段轉變至該複數個經界定生命週期階段中之一第二生命週期階段之一請求; 回應於將該電子構件自該複數個經界定生命週期階段中之該第一生命週期階段轉變至該複數個經界定生命週期階段中之該第二生命週期階段的該接收到之請求,在該OTP記憶體不是使用者可存取之一第一時間期間用對應於該複數個經界定生命週期階段中之該第二生命週期階段的資訊,藉由程式化該OTP記憶體而將該電子構件轉變至該複數個經界定生命週期階段中之該第二生命週期階段;及 當該電子構件處於該複數個經界定生命週期階段中之該第二生命週期階段時,提供對該複數個經界定功能之一第二集合的存取。
- 如請求項14之方法,其中,在該OTP記憶體不是使用者可存取之該第一時間期間程式化該OTP記憶體包含在該電子構件之一後續重設期間程式化該OTP記憶體。
- 如請求項14之方法,其中,該電子構件之該後續重設包含該電子構件之一構件重設、一重新開機或者一電力循環。
- 如請求項14之方法,其包含: 回應於將該電子構件自該複數個經界定生命週期階段中之該第一生命週期階段轉變至該複數個經界定生命週期階段中之該第二生命週期階段的該接收到之請求,在該OTP記憶體不是使用者可存取之該時間期間在該OTP記憶體中自動地產生及程式化一構件唯一資訊。
- 如請求項14之方法,其中, 該複數個經界定功能之該第一集合包括一第一功能;且 該複數個經界定功能之該第二集合不包括該第一功能。
- 如請求項14之方法,其包含: 在將該電子構件轉變至該複數個經界定生命週期階段中之該第二生命週期階段之後,禁止將該電子構件轉變至該複數個經界定生命週期階段中之該第一生命週期階段。
- 如請求項14之方法,其中,將該電子構件自該複數個經界定生命週期階段中之該第一生命週期階段轉變至該複數個經界定生命週期階段中之該第二生命週期階段之該請求經由該電子構件之一實體埠或者經由載入至該電子構件上之一韌體接收。
- 如請求項14之方法,其中,將該電子構件自該複數個經界定生命週期階段中之該第一生命週期階段轉變至該複數個經界定生命週期階段中之該第二生命週期階段之該請求包含一已簽署命令。
- 如請求項14之方法,其包含: 接收將該電子構件自該複數個經界定生命週期階段中之該第二生命週期階段轉變至該複數個經界定生命週期階段中之一第三生命週期階段之一請求; 回應於將該電子構件自該複數個經界定生命週期階段中之該第二生命週期階段轉變至該複數個經界定生命週期階段中之該第三生命週期階段的該接收到之請求,在該OTP記憶體不是使用者可存取之一第二時間期間用對應於該複數個經界定生命週期階段中之該第三生命週期階段的資訊,藉由程式化該OTP記憶體而將該電子構件轉變至該複數個經界定生命週期階段中之該第三生命週期階段;及 當該電子構件處於該複數個經界定生命週期階段中之該第三生命週期階段時,提供對該複數個經界定功能之一第三集合的存取。
- 如請求項22之方法,其包含: 在將該電子構件轉變至該複數個經界定生命週期階段中之該第三生命週期階段之後,禁止將該電子構件轉變至該複數個經界定生命週期階段中之該第二生命週期階段。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263311331P | 2022-02-17 | 2022-02-17 | |
US63/311,331 | 2022-02-17 | ||
US18/110,434 | 2023-02-16 | ||
US18/110,434 US20230259629A1 (en) | 2022-02-17 | 2023-02-16 | Secure programming of one-time-programmable (otp) memory |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202341162A true TW202341162A (zh) | 2023-10-16 |
Family
ID=85640623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112105740A TW202341162A (zh) | 2022-02-17 | 2023-02-17 | 一次性可程式化記憶體的安全程式化 |
Country Status (2)
Country | Link |
---|---|
TW (1) | TW202341162A (zh) |
WO (1) | WO2023158773A1 (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8631247B2 (en) * | 2008-11-24 | 2014-01-14 | Certicom Corp. | System and method for hardware based security |
US10223531B2 (en) * | 2016-12-30 | 2019-03-05 | Google Llc | Secure device state apparatus and method and lifecycle management |
-
2023
- 2023-02-17 WO PCT/US2023/013271 patent/WO2023158773A1/en active Application Filing
- 2023-02-17 TW TW112105740A patent/TW202341162A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023158773A1 (en) | 2023-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6433198B2 (ja) | 安全なブートromパッチのためのシステム及び方法 | |
US8719595B2 (en) | Semiconductor device including encryption section, semiconductor device including external interface, and content reproduction method | |
US11256797B2 (en) | Remote attestation for multi-core processor | |
US20030018892A1 (en) | Computer with a modified north bridge, security engine and smart card having a secure boot capability and method for secure booting a computer | |
EP2854066A1 (en) | System and method for firmware integrity verification using multiple keys and OTP memory | |
US11354417B2 (en) | Enhanced secure boot | |
CN112789574B (zh) | 经由系统及电源管理微控制器的安全启动 | |
US9208292B2 (en) | Entering a secured computing environment using multiple authenticated code modules | |
JP7113115B2 (ja) | シリコンデバイスファームウェア上のロールバック攻撃を防止するセキュリティシステム、および、方法 | |
CN102298529A (zh) | 为系统提供硅集成代码 | |
US20220318392A1 (en) | Secured boot of a processing unit | |
US20230273977A1 (en) | Managing ownership of an electronic device | |
TW202407563A (zh) | 基於裝置所有者產生金鑰之sram物理上不可複製的功能記憶體 | |
US20230259629A1 (en) | Secure programming of one-time-programmable (otp) memory | |
CN113935011A (zh) | 用于执行控制设备的安全启动序列的方法 | |
US20230078138A1 (en) | Computing systems employing measurement of boot components, such as prior to trusted platform module (tpm) availability, for enhanced boot security, and related methods | |
US20240267211A1 (en) | Device identity keys | |
TW202341162A (zh) | 一次性可程式化記憶體的安全程式化 | |
US20230078058A1 (en) | Computing systems employing a secure boot processing system that disallows inbound access when performing immutable boot-up tasks for enhanced security, and related methods | |
CN113642050B (zh) | 自配置加密硬盘及其配置方法、系统及系统的启动方法 | |
CN117980907A (zh) | 一次性可编程(otp)存储器的安全编程 | |
US20240004804A1 (en) | Method for managing access rights of memory regions and corresponding system on chip | |
US20230188326A1 (en) | System on chip, security system, and method of performing authentication | |
US20230099455A1 (en) | Dynamic boot configuration | |
TW202343231A (zh) | 管理電子設備的所有權 |