TWI732175B - 安全裝置狀態設備及方法及生命週期管理 - Google Patents
安全裝置狀態設備及方法及生命週期管理 Download PDFInfo
- Publication number
- TWI732175B TWI732175B TW108104180A TW108104180A TWI732175B TW I732175 B TWI732175 B TW I732175B TW 108104180 A TW108104180 A TW 108104180A TW 108104180 A TW108104180 A TW 108104180A TW I732175 B TWI732175 B TW I732175B
- Authority
- TW
- Taiwan
- Prior art keywords
- semiconductor chip
- fuse
- state
- key
- chip device
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31719—Security aspects, e.g. preventing unauthorised access during test
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318583—Design for test
- G01R31/318588—Security aspects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F21/73—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 by creating or determining hardware identification, e.g. serial numbers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F21/74—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 operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F21/75—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 by inhibiting the analysis of circuitry or operation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/36—Data generation devices, e.g. data inverters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/40—Response verification devices using compression techniques
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/46—Test trigger logic
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/24—Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B20/00—Read-only memory [ROM] devices
- H10B20/20—Programmable ROM [PROM] devices comprising field-effect components
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C17/00—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
- G11C17/14—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C17/00—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
- G11C17/14—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
- G11C17/18—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0401—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0403—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals during or with feedback to manufacture
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/4402—Internal storage of test result, quality data, chip identification, repair information
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
一種半導體晶片裝置包含裝置狀態熔絲,該等裝置狀態熔絲可用於在該半導體晶片裝置自晶圓製造轉變至經佈建裝置時組態半導體晶片之各種裝置狀態及對應安全等級。該等裝置狀態及安全等級阻止該半導體晶片例如在製造測試期間被存取及利用。本發明亦揭示一半導體晶片在其生命週期內之一安全啟動流程程序。該安全啟動流程可在晶圓製造階段開始且透過插入金鑰及韌體而繼續。
Description
本文中所闡述之標的物一般而言係關於半導體晶片製造之領域且包含貫穿半導體晶片生命週期且亦用於安全啟動流程之安全措施。
在半導體晶片製造中,若干半導體晶片可共同形成為一晶圓並與該晶圓之部分同時進行測試。然後,可將一晶圓切粒成個別晶片/裝置,其中該等晶片/裝置在併入至產品中之前經歷進一步測試後續接著佈建。在某些例項中,在製造期間或之後針對替代應用重新佈建晶片裝置可係有用的。
單次可程式化非揮發性儲存技術已廣泛用於半導體晶片製造中。此單次可程式化非揮發性儲存技術之實例包含熔絲,諸如電熔絲、反熔絲或雷射熔絲。此等熔絲可用於在製造半導體晶片之後改變半導體晶片之組態而且用於調諧效能。熔絲亦可用於晶片ID儲存及密碼金鑰儲存。
電熔絲技術包含單次可程式化非揮發性儲存技術,其中(若干)電熔絲位元可僅一次設定為1而未經程式化位元可具有零值。一可用電熔絲技術使用電可程式化PMOS閘氧化物反熔絲,其中一讀取操作僅需要核心IC電源供應器,然而可使用一外部電源供應器執行程式化。
電熔絲可配置為獨立熔絲巨集,其中每一巨集可具有(舉例而言)以64位元增量在64位元至1,000位元之範圍內之一容量。
此發明內容以一簡化形式介紹一概念選擇以便提供對本發明之某些態樣之一基本理解。此發明內容並非對本發明之一廣泛概述,且不意欲識別本發明之關鍵或緊要元素或劃定本發明之範疇。此發明內容僅僅呈現本發明之概念中之某些概念作為下文提供之[實施方式]之一前奏。
本發明一般而言係關於半導體晶片裝置。更具體而言,本發明之態樣係關於貫穿半導體晶片裝置之生命週期使其安全且使一啟動流程操作安全。
一態樣包含一種使具有複數個裝置狀態熔絲之一半導體晶片裝置安全之方法,該方法包括:將儲存於該等裝置狀態熔絲中之一原始裝置位元型樣改變至一測試模式經啟用位元型樣以將一裝置狀態自一原始裝置狀態改變至一測試模式經啟用裝置狀態,其中該測試模式經啟用裝置狀態准許對該半導體晶片裝置執行製造測試;回應於該半導體晶片裝置通過製造測試而將該測試模式經啟用位元型樣改變至一測試模式經鎖定位元型樣以將該裝置狀態自該測試模式經啟用裝置狀態改變至一測試模式經鎖定裝置狀態;及基於對該裝置狀態之改變而變更該半導體晶片裝置之一安全等級。
額外態樣係關於一種方法,該方法回應於將該裝置狀態自一原始裝置狀態改變至一測試模式經啟用裝置狀態而將一原始裝置狀態安全等級變更至一測試模式經啟用安全等級,在該原始裝置狀態安全等級中不能自該晶片外部存取測試模式及埠,在該測試模式經啟用安全等級中可經由該等埠中之一或多者進行對該半導體晶片裝置之製造測試。
進一步態樣包含一種方法,該方法回應於將該裝置狀態自一測試模式經啟用裝置狀態改變至一測試模式經鎖定裝置狀態而將一測試模式經啟用安全等級變更至一測試模式經鎖定安全等級,在該測試模式經啟用安全等級中可自該晶片外部存取測試模式及埠,在該測試模式經鎖定安全等級中鎖定對該半導體晶片裝置之製造測試。
又進一步態樣包含一種方法,該方法回應於該半導體晶片裝置未通過該製造測試而將該測試模式經啟用位元型樣改變至一測試模式經停用位元型樣以將該裝置狀態自該測試模式經啟用裝置狀態改變至一測試模式經停用裝置狀態;且回應於將該裝置狀態自一測試模式經啟用裝置狀態改變至一測試模式經停用裝置狀態而變更該安全等級會將一測試模式經啟用安全等級變更至一測試模式經停用安全等級,在該測試模式經啟用安全等級中可自該晶片外部存取測試模式及埠,在該測試模式經停用安全等級中停用對該半導體晶片裝置之製造測試及該半導體晶片裝置上之埠。
再進一步態樣包含一種方法,該方法回應於該等裝置狀態熔絲改變至不匹配對應於一已知模式之一已知位元型樣之一位元型樣而將該等裝置狀態熔絲中之該位元型樣修改至一經停用模式位元型樣且將該安全等級變更至一經停用安全等級,在該經停用安全等級中停用該半導體晶片裝置中之所有埠及記憶體。
又進一步態樣包含其中該半導體晶片裝置進一步包括一啟動載入器程序,該方法進一步包括回應於該啟動載入器程序驗證出該晶片裝置連同一解鎖請求接收到一正確解鎖密碼而變更該安全等級會藉由允許該等裝置狀態熔絲之值改變至測試模式經啟用型樣而將該晶片裝置解鎖。
額外態樣包含一種半導體晶片裝置,該半導體晶片裝置包括:裝置狀態熔絲,其儲存指示該半導體晶片裝置之裝置狀態之位元型樣;一處理器,其以操作方式連接至該等裝置狀態熔絲;一儲存裝置,其儲存在由該處理器執行時致使該處理器進行以下操作之指令:將儲存於該等裝置狀態熔絲中之一原始裝置位元型樣改變至一測試模式經啟用位元型樣以將該裝置狀態自一原始裝置狀態改變至一測試模式經啟用裝置狀態,其中該測試模式經啟用裝置狀態准許對該半導體晶片裝置執行製造測試;回應於該半導體晶片裝置通過製造測試而將該測試模式經啟用位元型樣改變至一測試模式經鎖定位元型樣以將該裝置狀態自該測試模式經啟用裝置狀態改變至一測試模式經鎖定裝置狀態;及基於對該裝置狀態之改變而變更該半導體晶片裝置之一安全等級。
其他態樣包含一種半導體晶片裝置,該半導體晶片裝置進一步包括:一或多個埠;該等儲存裝置進一步儲存在由該處理器執行時致使該處理器進行以下操作之指令:回應於將該裝置狀態自一原始裝置狀態改變至一測試模式經啟用裝置狀態,將一原始裝置狀態安全等級變更至一測試模式經啟用安全等級,在該原始裝置狀態安全等級中不能自該晶片外部存取測試模式及該等埠,在該測試模式經啟用安全等級中可經由該等埠中之一或多者進行對該半導體晶片裝置之製造測試。
又其他態樣包含一種半導體晶片裝置,該半導體晶片裝置進一步包括:一或多個埠;該等儲存裝置進一步儲存在由該處理器執行時致使該處理器進行以下操作之指令:回應於將該裝置狀態自一測試模式經啟用裝置狀態改變至一測試模式經鎖定裝置狀態,將一測試模式經啟用安全等級變更至一測試模式經鎖定安全等級,在該測試模式經啟用安全等級中可自該半導體晶片裝置外部存取測試模式及該等埠,在該測試模式經鎖定安全等級中鎖定對該半導體晶片裝置之製造測試。
再進一步態樣包含一種半導體晶片裝置,該半導體晶片裝置進一步包括:一或多個埠;該等儲存裝置進一步儲存在由該處理器執行時致使該處理器進行以下操作之指令:回應於該半導體晶片裝置未通過該製造測試而將該測試模式經啟用位元型樣改變至一測試模式經停用位元型樣以將該裝置狀態自該測試模式經啟用裝置狀態改變至一測試模式經停用裝置狀態;及該回應於將該裝置狀態自一測試模式經啟用裝置狀態改變至一測試模式經停用裝置狀態而變更該安全等級會將一測試模式經啟用安全等級變更至一測試模式經停用安全等級,在該測試模式經啟用安全等級中可自該半導體晶片裝置外部存取測試模式及埠,在該測試模式經停用安全等級中停用對該半導體晶片裝置之製造測試及該半導體晶片裝置上之埠。
又一些進一步態樣包含一種半導體晶片裝置,該等儲存裝置進一步儲存在由該處理器執行時致使該處理器進行以下操作之指令:回應於該等裝置狀態熔絲改變至不匹配對應於一已知模式之一已知位元型樣之一位元型樣而將該等裝置狀態熔絲中之該位元型樣修改至一經停用模式位元型樣且該變更該安全等級會將該安全等級變更至一經停用安全等級,在該經停用安全等級中停用該半導體晶片裝置中之所有埠及記憶體。
又一態樣包含一種半導體晶片裝置,該半導體晶片裝置進一步包括:該儲存裝置儲存一啟動載入器程序,該等儲存裝置進一步儲存在由該處理器執行時致使該處理器進行以下操作之指令:回應於該啟動載入器程序驗證出該半導體晶片裝置連同一解鎖請求接收到一正確解鎖密碼而變更該安全等級會藉由允許該等裝置狀態熔絲之值改變至測試模式經啟用型樣而將該晶片裝置解鎖。
額外態樣包含一種佈建一半導體晶片裝置之方法,該方法包括:回應於包含啟動處理碼之一有效負載被寫入至該半導體晶片裝置之一非揮發性記憶體而驗證該啟動處理碼之真實性;建立一初始化金鑰;停用對該初始化金鑰之外部存取且匯出該初始化金鑰之憑證,該外部存取係經由一輸入埠對該半導體晶片裝置之記憶體之存取;使用一公開金鑰將該初始化金鑰加密;匯出該經加密初始化金鑰;藉由程式化該半導體晶片裝置之熔絲而組態該半導體晶片裝置;使用該初始化金鑰導出佈建金鑰;使用該等佈建金鑰提供身份且將佈建資料解密;及驗證該佈建資料係有效的。
進一步態樣包含其中該非揮發性記憶體係一快閃記憶體。
再進一步態樣包含其中在將該初始化金鑰加密中使用之該公開金鑰維持於該啟動處理碼中。
又一些進一步態樣包含其中該佈建資料包含特殊應用快閃韌體,該方法進一步包括該啟動處理碼允許將該快閃韌體儲存於該快閃記憶體中。
甚至進一步態樣包含其中該啟動處理碼係一啟動載入器。
額外態樣包含一種半導體晶片裝置,該半導體晶片裝置包括:熔絲;一非揮發性記憶體;一輸入埠;一處理器;一儲存裝置,其儲存在由該處理器執行時致使該處理器進行以下操作之指令:回應於包含啟動處理碼之一有效負載被寫入至該非揮發性記憶體而驗證該啟動處理碼之真實性;建立一初始化金鑰;停用對該初始化金鑰之外部存取且匯出該初始化金鑰之憑證,該外部存取係經由該輸入埠對該半導體晶片裝置之該非揮發性記憶體之存取;使用一公開金鑰將該初始化金鑰加密;匯出該經加密初始化金鑰;藉由程式化該等熔絲而組態該半導體晶片裝置;使用該初始化金鑰導出佈建金鑰;使用該等佈建金鑰證明身份且將佈建資料解密;及驗證該佈建資料係有效的。
進一步態樣包含一種半導體晶片裝置,其中該非揮發性記憶體係一快閃記憶體。
又進一步態樣包含一種半導體晶片裝置,其中在該將該初始化金鑰加密中使用之該公開金鑰維持於該啟動處理碼中。
又一些進一步態樣包含一種半導體晶片裝置,其中該佈建資料包含特殊應用快閃韌體,其中該啟動處理碼允許將該快閃韌體儲存於該快閃記憶體中。
甚至進一步態樣包含一種半導體晶片裝置,其中該啟動處理碼係一啟動載入器。
應注意,本文中所揭示之某些或所有處理器及記憶體系統之實施例亦可經組態以執行上文所揭示之方法實施例中之某些或所有方法實施例。另外,上文所揭示之方法中之某些或所有方法之實施例亦可表示為體現於諸如光學或磁記憶體之一非暫時性處理器可讀儲存媒體上之指令。
依據下文給出之[實施方式]將明瞭本發明之方法及系統之應用性之進一步範疇。然而,應理解,[實施方式]及特定實例在指示方法及系統之實施例時僅以圖解說明之方式給出,此乃因熟習此項技術者自此[實施方式]將明瞭在本文中所揭示之概念之精神及範疇內之各種改變及修改。
以下說明參考附圖。不同圖式中之相同元件符號可識別相同或類似元件。以下說明不意欲限制範疇。替代地,該範疇由隨附申請專利範圍界定。
亦在本文中稱為一晶片裝置之一半導體晶片可不僅作為一最終產品之部分而且在晶片裝置自身之製造期間易受各種形式之攻擊。可對一產品中之一晶片裝置進行攻擊以判定晶片裝置之內部組態及功能。諸如熔絲之單次可程式化儲存技術易受攻擊,該攻擊包含實體破壞,諸如實體地切割指示「0」之導線從而致使其成為一斷開「1」,或藉由沈積材料而重建一熔絲以便將斷開「1」轉換為「0」。
熔絲感測需要對熔絲狀態之一電查詢。可僅執行此熔絲感測特定數目次且此熔絲感測具有如藉由電熔絲之製造界定之一壽命感測極限。為避免太多熔絲感測,可形成熔絲之一「陰影複製」。剛好在一重設之後,一熔絲控制器可感測熔絲值且將結果寫入至成為「陰影複製」之一暫存器中。對狀態之未來查詢可僅僅讀取影子暫存器之值而非電感側熔絲。若一攻擊者想要修改一熔絲值,則該攻擊者可攻擊實體電熔絲自身或影子暫存器。然而,藉由確認熔絲及陰影複製係相同值,攻擊者將需要攻擊熔絲及陰影複製兩者(若熔絲攻擊發生在重設感測之後)。
在製造測試期間,可存取且利用一晶片裝置之安全敏感測試模式,使得可提取秘密資訊。可在晶片製造期間進行攻擊以針對非預期用途變更晶片裝置之組態或操作。可丟棄未通過製造測試之晶片裝置,即使其係部分地可操作因此使經丟棄裝置易受攻擊及利用。在安全晶片裝置之情形中,此等攻擊可達成秘密資訊之提取。而且,在製造期間執行之測試程序可洩漏資訊,諸如與內部操作有關之資訊,且此經洩漏資訊可折衷組態及佈建程序。在佈建程序期間提供之一佈建有效負載可冒著被變更之危險。而且,可在裝置佈建程序期間洩漏之資訊可包含形成一裝置唯一識別符及秘密之一程序。
本發明之態樣提供此等及其他問題之解決方案。
晶片裝置之生命週期可包含:對包含於一實體半導體晶圓中之晶片裝置進行製造測試;將晶圓切粒成個別晶片裝置;測試經切粒晶片裝置;佈建;及重新佈建。
本發明之態樣包含在一裝置生命週期或裝置生命週期之一部分內用於一實體半導體晶圓及個別晶片裝置之安全措施。本發明之態樣包含在裝置生命週期之至少一部分內執行之一安全啟動流程。一安全啟動流程可包含藉由啟動韌體進行控制連同特定測試及佈建操作。
本發明之一態樣係針對每一安全晶片之入侵偵測,此歸因於在每一安全晶片之生命週期內隨著其自一晶圓上之一空白未經測試且不受信任部分移動經過測試階段、切粒成一個別晶片、進一步測試、大量生產、佈建及重新佈建生命週期階段而發生破壞。
本發明之一態樣係一安全晶片裝置,其中在晶片裝置之生命週期內偵測歸因於單次可程式化記憶體之破壞之入侵。回應於偵測到此破壞,可使晶片裝置永久地停用對晶片裝置之內部功能之存取及晶片裝置之內部功能之執行。一般術語「熔絲」與單次可程式化記憶體技術互換地使用。
圖1中展示一實例性半導體晶片裝置100。半導體晶片裝置或晶片裝置100包含若干個存取埠。該等存取埠可包含偵錯埠101,偵錯埠101中之一者可係提供去往熔絲123之一路徑之一串行線偵錯(SWD)埠。亦可包含其他埠以提供用於測試之存取,諸如快閃測試埠145及掃描測試埠147。快閃測試埠145具有一相關聯快閃測試控制141。掃描測試埠147具有一相關聯TAP/掃描控制143。
晶片裝置100可係一SPI從裝置,其中可使用SPI接腳(具有各別SPI從控制135及SPI主控制137之SPI IN 149及SPI OUT 151)傳輸命令及資料。
在一實例性實施例中,可存在用作位元儲存裝置之熔絲123。作為一非限制性實例,熔絲123可係27位元儲存裝置,但應理解,位元數目可取決於應用而變化。
在實例性實施例中,熔絲123可實施為熔絲影子暫存器及熔絲巨集之一冗餘集合(參見圖9,稍後所闡述)。更進一步地,熔絲可實施為熔絲巨集之一集合。
在一實例性實施例中,熔絲123可包含金鑰熔絲125、裝置狀態熔絲127及裝置ID熔絲129。
金鑰熔絲125可用於儲存金鑰及其他秘密。舉例而言,金鑰熔絲125可儲存係一金鑰之秘密資料,或用於導出一金鑰。一特定實例係一裝置初始化金鑰(DIK),該裝置初始化金鑰可充當裝置100與一金鑰管理伺服器307之間的根共用秘密。
裝置狀態熔絲127儲存且定義裝置狀態。更具體而言,裝置狀態熔絲127可包含熔絲之一集合或組,其中每一集合/組定義裝置在其經歷製造測試時之一遞增狀態。
裝置ID熔絲129儲存半導體裝置100之一唯一裝置ID。
熔絲123可具有一相關聯熔絲控制器與裝置狀態解碼器121。在一實例性實施例中,可使用一裝置狀態解碼器121將裝置狀態導出為儲存於裝置狀態熔絲127中之一位元型樣之一函數。可直接或經由熔絲影子暫存器(圖9中所展示)完成裝置狀態熔絲127之讀取。此外,亦可在裝置狀態熔絲127值與陰影熔絲暫存器值之間執行一比較操作以確保熔絲127及/或暫存器尚未被攻擊或破壞。亦可在讀取金鑰熔絲125及/或裝置ID熔絲129時執行此等比較操作。
圖2係裝置狀態解碼器121之一方塊圖。裝置狀態解碼器121可包含基於一任意函數將來自裝置狀態熔絲127之位元型樣(作為一輸入)映射至複數個裝置狀態中之一者(作為輸出)之一邏輯功能電路203。在一實例性實施例中,裝置狀態解碼器121可包含將位元儲存裝置之一27位元型樣(作為一輸入201)映射至五個裝置狀態中之一者(作為輸出205)之一邏輯功能電路。在一實例性實施例中,第五狀態可係由於未能達到其他四個狀態中之任何一者而達到之一經停用狀態207。
在一實例性實施例中,五個裝置狀態解碼器輸出埠205中之每一者可以3位元來冗餘地編碼。在此實例性實施例中,由裝置狀態解碼器121處理27個原始裝置熔絲位元且使用結果來在將其傳遞至系統上之前將裝置狀態設定至3個實體狀態中之一者。可存在讀取27個位元且將信號(電報)發出至需要裝置狀態之值之任何人的一硬體解碼器。當前狀態可藉由共用結果之一簡單信號傳輸來傳輸。
晶片裝置100可包含一嵌入式處理器103及記憶體105組件,記憶體105組件包含非揮發性記憶體(諸如ROM 107及快閃記憶體111)以及一小晶片上RAM (諸如SRAM 109)。在晶片裝置100生命週期之過程中,可將包含一啟動ROM 161之一有效負載寫入至ROM 107中,且可將一啟動載入器163寫入至快閃記憶體111中。
晶片裝置100可包含安全處理功能。一安全共處理器131可用於處理安全演算法,諸如一安全雜湊演算法。實例性安全雜湊演算法包含演算法之SHA家族。而且,可包含諸如一真實隨機數產生器(TRNG) 133之一隨機數產生器以提供隨機值。
在晶圓生產之後,一晶圓上之晶片裝置經歷測試且可經歷一個性化程序。如稍後將論述,個性化程序包含將裝置唯一ID及金鑰插入至裝置ID熔絲129及金鑰熔絲129中。
圖3圖解說明一晶圓之一實例性測試場地系統。一測試器303存取每一晶片裝置100 (圖1)之測試埠且可提供執行測試所需要之功率及命令。為使晶片裝置100 (圖3中未展示,但設想晶圓301將包含多個晶片裝置100)個性化,一金鑰管理伺服器(KMS 307)可藉助於製造場地上之一硬體安全模組(HSM 305) (位於測試器303與一網際網路連接之間)將資料發送至晶圓301上之晶片裝置100且自晶片裝置100接收資料。並不能直接依賴於HSM 305來達成裝置唯一金鑰之機密性。更確切而言,HSM 305可用於緩衝有效負載以處置關於KMS 307之臨時連接性問題,且監測及收集關於在個性化程序期間執行操作之統計資料。
可用用於控制晶片裝置以便在裝置之生命週期內對抗各種攻擊之可能性之機制補充測試及個性化程序。本發明之一態樣包含可分解成多個階段的一晶片裝置之一生命週期,該多個階段中之每一者可具有複數個狀態。在一項實施例中,可將產品生命週期分解成各種階段及數個狀態。該等階段可取決於製造晶片裝置係一晶圓之部分或是呈個別封裝之形式而包含一晶圓階段及一封裝階段。
圖4係圖解說明一晶片生命週期之實例性狀態之一高階圖。稍後將闡述用於在此等狀態之間轉變之機制。圖4展示一順序排序中之狀態。然而,進入晶圓階段及封裝階段之狀態選擇可係變化的。
圖4展示可包含以下各項之狀態之一實例:原始裝置401狀態、測試模式經啟用裝置403狀態、測試模式經鎖定裝置405狀態、測試模式經停用裝置407狀態、經個性化裝置209狀態、經組態裝置411狀態及經佈建裝置413狀態。如稍後將更詳細地論述,前三個狀態可係裝置之硬實體狀態,且可由熔絲定義。在一實例性實施例中,可基於儲存於裝置狀態暫存器127中之熔絲值而定義裝置之實體狀態。如下文將進一步闡釋,存在與裝置狀態相關聯之安全等級,該等安全等級包含一原始裝置狀態安全等級、測試模式經啟用裝置狀態安全等級、測試模式經鎖定裝置狀態安全等級、測試模式經停用裝置狀態安全等級、經個性化裝置狀態安全等級、經組態裝置狀態安全等級及經佈建裝置狀態安全等級。亦如下文所闡釋,對裝置狀態之改變可觸發對安全等級之一改變。
一晶片裝置可具有各種程度之鎖定/安全等級。「鎖定」或「安全等級」可係指所採取之影響晶片存取之明確行動。舉例而言,據說一晶片裝置係在停用所有存取埠時經鎖定。在某些實施例中,亦可停用記憶體。據說一晶片裝置係主要在允許對一個路徑之最快存取(此達成遞增至下一狀態)時鎖定。一經鎖定晶片裝置之其他程度可包含將對埠之存取限制於大於原始裝置401狀態之一程度。
在初始狀態(原始裝置401狀態)中,每一晶片100具有一原始裝置安全等級,其中該晶片通常經鎖定使得不可在晶片100外部存取偵錯埠101、掃描測試埠147及快閃測試埠145。為實施原始裝置安全等級,可藉由抑制晶片100之外部世界與內部邏輯之間的資料路徑而完成埠封鎖。
可首先將原始裝置401狀態融合至下一狀態(舉例而言,測試模式經啟用裝置403狀態)中以開始一製造測試程序。在一實例性實施例中,原始裝置401狀態可係其中所有裝置狀態熔絲127處於其未經程式化預設狀態(原始裝置位元型樣)中(諸如,藉由實例之方式,全部設定為零)之一狀態。據說一晶片係藉由熔斷、設定或改變裝置狀態熔絲127中之特定熔絲而融合至下一狀態中。在一單次可程式化記憶體之情形中,熔斷一熔絲可採取將該熔絲程式化至一第二熔絲狀態(諸如在其中所有熔絲係0之實例中將熔絲狀態自0改變至1)之形式。在一實例性實施例中,主要鎖定原始裝置401中之一晶片裝置(原始裝置狀態安全等級),使得可經由串行線偵錯埠101發送一命令。該命令可致使一測試模式經啟用位元型樣寫入至熔絲以遞增至測試模式經啟用裝置403狀態。
回應於裝置狀態之改變,對安全等級做出自原始裝置狀態安全等級至測試模式經啟用安全等級之一對應改變。在測試模式經啟用安全等級中:所有埠(偵錯埠101、快閃測試埠145及掃描測試埠147)係開啟的。可藉由當裝置狀態解碼器121判定裝置狀態處於測試模式經啟用裝置狀態中時啟用埠之資料路徑而完成埠開啟。
在測試模式經啟用裝置403狀態中,可將裝置唯一識別符融合至裝置ID熔絲129中,可運行製造測試,且可將出故障裝置標記為毀壞。可藉由實體標記蝕刻或藉由其他實體手段將出故障裝置標記為毀壞。
在成功完成製造測試程序之後,裝置100旋即自測試模式經啟用裝置403狀態轉變至一測試模式經鎖定裝置405狀態(成功密碼輸入)或一測試模式經停用裝置407狀態(不成功密碼輸入)。
可需要一密碼自測試模式經鎖定裝置405狀態轉變至測試模式經啟用裝置狀態。此係一臨時改變,且在晶片重設時將晶片改變回至經融合值。晶片無法自測試模式經停用測試狀態轉變至測試模式經啟用裝置狀態。可將一晶片僅個性化一次。若一密碼用於返回至臨時測試模式經啟用,則其仍可被視為經個性化。
狀態轉變及安全等級之設定由在晶片100上運行之韌體104控制且可利用結合圖4、圖5、圖6A及圖6B所闡述之方法。安全啟動流程由在晶片100上運行之韌體104控制且可利用結合圖8A、圖8B及圖8C所闡述之方法。韌體可係如圖1中所展示之嵌入式處理器104之一部分。圖10提供如下文進一步闡釋之硬體實施方案之進一步細節。
轉變至經個性化裝置狀態409使晶片裝置100安全以藉由停用埠(偵錯埠101、快閃測試埠145及掃描測試埠147)而確保在個性化期間不可存取專用資料(類似於在處於測試模式經鎖定405或測試模式經停用407裝置狀態中時採取之安全措施)。
經個性化裝置狀態409可基於建立一秘密裝置初始化金鑰(DIK)、將DIK匯出至一金鑰管理伺服器(KMS)且將DIK保存於諸如金鑰熔絲125之晶片上非揮發性記憶體中。以此方式,此狀態由裝置100內之DIK資產表徵。與裝置內存在實體DIK (舉例而言,其可設定為3加一測試DIK)之次數一樣多,一裝置100可重新經個性化,亦即,轉變成經個性化裝置狀態409。
正如其他狀態轉變,在處理器103上運行的韌體104控制自經個性化裝置狀態409至經組態裝置狀態411之轉變。韌體104亦程式化快閃111以及熔絲123、125、127及/或129中之值以使裝置100個性化。一旦由韌體104程式化此等值,裝置100便被視為經組態的(經組態裝置狀態411)。
一第五狀態(經組態裝置411狀態)係其中裝置已視需要使任何應用或產品特定熔絲熔斷以便獲得應用程式或產品之一組態的一狀態。
一第六狀態(經佈建裝置413)係一虛擬狀態,且由儲存於裝置之晶片上快閃記憶體內之韌體104、金鑰及憑證定義。以此方式,可藉由抹除韌體且重新啟動一佈建程序而在任一時間重新佈建一裝置。稍後將關於流程圖論述與遞增至經個性化裝置狀態409及遞增至經佈建裝置狀態413相關聯之程序。
<實體裝置狀態安全性> 本發明之一態樣係當晶片裝置在實體裝置安全性之狀態之間遞增時對熔絲之控制。本發明之一態樣係熔絲安全性之增強。貫穿一晶片裝置之生命週期,一攻擊者可嘗試修復一熔絲或熔斷一熔絲。本發明之一態樣係每一晶片裝置可含有用於管理裝置狀態之一單獨熔絲組(例如組0或裝置狀態熔絲127)及用以儲存一裝置ID之裝置ID熔絲129。在一實例性實施例中,熔絲中可存在編碼裝置之狀態之27個位元,但應理解,本文中所提及之位元數目可取決於應用而變化。除此等位元之外,組0亦可含有一3位元鎖及一24位元總和檢查碼。
如圖2之實例性裝置狀態解碼器中所展示,27個裝置狀態位元201可劃分成三個9位元群組(群組0、群組1、群組2),且每一群組可進一步分解成三個3位元子群組。3位元子群組跨越含有裝置之熔絲之實體熔絲巨集展開。以此方式,若嘗試對關鍵安全熔絲之一集合之一攻擊,則該攻擊可能也干擾27個裝置狀態熔絲中之某些裝置狀態熔絲。本發明之一態樣係裝置狀態可僅藉由遞增至下一狀態(諸如圖4中所展示之彼等)而向前移動,其中下一9位元群組將所有其3位元子群組程式化以形成一9位元型樣。
而且,貫穿一晶片裝置之生命週期,一攻擊者可能嘗試一熔絲感測攻擊。一熔絲感測攻擊係對熔絲值之感測/讀取之一攻擊,且可藉由迫使熔絲影子暫存器915 (圖9)不鎖存熔絲資料且全部保持處於零而發生。如上文所論述,存在對熔絲之兩種類型之攻擊。可藉由以下操作攻擊一熔絲:(a)實體地切割指示「0」之導線從而致使該導線成為一斷開「1」,或(b)藉由沈積金屬而實體地重建一熔絲以便將斷開「1」轉換回至「0」。可替代地或另外攻擊與一熔絲相關聯之熔絲影子暫存器915。
為在製造測試期間防範任一狀態下之熔絲感測攻擊,晶片裝置可預設回至一原有鎖定狀態中。在一實例性實施例中,若一熔絲感測攻擊將要在已將晶片融合至裝置狀態中之一者之後成功,則熔絲影子暫存器915將替代熔絲資料而含有零(或以其他方式儲存不匹配儲存於裝置狀態熔絲127中之值之一位元型樣)。在此一情形中,比較儲存於熔絲影子暫存器915及裝置狀態熔絲127中之值可觸發迫使晶片裝置進入預設原始裝置401狀態之一程序。在一熔絲感測攻擊之情形中,本發明之一態樣可係驅迫晶片裝置中之熔絲之狀態進入預設原始裝置401狀態,其係一通常經鎖定狀態。
圖5係圖解說明基於在一裝置生命週期內之熔絲狀態而在實體裝置狀態之間進行改變之一流程圖。圖5中概述之功能可由安全共處理器 131 (圖1) (舉例而言)或嵌入式處理器103執行。
在S501 (圖5)中,原始裝置401 (圖4)狀態與在首先製造一晶圓之後晶片裝置之一狀態相關。在此狀態中,所有裝置狀態熔絲127 (圖1)皆處於諸如零之一預設狀態中。在原始裝置401狀態中,通常鎖定晶片裝置,其中僅自偵錯埠101 (例如,一串行線偵錯(SWD)埠)至熔絲控制器121之一路徑可係可用的。
在S503 (圖5)中,在已將晶片裝置100 (圖1)開啟電源之後,可將致使熔絲控制與裝置狀態解碼器121寫入使裝置狀態「遞增」至測試模式經啟用裝置403 (圖4)狀態之一正確型樣的一命令發送到熔絲控制與裝置狀態解碼器121。
一旦在測試模式經啟用裝置 403 (圖4)狀態中,測試模式埠及測試模式特徵便經啟用。在一實例性實施例中,測試模式埠之此啟用可包含一完全偵錯埠101 (圖1)路徑以存取所有晶片裝置暫存器及記憶體。
亦可經啟用之其他埠包含快閃測試控制器埠145 (圖1)及掃描測試埠147。在啟用此三個測試模式埠之情況下,在S505 (圖5)中,對晶片裝置執行製造測試。此製造測試 可包含在裝置之製造及最初分配期間執行之任何測試,包含(舉例而言)運行如此項技術中已知之硬體內建自測試(HW BIST)之一集合。
在一實例性實施例中,在測試模式經啟用裝置403 (圖4)狀態中,熔絲影子暫存器915 (圖9)係可更動控制的,且亦可啟用各種偵錯特徵(諸如將時脈信號發送至埠)。此使晶片裝置更靈活用於各種測試及軟體開發。
一旦已完成製造測試且一晶片裝置通過所有測試模式(是,S507),便在S511 (圖5)中熔斷用於生產之適當裝置狀態熔絲127 (圖1)。在一項實施例中,以一正確型樣寫入群組1裝置狀態熔絲127以使裝置狀態「遞增」至測試模式經鎖定裝置405 (圖4)狀態。替代地,當一晶片裝置未通過一測試(否,在S507中) (舉例而言,可歸因於一製造缺陷)時,可將群組1及群組2熔絲兩者程式化為掠過測試模式經鎖定裝置405狀態之一型樣且在S509中直接跳至測試模式經停用裝置407狀態。替代地,S509可將熔絲程式化至一無效狀態,從而將裝置放置至一經停用裝置狀態中。
本發明之一態樣係測試模式經停用裝置407 (圖4)狀態係一功能狀態,且可用作裝置之最終狀態。在此狀態中,測試模式埠及特徵可(例如)藉由不在韌體104 (圖1)中提供切換離開測試模式經停用裝置407狀態之任一所支援方式而永久地經停用。一旦永久地經停用,一部分便可經鎖定且可能決不返回至一功能狀態。可不允許用於偵錯或主線功能性之存取。
測試模式經鎖定裝置405 (圖4)狀態係亦一功能狀態,且若產品之安全準則准許則可用作裝置之最終狀態。在此狀態中,可藉由(舉例而言)一密碼將測試模式埠及特徵解鎖。此密碼可自裝置唯一裝置初始化金鑰(DIK)及可能來自TRNG 133 (圖1)之一臨時值導出(舉例而言,若用熔絲啟用單次密碼模式)。
在S513 (圖5)中,在用於已知狀態之型樣與裝置狀態熔絲127 (圖1)中之一型樣之間進行一比較以便檢查裝置狀態熔絲127是否解碼至先前狀態(原始裝置401 (圖4)狀態、測試模式經啟用裝置403狀態、測試模式經鎖定裝置405狀態、測試模式經停用裝置407狀態)中之一者。當裝置狀態熔絲127不精確地解碼至先前四個狀態中之一者(S513,否)時,在S515處,將裝置放置至一經停用狀態中(在不更新熔絲127之情況下)。在一實例性實施例中,在S515中,完全鎖定且停用(永久地封阻)晶片裝置。
在一實例性實施例中,使用熔絲控制與裝置狀態解碼器121 (圖1)執行S513 (圖5)及S515。熔絲控制與裝置狀態解碼器121將熔絲影子暫存器915 (圖9)之一大位元型樣(舉例而言,一27位元型樣)解碼成(舉例而言)表示一狀態識別符之一3位元型樣。熔絲控制與裝置狀態解碼器121可不能夠將大位元型樣解碼成預定義狀態中之一者(否,在S513中),此可能歸因於一熔絲感測攻擊。在此情形中,大位元型樣被視為不正確的,此在S515中致使裝置狀態熔絲127程式化至一預設解碼狀態,諸如經停用裝置狀態。該經停用裝置狀態與原始裝置401狀態類似之處在於:兩種狀態皆迫使晶片裝置進入一通常鎖定狀態。經停用裝置狀態與原始裝置狀態不同之處在於:在經停用裝置狀態中,亦停用偵錯埠(例如,SWD)路徑。因此,經停用裝置狀態係完全鎖定且停用的。
當裝置狀態熔絲127 (圖1)解碼至先前狀態中之一者(S513,是)時,若熔絲位元指示裝置當前在測試模式經鎖定裝置405狀態中且已接收包含一密碼之一解鎖請求(是,在S517處)且密碼已通過驗證(是,在S521處),則在S517 (圖5)、S519及S521處可驅迫晶片裝置進入一測試模式經啟用裝置403 (圖4)狀態(S503)。
在S519 (圖5)中,晶片裝置可執行一驗證操作以驗證一解鎖密碼。在一實例性實施例中,自測試模式經鎖定裝置405 (圖4)狀態遞增至測試模式經啟用裝置403狀態可受第二級軟體(例如,一啟動載入器)控制。舉例而言,第一及第二級軟體係在啟動ROM碼在啟動載入器 164 (圖1)中執行之後可在快閃外執行之軟體啟動碼。
在此情形中,希望將裝置解鎖以允許一測試模式之第三級軟體必須經由一經驗證簽章標頭請求解鎖。在一實例性實施例中,啟動載入器163 (圖1)執行一第三級影像之有效性之驗證。一旦啟動載入器163驗證影像,啟動載入器便可應允請求且將裝置解鎖以允許一測試模式。針對一測試模式將裝置解鎖可包含允許對晶片裝置中之記憶體之額外區域之存取。此機制允許啟動載入器163保持解碼程序之秘密且同時允許一清潔介面用於外部解鎖請求。一旦針對測試模式將裝置解鎖,晶片裝置便將具有測試模式經啟用裝置403 (圖4)狀態之測試能力及行為。
若驗證解鎖密碼為正確的(是,S521),則執行將裝置放置至一測試模式經啟用裝置403 (圖4)狀態中之S503 (圖5)。
在一實例性實施例中,若將裝置狀態熔絲127 (圖1)寫入至裝置狀態解碼器121不解碼至一已知狀態之一型樣,則可使晶片裝置通過至處於原始裝置401 (圖4)狀態中之系統。
<安全啟動流程> 可在處於各種實體或邏輯狀態(諸如圖4中所展示之彼等)中而且處於現場使用中時將一晶片裝置開啟電源且啟動。本發明之一態樣係晶片裝置在其生命週期內使用之一安全啟動流程。安全啟動流程在晶圓製造階段開始,透過插入金鑰及韌體、熔斷熔絲繼續,且可包含一場內韌體更新程序。
圖6A、圖6B係在涉及安全啟動流程時晶圓階段之一實例性實施例之一流程圖。如稍後將論述,圖8A、圖8B、圖8C係封裝階段之一實例之一流程圖。
如上所述,在晶圓生產之後,晶片裝置處於一預設原始裝置401 (圖4)狀態中,其中不能自外部存取測試模式。不可存取之測試模式包含使用快閃測試埠145 (圖1)、TAP控制之掃描測試埠147、偵錯埠101之測試,及可能洩漏資訊(諸如TRNG 133資料讀出)且將折衷裝置個性化程序(建立與金鑰管理伺服器共用之一裝置唯一識別符及秘密)之任何測試特徵。在S601 (圖6)中,為開始一安全敏感製造測試程序,將晶圓上之晶片裝置(未展示)開啟電源(例如,使得可並行測試晶圓上之諸多晶片裝置)。
由於晶片裝置最初在一原始裝置狀態中,因此在晶片裝置之最初開啟電源之後,在S603 (圖6A)中,熔斷裝置狀態熔絲127 (圖1)之一集合使裝置狀態遞增至測試模式經啟用裝置403 (圖4)。在一實例性實施例中,若一熔絲型樣不對應於一已知狀態,諸如測試模式經啟用裝置403狀態,則晶片裝置將遞增回至預設原始裝置401狀態。此操作確保若一熔絲感測程序被篡改(此可致使裝置狀態熔絲127保持全部處於零或替代地全部切換至一),則晶片裝置將不能夠重開至任何安全敏感測試模式中。
為在處於此初始鎖定狀態中時熔斷此等初始裝置狀態熔絲127 (圖1),至熔絲控制與裝置狀態解碼器121之一個專用偵錯埠101 (例如,一SWD)路徑保持打開。透過此路徑,裝置狀態熔絲127係可接達的。如先前所提及,裝置狀態熔絲127可係熔絲位元之一集合。在一實例性實施例中,裝置狀態熔絲係程式化至一精確型樣以使得裝置能夠係功能性的之27個位元。
在已啟用測試模式(亦即,使裝置遞增至測試模式經啟用403 (圖4)狀態)之後,在S605 (圖6A)中,可運行製造良率測試之一集合。
在一實例性實施例中,為開始製造良率測試,首先,可運行快閃良率測試以篩選出任何快閃缺陷。其次,可運行邏輯BIST以獲得對邏輯及具體而言在個性化程序中涉及之彼邏輯之大部分覆蓋範圍。第三,可運行掃描模式以覆蓋個性化邏輯覆蓋範圍中之任何間隙,且使得其可經鎖定且不必須再次運行(以阻止個性化程序之安全性之一折衷)。第四,可運行記憶體BIST (晶片上SRAM及ROM)測試以驗證記憶體係功能性的。第五,可運行TRNG測試之一集合以獲得此安全性關鍵電路中之置信度,且使得可鎖定任何資料讀出測試模式。在此測試結束時,可將任何故障裝置標記為毀壞(否,S607、S609)。
在運行此等製造良率測試,晶片裝置通過製造測試(是,在S607中)之後,在S611 (圖6A)中,可使用偵錯埠101 (圖1)介面來熔斷裝置狀態熔絲127之另一集合以鎖定彼等測試模式;可使裝置遞增至測試模式經鎖定405狀態中。可藉由將一正確密碼寫入至經由直接路徑自偵錯埠101介面曝露之一暫存器中而將鎖定機制解鎖。然而,此時不存在期望密碼,因此裝置將拒斥所有密碼。
在一實例性實施例中,在運行製造測試之前或之後,可使用偵錯埠101 (圖1)介面來將一裝置唯一識別符(裝置ID或Dev ID) (諸如一64位元識別符)程式化至裝置ID熔絲129中。舉例而言,裝置ID可儲存於64個熔絲中且遮蔽於64個熔絲影子暫存器915 (圖9)中。藉由實例之方式提供64個熔絲,且熔絲之精確數目並非關鍵的。可使用裝置ID作為對裝置及其金鑰之一索引(一旦金鑰經建立且儲存於金鑰管理伺服器307 (圖3)中)。
本發明之一態樣包含經鎖定以便阻止對裝置個性化程序之任何監聽之安全敏感測試模式。而且,測試模式僅意欲在一現場返回之事件中而非在每一裝置額外測試(可藉助其他測試特徵或藉由重新運行內建自測試(BIST)而完成所有額外良率測試)時經解鎖。除測試模式以外,內部系統匯流排上之具有類似DMA (直接記憶體存取)能力之外部介面亦可構成對個性化程序之一威脅。在一實例性實施例中,此等能力可不藉由預設來啟用且匯流排安全機制亦將預設至一「安全狀態」中(安全意指:藉由預設,所有類似DMA能力將不具有在裝置內側之存取特權而是將首先需要由安全共處理器131 (圖1)進行明確設置)。
此時,晶片裝置已經實質上測試,且現在準備用於個性化程序(其可包含建立待用作晶圓301 (圖3)上之晶片裝置與金鑰管理伺服器(KMS 307)之間的一共用秘密之一裝置唯一金鑰)。可在測試模式經鎖定405 (圖4)狀態或測試模式經停用407狀態中執行晶片個性化以便保護秘密。為開始個性化程序,可再次將晶圓上之晶片裝置開啟電源,可運行硬體(HW) BIST之一集合(亦即,並行測試晶圓上之諸多晶片裝置),且可依據啟動ROM 161重新啟動每一晶片裝置上之嵌入式處理器 103 (圖1)。
特定而言,程序在S613 (圖6A)中開始,其中將晶片裝置開啟電源且運行HW BIST測試之一集合。在一實例性實施例中,可在測試中涉及含有有限狀態機(FSM)之三個硬體單元。此等硬體單元係可測性設計(DFT)或快閃測試141 (圖1)、熔絲控制器與裝置狀態解碼器121及TRNG 133,其中事件之同步可受釋放重設之一功率管理單元(PMU) FSM控制。快閃測試141運行邏輯BIST及記憶體BIST,熔絲控制與裝置狀態解碼器121運行完整性測試之一集合,且TRNG 133運行其BIST。若所有此等測試係成功的(是,在S615處),則在S619中,從重設釋放嵌入式處理器103使得啟動可係依據ROM)。若一測試失敗(否,在S615處),則一BIST已失敗且處理器將不啟動(S617)。若BIST失敗,則部分可進入一經鎖定(不可使用)狀態。可應用重設以再次嘗試,但可期望一個失敗BIST指示BIST將再次失敗,且因此部分係實際上無用的。
而且,在S619 (圖6)中,嵌入式處理器103 (圖1)可開始依據啟動ROM 161進行啟動。出於安全原因,在一實例性實施例中,藉由預設依據自任何其他記憶體讀取資料而閘控指令匯流排(例如快閃111或SRAM 109)。啟動ROM 107可含有一RSA公開金鑰,該RSA公開金鑰具有用於驗證晶片上快閃111中之一級1啟動載入器之一主要目的。在S619處,級1啟動載入器不存在於ROM 107中。
在級1快閃啟動載入器之ROM碼檢查之前,在S621 (圖6)處,其讀取一自動抹除接腳之狀態。該接腳可在晶片外通信,此乃因其可係一外部晶片接腳。若自動抹除接腳指示需要快閃經抹除,則在S623中抹除快閃直至完成抹除經驗證為止。
在S625 (圖6B)處,ROM碼可對一級1快閃啟動載入器進行檢查。此時,一啟動載入器不存在於快閃記憶體 111 (圖1)中(S625,否:不存在),因此在S643處一處理迴圈循環直至經由(舉例而言) SPI IN 149遞送含有一啟動載入器之一快閃韌體有效負載為止。一旦接收到韌體有效負載(是,在S645處),便在S647中將有效負載寫入至快閃記憶體111。除一啟動載入器之外,有效負載亦可包含用於個性化之其他韌體。
在一實例性實施例中,有效負載含有個性化特定碼,以及用於加密DIK以用於匯出至金鑰管理伺服器(KMS 307)之一RSA公開金鑰。
一旦儲存於快閃記憶體111 (圖1)中,在S627 (圖6B)中,ROM韌體107便對個性化特定碼執行一雜湊函數且執行一RSA驗證操作以用嵌入於韌體中之一公開金鑰驗證啟動載入器。在S629中,做出關於是否通過個性化特定碼之驗證之一決定。
在一實例性實施例中,在執行關於是否通過驗證之一決定時,ROM碼不可使用一分支。替代地,其對一所計算SHA256摘要與RSA簽章之預期雜湊摘要部分進行XOR運算(若驗證通過,則所得值係一384位元組常數,其中填補值在頂部處且零之256個位元在底部處)。然後(例如)使用SHA256對此384位元組常數進行雜湊,以產生一較小值。然後將此256位元結果寫入至連接至一256位元硬體比較器之一暫存器中。若所有位元匹配預期256位元常數(其嵌入於硬體比較器之閘極中),則彼比較器將僅允許快閃經解鎖以用於執行。
若個性化韌體之驗證失敗(否,S629),則在S631中,必須重新啟動裝置以再次嘗試。
若驗證通過(是,在S629中),則ROM碼首先將(舉例而言) 256位元SHA-256摘要寫入至僅可由ROM 107寫入之一RWR隱藏金鑰階梯(HKey)暫存器中。
在實例性實施例中,若驗證通過(是,在S629中),則在S633中,ROM 107將快閃111及SRAM 109解鎖以用於額外快閃碼執行,執行指令取出且開始運行級1啟動載入器(個性化韌體)。
在S635 (圖6B)中,執行個性化韌體可包含建立隨機秘密資料,用所述隨機秘密資料導出(舉例而言)兩個256位元裝置唯一秘密。一個秘密可係裝置初始化金鑰(DIK),其可充當裝置301與金鑰管理伺服器(KMS 307)之間的根共用秘密。另一秘密可充當一不對稱私密金鑰(HPriv),個性化韌體可依據所述不對稱私密金鑰產生亦將發送至KMS 307之一對應不對稱公開金鑰(HPub)。在一實例性實施例中,此兩個秘密值可依據一對全域秘密常數(HWC及RBC)以及一對裝置唯一秘密(舉例而言,每一者大小為256位元)產生。裝置之晶片上TRNG 133 (圖1)可用作源以建立裝置唯一秘密(OBS、FBS及RSR)。可將DIK之一OTP基秘密(OBS)分量燒印至金鑰熔絲125中。可將DIK之一快閃基秘密(FBS)分量寫入至快閃111。在一實例性實施例中,一RSR分量可充當一初始隨機種子以用於稍後與運行時產生之隨機數「攪拌」或「混合」在一起。此「攪拌」或「混合」可係隨機熵之一標準密碼使用。
一旦裝置唯一秘密儲存於非揮發性記憶體(NVM)快閃111 (圖1)或熔絲125中,則韌體可指令一安全共處理器131 (例如,一SHA引擎)導出DIK、HPriv及稱作XI PHIK之另一金鑰(用作一HMAC金鑰以用於匯出經加密DIK)。所有此等基於SHA之導子可由特定硬體操作憑證定義,且使用稱作一隱藏金鑰階梯之一內部秘密暫存器檔案來保存根秘密及中間值。SHA硬體可經由一專用匯流排與HKey階梯直接交互。DIK之此初始產生對於嵌入式處理器103係可見的,因此處理器可將DIK儲存於記憶體中。可藉由韌體完成由HPriv產生HPub。此時,韌體已收集DIK及HPub,且XI PHIK經由可自秘密金鑰階梯自動載入XI PHIK之SHA HMAC憑證係可用的。
在S637 (圖6B)中,在保存DIK之情況下,個性化韌體然後可燒斷熔絲以永久地停用用於將DIK建立至韌體可讀暫存器(FRR)中之HKey憑證。從現在開始,DIK不再對於嵌入式處理器103 (圖1)可見,且儲存(仍駐留於暫存器中)至諸如快閃111之一非揮發性記憶體(NVM)中。DIK可經歷一系列SHA HKey操作以建立一韌體版本限定根金鑰。
在S639 (圖6B)中,個性化韌體可將DIK、HPub及裝置ID加密且匯出至金鑰管理伺服器(KMS 307 (圖3))。在一實例性實施例中,個性化韌體可使用自快閃啟動載入器獲得之一個性化公開金鑰對此資料束進行RSA加密。一旦經加密,則其可使用SHA-256 HMAC建立資料之一MAC,其中一HKey憑證使用XI PHIK作為金鑰。MAC及經加密DIK/DevID可然後經由SPI從裝置251匯出至KMS 307。
在S641 (圖6B)處,在DIK本地儲存於NVM中之情況下且亦在金鑰管理伺服器307中,晶片裝置具有由KMS 307側上之DevID索引之唯一共用秘密。此時,裝置之狀態係經個性化裝置409 (圖4)狀態。
在個性化晶圓上之作用晶片裝置與以經封裝方式佈建裝置之間,金鑰管理伺服器307可針對每一晶片裝置準備個別佈建有效負載。金鑰管理伺服器(KMS 307)含有由DevID索引之所有經個性化晶片裝置之一清單及其個別裝置初始化金鑰(DIK)。KMS 307亦具有駐留於每一裝置之快閃中作為一級1啟動載入器之個性化韌體之一複製。在具有個性化韌體及DIK之情況下,KMS 307可導出特定於一裝置且限定至韌體影像(且可稱作FW DIK)之一金鑰。使用此金鑰,KMS 307可將佈建有效負載(背書原生種子(EPS)、X.509憑證及功能韌體)預加密,或在最低限度上用每一裝置唯一FW DIK將EPS預加密。此意指到晶圓到達封裝位置之時候,可預計算個別佈建有效負載。
圖7展示其中封裝裝置經歷佈建之封裝節段之一實例性測試場地系統。為佈建一封裝裝置701,金鑰管理伺服器(KMS 307)可藉助於硬體安全模組305及測試器303將資料發送至封裝裝置701且自封裝裝置701接收資料。
圖8A、圖8B、圖8C係圖解說明可藉由(舉例而言)圖7中所展示之晶圓測試場地系統實施之封裝階段之流程圖。將參考圖4中之狀態及圖1之半導體晶片裝置闡述流程。
在封裝階段期間,晶圓到達含有處於經個性化裝置409 (圖4)狀態中之裝置(其中針對由於製造測試失敗而進行之毀壞標記出某一良率)。在此到達位置處,晶圓可經切粒且裝置經組裝至其封裝(封裝裝置701 (圖7))中。一旦經封裝,在S801 (圖8A)處便將個別封裝裝置701開啟電源以開始製造良率測試之剩餘部分。在S803處,可運行製造測試之剩餘部分以表徵且判定每一裝置之適合性。剩餘測試可比在晶圓階段運行之測試花費更長時間且更消耗的。在此位置處運行之製造測試可包含快閃完整性測試、邏輯BIST及某些類比資格測試。在一實例性實施例中,此等測試不達成在先前在晶圓階段期間完成之裝置個性化序列期間裝設之秘密資訊之提取。舉例而言,在個性化之前在晶圓階段運行掃描測試。
在S805中,做出關於一經封裝裝置701是否已通過剩餘製造測試之一決定。在一實例性實施例中,在S807處,不滿足所需要最低標準(否,在S805處)之任何裝置被視為故障裝置且可被破壞(舉例而言,以阻止秘密之逆向工程設計)。
對於通過剩餘製造測試(是,在S805處)之作用經封裝裝置,在S809處,可熔斷額外剩餘熔絲123 (圖1)以將每一經封裝晶片裝置組態成其所要特徵集合及模式。此時,每一晶片裝置已遞增至經組態裝置狀態411。
在所有裝置已經熔絲組態之後,其可經重新啟動以便執行佈建程序。為佈建經封裝裝置701 (圖7),一金鑰管理伺服器(KMS 307)藉助於測試場地上之一硬體安全模組 (HSM 305 (圖3))將資料發送至經封裝裝置701且自經封裝裝置701接收資料。如在用於佈建之情形中,可不直接依賴於HSM 305來達成佈建秘密之機密性。而是,其可用於緩衝有效負載以處置關於KMS 307之臨時連接性問題並且監測及收集關於在佈建程序期間正在發生什麼之統計資料。
在一實例性實施例中,經封裝晶片裝置可佈建有有效憑證及市場特定功能韌體。儘管個性化韌體由一級1韌體模組組成,但可將功能韌體分解成多個模組。為獲得裝置中之此等憑證及功能韌體,在S811處,可以類似於個性化流程之一方式重新啟動經封裝晶片。將該經封裝晶片裝置開啟電源且可運行BIST測試之一集合。此等測試中可涉及含有有限狀態機(FSM)之三個硬體單元(DFT 141 (圖1)、熔絲控制器121、TRNG 133),且此等事件之同步可受釋放重設之PMU FSM控制。DFT單元141可運行邏輯BIST及記憶體BIST,熔絲控制器121可運行完整性測試之一集合,且TRNG 133可運行其BIST。若所有此等測試係成功的(是,在S813 (圖8A)處),則在S817處,可從重設釋放嵌入式處理器103 (使得由啟動ROM 107執行啟動處理)。否則(否,S813),在S815處至少一個測試已失敗。
在一實例性實施例中,出於安全原因,可依據此時自任何其他記憶體(亦即快閃111 (圖1)或SRAM 109)讀取資料而閘控指令匯流排。啟動ROM 107可含有一RSA公開金鑰,該RSA公開金鑰具有驗證快閃111中之級1啟動載入器之一主要目的。此時,級1啟動載入器係個性化韌體。然而,在對級1啟動載入器進行檢查之前,ROM碼可檢查是否藉由檢查一接腳之值而請求一快閃自動抹除。
特定而言,在ROM碼對級1快閃啟動載入器進行檢查之前,在S819 (圖8A)中,其可讀取自動抹除接腳之狀態。若其經設定(是,在S819處),則在S821處,ROM韌體可抹除快閃之全部。
此時,在S823處,ROM碼可對一級1快閃啟動載入器進行檢查。此時,啟動載入器作為個性化韌體而存在。然而,若不存在一級1啟動載入器(否,在S823處),則一處理迴圈循環經過S847、S849及S851直至接收到一韌體有效負載且將該韌體有效負載寫入至快閃為止(與圖6中之S643、S645及S647相當)。
在S825 (圖8A)處,級1啟動載入器經歷驗證。為驗證級1快閃啟動載入器,ROM韌體可使用一雜湊函數產生碼之一雜湊且用嵌入於韌體中之一公開金鑰執行一RSA驗證操作。在S827中,做出關於啟動載入器是否通過驗證程序之一決定。
在一實例性實施例中,針對關於是否通過啟動載入器驗證之決定(S827 (圖8B)),ROM碼不可使用一分支。替代地,其可對一所計算SHA256摘要與RSA簽章之預期雜湊摘要部分進行XOR運算(是,在S827處;若驗證通過,則所得值係一384位元組常數,其中填補值在頂部處且零之256個位元在底部處)。然後(例如)使用SHA256對此384位元組常數進行雜湊,以產生一較小值。然後將此256位元結果寫入至連接至一256位元硬體比較器之一暫存器中。若所有位元匹配預期256位元常數(其嵌入於硬體比較器之閘極中),則彼比較器可僅允許快閃111 (圖1)中之額外區域經解鎖以用於執行(S831)。
若個性化韌體之驗證失敗(否,在S827處),則在S829處,必須重新啟動裝置以再次嘗試,或必須使用自動抹除特徵來重新載入另一經簽名啟動載入器。
在一實例性實施例中,若啟動載入器可通過驗證(是,S827),則ROM碼可首先將(舉例而言)一256位元SHA256摘要寫入至僅可由ROM寫入之RWR隱藏金鑰階梯(HKey)暫存器(未具體展示)中,且將其鎖定。此暫存器不可由除專用SHA HKey憑證處理器以外之任一動作者讀取。由於此時已經由熔絲撤銷原有DIK建立憑證,因此可驅迫啟動載入器韌體在其導出其裝置初始化金鑰(稱作FW DIK)時包含其韌體雜湊。
接下來,在S831 (圖8B)處,ROM韌體可將快閃111 (圖1)及SRAM 109中之額外區域解鎖以用於進行指令取出且開始運行級1啟動載入器(個性化韌體)。
由於已在S833處將裝置個性化,因此個性化韌體可現在查看晶片是否經佈建。其藉由尋找憑證而進行此操作。然而,此時,可不存在憑證且晶片裝置將被視為未經佈建(否,S833)。
由於裝置尚未佈建,因此在S835處經由(例如)SPI從裝置135執行一迴圈程序以等待一佈建有效負載。
一旦韌體經由SPI從裝置135偵測到佈建程序之開始(是,S837 (圖8C)),在S839處韌體便可開始導出其佈建金鑰。在一實例性實施例中,指令安全共處理器131 (圖1) (舉例而言,一SHA256控制處理器)使用隱藏金鑰階梯(HKey)執行一特定RW DIK建立操作(針對該操作其具有一硬體嵌入式憑證)。嵌入式處理器103然後使用安全共處理器131 (諸如一SHA256控制處理器)及HKey來導出三個佈建金鑰之一集合(一個用於裝置之遠端證明,一個用於將佈建有效負載加密,且一個用於提供對佈建有效負載之鑑認及完整性)。所有此等金鑰可根植於DIK之一韌體約束版本(稱作FW DIK)中,該DIK之韌體限定版本可藉由安全共處理器131 (SHA256控制處理器)建立{HWC,RBC,OBS,FBS,RWR}之一雜湊且將所得摘要寫入至ISR0而導出。ISR0可然後用於導出三個佈建金鑰。
在S841 (圖8C)中,金鑰管理伺服器(KMS 307 (圖3))可自裝置讀取DevID,且發出使裝置證明其身份之一詢問。一回應可涉及用「我是該裝置」證明金鑰對臨時詢問進行操作,自DIK之快閃韌體限定版本導出該證明金鑰。此確保裝置具有正確DIK以及個性化韌體之正確版本(此乃因ROM已將其雜湊混合至KDF 307中)。在一實例性實施例中,佈建有效負載可含有以下各項,其中(最低限度地) EPS經加密:
背書原生種子(EPS)
具有一RSA主體公開金鑰之經簽名X.509憑證。
具有一ECC主體公開金鑰之經簽名X.509憑證。
市場特定功能快閃韌體。
在S841 (圖8C)中,可將佈建有效負載之部分解密。
在一實例性實施例中,有效負載可含有市場特定功能快閃韌體、裝置唯一背書原生種子(EPS)及兩個經簽名X.509憑證(1個含有一RSA主體公開金鑰,且1個含有一ECC主體公開金鑰)。此等主體公開金鑰係一背書金鑰對(EK)之公開的一半,該背書金鑰對可由裝置使用其EK憑證(亦即,剛剛接收之X.509憑證)來驗證。
在S843 (圖8C)處,裝置可藉由使用EPS及一參數集合導出EK對而執行此驗證,且然後其比較所得EK.Pub與EK憑證中所含有之EK.Pub。一旦已完成此驗證程序,便在S845處進行關於佈建有效負載是否有效之一決定。若佈建有效負載判定為有效的(S845,是),則裝置被視為已經佈建,且其狀態變為經佈建裝置413 (圖4)狀態。此時,S859,晶片裝置經佈建且可以功能啟動繼續。
本發明之一態樣包含可立即或在某一其他時間(或更可信位置)完成解密且驗證佈建有效負載之程序(整個經簽名有效負載驗證,及EK驗證兩者;S841、S843、S845)。此序列可取決於個性化韌體中之序列。
而且,每當一裝置啟動,在一實例性實施例中,其必須重複此驗證程序。因此,裝置之狀態可係最初經組態裝置411 (圖4)狀態,且然後僅在用其兩個憑證驗證兩個EK金鑰對(RSA及ECC)之後成為經佈建裝置413狀態。隨後,此最終裝置狀態轉變可係一平緩裝置狀態轉變,且可不像先前狀態改變一樣取決於熔絲。
在裝置佈建失敗之情形中,在S859處,可使用一安全方法以用諸如啟動載入器驗證失敗或佈建驗證失敗之一訊息傳達關於啟動之問題。
若有必要,則可在任一時間重新佈建一晶片裝置100。此可由於一韌體缺陷或僅僅由於需要將最初註定用於一個市場之一裝置改變成針對另一市場經佈建之一裝置而係必要的。重新佈建流程可以與一正常啟動相同之方式開始,惟一個微小差異除外:裝置已經含有功能韌體、一EPS及兩個有效憑證。出於此原因,用於觸發重新佈建之方法可係抹除快閃韌體及資料中之所有或某些快閃韌體及資料。
可藉由讀取一特定接腳之值或藉由通過其介面中之任一者與裝置之韌體通信而觸發快閃資料之抹除。接腳之目的係迫使抹除整個快閃,排除僅僅包含啟動載入器之個性化資料(若裝置含有有效經簽名韌體但可不開始重新佈建程序,則此可係唯一方法)。在一實例性實施例中,若抹除啟動載入器,則裝置必須首先透過與在裝置個性化期間使用之啟動載入器類似之一方法接收一新啟動載入器(例如,透過使用SPI從裝置介面接收一快閃韌體有效負載)。一旦啟動載入器在適當位置中(若其未經抹除),則流程可類似於原有佈建流程而繼續。首先,金鑰管理伺服器(KMS 307)使裝置藉由讀取裝置識別符且然後發出將證明其是否含有正確FW HIK之一詢問而證明其係一有效裝置。
若用一新啟動載入器替換啟動載入器163 (圖1),則在詢問中使用之FW HIK導出之金鑰亦可改變(例如,此乃因其包含啟動載入器韌體之雜湊)。假定裝置通過詢問,則其可經由SPI從裝置介面(未展示)等待一新快閃佈建有效負載。透過此介面,晶片裝置100自KMS 307 (圖3)接收新的經簽名有效負載,且用類似於在HIK詢問中使用之金鑰之一金鑰來加密。此時,晶片裝置100可驗證佈建(藉由與之前相同之方法),轉變至經佈建裝置413狀態中,且以功能啟動繼續。
<熔絲控制器>
圖9係熔絲控制與裝置狀態解碼器121之一實例性實施例之一方塊圖,熔絲控制與裝置狀態解碼器121處置包含OTP (單次可程式化)巨集901a至910d之相關聯熔絲巨集900之一集合之程式化。在此實例性實施例中,熔絲影子暫存器915可冗餘地儲存熔絲巨集900之位元值。熔絲位元之冗餘儲存可以為控制任何測試模式或安全敏感特徵提供一額外保護層之一方式經配置。熔絲巨集之位元值之冗餘儲存亦可併入用以使免受對陰影操作之攻擊之機制。舉例而言,在攻擊可致使所有熔絲影子暫存器915成為零時甚至在熔絲巨集900自身並非零時可偵測到對熔絲巨集鎖存操作之一攻擊。
在實例性熔絲控制器121中,可藉助於熔絲影子暫存器915程式化熔絲位元,其中由熔絲控制器在內部熔斷實際熔絲巨集。與程式化實際熔絲900及讀取熔絲值相關聯之功能可由一內部控制器910處置。而且,熔絲控制器121可包含一有限狀態機905以處置特定熔絲巨集900之程式化。可基於透過一串行線偵錯埠(SWDP) 931傳輸至一裝置狀態解鎖電路913之一命令而啟用熔絲巨集900之程式化。裝置狀態解鎖電路913使得儲存於熔絲巨集中之一裝置狀態能夠遞增至下一裝置狀態。用於將裝置狀態設定為預設之一機制可由預設參數保存電路917及邏輯閘919提供,預設參數保存電路917及邏輯閘919控制經由一介面935存取熔絲。一處理器匯流排933提供用於讀取或程式化儲存於熔絲影子暫存器915中之熔絲值之一路徑。
圖1、圖2及圖9提供半導體晶片裝置100之例示性植入細節。圖10係一例示性裝置(1000)之一高階方塊圖,該例示性裝置可包含半導體晶片裝置100或可用於實施半導體晶片裝置100之各種組件,半導體晶片裝置100包含嵌入式處理器103、韌體104、安全共處理器131及內部控制器910中之一或多者。
根據至少一項實施例,數位組件/計算裝置(1000)可經組態以執行支援安全裝置狀態及啟動流程之各種功能。如上文所提及,狀態轉變受在晶片100上運行之韌體104控制且可利用結合圖4、圖5、圖6A及圖6B所闡述之方法。安全啟動流程受在晶片100上運行之韌體104控制且可利用結合圖8A、圖8B及圖8C所闡述之方法。韌體可係如圖1中所展示之嵌入式處理器104之一部分。圖10提供如下文進一步闡釋之硬體實施方案之進一步細節。
在一非常基本組態(1001)中,計算裝置(1000)通常包含一或多個處理器(1010)及系統記憶體(1020)。一記憶體匯流排(1030)可用於在處理器(1010)與系統記憶體(1020)之間通信。
取決於所要組態,處理器(1010)可係為包含但不限於一系統單晶片(SoC)、一微處理器(µP)、一微控制器(µC)、一數位信號處理器(DSP)或其任何組合之任一類型。處理器(1010)可包含一或多個層級之快取,諸如一層級1快取記憶體(1011)及一層級2快取記憶體(1012)、一處理器核心(1013)及暫存器(1014)。處理器核心(1013)可包含一算術邏輯單元(ALU)、一浮點單元(FPU)、一數位信號處理核心(DSP核心)或其任一組合。一記憶體控制器(1015)亦可與處理器(1010)一起使用,或在某些實施方案中記憶體控制器(1015)可係處理器(1010)之一內部部分。
取決於所要組態,系統記憶體(1020)可係為包含但不限於揮發性記憶體(諸如RAM)、非揮發性記憶體(諸如ROM、快閃記憶體等)或其任一組合之任一類型。系統記憶體(1020)通常包含一作業系統(1021)、一或多個應用程式(1022)及程式資料(1024)。根據本文中所闡述之一或多個實施例,應用程式(1022)可包含用於支援硬化隨機數產生器之數位組件107之各種組件之軟體實施方案。程式資料(1024)可包含儲存在由一或多個處理裝置執行時實施一(若干)方法以用於執行如上文詳細闡述之數位組件107之各種功能的指令。在某些實施例中,應用程式(1022)可經配置以與程式資料(1024)一起在一作業系統(1021)上操作。
計算裝置(1000)可具有額外特徵或功能性及額外介面以促進基本組態(1001)與任何所需裝置及介面之間的通信。
系統記憶體(1020)係電腦儲存媒體之一實例。電腦儲存媒體包含但不限於RAM、ROM、EEPROM、快閃記憶體或其他記憶體技術、CD-ROM、數位多功能光碟(DVD)或其他光學儲存器、磁卡匣、磁帶、磁碟儲存器或其他磁性儲存裝置或可用於儲存所要資訊且可由計算裝置1000存取之任何其他媒體。任何此類電腦儲存媒體可係裝置(1000)之一部分。
計算裝置(1000)可實施為一小外觀尺寸可攜式(或行動)電子裝置之一部分,諸如一行動電話、一智慧型電話、一個人數位助理(PDA)、一個人媒體播放器裝置、一平板電腦(平板)、一無線網手錶裝置、一個人頭戴式裝置、一特殊應用裝置或包含以上功能中之任一者之一混合裝置。計算裝置(1000)亦可實施為包含膝上型電腦及非膝上型電腦組態兩者之一個人電腦。
前述詳細說明已經由使用方塊圖、流程圖及實例陳述裝置及/或程序之各種實施例。只要此等方塊圖、流程圖及/或實例含有一或多個功能及/或操作,熟習此項技術者即將理解,可藉由一寬廣範圍之硬體、軟體、韌體或幾乎其任一組合來個別地及/或共同地實施此等方塊圖、流程圖或實例內之每一功能及/或操作。
根據至少一項實施例,可經由一或多個ASIC、場可程式化閘陣列(FPGA)、數位信號處理器(DSP)或其他整合格式來實施本文中所闡述之標的物之數個部分。然而,熟習此項技術者將認識到,本文中所揭示之實施例之某些態樣可全部或部分地在一或多個積體電路中等效地實施為在一或多個電腦上運行之一或多個電腦程式、實施為在一或多個處理器上運行之一或多個程式、實施為韌體或實施為實際上其任何組合,且設計電路及/或寫入用於軟體及/或韌體之碼鑒於本發明將很好地在熟習此項技術者之技能內。
另外,熟習此項技術者將瞭解,本文中所闡述之標的物之機制能夠作為一程式產品以各種形式分佈,且本文中所闡述之標的物之一說明性實施例適用而不管所使用之特定類型之非暫時性電腦可讀媒體如何。一非暫時性電腦可讀媒體之實例包含但不限於以下各項:一可記錄類型媒體(諸如一快閃磁碟機)、一硬碟機、一光碟(CD)、一數位視訊碟片(DVD)、一數位磁帶及一電腦記憶體等。
關於本文中實質上任何複數及/或單數術語之使用,熟習此項技術者可使上下文及/或應用之情況而定自複數轉變成單數及/或自單數轉變成複數。為清晰起見,可明確地陳述各種單數/複數置換。
因此,已闡述標的物之特定實施例。其他實施例在所附申請專利範圍之範疇內。在某些情形中,申請專利範圍中所引用之行動可以一不同次序來執行且仍達成合意結果。另外,附圖中所繪示之程序未必需要所展示之特定次序或順序次序來達成合意結果。在特定實施方案中,多任務及並行處理可係有利的。
本文中所論述之系統及方法不需要使用者個人資訊之收集或使用。在其中特定實施方案可收集或使用關於使用者之個人資訊(例如,使用者資料、關於一使用者之人際網路之資訊、使用者之位置及時間、使用者之生物資訊、使用者之活動及人口資訊)之情景中,使用者具備控制是否收集個人資訊、是否儲存個人資訊、是否使用個人資訊及如何收集、儲存及使用關於使用者之資訊的一或多個機會。亦即,本文中論述之系統及方法具體而言基於以下內容而收集、儲存及/或使用使用者個人資訊:自相關使用者接收如此操作之明確授權。另外,可在儲存或使用特定資料之前以一或多個方式處理該特定資料,使得移除可個人識別資訊。作為一項實例,可處理一使用者之身份使得不可判定任何可個人識別資訊。作為另一實例,一使用者之地理位置可被歸納至一較大區域,使得無法判定使用者之特定位置。
雖然本文中已揭示了各種態樣及實施例,但熟習此項技術者將明瞭其他態樣及實施例。本文中所揭示之各種態樣及實施例皆係出於圖解說明之目的且並非意欲加以限制,其中真實範疇及精神係由以下申請專利範圍指示。
100‧‧‧半導體晶片裝置/晶片裝置/裝置/半導體裝置/晶片
101‧‧‧偵錯埠/串行線偵錯埠/完全偵錯埠/專用偵錯埠
103‧‧‧嵌入式處理器/處理器
105‧‧‧記憶體
107‧‧‧ROM/ROM韌體/數位組件
109‧‧‧SRAM
111‧‧‧快閃記憶體/快閃
121‧‧‧熔絲控制器與裝置狀態解碼器/裝置狀態解碼器/熔絲控制器/熔絲控制與裝置狀態解碼器
123‧‧‧熔絲
125‧‧‧金鑰熔絲/熔絲
127‧‧‧裝置狀態熔絲/熔絲/裝置狀態暫存器
129‧‧‧裝置ID熔絲/熔絲
131‧‧‧安全共處理器
133‧‧‧真實隨機數產生器
135‧‧‧SPI從控制/SPI從裝置
137‧‧‧SPI主控制
141‧‧‧快閃測試控制/快閃測試
143‧‧‧TAP/掃描控制
145‧‧‧快閃測試埠/快閃測試控制器埠
147‧‧‧掃描測試埠
149‧‧‧SPI IN
151‧‧‧SPI OUT
161‧‧‧啟動ROM
163‧‧‧啟動載入器
201‧‧‧輸入
203‧‧‧邏輯功能電路
205‧‧‧輸出
207‧‧‧經停用狀態
301‧‧‧晶圓/裝置
303‧‧‧測試器
305‧‧‧硬體安全模組
307‧‧‧金鑰管理伺服器
401‧‧‧原始裝置
403‧‧‧經啟用裝置
405‧‧‧經鎖定裝置
407‧‧‧經停用裝置
409‧‧‧經個性化裝置狀態/經個性化裝置
411‧‧‧經組態裝置/經組態裝置狀態
413‧‧‧經佈建裝置/經佈建裝置狀態
701‧‧‧封裝裝置/經封裝裝置
900‧‧‧熔絲巨集/實際熔絲
905‧‧‧有限狀態機
910‧‧‧內部控制器
913‧‧‧裝置狀態解鎖電路
915‧‧‧熔絲影子暫存器
917‧‧‧預設參數保存電路
919‧‧‧邏輯閘
931‧‧‧串行線偵錯埠
933‧‧‧處理器匯流排
935‧‧‧介面
依據對以下[實施方式]連同隨附申請專利範圍及圖式之一研究,本發明之此等及其他目標、特徵及特性對於熟習此項技術者將變得更明瞭,所有以下[實施方式]連同隨附申請專利範圍及圖式形成此說明書之一部分。在圖式中:
圖1係根據本發明之態樣之一實例性晶片之一方塊圖;
圖2係根據本發明之態樣之一實例性裝置狀態解碼器之一方塊圖;
圖3係根據本發明之態樣之一晶圓測試場地系統之一圖式;
圖4係根據本發明之態樣之晶片生命週期之一流程圖;
圖5係根據本發明之態樣之晶片裝置狀態管理之一流程圖;
圖6A及圖6B係根據本發明之態樣之一晶圓之晶片生命週期之流程圖;
圖7係根據本發明之態樣之一封裝測試場地系統之一圖式;
圖8A、圖8B及圖8C係根據本發明之態樣之個性化及佈建之晶片生命週期之流程圖;
圖9係根據本發明之態樣之一實例性單次可程式化記憶體控制器之一方塊圖;及
圖10係圖解說明根據本文中所闡述之一或多個實施例來實施態樣之一實例性計算裝置之一方塊圖。
各圖僅出於圖解說明之目的而繪示本發明之實施例。熟習此項技術者將依據以下論述認識到,可採用本文中所圖解說明之結構及方法之替代實施例而不背離本文中所闡述之本發明之原理。
100‧‧‧半導體晶片裝置/晶片裝置/裝置/半導體裝置/晶片
101‧‧‧偵錯埠/串行線偵錯埠/完全偵錯埠/專用偵錯埠
103‧‧‧嵌入式處理器/處理器
105‧‧‧記憶體
107‧‧‧ROM/ROM韌體/數位組件
109‧‧‧SRAM
111‧‧‧快閃記憶體/快閃
121‧‧‧熔絲控制器與裝置狀態解碼器/裝置狀態解碼器/熔絲控制器/熔絲控制與裝置狀態解碼器
123‧‧‧熔絲
125‧‧‧金鑰熔絲/熔絲
127‧‧‧裝置狀態熔絲/熔絲/裝置狀態暫存器
129‧‧‧裝置ID熔絲/熔絲
131‧‧‧安全共處理器
133‧‧‧真實隨機數產生器
135‧‧‧SPI從控制/SPI從裝置
137‧‧‧SPI主控制
141‧‧‧快閃測試控制/快閃測試
143‧‧‧TAP/掃描控制
145‧‧‧快閃測試埠/快閃測試控制器埠
147‧‧‧掃描測試埠
149‧‧‧SPI IN
151‧‧‧SPI OUT
161‧‧‧啟動ROM
163‧‧‧啟動載入器
Claims (20)
- 一種佈建(provisioning)一半導體晶片裝置之方法,該方法包括:基於儲存於該半導體晶片裝置內之多個裝置熔絲(device fuses)中之一位元型樣將該半導體晶片裝置判定為準備用於佈建;將啟動處理碼(boot processing code)寫入至該半導體晶片裝置之非揮發性記憶體;驗證該啟動處理碼之一真實性(authenticity);使用一憑證(certificate)建立用於產生複數個佈建金鑰的一裝置初始化金鑰;藉由熔斷(blowing)與該憑證相關聯之裝置熔絲而停用用以建立用於產生該等佈建金鑰之該裝置初始化金鑰的該憑證,與該憑證相關聯之該等裝置熔絲的熔斷預防該半導體晶片裝置之一嵌入式處理器或一外部裝置存取該憑證或再建立該裝置初始化金鑰;將該裝置初始化金鑰匯出至一金鑰管理伺服器;使用該裝置初始化金鑰及該啟動處理碼導出該等佈建金鑰;藉由提供一裝置ID及該等佈建金鑰之一者而向該金鑰管理伺服器證明身份;使用該等佈建金鑰之另一者解密佈建資料;及驗證該佈建資料係有效的。
- 如請求項1之方法,其中該非揮發性記憶體為一快閃記憶體。
- 如請求項1之方法,其中該裝置初始化金鑰儲存於一韌體可讀暫存器中。
- 如請求項1之方法,其中該佈建資料包含特殊應用快閃韌體(application-specific flash firmware);且其中該方法進一步包括藉由該啟動處理碼允許將該特殊應用快閃韌體儲存於該非揮發性記憶體中。
- 如請求項1之方法,其中該啟動處理碼內含有該憑證。
- 如請求項1之方法,其進一步包括回應於判定該位元型樣對應於一未知型樣,鎖定該半導體晶片裝置以使得該裝置之多個埠及記憶體被永久停用。
- 如請求項1之方法,其中經由一串周邊介面(a serial peripheral interface)接收該啟動處理碼及該佈建資料。
- 如請求項1之方法,其中該等佈建金鑰之該一者為一裝置證明金鑰。
- 如請求項8之方法,其中藉由將該裝置ID及該裝置證明金鑰提供至該金鑰管理伺服器及自該金鑰管理伺服器接收確認以證明該身份。
- 如請求項1之方法,其中該裝置ID儲存於該等裝置熔絲內。
- 如請求項1之方法,其中藉由一安全共處理器導出該等佈建金鑰。
- 一種半導體晶片裝置,其包括:多個裝置熔絲;一非揮發性記憶體;一處理器;一儲存裝置,其儲存多個指令,當由該處理器執行該等指令時致使該半導體晶片裝置:基於儲存於該等裝置熔絲中之一位元型樣將該半導體晶片裝置判定為準備用於佈建;將啟動處理碼寫入至該非揮發性記憶體;驗證該啟動處理碼之一真實性;使用一憑證建立用於產生複數個佈建金鑰的一裝置初始化金鑰;藉由熔斷(blowing)與該憑證相關聯之裝置熔絲而停用用以建立用於產生該等佈建金鑰之該裝置初始化金鑰的該憑證,與該憑證相關聯之該等裝置熔絲的熔斷預防該處理器或一外部裝置存取該憑證或再建立該裝置初始化金鑰;將該裝置初始化金鑰匯出至一金鑰管理伺服器;使用該裝置初始化金鑰及該啟動處理碼導出該等佈建金鑰;藉由提供一裝置ID及該等佈建金鑰之一者而向該金鑰管理伺服器證明身份;使用該等佈建金鑰之另一者解密佈建資料;及 驗證該佈建資料係有效的。
- 如請求項12之半導體晶片裝置,其中該非揮發性記憶體為一快閃記憶體。
- 如請求項12之半導體晶片裝置,其中該裝置ID維持於該等裝置熔絲中。
- 如請求項12之半導體晶片裝置,其中該佈建資料包含特殊應用快閃韌體且該啟動處理碼允許將該特殊應用快閃韌體儲存於該非揮發性記憶體中。
- 如請求項12之半導體晶片裝置,其中該啟動處理碼為一啟動載入器。
- 如請求項12之半導體晶片裝置,其中藉由將該裝置ID及一裝置證明金鑰提供至該金鑰管理伺服器及自該金鑰管理伺服器接收確認以證明該身份。
- 如請求項12之半導體晶片裝置,其中該處理器進一步經組態以回應於偵測該等裝置熔絲之一未知型樣,鎖定該半導體晶片裝置以使得該半導體晶片裝置之多個埠及記憶體為不可存取。
- 如請求項12之半導體晶片裝置,其中該位元型樣跨越該半導體晶片裝置之多個熔絲巨集展開。
- 如請求項12之半導體晶片裝置,其進一步包括一安全共處理器,其中藉由該安全共處理器導出該等佈建金鑰。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/396,052 US10223531B2 (en) | 2016-12-30 | 2016-12-30 | Secure device state apparatus and method and lifecycle management |
| US15/396,052 | 2016-12-30 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201921372A TW201921372A (zh) | 2019-06-01 |
| TWI732175B true TWI732175B (zh) | 2021-07-01 |
Family
ID=60022168
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW108104180A TWI732175B (zh) | 2016-12-30 | 2017-07-28 | 安全裝置狀態設備及方法及生命週期管理 |
| TW106125403A TWI653634B (zh) | 2016-12-30 | 2017-07-28 | 安全裝置狀態設備及方法及生命週期管理 |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW106125403A TWI653634B (zh) | 2016-12-30 | 2017-07-28 | 安全裝置狀態設備及方法及生命週期管理 |
Country Status (4)
| Country | Link |
|---|---|
| US (2) | US10223531B2 (zh) |
| CN (2) | CN108269605B (zh) |
| TW (2) | TWI732175B (zh) |
| WO (1) | WO2018125325A1 (zh) |
Families Citing this family (57)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101886176B1 (ko) * | 2016-10-25 | 2018-08-08 | 시큐리티플랫폼 주식회사 | 소유자만 기록 가능한 부트영역을 포함하는 저장장치 |
| US10223531B2 (en) | 2016-12-30 | 2019-03-05 | Google Llc | Secure device state apparatus and method and lifecycle management |
| US10643006B2 (en) * | 2017-06-14 | 2020-05-05 | International Business Machines Corporation | Semiconductor chip including integrated security circuit |
| US10402567B2 (en) * | 2017-06-25 | 2019-09-03 | Microsoft Technology Licensing, Llc | Secure boot for multi-core processor |
| US10708061B2 (en) | 2017-06-25 | 2020-07-07 | Microsoft Technology Licensing, Llc | Secure key storage for multi-core processor |
| US10503892B2 (en) | 2017-06-25 | 2019-12-10 | Microsoft Technology Licensing, Llc | Remote attestation for multi-core processor |
| FR3072195B1 (fr) * | 2017-10-11 | 2019-10-18 | Stmicroelectronics (Rousset) Sas | Procede de gestion d'un retour de produit pour analyse et produit correspondant |
| US10979232B2 (en) * | 2018-05-31 | 2021-04-13 | Motorola Solutions, Inc. | Method for provisioning device certificates for electronic processors in untrusted environments |
| US10853309B2 (en) * | 2018-08-13 | 2020-12-01 | Micron Technology, Inc. | Fuseload architecture for system-on-chip reconfiguration and repurposing |
| US10797064B2 (en) * | 2018-09-19 | 2020-10-06 | Ememory Technology Inc. | Single-poly non-volatile memory cell and operating method thereof |
| TWI679529B (zh) * | 2018-10-08 | 2019-12-11 | 新唐科技股份有限公司 | 自我檢測系統及其方法 |
| KR102126931B1 (ko) * | 2018-11-07 | 2020-06-25 | 시큐리티플랫폼 주식회사 | 시큐어 부팅 장치 및 방법 |
| US11244078B2 (en) * | 2018-12-07 | 2022-02-08 | Nxp Usa, Inc. | Side channel attack protection |
| US11036887B2 (en) | 2018-12-11 | 2021-06-15 | Micron Technology, Inc. | Memory data security |
| US20200195432A1 (en) * | 2018-12-14 | 2020-06-18 | Nxp Usa, Inc. | Self-provisioning and protection of a secret key |
| US11625459B2 (en) | 2019-02-08 | 2023-04-11 | Raytheon Technologies Corporation | Embedded processing system with multi-stage authentication |
| FR3094520B1 (fr) * | 2019-03-25 | 2021-10-22 | St Microelectronics Rousset | Clé de chiffrement et/ou de déchiffrement |
| TWI756156B (zh) * | 2019-04-07 | 2022-02-21 | 新唐科技股份有限公司 | 監控系統開機之安全裝置及其方法 |
| FR3097365B1 (fr) | 2019-06-11 | 2021-07-02 | St Microelectronics Rousset | Circuit électronique |
| US11138316B2 (en) * | 2019-06-28 | 2021-10-05 | Intel Corporation | Apparatus and method to provide secure fuse sense protection against power attacks |
| US11030124B2 (en) * | 2019-11-07 | 2021-06-08 | Micron Technology, Inc. | Semiconductor device with secure access key and associated methods and systems |
| US11182308B2 (en) | 2019-11-07 | 2021-11-23 | Micron Technology, Inc. | Semiconductor device with secure access key and associated methods and systems |
| US11132470B2 (en) * | 2019-11-07 | 2021-09-28 | Micron Technology, Inc. | Semiconductor device with secure access key and associated methods and systems |
| US11494522B2 (en) | 2019-11-07 | 2022-11-08 | Micron Technology, Inc. | Semiconductor device with self-lock security and associated methods and systems |
| CN110888766B (zh) * | 2019-11-18 | 2023-08-01 | 珠海泰芯半导体有限公司 | 一种芯片的启动方法 |
| KR102788533B1 (ko) * | 2020-01-14 | 2025-03-31 | 삼성전자주식회사 | 사용자 인증에 기반한 펌웨어 업데이트를 수행하는 전자 장치 및 이의 동작방법 |
| US11216597B2 (en) * | 2020-05-14 | 2022-01-04 | Nuvoton Technology Corporation | Security system and method for preventing rollback attacks on silicon device firmware |
| EP3987423B1 (en) | 2020-08-24 | 2022-08-17 | Google LLC | Undefined lifecycle state identifier for managing security of an integrated circuit device |
| US12183412B2 (en) * | 2020-09-25 | 2024-12-31 | Altera Corporation | Method and apparatus for enabling multiple return material authorizations (RMAs) on an integrated circuit device |
| CN112632562B (zh) * | 2020-12-28 | 2024-01-26 | 四川虹微技术有限公司 | 设备启动方法、设备管理方法和嵌入式设备 |
| US12299183B1 (en) * | 2020-12-31 | 2025-05-13 | Meta Platforms Technologies, Llc | Tamper detection and prevention in computer systems having one-time programmable memory |
| FR3120953B1 (fr) * | 2021-03-18 | 2023-03-10 | St Microelectronics Grenoble 2 | Protection du contenu d'une mémoire fusible |
| US12255984B2 (en) * | 2021-05-26 | 2025-03-18 | Micron Technology, Inc. | Data invalidation for memory |
| US11977639B2 (en) * | 2021-07-12 | 2024-05-07 | Dell Products, L.P. | Indicating a type of secure boot to endpoint devices by a security processor |
| GB202112412D0 (en) * | 2021-08-31 | 2021-10-13 | Nordic Semiconductor Asa | Debug-port control circuitry |
| US20230083979A1 (en) * | 2021-09-10 | 2023-03-16 | Ampere Computing Llc | Method and system for secure boot and rma intervention |
| US11907409B2 (en) * | 2021-09-29 | 2024-02-20 | Dell Products L.P. | Dynamic immutable security personalization for enterprise products |
| CN114169018B (zh) * | 2021-11-08 | 2022-07-05 | 广芯微电子(广州)股份有限公司 | 一种防止mcu嵌入式闪存数据泄露的电路 |
| US12086255B2 (en) | 2021-11-09 | 2024-09-10 | Dell Products L.P. | Edge day zero secure infrastructure identification and attestation |
| US12105850B2 (en) * | 2021-11-09 | 2024-10-01 | Dell Products L.P. | Secure base activation image for edge day zero secure infrastructure provisioning |
| US12248577B2 (en) | 2021-11-09 | 2025-03-11 | Dell Products L.P. | Edge day zero secure infrastructure provisioning with autonomic methods |
| US12353335B2 (en) * | 2021-11-15 | 2025-07-08 | Samsung Electronics Co., Ltd. | Semiconductor device and method of operating the same |
| CN114220473B (zh) * | 2021-12-23 | 2025-02-18 | 苏州洪芯集成电路有限公司 | 一种用于flash读保护改变的测试电路及方法 |
| DE112023000977T5 (de) * | 2022-02-17 | 2024-11-28 | Microchip Technology Incorporated | Sichere programmierung eines einmal-programmierbaren (otp) speichers |
| CN114637539B (zh) * | 2022-02-25 | 2024-02-13 | 中电科申泰信息科技有限公司 | 一种核心安全启动平台及方法 |
| FR3133248B1 (fr) * | 2022-03-07 | 2025-10-17 | St Microelectronics Rousset | Protection d’un circuit intégré |
| EP4246157B1 (en) * | 2022-03-15 | 2024-09-18 | Secure Thingz Limited | A provisioning control apparatus for provisioning an electronic component for electronic equipment |
| US12367287B2 (en) | 2022-06-02 | 2025-07-22 | Micron Technology, Inc. | Field firmware update |
| DE102022209019A1 (de) * | 2022-08-31 | 2024-02-29 | Vitesco Technologies GmbH | Steuergerät und Verfahren zum Initialisieren eines Steuergeräts |
| CN116661875B (zh) * | 2022-11-17 | 2024-04-05 | 荣耀终端有限公司 | 实现终端设备启动的方法及电子设备 |
| US12026403B1 (en) * | 2023-01-03 | 2024-07-02 | Silicon Motion, Inc. | Method and apparatus for performing configuration management of memory device in predetermined communications architecture with aid of electronic fuse data preparation, and associated computer-readable medium |
| FR3145626B1 (fr) * | 2023-02-08 | 2025-04-11 | St Microelectronics Int Nv | Démarrage sécurisé d’un dispositif de traitement |
| US12253564B2 (en) | 2023-03-17 | 2025-03-18 | Silicon Motion, Inc. | Mechanism capable of performing on-chip test and verification |
| US20250023722A1 (en) * | 2023-07-10 | 2025-01-16 | Dediprog Technology Co., Ltd. | Secure programming system, operating method thereof and computer readable recording medium using such operating method |
| IT202300021996A1 (it) * | 2023-10-20 | 2025-04-20 | St Microelectronics Int Nv | Procedimento per migliorare la sicurezza di sistemi on-chip e sistema corrispondente |
| EP4614879A1 (en) * | 2024-03-05 | 2025-09-10 | Nagravision Sarl | Method for attesting authenticity of computing device |
| TWI870303B (zh) * | 2024-05-22 | 2025-01-11 | 華邦電子股份有限公司 | 內建自測裝置及錯誤檢測方法 |
Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5627478A (en) * | 1995-07-06 | 1997-05-06 | Micron Technology, Inc. | Apparatus for disabling and re-enabling access to IC test functions |
| US20040153900A1 (en) * | 2002-11-22 | 2004-08-05 | International Business Machines Corporation | Automation of fuse compression for an asic design system |
| US20060236111A1 (en) * | 2002-09-16 | 2006-10-19 | Bodensjoe Marcus | Loading data onto an electronic device |
| US20090202069A1 (en) * | 2008-02-11 | 2009-08-13 | Nvidia Corporation | Method and system for generating a secure key |
| US20100199077A1 (en) * | 2009-01-30 | 2010-08-05 | Freescale Semiconductor, Inc. | Authenticated debug access for field returns |
| US20110029815A1 (en) * | 2009-08-03 | 2011-02-03 | Christopher Wilson Case | Electronic Device and Method for Operating the Electronic Device |
| US9305183B2 (en) * | 2000-06-30 | 2016-04-05 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
| US20160171223A1 (en) * | 2014-12-16 | 2016-06-16 | Freescale Semiconductor, Inc. | Systems and methods for secure provisioning of production electronic circuits |
| US9479340B1 (en) * | 2015-03-30 | 2016-10-25 | Amazon Technologies, Inc. | Controlling use of encryption keys |
Family Cites Families (43)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6038551A (en) * | 1996-03-11 | 2000-03-14 | Microsoft Corporation | System and method for configuring and managing resources on a multi-purpose integrated circuit card using a personal computer |
| US7316934B2 (en) | 2000-12-18 | 2008-01-08 | Zavitan Semiconductors, Inc. | Personalized hardware |
| US20020141582A1 (en) | 2001-03-28 | 2002-10-03 | Kocher Paul C. | Content security layer providing long-term renewable security |
| US7185249B2 (en) | 2002-04-30 | 2007-02-27 | Freescale Semiconductor, Inc. | Method and apparatus for secure scan testing |
| IL165468A0 (en) | 2002-06-04 | 2006-01-15 | Nds Ltd | Prevention of tampering in electronic devices |
| US8112618B2 (en) * | 2004-04-08 | 2012-02-07 | Texas Instruments Incorporated | Less-secure processors, integrated circuits, wireless communications apparatus, methods and processes of making |
| US7242063B1 (en) | 2004-06-29 | 2007-07-10 | Hrl Laboratories, Llc | Symmetric non-intrusive and covert technique to render a transistor permanently non-operable |
| US7962766B2 (en) | 2005-07-14 | 2011-06-14 | Atmel Corporation | Method and system for encryption-based design obfuscation for an integrated circuit |
| US7791972B2 (en) | 2006-11-01 | 2010-09-07 | International Business Machines Corporation | Design structure for providing optimal field programming of electronic fuses |
| US7755502B2 (en) | 2006-11-09 | 2010-07-13 | International Business Machines Corporation | Anti-tamper electronic obscurity using E-fuse technology |
| US7853805B1 (en) | 2007-02-02 | 2010-12-14 | Hrl Laboratories, Llc | Anti-tamper system |
| NL1036049A1 (nl) | 2007-10-16 | 2009-04-20 | Asml Holding Nv | Securing authenticity of integrated circuit chips. |
| US9613215B2 (en) * | 2008-04-10 | 2017-04-04 | Nvidia Corporation | Method and system for implementing a secure chain of trust |
| SG171730A1 (en) | 2008-11-24 | 2011-07-28 | Certicom Corp | System and method for hardware based security |
| US8089285B2 (en) | 2009-03-03 | 2012-01-03 | International Business Machines Corporation | Implementing tamper resistant integrated circuit chips |
| US8732468B2 (en) | 2009-03-09 | 2014-05-20 | The Regents Of The University Of Michigan | Protecting hardware circuit design by secret sharing |
| US8230495B2 (en) * | 2009-03-27 | 2012-07-24 | International Business Machines Corporation | Method for security in electronically fused encryption keys |
| KR20110047884A (ko) * | 2009-10-30 | 2011-05-09 | 주식회사 하이닉스반도체 | 반도체 메모리 장치 |
| GB2477774A (en) * | 2010-02-12 | 2011-08-17 | Icera Inc | Overriding production processor authentication restrictions through remote security unit for development code testing |
| US20120060039A1 (en) * | 2010-03-05 | 2012-03-08 | Maxlinear, Inc. | Code Download and Firewall for Embedded Secure Application |
| US8892855B2 (en) * | 2010-08-10 | 2014-11-18 | Maxlinear, Inc. | Encryption keys distribution for conditional access software in TV receiver SOC |
| US8418006B1 (en) | 2010-12-07 | 2013-04-09 | Xilinx, Inc. | Protecting a design for an integrated circuit using a unique identifier |
| JP5730034B2 (ja) * | 2011-01-21 | 2015-06-03 | スパンション エルエルシー | 半導体装置 |
| WO2012122994A1 (en) | 2011-03-11 | 2012-09-20 | Kreft Heinz | Off-line transfer of electronic tokens between peer-devices |
| US9218511B2 (en) | 2011-06-07 | 2015-12-22 | Verisiti, Inc. | Semiconductor device having features to prevent reverse engineering |
| US9015455B2 (en) | 2011-07-07 | 2015-04-21 | Intel Corporation | Processsor integral technologies for BIOS flash attack protection and notification |
| US8446772B2 (en) | 2011-08-04 | 2013-05-21 | Sandisk Technologies Inc. | Memory die self-disable if programmable element is not trusted |
| US9203617B2 (en) | 2011-08-17 | 2015-12-01 | Vixs Systems, Inc. | Secure provisioning of integrated circuits at various states of deployment, methods thereof |
| CN107612685A (zh) * | 2011-12-29 | 2018-01-19 | 英特尔公司 | 使用在物理上不可克隆的函数的安全密钥存储 |
| WO2013102521A1 (en) | 2012-01-03 | 2013-07-11 | International Business Machines Corporation | Method for secure self-booting of an electronic device |
| US9183412B2 (en) | 2012-08-10 | 2015-11-10 | Sprint Communications Company L.P. | Systems and methods for provisioning and using multiple trusted security zones on an electronic device |
| JP5984625B2 (ja) * | 2012-10-31 | 2016-09-06 | ルネサスエレクトロニクス株式会社 | 半導体装置及び暗号鍵書き込み方法 |
| US20140230052A1 (en) | 2013-02-11 | 2014-08-14 | Motorola Mobility Llc | System and method for testing a secured manufactured device |
| US9230112B1 (en) | 2013-02-23 | 2016-01-05 | Xilinx, Inc. | Secured booting of a field programmable system-on-chip including authentication of a first stage boot loader to mitigate against differential power analysis |
| US8955144B2 (en) | 2013-06-28 | 2015-02-10 | Intel Corporation | Protecting information processing system secrets from debug attacks |
| US9471785B2 (en) * | 2013-08-30 | 2016-10-18 | Freescale Semiconductor, Inc. | Systems and methods for secure boot ROM patch |
| US9189617B2 (en) | 2013-09-27 | 2015-11-17 | Intel Corporation | Apparatus and method for implementing zero-knowledge proof security techniques on a computing platform |
| EP3197089B1 (en) * | 2014-11-06 | 2019-08-07 | Huawei Technologies Co., Ltd. | Secure information configuration method, secure authentication method and related chip |
| US9940457B2 (en) * | 2015-02-13 | 2018-04-10 | International Business Machines Corporation | Detecting a cryogenic attack on a memory device with embedded error correction |
| US10003467B1 (en) * | 2015-03-30 | 2018-06-19 | Amazon Technologies, Inc. | Controlling digital certificate use |
| US10057224B2 (en) * | 2015-08-04 | 2018-08-21 | Rubicon Labs, Inc. | System and method for initializing a shared secret system |
| US10193858B2 (en) * | 2015-12-22 | 2019-01-29 | Mcafee, Llc | Attestation device custody transfer protocol |
| US10223531B2 (en) | 2016-12-30 | 2019-03-05 | Google Llc | Secure device state apparatus and method and lifecycle management |
-
2016
- 2016-12-30 US US15/396,052 patent/US10223531B2/en active Active
-
2017
- 2017-07-28 TW TW108104180A patent/TWI732175B/zh active
- 2017-07-28 TW TW106125403A patent/TWI653634B/zh active
- 2017-09-05 CN CN201710790343.6A patent/CN108269605B/zh active Active
- 2017-09-05 CN CN202210426167.9A patent/CN115019874B/zh active Active
- 2017-09-14 WO PCT/US2017/051676 patent/WO2018125325A1/en not_active Ceased
-
2019
- 2019-01-30 US US16/262,179 patent/US10872154B2/en active Active
Patent Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5627478A (en) * | 1995-07-06 | 1997-05-06 | Micron Technology, Inc. | Apparatus for disabling and re-enabling access to IC test functions |
| US9305183B2 (en) * | 2000-06-30 | 2016-04-05 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
| US20060236111A1 (en) * | 2002-09-16 | 2006-10-19 | Bodensjoe Marcus | Loading data onto an electronic device |
| US20040153900A1 (en) * | 2002-11-22 | 2004-08-05 | International Business Machines Corporation | Automation of fuse compression for an asic design system |
| US20090202069A1 (en) * | 2008-02-11 | 2009-08-13 | Nvidia Corporation | Method and system for generating a secure key |
| US20100199077A1 (en) * | 2009-01-30 | 2010-08-05 | Freescale Semiconductor, Inc. | Authenticated debug access for field returns |
| US20110029815A1 (en) * | 2009-08-03 | 2011-02-03 | Christopher Wilson Case | Electronic Device and Method for Operating the Electronic Device |
| US20160171223A1 (en) * | 2014-12-16 | 2016-06-16 | Freescale Semiconductor, Inc. | Systems and methods for secure provisioning of production electronic circuits |
| US9479340B1 (en) * | 2015-03-30 | 2016-10-25 | Amazon Technologies, Inc. | Controlling use of encryption keys |
Also Published As
| Publication number | Publication date |
|---|---|
| US10872154B2 (en) | 2020-12-22 |
| US10223531B2 (en) | 2019-03-05 |
| CN115019874B (zh) | 2025-09-05 |
| TWI653634B (zh) | 2019-03-11 |
| TW201921372A (zh) | 2019-06-01 |
| US20180189493A1 (en) | 2018-07-05 |
| CN115019874A (zh) | 2022-09-06 |
| CN108269605A (zh) | 2018-07-10 |
| CN108269605B (zh) | 2022-05-10 |
| US20190163909A1 (en) | 2019-05-30 |
| TW201824289A (zh) | 2018-07-01 |
| WO2018125325A1 (en) | 2018-07-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI732175B (zh) | 安全裝置狀態設備及方法及生命週期管理 | |
| CN111095213B (zh) | 嵌入式程序的安全引导方法、装置、设备及存储介质 | |
| TWI483139B (zh) | 使用物理性不可複製功能的安全金鑰儲存器 | |
| US12425205B2 (en) | Deriving identity and root keys for embedded systems | |
| TWI701571B (zh) | 判定一碼影像之一驗證雜湊之電腦實施之方法及設備,以及對一訊息進行數位簽署之電腦實施之方法及設備 | |
| KR102864753B1 (ko) | 키를 안전하게 관리하기 위한 장치 및 방법 | |
| KR102395258B1 (ko) | 부트 메모리 버스의 경로 절체 기능을 이용한 시큐어 부팅 방법 및 이를 이용한 장치 | |
| US20070237325A1 (en) | Method and apparatus to improve security of cryptographic systems | |
| CN108804352B (zh) | 管理安全性集成电路状态的装置及其方法 | |
| Sami et al. | End-to-end secure soc lifecycle management | |
| CN115968540A (zh) | 安全组件和操作方法 | |
| US12368606B1 (en) | Secure verification of physical unclonable function | |
| US20250168020A1 (en) | Secure attestation of hardware device | |
| US20230010319A1 (en) | Deriving independent symmetric encryption keys based upon a type of secure boot using a security processor | |
| EP4555664A1 (en) | Hardware-entangled key generation | |
| US20250150285A1 (en) | Managing patching of write-limited memory with a hardware security module | |
| US20250385788A1 (en) | Integrated circuit for genereating key encrypting key and operating method thereof |