TWI865575B - 利用系統產生的多個裝置程式化系統 - Google Patents
利用系統產生的多個裝置程式化系統 Download PDFInfo
- Publication number
- TWI865575B TWI865575B TW109125987A TW109125987A TWI865575B TW I865575 B TWI865575 B TW I865575B TW 109125987 A TW109125987 A TW 109125987A TW 109125987 A TW109125987 A TW 109125987A TW I865575 B TWI865575 B TW I865575B
- Authority
- TW
- Taiwan
- Prior art keywords
- programmable
- security
- oem
- secure
- certificate
- Prior art date
Links
Classifications
-
- 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/3236—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 using cryptographic hash functions
- H04L9/3239—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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
-
- 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
- H04L9/3265—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 using certificate chains, trees or paths; Hierarchical trust model
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2103—Challenge-response
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本案提供一種用於將目標有效負載設置及程式化到安裝在編程器中的可程式化裝置中的安全程式化系統與方法。可程式化裝置可以在程式化之前進行認證,以校驗裝置是矽供應商生產的有效裝置。認證處理可以包括詢問回應驗證。目標有效負載可以經程式化到可程式化裝置中,並與經授權的製造商鏈接。可程式化裝置可以藉由校驗矽供應商與經授權的製造商在對目標有效負載進行程式化之後進行校驗。安全程式化系統可以將不同內容同時設置到不同可程式化裝置中,而在單一傳遞中建立多個最終裝置類型。
Description
實施例大體關於裝置程式化系統,更具體而言,關於利用系統產生的安全程式化系統。
此段落中所述的方式是可推行的方式,但不一定是先前已構思或推行的方式。因此,除非原本指示,不應僅因為此段落中所述的任何方式被包括在此段落中就假設此等方式有資格作為先前技術。
電子電路板組件的某些操作遠離於主要生產組件線路而執行。儘管各種饋入器機器及機器人處置系統以積體電路填充電子電路板,但關於處理積體電路的操作(例如程式化、測試、校正、及量測)一般執行於單獨裝備上的單獨區域中,而不是整合進主要生產組件線路。
可定製的裝置(例如快閃記憶體(Flash)、電子可抹除可程式化唯讀記憶體(EEPROM)、可程式化邏輯裝置(PLD)、現場可程式化邏輯閘陣列(FPGA)、及結合非揮發性記憶體元件的微控制器)可經配置為具有通常位於與電路板組件線路分開的區域中的單獨程式化裝備。此外,系統級部件(例如智慧型電話、電路板、物聯網(IoT)裝置、媒體播放器)亦可能需要特定的安全配置支援。
在生產線路上批量製造或組裝的系統與子組件在功能上通常相同。這些產品在功能及操作上都有類似的問題。在一個裝置中出現的問題通常在所有類似的製造裝置中都會發現。
根據一個實施例,藉由在可程式化裝置中之一者(例如電路板)上個別加密目標有效負載,則電路板可經配置為僅對具有已註冊安全代碼的部件進行工作。這可用於確保電路板只能利用某些類別的部件進行操作。此舉為製造商提供在板的最終使用上的一定程度的控制。
根據另一實施例,可程式化裝置可以驗證序列號或其他參數,以作為裝置操作的先決條件。在另一實施例中,可程式化裝置可以提供代碼簽名設施,以在執行之前認證代碼。
根據另一實施例,在對目標有效負載進行程式化之後,可以在再次程式化及認證之前認證可程式化裝置。此舉可以包括認證矽供應商裝置證書及原始裝備製造商(OEM)裝置證書。可程式化裝置可以包括識別矽供應商、OEM、用於程式化裝置的工廠、編程器、及可用於追蹤及認證可程式化裝置的生產的其他識別資訊的安全資訊。
在其他態樣中,本發明包括經配置為實現上述技術的電腦設備及電腦可讀取媒體。
在以下的說明中,為了解釋之目的,闡述許多特定細節,以提供本發明的徹底瞭解。然而,將理解,可以在沒有這些特定細節的情況下實行本發明。在其他實例中,熟知的結構及裝置是以方塊圖的形式圖示,以避免不必要地模糊化本發明。
根據以下概述在本文中描述實施例:
1.0. 一般概述
2.0. 結構概述
3.0. 功能概述
4.0. 示例性實施例
5.0. 實施機構-硬體概述
6.0. 延伸及替代方案
1.0. 一般概述
為了以安全的方式設置可程式化裝置而揭露方式、技術、及機構。安全程式化系統可以個別加密資料及代碼的目標有效負載,並接著將資訊程式化進每一個別的可程式化裝置。安全程式化系統可以建立定製的有效負載封包,定製的有效負載封包僅可由具有正確安全金鑰的系統或裝置解密。
可程式化裝置可以包括記憶體晶片、電路板、及完整的電子裝置,例如智慧型電話、媒體播放器、或其他消費及工業電子裝置。安全金鑰的配置可控制可程式化裝置的操作。
安全程式化系統可以安全地配置個別裝置,包括部件、電路板、及完整的產品。藉由在個別部件製造時實現安全特徵,可以藉由裝置基礎控制裝置上的操作。安全內容、代碼、及金鑰可以互相操作,以提供高度的安全性及控制。2.0.
結構概述
現在參照第1圖,依據實施例,安全程式化系統100的各種態樣的說明圖圖示於第1圖中,其中可在安全程式化系統100中實行本文中所述的技術。安全程式化系統100可以利用密碼資訊個別配置資料裝置與主動且受信任的裝置,以提供安全的程式化及操作環境。
安全程式化系統100包含具有編程器112的程式化單元110、安全控制器114、安全金鑰106、用於耦接至可程式化裝置的轉接器、第一安全模組116、第二安全模組118、及第n安全模組120。安全程式化系統100可以耦接至安全主系統104,安全主系統104具有安全主儲存系統102。安全主系統104與安全主儲存系統102可以產生及安全地儲存用於加密及解密資訊的安全金鑰106。安全金鑰106可以實現各種安全範例。舉例而言,安全金鑰106可以包括私密金鑰152及公開金鑰154的金鑰對150。金鑰對150可以用於實現公開金鑰加密系統,其中可以使用私密金鑰152解密由公開金鑰154加密的資料。安全程式化系統100可以根據需要包括多個不同的金鑰對150。可以針對包括安全程式化系統100、程式化單元110、編程器112、安全控制器114、安全模組、可程式化裝置128、資料裝置132、受信任裝置130、或任何其他系統元件的不同裝置或系統元件而實現金鑰對150、私密金鑰152、及公開金鑰154。
系統100包含一或更多個計算裝置。這些一或更多個計算裝置包括配置為實施本文中所述之各種邏輯部件(包括具有編程器112之程式化單元110、安全控制器114、轉接器、第一安全模組116、第二安全模組118、及第n安全模組120的部件)之硬體及軟體的任何組合。舉例而言,一或更多個計算裝置可以包括儲存用於實施本文中所述之各種部件之指令的一或更多個記憶體、配置為執行儲存於一或更多個記憶體中之指令的一或更多個硬體處理器、及用於儲存由各種部件所利用及操控之資料結構之一或更多個記憶體中的各種資料儲存庫。
程式化單元110可以是用於將資料、元資料、及代碼程式化至可程式化裝置128上的安全系統。程式化單元110可以從安全主系統104接收安全資訊,處理此資訊,並將個別配置版本的安全資訊傳輸至可程式化裝置128。
程式化單元110可以包括編程器112。編程器112可以是用於實體程式化可程式化裝置128的電機系統。舉例而言,編程器112可以接收包含可程式化裝置128的托盤,將可程式化裝置128電耦接至轉接單元、及將安全資訊傳輸至可程式化裝置128。程式化單元110可以從可程式化裝置128中之每一者接收個體化狀態資訊,並在個別裝置的基礎上定製傳輸至可程式化裝置128中之每一者的安全資訊。舉例而言,可程式化裝置128中之每一者可接收個別的資訊區塊,此資訊區塊不同於傳輸至可程式化裝置中之其他者的資訊。
編程器112可耦接至可用以存取可程式化裝置128之轉接器中的一或更多者。轉接器可包括第一轉接器122、第二轉接器124、及第n轉接器126。
在說明性實例中,第一轉接器122可以是可用於將可程式化裝置中之一或更多者電連接至編程器112的硬體裝置。編程器112可以接著將一版本的安全資訊傳輸至可程式化裝置128中之一者。第一轉接器122可包括用於安裝可程式化裝置128的一或更多個插槽。第一轉接器122可以包括用於安裝積體電路的插槽、連接器、零插入力(ZIF)插槽、或類似裝置。
儘管轉接器被描述為用於安裝可程式化裝置128的電機單元,但應瞭解,轉接器亦可具有其他實施方式。舉例而言,若可程式化裝置128為獨立的電子裝置(例如手機、消費電子裝置、電路板、或具有主動部件的類似裝置),則轉接器可包括用於與可程式化裝置128通訊的機構。轉接器可以包括電纜鏈接、通用序列匯流排鏈接、串列連接、並列連接、無線通訊鏈接、電子資料匯流排介面、光介面、或任何其他通訊機構。
可程式化裝置128為可由程式化單元110提供安全資訊的裝置。舉例而言,可程式化裝置128可以包括資料裝置(例如快閃記憶體單元)、可程式化唯讀記憶體、安全資料儲存裝置、或其他資料儲存裝置。
提供步驟可以包括將資料及/或代碼資訊傳輸至裝置。舉例而言,可以藉由利用資料程式化快閃記憶體單元,以提供快閃記憶體單元。
可程式化裝置128亦可包括受信任裝置130,受信任裝置130包括安全資料及安全程式化資訊。舉例而言,可程式化裝置128可包括受信任裝置130,例如手機、硬體安全模組、受信任的程式化模組、電路板、或類似裝置。
資料裝置132可以包括任何數量的裝置,例如第一資料裝置134、第二資料裝置136、及第n資料裝置138。受信任裝置130可以包括任何數量的受信任裝置,例如第一受信任裝置140、第二受信任裝置142、及高達第n受信任裝置144。
可以將個別定製的安全資訊提供至可程式化裝置128中之每一者。因此,可程式化裝置128中之每一者可以包括單獨的安全金鑰106的集合,安全金鑰106可用於個別加密儲存於可程式化裝置128中的資料。此舉提供以下能力:在可程式化裝置128中之每一者上不同地加密安全資訊148,以最大化安全性。可程式化裝置128中之每一者可以利用個別安全金鑰106以進行個性化。
可程式化裝置128可經配置以包括經配對裝置146。經配對裝置146為可以共享安全金鑰106中之一或更多者的可程式化裝置128中之二或更多者。此舉可以允許經配對裝置146中之每一者偵測及認證相同群組中之經配對裝置146中的另一者。因此,可以與經配對裝置146中的另一者共享來自經配對裝置146中之一者的資料。此舉可以允許例如以下功能:共享資訊、認證經配對裝置146中的二或更多者之間的雙向安全通訊通道、識別其他相關的裝置、或其組合。
在說明性實例中,安全程式化系統100可以用於建立經配對裝置146中之一者,使得第一資料裝置134(例如系統資訊模組(SIM)晶片)與第一受信任裝置140(例如智慧型電話)配對。在此配置中,可以利用用於經配對裝置146的安全金鑰106來程式化第一資料裝置134及第一受信任裝置140兩者。因此,第一受信任裝置140可以驗證第一資料裝置134的安全資訊148(例如序列號),以認證第一受信任裝置140被允許使用第一資料裝置134上的其他資訊。
程式化單元110可以包括耦接至編程器112的安全控制器114。安全控制器114為用於處理安全資訊的計算裝置。安全控制器114可以包括特定密碼技術及計算硬體,以促進密碼資訊的處理。舉例而言,安全控制器114可以包括量子電腦、平行計算電路系統、配置為處理安全資訊的現場可程式化邏輯閘陣列(FPGA)、共處理器、陣列邏輯單元、微處理器、或其組合。
安全控制器114可以是特別配置為防止在處理安全資訊的輸入、中間、或最終階段處未授權地存取安全資訊的安全裝置。安全控制器114可以提供安全代碼元件314執行於其中的安全執行環境。舉例而言,安全控制器114可以是硬體安全模組(HSM)、微處理器、受信任的安全模組(TPM)、專用安全單元、或其組合。安全控制器114可以是程式化單元110的一部分。舉例而言,安全控制器114(例如硬體安全模組)可以包括在編程器112內。
安全控制器114可耦接至安全模組,以提供特定安全功能。安全模組可以包括第一安全模組116、第二安全模組118、及第n安全模組120。安全模組中之每一者可以提供特定安全功能,例如識別、認證、加密、解密、驗證、代碼簽署、資料抽取、或其組合。舉例而言,安全模組可以是硬體、軟體、或其組合。
舉例而言,第一安全模組116可經配置以將應用程式化介面(API)提供至標準化的通用安全功能集合。在另一實例中,第二安全模組118可以是專用硬體及軟體的組合,以提供更快速的資料加密及解密。
程式化單元110可以包括安全金鑰106中之一或更多者的安全儲存器。可以在安全程式化系統100內部運算安全金鑰106、可外部地運算及由安全程式化系統100接收安全金鑰106、或其組合。
安全金鑰106可以用於加密及解密安全資訊。安全金鑰106可以用於實施不同的安全方法及協定。舉例而言,安全金鑰106可用於實施公開金鑰加密系統。在另一實例中,安全金鑰106可以用於實施不同的安全協定或方法。儘管安全金鑰106可描述為用於公開金鑰加密系統,但是應瞭解,安全金鑰106可以用於實施不同的安全典範。
安全程式化系統100之優點中的一者包括以下能力:將不同的安全金鑰106的集合以及由個別安全金鑰106所加密之不同版本的安全資訊148提供至可程式化裝置128中之每一者。此舉可確保用於解密可程式化裝置128中之一者上之安全資訊148的安全金鑰106不能用於解密可程式化裝置128中之另一者上的安全資訊。可程式化裝置128中之每一者可以具有安全金鑰106中的單獨一者,以提供最大保護。
現在參照第2圖,其中圖示編程器112的實例。編程器112為用於提供可程式化裝置128的電機裝置。
編程器112可用於存取可程式化裝置128,並將內容有效負載提供至可程式化裝置128。內容有效負載可以包括第1圖的資料、代碼、安全金鑰106、第1圖的安全資訊148、及其他相關內容。
編程器112可以具有各種配置。編程器112可以包括程式化處理器202、輸入裝置插座206、裝置轉接器208、目的地插槽210、裝置放置單元212、及輸出裝置插座214。舉例而言,編程器112可以是編程器112、晶片編程器、裝置提供系統、電路板編程器、或類似的提供系統。
編程器112可以具有編程器識別216。編程器識別216為用於識別編程器112的唯一值。
編程器112可以藉由將資料圖像初始化及寫入可程式化裝置128來配置可程式化裝置128。可以針對可程式化裝置128的裝置類型配置資料圖像。編程器112可以使用直接或間接記憶體存取,來將資料傳輸至可程式化裝置128。
編程器112可以接收可程式化裝置128的單一有效負載圖像,並將圖像儲存在本地編程器儲存單元中。有效負載圖像可以被處理成針對可程式化裝置128中之每一者的個別圖像。配置可程式化裝置128之步驟可以在可程式化裝置128上儲存記憶體結構、密碼資料、及使用者資料。配置之步驟可以包括在可程式化裝置128上形成單次結構(例如分區)之步驟。
編程器112可以包括程式化處理器202。程式化處理器202為用於控制編程器112的計算單元。程式化處理器202可以包括中央處理單元(未圖示)、編程器儲存單元204、通訊介面(未圖示)、及軟體(未圖示)。
程式化處理器202可以具有各種配置。舉例而言,程式化處理器202可以包括安全控制器,或者可以耦接至系統控制器。程式化處理器202可以是單一處理器、多處理器、雲計算元件、或其組合。
編程器儲存單元204為用於儲存及檢索資訊的裝置。舉例而言,編程器112的編程器儲存單元204可以是碟驅動器、固態記憶體、光儲存裝置、或其組合。
編程器112可以包括用於操作編程器112的軟體。軟體為用於在程式化處理器202上執行的控制資訊。軟體可以儲存在編程器儲存單元204中,並在程式化處理器202上執行。
編程器112可以包括輸入裝置插座206。輸入裝置插座206為可程式化裝置128的來源。舉例而言,輸入裝置插座206可以是符合聯合電子裝置工程委員會(JEDEC)標準的托盤。輸入裝置插座206可用於托持未經程式化的裝置。
編程器112可以包括輸出裝置插座214。輸出裝置插座214為已提供的可程式化裝置128的目的地。舉例而言,輸出裝置插座214可以是用於托持成品裝置、儲存管、運輸包裝、或其他類似結構的空JEDEC托盤。
編程器112可以包括裝置轉接器208。裝置轉接器208為用於耦接至可程式化裝置128的機構。
裝置轉接器208可以具有各種配置。舉例而言,裝置轉接器208可以包括用於安裝可程式化裝置128(例如晶片)的目的地插槽210。插槽為用於托持可程式化裝置128並與可程式化裝置128對接的機構。裝置轉接器208可以模組化,並且可以從編程器112移除,以適應不同的插槽配置。裝置轉接器208可以包括用於附接至編程器112的閂鎖機構(未圖示)。
目的地插槽210可以托持可程式化裝置128。目的地插槽210可以用於讀取新資訊或將新資訊寫入可程式化裝置128。
編程器112可以包括裝置放置單元212。裝置放置單元212為用於將可程式化裝置128定位在目的地插槽210之一者中的機構。
可以利用各種方式實現裝置放置單元212。舉例而言,裝置放置單元212可以是機器臂、拾取及放置機構、或其組合。儘管可以將裝置放置單元212描述為軌道式定位系統,但應理解,可以使用能夠將可程式化裝置128中之一者定位在目的地插槽210中的任何系統。
裝置放置單元212可以從輸入裝置插座206檢索空白的一或更多個可程式化裝置128。裝置放置單元212可以將可程式化裝置128傳輸至裝置轉接器208的目的地插槽210。
一旦藉由裝置轉接器208接合及固定可程式化裝置128,則可以開始裝置程式化處理。編程器112可以將資訊的本地副本程式化到目的地插槽210中之一者中的可程式化裝置128。舉例而言,程式化資訊的本地副本可以在預程式化的主裝置中、來自本地儲存器中的檔案、或來自遠端伺服器。
一旦完成程式化,則裝置放置單元212可以將已程式化的可程式化裝置128運輸至輸出裝置插座214。裝置放置單元212可以將具有錯誤的可程式化裝置128中的任一者運輸至廢品箱(未圖示)。
編程器112可以包括編程器識別216。編程器識別216為用於編程器112的唯一值。編程器識別216可用於識別編程器112。編程器識別216可以合併至每一可程式化裝置128的裝置識別,以指示使用哪個編程器112對裝置進行程式化。
現在參照第3圖,其中圖示受信任裝置130中之一者的實例。受信任裝置130為具有安全儲存單元326與安全執行單元324的部件。受信任裝置130為能夠在安全執行單元324中執行安全代碼的活動部件,以對安全儲存單元326中的安全資料執行操作。
可以藉由第1圖的安全程式化系統100提供受信任裝置130,以包括安全資訊。舉例而言,受信任裝置130可以包括裝置識別302、安全演算法304、安全證書306、及金鑰對150,金鑰對150中之每一者具有私密金鑰152與公開金鑰154。
在說明性實例中,安全金鑰106可以包含用於公開金鑰加密系統的一或更多個金鑰對150。可以使用金鑰對150中之一者的公開金鑰154加密安全資訊,並使用私密金鑰152解密安全資訊。然而,應理解,系統可以採用不同的安全範例,包括對稱加密、非對稱加密、資料加密標準(DES)、雜湊代碼、PGP、或其他密碼系統。在進一步實例中,金鑰對150可以用於使用兩個不同組的安全金鑰106以提供數位簽名。在數位簽名實例中,可以使用第一元件的私密金鑰152與第二元件的公開金鑰154加密訊息或有效負載。可以使用第一元件的公開金鑰154與第二元件的私密金鑰152以解密所得到的加密訊息。若訊息被成功解密,則表明此訊息是藉由第一元件加密,而因此建立數位簽名。
裝置識別302為可以唯一識別每一受信任裝置130的個別資料值。舉例而言,裝置識別302可以包括序列號、標記、安全代碼、或其組合。
安全演算法304為安全代碼元件314。安全演算法304可以將應用程式化介面提供至外部系統,以控制受信任裝置130上的安全功能。可以針對每一受信任裝置130定製安全演算法304。舉例而言,安全演算法304可以包括代碼元件314,例如源代碼、可執行代碼、函式庫模組、鏈接模組、配置檔案、初始化資料、硬體控制代碼、或其組合。
安全證書306為與受信任裝置130中之一者相關聯的安全物件。可以預程式化安全證書306,以證明裝置具有嵌入其中的特定信任根。安全證書306可以具有公開金鑰154中之一或更多者。安全證書306可以包括安全資料,例如金鑰對150、第1圖的安全金鑰106、加密密碼、或其組合。
安全證書306可以是安全儲存的資料元件。舉例而言,安全證書306可以是在使用之前必須解密的加密安全資訊。
金鑰對150可以是具有用於加密及解密資料的二或更多個單獨的安全金鑰的安全元件。舉例而言,金鑰對150可以包括私密金鑰152與公開金鑰154。利用公開金鑰154加密的安全資訊可以使用私密金鑰152解密。
可以利用各種方式實現金鑰對150。舉例而言,金鑰對150可經配置以具有不同的金鑰長度以改變安全等級。可以利用相同或不同的字符長度實現私密金鑰152與公開金鑰154。
儘管在公開金鑰加密系統的上下文中描述金鑰對150,但應理解,金鑰對150亦可用於實現其他加密範例。舉例而言,金鑰對150可以用於對稱加密、非對稱加密、標準式加密、雜湊演算法、或任何其他加密系統。
受信任裝置130可以包括實現為安全模組的安全功能。舉例而言,受信任裝置130可以包括識別模組316、認證模組320、密碼模組318、及代碼簽名模組322。
識別模組316可以校驗可程式化裝置128中之一者的識別。識別模組316可以接收可程式化裝置128中之一者的裝置識別302,並確定裝置識別302是否正確。舉例而言,裝置識別302可以與已知裝置的列表進行比較,與校驗和進行比較,使用計算演算法進行比較,或使用類似技術進行比較。
認證模組320可以認證可程式化裝置128中之一者的一或更多個屬性。認證模組320可以接收裝置識別302以及包括一或更多個安全金鑰106的安全參數,以確定所提供的安全參數是否有效。認證模組320亦可用於驗證裝置識別302。
可以利用各種方式確定安全參數的有效性。舉例而言,可以藉由使用受信任裝置130中之一者可使用的安全金鑰中之一者來成功解碼安全參數而驗證安全參數的有效性。在另一實例中,可以藉由解密安全參數中之一者並將其與儲存在受信任裝置130中之一者內的預定義值進行比較,以驗證安全參數的有效性。
密碼模組318為用於執行密碼操作的單元。密碼模組318可以提供用於執行計算密集型操作(例如加密及解密)的介面。其他安全模組可以與密碼模組318耦接,以提供安全功能。
可以利用各種方式實現密碼模組318。舉例而言,密碼模組318可以包括硬體、軟體、或其組合。密碼模組318可以提供標準化介面,以允許其他安全模組執行所需的密碼功能。
代碼簽名模組322為用於安全代碼元件314的單元。代碼簽名模組322可以加密代碼元件,解密代碼元件,以及控制代碼元件的執行。代碼簽名模組322可以用於確保可以藉由校驗與代碼元件314相關聯的安全資訊而在受信任裝置130中之一者上執行代碼元件314中之一者。
在說明性實例中,代碼元件314中之每一者可以包括執行參數,以指示代碼元件314被授權執行的受信任裝置130的型號。代碼簽名模組322可以用於驗證執行參數,將參數與受信任裝置130中之一者中的型號資訊進行比較,以及僅當二個值匹配時才允許執行代碼元件314。此舉可以用於將代碼元件314的操作限制於特定的高端電話或其他特定裝置。
受信任裝置130的優點中之一者為受信任裝置130可以在內部識別及認證安全資訊,以增加安全等級。受信任裝置130可以使用儲存於安全儲存單元326中的安全金鑰106以驗證安全資訊。
當受信任裝置130是安全的時候,受信任裝置130可以提供信任度量。受信任裝置130可以具有各種配置。舉例而言,受信任裝置130可以具有系統識別、認證機構、加密及解密功能、保護可執行檔的代碼簽名、受信任儲存、及受信任執行環境。
系統識別可以包括識別或描述硬體與軟體部件的元件。受信任裝置130可以具有安全地認證其身份與其他屬性的能力。受信任裝置必須能夠安全地加密及解密資訊。受信任裝置130必須能夠認證受信任代碼。受信任的裝置必須具有安全的儲存及執行能力。
安全程式化系統100必須能夠實現信任根的系統。信任根(RoT)為受信任的計算環境中始終受到系統信任的一組功能。舉例而言,信任根可以作為控制受信任計算平台密碼處理的單獨的安全計算引擎。可替代地,裝置可以實現信任根,以作為受固有信任的硬體與軟體部件。他們被設計成安全的,可以在硬體中實現或藉由硬體保護。他們可以用於執行安全關鍵功能,例如測量或校驗軟體,保護密碼金鑰,以及執行裝置認證。
信任根可以提供各種安全功能,包括:即時加密、偵測及報告篡改安全資料、偵測主動篡改嘗試、數位版權管理、及其他安全功能。
由於來自裝置的物理存取的較高風險,所以在移動硬體空間中實施安全操作是困難的。這樣的安全裝置要求硬體與受保護的資料及軟體緊密合作,以確保安全操作。
現在參照第4圖,其中圖示資料裝置132中之一者的實例。資料裝置132為具有安全儲存單元326的部件。資料裝置132為被動式部件,能夠將安全資料儲存在安全儲存單元326中,並在藉由第1圖的受信任裝置130中之一者存取時提供對儲存資料的存取。
可以藉由第1圖的安全程式化系統100提供資料裝置132,以包括安全資訊。舉例而言,資料裝置132可以包括裝置識別302、安全演算法304、第3圖的安全證書306、及金鑰對150,金鑰對150中之每一者具有私密金鑰152與公開金鑰154。在這種情況下,可以從資料裝置132內部存取安全儲存單元326內的資料。
安全儲存單元326可以作為單次寫入資料區域。可以將資訊程式化到安全儲存單元326中,隨後可以處理安全儲存單元326,以從資料裝置132外部消除對安全儲存單元326內的資料的存取。
在說明性實例中,資料裝置132中之一者可以是快閃記憶體裝置。在快閃記憶體裝置內,快閃記憶體可以劃分成不同區塊。一些區塊可以用於提供一般的記憶體空間。一些其他區塊可以配置成私密,並用於儲存無法從快閃記憶體驅動器外部存取的資訊。可以使用私密區塊,以形成安全儲存單元326。
在另一實例中,安全儲存單元326可以是由安全保險絲保護的資料裝置132中之一者上的專用記憶體區域。可以將資料寫入安全儲存單元326,隨後藉由燒斷安全保險絲而消除外部存取。
每一資料裝置132可以包括受信任證書402。受信任證書402為可以包括其他安全參數的資料結構。舉例而言,受信任證書402可以包括裝置識別302、安全演算法304、及金鑰對150。
現在參照第5圖,其中圖示裝置識別302的實例。裝置識別302為可用於唯一地識別第1圖的可程式化裝置128、第1圖的安全程式化系統100、第1圖的編程器112、或其組合中之一者的資料結構。裝置識別302可以用於描述包括資料裝置132與受信任裝置130的可程式化裝置128。
裝置識別302可以具有各種配置。舉例而言,裝置識別302可以包括進入的信任根504、序列號標記512、韌體標記506、製造標記510、產品標記508、操作標記514、原始裝備製造商標記516(OEM標記)、金鑰對150、或類似標記。
進入的信任根504為安全元件。在製造或程式化時間,進入的信任根504可以經程式化到可程式化裝置128中之一者。舉例而言,進入的信任根504可以是序列號與金鑰值。在另一實例中,進入的信任根504可以是嵌入式識別符,例如在可程式化裝置128中之一者的矽建立時刻植入的裝置識別符。
序列號標記512為可以包括可程式化裝置128中之一者的序列號的安全元件。裝置識別302可以包括序列號標記512中之一或更多者。
韌體標記506為可以描述或識別用於可程式化裝置128中之一者的韌體的安全元件。韌體標記506可以包括版本號、計算的校驗和值、部分或完整的雜湊值、文本串識別符、數字識別符、或其組合。舉例而言,可程式化裝置128中之一者可以是具有安裝在板上的韌體的電路板。韌體標記506可以識別每一單獨的韌體元件的版本號。韌體版本資訊可用於協調可程式化裝置128中的第3圖的代碼元件314之間的交互操作性。在另一實例中,韌體標記506可以包括計算的雜湊校驗和,例如MD5雜湊或指紋。雜湊校驗和可用於藉由將雜湊校驗和與根據韌體的即時版本計算的雜湊進行比較,以校驗韌體的資料完整性。任何差異都表示韌體已被修改。
製造標記510為可以描述一或更多個製造屬性的安全識別符。舉例而言,可程式化裝置128中之一者可以包括製造標記510,例如位置資訊、編程器識別、程式化單元識別、製造時間資訊、製造位置資訊、時間窗口、製造執行系統識別資訊、工廠識別、供應商識別、製造裝備資訊、或製造相關參數。
產品標記508為可以描述與可程式化裝置128一起使用的產品的安全元件。產品標記508可以包括相關的製造商、品牌資訊、產品線資訊、模型資訊、或其他產品相關參數。
操作標記514為可以描述可程式化裝置128的操作屬性的安全元件。操作標記514可以包括操作電壓、電壓模式、電流位準、功率消耗、加熱因子、關鍵操作頻率、操作順序資訊、或操作參數。
OEM標記516為可以描述可以使用可程式化裝置128的原始裝備製造商或相關合約製造商的安全元件。OEM標記516可以包括製造商識別518、許可證資訊、時間窗口、授權位置、授權工廠、產品批量大小、序列號範圍、或其他OEM相關參數。
裝置識別302為包括可程式化裝置128的安全資訊的多變量資料結構。裝置識別302的資料元件可以在裝置識別302內個別加密。裝置識別302本身可被加密。在形成裝置識別302的資料元件以及用於保護裝置識別302本身的加密程度與其他安全機構方面,裝置識別302可以指定至可程式化裝置128中之每一者。
裝置識別302的許多優點中之一者為藉由僅解密所需的元件以實現對裝置識別302內的特定資料元件的存取。藉由加密裝置識別302以及個別資料元件,可以提供更細的安全粒度。
現在參照第6圖,其中圖示安全程式化系統100的示例性方塊圖。安全程式化系統100包括幾個安全物件,例如第一安全物件602與第二安全物件604。第一安全物件602可以與第二安全物件604對接或通訊。
安全物件表示具有用於防止未經授權的攔截或重複的安全機構或協定的任何硬體或軟體物件。舉例而言,安全物件可以包括但不限於資料裝置132中之一者、受信任裝置130中之一者、電子部件、電子裝置、啟動載入器、韌體(FW)、作業系統(OS)、軟體應用程式、硬體編程器、周邊裝置、網站、機器等。
第一安全物件602可以與識別模組316、認證模組320、密碼模組318、及代碼簽名模組322對接。為了說明之目的,儘管圖示第二安全物件604僅與第一安全物件602連接,但是第二安全物件604亦可以與識別模組316、密碼模組318、認證模組320、代碼簽名模組322的任何組合連接。使用(但不限於)識別模組316、密碼模組318、認證模組320、代碼簽名模組322、安全程式化系統100的任何其他單元、模組、或功能的組合以保護第一安全物件602或第二安全物件604以防止安全漏洞。
識別模組316產生安全物件的身份,以保護安全物件,而防止對安全物件進行未經授權的存取。識別模組316提取識別令牌624(ID令牌)。ID令牌624包括在授予對安全物件的存取之前用於校驗身份的資訊。ID令牌624可以包括但不限於使用者識別、裝置的序列號、裝置識別等。
可以藉由識別模組316使用任何安全的資訊或機構以提取ID令牌624,任何安全的資訊或機構包括但不限於信任根代碼620(RoT代碼)與信任根資料622(RoT資料)。舉例而言,RoT資料622可以表示與裝置的數位出生證書相關聯的資訊。
本文中所指稱的術語信任根(RoT)是指稱受信任或受保全的計算模組中的一組功能,計算模組包括硬體部件、軟體部件、或硬體與軟體部件的組合。舉例而言,這些功能可以實施於(但不限於)啟動韌體、硬體初始化單元、交叉檢查部件/晶片等。此外,舉例而言,可以使用(但不限於)控制密碼處理器之操作的單獨計算引擎來實施此等功能。
可以使用RoT代碼620從RoT資料622提取ID令牌624。ID令牌624可以受到密碼保護,因此僅可以藉由RoT代碼620解密。ID令牌624可以是唯一的,而使得每一安全物件具有自己的識別,而因此沒有安全物件與另一安全物件共享其識別。
RoT代碼620包括用於解密可用於識別裝置的來源或解碼內容的資料的指令或命令。RoT資料622包括受保護且僅可以使用RoT代碼620解碼的資訊。
可以藉由任何安全機構提供或產生RoT代碼620與RoT資料622。舉例而言,在程式化或配置裝置期間,RoT代碼620與RoT資料622可以經程式化至裝置的安全儲存單元中。
此外,舉例而言,可以利用安全的方式從主控端伺服器或系統將RoT代碼620與RoT資料622發送至安全程式化系統100,而使得只有已經授權及驗證的安全程式化系統100才能接收RoT代碼620與RoT資料622。此外,舉例而言,主控端伺服器或系統可以包括第1圖的安全主系統104,以在安全程式化系統100能夠接收或解密來自安全主系統104的資訊之前,將第1圖的安全金鑰106發送至安全程式化系統100,以進行識別或認證。
作為實例,安全儲存單元可以包括但不限於單次可程式化記憶體或僅對經授權使用者或裝置為已知的任何其他儲存單元。作為另一實例,安全儲存單元可以包括但不限於僅對經授權的資訊或識別為可存取並拒絕沒有允許者的儲存器或記憶體。
舉例而言,在生產環境或系統中整合或操作裝置(例如安全物件)之前程式化或配置裝置時,可以將RoT代碼620與RoT資料622程式化至裝置中。此外,舉例而言,生產環境或系統可以包括但不限於可攜式裝置、電腦、伺服器、電子電路板等。
認證模組320可以用於校驗識別令牌624是否被授權存取安全物件。在識別模組316提取ID令牌624之後,認證模組320校驗ID令牌624,以識別安全物件是否為可以與授權系統通訊以發送或接收安全資訊的有效物件。舉例而言,若ID令牌624中之一者無效,則不允許安全物件與第1圖的編程器112交換資訊。
在認證模組320校驗安全物件的ID令牌624為有效之後,認證模組320可以產生ID令牌624中之一者、金鑰令牌628、及密碼令牌626的組合。金鑰令牌628包括用於認證ID令牌624的資訊。密碼令牌626包括用於將用於資訊安全性或資料機密性的資訊密碼編碼或解碼的資訊。
在一或更多個實施例中,可以使用RoT代碼620從RoT資料622產生ID令牌624、金鑰令牌628、或密碼令牌626。在一或更多個實施例中,ID令牌624、金鑰令牌628、或密碼令牌626可以受密碼保護,而因此僅可以由RoT代碼620解密。
密碼模組318可以針對安全物件之間或安全物件與外部系統之間交換的安全資訊提供資料加密及解密。可以將安全資訊與安全物件交換的外部系統可以包括但不限於編程器112、安全主系統104、主控端系統等。
在一或更多個實施例中,在識別模組316提取ID令牌624或認證模組320驗證ID令牌624之後,密碼模組318可以產生ID令牌624、金鑰令牌628、及密碼令牌626。可以由密碼模組318使用RoT代碼620產生密碼令牌626,以解碼來自RoT資料622的資訊。
在一或更多個實施例中,密碼模組318可以使用密碼令牌626產生ID令牌624或金鑰令牌628,以進一步解碼來自RoT資料622的其他資訊。在實施例中,使用具有改善資訊安全性或資料機密性的多級保護的密碼模組318,大大簡化資料漏洞的消除。
在一或更多個實施例中,密碼模組318可以包括密碼方法,包括但不限於對稱金鑰加密、公開金鑰加密等。舉例而言,密碼模組318可以包括密碼方法,其中發送者與接收者可以共享可以使用預定演算法計算的相同金鑰或不同金鑰。
作為實例,密碼方法可以包括但不限於分組密碼方法、密碼雜湊函數等。作為另一實例,密碼方法可以包括但不限於資料加密標準(DES)、進階加密標準(AES)、三重DES、MD4訊息摘要演算法、MD5演算法、安全雜湊演算法1及2等。
作為一實例,密碼方法可以包括但不限於公開金鑰或非對稱金鑰密碼技術,其中可以使用兩個不同但數學上相關的金鑰(公開金鑰及私密金鑰)。作為另一實例,可建構公開金鑰系統,而使得一個金鑰(例如私密金鑰)的計算可在計算上從另一金鑰(例如公開金鑰)是不可行的,即使他們相關。可以秘密地將公開及私密金鑰兩者產生為互相關聯的對偶。
舉例而言,在公開金鑰密碼系統中,公開金鑰可以自由分配,而其配對的私密金鑰可以保持為秘密。在公開金鑰加密系統中,公開金鑰可以用於加密,而私密或秘密金鑰可以用於解密。
代碼簽名模組322校驗在系統或裝置之間交換的代碼資訊的完整性。代碼簽名模組322可以校驗所交換的資訊的內容是否被改變或被篡改。
舉例而言,代碼簽名模組322可以包括對可執行檔或腳本進行數位簽名的處理,以確認軟體作者或產生器,並驗證可執行代碼或腳本未被改變或損壞。此外,舉例而言,由於藉由(但不限於)密碼雜湊、校驗和等簽名,代碼可以校驗為已改變或損壞。
在一或更多個實施例中,在識別模組316提取ID令牌624或認證模組320驗證ID令牌624之後,代碼簽名模組322可以產生ID令牌624、金鑰令牌628、及密碼令牌626。可以由代碼簽名模組322使用RoT代碼620產生密碼令牌626,以解碼來自RoT資料622的資訊。
在一或更多個實施例中,代碼簽名模組322可以使用密碼令牌626產生ID令牌624或金鑰令牌628,以進一步解碼來自RoT資料622的其他資訊。在實施例中,使用具有改善資訊安全性或資料機密性的多級保護的代碼簽名模組322,大大簡化資料漏洞的消除。
安全物件(例如第一安全物件602或第二安全物件604)可以與安全執行引擎606對接。安全執行引擎606包括管理或控制安全物件的操作的機構。安全執行引擎606包括安全執行單元324與安全儲存單元326。
安全執行單元324為在受保護環境中執行代碼或電腦指令的區塊。針對建立僅有受信任的經認證應用代碼可以操作的大規模及大範圍的安全環境的問題,安全執行單元324操作的環境可以建立靈活且可擴展的解決方案。安全執行單元324可以讓編程器112與安全物件能夠在安全環境中一起工作。
當在終端使用者生產環境中操作安全物件之前預先程式化、配置、測試、或證明安全物件時,安全執行單元324可以執行由安全儲存單元326儲存的受信任代碼。可以對由安全執行單元324執行的受信任代碼進行簽名及認證。
安全儲存單元326儲存並提供用於執行的安全執行單元324的受信任代碼。在實施例中,使用安全執行引擎606以在安全儲存單元326中儲存程式代碼,並且使用安全執行單元324執行程式代碼,而大大簡化安全環境,而藉此提供針對資料漏洞的附加級別的保護。
舉例而言,在預先程式化、配置、測試、或證明安全物件時,受信任代碼可以預先儲存在安全物件的安全儲存或記憶體區域中。此外,舉例而言,可以藉由密碼模組318使用從編程器112發送至安全物件的資訊以解碼受信任代碼。
現在參照第7圖,其中圖示安全程式化系統100的第二示例性方塊圖。示例圖顯示安全物件的程式化期間的安全資訊的資料流。
舉例而言,識別令牌624(描繪為ID1、ID2、及ID3)可以包括安全物件的序列號標記512。序列號標記512為分配給每一安全物件的唯一資訊。安全物件的序列號標記512可以不同於另一安全物件的序列號標記512中之另一者,而使得可能不存在共享相同序列號標記的二個安全物件。序列號標記512可以由第1圖的編程器112產生。每一序列號標記可以由編程器112分配給每一安全物件。
第5圖的進入的信任根504(In_RoT)可以包括但不限於第2圖的編程器識別216。In_RoT 706(標示為In_RoT 706)包括在程式化安全物件之前已預先程式化或配置的資訊。在一或更多個實施例中,預先程式化的資訊可以經程式化為用於程式化安全物件的轉接器、編程器112、及安全物件的組合。舉例而言,In_RoT 706可以是在矽製造時刻植入安全物件中的序列號。
In_RoT 706可以與ID令牌624分開或不同。In_RoT 706可以包括預先程式化的資訊,其不同於要被程式化到安全物件中的資訊。
舉例而言,In_RoT 706可以包括但不限於在製造部件的時間嵌入或程式化到部件中的序列號或唯一金鑰。此外,舉例而言,製造部件的時間可以是(但不限於)在程式化部件之前在矽等級或系統級製造部件的時間。
在一或更多個實施例中,In_RoT 706可以藉由製造執行系統702(MES)攝取或輸入。In_RoT 706可以與編程器產生的唯一RoT(例如ID令牌624)組合,以產生唯一的系統級RoT。In_RoT 706可以包括來自已在部件的製造期間預先程式化到部件中的數位出生證明的資訊。
In_RoT 706可以包括標示為P1與P2的任何數量的製造標記510。製造標記510包括在部件被製造時與部件相關聯的資訊。舉例而言,製造標記510可以包括但不限於部件ID、編程器ID、部件的製造位置、部件的製造日期及時間等。
製造執行系統702為用於製造產品品質控制目的之電腦化系統。MES 702可以追蹤及記錄原材料到成品的轉換。MES 702可以提供關於如何最佳化工廠的當前條件以改善生產輸出的資訊。MES 702可以即時工作,而能夠控制生產處理的多個元件(例如輸入、人員、機器、支援服務等)。
在一或更多個實施例中,MES 702可以一起接收In_RoT 706與ID令牌624,以程式化可程式化裝置128。In_RoT 706與ID令牌624可用於產生安全物件的裝置識別302。裝置識別302包括唯一且僅與一個裝置或安全物件相關聯的資訊。
裝置識別302可以包括可以被程式化到系統(例如第一板712或第二板714)中的唯一資訊。第一板712或第二板714為具有在系統中彼此組裝及連接的幾個安全物件的板等級系統。
第一板712可以包括用於密碼的系統公開金鑰154。可以在用於公開金鑰加密系統的第一板712中實現系統公開金鑰154。系統公開金鑰154可以是第1圖的金鑰對150中之一者的一部分。安全資訊可以藉由安全物件使用金鑰對150中之一者的第1圖的公開金鑰154而加密,並藉由第一板712使用私有金鑰152而解密。
第一板712可以使用系統公開金鑰154以加密安全資訊,並發送至安全物件,而安全物件可以使用私密金鑰152來解密被加密的資訊。儘管針對第一板712描述系統公開金鑰154,但是應理解,可以在第二板714中實現系統公開金鑰。
系統100僅繪示配置為提供本文中所述之功能之部件的許多可能佈置中之一者。其他佈置可包括更少、額外、或不同的部件,且在部件之間的工作劃分可能取決於佈置而變化。舉例而言,在一些實施例中,可以忽略一些安全模組,加上僅由被忽略的部件所依賴的任何其他部件。作為另一實例,在實施例中,系統100可以進一步包括多個序列號或其他系統識別符。
現在參照第8圖,其中圖示受信任裝置130中之一個設置者的實例。設置處理可以將安全資料程式化到可程式化裝置128中,並將受信任裝置130與受信任裝置130中的另一者相關聯。此外,設置處理可以將受信任裝置130與安全程式化系統100相關聯。
安全程式化系統100可以使用安全程式化系統100的公開金鑰154,以編碼一或更多個序列號標記512,並對可程式化裝置128中的加密值進行程式化。舉例而言,可程式化裝置128可以包括現場可程式化邏輯閘陣列804、可程式化中央處理單元806(CPU)、嵌入式多媒體記憶體控制器808(eMMC)、微CPU 810、或類似裝置。
因此,每一可程式化裝置128可以具有序列號標記512中之一者,序列號標記512中之一者僅能使用與安全程式化系統100相關聯的第1圖的私密金鑰152解密。在說明性實例中,序列號標記512可以表示安全程式化系統100的系統識別814。此舉可以提供安全程式化系統100與可程式化裝置128之間的安全鏈接。安全鏈接指示安全程式化系統100與可程式化裝置128之間的關係。
儘管使用安全程式化系統100的私密金鑰152描述設置處理,但是應理解,可以使用不同系統部件的序列號標記512中之一者。舉例而言,可以使用第1圖的編程器112的序列號標記512以設置可程式化裝置128。
在設置之後,接著可程式化裝置128可以安裝在亦可利用安全程式化系統100的公開金鑰154設置的受信任裝置130中之一者上(例如電路板)。隨後,電路板可以藉由解密編碼值812而識別可程式化裝置128,並比較結果,以確認序列號標記512匹配。
在另一實例中,安全程式化系統100可以接收受信任裝置130中之一者(例如電路板)的序列號標記512,並利用編碼值812設置可程式化裝置128,編碼值812是藉由加密電路板的序列號標記512並將資訊程式化到可程式化裝置128中而產生。在安裝之後,電路板可以解密編碼值812,並將序列號標記512與電路板的序列號進行比較。
可以利用裝置識別302設置受信任裝置130。受信任裝置中之一者(例如電路板)的裝置識別302可以包括進入的信任根504、序列號標記512、韌體標記506、製造標記510、或類似的識別符。舉例而言,序列號標記512可以包括與不同類型的可程式化裝置128相關聯的識別符ID1、ID2、及ID3。與適當的識別符相關聯的每一可程式化裝置128可以藉由電路板識別及認證,其中已利用適當部件的公開金鑰154設置電路板。
儘管設置處理是描述為使用序列號標記512以識別相關且經授權的系統,但是應理解,亦可以使用裝置識別302內的其他元件。舉例而言,可程式化裝置128可以使用裝置識別302的另一部分(例如製造標記510或韌體標記506)而建立受信任裝置130(例如電路板)與可程式化裝置128之間的安全鏈接。
使用與安全程式化系統100的元件中之一者相關聯的公開金鑰154以編碼裝置識別302的一部分的優點為提供認證機構以限制可程式化裝置128與受信任裝置130的互相操作性。藉由利用藉由元件中之一者的公開金鑰154編碼的值設置可程式化裝置128,受信任裝置130可以校驗可程式化裝置128被授權使用私密金鑰152而與受信任裝置130一起操作。
現在參照第9圖,其中圖示受管理及安全處理系統902(MSP系統)的實例。MSP系統902可以安全地部署及設置可程式化裝置128。
MSP系統902可以利用密碼資訊個別配置資料裝置與主動且受信任的裝置,以提供安全的程式化及操作環境。MSP系統902可以允許安全的原始裝備製造商(OEM)站點上的可程式化裝置128的安全程式化。
MSP系統902可以是第1圖的安全程式化系統100的實施例中之一者。可以使用安全程式化系統100的元件以實現MSP系統902的元件。
MSP系統902可以支援在多個位置或前台部分分佈的系統的操作。MSP系統902可以包括OEM開發前台940與工廠前台942。OEM開發前台940可以用於準備可程式化裝置128的實際程式化與設置。OEM開發前台940可以用於準備多個工廠的程式化資訊。OEM開發前台940為OEM可以準備具有用於配置一組安全裝置(例如可程式化裝置128、安全元件、第1圖的受信任裝置130、或其他類似裝置)的資訊的程式化專案944的位置。
儘管不同類型的安全裝置之間存在差異,但是這些術語通常被理解為可互換,而在本質上是通用的。為了方便及簡潔,在本敘述中可以互換地使用安全裝置、安全元件、可程式化裝置128、受信任裝置130、及其他類似元件。
OEM開發前台940可以採用韌體圖像914,以用於設置可程式化裝置128並準備程式化專案944。隨後,程式化專案944可以被安全地傳輸到工廠前台942,並用於控制可程式化裝置128的程式化。
OEM發展前台940可以具有一組安全製造系統與資料儲存,以促進建立程式化專案944。舉例而言,OEM開發前台940可以包括OEM證書金鑰材料904、OEM安全啟動載入器906、OEM韌體開發系統908、OEM掌握工具910、韌體更新服務912、及OEM管理系統924。
工廠前台942為用於程式化及設置可程式化裝置128的位置。工廠前台942可以是程式化中心、製造設施、合約製造商站點、或類似位置。在實施例中,工廠前台942為定位及操作編程器112與可程式化裝置128的位置。
MSP系統902可以包括安全啟動載入器918。安全啟動載入器918為可以在啟動時在可程式化裝置128上執行以確保符合安全協定的安全程式化代碼。OEM安全啟動載入器906建立裝置身份,建立接受加密資料串流並在裝置上解密的能力,以及初始化裝置上的安全運行時間環境,而使得韌體可以安全地在裝置上運行。
MSP系統902亦可以包括安全韌體920。安全韌體920為嵌入至可程式化裝置128的非揮發性記憶體中的軟體代碼與資料。安全韌體920可以利用加密狀態傳輸,並在編程器112處進行解密。
MSP系統902可以包括韌體解密金鑰922。韌體解密金鑰922可以用於解密已使用與韌體解密金鑰922相關的加密金鑰加密的安全韌體920。舉例而言,韌體解密金鑰與加密金鑰可以是用於加密的對稱金鑰對的一部分。
MSP系統902可以包括來自OEM的韌體圖像914:韌體圖像914為將由OEM安全啟動載入器906加載並在製造期間及製造之後在可程式化裝置128上運行的嵌入式應用代碼。
MSP系統902可以包括OEM證書金鑰材料904:OEM證書金鑰材料904可以包括資訊,例如矽供應商裝置認證金鑰955、簽署OEM裝置證書946所需的OEM裝置證書簽名金鑰947、及OEM裝置證書模板950。
OEM為用於形成OEM證書951的一組資訊。包括OEM證書951的基本必需資訊。OEM證書951為定義OEM使用者968的一組資訊。OEM證書951可以包括OEM識別符966、OEM公開金鑰154、及OEM私密金鑰152。OEM識別符966為唯一識別OEM的值。
矽供應商為可以製造或提供可程式化裝置128的實體。可以利用矽供應商識別符956識別矽供應商。矽供應商識別符956為與矽供應商鏈接的值。舉例而言,矽供應商識別符956可以鏈接到實際製造形成可程式化裝置128的積體電路或部件的公司。矽供應商亦可以是在將可程式化裝置128交給系統進行程式化之前進行預配置的公司。
MSP系統902可以包括OEM韌體開發系統908。OEM韌體開發系統908支援開發用於部署到可程式化裝置128的韌體圖像914。
MSP系統902可以包括OEM掌握工具910(OMT):OEM掌握工具910為可以將OEM安全啟動載入器906綁定到韌體圖像914的安全應用程式或系統。OEM掌握工具910可以簽署及加密韌體圖像914,並準備用於現場更新的韌體圖像914。現場升級可以允許以安全的方式遠端地改變部署在可程式化裝置128中的韌體。OEM掌握工具910可以藉由使用韌體解密金鑰922加密韌體圖像914,以產生安全韌體920。OEM掌握工具910可以包括HSM或TSM,並且可以利用硬體或軟體實現。
MSP系統902可以包括OEM管理系統924。OEM管理系統924為用於定義OEM使用者的程式化專案944的系統。程式化專案944為定義可程式化裝置128的安全生產運行的資訊封包。
OEM管理系統924可以將OEM安全啟動載入器906、韌體圖像914、OEM證書951、OEM證書金鑰材料904、及生產計數948綁定到程式化專案944。一旦程式化專案944最初被建立,則可以更新程式化專案944,以包括OEM安全啟動載入器906的參照、代碼、及資料,韌體圖像914、OEM證書金鑰材料904、OEM證書951、及生產計數948。綁定處理意味著資訊為程式化專案944的參數的一部分。OEM管理系統924亦可以將程式化專案944綁定到工廠前台942處的特定安全程式化系統。程式化專案944可以包括程式化系統或子系統的第8圖的系統識別814(例如安全程式化系統100、程式化單元110、編程器112、或其組合)。隨後,程式化專案944僅能在具有系統識別814的系統上執行。
生產計數948為描述生產運行中所要生產的安全裝置數量的指標。生產計數948可以與安全裝置開始或完成生產時更新的增加數量進行比較。接收程式化專案944的編程器112可以使用生產計數948以限制經程式化及設置的裝置的數量,以防止可程式化裝置128的未經授權的生產。在生產期間,當前計數978可以指示目前已經生產的產品數量。系統可以藉由將當前計數978與生產計數948進行比較,並在當前計數978等於生產計數948時停止,而停止對裝置進行程式化。
可以利用各種方式配置OEM管理系統924。舉例而言,OEM管理系統924可以利用共享配置實現,並且產生部署到分別具有自己的工廠的多個OEM的程式化專案944,例如工廠前台942。可以使用第1圖的安全主儲存系統102、第1圖的安全主系統104、第1圖的安全程式化系統100、或其系統及子系統的組合以實現OEM管理系統924。
MSP系統902可以包括工廠管理系統930。工廠管理系統930為用於在工廠前台942處管理安全程式化部件的系統。工廠管理系統930可以從OEM管理系統944接收程式化專案924,並將製造資訊解密並分發給位於工廠前台942處的其他安全及程式化系統。
可以利用各種方式實現工廠管理系統930。舉例而言,可以利用第7圖的製造執行系統702、第2圖的程式化處理器202、主控端電腦系統、或另一類似的處理系統而實現工廠管理系統930。
MSP系統902可以包括工廠安全系統932。工廠安全系統為產生經程式化到可程式化裝置128中的金鑰與證書的基於HSM的安全設備。工廠安全系統932可以藉由將一個OEM的安全資訊與另一OEM的安全資訊隔離,以支援多租戶OEM體系結構。此舉允許工廠安全系統932在不同的編程器中針對不同的OEM程式化及設置不同組的可程式化裝置128。
可以利用各種方式配置工廠安全系統932。舉例而言,工廠安全系統932可以使用第1圖的安全主系統104、第1圖的安全控制器114、第2圖的程式化處理器202、第1圖的第一安全模組116、第1圖中的第二安全模組118、第1圖的第n個安全模組120、或其組合來實現。可以使用MSP系統902中的一或更多個安全部件,以集中或分佈的方式實現工廠安全系統932。
工廠安全系統932可以提供高安全性加密服務,包括金鑰對產生、加密、解密、證書管理、安全儲存、安全執行、及其他類似的安全處理功能。工廠安全系統932亦可以支援安全開發、安全掌握、資料與代碼的安全部署、安全設置、安全程式化、及安全更新。
工廠安全系統932可以依據裝置證書、部署管理、及版本控制、數位生命週期管理、及應用管理來執行裝置認證。工廠安全系統932可以提供對稱加密、雜湊功能、資料封裝、數位簽名、金鑰協商及傳輸、金鑰管理、及使用者存取控制。
工廠安全系統932可以包括用於認證工廠安全系統932的身份的工廠安全系統證書933。工廠安全系統證書933可用於簽署從OEM開發前台940與OEM管理系統924傳輸到工廠管理系統930與工廠安全系統932的資訊。工廠安全系統932可以包括工廠安全系統資料加密金鑰980與工廠安全系統資料認證金鑰982。金鑰可用於安全加密、解密、簽署、及認證安全資訊。
MSP系統902可以包括在工廠前台942處的主控端系統936。主控端系統936為用於控制程式化專案944的執行及管理編程器112與工廠安全系統932之間的通訊的電腦系統。
可以利用各種方式實現主控端系統936。舉例而言,可以使用安全控制器114、程式化處理器202、或耦接至安全處理系統100的另一類似的計算系統以實現主控端系統936。主控端系統936可以耦接至工廠安全系統932、編程器112、工廠管理系統930、或其他類似的系統。
MSP系統902可以包括用於程式化可程式化裝置128的編程器112。編程器112可以接收一組空白或部分程式化的裝置,並利用來自程式化專案944的資訊安全地程式化可程式化裝置128。
編程器112可以建立用於程式化可程式化裝置128的串列資料列表964。串列資料列表964為經程式化到可程式化裝置128的裝置特定資料的列表。此舉可以包括韌體圖像914、OEM裝置證書946、代碼、資料、或其他資訊。串列資料列表964可以依據個別裝置資訊(例如序列號、裝置識別、資料證書、或類似的裝置特定參數)而變化。
MSP系統902可以包括用於保護可程式化裝置128的裝置證書。裝置證書可以包括矽供應商裝置證書926、原始裝備製造商裝置證書946(OEM裝置證書946)、或其他裝置證書。裝置證書可以包括關於包括公開金鑰的可程式化裝置128、第3圖的裝置識別302、矽供應商識別符956、OEM識別符966、或其他類似資訊的資訊。
矽供應商裝置證書926為安全地定義安全元件中之一者(例如第1圖的可程式化裝置128或受信任裝置130)的身份的一組資料元件。矽供應商裝置證書926可以包括第3圖的裝置識別302、矽供應商公開金鑰154、及/或其他安全資訊。可以使用矽供應商金鑰對150的矽供應商公開金鑰154來解密由矽供應商私密金鑰152加密的資訊。
在將安全元件傳輸到其他製造商或使用者之前,矽供應商裝置證書926可以藉由矽供應商或製造商而程式化到安全元件的安全儲存單元中。矽供應商裝置證書926可以儲存在單次寫入安全儲存單元中,其中可以將附加資訊增加至矽供應商裝置證書926,但是不能擦除或修改現有資訊。當不需要進一步的改變時,可以鎖定安全儲存單元的部分。安全儲存單元可以包括一或更多個資料元件,例如多個裝置證書與其他相關的安全資料。
可以利用各種方式實現矽供應商裝置證書926。舉例而言,矽供應商裝置證書926可以使用第5圖的製造標記510、第3圖的安全證書306、第3圖的安全演算法304、第5圖的產品標記508、第5圖的操作標記514、第5圖的進入的信任根504、第4圖的受信任證書402、或另一類似的資料元件來實現。
MSP系統902可以包括用於即時提供裝置等級程式化統計的裝置資料追蹤系統934。裝置資料追蹤系統934可以追蹤本地工廠中的安全程式化系統100或遠端設置的裝置的裝置等級資訊。裝置資料追蹤系統934可以追蹤由MSP系統902中的編程器112配置的每一可程式化裝置128的裝置等級資訊。裝置資料追蹤系統934可以追蹤資料,例如矽供應商裝置證書926、第8圖的系統識別814、裝置識別302、或已程式化到裝置中的其他資料元件。裝置資料追蹤系統934可以追蹤裝置狀態,包括有效狀態、配置狀態、重複狀態、或其他裝置等級狀態。
MSP系統902可以包括裝置設置服務938。裝置設置服務938為用於在網際網路上設置可程式化裝置128的系統。裝置設置服務938可以是硬體與軟體的組合,而可以安全地將設置資訊遞送到現場的可程式化裝置128。裝置設置服務938可以分發安全資訊、資料更新、軟體更新、及用於裝置的持續安全操作所需的其他安全與操作資訊。
MSP系統902可以包括韌體更新服務912。韌體更新服務912為用於在網際網路上更新可程式化裝置128的韌體的系統(例如OEM雲928)。韌體更新服務912可以將韌體更新916安全地遞送到具有一或更多個可程式化裝置128的系統,並利用新的韌體更新可程式化裝置128。韌體更新916為用於更新可程式化裝置128中的韌體的軟體與資料封包。韌體更新服務912可以是具有可以部署韌體更新916與相關聯安全資訊的安全軟體與硬體的系統的一部分,以確保可程式化裝置128安全地更新。
可以利用各種方式操作MSP系統902。在說明性實例中,可以依據安全元件使用案例970操作MSP系統902。安全元件使用案例970可以描述使用MSP系統902安全程式化可程式化裝置128的一種方式,其中已利用韌體配置可程式化裝置128,且可程式化裝置128具有預先安裝在矽供應商設施處的矽供應商裝置證書926。
安全元件使用案例970可以包括二個主要步驟。在步驟1中,從可程式化裝置128中之一者提取矽供應商裝置證書926,並且認證裝置。在步驟2中,依據受認證裝置的矽供應商裝置證書926建立OEM裝置證書946。隨後,將OEM裝置證書946程式化到裝置中。
在此使用案例中,基於HSM的安全系統(例如工廠安全系統932)可以整合成安全程式化系統的一部分,例如用於程式化具有整合安全區域的安全微控制器單元的系統。整合安全區域可以是可以寫入一次而無法再改變的記憶體的受保護區域。此舉允許儲存無法修改的安全資料,如金鑰、代碼、或證書。
系統可以包括OEM管理系統924、工廠管理系統930、作業建立及作業運作系統、及裝置資料追蹤系統934,以管理用於可程式化裝置128的狀態資料。可以利用各種方式實現各種系統。舉例而言,OEM管理系統924、工廠管理系統930、作業建立及作業運作系統、及裝置資料追蹤系統934都可以作為主控端系統936上的軟體執行。在另一實例中,系統可以分別在專用硬體上運行。
在此安全模型中,工廠前台942可以作為OEM使用者的代理,並且可以執行OEM管理系統924的功能。此舉有效地暗示OEM使用者968藉由提供OEM證書金鑰材料904與OEM證書951以及設定可程式化裝置128的生產計數948以暗示地信任工廠前台942。由於此動作是在第1圖的程式化單元110的主控端系統936上完成,所以可以藉由位於工廠前台942內的物理上安全的位置的經授權人員完成作業設定、OEM證書金鑰材料904的產生、及安全程式化系統100的配置。
一些實施方案可以集中在將OEM裝置證書946設置到配置為安全元件的可程式化裝置128上。然而,應理解,OEM系統的OEM證書金鑰材料904的安全流程與生產計數948的安全更新是藉由物理安全構件與安全資料通道保護。
由於資料被加密並綁定至工廠安全系統932中的特定一者,所以來自OEM開發前台940的OEM資料從OEM管理系統924一直到工廠安全系統932都是安全的並經過加密。舉例而言,可以使用工廠安全系統證書933加密程式化專案944,工廠安全系統證書933僅能由工廠安全系統932中的所預期的一者解密。
在另一實例中,因為在傳輸期間將材料加密,包括OEM裝置證書簽名金鑰947的OEM證書金鑰材料904的傳輸是安全完成的。OEM裝置證書簽名金鑰947可以包括私密金鑰部件。
在說明性實例中,由於可程式化裝置128的私密金鑰152從未離開裝置,所以OEM裝置證書簽名金鑰947導入到OEM管理系統924中是安全完成的。因為將資料加密,所以此舉可以減少對物理安全性的需求。
在另一說明性實例中,可以依據微控制器單元使用案例972操作MSP系統902,其中MSP系統902是用於設置第1圖的可程式化裝置128與受信任裝置130,例如安全微控制器單元。安全微控制器單元可以包括安全處理與安全儲存設施。
MCU使用案例972可以包括二個主要步驟。在第一步驟中,OEM安全啟動載入器906可以經程式化到可程式化裝置128中。之後,可以使用OEM安全啟動載入器906啟動可程式化裝置128,以建立用於可程式化裝置128的裝置認證金鑰對150與裝置解密金鑰對150。隨後,可以使用二個金鑰對的部分構建、程式化、及簽署OEM裝置證書946。
在第二步驟中,MSP系統902可以讀取矽供應商裝置證書926,以及認證可程式化裝置128。可以使用來自矽供應商裝置證書926的裝置解密金鑰以加密韌體解密金鑰922。可以在可程式化裝置128上程式化經加密韌體與經加密的韌體解密金鑰922。
OEM安全啟動載入器906、OEM韌體開發系統908、OEM掌握工具910、OEM管理系統924、及OEM證書金鑰材料904的產生都可以在OEM開發前台940進行。整個專案定義與生產計數948的確定是由OEM使用者968控制。
可以在OEM開發前台940的電腦上主控OEM軟體執行環境。所有的OEM信任根都可以從OEM開發前台940安全地運送到工廠前台942。可以在主控端系統936上的工廠前台942處執行工廠管理系統930、工廠安全系統932、及裝置資料追蹤系統934。
在實施例中,由於第一步驟需要可程式化裝置128的安全設置,所以必須在安全設施中執行,例如OEM的受信任工廠、矽供應商工廠、OEM工廠、或程式化中心。隨後,可以在具有較低安全等級的設施(如未受信任的工廠、合約製造商、第三方合作夥伴、或類似類型的設施)處執行步驟2。
在這個安全模型中,OEM信任根與程式化專案944是在OEM開發前台940處定義,並分發至工廠前台942。重要的是,OEM使用者應該管理自己的信任根,以改善OEM產品的供應鏈安全性。
在說明性實例中,因為可程式化裝置128的第1圖的金鑰對150在工廠安全系統932中產生,並且可能潛在地在工廠前台942處暴露,所以MCU使用案例972需要物理安全性。可程式化裝置128與編程器112之間的物理連接為明文,所以能夠物理存取工廠前台942的系統的人可以窺探及竊取重要的資訊。因此,應實施物理安全性,以保護安全資訊。
在MCU使用案例972的另一實例中,可程式化裝置128可以是空白的,並未利用矽供應商裝置證書926預程式化。在此情況下,OEM裝置證書946可以用於認證。此外,可以使用來自OEM裝置證書946的公開解密金鑰(例如OEM公開金鑰154)來加密韌體解密金鑰922。
現在參照第10圖,其中圖示安全元件使用案例970的詳細實例。安全元件使用案例970描述用於安全地配置安全元件(例如第1圖的可程式化裝置128)的處理。第9圖的MSP系統902可以根據安全元件使用案例970安全地部署及設置第1圖的每一可程式化裝置128。
在安全元件使用案例970中,可以在不同前台處實例化、傳輸、及管理安全元件。前台可以包括不同類型的位置,例如矽製造商1004、OEM位置1006、程式化中心1008、編程器位置1010、及裝置位置1012。每一前台都表示可以發生一些類型的安全程式化相關動作的位置。此外,使用案例可以包括嵌入於第1圖的編程器112與裝置位置1012的資料與動作。
安全元件使用案例970可以包括三個不同的事件序列,每一事件序列用於執行不同的安全動作。在第一序列1014中,第9圖的MSP系統902可以使用第9圖的OEM管理系統924初始化第9圖的工廠安全系統932。此舉可以在第9圖的OEM開發前台940、第9圖的工廠前台942、或另一類似的位置進行。
MSP系統902亦可以在工廠前台942、程式化中心1008、或另一類似位置處初始化第9圖的工廠管理系統930。工廠管理系統930可以利用當前計數978、第9圖的矽供應商公開金鑰954、第9圖的OEM私密金鑰952、及第9圖的OEM裝置證書模板950進行更新。工廠管理系統930可以將資訊轉發至工廠安全系統932,以用於安全處理。
在第二序列1016中,利用第9圖的矽供應商裝置證書926在矽供應商(SV)工廠處對安全元件進行程式化。
在第三序列1018中,使用在第二序列1016中預先安裝的矽供應商裝置證書926,MSP系統902可以對每個裝置(例如第1圖的可程式化裝置128或受信任裝置130)進行密碼認證。隨後,可以構建第9圖的OEM裝置證書946,並將其程式化到可程式化裝置128中。
可以藉由重新使用來自矽供應商裝置證書926的裝置身份金鑰對的公開金鑰部分(例如矽供應商公開金鑰954)構建OEM裝置證書946。因此,矽供應商公開金鑰954可以用於計算OEM裝置證書946,而因此兩個證書都使用相同的證書進行證明。可替代地,可以使用不同的金鑰對來表示與矽供應商金鑰對不同的OEM身份。此舉可以藉由工廠安全系統932或安全元件本身執行。
在第二序列1016中,在矽製造商1004處執行步驟1020。矽製造商1004可以是建立原始安全元件的公司。針對每一安全元件(例如可程式化裝置128或受信任裝置130)建立第9圖的矽供應商裝置證書926。矽供應商裝置證書926可以包括關於每一安全元件的唯一資訊,例如第3圖的裝置識別302、序列號、產品類型、製造日期、或類似裝置資訊。
在矽製造商1004處亦執行步驟1022。利用具有第9圖的矽供應商識別符956的矽製造商的第9圖的矽供應商私密金鑰958簽署矽供應商裝置證書926中之每一者。簽署矽供應商裝置證書926以加密證書的資料。僅能利用矽供應商公開金鑰954來解密資料。
在矽製造商1004處亦執行步驟1024。每一可程式化裝置128都利用矽供應商裝置證書926進行程式化,而矽供應商裝置證書926是利用矽供應商私密金鑰958進行簽署。由矽供應商私密金鑰958簽署的矽供應商裝置證書926表明此裝置是由矽供應商認可或提供。利用矽供應商公開金鑰954成功地解密矽供應商裝置證書926可以認證可程式化裝置128來自所簽署的矽供應商。
第二序列1016可以利用已經利用矽供應商私密金鑰958進一步簽署的矽供應商裝置證書926的唯一且個別的實例來唯一地標示每一可程式化裝置128。此舉提供可以使用矽供應商公開金鑰954來解碼矽供應商裝置證書926,以校驗矽供應商裝置證書926是由具有矽供應商識別符956的矽供應商所提供。此舉允許工廠或其他裝置使用者確定可程式化裝置128的認證。
第一序列1014是在矽製造商1004、OEM位置1006、及程式化中心1008處執行。第一序列1014可以在用於安全程式化的程式化中心1008處配置程式化部件。
在步驟1030中,矽供應商可以產生具有矽供應商公開金鑰954與矽供應商私密金鑰958的矽供應商金鑰對960。這可以是具有矽供應商私密金鑰958與矽供應商公開金鑰954的矽供應商金鑰對1080。
在步驟1032中,矽供應商公開金鑰954可以傳輸到OEM使用者1006。矽供應商公開金鑰954可以利用明確且未加密的方式發送。舉例而言,矽供應商公開金鑰954可以在網路鏈接上發送。
在步驟1034中,OEM使用者1006可以利用第9圖的工廠管理系統930與程式化中心1008的第9圖的工廠安全系統932註冊第9圖的OEM證書951。OEM證書951可以包括第9圖的OEM公開金鑰962,以解密及認證利用OEM私密金鑰962加密或簽署的資訊。可以安全地執行程式化中心1008處的OEM證書的註冊,以將OEM使用者1006的安全資訊提供至程式化中心1008。可以執行註冊,以將OEM憑證引入並識別到工廠管理系統930與工廠安全系統932中。
在步驟1035中,工廠管理系統930與工廠安全系統932可以在安全交換處理中將工廠安全系統加密金鑰980發送至OEM管理系統924。工廠安全系統資料加密金鑰980可用於加密從OEM使用者1006發送到工廠管理系統930與工廠安全系統932的資訊,以支援資訊的安全傳輸。工廠安全系統932可以將工廠安全系統資料加密金鑰發送至OEM管理系統924。
在步驟1036中,OEM使用者1006可以建立具有SV裝置認證公開金鑰、OEM裝置證書簽名金鑰、及OEM裝置證書模板950的封包。OEM裝置證書簽名金鑰可以在OEM管理系統924中建立,或者從外部安全系統(如外部HSM)導入。可以使用工廠安全系統資料加密金鑰980在OEM管理系統924中加密封包,隨後發送到工廠管理系統930與工廠安全系統932。因為已使用工廠安全系統932的工廠安全系統資料加密金鑰980加密封包,所以僅能使用工廠安全系統932的工廠安全系統資料認證金鑰982進行解密。OEM裝置證書模板950為用於OEM裝置證書946的模板,其包括具有第3圖的裝置識別320且隨後由OEM私密簽名金鑰簽署的裝置的公開金鑰152。OEM公開金鑰962為綁定至OEM使用者1006的密碼值。OEM公開金鑰962具有各種格式。舉例而言,金鑰可以格式化成X.509公開金鑰證書或其他公開金鑰格式。X.509標準定義公開金鑰證書,以顯示公開金鑰的所有權。OEM公開金鑰962可以提供用於公開金鑰的驗證資訊。OEM公開金鑰962可以用於程式化中心1008中的裝置證書。
在步驟1038中,OEM使用者1006可以將具有矽供應商公開金鑰954、OEM私密金鑰952、及OEM裝置證書模板950的封包發送到程式化中心1008。隨後,可以使用封包中的資訊以簽署可程式化裝置128。
第三序列1018是在程式化中心1008或工廠前台942處的編程器112與可程式化裝置128上執行。第三序列1018可以認證安全元件,利用OEM資訊設置及密碼簽署安全元件,以及校驗所設置的裝置是否被授權。
在步驟1040中,編程器112可以讀取將要程式化的每一可程式化裝置128的矽供應商裝置證書926。將矽供應商裝置證書926從可程式化裝置128明文傳輸到編程器112。
在步驟1042中,矽供應商裝置證書926可以從編程器112傳輸到工廠管理系統930與工廠安全系統932。工廠管理系統930控制程式化操作,而工廠安全系統932將管理裝置與系統的安全性。
在步驟1044中,在程式化中心1008的工廠管理系統930處接收矽供應商裝置證書926。編程器112位於第9圖的工廠前台942處。
在步驟1046中,可以使用矽供應商公開金鑰954認證可程式化裝置128。此步驟確認將要程式化的裝置是由具有矽供應商識別符956的矽供應商提供。當使用矽供應商公開金鑰954解密利用序列1中的矽供應商私密金鑰958簽署的矽供應商裝置證書926時,認證可程式化裝置128。若可以使用矽供應商公開金鑰954存取矽供應商裝置證書926中的資訊,則認證裝置。
在步驟1048中,依據OEM裝置證書模板950格式化OEM裝置證書946。隨後,使用OEM私密金鑰952簽署OEM裝置證書946。
在步驟1050中,將OEM裝置證書946傳輸到編程器112。由於OEM裝置證書946已經利用OEM私密金鑰952加密及簽署,因此可以明文傳輸。
在步驟1052中,編程器112可以構建串列資料列表964。串列資料列表964為經程式化到可程式化裝置128的裝置特定資料的列表。這可以包括序列號、裝置識別、OEM裝置證書946、製造標記、代碼、資料、標記、mac位址、裝置特定金鑰、或其他資訊。
在步驟1054中,藉由編程器112將包括在串列資料列表964中的裝置特定資料程式化到可程式化裝置128中。串列資料列表964可以指示裝置特定資料應該儲存的位置。舉例而言,OEM裝置證書946可以儲存在安全儲存單元中。
在步驟1056中,藉由編程器112從安全元件(例如可程式化裝置128或受信任裝置130)重新提取及檢索矽供應商裝置證書926與OEM裝置證書946。儘管矽供應商裝置證書926與OEM裝置證書946的副本可能已經存在於工廠安全系統932或系統中的其他地方,但是裝置證書經重新提取,以校驗可程式化裝置128,並偵測潛在的重複生產運行、未經授權的重複、或其他不合適的動作。驗證步驟可以用於確保裝置證書已經程式化而沒有錯誤。這可能包括程式化故障、裝置損壞、位元錯誤、或類似的錯誤。
在步驟1058中,矽供應商裝置證書926與OEM裝置證書946被發送到工廠安全系統932,以用於校驗及進一步使用。所檢索的裝置證書可以用於第二輪的認證,以校驗可程式化裝置128中的適當者是否被程式化。此舉可以用於防止可程式化裝置128的未經授權的複製,並防止偽造裝置。
在步驟1060中,校驗矽供應商裝置證書926與OEM裝置證書946,以確保可程式化裝置128是適當的。此舉可以包括使用矽供應商公開金鑰954驗證矽供應商裝置證書926,以及利用OEM公開金鑰962驗證OEM裝置證書946。裝置證書的驗證包括將裝置證書中的公開金鑰與矽供應商證書1078中的公開金鑰進行比較,以確保其匹配。此外,證書可以透過證書驗證工具(未圖示)進行處理,以確保證書的格式有效。亦使用工廠安全系統932驗證證書上的簽名。
在步驟1062中,校驗結果被發送回編程器112。在步驟1064中,編程器112可以處理完成的裝置。若可程式化裝置128未被驗證,則編程器112可以識別具有指示不良裝置的驗證狀態的裝置,並將其傳輸到不良裝置插座(未圖示),以進行處置。若可程式化裝置128被適當地校驗,則可程式化裝置128可利用經校驗的狀態值更新,並作為經校驗的部件傳遞。可替代地,編程器112可以產生驗證報告,以在生產運行中記錄每一可程式化裝置128的裝置識別與驗證狀態。無效的可程式化裝置128可以在稍後移除或破壞。3.0.
功能概述
安全程式化系統100可以利用各種方式配置及設置安全元件,例如第1圖的可程式化裝置128與受信任裝置130。可以取決於在安全元件上執行的操作的類型來實現不同等級的安全性。可以在相同的物理系統上實現不同的使用案與處理流程,以適應不同終端使用者的需求。
現在參照第11圖,其中圖示根據一或更多個實施例的第1圖的可程式化裝置128的設置處理流程1102的實例。設置處理流程1102的各種元件可以在各種系統中執行,包括例如上述第1圖的系統100的系統。在實施例中,可以在通用電腦或專用電腦中的任一者中使用一或更多個電腦程式、其他軟體元件、及/或數位邏輯來實現與以下描述的功能方塊相關聯描述的每一處理,同時執行關於與電腦的記憶體的物理狀態互動及轉換的資料檢索、轉換、及儲存操作。
設置處理流程1102負責利用由安全程式化系統100提供的目標有效負載1114對可程式化裝置進行程式化。設置處理流程1102可以負責在安全程式化系統100中啟動設置作業,接收可程式化裝置128,計算加密的有效負載1116,以及設置可程式化裝置128。設置處理流程1102可以將第8圖的系統識別814與第3圖的裝置識別302的程式化描述為可程式化裝置128,並且描述他們之間的安全鏈接。
設置處理流程1102可以具有各種配置。舉例而言,設置處理流程1102可以包括啟動設置作業模組1104、接收裝置資訊模組1106、計算加密的有效負載模組1108、及設置裝置模組1110。
啟動設置作業模組1104可以接收作業控制封包1112與目標有效負載1114,以用於程式化到可程式化裝置128中。作業控制封包1112包含指令與參數,以用於利用目標有效負載1114設置可程式化裝置128。
目標有效負載1114為被加密並被程式化到可程式化裝置128中的資訊。目標有效負載1114可以包括資料、代碼、安全金鑰、及其他資訊。舉例而言,目標有效負載1114可以是在第1圖的受信任裝置130上執行的安全韌體代碼。在另一實例中,目標有效負載1114可以包括組合在一起的不同資料元件,例如一組附加安全金鑰以及一或更多個軟體模組。舉例而言,作業控制封包1112可以是第9圖的程式化專案944的一部分。
作業控制封包1112包含利用目標有效負載1114配置及程式化可程式化裝置128所需的資訊。作業控制封包1112可以包括程式化指令、安全資訊、編程器配置資訊、裝置配置資訊、及其他類似的作業資訊。
在說明性實例中,作業控制封包1112可以包含用於設置一組特定可程式化裝置128的指令。作業控制封包1112可以包括用於在程式化到可程式化裝置128之前加密目標有效負載1114的第1圖的一或更多個安全金鑰106。安全金鑰106可以表示用於加密目標有效負載1114的信任根。
作業控制封包1112可以包括用於識別安全程式化系統100、第1圖的程式化單元110、第1圖的編程器112、目標有效負載1114、及其他安全參數的安全金鑰106。舉例而言,可以使用與編程器112相關聯的第1圖的公開金鑰154來加密第2圖的編程器識別216。第2圖的編程器識別216僅可以使用與編程器112相關聯的安全金鑰106的第1圖的私密金鑰152來解密。其他系統元件的識別符同樣可以使用與此元件相關聯的公開金鑰154及私密金鑰152進行加密及解密。
作業控制封包1112可以包括用於執行生產運行的編程器112的編程器識別216。若作業控制封包1112的編程器識別216並未匹配使用中的編程器112的編程器識別,則將不執行生產作業。這允許將作業限制於僅在指定的編程器112上執行。類似地,作業控制封包1112可以包括前台識別、工廠識別、或其他位置及裝備識別符,以確保作業控制封包1112僅能在已知位置的已知裝備上運行。這可以防止未經授權生產安全裝置。
在啟動設置作業模組1104完成之後,控制流程可以傳遞到第3圖的接收裝置識別模組316。接收裝置資訊模組1106可以接收關於待程式化的可程式化裝置128的資訊。
安全程式化系統100可以耦接至第7圖的製造執行系統702。MES 702可以配置成將待程式化的可程式化裝置128的序列號發送到安全程式化系統100。
舉例而言,MES 702可以使用光學或射頻技術從可程式化裝置128讀取序列號。在另一實例中,可以利用與待程式化的可程式化裝置128相關的序列號或其他參數的列表來程式化MES 702。在另一實例中,安全程式化系統100可以直接讀取可程式化裝置128的序列號。在接收裝置資訊模組1106完成之後,控制流程可以傳遞至計算加密的有效負載模組1108。
計算加密的有效負載模組1108可以加密目標有效負載1114,以形成加密的有效負載1116。可以使用與每一可程式化裝置128的第3圖的裝置識別302的一或更多個部分相關聯的公開金鑰154以形成加密的有效負載1116。
計算加密的有效負載模組1108可以利用各種方式加密目標有效負載1114。舉例而言,可以使用與第5圖的序列號標記512、第5圖的韌體標記506、第5圖的製造標記510、第5圖的產品標記508、第5圖的操作標記514、第5圖的OEM標記516、或用於可程式化裝置128中之一者的裝置識別302內的類似值相關聯的公開金鑰154加密目標有效負載1114。可以使用與來自裝置識別302的所選參數相關聯的私密金鑰152來對加密的有效負載1116進行解密。
在另一實例中,計算加密的有效負載模組1108可以使用來自安全程式化系統100的資訊來計算加密的有效負載1116。可以使用與安全程式化系統100、程式化單元110、編程器112、第2圖的裝置轉接器208、或其他類似參數相關聯的公開金鑰154來加密目標有效負載。
計算加密的有效負載模組1108可以使用目標有效負載1114的不同部分來形成加密的有效負載1116。舉例而言,可以藉由加密整個目標有效負載1114、目標有效負載1114的子集、或目標有效負載1114的組合、及其他資訊來形成加密的有效負載1116。
計算加密的有效負載模組1108可以使用安全模組,以處理目標有效負載1114。計算加密的有效負載模組1108可以使用識別模組316、第3圖的認證模組320、第3圖的密碼模組318、或第3圖的代碼簽名模組322的任何組合,以執行形成加密的有效負載1116所需的安全操作。
識別模組316可以用於校驗每一可程式化裝置128的識別。認證模組320可以用於認證與每一可程式化裝置128相關聯的參數。密碼模組318可以用於對目標有效負載1114以及加密的有效負載1116進行加密及解密。代碼簽名模組322可以用於校驗目標有效負載1114內的第3圖的代碼元件314的有效性。在計算加密的有效負載模組1108完成之後,控制流程可以傳遞到設置裝置模組1110。
設置裝置模組1110可以利用加密的有效負載1116對每一可程式化裝置128進行程式化。設置裝置模組1110可以與編程器112的硬體對接,以將加密的有效負載1116傳輸到耦接至編程器112的可程式化裝置128。
舉例而言,設置裝置模組1110可以利用加密的有效負載1116的檔案對每一可程式化裝置128(例如第1圖的資料裝置132)進行程式化。設置裝置模組1110可以包括用於配置可程式化裝置128的每一不同裝置類型的特定資訊。資料裝置132可以使用裝置轉接器208耦接至編程器112。
在另一實例中,設置裝置模組1110可以設置每一可程式化裝置128(例如受信任裝置130)。受信任裝置130可以包括智慧型電話、電路板、安全裝置、或類似裝置。受信任裝置130可以經由資料鏈接(例如有線或無線連接或其組合)直接耦接至裝置轉接器208中的編程器112。
在說明性實例中,安全程式化系統100可以依據用於構建系統的部件來建立每一可程式化裝置128的身份。對於每一受信任裝置130(例如智慧型電話或電路板),裝置識別302可以包括受信任裝置130內的每一部件的序列號或其他識別符。可程式化裝置128的身份可以跨越硬體、軟體、及/或韌體部件。
因為裝置識別302可以包括OEM標記516,因此所有製造商與供應商的識別可以是唯一的。此外,因為可以在製造時刻由安全程式化系統100加密裝置識別302,所以可以使用裝置識別302與安全金鑰106將可程式化裝置128的身份安全地儲存在裝置外以及在裝置上。
安全程式化系統100的一個優點為第8圖的系統識別814能夠實現更高等級的裝置安全性。藉由利用系統識別814的加密版本對可程式化裝置128進行編碼,可程式化裝置128對於每一可程式化裝置128的其餘生命週期具有較高的信任等級以及可追蹤性。
因為系統識別814的使用在矽裝置等級提供信任根,所以安全程式化系統100的另一附加優點為製造供應鏈更安全。系統識別814經程式化到可程式化裝置128中,並基於唯一的製造資料,且包括唯一的製造資料。因為受損的韌體將不會具有可取得的適當的加密形式的系統識別814,所以系統識別814允許受損的韌體的偵測。
方塊圖僅顯示系統產生的許多可能流程中之一者。其他流程可以包括在不同佈置中的更少、附加、或不同的元件。舉例而言,在一些實施例中,可以忽略安全模組,加上僅由被忽略的元件所依賴的任何其他元件。作為另一實例,在實施例中,流程可以進一步包括雜湊產生模組。
現在參照第12圖,其中圖示根據一或更多個實施例的第1圖的可程式化裝置128的安全製造處理流程1201的實例。設置處理流程1102的各種元件可以在各種系統中執行,包括例如上述第1圖的系統100的系統。在實施例中,可以在通用電腦或專用電腦中的任一者中使用一或更多個電腦程式、其他軟體元件、及/或數位邏輯來實現與以下描述的功能方塊相關聯描述的每一處理,同時執行包括與電腦的記憶體的物理狀態互動及轉換的資料檢索、轉換、及儲存操作。
設置處理流程1102認證第1圖的編程器112中的可程式化裝置128,產生OEM裝置證書946,將目標有效負載1114程式化到可程式化裝置128中,以及校驗矽供應商裝置證書926與OEM裝置證書946。
設置處理流程1102可以具有各種配置。舉例而言,設置處理流程1102可以包括提取裝置證書模組1204、認證裝置模組1206、產生OEM裝置證書模組1208、程式化裝置模組1210、產生驗證狀態模組1212、及分類裝置模組1214。設置處理流程1102的控制流程可以按順序從模組傳遞到模組。
提取裝置證書模組1204可以從可程式化裝置128提取矽供應商裝置證書926。矽供應商裝置證書926可以藉由矽供應商私密金鑰152加密,並儲存在安裝於第1圖的編程器112中的可程式化裝置128的第3圖的安全儲存單元326中。編程器112可以存取安全儲存單元326,以將由矽供應商預先程式化的矽供應商裝置證書926提取到可程式化裝置128中。
認證裝置模組1206可以認證矽供應商裝置證書926,以顯示編程器112中的可程式化裝置128為來自矽供應商的認證裝置。為了認證可程式化裝置128,可以使用矽供應商公開金鑰154來解密先前使用矽供應商公開金鑰154加密的矽供應商裝置證書926。若解密成功,則可程式化裝置128是有效的,並且來自矽供應商。否則,若無法使用矽供應商公開金鑰154成功解密矽供應商裝置證書926,則裝置未受認證。
產生OEM裝置證書模組1208可以使用第9圖的OEM裝置證書模板950來建立OEM裝置證書946。OEM裝置證書946可以包括關於從矽供應商裝置證書926檢索的可程式化裝置128的資訊。在已經建立OEM裝置證書946之後,可以使用OEM私密金鑰152進行簽署。
程式化裝置模組1210可以將OEM裝置證書946與目標有效負載1114從編程器112傳輸至可程式化裝置128。OEM裝置證書946可以儲存在可程式化裝置128的第3圖的安全儲存單元326中之一者中。目標有效負載1114可經程式化到可程式化裝置128的安全或非安全部分中。目標有效負載1114可以包括韌體圖像914、第9圖的韌體更新916、第3圖的安全演算法304、或部署在可程式化裝置128中的其他代碼或資料。
在目標有效負載1114已經被程式化之後,產生驗證狀態模組1212可以從可程式化裝置128檢索矽供應商裝置證書926與OEM裝置證書946。矽供應商裝置證書926可以針對矽供應商公開金鑰154進行認證。OEM裝置證書946可以針對OEM公開金鑰154進行認證。若二個裝置證書都被認證,則可程式化裝置128是有效的。
分類裝置模組1214可以依據裝置證書的認證而產生可程式化裝置128的驗證狀態1222。若二個裝置證書都有效,則驗證狀態1222被設定為有效。若裝置證書中之任一者或二者為無效,則驗證狀態1222被設定為無效。
若驗證狀態1222展示裝置證書中之一者或二者為無效,則經程式化的可程式化裝置128中的當前一者為無效,並且不應該被使用。編程器112可以將可程式化裝置128中的無效者傳輸到輸出插座,以進行處置。
分類裝置模組1214亦可產生驗證報告,而列出驗證失敗的可程式化裝置128的序列號或裝置識別。報導企圖使用未經授權的裝置可以藉由識別潛在的仿冒及濫用而增加安全性。
在可程式化裝置128已經被程式化之後,藉由展示最初加載到第1圖的編程器112中的裝置為接收第11圖的目標有效負載1114的相同裝置,校驗矽供應商裝置證書926與OEM裝置證書946的完整性增加安全等級。檢查可程式化裝置128是否由矽供應商授權,並且在完成時二次檢查可程式化裝置128是否由矽供應商與第9圖的OEM使用者968授權,而有助於防止未經授權的製造,並降低偽造產品的可能性。
4.0. 示例性實施例
在不限制的情況下在以下例句中表示一些實施例的實例:
根據實施例,安全程式化系統的操作方法包含以下步驟:從安裝於編程器中的可程式化裝置提取矽供應商裝置證書,使用矽供應商公開金鑰來認證矽供應商裝置證書,依據矽供應商裝置證書產生用於可程式化裝置的OEM裝置證書,OEM裝置證書是利用OEM私密金鑰簽署,將OEM裝置證書與目標有效負載傳輸到編程器中的可程式化裝置,在OEM裝置證書被傳輸到可程式化裝置之後,從可程式化裝置提取OEM裝置證書與矽供應商裝置證書,藉由使用OEM公開金鑰認證OEM裝置證書並使用矽供應商公開金鑰認證矽供應商裝置證書來產生驗證狀態,若OEM裝置證書或矽供應商裝置證書中之一者並未成功認證,則驗證狀態設定為無效,以及依據驗證狀態將可程式化裝置分類到編程器的輸出插座中。
在實施例中,方法進一步包含以下步驟:將OEM裝置證書寫入可程式化裝置上的安全儲存單元中。
在實施例中,方法進一步包含以下步驟:從可程式化裝置的安全儲存單元提取矽供應商裝置證書。
在實施例中,方法進一步包含以下步驟:將可程式化裝置移動到編程器的不良裝置插座。
在實施例中,方法進一步包含以下步驟:建立具有編程器的編程器識別的作業控制封包。
根據實施例,安全程式化系統的操作方法包含以下步驟:接收具有目標有效負載的作業控制封包,從安裝於編程器中的可程式化裝置提取矽供應商裝置證書,矽供應商裝置證書是藉由矽供應商私密金鑰加密,使用矽供應商公開金鑰來認證工廠安全系統中的矽供應商裝置證書,依據矽供應商裝置證書產生用於可程式化裝置的OEM裝置證書,OEM裝置證書是利用OEM私密金鑰簽署,將OEM裝置證書與目標有效負載傳輸到編程器中的可程式化裝置,OEM裝置證書儲存在可程式化裝置的安全儲存單元中,在OEM裝置證書被傳輸到可程式化裝置之後,從可程式化裝置提取OEM裝置證書與矽供應商裝置證書,藉由使用OEM公開金鑰認證OEM裝置證書並使用矽供應商公開金鑰認證矽供應商裝置證書來產生驗證狀態,若OEM裝置證書或矽供應商裝置證書中之一者並未成功認證,則驗證狀態被設定為無效,以及依據驗證狀態將可程式化裝置分類到輸出插座中。
在實施例中,方法進一步包含以下步驟:將經授權的計數編碼到OEM裝置證書中。
在實施例中,方法進一步包含以下步驟:在工廠安全系統中認證OEM裝置證書與矽供應商裝置證書。
在實施例中,方法進一步包含以下步驟:匹配來自矽供應商裝置證書的矽供應商識別符與來自程式化單元中的安全控制器的所儲存的供應商識別符。
在實施例中,方法進一步包含以下步驟:產生具有與驗證狀態相關聯的矽供應商裝置證書的裝置識別符的有效裝置列表。
根據實施例,安全程式化系統包含編程器與耦接至編程器的工廠安全系統,編程器用於從可程式化裝置提取矽供應商裝置證書,將OEM裝置證書與目標有效負載傳輸到編程器中的可程式化裝置,在將OEM裝置證書傳輸到可程式化裝置之後,從可程式化裝置提取OEM裝置證書與矽供應商裝置證書,依據驗證狀態將可程式化裝置分類到編程器的輸出插座中,而工廠安全系統用於使用矽供應商公開金鑰來認證矽供應商裝置證書,依據矽供應商裝置證書產生可程式化裝置的OEM裝置證書,利用OEM私密金鑰來簽署OEM裝置證書,藉由使用OEM公開金鑰來認證OEM裝置證書以及使用矽供應商公開金鑰來認證矽供應商裝置證書而產生驗證狀態,若OEM裝置證書或矽供應商裝置證書中之一者未成功認證,則驗證狀態被設定為無效。
在實施例中,系統進一步包含儲存在可程式化裝置上的安全儲存單元中的OEM裝置證書。
在實施例中,系統進一步包含從可程式化裝置的安全儲存單元提取的矽供應商裝置證書。
在實施例中,系統進一步包含將可程式化裝置移動到編程器的不良裝置插座的編程器。
在實施例中,系統進一步包含具有編程器的編程器識別的作業控制封包。
在實施例中,系統進一步包含可程式化裝置,可程式化裝置包括藉由矽供應商私密金鑰加密的矽供應商裝置證書以及儲存在安全儲存單元中的OEM裝置證書與矽供應商裝置證書,編程器包括具有目標有效負載的作業控制封包,而工廠安全系統是用於使用矽供應商公開金鑰來認證矽供應商裝置證書。
在實施例中,系統進一步包含具有可程式化裝置的經授權計數的OEM裝置證書。
在實施例中,系統進一步包含藉由工廠安全系統的安全控制器驗證的OEM裝置證書與矽供應商裝置證書。
在實施例中,系統進一步包含與來自程式化單元中的安全控制器的預先安裝的矽供應商識別符匹配的來自矽供應商裝置證書的矽供應商識別符。
在實施例中,系統進一步包含具有可程式化裝置的矽供應商裝置證書的裝置識別符的有效裝置列表。
根據實施例,安全程式化系統的操作方法包含以下步驟:將可程式化裝置耦接至程式化單元,可程式化裝置至少具有第一裝置與第二裝置,從第一裝置檢索第一裝置證書,第一裝置證書具有第一裝置識別符與第一裝置公開金鑰,從第二裝置檢索第二裝置證書,第二裝置證書具有第二裝置識別符與第二裝置公開金鑰,接收作業控制封包與目標有效負載,作業控制封包具有經授權裝置列表,目標有效負載具有第一內容以及與第一內容不同的第二內容,在程式化單元處利用硬體安全模組解密目標有效負載,形成具有第一內容的第一設置封包,第一設置封包經配置以設置第一裝置,形成具有第二內容的第二設置封包,第二設置封包經配置以設置第二裝置,將第一設置封包傳輸至第一裝置,同時將第二設置封包傳輸至第二裝置,藉由比較第一裝置識別符與經授權裝置列表來計算第一裝置的認證狀態,以及依據第一裝置的裝置認證狀態來將第一裝置分類至程式化單元的輸出插座。
在實施例中,方法所包含的將可程式化裝置耦接至程式化單元之步驟進一步包括以下步驟:將可程式化裝置耦接至具有系統內編程器(ISP)的程式化單元,以及可程式化裝置中之一者是安裝於電路板上。
在實施例中,方法進一步包含以下步驟:將第一裝置公開金鑰傳輸至作業控制器系統的外部安全控制器,藉由使用第一裝置公開金鑰來加密第一內容,以在作業控制器系統處形成作業控制封包,且其中解密目標有效負載之步驟包括以下步驟:使用第一裝置私密金鑰來解密第一內容。
在實施例中,方法進一步包含以下步驟:解密第一裝置內的第一設置封包的第一內容,第一內容是使用第一裝置私密金鑰以及耦接至第一裝置的另一硬體安全模組來解密。
在實施例中,方法所包含的檢索第一裝置證書之步驟進一步包括以下步驟:檢索具有OEM識別符的OEM裝置證書,以及藉由比較第一裝置的OEM識別符與作業控制封包的經授權OEM值來計算認證狀態。
在實施例中,方法所包含的計算認證狀態之步驟進一步包括以下步驟:計算第一裝置上的認證狀態。
在實施例中,方法進一步包含以下步驟:傳輸安全啟動圖像,以在耦接至程式化單元時在第一裝置上執行,以及使用安全啟動圖像來計算認證狀態。
根據實施例,安全程式化系統包含程式化單元,程式化單元經配置以將可程式化裝置耦接至程式化單元,可程式化裝置至少具有第一裝置與第二裝置,第一裝置具有第一裝置證書、第一裝置識別符、及第一裝置公開金鑰,第二裝置具有第二裝置證書、第二裝置識別符、及第二裝置公開金鑰,程式化單元的安全儲存單元具有作業控制封包與目標有效負載,作業控制封包具有經授權裝置列表,目標有效負載具有第一內容以及與第一內容不同的第二內容,程式化單元的裝置編程器具有包含第一內容的第一設置封包與包含第二內容的第二設置封包,第一設置封包經配置以設置第一裝置,第二設置封包經配置以設置第二裝置,裝置編程器經配置以將第一設置封包傳輸至第一裝置,同時將第二設置封包傳輸至第二裝置,程式化單元的硬體安全模組是用於解密目標有效負載,以及藉由比較第一裝置識別符與經授權裝置列表來計算第一裝置的認證狀態,以及程式化單元的輸出插座是依據裝置認證狀態來分類可程式化裝置。
在實施例中,系統進一步包含程式化單元的系統內編程器(ISP),系統內編程器(ISP)經配置以耦接至安裝於電路板上的可程式化裝置中之一者。
在實施例中,系統所包含的程式化單元進一步經配置以將第一裝置公開金鑰傳輸至作業控制器系統的外部安全控制器,以藉由使用第一裝置公開金鑰來加密第一內容來在作業控制器系統處形成作業控制封包,以及使用第一裝置私密金鑰來解密第一內容。
在實施例中,系統所包含的程式化單元進一步經配置以解密第一裝置內的第一設置封包的第一內容,第一內容是使用第一裝置私密金鑰以及耦接至第一裝置的另一硬體安全模組來解密。
在實施例中,系統所包含的第一裝置證書進一步是具有OEM識別符的OEM裝置證書,而認證狀態是藉由比較第一裝置的OEM識別符與作業控制封包的經授權OEM值來計算。
在實施例中,系統所包含的程式化單元進一步經配置以接收在第一裝置上所計算的認證狀態。
在實施例中,系統所包含的程式化單元進一步經配置以將安全啟動圖像傳輸至第一裝置,以用於計算認證狀態。
根據實施例,一或更多種非暫態電腦可讀取媒體儲存指令,在藉由一或更多個計算裝置執行指令時,造成以下步驟:將可程式化裝置耦接至程式化單元,可程式化裝置至少具有第一裝置與第二裝置,從第一裝置檢索第一裝置證書,第一裝置證書具有第一裝置識別符與第一裝置公開金鑰,從第二裝置檢索第二裝置證書,第二裝置證書具有第二裝置識別符與第二裝置公開金鑰,接收作業控制封包與目標有效負載,作業控制封包具有經授權裝置列表,目標有效負載具有第一內容以及與第一內容不同的第二內容,在程式化單元處利用硬體安全模組解密目標有效負載,形成具有第一內容的第一設置封包,第一設置封包經配置以設置第一裝置,形成具有第二內容的第二設置封包,第二設置封包經配置以設置第二裝置,將第一設置封包傳輸至第一裝置,同時將第二設置封包傳輸至第二裝置,藉由比較第一裝置識別符與經授權裝置列表來計算第一裝置的認證狀態,以及依據第一裝置的裝置認證狀態來將第一裝置分類至程式化單元的輸出插座。
在實施例中,非暫態電腦可讀取媒體所包含的將可程式化裝置耦接至程式化單元之步驟進一步包括以下步驟:將可程式化裝置耦接至具有系統內編程器(ISP)的程式化單元,以及可程式化裝置中之一者是安裝於電路板上。
在實施例中,非暫態電腦可讀取媒體進一步包含以下步驟:將第一裝置公開金鑰傳輸至作業控制器系統的外部安全控制器,藉由使用第一裝置公開金鑰來加密第一內容,以在作業控制器系統處形成作業控制封包,且其中解密目標有效負載之步驟包括以下步驟:使用第一裝置私密金鑰來解密第一內容。
在實施例中,非暫態電腦可讀取媒體進一步包含以下步驟:解密第一裝置內的第一設置封包的第一內容,第一內容是使用第一裝置私密金鑰以及耦接至第一裝置的另一硬體安全模組來解密。
在實施例中,非暫態電腦可讀取媒體進一步包含以下步驟:檢索具有OEM識別符的OEM裝置證書,以及藉由比較第一裝置的OEM識別符與作業控制封包的經授權OEM值來計算認證狀態。
在實施例中,非暫態電腦可讀取媒體進一步包含以下步驟:計算第一裝置上的認證狀態。
根據實施例,安全程式化系統的操作方法包含以下步驟:將可程式化裝置耦接至程式化單元,可程式化裝置至少具有第一裝置,接收作業控制封包與目標有效負載,作業控制封包具有作業認證識別符,目標有效負載具有第一內容,從第一裝置檢索第一裝置證書,第一裝置證書具有第一裝置識別符、第一裝置認證、及第一裝置公開金鑰,將第一裝置詢問發送至第一裝置,回應於第一裝置詢問而從第一可程式化裝置接收第一裝置回應,第一裝置回應具有認證值,驗證第一裝置回應以產生用於第一裝置的認證狀態,回應於第一裝置回應的成功驗證而將第一設置封包傳輸至第一裝置,第一設置封包具有第一內容,以及依據第一裝置的裝置認證狀態將第一裝置分類至程式化單元的輸出插座。
在實施例中,方法所包含的發送第一裝置詢問之步驟進一步包括以下步驟:依據認證值及第一裝置公開金鑰而在程式化單元的安全控制器處產生第一回應詢問。
在實施例中,方法所包含的接收第一裝置回應之步驟進一步包括以下步驟:依據第一裝置詢問與第一裝置私密金鑰而在第一裝置處產生第一裝置回應,第一裝置回應是利用第一裝置的第一裝置安全控制器所產生。
在實施例中,方法所包含的驗證第一裝置回應之步驟進一步包括以下步驟:使用第一裝置公開金鑰而在程式化單元的安全控制器處從第一裝置回應解密認證值,以及依據與第一裝置詢問的認證值匹配的第一裝置回應的認證值來產生認證狀態。
在實施例中,方法所包含的將可程式化裝置耦接至程式化單元之步驟進一步包括以下步驟:利用系統內編程器(ISP)、電路內編程器、板上編程器、或網路鏈接來將可程式化裝置耦接至程式化單元。
在實施例中,方法所包含的傳輸第一設置封包之步驟進一步包括以下步驟:使用第一裝置公開金鑰來加密第一設置封包的第一內容,使用第一裝置私密金鑰而在第一裝置的安全控制器處解密第一設置封包的第一內容,以及將第一內容程式化至第一裝置。
在實施例中,方法所包含的接收作業控制封包之步驟進一步包括以下步驟:接收用於第一裝置的存貨單位(SKU)配置以及安全設置物件,使用SKU配置來配置第一裝置,以及利用安全設置物件來設置第一裝置。
根據實施例,安全程式化系統包含程式化單元,程式化單元經配置以將可程式化裝置耦接至程式化單元,可程式化裝置至少具有第一裝置,第一裝置具有第一裝置證書,第一裝置證書具有第一裝置識別符、第一裝置認證、及第一裝置公開金鑰,程式化單元經配置以將第一裝置詢問發送至第一裝置,並回應於第一裝置詢問而從第一可程式化裝置接收第一裝置回應,第一裝置回應具有認證值,以及程式化單元經配置以將具有第一內容的第一設置封包傳輸至第一裝置,程式化單元的安全儲存單元是用於接收作業控制封包與目標有效負載,作業控制封包具有作業認證識別符,目標有效負載具有第一內容,程式化單元的安全控制器用於驗證第一裝置回應,以產生用於第一裝置的認證狀態,而程式化單元的輸出插座是用於依據第一裝置的裝置認證狀態來分類第一裝置。
在實施例中,系統所包含的安全控制器進一步經配置以依據認證值及第一裝置公開金鑰來產生第一回應詢問。
在實施例中,系統所包含的程式化單元進一步經配置以依據第一裝置詢問與第一裝置私密金鑰來接收第一裝置處所產生的第一裝置回應,而安全控制器經配置以產生第一裝置回應。
在實施例中,系統所包含的安全控制器進一步經配置以使用第一裝置公開金鑰而在程式化單元的安全控制器處從第一裝置回應解密認證值,以及依據與第一裝置詢問的認證值匹配的第一裝置回應的認證值來產生認證狀態。
在實施例中,系統所包含的程式化單元進一步經配置以利用系統內編程器(ISP)、電路內編程器、板上編程器、或網路鏈接來將可程式化裝置耦接至程式化單元。
在實施例中,系統所包含的安全控制器進一步經配置以使用第一裝置公開金鑰來加密第一設置封包的第一內容。
在實施例中,系統所包含的程式化單元進一步經配置以接收用於第一裝置的存貨單位(SKU)配置以及安全設置物件,使用SKU配置來配置第一裝置,以及利用安全設置物件來設置第一裝置。
根據實施例,一或更多種非暫態電腦可讀取媒體儲存指令,在藉由一或更多個計算裝置執行指令時,造成以下步驟:將可程式化裝置耦接至程式化單元,可程式化裝置至少具有第一裝置,接收作業控制封包與目標有效負載,作業控制封包具有作業認證識別符,目標有效負載具有第一內容,從第一裝置檢索第一裝置證書,第一裝置證書具有第一裝置識別符、第一裝置認證、及第一裝置公開金鑰,將第一裝置詢問發送至第一裝置,回應於第一裝置詢問而從第一可程式化裝置接收第一裝置回應,第一裝置回應具有認證值,驗證第一裝置回應以產生用於第一裝置的認證狀態,回應於第一裝置回應的成功驗證而將第一設置封包傳輸至第一裝置,第一設置封包具有第一內容,以及依據第一裝置的裝置認證狀態將第一裝置分類至程式化單元的輸出插座。
在實施例中,非暫態電腦可讀取媒體進一步造成以下步驟:依據認證值及第一裝置公開金鑰而在程式化單元的安全控制器處產生第一回應詢問。
在實施例中,非暫態電腦可讀取媒體所造成的接收第一裝置回應之步驟進一步包括以下步驟:依據第一裝置詢問與第一裝置私密金鑰而在第一裝置處產生第一裝置回應,第一裝置回應是利用第一裝置的第一裝置安全控制器所產生。
在實施例中,非暫態電腦可讀取媒體進一步造成以下步驟:使用第一裝置公開金鑰而在程式化單元的安全控制器處從第一裝置回應解密認證值,以及依據與第一裝置詢問的認證值匹配的第一裝置回應的認證值來產生認證狀態。
在實施例中,非暫態電腦可讀取媒體所造成的將可程式化裝置耦接至程式化單元之步驟進一步包括以下步驟:利用系統內編程器(ISP)、電路內編程器、板上編程器、或網路鏈接來將可程式化裝置耦接至程式化單元。
在實施例中,非暫態電腦可讀取媒體進一步造成以下步驟:使用第一裝置公開金鑰來加密第一設置封包的第一內容,使用第一裝置私密金鑰而在第一裝置的安全控制器處解密第一設置封包的第一內容,以及將第一內容程式化至第一裝置。
這些及其他實施例的其他實例可見於本揭示各處。
5.0. 實施機構-硬體概述
依據一個實施例,本文中所述的技術是由一或更多個特殊用途計算裝置所實施。特殊用途計算裝置可為桌上型電腦系統、可攜式電腦系統、手持式裝置、智慧型電話、媒體裝置、遊戲機、網路裝置、或合併硬連線及/或程式邏輯以實施此等技術的任何其他裝置。特殊用途計算裝置可為硬連線,以執行此等技術,或者可以包括數位電子裝置(例如被永久程式化以執行此等技術的一或更多個特殊應用積體電路(ASIC)或現場可程式化邏輯閘陣列(FPGA)),或者可以包括經程式化為依據韌體、記憶體、其他儲存器或組合中的程式指令來執行此等技術的一或更多個一般用途硬體處理器。此類特殊用途計算裝置亦可以將定製的硬連線邏輯、ASIC、或FPGA與定製程式化結合,以完成此等技術。
現在參照第13圖,其中圖示根據實施例繪示在實施上述技術時所利用的電腦系統1300的方塊圖。舉例而言,電腦系統1300可為桌上型計算裝置、膝上型計算裝置、平板電腦、智慧型電話、伺服器設備、計算大型電腦、多媒體裝置、手持式裝置、網路設備、或任何其他合適的裝置。
電腦系統1300包括一或更多個匯流排1302或用於傳遞資訊的其他通訊機構以及與匯流排1302耦接以用於處理資訊的一或更多個硬體處理器1304。舉例而言,硬體處理器1304可為一般用途微處理器。匯流排1302可以包括各種內部及/或外部部件,在不限制的情況下包括內部處理器或記憶體匯流排、序列ATA匯流排、PCI Express匯流排、通用序列匯流排、HyperTransport匯流排、Infiniband匯流排、及/或任何其他合適的有線或無線通訊通道。
電腦系統1300亦包括耦接至匯流排1302以用於儲存資訊及要由處理器1304所執行之指令的主記憶體1306(例如隨機存取記憶體(RAM)或其他動態或揮發性儲存裝置)。主記憶體1306亦可用於在執行要由處理器1304所執行的指令期間儲存暫時變數或其他中間資訊。此類指令當儲存在處理器1304可存取的非暫態儲存媒體中時,使得電腦系統1300變成定製為執行此等指令中所指定之操作的特殊用途機器。
電腦系統1300進一步包括一或更多個唯讀記憶體(ROM)1308或耦接至匯流排1302以針對處理器1304儲存靜態資訊及指令的其他靜態儲存裝置。一或更多個儲存裝置1310(例如固態硬碟(SSD)、磁碟、光碟或其他合適的非揮發性儲存裝置)被提供且耦接至匯流排1302,以用於儲存資訊及指令。
電腦系統1300可以經由匯流排1302耦接至一或更多個顯示器1312,以用於向電腦使用者呈現資訊。舉例而言,電腦系統1300可經由高清晰度多媒體介面(HDMI)纜線或其他合適的佈線連接至液晶顯示器(LCD)監視器,及/或透過無線連接(例如點對點Wi-Fi直接連接)連接至發光二極體(LED)電視。合適類型之顯示器1312的其他實例在不限制的情況下可包括電漿顯示裝置、投影機、陰極射線管(CRT)監測器、電子紙、虛擬實境耳機、點字終端、及/或用於向電腦使用者輸出資訊的任何其他合適的裝置。在實施例中,可以利用任何合適類型的輸出裝置(例如音訊喇叭或印表機)代替顯示器1312。
在實施例中,可以藉由電腦系統1300中的一或更多個圖形處理單元(GPU)加速顯示器1312的輸出。舉例而言,GPU可為高度平行化的、多核的浮點處理單元,此處理單元經最佳化以執行關於圖形資料、3D資料、及/或多媒體之顯示的計算操作。除了直接計算影像及/或視訊資料以輸出至顯示器1312以外,GPU亦可用於在螢幕外呈現成像或其他視訊資料,且將此資料讀回進程式以用於以非常高的效能進行螢幕外影像處理。各種其他計算任務可從處理器1304外載至GPU。
一或更多個輸入裝置1314耦接至匯流排1302,以向處理器1304傳遞資訊及命令選擇。輸入裝置1314的一個實例為鍵盤,鍵盤包括文字數字及其他鍵。另一類型的使用者輸入裝置1314為用於向處理器1304傳遞指向資訊及命令選擇及用於控制顯示器1312上之游標移動的游標控制器1316,例如滑鼠、軌跡球、或游標指向鍵。此輸入裝置一般在兩個軸(第一軸(例如x)及第二軸(例如y))上具有兩個自由度,兩個自由度允許裝置指定平面中的位置。合適的輸入裝置1314的其他實例包括附加至顯示器1312的觸控螢幕面板、攝影機、麥克風、加速度計、運動偵測器、及/或其他感測器。在實施例中,可利用基於網路的輸入裝置1314。在此類實施例中,使用者輸入及/或其他資訊或命令可以經由區域網路(LAN)或其他合適的共享式網路上的路由器及/或開關或經由點對點網路來從輸入裝置1314傳播至電腦系統1300上的網路鏈接1320。
電腦系統1300可使用定製的硬連線邏輯、一或更多個ASIC或FPGA、韌體、及/或程式邏輯來實施本文所述之技術,此等部件與電腦系統結合使得或程式化電腦系統1300成為特殊用途機器。根據一個實施例,本文中的技術回應於處理器1304執行主記憶體1306中所包含之一或更多個指令的一或更多個序列而由電腦系統1300執行。此類指令可從另一儲存媒體(例如儲存裝置1310)讀取進主記憶體1306。執行主記憶體1306中所包含之指令的序列使得處理器1304執行本文中所述的處理步驟。在另一實施例中,可替代於軟體指令或與軟體指令結合來使用硬連線的電路系統。
如本文中所使用的用語「儲存媒體」是指稱儲存使機器以特定方式操作的資料及/或指令的任何非暫態媒體。此類儲存媒體可以包含非揮發性媒體及/或揮發性媒體。舉例而言,非揮發性媒體包括光或磁碟,例如儲存裝置1310。揮發性媒體包括動態記憶體,例如主記憶體1306。儲存媒體的通用形式例如包括軟碟、軟性磁碟、硬碟、固態硬碟、磁帶或任何其他磁式資料儲存媒體、CD-ROM、任何其他光學資料儲存媒體、具有孔洞圖樣的任何實體媒體、RAM、PROM、及EPROM、FLASH-EPROM、NVRAM、任何其他記憶體晶片或匣。
儲存媒體不同於傳輸媒體,但可以與傳輸媒體結合使用。傳輸媒體參與在儲存媒體之間傳輸資訊。舉例而言,傳輸媒體包括同軸纜線、銅線、及光纖(包括含有匯流排1302的導線)。傳輸媒體亦可採取聲學或光波的形式,例如在音波及紅外線資料通訊期間所產生的彼等形式。
各種形式的媒體可涉及將一或更多個指令的一或更多個序列承載至處理器1304以供執行。舉例而言,指令可以一開始就承載於遠端電腦的磁碟或固態硬碟上。遠端電腦可以將指令載進其動態記憶體,且使用數據機來在網路(例如纜線網路或細胞式網路)上將此等指令發送為調變訊號。在電腦系統1300本地端的數據機可在網路上接收資料及解調訊號,以解碼所傳送的指令。適當的電路系統可接著將資料放置在匯流排1302上。匯流排1302將資料承載至主記憶體1306,處理器1304從主記憶體1306檢索及執行指令。由主記憶體1306所接收的指令可以任選地在由處理器1304執行之前或之後儲存於儲存裝置1310上。
在實施例中,電腦系統1300亦可包括耦接至匯流排1302的一或更多個通訊介面1318。通訊介面1318將資料通訊耦合(一般為雙路)提供至連接至本地端網路1322的網路鏈接1320。舉例而言,通訊介面1318可為整合型服務數位網路(ISDN)卡、纜線數據機、衛星數據機、或用以向相對應類型的電話線路提供資料通訊連接的數據機。作為另一實例,一或更多個通訊介面1318可以包括用於將資料通訊連接提供至相容LAN的區域網路(LAN)卡。作為另一實例,一或更多個通訊介面1318可包括無線網路介面控制器,例如基於802.11的控制器、藍牙控制器、長期進化(LTE)數據機、及/或其他類型的無線介面。在任何此類實施方案中,通訊介面1318發送及接收承載表示各種類型之資訊之數位資料串流的電、電磁、或光學訊號。
網路鏈接1320一般藉由一或更多個網路向其他資料裝置提供資料通訊。舉例而言,網路鏈接1320可以藉由本地端網路1322向主控端電腦1324或由服務提供者1326所操作的資料裝備提供連接。服務提供者1326(例如可為網際網路服務提供者(ISP))反過來藉由廣域網路(例如現常稱為網際網路1328的全球封包資料通訊網路)提供資料通訊服務。本地端網路1322及網際網路1328兩者使用承載數位資料串流的電、電磁、或光學訊號。藉由各種網路的訊號及網路鏈接1320上及藉由通訊介面1318的訊號(此等訊號承載往返電腦系統1300的數位資料)為傳輸媒體的示例形式。
在實施例中,電腦系統1300可以藉由網路、網路鏈接1320、及通訊介面1318發送訊息及接收資料(包括程式代碼及/或其他類型的指令)。在網際網路實例中,伺服器1330可以透過網際網路1328、ISP 1326、本地端網路1322、及通訊介面1318傳送用於應用程式的受請求的代碼。所接收的代碼可在接收時由硬體處理器1304執行,及/或儲存在儲存裝置1310或其他非揮發性儲存器中,以供之後執行。作為另一實例,經由網路鏈接1320所接收的資訊可由電腦系統1300的軟體部件(例如網頁瀏覽器、應用程式、或伺服器)解譯及/或處理,此軟體部件反過來依據此資訊可能透過作業系統及/或軟體部件的其他中間層向硬體處理器1304發出指令。
在實施例中,本文中所述的一些或所有系統可以是或包括伺服器電腦系統,包括將系統之各種部件共同實施為伺服器端處理之集合的一或更多個電腦系統1300。伺服器電腦系統可以包括網頁伺服器、應用伺服器、資料庫伺服器、及/或某些上述部件所用以提供所述功能的其他習知伺服器部件。伺服器電腦系統可以從各種來源(在不限制的情況下包括使用者操作的客戶端計算裝置(例如桌上型電腦、平板電腦、或智慧型電話)、遠端感測裝置、及/或其他伺服器電腦系統)中的任何者接收基於網路的通訊(包括輸入資料)。
在實施例中,可以使用由一或更多個網路(例如網際網路)耦接至系統之基於「雲端」的部件來完全或部分實施某些伺服器部件。基於雲端的部件可以暴露介面,此等部件藉由此等介面向系統的其他部件提供處理、儲存、軟體、及/或其他資源。在實施例中,基於雲端的部件可由第三方實體代替另一實體實施,其中此等部件是針對另一實體而部署。然而,在其他實施例中,所述的系統可完全藉由被單一實體擁有及操作的電腦系統所實施。
在實施例中,一種設備包含處理器,並經配置以執行任何上述方法。在實施例中,一種儲存軟體指令的非暫態電腦可讀取儲存媒體,此等軟體指令在藉由一或更多個處理器執行時,造成執行上述方法中的任何者。
現在參照第14圖,其中圖示用於說明安全傳輸步驟1403的方塊圖。安全程式化環境1402可以包括用於安全設置可程式化裝置128的多步驟處理。處理可以包括將OEM內容安全傳輸到程式化前台,將OEM內容安全導入編程器系統,安全設置可程式化裝置128,以及實現裝置管理。
安全程式化環境1402可以包括可以執行不同設置操作的多個前台或位置處的不同部件。舉例而言,安全程式化環境1402可以在OEM開發前台1460處使用包裝工具1470來保護OEM內容1424,以及將經包裝的OEM內容1426安全傳輸至安全程式化前台1462。
安全程式化環境1402可以使用各種不同使用案例來支援可程式化裝置128的安全設置。不同使用案例可以實現不同的安全演算法及機制來保護OEM內容1424,以及利用不同等級的保護來設置不同類型的可程式化裝置128。使用案例亦可以針對編程器使用不同配置。
使用案例1420可以用於保護不同類型的OEM內容及資料。舉例而言,使用案例1422可以設置OEM安全上下文及資料,OEM安全上下文及資料包括安全啟動管理器1428(SBM)、安全金鑰106、安全證書1436、生產計數資料1440、受保護的韌體圖像914、及其他類似內容。
安全金鑰106可以包括裝置證書簽名金鑰、韌體加密金鑰、安全啟動金鑰、韌體更新金鑰、或其他類似金鑰。安全證書1436可以包括裝置證書模板、共同認證證書、及其他類似證書。受保護的韌體圖像914可以包括經加密的韌體圖像、經簽名的韌體圖像、或其他安全韌體資料圖像。
可以在OEM開發前台1460接收及保護OEM內容1424,隨後將OEM內容1424安全傳輸至安全程式化前台1462,以設置到可程式化裝置128。可以在從OEM開發前台1460傳輸至安全程式化前台1462期間取決於內容的類型而使用不同安全技術來保護OEM內容1424。
安全程式化環境1402可以使用多階段處理來安全管理可程式化裝置128的設置。舉例而言,此舉可以包括開發階段1404、設置階段1406、掌握階段1408、部署階段1410、製造階段1412、及管理階段1414。
在開發階段1404中,OEM 1416可以開發用於部署及設置可程式化裝置128的安全內容封包1418。舉例而言,此舉可以包括接收各種內容片段並組裝OEM內容1424。OEM內容1424可以是用於設置可程式化裝置128所需要的一組相關聯內容。開發階段1404可以包括收集資料、安全金鑰、裝置證書、裝置識別、編程器識別、及針對目標裝置進行程式化所需要的其他相關內容。
在設置階段1406中,可以向可程式化裝置128提供安全證書,以促進產品的開發及測試。在此階段期間,可以利用將在製造期間使用的生產等級金鑰及證書來替換開發期間所部署的任何初始安全金鑰及證書。
在掌握階段1408中,可以使用目標生產金鑰(例如,簽名金鑰、主金鑰、公開金鑰、或類似密碼金鑰)針對目標內容及韌體圖像914進行加密及簽名。掌握步驟是從開發金鑰及證書的使用到掌握期間所定義及使用的生產金鑰及證書的轉移。
在部署階段1410中,目標封包可以傳輸至目的地前台。部署階段1410可以包括配置附加安全性(例如,管理安全連接、空氣間隙安全測量、封包等級安全性、流量監測、或其他類似的安全準備)。
在製造階段1412中,可以藉由程式化系統接收目標封包並在設置可程式化裝置128之前將目標封包解封包。此舉可以包括操作(例如,解密、簽名驗證、解壓縮、隔離單獨部件、將目標內容安全程式化至可程式化裝置、驗證可程式化裝置、檢查識別、錯誤檢查、偽造品偵測、基本庫存驗證、及其他類似製造任務)。
在管理階段1414中,可以在可程式化裝置128的整個生命週期中管理可程式化裝置128。裝置管理可以包括審核裝置、開發產品製造及追蹤資料庫、追蹤啟動、追蹤錯誤狀況、雲端上線、設置、及其他裝置生命週期事件。
可以針對不同使用案例來配置安全程式化環境1402。使用案例1420可以包括用於安全啟動、裝置識別及信任鏈、韌體及知識產權內容保護、共同認證、韌體更新服務、基於雲端的設置、過度生產保護、複製保護、及其他類似使用案例的使用案例1420。
使用案例1420中之每一者可以用於產生設置可程式化裝置128所需要的一組OEM內容1424。可以在OEM開發前台1460加載及保護OEM內容1424,隨後將OEM內容1424安全傳輸至安全程式化前台1462,以設置到可程式化裝置128。
可以在從OEM開發前台1460過渡至安全程式化前台1462期間保護OEM內容1424。此保護可以包括在安全程式化前台1462處傳遞至程式化系統之前在OEM開發前台處加密內容。
在一個實例中,OEM開發前台1460可以是單獨的設施,其中OEM內容1424用於產生經包裝的OEM內容1426。經包裝的OEM內容1426為受到密碼保護的內容。
可以利用包裝金鑰1432來保護經包裝的OEM內容1426。包裝金鑰1432為密碼金鑰值(例如,秘密硬體安全模組(HSM)包裝金鑰)。可以使用安全軟體工具(例如,包裝工具1470)來利用包裝金鑰1432加密OEM內容1424,並將OEM內容1424部署於OEM開發前台1460的安全環境內,以及傳輸至安全程式化前台1462。安全軟體工具1464可以包括用於包裝受保護內容的包裝工具。
包裝金鑰1432可以與特定目標系統或前台相關。舉例而言,包裝金鑰1432可以鏈接至安全程式化系統100(例如,包裝金鑰1432可以鏈接至程式化單元110的編程器112的裝置識別302)。包裝金鑰1432可以與HSM系統(例如,安全控制器)或具有專用安全模組的可程式化裝置相關聯。
在另一實例中,包裝金鑰1432可以鏈接至安全程式化前台1462,以用於安全程式化前台1462。包裝金鑰1432可以是OEM金鑰、前台金鑰、編程器金鑰、或其他類似金鑰。
在又一實例中,包裝金鑰1432可以是與安全程式化前台1462處的程式化單元110中之一者相關聯的金鑰對150中之一者的公開金鑰154。解包裝金鑰1432可以是與程式化單元110相關聯的金鑰對150中之一者的私密金鑰152。OEM內容1424可以利用包裝金鑰1432加密,隨後利用解包裝金鑰1432解密。此舉確保經包裝的OEM內容1426僅能用於所欲使用的程式化單元110。
在另一實例中,包裝金鑰1432可以是安全程式化系統100中的安全控制器114(HSM)的公開金鑰154。隨後,可以使用HSM系統1474以及儲存於HSM系統1474中的OEM內容1424來將經包裝的OEM內容1426解包裝。因為OEM內容1424安全儲存於HSM系統1474中且僅在HSM系統1474處理,所以提供非常高等級的安全性。相較於在程式化單元110或安全程式化系統的主機pc上儲存及處理金鑰及內容,此舉可以防止金鑰與OEM內容1424的任何潛在暴露,而因此提供更高等級的安全性。
安全程式化前台1462可以是另一位置處的製造設施。舉例而言,在許多製造佈置中,OEM可以讓合約製造商使用經包裝的OEM內容1426來在不同位置或國家設置可程式化裝置128。
安全程式化前台1462可以使用安全程式化系統100來將經包裝的OEM內容1426解包裝,並安全設置可程式化裝置128。可以將鏈接至包裝金鑰1432的解包裝金鑰1432從OEM開發前台1460安全傳輸至安全程式化前台1462,以將經包裝的OEM內容1426解包裝。
在從OEM開發前台1460過渡到安全程式化前台1462期間保護OEM內容1424。可以藉由使用包裝金鑰1432來包裝或加密OEM內容1424以形成經包裝的OEM內容1426來保護OEM內容1424。包裝金鑰1432可以綁定至特定編程器112。在另一實例中,包裝金鑰1432可以儲存在安全程式化系統100的安全控制器114中。可以使用包裝金鑰1432來加密OEM內容1424,隨後透過網際網路將經包裝的OEM內容1426傳輸至程式化前台。由於經包裝的OEM內容1426為經加密的,因此可以透過網際網路安全傳輸。
現在參照第15圖,圖示安全導入步驟1502的實例。在安全導入步驟1502中,可以將經包裝的OEM內容1426安全導入安全程式化系統100。
安全程式化前台1462可以包括用於收集經包裝的OEM內容1426的傳輸電腦1476。傳輸電腦1476可以利用安全的方式接收從OEM開發前台1460所傳輸的經包裝的OEM內容1426。舉例而言,可以將OEM內容1424進行包裝及簽名,以允許來源的認證以及內容完整性的驗證,以偵測任何潛在篡改。傳送期間不需要其他安全性。在另一實施例中,傳輸電腦1476可以將查詢發送至OEM開發前台1460,以請求經包裝的OEM內容1426。傳輸電腦1476可以是用於在前台或安全區之間傳輸內容的通用電腦或專用計算元件。
傳輸電腦1476可以具有安全配置,其中傳輸電腦1476是與安全程式化系統100物理分隔。可以利用多種方式(例如,使用空氣間隙1506)來實現物理分隔。空氣間隙1506表示傳輸電腦1476與安全程式化系統100之間的資料連接的中斷。空氣間隙1506可以將安全程式化系統100與連接至傳輸電腦1476的任何外部網路隔離。
可以利用各種安全方式將經包裝的OEM內容1426從傳輸電腦1476傳輸至安全程式化系統100。舉例而言,可以使用可移除媒體裝置(例如,快閃記憶體驅動器、軟碟、磁碟驅動器、記憶棒、光學媒體、或其他資料儲存媒體)來傳輸經包裝的OEM內容1426。經包裝的OEM內容1426可以維持傳輸電腦1476與安全程式化系統100之間的空氣間隙。空氣間隙允許安全程化式系統100與網際網路隔離。此舉可以防止來自外部來源的未經授權的存取。
在另一實例中,可以使用專用安全通訊通道(未圖示)來傳輸經包裝的OEM內容1426。此舉可以包括單獨的經加密資料鏈接、可移除網路鏈接、安全網路防火牆、物理安全網路鏈接、或類似的安全通訊鏈接。
在又一實例中,安全程式化系統100可以包括用於處理傳入資料的整合主控端電腦,但是若安全程式化系統100並未連接至網際網路,則主控端電腦可以直接連接至安全程式化系統100。
在此實例中,可以在安全程式化前台處將經包裝的OEM內容透過網際網路發送至與PC連接的網路。隨後,使用可移除媒體(例如,快閃記憶體媒體、光碟、磁碟、或其他類似媒體)將OEM內容透過空氣間隙從此PC傳輸至安全程式化系統100的傳輸電腦1476。
一旦藉由安全程式化系統100的程式化單元110的安全控制器114接收經包裝的OEM內容1426,則可以安全儲存及解包裝。安全控制器114(例如,HSM單元)可以使用解包裝金鑰1432來解密經包裝的OEM內容1426。可以將包裝金鑰1432安全儲存於安全儲存區域中。
藉由使用編程器112的主控端PC上的資料及安全管理軟體來定義OEM產品1508(例如,針對OEM所應該生產的產品),可以將OEM內容解包裝。可以使用編程器112的主控端PC的資料及安全軟體來定義代表OEM產品的OEM內容1424。OEM內容1424可以綁定至OEM產品1508。
現在參照第16圖,圖示安全設置步驟1602的實例。在安全設置步驟1602中,可以將經包裝的OEM內容1426解包裝,並用於安全程式化前台1462處的可程式化裝置128的安全設置及資料程式化。
安全程式化系統100可以在安全程式化前台1462處實施幾個不同的使用案例1420,以設置不同類型的可程式化裝置128。使用案例1420可以包括認證裝置使用案例1422、設置身份使用案例1422、設置共同認證使用案例1422、設置安全啟動使用案例1422、設置韌體保護使用案例1422、雲端設置使用案例、安全更新使用案例、及其他安全操作及使用案例。
在認證裝置使用案例1422中,OEM 1416可以提供與OEM內容1424相關聯的矽供應商認證公開金鑰154。程式化單元110可以執行認證演算法1614以讀取矽供應商裝置證書926,將其傳遞至安全控制器114,並針對可程式化裝置128中之每一者使用針對使用來自矽供應商證書1078的公開裝置金鑰1668的裝置的認證金鑰及詢問回應來驗證矽供應商認證金鑰1616及詢問回應1666。
設置身份使用案例1422可以在產品建立期間設定或設置可程式化裝置128的身份。在此使用案例下,OEM內容1424可以包括裝置證書私密簽名金鑰1670與裝置證書模板1454。OEM內容1424可以安全導入程式化單元110的安全控制器114。舉例而言,程式化單元110可以是具有硬體安全模組(HSM)的編程器。
以下描述用於微控制器單元(MCU)與安全元件1620的設置演算法。安全元件1620為利用無篡改封包來提供安全儲存及受信任的執行環境的安全積體電路。
針對安全元件1620,可以在可程式化裝置128上或編程器112的安全控制器114中產生裝置身份金鑰對150。
若在可程式化裝置128上產生裝置身份金鑰對150,則編程器112讀取裝置公開金鑰154(公開金鑰),隨後傳遞至安全控制器114。隨後,安全控制器114可以使用裝置證書模板1454與裝置證書簽名金鑰1632以及可程式化裝置128的裝置公開金鑰154來針對可程式化裝置128提供裝置證書1630。隨後,利用安全方式將裝置證書1630程式化至可程式化裝置128中(例如,在單次寫入區域中)。
若在安全控制器114中產生裝置身份金鑰對150,則使用可程式化裝置128的裝置證書簽名金鑰1632與裝置公開金鑰154在安全控制器114中建立裝置證書1630。隨後,在唯讀區域1634中將裝置證書1630與裝置私密金鑰152一起程式化至可程式化裝置128,裝置私密金鑰152經程式化至單次寫入及讀取保護區域。
針對微控制器單元1636,首先將安全啟動管理器1640(SBM)(作為OEM內容1424的一部分來供應)程式化至可程式化裝置128中之一者。安全啟動管理器1640可以初始化可程式化裝置128上的安全儲存單元326與安全執行單元324,以及確保在重新啟動時,執行安全啟動管理器1640,而作為可程式化裝置128上的主韌體,以及控制針對裝置的所有存取。安全啟動管理器1640亦負責在可程式化裝置128上建立裝置身份金鑰對150。
若在微控制器單元1638上產生裝置身份金鑰對,則藉由編程器112讀取裝置公開金鑰154,隨後傳遞至安全控制器114,而在安全控制器114中使用可程式化裝置128的裝置證書簽名金鑰1632與裝置公開金鑰154來建立裝置證書1630。隨後在可程式化裝置128的唯讀區域1634中將裝置證書1630程式化至裝置中。
若在安全控制器114中產生裝置金鑰對150,則使用可程式化裝置128的裝置證書簽名金鑰1632與裝置公開金鑰154在安全控制器114中建立裝置證書1630。隨後,在唯讀區域1634中將裝置證書1630與裝置私密金鑰152一起程式化至裝置,裝置私密金鑰152經程式化至單次寫入及讀取保護區域。
設置共同認證使用案例1422:設置共同認證使用案例1422可以如上所述設置裝置身份,並添加與認證端點1676中之一者對應的根證書頒發機構證書1642。根證書頒發機構證書1642為用於證明頒發機構證書1642中所命名的公開金鑰的所有權的數位證書。根證書頒發機構證書1642可以藉由受信任的第三方證書頒發機構來發佈。
在說明性實例中,圖示用於二個裝置(例如,伺服器及端點)的共同認證的處理。此處,每一裝置是藉由身份金鑰對與裝置證書來設置。
伺服器可以認證端點。伺服器請求端點的裝置證書。隨後,伺服器透過詢問回應操作來認證端點的公開證書中的公開金鑰,其中端點將使用端點的公開金鑰加密的訊息發送至端點來作為詢問,並從端點取回未加密的訊息來作為回應。若回應與原始訊息匹配,則公開金鑰對應於端點的身份,並且亦驗證端點的私密金鑰。此舉代表認證處理的第一步驟。
下一步驟為認證端點的裝置證書的信任鏈。若端點的OEM的信任鏈已建立為「OEM根CA證書->OEM中間簽名證書->裝置證書」,則每一箭頭與外部證書在裝置證書上的簽名對應。現在,若伺服器要驗證端點的信任鏈,則必須存取二個更高等級的證書。為了加快此處理,可以在初始階段(例如,在製造期間)將OEM根CA證書與OEM中間簽名證書設置到伺服器,而可以在伺服器上驗證端點的信任鏈,不需要在這些裝置的操作階段期間從已知位置動態擷取證書。
可以使用相同處理來讓端點認證伺服器。
設置安全啟動可以針對MCU使用案例972。針對控制器使用案例1422的設置安全啟動可以利用多種方式來執行。可以使用非對稱方法、MAC方法、或其他類似技術。
針對MCU使用案例972的設置安全啟動的非對稱方法1644被執行如下。
在非對稱方法1644中,OEM內容1424可以使用OEM代碼簽名私密金鑰152來提供OEM代碼簽名公開金鑰154、經簽名的安全啟動管理器1428、及經簽名的韌體圖像914。隨後,設置演算法1468可以在可程式化裝置128中之一者中的特定安全位置處針對代碼簽名公開金鑰154以及經簽名的SBM與經簽名的韌體圖像914進行程式化。在裝置的啟動之後,藉由使用代碼簽名公開金鑰檢查SBM與每一FW部件的簽名來啟動裝置。一些裝置可以支援用於針對不同FW圖像進行簽名的多個代碼簽名金鑰,並且亦可以支援這種模型。
使用MAC方法1646。MAC方法1646亦可以包括雜湊方法。MAC方法1646為用於驗證受保護內容的完整性的訊息認證代碼(MAC)技術。可以針對給定的內容元件計算校驗和或訊息認證代碼。發送器及接收器都共享本地儲存的相同金鑰。發送器依據金鑰來產生密碼校驗和或訊息認證代碼,並將其附加至初始訊息。接收器亦可以產生代碼,並將接收器產生的代碼與所接收的訊息進行比較。匹配校驗和可以確保訊息是來自發送器金鑰持有者。
在安全程式化的情況下,OEM內容1424可以包括安全啟動金鑰1654,安全啟動金鑰1654在可程式化裝置128的單次寫入及讀取保護區域中進行程式化。隨後,安全啟動管理器1640(SBM)與經簽名的韌體圖像914中之每一者可以與韌體圖像雜湊值1656相關聯。可以利用多種方式產生韌體圖像雜湊值1656(例如,使用md5演算法)。可以將受保護的內容儲存至可程式化裝置128的寫入保護區域。
在重新啟動之後,可程式化裝置128可以讀取安全韌體內容的每一片段(例如,安全啟動管理器1640、應用程式圖像等),並產生即時雜湊值1658(例如,md5雜湊值),以及將其與韌體圖像雜湊值1656進行比較,韌體圖像雜湊值1656是針對韌體圖像的此片段而產生並儲存於可程式化裝置128中。若雜湊值匹配,則啟動處理成功,否則失敗。此舉可以防止經簽名的韌體圖像914的篡改,經簽名的韌體圖像914的篡改將導致當前或即時雜湊值1658具有不同雜湊值。
設置FW保護使用案例1422。在此使用案例下,經包裝的OEM內容1426可以包括經加密的韌體圖像914與韌體解密金鑰1674。隨後,可以將OEM內容1424解包裝並導入安全控制器114(例如,硬體安全模組)。編程器112上所運行的設置演算法1468從安全控制器114接收經加密的韌體圖像914與韌體加密金鑰,以及藉由在裝置上的單次寫入讀取保護儲存處針對經加密的韌體圖像914與加密金鑰1662進行程式化來設置裝置。在另一方式中,亦可以使用裝置身份公開金鑰154在每一裝置的基礎上包裝加密金鑰1662,隨後經程式化至可程式化裝置,此方式比實體保護下簡單針對韌體加密金鑰1662進行程式化的先前方式更安全。
可以藉由導入OEM內容1424來實現生產計數使用案例1422,隨後在安全控制器(HSM)中保護而免於修改。此機制提供針對過度生產的OEM完全控制。
根據架構及使用案例的上述描述,安全控制器(例如,硬體安全模組)針對安全程式化系統100提供用於安全儲存資料(例如,OEM輸入及秘密、秘密金鑰、及設置處理期間產生的密碼資料)的能力。此舉可以包括安全執行密碼操作、簽名及認證證書、資料的加密/解密、或其組合。
根據上述描述,清楚地,編程器112藉由運行用於管理安全控制器114與裝置之間的資料及秘密的處理及移動的設置演算法來作為整合部分(作為控制器)。編程器亦將用於使用PHY介面連接將安全憑證與韌體圖像讀取及寫入可程式化裝置的能力提供至晶片。
現在參照第17圖,圖示裝置管理步驟1702的實例。在裝置管理步驟1702中,安全程式化系統100的裝置追蹤系統1704可以維護離開安全程式化前台1462之後的可程式化裝置128的生命週期歷史與用量的記錄。
裝置追蹤系統1704可以維護具有可程式化裝置128的用量及狀態記錄的資料庫或其他資料儲存子系統。裝置追蹤系統1704可以維護記錄(例如,裝置追蹤記錄)(包括裝置識別、身份裝置證書、裝置出生證書、及其他狀態及身份資訊)。
裝置追蹤記錄1708為用於識別可程式化裝置128的狀態的資料記錄。舉例而言,裝置追蹤記錄1708可以包括有關與可程式化裝置128及裝置追蹤記錄1708中之一者的裝置識別302相關的重要事件或動作的資料。這可以包括啟動日期、一或更多個用量日期、許可日期、許可證有效期範圍、終止日期、或其他資訊。
裝置追蹤記錄1708可以具有多種格式。舉例而言,裝置追蹤記錄1708可以具有XML格式、文本格式、二進制格式、編碼格式、或能夠表示所期望資訊的其他資料格式。
裝置追蹤記錄1708可以用於啟用多種類型的下游服務。這可以包括裝置管理服務、可追蹤性服務、審核服務、及其他類似服務。
裝置管理服務允許可程式化裝置128的遠端資料收集及配置。可程式化裝置128可以與裝置追蹤系統1704通訊,以更新裝置追蹤資料庫。可程式化裝置128可以包括裝置及系統(包括智慧型電話、半導體裝置、記憶體、網路系統、電路板、混合系統、或其他類似裝置及系統)。
裝置追蹤系統1704可以利用各種方式更新。舉例而言,可程式化裝置128可以與裝置追蹤系統1704形成直接網路鏈接,並更新資料庫。在另一實例中,當網路鏈接暫時可用時,可程式化裝置128可以在本地端記錄事件並更新裝置追蹤系統1704。在又一實例中,可程式化裝置128可以記錄事件資訊,並傳輸至能夠更新裝置追蹤系統1704的中間系統。
在另一實施例中,裝置追蹤系統1704可以啟動與可程式化裝置128的連接,以檢索所儲存的事件資料。裝置追蹤系統1704可以與具有事件記錄的中間系統連接,以及從中間系統檢索事件記錄。
裝置管理服務可以利用各種方式執行。舉例而言,雲端式服務(例如,裝置生命週期管理應用程式)需要雲端上載服務。這些應用可能需要與可程式化裝置128的安全連接。此舉可以藉由將設置至可程式化裝置128的裝置證書提供回到OEM 1416來實現。OEM 1416現在可以將可程式化裝置128中之每一者的身份(通常使用裝置證書)填充至雲端。舉例而言,此舉可以使用可公開存取的雲端服務所支援的雲端式應用程式程式化介面(API)來執行。此處理針對可程式化裝置128中之每一者提供雲端裝置身份1710,而使得與裝置的通訊可以是安全的。
審核服務1714可以追蹤可程式化裝置128的製造資訊。舉例而言,裝置追蹤記錄1708可以提供關於要求生產多少裝置以及每一次作業運行生產多少裝置的製造批次資訊。將資訊進行加密及簽名,隨後回傳至位於OEM開發前台1460處的追蹤系統。
可追蹤性服務1716可以在裝置的生命週期內追蹤可程式化裝置128。此舉可以藉由將追蹤裝置證書1718提供回至OEM 1416來完成,隨後將追蹤裝置證書1718儲存在安全程式化前台、OEM站點、或其他位置處的製造執行系統(MES)702中。追蹤裝置證書1718可以包括有關可程式化裝置128的初始製造及身份的資訊。
在說明性實例中,追蹤裝置證書1718可以是裝置出生證書1720。可程式化裝置128中之每一者可以具有裝置出生證書1720。裝置出生證書1720為可以安全保存用於描述裝置的製造歷史的資訊的資料物件。此舉可以包括來自矽供應商、OEM、編程器、及參與裝置的製造處理的其他實體的識別符及參數資訊。
舉例而言,裝置出生證書1720可以包括具有關於製造裝置的原始矽供應商的資訊的矽供應商裝置證書926。此舉可以包括最初製造裝置的時間、日期、位置、及矽供應商識別符。裝置出生證書1720亦可以包括關於中間SKU操作、安全設置、及資料程式化的資訊。裝置出生證書1720可以包括中間程式化資訊(例如,編程器識別符、插槽號碼、韌體版本號碼、及用於裝置上所執行的操作的中間位置及實體的其他類似資訊)。
可追蹤性服務1716可以用於在裝置出生證書1720通過系統時進行更新。可替代地,在追蹤系統每一次可存取可程式化裝置128時,可追蹤性服務1716可以用於將來自裝置出生證書1720的資訊記錄在裝置追蹤記錄1708中。
現在參照第18圖,圖示SKU配置模式1804的實例。在SKU配置模式1804中,安全程式化系統1802可以初始化可程式化裝置128,以在單一操作中利用不同配置產生可程式化裝置128的一或更多個版本。
安全程式化系統1802可以配置可程式化裝置128的特徵,以建立多個最終裝置類型配置。可以藉由具有不同屬性的不同存貨單位(SKU)來識別最終裝置類型配置中之每一者。
就可配置特徵而言,可程式化裝置128可以處於空白或原始狀態。空白狀態可以表示可用於配置的所有特徵的超集。用於控制特徵的機制可以包括安全保險絲、設定資料、可配置暫存器、控制位元、記憶體區域、及其他類似元件。此等特徵可以用於控制可程式化裝置128的不同操作態樣。
舉例而言,可程式化裝置128(例如,快閃記憶體裝置)可以藉由設定用於啟動或禁用基本裝置的不同記憶體區域的參數來配置可用記憶體尺寸,以減少可用記憶體尺寸。此舉可以允許系統改變基本裝置的記憶體尺寸,並使用相同基本裝置來建立具有不同記憶體尺寸的不同SKU。基於設定禁用總記憶體區域的某些部分,可以將具有256+GB的總記憶體的快閃記憶體裝置配置成128 GB裝置、64 GB裝置、或32 GB裝置。
在另一實例中,可程式化裝置128亦可以包括其他記憶體區域(例如,單次寫入記憶體區域)(亦可以配置成可存取或不可存取)。其他實例可以包括設定用於啟用或停用微控制器單元中的安全特徵的控制位元、設定用於改變混合裝置中的錯誤校正的等級的暫存器、將配置資料值程式化至安全記憶體位置、及其他特徵。
安全程式化系統1802可以接收具有SKU配置1824的SKU資料物件1826。SKU資料物件1826為具有用於一或更多個SKU配置的資訊的資料結構。SKU資料物件1826可以是目標程式化作業1810的一部分。
SKU配置1824為表示SKU中之一者的設定的資料結構。SKU配置1824可以包括針對特定SKU而程式化至可程式化裝置128中的配置資料。舉例而言,SKU配置1824可以包括用於設定安全保險絲、資料區域、可配置暫存器、控制位元、及用於定義SKU的其他資料的資訊。
安全程式化系統1802可以利用各種方式來配置及程式化一組可程式化裝置128。在一個實施例中,安全程式化系統1802可以執行三個通常操作階段:SKU配置、安全設置、及資料程式化。SKU配置階段可以將基本裝置定製成一或更多個SKU。安全設置階段可以將個別及群組安全資訊設置至可程式化裝置128。資料程式化階段可以將特定內容部署至可程式化裝置128的個體或群組。
在一個實例中,SKU配置操作可以將所有可程式化裝置128配置成一種類型的SKU。在針對可程式化裝置進行SKU配置之後,安全設置操作可以將個別安全資訊設置至特定裝置。最後,資料程式化或韌體程式化階段可以將內容程式化至可程式化裝置128。因此,在此情況下,耦接至安全程式化系統1802的可程式化裝置128中之每一者可以具有相同SKU配置、個別安全設置配置、及相同內容。
應理解,可能具有其他配置。在另一實例中,SKU配置可以不同地配置一批次裝置中的一些可程式化裝置128,其中一些具有一個SKU配置,而其他具有不同的SKU配置。此舉可以包括第一SKU 1816、第二SKU 1818、第三SKU 1820、及第四SKU 1822。儘管已經圖示四個SKU,但是應理解,可以使用任何數量的SKU。
在又一個更極端的實例中,耦接至安全程式化系統1802的可程式化裝置128中之每一者可以個別配置成具有單獨的SKU配置、單獨的安全設置、及單獨的內容。代表不同SKU的可程式化裝置128可以具有不同的裝置身份特徵及不同內容。可程式化裝置128中之每一者可以具有不同的識別配置(包括裝置識別302、裝置出生證書1720、安全金鑰106、或其他識別值中之一或更多者)。可程式化裝置128中之每一者可以是不同的裝置類型、不同的尺寸、不同的安全等級、或其他實體屬性。
可程式化裝置128可以利用不同方式耦接至編程器112。在一個實施例中,可程式化裝置128可以安裝在裝置轉接器208中,其中所有目的地插槽210具有相同配置。在另一實施例中,如第18圖的虛線所示,可以使用系統內編程器1812將可程式化裝置128耦接至編程器112。在又一實施例中,如點鏈線所示,可程式化裝置128可以透過網路鏈接1320耦接至編程器112。
應理解,系統內編程器1812可以包括不同類型的編程器(可以在安裝於系統時針對部件進行程式化)。此舉可以包括電路內編程器、板上編程器、PCB編程器、及其他類似變體。可以將不同實施例實現為針對一種裝置類型或一次連接的個別配置。
儘管安全程式化系統1802的一個常見實施例可以具有利用與所有可程式化裝置128相同的SKU配置及目標內容來耦接至程式化單元110的可程式化裝置128,但是應理解,安全程式化系統1802可以是可以支援其他混合裝置配置的模組化系統。在一個替代實例中,裝置轉接器208可以經配置以具有用於安裝不同類型的可程式化裝置128的多種類型的目的地插槽210。在此情況下,裝置轉接器208的一個部分可以經配置以具有一種類型的目的地插槽210以及具有可程式化裝置128(例如,快閃記憶體晶片)。裝置轉接器208的另一部分可以經配置以具有不同類型的目的地插槽210以及具有不同類型的安裝晶片(例如,具有處理器及快閃記憶體的晶片上的系統)。每一部分可以代表一種類型零件的托盤。
可程式化裝置128可以利用包括有線、無線、及智慧型連接的不同類型的連接來耦接至編程器112(例如,系統內編程器)。在一個實施例中,可程式化裝置128可以透過網路鏈接耦接至編程器112。此舉可以允許在本地端或遠端設置可程式化裝置128,並且可以使用可程式化裝置128上所運行的安全代理1806來與編程器112安全連接以及安全設置可程式化裝置128。此舉可以是可程式化裝置128為智慧型電話、電路板、消費者系統、或其他類似裝置及系統的情況。
可以使用安全物件(例如,第一安全物件602)來實現安全代理1806。安全代理1806可以利用用於密碼支援(例如,加密、解密、簽名、包裝、解包裝、或其他類似密碼功能)的HSM。安全代理1806可以支援與安全程式化系統1802的加密通訊。
在又一實施例中,可程式化裝置128可以經由系統內編程器1812耦接至編程器112。當已經安裝在產品或電路板上時,此舉可以允許針對可程式化裝置128進行設置及程式化。安全代理1806可以在系統內編程器112或可程式化裝置128上執行。
應理解,安全程式化系統1802可以具有混合配置,混合配置具有包括裝置轉接器208、目的地插槽210、網路鏈接、及系統內編程器1812的連接的混合。
硬體安全模組1474(HSM)提供專用的密碼能力,以高效且高速執行安全任務。安全程式化系統1802可以使用硬體安全模組1474中之一或更多者。取決於配置,硬體安全模組1474可以是程式化單元110、編程器112、與可程式化裝置128整合、或耦接至系統的部件的單獨模組的一部分。舉例而言,硬體安全模組1474可以是程式化單元110的安全控制器114、與可程式化裝置128相關聯的安全執行單元324、安全共同處理器、密碼晶片、安全加速器、嵌入式安全電路系統、硬體模組、FPGA、特殊應用積體電路、或其他類似硬體安全模組。
在可替代配置中,硬體安全模組1474亦可以實現為在不同類型的硬體(包括系統內的處理器、網路附接式處理器、雲端計算元件、共同處理器、或其他類似的計算資源)上運行的安全軟體(例如,SoftHSM)。硬體安全模組1474亦可以部分以硬體且部分以軟體來實現為混合系統。
SKU設置為處理的一部分,其中藉由配置或停用某些特徵來將參考基本矽產品轉變成多種產品。舉例而言,可以藉由停用基本矽產品的某些特徵來建立MCU系列的不同成員。此等特徵可以包括不同的可用快閃記憶體尺寸、SRAM尺寸、I/O功能、或其組合。
現有的程式化系統執行SKU配置的三個階段;安全設置與資料程式化為裝置製造期間的三個獨立的單獨步驟。可以在一個位置或系統中進行SKU配置,隨後傳輸至另一位置,以進行安全設置及資料程式化。在不同設備及位置上執行這些多種階段可能耗時又沒效率。安全程式化系統1802可以在可程式化裝置128的單一主控端中執行所有三個階段。用於在單一主控端中安裝可程式化裝置128並執行所有三個階段的能力可增加效率,減少製造時間,並簡化整體操作。用於安全接收SKU資訊、安全設置資訊、及用於資料程式化的安全資料及內容的能力讓製造操作能夠更有效。
如前所述,一個實施例可以包括在一個單一程式化操作中配置、設置、及程式化的可程式化裝置128中之所有者。SKU配置針對正在製造的當前批次中的可程式化裝置128中之所有者都是通用的。在SKU配置階段之後,可程式化裝置128中之每一者可以具有相同的SKU配置,並且實質上看起來相同。安全設置可以添加單獨的安全資訊,而可以讓可程式化裝置128中之每一者具有不同安全屬性。區別因素可以包括嵌入式安全金鑰、識別號碼、日期/時間戳記、及其他類似值。最後,資料程式化階段可以將相同內容程式化至裝置中之每一者。在一些情況下,在資料程式化階段處可以進行附加定製(例如,許可證資訊、序列號碼、或其他類似資訊)。
在另一替代實施例中,編程器112可以配置可程式化裝置128中之每一者(在一個時間處加載不同內容)。可程式化裝置128中之每一者可以同時個別程式化。內容可以包括韌體圖像、媒體圖像、資料、序列號碼、及其他類似資料。
編程器112可以經配置以具有足夠的記憶體及處理功率,以一次設置連接至編程器112的可程式化裝置128中之所有者。此舉允許在目的地插槽210中的可程式化裝置128與耦接至編程器112的裝置轉接器208的一個主控端中同時生產具有不同內容的多種裝置類型。此舉可以在製造處理中提供額外的靈活性,並增加安全程式化系統1802的效率及利用速率。
可以利用多種方式提供可程式化裝置128的個性化內容。舉例而言,安全程式化系統1802可以接收用於不同群組的可程式化裝置128的多個內容有效負載。在另一實例中,編程器112可以偵測個別可程式化裝置128的屬性,並且針對可程式化裝置128的不同類型來定製內容的單一副本。
在說明性實例中,程式化單元110可以接收一或更多個目標程式化作業1810,並建立各種最終產品。SKU中之每一者可以代表不同終端部件,並且可以具有針對不同類型的可程式化裝置128而配置的不同內容。
安全程式化系統1802可以包括具有編程器112與安全控制器114的程式化單元110。安全控制器114可以至少部分以硬體實現,並且可以是硬體安全模組。
編程器112可以利用幾種方式耦接至可程式化裝置128。這可以包括裝置轉接器208、系統內編程器1812、網路鏈接1320、或其組合。編程器112可以一次利用一個類型的介面來配置,但應理解,一些配置可以利用多於一種類型的介面來配置。
在第一實例中,編程器112可以耦接至裝置轉接器208,裝置轉接器208可以具有安裝在目的地插槽210中的可程式化裝置128中的兩個。可程式化裝置128可以是單一類型(例如,第一SKU 1816)或多種類型(例如,第一SKU與第二SKU 1818)。應理解,附接至裝置轉接器208的目的地插槽210可以是任何合理數量。目的地插槽210的數量可以基於可用實體空間的數量與可程式化裝置128的尺寸。
在第二實例中,可以使用系統內編程器1812將編程器112耦接至可程式化裝置128中之一者。此舉可以允許當可程式化裝置128安裝在電路板上或作為最終產品的一部分時,編程器112設置可程式化裝置128。編程器112可以設置可程式化裝置128,以形成第三SKU 1820。應理解,在製造期間可以存在附接至編程器112的一或更多個系統內編程器1812。可以藉由編程器112上的可用連接的數量或可用實體空間的數量來確定系統內編程器1812的數量。
在第三實例中,編程器112可以使用網路鏈接1320來耦接至可程式化裝置128。此舉可以允許安全程式化系統1802遠端更新可程式化裝置128。此舉可能是可程式化裝置128為智慧型電話、終端產品、或其他遠端裝置的情況。編程器112可以設置可程式化裝置128,以形成第四SKU 1822。可以藉由網路連接的可用性與可用網路頻寬的數量來確定可以經程式化的可程式化裝置128的數量。
因此,安全程式化系統1802可以在單一操作中建立多個SKU裝置。在耦接至可程式化裝置128之後,安全程式化系統1802可以檢索與可程式化裝置128相關聯的裝置證書以及其他資訊,形成具有目標內容的設置封包1824,以及將設置封包1824傳輸至可程式化裝置128,以形成多個SKU。此舉可以減少可程式化裝置128需要藉由系統實體操縱的次數,而藉此減少處理所需的總時間。
現在參照第19圖,圖示收集憑證階段1902的實例。收集憑證階段1902可以展示用於收集及定義安全程式化系統100的資料結構的處理。
安全程式化系統100可以包括可以在系統中執行各種任務的幾個不同的實體或位置。這些實體可以包括受信任的證書頒發機構1904、矽供應商1906、原始裝備製造商位置1908、金鑰包裝工具1910、批發商1912、OEM管理系統(OMS)1914、OEM實體1916、工廠製造系統(FMS)1918、及資料管理系統(DMS)1920。
安全程式化系統100可以使用各種方式在位置與實體之間安全發送訊息及資料物件。舉例而言,可以使用JSON網頁令牌(JWT)針對訊息及資料物件進行簽名及加密。JWT為用於儲存或傳輸經簽名或經加密內容的資料物件。JWT資料物件為文本式,並且包括標頭、有效負載、及簽名。下面提供關於JWT的詳細資訊。
收集憑證階段1902可以包括用於產生憑證及其他資產的幾個步驟。各種步驟可以在不同位置與實體處或在不同位置與實體之間進行。收集憑證階段1902可以允許OEM 1416準備用於部署至批發商1912的封包。在說明性實例中,批發商1912可以是合約製造商,而接收用於製造由來自OEM 1416的內容所定義的零件的訂單。OEM 1416可以藉由適當配置發送至批發商1912的資訊來控制製造處理。
可以在矽供應商1906處執行產生HSM金鑰對步驟1922,以根據需要來產生HSM金鑰對1950以及其他安全金鑰對。矽供應商1906可以使用本地端硬體安全模組來產生HSM金鑰對1950。在傳輸至批發商1912之前,可以藉由金鑰包裝工具1910來產生及包裝HSM金鑰對1950。HSM金鑰對1950可以具有HSM公開金鑰154以及HSM私密金鑰152。
在說明性實例中,HSM金鑰對150可以鏈接至具有HSM識別符1956的目標HSM裝置的特定硬體。此HSM裝置可以是安全程式化系統100的安全控制器114。
建立SV授權步驟1924可以建立矽供應商授權物件(SV_Auth元件1960)(可以包含HSM_PUB_KEY)。可以使用SV_PRIV_KEY將SV_Auth元件1960簽名為JWT資料物件。這可以是矽供應商私密金鑰。
包裝金鑰步驟1926可以使用金鑰包裝工具1910,以包裝HSM公開金鑰與HSM私密金鑰。這可以是非JWT資料元件。可以將SV_Auth元件1960簽名為JWT資料物件的一部分,並從矽供應商1906發送至批發商1912。
分配包裝金鑰步驟1928可以將經包裝的公開及私密金鑰、HSM私密金鑰152、及HSM公開金鑰154發送至批發商1912。這可以是非JWT操作。
在可選擇步驟1930中,可以在信任證書頒發機構1948處建立OEM信任鏈證書,並且提供OEM信任鏈證書以建立回到根證書的有效信任鏈。證書可以包括公開金鑰(OEM_CERT_PUB_KEY),並使用受信任的CA私密金鑰152(例如,TRUSTED_CA_PRIV_KEY)來產生簽名。
信任鏈為具有終端實體證書的安全物件與來自受信任證書頒發機構的根證書之間的可驗證鏈接。改變中的每一鏈接都可以單獨驗證。鏈接的組合可以展示從受信任的證書頒發機構一直回到根證書的不間斷的信任鏈。
在建立JWT步驟1932中,OEM 1416可以建立設置請求1958(例如,prov_req)(可以包括設置所需的金鑰及政策)。設置請求1958可以是使用OEM信任根私密金鑰152(例如,OEM_ROT_PRIV_KEY)來進行簽名的JWT資料物件。在實例中,產品SKU資訊可以包括在prov_req中,而圖像簽名公開金鑰亦可以在prov_req中。
包裝OEM信任鏈證書步驟1934可以使用金鑰包裝工具1910來包裝OEM信任鏈證書1964。這是非JWT物件。
包裝OEM證書公開私密金鑰步驟1936可以用於使用金鑰包裝工具1910來包裝OEM證書公開私密金鑰152(例如,OEM_CERT_PUB_PRIV_KEY值)。這可以是非JWT物件。
包裝OEM信任根公開私密金鑰步驟1938可以用於使用金鑰包裝工具1910來包裝OEM信任根公開私密金鑰1968(例如,OEM_ROT_PUB_PRIV_KEYS值)。這可以是非JWT物件。
包裝簽名公開私密金鑰步驟1940可以用於使用金鑰包裝工具1910來包裝簽名公開私密金鑰152(例如,SIGNING_PUB_PRIV_KEY值)。這可以是非JWT物件。
向批發商傳輸內容步驟1942可以將設置請求1958及其他資料物件從OEM位置1006傳輸至批發商1912。此舉可以包括OEM信任鏈證書1964的包裝版本、OEM證書公開私密金鑰1966(OEM_CERT_PUB_PRIV_KEY值)、OEM信任根公開私密金鑰1968(OEM_ROT_PUB_PRIV_KEYS值)、及簽名公開私密金鑰1970(SIGNING_PUB_PRIV_KEY值)。此外,安全啟動圖像1946與明文韌體圖像914亦可以從OEM 1416傳輸至批發商1912。
可以利用多種方式針對系統中所使用的資料物件進行簽名、包裝、及加密。在說明性實例中,資料物件可以是JWT物件。JWT資料物件可以用於儲存及傳輸安全內容。JWT資料物件使用JavaScript線上註釋(JSON)來表示標頭、有效負載、及簽名。JWT標頭可以包括資訊(例如,用於針對JWT進行簽名或加密的演算法、描述待簽名或加密的內容類型的類型、或其組合)。
JWT有效負載可以是JWT資料物件中所封裝的資料物件的文本表示。簽名可以是唯一表示內容的數位值。
JWT資料物件可以嵌套。此舉意指可以針對經簽名的JWT資料物件進行第二次簽名或加密,而可以防止未經授權的使用者移除或觀察初始簽名。
JWT資料物件可以使用多種簽名演算法。這可以包括HMAC+SHA256、RSASSA-PKCS1-V1_5+SHA256、ECDSA+P-256+SHA256、或其他類似的簽名演算法。雜湊式訊息認證碼(HMAC)實現對稱密碼,並允許使用共享金鑰來針對訊息進行簽名。RSA(Rivest、Shamir、Adleman)與ECSA(橢圓曲線數位簽名演算法)為用於實現非對稱密碼並允許使用公開金鑰/私密金鑰針對訊息進行簽名的演算法。
現在參照第20圖,圖示產品配置階段2002的實例。產品配置階段2002可以建立產品配置及作業封包。
在部署步驟2004中,批發商1912可以將SV_Auth元件1960與相關聯資料物件及檔案傳輸至OEM管理系統924。OEM管理系統924(例如,程式化單元110)可以接收SV_Auth元件1960及相關聯內容,並針對可程式化裝置128進行程式化。
SV_Auth元件1960可以鏈接至用於設置及保護可程式化裝置128的各種安全及非安全資訊。舉例而言,SV_Auth元件1960可以鏈接至HSM私密金鑰152的包裝版本、HSM公開金鑰154、OEM信任鏈證書1964、OEM證書公開私密金鑰1966、OEM信任根公開私密金鑰1968、及簽名公開私密金鑰152。在另一實例中,這些值可以分別表示為HSM_PRIV_KEY、HSM_PUB_KEY、OEM_CHAIN-OF-TRUST_CERTIFICATE、OEM_CERT_PUB_PRIV_KEYS、OEN_ROT_PUB_PRIV_KEYS、及SIGNING_PUB_PRIV_KEY。SV_Auth元件1960可以包括用於指示待建立的產品數量的產品計數2018。
在建立產品識別符步驟2006中,OEM管理系統924(OMS)可以針對等於產品計數2018的一組可程式化裝置128建立產品識別符2020。
在部署至DMS步驟2008中,OEM管理系統924(OMS)可以將SV_Auth元件1960與相關聯經包裝憑證儲存至DMS系統1920的HSM系統1474中。
可以利用產品計數2018、產品識別2026、及經包裝憑證來更新SV_Auth元件1960,並儲存於硬體安全模組1474中。OEM管理系統924(OMS)可以將SV_Auth元件1960轉發至具有HSM系統1474的資料管理系統1920(DMS)。舉例而言,可以利用具有硬體安全模組的編程器112來實現DMS/HSM。產品識別2026可以包括裝置識別符、型號、批次號碼、批號、序列號碼、或其他識別值。
在將設置請求部署至DMS步驟2010中,批發商1912可以將設置請求1958、安全啟動圖像1946、及明文韌體圖像914傳輸至DMS系統1920中。設置請求1958可以包括prov_req物件。
現在參照第21圖,圖示運行作業階段2102的實例。運行作業階段2102可以將資訊從DMS系統1920傳輸至可程式化裝置128,可程式化裝置128包括MCU、快閃記憶體、特殊應用積體電路、現場可程式邏輯閘陣列、定製晶片、唯讀記憶體、混合裝置、晶圓等級部件、智慧型手機、電路板、及其他類似裝置。
運行作業階段2102可以包括以下步驟:提供進入檢查命令步驟2104、設置授權命令步驟2106、及程式化圖像步驟2108。
在提供進入檢查命令步驟2104中,DMS系統1920可以針對每個裝置執行進入檢查命令。這是非JWT物件。
在設置授權命令步驟2106中,可以將授權資訊設置至可程式化裝置128中。這可以包括經簽名的JWT資料物件。
在程式化圖像步驟2108中,可以將韌體圖像程式化至可程式化裝置128中。韌體圖像並非JWT資料物件。
現在參照第22圖,圖示設置授權流程2202的實例。設置授權流程2202可以在具有硬體安全模組1474的DMS系統1920(例如,程式化單元110)上執行,以及在部署於可程式化裝置128(例如,微控制器單元(MCU))之前部署至資料管理系統(DMS)1920。
在驗證SV_Auth步驟2204中,DMS系統1920可以使用HSM系統1474來驗證SV_Auth元件1960。DMS系統1920可以將SV_Auth元件1960與相關聯SV_Auth簽名2230傳輸至待驗證的HSM系統1474。在驗證簽名之後,HSM系統1474可以將SV_Auth元件1960與相關資訊傳輸回到DMS系統1920。
在驗證prov_req步驟2206中,DMS系統1920亦可以使用HSM系統1474與DMS系統1920來驗證prov_req 2232。在驗證簽名之後,HSM系統可以將prov_req 2232傳輸回到DMS系統1920。
在建立rot_auth步驟2208中,DMS系統可以藉由組合OEM_ROT_PUB_KEY、HSM_PUB_KEY、及產品識別2026來建立JWT rot_auth值2234。
在簽名rot_auth步驟2210中,DMS系統1920可以使用OEM_ROT_PRIV_KEY來針對JWT rot_auth值2234進行簽名,並傳輸回到HSM系統1474。
在建立HSM證書步驟2211中,DMS系統1920可以使用簽名公開金鑰154(SIGNING_PUB_KEY)與OEM證書私密金鑰152(OEM_CERT_PRIV_KEY)來建立HSM證書2238(例如,HSM_certificate)。
在簽名HSM證書步驟2212中,可以使用OEM_CERT_PRIV_KEY在HSM公開金鑰154處針對HSM證書2238進行簽名,並且可以將經簽名的HSM證書2238傳輸回到DMS系統1920。
在簽名ROT_CMD步驟2214中,可以依據SV_Auth值、rot_auth值、產品識別2026、及HSM_PRIV_KEY建立rot_cmd值。
在更新ROT_CMD步驟2216中,可以使用DEV_PRIV_KEY針對包含DEV_PUB_KEY的JWT物件dev_rsp進行簽名。
在驗證dev_resp步驟2218中,可以將dev_resp值從DMS系統1920傳輸至HSM系統1474並進行驗證。
在建立x509裝置證書步驟2220中,可以使用證書模板2244與DEV_PUB_KEY來形成X509裝置證書2240(dev_cert)。可以使用SIGNING_PRIV_KEY來產生簽名。
在簽名dev_cert步驟2221中,可以使用SIGNING_PRIV_KEY來針對X509裝置證書2240進行簽名。可以在HSM系統1474中執行簽名。
在建立信任鏈步驟2222中,DMS系統1920可以用於建立包含裝置證書1630、HSM證書2238、及OEM信任鏈證書1964的信任鏈元件的陣列。
在簽名prov_cmd步驟2224中,HSM系統1474可以針對具有SV_Auth值、prov_req值、及信任鏈元件的陣列的prov_cmd值進行簽名。可以使用HSM_PRIV_KEY來針對prov_cmd值進行簽名。可以將經簽名的值傳輸至DMS系統1920。
在部署prov_cmd步驟2226中,DMS系統1920可以將prov_cmd值傳輸至MCU可程式化裝置128。設置狀態2242可以被傳輸回到DMS系統1920。
現在參照第23圖,圖示程式化圖像階段2302的實例。程式化圖像階段2302可以將目標內容程式化至可程式化裝置128中。在一個實施例中,針對m個圖像中之每一者,將安全啟動圖像1946或明文韌體圖像從DMS系統1920(例如,編程器112)傳輸至可程式化裝置128(例如,微控制器單元)中。在針對可程式化裝置128進行程式化之後,在DMS系統1920處產生程式化狀態2304。
現在參照第24圖,圖示設置流程2402的結束的實例。設置流程2402的結束可更新安全程式化系統100的各個部件的狀態記錄。資訊可以發送回到工廠管理系統、因素資訊系統、製造報告系統、或用於報告的類似資料儲存庫。
在DMS系統1920中,最新程式化作業的程式化狀態2304可以回傳到連接系統2406。狀態記錄2404可以傳輸回到批發商1912與OEM 1416。
現在參照第25圖,圖示用於安全程式化系統100的設置處理流程的實例。這三個處理流程展示逐漸更加安全的設置處理。
第一設置處理2502並未在OEM 1416處使用JWT。藉由安全程式化系統建立信任鏈元件。安全程式化系統可以將明文韌體圖像程式化至可程式化裝置128中。安全程式化系統100可以將安全啟動圖像1946程式化至可程式化裝置128中。
可以利用各種方式來配置第一設置處理2502。舉例而言,第一設置處理2502可以包括三個步驟:收集憑證步驟、設置步驟、及程式化步驟。
第一收集憑證步驟2504可以收集及準備用於設置可程式化裝置128所需的資訊。矽供應商1906可以產生使用包裝工具與HSM公開金鑰154進行包裝的第一金鑰對150。此舉可以確保經包裝的第一金鑰對150僅能使用儲存在安全控制器114中的HSM私密金鑰152來解包裝。金鑰對中的第一私密金鑰152可以用於針對JWT命令進行簽名。
矽供應商1906向批發商1912提供包含所產生的金鑰對的第一公開金鑰154的SV_Auth元件1960。安全控制器114可以建立信任鏈2532。
隨後,OEM 1416可以產生四個金鑰:OEM_CERT_PUB_PRIV_KEYS、OEM_ROT_PUB_PRIV_KEYS、SIGNING_PUB_PRIV_KEYS、及圖像簽名金鑰。通常,每個圖像只有一個金鑰。然而,應理解,可能具有其他配置。
OEM 1416並未使用JWT來將憑證遞送至批發商1912。OEM 1416使用包裝工具來包裝四個金鑰。隨後,OEM 1416可以將以下內容安全遞送至批發商1912。這可以包括四個經包裝的金鑰、產品的證書模板(又稱簽名金鑰)、裝置金鑰的證書模板、二進制檔案中的JWT prov_req、二進制檔案中的安全啟動圖像1946、及明文韌體圖像914。每一圖像可以存在於二進制檔案中。
第一設置步驟2506可以配置安全控制器114,以準備用於設置至可程式化裝置128中的資料及內容。安全控制器114可以建立以下資料元件:rot_auth、使用產品證書模板的產品證書(chain_of_trust)、使用裝置證書模板的裝置證書(dev_cert)、rot_auth_pkg、rot2_auth_pkg、rot_cmd、及prov_cmd。
第一程式化步驟2508可以將目標資料程式化至可程式化裝置128中。編程器112可以設置韌體簽名公開金鑰;每個圖像存在一個金鑰,將安全啟動圖像程式化至可程式化裝置128中,並將明文韌體圖像914程式化至可程式化裝置128中。
第二設置處理2512可以藉由使用OEM 1416所建立的信任鏈以及使用OEM 1416處的JWT來改善安全性。
在第二設置處理2512中,第二收集憑證步驟2514可以收集及準備用於設置可程式化裝置128所需的資訊。第二設置處理2512中的第二收集憑證步驟2514是與第一設置處理2502中的收集憑證步驟基本上類似。然而,在第二設置處理2512中,編程器並未建立信任鏈,而OEM 1416建立信任鏈的根與中間鏈,並且OEM 1416可以產生四個金鑰:OEM_CERT_PUB_PRIV_KEYS、OEM_ROT_PUB_PRIV_KEYS、SIGNING_PUB_PRIV_KEYS、及圖像簽名金鑰。通常,每個圖像只有一個金鑰。
此外,OEM 1416使用JWT以將證書遞送至批發商1912。OEM 1416使用包裝工具1470來包裝金鑰中的兩個(SIGNING_PUB_PRIV_KEYS與圖像簽名金鑰2534)。
OEM 1416可以使用JWT以將目標資料遞送至批發商1912。OEM 1416使用包裝工具來包裝金鑰及資料。隨後,OEM 1416可以將以下經包裝的資料安全遞送至批發商1912。這可以包括兩個經包裝的金鑰、產品的JWT信任鏈(又稱簽名金鑰)、裝置金鑰的證書模板、二進制檔案中的JWT prov_req、二進制檔案中的安全啟動圖像1946、明文韌體圖像914、JWT rot_auth值、及JWT rot_auth_pkg。
第二設置步驟2516可以配置安全控制器114,以準備用於設置至可程式化裝置128中的資料及內容。安全控制器114可以建立以下資料元件:使用裝置證書模板的裝置證書(dev_cert)、rot_auth_pkg、rot2_auth_pkg、rot_cmd、及prov_cmd。
第二程式化步驟2518可以將目標資料程式化至可程式化裝置128中。編程器112可以設置韌體簽名公開金鑰;每個圖像存在一個金鑰,將安全啟動圖像程式化至可程式化裝置128中,並將明文韌體圖像914程式化至可程式化裝置128中。
第三設置處理2522可以藉由使用OEM 1416所建立的信任鏈、使用OEM 1416處的JWT、以及加密韌體圖像914來改善安全性。
在第三設置處理2522中,第三收集憑證步驟2524可以收集及準備用於設置可程式化裝置128所需的資訊。第三設置處理2522中的第三收集憑證步驟2524是與第二設置處理2512中的收集憑證步驟基本上類似。然而,在第三設置處理2522中,OEM 1416建立信任鏈的根與中間鏈,並且OEM 1416可以產生五個金鑰:OEM_CERT_PUB_PRIV_KEYS、OEM_ROT_PUB_PRIV_KEYS、SIGNING_PUB_PRIV_KEYS、圖像簽名金鑰、及韌體加密金鑰1446。同樣地,每個圖像只有一個金鑰。
此外,OEM 1416使用JWT以將證書遞送至批發商1912。OEM 1416使用包裝工具1470來包裝三個金鑰(SIGNING_PUB_PRIV_KEYS、圖像簽名金鑰2534、及韌體加密金鑰1446)。
OEM 1416可以使用JWT以將目標資料遞送至批發商1912。OEM 1416使用包裝工具來包裝金鑰及資料。隨後,OEM 1416可以將以下內容安全遞送至批發商1912。內容可以包括三個經包裝的金鑰、產品的JWT信任鏈(又稱簽名金鑰)、裝置金鑰的證書模板、二進制檔案中的JWT prov_req、二進制檔案中的安全啟動圖像1946、明文韌體圖像914、JWT rot_auth值、及JWT rot_auth_pkg。
第三設置步驟2526可以配置安全控制器114,以準備用於設置至可程式化裝置128中的資料及內容。安全控制器114可以建立以下資料元件:使用裝置證書模板的裝置證書(dev_cert)1454、rot2_auth_pkg、rot_cmd、及prov_cmd。
第三程式化步驟2528可以將目標資料程式化至可程式化裝置128中。編程器112可以設置韌體簽名公開金鑰;每個圖像存在一個金鑰,將安全啟動圖像程式化至可程式化裝置128中,設置韌體加密金鑰,並將經加密的韌體圖像914程式化至可程式化裝置128中。
現在參照第26圖,其中展示根據一或更多個實施例的用於可程式化裝置128的安全程式化系統處理流程2602的實例。安全程式化系統處理流程的各種元件可以在各種系統中執行(包括例如上述系統100的系統)。
在實施例中,可以在通用電腦或專用電腦中的任一者中使用一或更多個電腦程式、其他軟體元件、及/或數位邏輯來實現與以下描述的功能方塊相關聯描述的每一處理,同時執行包括與電腦的記憶體的物理狀態互動及轉換的資料檢索、轉換、及儲存操作。
安全程式化系統處理流程2602可以耦接至可程式化裝置,檢索裝置證書,接收作業控制封包,發送裝置詢問,接收裝置回應,驗證回應,將設置封包傳輸至可程式化裝置,以及針對裝置進行分類。
安全程式化系統處理流程2602可以具有各種配置。舉例而言,安全程式化系統處理流程2602可以包括耦接裝置模組2604、接收作業控制封包模組2606、檢索裝置證書模組2608、裝置詢問模組2610、裝置回應模組2612、驗證回應模組2614、傳輸設置封包模組2616、及分類裝置模組2618。設置處理流程1102的控制流程可以按順序從模組傳遞到模組。
耦接裝置模組2604可以將可程式化裝置128耦接至編程器112。此舉可以包括將可程式化裝置直接耦接至目的地插槽中,使用網路鏈接遠端耦接,以及使用系統內編程器耦接至電路板上。
接收作業控制封包模組2606可以從外部工廠管理系統接收作業控制封包。作業控制封包可以鏈接至目標有效負載,並表示製造可程式化裝置所需的資訊。
檢索裝置證書模組2608可以從耦接至編程器的可程式化裝置提取裝置證書中之一或更多者。裝置證書中的資訊可以用於保護及配置內容及可程式化裝置。
裝置詢問模組2610可以產生裝置特定詢問並將其發送至可程式化裝置。這可以包括硬體安全模組、編程器、可程式化裝置、或其他相關安全金鑰的安全金鑰。
裝置回應模組2612可以接收及解密裝置詢問,產生回應,並將回應發送回到編程器。此舉可以包括利用與可程式化裝置相關聯的私密金鑰來針對從詢問提取的授權值進行加密。
驗證回應模組2614可以認證可程式化裝置,並驗證可程式化裝置的程式化。若這兩個因素都正確,則可程式化裝置128是有效的。
傳輸設置封包模組2616可以將設置封包發送至可程式化裝置。設置封包可以經直接程式化至可程式化裝置中,亦可以在可程式化裝置上部署及執行。
分類裝置模組2618可以檢查以查看可程式化裝置的驗證狀態是正確的。若驗證狀態無效,則可以將可程式化裝置分類至輸出插座中,以進行處置。
6.0. 延伸及替代方案
如本文中所使用的術語「第一」、「第二」、「某些」、及「特定」是作為命名規約,以彼此區隔查詢、計劃、表示、步驟、物件、裝置或其他項目,使得可在這些項目已被介紹之後參照這些項目。除非原本在本文中指定,這些術語的使用並不暗示順序、時序、或所參照之項目的任何其他特性。
在圖式中,各種部件由箭頭描繪為通訊耦接至各種其他部件。這些箭頭僅繪示部件間之資訊流的某些實例。箭頭方向或在某些部件之間缺乏箭頭線皆不應解譯為指示某些部件本身間之通訊的存在或不存在。確實,每一部件可以具有合適通訊介面的特徵,藉由此通訊介面,部件可依所需變得通訊耦接至其他部件,以完成本文中所述的任何功能。
在上述說明書中,已參照許多特定細節描述了本發明的實施例,此等特定細節可隨著實施方案到實施方案而變化。因此,本發明為何物及申請人所欲作為本發明之物的唯一且排他的指示為從此案發佈的請求項集合,包括任何後續的更正,請求項集合呈現如此請求項所用以發佈的特定形式。就此而言,儘管本案的申請專利範圍闡述了特定的請求項依附關係,但注意的是,此案的附屬項特徵可適當地與其他附屬項的特徵及與此案獨立項的特徵結合,且此結合不只是依據請求項集合中所載的特定依附關係。此外,儘管在本文中論述單獨的實施例,但是本文中所論述之實施例及/或部分實施例的任何組合可組合以形成進一步的實施例。
本文中針對如此請求項中所包含的術語明確闡述的任何定義應主宰如申請專利範圍中所使用之如此術語的意義。因此,請求項中未明確記載的限制、構件、屬性、特徵、優點或特性不應以任何方式限制如此請求項的範圍。因此,以說明性而非限制性的意義來看待說明書及圖示。
100:安全程式化系統
102:安全主存儲系統
104:安全主系統
106:安全金鑰
110:程式化單元
112:編程器
114:安全控制器
116:第一安全模組
118:第二安全模組
120:第n安全模組
122:第一轉接器
124:第二轉接器
126:第n轉接器
128:可程式化裝置
130:受信任裝置
132:資料裝置
134:第一資料裝置
136:第二資料裝置
138:第n資料裝置
140:第一受信任裝置
142:第二受信任裝置
144:第n受信任裝置
146:經配對裝置
148:安全資訊
150:金鑰對
152:私密金鑰
154:公開金鑰
202:程式化處理器
204:編程器儲存單元
206:輸入裝置插座
208:裝置轉接器
210:目的地插槽
212:裝置放置單元
214:輸出裝置插座
216:編程器識別
302:裝置識別
304:安全演算法
306:安全證書
314:安全代碼元件
316:識別模組
318:密碼模組
320:認證模組
322:代碼簽名模組
324:安全執行單元
326:安全儲存單元
402:受信任證書
504:進入的信任根(In_RoT)
506:韌體標記
508:產品標記
510:製造標記
512:序列號標記
514:操作標記
516:原始裝備製造商標記(OEM標記)
602:第一安全物件
604:第二安全物件
606:安全執行引擎
620:信任根代碼(RoT代碼)
622:信任根資料(RoT資料)
624:ID令牌
626:密碼令牌
628:金鑰令牌
702:製造執行系統
712:第一板
714:第二板
804:現場可程式化邏輯閘陣列
806:可程式化中央處理單元
808:嵌入式多媒體記憶體控制器
810:微CPU
812:編碼值
814:系統識別
902:MSP系統
904:OEM金鑰材料
906:OEM安全啟動載入器
908:OEM韌體開發系統
910:OEM掌握工具
912:韌體更新服務
914:韌體圖像
916:韌體更新
918:安全啟動載入器
920:安全韌體
922:韌體解密金鑰
924:OEM管理系統
926:矽供應商裝置證書
928:OEM雲
930:工廠管理系統
932:工廠安全系統
933:工廠安全系統證書
934:裝置資料追蹤系統
936:主控系統
938:裝置設置服務
940:OEM開發前台
942:工廠前台
944:編程專案
946:OEM裝置證書
947:OEM裝置證書簽名金鑰
948:生產計數
950:OEM裝置證書模板
951:OEM證書
952:OEM私密金鑰
954:矽供應商公開金鑰
955:矽供應商裝置認證金鑰
956:矽供應商識別符
958:矽供應商私密金鑰
960:矽供應商金鑰對
962:OEM公開金鑰
964:串列資料列表
966:OEM識別符
968:OEM使用者
970:安全元件使用案例
972:微控制器單元使用案例
974:裝置認證金鑰對
976:裝置解密金鑰對
978:當前計數
980:工廠安全系統加密金鑰
982:工廠安全系統資料認證金鑰
1004:矽製造商
1006:OEM位置
1008:程式化中心
1010:編程器位置
1012:裝置位置
1014:第一序列
1016:第二序列
1018:第三序列
1020:步驟
1022:步驟
1024:步驟
1030:步驟
1032:步驟
1034:步驟
1035:步驟
1036:步驟
1038:步驟
1040:步驟
1042:步驟
1044:步驟
1046:步驟
1048:步驟
1050:步驟
1052:步驟
1054:步驟
1056:步驟
1058:步驟
1060:步驟
1062步驟
1064:步驟
1102:設置處理流程
1104:啟動設置作業模組
1106:接收裝置資訊模組
1108:計算加密有效負載模組
1110:設置裝置模組
1112:作業控制封包
1114:目標有效負載
1116:加密的有效負載
1202:設置處理流程
1204:提取裝置證書模組
1206:認證裝置模組
1208:產生OEM裝置證書模組
1210:程式裝置模組
1212:產生驗證狀態模組
1214:分類裝置模組
1300:電腦系統
1302:匯流排
1304:硬體處理器
1306:主記憶體
1308:唯讀記憶體(ROM)
1310:儲存裝置
1312:顯示器
1314:輸入裝置
1316:游標控制器
1318:通訊介面
1320:網路鏈接
1322:本地端網路
1324:主控端電腦
1326:ISP
1328:網際網路
1330:伺服器
1402:安全程式化環境
1403:安全傳輸步驟
1404:開發階段
1406:設置階段
1408:掌握階段
1410:部署階段
1412:製造階段
1414:管理階段
1420:使用案例
1422:使用案例
1424:OEM內容
1426:經包裝的OEM內容
1428:安全啟動管理器
1432:包裝金鑰
1436:安全證書
1440:生產計數資料
1460:OEM開發前台
1462:安全程式化前台
1470:包裝工具
1474:HSM系統
1476:傳輸電腦
1508:OEM產品
1614:認證演算法
1616:矽供應商認證金鑰
1666:詢問回應
1668:公開裝置金鑰
1702:裝置管理步驟
1704:裝置追蹤系統
1708:裝置追蹤記錄
1714:審核服務
1716:可追蹤性服務
1718:追蹤裝置證書
1720:裝置出生證書
1802:安全程式化系統
1804:SKU配置模式
1810:目標程式化作業
1812:系統內編程器
1816:第一SKU
1818:第二SKU
1820:第三SKU
1822:第四SKU
1824:SKU配置/設置封包/資料程式化物件
1826:SKU資料物件
1902:收集憑證階段
1904:受信任的證書頒發機構
1906:矽供應商
1908:原始裝備製造商位置
1910:金鑰包裝工具
1912:批發商
1914:OEM管理系統(OMS)
1916:OEM實體
1918:工廠製造系統(FMS)
1920:資料管理系統(DMS)
1922:產生HSM金鑰對步驟
1924:建立SV授權步驟
1926:包裝金鑰步驟
1928:分配包裝金鑰步驟
1930:可選擇步驟
1932:建立JWT步驟
1934:包裝OEM信任鏈證書步驟
1936:包裝OEM證書公開私密金鑰步驟
1938:包裝OEM信任公開私密金鑰根步驟
1940:包裝簽名公開私密金鑰步驟
1942:向批發商傳輸內容步驟
1946:安全啟動圖像
1948:信任證書頒發機構
1950:HSM金鑰對
1956:HSM識別符
1958:設置請求
1960:SV_Auth元件
1964:OEM信任鏈證書
1966:OEM證書公開私密金鑰
1968:OEM信任公開私密金鑰根
1970:簽名公開私密金鑰
2002:產品配置階段
2004:部署步驟
2006:建立產品識別符步驟
2008:部署至DMS步驟
2010:將設置請求部署至DMS步驟
2018:產品計數
2020:產品識別符
2026:產品識別
2102:運行作業階段
2104:進入檢查命令步驟
2106:設置授權命令步驟
2108:程式化圖像步驟
2202:設置授權流程
2204:驗證SV_Auth步驟
2206:驗證prov_req步驟
2208:建立rot_auth步驟
2210:簽名rot_auth步驟
2211:建立HSM證書步驟
2212:簽名HSM證書步驟
2214:簽名ROT_CMD步驟
2216:更新ROT_CMD步驟
2218:驗證dev_resp步驟
2220:建立x509裝置證書步驟
2221:簽名dev_cert步驟
2222:建立信任鏈步驟
2224:簽名prov_cmd步驟
2226:部署prov_cmd步驟
2230:SV_Auth簽名
2232:prov_req
2234:JWT rot_auth值
2238:HSM證書
2240:X509裝置證書
2242:設置狀態
2302:程式化圖像階段
2304:程式化狀態
2402:設置流程
2404:狀態記錄
2406:連接系統
2502:第一設置處理
2504:第一收集憑證步驟
2506:第一設置步驟
2508:第一程式化步驟
2512:第二設置處理
2514:第二收集憑證步驟
2516:第二設置步驟
2518:第二程式化步驟
2522:第三設置處理
2524:第三收集憑證步驟
2526:第三設置步驟
2528:第三程式化步驟
2532:信任鏈
2534:圖像簽名金鑰
2602:安全程式化系統處理流程
2604:耦接裝置模組
2606:接收作業控制封包模組
2608:檢索裝置證書模組
2610:裝置詢問模組
2612:裝置回應模組
2614:驗證回應模組
2616:傳輸設置封包模組
2618:分類裝置模組
在隨附圖式的圖式中藉由示例的方式(且非限制的方式)說明本發明,而且圖式中類似的元件符號是指稱類似的元件,其中:
第1圖根據一實施例圖示安全程式化系統的說明圖;
第2圖圖示編程器之實例;
第3圖圖示受信任裝置之實例;
第4圖圖示資料裝置之實例;
第5圖圖示裝置識別之實例;
第6圖圖示安全程式化系統的示例性方塊圖;
第7圖圖示安全程式化系統的第二示例性方塊圖;
第8圖為受信任裝置之一個設置者的方塊圖;
第9圖為受管理及安全處理系統的實例;
第10圖為安全元件使用案例的詳細實例;
第11圖為依據一或更多個實施例之針對可程式化裝置的設置處理流程的實例;
第12圖為依據一或更多個實施例之針對可程式化裝置的安全製造處理流程的實例;以及
第13圖為電腦系統的方塊圖,可在此電腦系統上實施本發明的實施例。
第14圖為安全傳輸步驟的實例;
第15圖為安全導入步驟的實例;
第16圖為安全設置步驟的實例;
第17圖為裝置管理步驟的實例;
第18圖為SKU配置模式的實例;
第19圖為收集憑證階段的實例;
第20圖為產品配置階段的實例;
第21圖為運行作業階段的實例;
第22圖為設置授權階段的實例;
第23圖為程式化圖像階段的實例;
第24圖為設置流程的結束的實例;
第25圖為用於安全程式化系統的設置處理流程的實例;以及
第26圖為安全程式化系統處理流程的實例。
國內寄存資訊(請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記)
無
100:安全程式化系統
102:安全主存儲系統
104:安全主系統
106:安全金鑰
110:程式化單元
112:編程器
114:安全控制器
116:第一安全模組
118:第二安全模組
120:第n安全模組
122:第一轉接器
124:第二轉接器
126:第n轉接器
128:可程式化裝置
130:受信任裝置
132:資料裝置
134:第一資料裝置
136:第二資料裝置
138:第n資料裝置
140:第一受信任裝置
142:第二受信任裝置
144:第n受信任裝置
146:經配對裝置
148:安全資訊
150:金鑰對
152:私密金鑰
154:公開金鑰
Claims (20)
- 一種操作一安全程式化系統的方法,包含以下步驟:將可程式化裝置耦接至一程式化單元,該等可程式化裝置至少具有一第一裝置與一第二裝置;接收一作業控制封包與一目標有效負載,該作業控制封包具有一作業認證識別符,該目標有效負載具有一存貨單位(SKU)資料物件,該SKU資料物件具有一第一SKU配置與一第二SKU配置;從該第一裝置檢索一第一裝置證書,該第一裝置證書具有一第一裝置識別符、一第一裝置認證、及一第一裝置公開金鑰;將一第一裝置詢問發送至該第一裝置,回應於該第一裝置詢問,從該第一可程式化裝置接收一第一裝置回應,該第一裝置回應具有一認證值;驗證該第一裝置回應,以產生用於該第一裝置的一認證狀態;回應於該第一裝置回應的一成功驗證,使用該第一SKU配置配置該第一裝置,並使用該第二SKU配置配置該第二裝置,該第一設置封包具有該SKU資料物件,並進行傳輸;以及依據該第一裝置的該裝置認證狀態,將該第一裝置分類到該程式化單元的一輸出插座。
- 如請求項1所述的方法,其中發送該第一裝 置詢問之步驟包括以下步驟:依據該認證值及該第一裝置公開金鑰而在該程式化單元的一安全控制器處產生該第一回應詢問。
- 如請求項1所述的方法,其中接收該第一裝置回應之步驟包括以下步驟:依據該第一裝置詢問與一第一裝置私密金鑰而在該第一裝置處產生該第一裝置回應,且該第一裝置回應是利用該第一裝置的一第一裝置安全控制器所產生。
- 如請求項1所述的方法,其中驗證該第一裝置回應之步驟包括以下步驟:使用該第一裝置公開金鑰而在該程式化單元的一安全控制器處從該第一裝置回應解密該認證值;以及依據與該第一裝置詢問的該認證值匹配的該第一裝置回應的該認證值來產生該認證狀態。
- 如請求項1所述的方法,其中將該等可程式化裝置耦接至該程式化單元之步驟包括以下步驟:利用一系統內編程器(ISP)、一電路內編程器、一板上編程器、或一網路鏈接來將該等可程式化裝置耦接至該程式化單元。
- 如請求項1所述的方法,其中傳輸該第一設置封包之步驟包括以下步驟:使用該第一裝置公開金鑰來加密該第一設置封包的該SKU資料物件;使用該第一裝置私密金鑰而在該第一裝置的一安全控 制器處解密該第一設置封包的該SKU資料物件;以及將該SKU資料物件程式化到該第一裝置。
- 如請求項1所述的方法,其中接收該作業控制封包之步驟包括以下步驟:接收用於該第一裝置的一安全設置物件;使用該第一SKU配置來配置該第一裝置;以及利用該安全設置物件來設置該第一裝置。
- 一種安全程式化系統,包含:一程式化單元,經配置以將可程式化裝置耦接至一程式化單元,該等可程式化裝置至少具有一第一裝置與一第二裝置,該第一裝置具有一第一裝置證書,該第一裝置證書具有一第一裝置識別符、一第一裝置認證、及一第一裝置公開金鑰,該程式化單元經配置以將一第一裝置詢問發送至該第一裝置,並回應於該第一裝置詢問而從該第一可程式化裝置接收一第一裝置回應,該第一裝置回應具有一認證值,以及該程式化單元經配置以將具有該存貨單位(SKU)資料物件的一第一設置封包傳輸至該第一裝置;該程式化單元的一安全儲存單元,用於接收一作業控制封包與一目標有效負載,該作業控制封包具有一作業認證識別符,該目標有效負載具有該SKU資料物件,該SKU資料物件具有一第一SKU配置與一第二SKU配置;該程式化單元的一安全控制器,用於驗證該第一裝置 回應,以產生用於該第一裝置的一認證狀態;以及該程式化單元的一輸出插座,用於依據該第一裝置的該裝置認證狀態來分類該第一裝置。
- 如請求項8所述的系統,其中該安全控制器經配置以依據該認證值及該第一裝置公開金鑰來產生該第一回應詢問。
- 如請求項8所述的系統,其中該程式化單元經配置以依據該第一裝置詢問與該第一裝置私密金鑰來接收該第一裝置處所產生的該第一裝置回應,而該安全控制器經配置以產生該第一裝置回應。
- 如請求項8所述的系統,其中安全控制器經配置以:使用該第一裝置公開金鑰而在該程式化單元的一安全控制器處從該第一裝置回應解密該認證值;以及依據與該第一裝置詢問的該認證值匹配的該第一裝置回應的該認證值來產生該認證狀態。
- 如請求項8所述的系統,其中該程式化單元經配置以利用一系統內編程器(ISP)、一電路內編程器、一板上編程器、或一網路鏈接來將該等可程式化裝置耦接至該程式化單元。
- 如請求項8所述的系統,其中該安全控制器經配置以使用該第一裝置公開金鑰來加密該第一設置封包的該SKU資料物件。
- 如請求項8所述的系統,其中該程式化單元 經配置以接收用於該第一裝置的一存貨單位(SKU)配置以及一安全設置物件,使用該SKU配置來配置該第一裝置,以及利用該安全設置物件來設置該第一裝置。
- 一種用於儲存指令的非暫態電腦可讀取媒體,在藉由一或更多個計算裝置執行該等指令時,造成:將可程式化裝置耦接至一程式化單元,該等可程式化裝置至少具有一第一裝置與一第二裝置;接收一作業控制封包與一目標有效負載,該作業控制封包具有一作業認證識別符,該目標有效負載具有一存貨單位(SKU)資料物件,該SKU資料物件具有一第一SKU配置與一第二SKU配置;從該第一裝置檢索一第一裝置證書,該第一裝置證書具有一第一裝置識別符、一第一裝置認證、及一第一裝置公開金鑰;將一第一裝置詢問發送至該第一裝置,回應於該第一裝置詢問,從該第一可程式化裝置接收一第一裝置回應,該第一裝置回應具有一認證值;驗證該第一裝置回應,以產生用於該第一裝置的一認證狀態;回應於該第一裝置回應的一成功驗證,使用該第一SKU配置配置該第一裝置,並使用該第二SKU配置配置該第二裝置,該第一設置封包具有該SKU資料物件,並進行傳輸;以及依據該第一裝置的該裝置認證狀態,將該第一裝置分 類到該程式化單元的一輸出插座。
- 如請求項15所述的非暫態電腦可讀取媒體,其中在藉由該一或更多個計算裝置執行該指令時,進一步造成發送該第一裝置詢問之步驟包括以下步驟:依據該認證值及該第一裝置公開金鑰而在該程式化單元的一安全控制器處產生該第一回應詢問。
- 如請求項15所述的非暫態電腦可讀取媒體,其中在藉由該一或更多個計算裝置執行該指令時,進一步造成接收該第一裝置回應之步驟包括以下步驟:依據該第一裝置詢問與一第一裝置私密金鑰而在該第一裝置處產生該第一裝置回應,且該第一裝置回應是利用該第一裝置的一第一裝置安全控制器所產生。
- 如請求項15所述的非暫態電腦可讀取媒體,其中在藉由該一或更多個計算裝置執行該指令時,進一步造成以下步驟:使用該第一裝置公開金鑰而在該程式化單元的一安全控制器處從該第一裝置回應解密該認證值;以及依據與該第一裝置詢問的該認證值匹配的該第一裝置回應的該認證值來產生該認證狀態。
- 如請求項15所述的非暫態電腦可讀取媒體,其中在藉由該一或更多個計算裝置執行該指令時,進一步造成將該等可程式化裝置耦接至該程式化單元之步驟包括以下步驟:利用一系統內編程器(ISP)、一電路內編程器、一板上編程器、或一網路鏈接來將該等可程 式化裝置耦接至該程式化單元。
- 如請求項15所述的非暫態電腦可讀取媒體,其中在藉由該一或更多個計算裝置執行該指令時,進一步造成以下步驟:使用該第一裝置公開金鑰來加密該第一設置封包的該SKU資料物件;使用該第一裝置私密金鑰而在該第一裝置的一安全控制器處解密該第一設置封包的該SKU資料物件;以及將該SKU資料物件程式化到該第一裝置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/528,456 | 2019-07-31 | ||
| US16/528,456 US11050605B2 (en) | 2016-08-01 | 2019-07-31 | Device programming with system generation |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202123651A TW202123651A (zh) | 2021-06-16 |
| TWI865575B true TWI865575B (zh) | 2024-12-11 |
Family
ID=71899600
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW109125987A TWI865575B (zh) | 2019-07-31 | 2020-07-31 | 利用系統產生的多個裝置程式化系統 |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP3772008A1 (zh) |
| TW (1) | TWI865575B (zh) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20230004134A (ko) * | 2021-06-30 | 2023-01-06 | 한국전자통신연구원 | 하드웨어 보드 무결성 검증 장치 및 방법 |
| CN113821841B (zh) * | 2021-11-24 | 2022-02-25 | 飞腾信息技术有限公司 | 资源管理方法、计算装置、计算设备和可读存储介质 |
| CN114418598A (zh) * | 2022-01-07 | 2022-04-29 | 西安闻泰信息技术有限公司 | 一种oem客户标记方法及装置、终端设备、存储介质 |
| GB2624661A (en) * | 2022-11-24 | 2024-05-29 | Secure Thingz Ltd | Secure provisioning of a programmable device |
| US12423434B2 (en) | 2022-12-05 | 2025-09-23 | Cisco Technology, Inc. | On-demand and secure hardware license-based SKU creation for ASICs |
| TWI818850B (zh) * | 2023-01-06 | 2023-10-11 | 臺灣網路認證股份有限公司 | 基於公鑰基礎建設的數位銘牌建立系統及其方法 |
| CN116561752B (zh) * | 2023-07-07 | 2023-09-15 | 华测国软技术服务南京有限公司 | 一种应用软件的安全性测试方法 |
| NL1044737B1 (en) * | 2023-11-21 | 2025-06-02 | Sandgrain B V | Authenticated firmware transmittal upgrade system |
| CN118656877B (zh) * | 2024-08-20 | 2024-11-01 | 贵州财经大学 | 数据凭证生成和业务数据还原方法及系统 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20180041341A1 (en) * | 2016-08-04 | 2018-02-08 | Data I/O Corporation | Counterfeit prevention |
| TW201807615A (zh) * | 2016-08-01 | 2018-03-01 | 美商數據輸出入公司 | 利用系統產生的裝置程式化 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8065517B2 (en) * | 2007-11-01 | 2011-11-22 | Infineon Technologies Ag | Method and system for transferring information to a device |
-
2020
- 2020-07-31 EP EP20188935.9A patent/EP3772008A1/en active Pending
- 2020-07-31 TW TW109125987A patent/TWI865575B/zh active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW201807615A (zh) * | 2016-08-01 | 2018-03-01 | 美商數據輸出入公司 | 利用系統產生的裝置程式化 |
| US20180041341A1 (en) * | 2016-08-04 | 2018-02-08 | Data I/O Corporation | Counterfeit prevention |
Also Published As
| Publication number | Publication date |
|---|---|
| EP3772008A1 (en) | 2021-02-03 |
| TW202123651A (zh) | 2021-06-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12170653B2 (en) | Device programming with system generation | |
| US10587451B2 (en) | Device programming with system generation | |
| TWI865575B (zh) | 利用系統產生的多個裝置程式化系統 | |
| US11533187B2 (en) | Device birth certificate | |
| US20240146545A1 (en) | Unified programming environment for programmable devices | |
| CN109997333B (zh) | 使用安全算法嵌入基础性的信任根 |