TWI817930B - 具有裝置認證的裝置編程系統 - Google Patents

具有裝置認證的裝置編程系統 Download PDF

Info

Publication number
TWI817930B
TWI817930B TW106125851A TW106125851A TWI817930B TW I817930 B TWI817930 B TW I817930B TW 106125851 A TW106125851 A TW 106125851A TW 106125851 A TW106125851 A TW 106125851A TW I817930 B TWI817930 B TW I817930B
Authority
TW
Taiwan
Prior art keywords
oem
certificate
silicon
programmable
device certificate
Prior art date
Application number
TW106125851A
Other languages
English (en)
Other versions
TW201807615A (zh
Inventor
雷傑夫 古拉蒂
Original Assignee
美商數據輸出入公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商數據輸出入公司 filed Critical 美商數據輸出入公司
Publication of TW201807615A publication Critical patent/TW201807615A/zh
Application granted granted Critical
Publication of TWI817930B publication Critical patent/TWI817930B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/73Protecting 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3263Cryptographic 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/3268Cryptographic 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 validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/109Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by using specially-adapted hardware at the client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2107File encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data

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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Programmable Controllers (AREA)
  • Stored Programmes (AREA)

Abstract

一種用於將目標有效負載設置及編程到安裝在編程器中的可編程裝置中的安全編程系統與方法。可編程裝置可以在編程之前進行認證,以校驗裝置係為矽供應商生產的有效裝置。目標有效負載可以編程到可編程裝置中,並與經授權的製造商鏈接。可編程裝置可以藉由校驗矽供應商與經授權的製造商在對目標有效負載進行編程之後進行校驗。

Description

具有裝置認證的裝置編程系統
本申請案根據專利法請求2017年6月30日提交的標題為「DEVICE PROGRAMMING WITH SYSTEM GENERATION」的非臨時申請案第15/640,438號與2016年8月1日提交的標題為「DEVICE PROGRAMMING WITH SYSTEM GENERATION」的臨時申請案第62/369,304號的的優先權,其全部內容藉由引用併入本文,如同在此完全闡述。
本申請案係關於2016年8月4日提交的標題為「COUNTERFEIT PREVENTION」的臨時申請案第62/371,184號、2016年8月8日提交的標題為「EMBEDDING FOUNDATIONAL ROOT OF TRUST USING SECURITY ALGORITHMS」的臨時申請案第62/372,242號,2016年9月30日提交的標題為「UNIFIED PROGRAMMING ENVIRONMENT FOR PROGRAMMABLE DEVICES」的臨時申請案第62/401,953號,以上每一者均由申請人所有,並藉由引用整體併入本文。
實施例一般係關於裝置編程系統,更具體而言,係關於利用系統產生的安全編程系統。
此段落中所述的方式是可推行的方式,但不一定是先前已構思或推行的方式。因此,除非原本指示,不應僅因為此段落中所述的任何方式被包括在此段落中就假設該等方式有資格作為先前技術。
電子電路板組件的某些操作遠離於主要生產組件線路而執行。儘管各種饋入器機器及機器人處置系統以積體電路填充電子電路板,關於處理積體電路的操作(例如編程、測試、校正、及量測)一般執行於單獨裝備上的單獨區域中,而不是整合進主要生產組件線路。
可定制的裝置(例如快閃記憶體(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可以包括用於操作編程器204的軟體。軟體係為用於在編程處理器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是否正確。舉例而言,裝置識別320可以與已知裝置的列表進行比較,與校驗和進行比較,使用計算演算法進行比較,或使用類似技術進行比較。
認證模組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可以是序列號與金鑰值。在另一實例中,進入的信任根502可以是嵌入式識別符,例如在可編程裝置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中之一者、受信任裝置134中之一者、電子部件、電子裝置、啟動載入器、韌體(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 504(標示為In_RoT 504)包括在編程安全物件之前已預先編程或配置的資訊。在一或更多個實施例中,預先編程的資訊可以編程為用於編程安全物件的轉接器、編程器112、及安全物件的組合。舉例而言,In_RoT 504可以是在矽製造時刻植入安全物件中的序列號。
In_RoT 504可以與ID令牌624分開或不同。In_RoT 504可以包括預先編程的資訊,其不同於要被編程到安全物件中的資訊。
舉例而言,In_RoT 504可以包括但不限於在製造部件的時間嵌入或編程到部件中的序列號或唯一密鑰。此外,舉例而言,製造部件的時間可以是(但不限於)在編程部件之前在矽等級或系統級製造部件的時間。
在一或更多個實施例中,In_RoT 504可以藉由製造執行系統702(MES)攝取或輸入。In_RoT 504可以與編程器產生的唯一RoT(例如ID令牌624)組合,以產生唯一的系統級RoT。In_RoT 504可以包括來自已在部件的製造期間預先編程到部件中的數位出生證明的資訊。
In_RoT 504可以包括標示為P1與P2的任何數量的製造標記510。製造標記510包括在部件被製造時與部件相關聯的資訊。舉例而言,製造標記510可以包括但不限於部件ID、編程器ID、部件的製造位置、部件的製造日期及時間等。
製造執行系統702係為用於製造產品質量控制目的之電腦化系統。MES 702可以追蹤及記錄原材料到成品的轉換。MES 702可以提供關於如何最佳化工廠的當前條件以改善生產輸出的資訊。MES702可以即時工作,而能夠控制生產處理的多個元件(例如輸入、人員、機器、支援服務等)。
在一或更多個實施例中,MES 702可以一起接收In_RoT 504與ID令牌624,以編程可編程裝置128。In_RoT 504與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證書模板950係為用於形成OEM證書951的一組資訊。包括OEM證書951的基本必需資訊。OEM證書951係為定義OEM使用者968的一組資訊。OEM證書951可以包括OEM識別符966、OEM公開金鑰962、及OEM私密金鑰952。OEM識別符966係為唯一識別OEM的值。
矽供應商係為可以製造或提供可編程裝置128的實體。可以利用矽供應商識別符956識別矽供應商。矽供應商識別符956係為與矽供應商鏈接的值。舉例而言,矽供應商識別符956可以鏈接到實際製造形成可編程裝置128的積體電路或部件的公司。矽供應商亦可以是在將可編程裝置128交給系統進行編程之前進行預配置的公司。
MSP系統902可以包括OEM韌體開發系統908。韌體開發系統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,並且可以利用硬體或軟體實現。
MPS系統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管理系統944可以利用共享配置實現,並且產生部署到分別具有自己的工廠的多個OEM的編程專案944,例如工廠前台942。可以使用第1圖的安全主儲存系統102、第1圖的安全主系統104、第1圖的安全編程系統100、或其系統及子系統的組合以實現OEM管理系統924。
MSP系統902可以包括工廠管理系統930。工廠管理系統930係為用於在工廠前台942處管理安全編程部件的系統。工廠管理系統930可以從OEM管理系統944接收編程專案944,並將製造資訊解密並分發給位於工廠前台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與工廠安全系統936的資訊。工廠安全系統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、矽供應商公開金鑰954、及/或其他安全資訊。可以使用矽供應商金鑰對960的矽供應商公開金鑰954來解密由矽供應商私密金鑰958加密的資訊。
在將安全元件傳送到其他製造商或使用者之前,矽供應商裝置證書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的裝置認證金鑰對974與裝置解密金鑰對976。隨後,可以使用二個金鑰對的部分構建、編程、及簽署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公開金鑰962)來加密韌體解密金鑰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的安全製造處理流程1202的實例。設置處理流程1202的各種元件可以在各種系統中執行,包括例如上述第1圖的系統100的系統。在實施例中,可以在通用電腦或專用電腦中的任一者中使用一或更多個電腦程式、其他軟體元件、及/或數位邏輯來實現與以下描述的功能方塊相關聯描述的每一處理,同時執行關於與電腦的記憶體的物理狀態互動及轉換的資料檢索、轉換、及儲存操作。
設置處理流程1202認證第1圖的編程器122中的可編程裝置128,產生OEM裝置證書946,將目標有效負載1220編程到可編程裝置128中,以及校驗矽供應商裝置證書926與OEM裝置證書946。
設置處理流程1202可以具有各種配置。舉例而言,設置處理流程1202可以包括提取裝置證書模組1204、認證裝置模組1206、產生OEM裝置證書模組1208、程式裝置模組1210、產生驗證狀態模組1212、及分類裝置模組1214。設置處理流程1202的控制流程可以按順序從模組傳遞到模組。
提取裝置證書模組1204可以從可編程裝置128提取矽供應商裝置證書926。矽供應商裝置證書926可以藉由矽供應商私密金鑰958加密,並儲存在安裝於第1圖的編程器122中的可編程裝置128的第3圖的安全儲存單元326中。編程器122可以存取安全儲存單元326,以將由矽供應商預先編程的矽供應商裝置證書926提取到可編程裝置128中。
認證裝置模組1206可以認證矽供應商裝置證書926,以顯示編程器122中的可編程裝置128係為來自矽供應商的認證裝置。為了認證可編程裝置128,可以使用矽供應商公開金鑰954來解密先前使用矽供應商公開金鑰958加密的矽供應商裝置證書926。若解密成功,則可編程裝置128是有效的,並且來自矽供應商。否則,若無法使用矽供應商公開金鑰954成功解密矽供應商裝置證書926,則裝置未受認證。
產生OEM裝置證書模組1208可以使用第9圖的OEM裝置證書模板950來建立OEM裝置證書946。OEM裝置證書950可以包括關於從矽供應商裝置證書926檢索的可編程裝置128的資訊。在已經建立OEM裝置證書950之後,可以使用OEM私密金鑰952進行簽署。
程式裝置模組1210可以將OEM裝置證書950與目標有效負載1220從編程器122傳送到可編程裝置128。OEM裝置證書950可以儲存在可編程裝置128的第3圖的安全儲存單元326中之一者中。目標有效負載1220可被編程到可編程裝置128的安全或非安全部分中。目標有效負載1220可以包括韌體圖像914、第9圖的韌體更新916、第3圖的安全演算法304、或部署在可編程裝置128中的其他代碼或資料。
在目標有效負載1220已經被編程之後,產生驗證狀態模組1212可以從可編程裝置128檢索矽供應商資料證書926與OEM裝置證書946。矽供應商資料證書926可以針對矽供應商公開金鑰954進行認證。OEM裝置證書946可以針對OEM公開金鑰962進行認證。若二個裝置證書都被認證,則可編程裝置128是有效的。
分類裝置模組1214可以依據裝置證書的認證而產生可編程裝置128的驗證狀態1222。若二個裝置證書都有效,則驗證狀態1222係設定為有效。若裝置證書中之任一者或二者為無效,則驗證狀態1222係設定為無效。
若驗證狀態1222展示裝置證書中之一者或二者為無效,則被編程的可編程裝置128中的當前一者為無效,並且不應該被使用。編程器122可以將可編程裝置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裝置證書與矽供應商裝置證書。
在實施例中,該系統進一步包含與來自編程單元中的安全控制器的預先安裝的矽供應商識別符匹配的來自矽供應商裝置證書的矽供應商識別符。
在實施例中,該系統進一步包含具有可編程裝置的矽供應商裝置證書的裝置識別符的有效裝置列表。
這些及其他實施例的其他實例係見於本揭示各處。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。伺服器電腦系統可以包括網頁伺服器、應用伺服器、資料庫伺服器、及/或某些上述部件所用以提供所述功能的其他習知伺服器部件。伺服器電腦系統可以從各種來源(在不限制的情況下包括使用者操作的客戶端計算裝置(例如桌上型電腦、平板電腦、或智慧型電話)、遠端感測裝置、及/或其他伺服器電腦系統)中的任何者接收基於網路的通訊(包括輸入資料)。
在實施例中,可以使用由一或更多個網路(例如網際網路)耦接至系統之基於「雲端」的部件來完全或部分實施某些伺服器部件。基於雲端的部件可以暴露介面,該等部件藉由該等介面向系統的其他部件提供處理、儲存、軟體、及/或其他資源。在實施例中,基於雲端的部件可由第三方實體代替另一實體實施,其中該等部件是針對該另一實體而部署。然而,在其他實施例中,所述的系統可完全藉由被單一實體擁有及操作的電腦系統所實施。
在實施例中,一種設備包含處理器,並經配置以執行任何上述方法。在實施例中,一種儲存軟體指令的非暫態電腦可讀取儲存媒體,該等軟體指令在藉由一或更多個處理器執行時,造成執行上述方法中的任何者。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‧‧‧微CPU812‧‧‧編碼值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‧‧‧ISP1328‧‧‧網際網路1330‧‧‧伺服器
在隨附圖式的圖式中藉由示例的方式(且非限制的方式)說明本發明,而且圖式中類似的元件符號係指稱類似的元件,其中:
第1圖圖示根據實施例之安全編程系統的說明圖;
第2圖圖示編程器之實例;
第3圖圖示受信任裝置之實例;
第4圖圖示資料裝置之實例;
第5圖圖示裝置識別之實例;
第6圖圖示安全編程系統的示例性方塊圖;
第7圖圖示安全編程系統的第二示例性方塊圖;
第8圖係為受信任裝置之一個設置者的方塊圖;
第9圖係為管理及安全處理系統的實例;
第10圖係為安全元件使用案例的詳細實例;
第11圖係為依據一或更多個實施例之針對可編程裝置的設置處理流程的實例;
第12圖係為依據一或更多個實施例之針對可編程裝置的安全製造處理流程的實例;以及
第13圖係為電腦系統的方塊圖,可在該電腦系統上實施本發明的實施例。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無
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)

  1. 一種操作一安全編程系統的方法,包含以下步驟:從安裝於一編程器中的一可編程裝置提取一矽供應商裝置證書,該矽供應商裝置證書具有一矽供應商識別符,該矽供應商裝置證書係利用一矽供應商私密金鑰簽署,以及該矽供應商裝置證書係在該可編程裝置的一安全儲存單元中預先編程;藉由使用一矽供應商公開金鑰來認證該矽供應商裝置證書,以認證該可編程裝置;依據該矽供應商裝置證書產生用於該可編程裝置的一OEM裝置證書,該OEM裝置證書係利用一OEM私密金鑰簽署;將該OEM裝置證書與一目標有效負載傳送到安裝在該編程器中的該可編程裝置;在該OEM裝置證書與該目標有效負載傳送到該可編程裝置之後,從該可編程裝置重新提取該OEM裝置證書與該矽供應商裝置證書;藉由使用該OEM公開金鑰認證該OEM裝置證書並使用該矽供應商公開金鑰認證該矽供應商裝置證書來產生一驗證狀態,若該OEM裝置證書或該矽供應商裝置證書中之一者並未成功認證,則該驗證狀態設定 為無效;以及依據該驗證狀態的一無效值將該可編程裝置傳送到該編程器的一輸出插座中。
  2. 如請求項1所述之方法,其中產生該OEM裝置證書之步驟包括以下步驟:將該OEM裝置證書寫入該可編程裝置上的該安全儲存單元中。
  3. 如請求項1所述之方法,其中提取該矽供應商裝置證書之步驟包括以下步驟:從該可編程裝置的該安全儲存單元提取該矽供應商裝置證書。
  4. 如請求項1所述之方法,其中傳送該可編程裝置之步驟包括以下步驟:將該可編程裝置移動到該編程器的一不良裝置插座。
  5. 如請求項1所述之方法,進一步包含以下步驟:建立具有該編程器的一編程器識別的一作業控制封包。
  6. 一種操作一安全編程系統的方法,包含以下步驟:接收具有一目標有效負載的一作業控制封包;從安裝於一編程器中的一可編程裝置提取一矽供應商裝置證書,該矽供應商裝置證書具有一矽供應商識別符,該矽供應商裝置證書係利用一矽供應商私密金鑰簽署,以及該矽供應商裝置證書係在該可編程裝置 的一安全儲存單元中預先編程,並且該矽供應商裝置證書係藉由一矽供應商私密金鑰加密;使用一矽供應商公開金鑰來認證一工廠安全系統中的該矽供應商裝置證書;依據該矽供應商裝置證書產生用於該可編程裝置的一OEM裝置證書,該OEM裝置證書係利用一OEM私密金鑰簽署;將該OEM裝置證書與該目標有效負載傳送到該編程器中的該可編程裝置,該OEM裝置證書係儲存在該可編程裝置的該安全儲存單元中;在該OEM裝置證書與該目標有效負載傳送到該可編程裝置之後,從該可編程裝置重新提取該OEM裝置證書與該矽供應商裝置證書;藉由使用該OEM公開金鑰認證該OEM裝置證書並使用該矽供應商公開金鑰認證該矽供應商裝置證書來產生一驗證狀態,若該OEM裝置證書或該矽供應商裝置證書中之一者並未成功認證,則該驗證狀態設定為無效;以及依據該驗證狀態的一無效值將該可編程裝置傳送到一輸出插座中。
  7. 如請求項6所述之方法,其中產生該OEM裝置證書之步驟包括以下步驟:將一經授權的生產計數 編碼到一作業控制封包中。
  8. 如請求項6所述之方法,其中產生該驗證狀態之該步驟包括以下步驟:在該工廠安全系統中認證該OEM裝置證書與該矽供應商裝置證書。
  9. 如請求項6所述之方法,其中認證該矽供應商裝置證書之該步驟包括以下步驟:匹配來自該矽供應商裝置證書的一矽供應商識別符與來自該編程單元中的一安全控制器的一儲存的矽供應商識別符。
  10. 如請求項6所述之方法,其中產生該驗證狀態之該步驟包括以下步驟:產生具有與該驗證狀態相關聯的該矽供應商裝置證書的一裝置識別符的一有效裝置列表。
  11. 一種安全編程系統,包含:一編程器,用於從一可編程裝置提取一矽供應商裝置證書,該矽供應商裝置證書具有一矽供應商識別符,該矽供應商裝置證書係利用一矽供應商私密金鑰簽署,以及該矽供應商裝置證書係在該可編程裝置的一安全儲存單元中預先編程,將該OEM裝置證書與一目標有效負載傳送到該編程器中的該可編程裝置,在將該OEM裝置證書與該目標有效負載傳送到該可編程裝置之後,從該可編程裝置重新提取該OEM裝置證書與該矽供應商裝置證書,依據該驗證狀態的一無效值 將該可編程裝置傳送到該編程器的一輸出插座中;以及一工廠安全系統,耦接至該編程器,並使用一矽供應商公開金鑰來認證該矽供應商裝置證書,依據該矽供應商裝置證書產生該可編程裝置的一OEM裝置證書,利用該OEM私密金鑰來簽署該OEM裝置證書,藉由使用該OEM公開金鑰來認證該OEM裝置證書以及使用該矽供應商公開金鑰來認證該矽供應商裝置證書而產生一驗證狀態,若該OEM裝置證書或該矽供應商裝置證書中之一者並未成功認證,則該驗證狀態設定為無效。
  12. 如請求項11所述之系統,其中該OEM裝置證書係儲存在該可編程裝置上的該安全儲存單元中。
  13. 如請求項11所述之系統,其中該矽供應商裝置證書係從該可編程裝置的該安全儲存單元提取。
  14. 如請求項11所述之系統,其中該編程器將該可編程裝置移動到一不良裝置插座。
  15. 如請求項11所述之系統,其中該工廠安全系統包括具有該編程器的一編程器識別的一作業控制封包。
  16. 如請求項11所述之系統,其中: 該可編程裝置包括藉由該矽供應商私密金鑰加密的該矽供應商裝置證書以及儲存在該安全儲存單元中的該OEM裝置證書與該矽供應商裝置證書;該編程器包括具有一目標有效負載的一作業控制封包,以及該工廠安全系統係用於使用該矽供應商公開金鑰來認證該矽供應商裝置證書。
  17. 如請求項16所述之系統,其中該編程器包括具有該可編程裝置的一經授權的生產計數的一作業控制封包。
  18. 如請求項16所述之系統,其中該可編程裝置包括藉由該工廠安全系統的一安全控制器驗證的該OEM裝置證書與該矽供應商裝置證書。
  19. 如請求項16所述之系統,其中該可編程裝置包括與來自該編程單元中的一安全控制器的一預先安裝的矽供應商識別符匹配的來自該矽供應商裝置證書的一矽供應商識別符。
  20. 如請求項16所述之系統,其中該編程器包括具有與該可編程裝置的該矽供應商裝置證書的一裝置識別符的一有效裝置列表。
TW106125851A 2016-08-01 2017-08-01 具有裝置認證的裝置編程系統 TWI817930B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662369304P 2016-08-01 2016-08-01
US62/369,304 2016-08-01
US15/640,438 US9923755B2 (en) 2016-08-01 2017-06-30 Device programming with system generation
US15/640,438 2017-06-30

Publications (2)

Publication Number Publication Date
TW201807615A TW201807615A (zh) 2018-03-01
TWI817930B true TWI817930B (zh) 2023-10-11

Family

ID=61011793

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106125851A TWI817930B (zh) 2016-08-01 2017-08-01 具有裝置認證的裝置編程系統

Country Status (6)

Country Link
US (3) US9923755B2 (zh)
EP (2) EP3491576B1 (zh)
JP (1) JP6756045B2 (zh)
CN (1) CN110050273B (zh)
TW (1) TWI817930B (zh)
WO (1) WO2018026739A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9923755B2 (en) 2016-08-01 2018-03-20 Data I/O Corporation Device programming with system generation
US11050605B2 (en) 2016-08-01 2021-06-29 Data I/O Corporation Device programming with system generation
EP3382479B1 (en) * 2017-03-31 2023-07-05 ABB Schweiz AG Rule-based communicating of equipment data from an industrial system to an analysis system using uni-directional interfaces
GB201802975D0 (en) * 2018-02-23 2018-04-11 Secure Thingz Ltd Programming target devices
US10585819B2 (en) * 2018-03-05 2020-03-10 Samsung Electronics Co., Ltd. SSD architecture for FPGA based acceleration
US10979232B2 (en) * 2018-05-31 2021-04-13 Motorola Solutions, Inc. Method for provisioning device certificates for electronic processors in untrusted environments
US10967190B2 (en) * 2018-11-02 2021-04-06 Advanced Neuromodulation Systems, Inc. Methods of operating a system for management of implantable medical devices (IMDs) using reconciliation operations and revocation data
EP3874394A1 (en) * 2018-11-02 2021-09-08 Telefonaktiebolaget Lm Ericsson (Publ) Authentication of an original equipment manufacturer entity
US11372977B2 (en) 2018-11-12 2022-06-28 Thirdwayv, Inc. Secure over-the-air firmware upgrade
GB2584909B (en) * 2019-06-21 2022-11-23 Secure Thingz Ltd Secure provision of Programmable Devices
TWI709079B (zh) * 2019-09-26 2020-11-01 奕智鏈結科技股份有限公司 文件碎形化出版與機密管制系統及其技術
TWI740272B (zh) * 2019-11-14 2021-09-21 和碩聯合科技股份有限公司 寫入映像檔至記憶體之裝置、方法及其非暫態電腦可讀取媒體
CN115443449A (zh) 2020-06-15 2022-12-06 惠普发展公司, 有限责任合伙企业 远程系统配置
US11570156B2 (en) 2020-07-02 2023-01-31 International Business Machines Corporation Secure pairing of devices
US12081979B2 (en) * 2020-11-05 2024-09-03 Visa International Service Association One-time wireless authentication of an Internet-of-Things device
US12093258B2 (en) 2020-12-14 2024-09-17 Samsung Electronics Co., Ltd. Storage device adapter to accelerate database temporary table processing
US12039049B2 (en) * 2021-06-21 2024-07-16 Micron Technology, Inc. Secure identity chaining between components of trusted computing base
DE102022123487A1 (de) 2022-09-14 2024-03-14 Dr. Ing. H.C. F. Porsche Aktiengesellschaft System, Verfahren und Computerprogrammprodukt zum kontrollierten Updaten einer Software für eine Steuerungseinrichtung

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120079279A1 (en) * 2010-03-29 2012-03-29 Maxlinear, Inc. Generation of SW Encryption Key During Silicon Manufacturing Process
TW201415286A (zh) * 2012-08-10 2014-04-16 Cryptography Res Inc 積體電路中之安全特性及金鑰管理
US20150100786A1 (en) * 1999-06-11 2015-04-09 Tvworks, Llc Trust Information Delivery Scheme for Certificate Validation

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7290288B2 (en) 1997-06-11 2007-10-30 Prism Technologies, L.L.C. Method and system for controlling access, by an authentication server, to protected computer resources provided via an internet protocol network
US20050132357A1 (en) * 2003-12-16 2005-06-16 Microsoft Corporation Ensuring that a software update may be installed or run only on a specific device or class of devices
US7644278B2 (en) * 2003-12-31 2010-01-05 International Business Machines Corporation Method for securely creating an endorsement certificate in an insecure environment
CN101149773A (zh) * 2007-08-27 2008-03-26 中国人民解放军空军电子技术研究所 一种基于软件实名认证的系统及其安全查证方法
US8065517B2 (en) 2007-11-01 2011-11-22 Infineon Technologies Ag Method and system for transferring information to a device
US8677144B2 (en) * 2008-02-25 2014-03-18 Cavium, Inc. Secure software and hardware association technique
EP2350910B1 (en) * 2008-11-24 2018-07-25 Certicom Corp. System and method for hardware based security
JP5502198B2 (ja) * 2009-07-10 2014-05-28 サーティコム コーポレーション デバイスのシリアライゼーションを実行するためのシステムおよび方法
EP2387262B1 (en) * 2010-05-10 2015-04-29 BlackBerry Limited System and method for multi-certificate and certificate authority strategy
US8843764B2 (en) * 2011-07-15 2014-09-23 Cavium, Inc. Secure software and hardware association technique
US9720681B2 (en) * 2011-07-20 2017-08-01 Data I/O Corporation Device programming system with data broadcast and method of operation thereof
US9081747B1 (en) * 2012-03-06 2015-07-14 Big Bang Llc Computer program deployment to one or more target devices
EP2946306B1 (en) * 2013-01-15 2023-08-09 Schneider Electric USA, Inc. Systems and methods for securely accessing programmable devices
US9230137B2 (en) * 2013-05-30 2016-01-05 Dell Products, L.P. Secure original equipment manufacturer (OEM) identifier for OEM devices
US9390246B2 (en) * 2013-09-25 2016-07-12 Intel Corporation Creating secure original equipment manufacturer (OEM) identification
US9635014B2 (en) * 2014-02-21 2017-04-25 Samsung Electronics Co., Ltd. Method and apparatus for authenticating client credentials
US20150242620A1 (en) * 2014-02-27 2015-08-27 Microsemi SoC Corporation Methods for controlling the use of intellectual property in individual integrated circuit devices
US9226145B1 (en) 2014-03-28 2015-12-29 Sprint Communications Company L.P. Verification of mobile device integrity during activation
US9923755B2 (en) 2016-08-01 2018-03-20 Data I/O Corporation Device programming with system generation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150100786A1 (en) * 1999-06-11 2015-04-09 Tvworks, Llc Trust Information Delivery Scheme for Certificate Validation
US20120079279A1 (en) * 2010-03-29 2012-03-29 Maxlinear, Inc. Generation of SW Encryption Key During Silicon Manufacturing Process
TW201415286A (zh) * 2012-08-10 2014-04-16 Cryptography Res Inc 積體電路中之安全特性及金鑰管理

Also Published As

Publication number Publication date
US20180212814A1 (en) 2018-07-26
US20190058625A1 (en) 2019-02-21
JP2019527904A (ja) 2019-10-03
CN110050273B (zh) 2024-02-06
US10587451B2 (en) 2020-03-10
US20180034682A1 (en) 2018-02-01
TW201807615A (zh) 2018-03-01
EP3491576B1 (en) 2021-09-01
EP3995980A1 (en) 2022-05-11
EP3491576A4 (en) 2020-03-25
JP6756045B2 (ja) 2020-09-16
US10110411B2 (en) 2018-10-23
WO2018026739A1 (en) 2018-02-08
CN110050273A (zh) 2019-07-23
EP3491576A1 (en) 2019-06-05
US9923755B2 (en) 2018-03-20
EP3995980B1 (en) 2024-07-10

Similar Documents

Publication Publication Date Title
TWI817930B (zh) 具有裝置認證的裝置編程系統
US11595371B2 (en) Device programming with system generation
US20240146545A1 (en) Unified programming environment for programmable devices
TWI744373B (zh) 使用安全演算法嵌入基礎性的信任根
US10496811B2 (en) Counterfeit prevention
TWI747836B (zh) 裝置出生憑證
EP3772008A1 (en) Device programming with system generation