TWI744373B - 使用安全演算法嵌入基礎性的信任根 - Google Patents

使用安全演算法嵌入基礎性的信任根 Download PDF

Info

Publication number
TWI744373B
TWI744373B TW106126679A TW106126679A TWI744373B TW I744373 B TWI744373 B TW I744373B TW 106126679 A TW106126679 A TW 106126679A TW 106126679 A TW106126679 A TW 106126679A TW I744373 B TWI744373 B TW I744373B
Authority
TW
Taiwan
Prior art keywords
security
programmable device
key
oem
secure
Prior art date
Application number
TW106126679A
Other languages
English (en)
Other versions
TW201810111A (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 TW201810111A publication Critical patent/TW201810111A/zh
Application granted granted Critical
Publication of TWI744373B publication Critical patent/TWI744373B/zh

Links

Images

Classifications

    • 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/76Protecting 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 in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • 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
    • 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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/72Protecting 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 in cryptographic circuits
    • 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
    • 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/3247Cryptographic 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 digital signatures
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/069Authentication using certificates or pre-shared keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]

Abstract

本文揭露以安全方式提供可程式化裝置的方法、技術及機制。安全程式化系統可單獨加密資料及代碼的目標有效承載(payload),隨後將資訊程式化至針對特定作業的可程式化裝置中之每一者中。安全程式化系統可建立只能由具有正確安全金鑰的特定系統或裝置來解密之客製化的有效承載封包。

Description

使用安全演算法嵌入基礎性的信任根
本申請案主張2017年8月4日所申請之美國專利非臨時申請序列號15/669,873(其名稱為「使用安全演算法嵌入基礎性的信任根(EMBEDDING FOUNDATIONAL ROOT OF TRUST USING SECURITY ALGORITHMS)」)及2016年8月8日所申請之美國專利臨時申請序列號62/372,242(其名稱為「使用安全演算法嵌入基礎性的信任根(EMBEDDING FOUNDATIONAL ROOT OF TRUST USING SECURITY ALGORITHMS)」)的優先權;根據35USC§120,此等申請案之全部內容藉由引用併入本文中而視為本文的一部分。
本申請案係與2016年8月4日所申請之美國專利臨時申請序列號62/371,184(其名稱為「COUNTERFEIT PREVENTION」)、2006年9月30日所申請之美國專利臨時申請序列號62/401,953(其名稱為「UNIFIED PROGRAMMING ENVIRONMENT FOR PROGRAMMABLE DEVICES」)及2017年6月30日所申請之美國專利非臨時申請序列號15/640,438(其名稱為「DEVICE PROGRAMMING WITH SYSTEM GENERATION」)相關;每個申請案均由申請人所有且其全部內容藉由引用併入本文中。
實施例一般係關於裝置程式化系統;更具體來說,係關於安全程式化及驗證系統。
本章節中描述的方法係為可探求的方法,並非一定是先前已經設想或探求過的方法。因此,除非另有說明,否則不應假定本章節中描述的任何方法僅因其包含於本章節中而為先前技術。
合同電子元件組件可為盜版行為展現有價值的智慧財產。智慧財產的曝光可讓開發人員在開發中花費數百萬美元。儘管各種進料機及機器人處理系統以積體電路填充電子電路板,但與處理積體電路相關的操作(如程式化、測試、校準及量測)通常係在單獨設備上的不同區域中(而不是結合至主生產裝配線中)執行。
可用獨立的程式化設備來配置可程式化裝置(如快閃記憶體(Flash)、電子抹除式可複寫唯讀記憶體(EEPROM)、可程式化邏輯裝置(PLD)、現場可程式化閘陣列(FPGA)及結合非揮發性記憶體元件的微控制器),此獨立的程式化設備經常位於與電路板裝配線分開的區域中。此外,如智慧型手機、電路板、物聯網(IoT)裝置及媒體播放器等系統層級元件亦可能需要特定的安全配置支援。
一種設備,包含:辨識模組,此辨識模組至少部分由硬體實施,辨識模組基於可程式化裝置之信任根資料暫存器及可程式化裝置之信任根代碼暫存器來產生由製造執行系統所使用的辨識代符;加密模組,此加密模組至少部分由硬體實施,加密模組計算用於認證信任資料暫存器及信任根代碼暫存器的加密代符及金鑰代符;認證模組,此認證模組至少部分由硬體實施,認證模組基於加密代符及金鑰代符來驗證信任硬體平台;及代碼簽名模組,此代碼簽名模組至少部分由硬體實施,代碼簽名模組在程式化可程式裝置之前驗證信任硬體平台的韌體完整性。
一種方法,包含以下步驟:基於可程式化裝置的信任根資料暫存器及可程式化裝置的信任根代碼暫存器來產生由製造執行系統所使用的辨識代符;計算用於認證信任資料暫存器及信任根代碼暫存器的加密代符及金鑰代符;基於加密代符及金鑰代符來驗證信任硬體平台;及在程式化可程式化裝置之前驗證信任硬體平台的韌體完整性。
一或多個非暫態電腦可讀取媒體,此一或多個非暫態電腦可讀取媒體儲存指令,當由一或多個計算裝置執行此等指令時,此等指令執行以下步驟:基於可程式化裝置的信任根資料暫存器及可程式化裝置的信任根代碼暫存器來產生由製造執行系統所使用的辨識代符;計算用於認證信任資料暫存器及信任根代碼暫存器的加密代符及金鑰代符;基於加密代符及金鑰代符來驗證信任硬體平台;及在程式化可程式化裝置之前驗證信任硬體平台的韌體完整性。
在下文描述中,為了說明目的,闡述了眾多具體細節以提供對本發明的透徹理解。然而,將為顯而易見的是,可在沒有此等具體細節的情況下實施本發明。在其他範例中,以方塊圖形式圖示了眾所周知的結構及裝置,以避免不必要地模糊本發明。
本文根據下列提綱來描述實施例,此等提綱為: 1.0 整體概述 2.0 結構概述 3.0 功能概述 4.0 示例性實施例 5.0 實施機制─硬體概述 6.0 擴展及替代
1.0 整體概述
本文揭露以安全方式提供可程式化裝置的方法、技術及機制。安全程式化系統可單獨加密資料及代碼的目標有效承載(payload),隨後將資訊程式化至針對特定作業的可程式化裝置中之每一者中。安全程式化系統可建立只能由具有正確安全金鑰的特定系統或裝置來解密之客製化的有效承載封包。
可程式化裝置可包含記憶體晶片、電路板等,以及如智慧型手機、媒體播放器及其他消費者和工業電子裝置等完整的電子裝置。安全金鑰的配置可控制可程式化裝置的程式化操作。
根據實施例,對可程式化裝置(如電路板)中之一者上之個別目標有效承載的程式資料的加密可使得電路板能經配置為僅與具有已註冊安全代碼的元件一起運作。此可用於確保僅能以經認證的零件類別來製造電路板。
根據實施例,當安全代碼經識別為無效時,將不授權可程式化裝置運作(例如,接收程式化資料或代碼或將任何使用者資料發送回主機系統或伺服器等)。偵測到此種未經授權的操作消除了可能被篡改或損壞的假冒裝置及安全裝置。
根據實施例,可報告及儲存未授權裝置的辨識(例如,序列號等)以用於後續的認證過程。儲存的辨識可做為用於後續認證的先驗資訊,以減少所選辨識的總體驗證時間。
根據實施例,可程式化裝置可驗證序列號或作為裝置操作先決條件的其他參數。在另一個實施例中,可程式化裝置可提供代碼簽名設施以在執行前認證代碼。
在其他態樣中,本發明包括經配置為執行前述技術的電腦設備及電腦可讀取媒體。
2.0結構概述
現在參考圖1,其中圖示了可根據實施例實施本文所述技術之安全程式化系統100各態樣的說明性視圖。安全程式化系統100可單獨配置資料裝置並利用加密資訊啟動信任裝置,以提供安全的程式化及操作環境。
安全程式化系統100包含程式化單元110,程式化單元110具有程式化器112、安全控制器114、安全金鑰106、用於耦合至可程式化裝置128的配接器、第一安全模組116、第二安全模組118及第n安全模組120。安全程式化系統100可耦合至具有安全主儲存系統102的安全主系統104。安全主系統104和安全主儲存系統102可產生及安全地儲存安全金鑰106以用於加密和解密資訊。安全金鑰106可實現各種安全典範。安全金鑰106可包括具有私密金鑰152及公開金鑰154的金鑰對150。金鑰對150可用於實施公開金鑰加密系統,其中由可用公開金鑰154解密私密金鑰152所加密的資料。安全程式化系統100可根據需要而包含多個不同的金鑰對150。可為不同裝置或系統元件來實施金鑰對150、私密金鑰152及公開金鑰154,此等不同裝置或系統元件包含安全程式化系統100、程式化單元110、程式化器112、安全控制器114、安全模組、可程式化裝置128、資料裝置132、信任裝置130或任何其他系統元件。
系統100包含一或多個計算裝置。此等一或多個計算裝置包含經配置為實施本文所述之各種邏輯元件的硬體及軟體的任何組合,此等各種邏輯元件包含具有程式化器112、安全控制器114、配接器、第一安全模組116、第二安全模組118及第n個安全模組120的程式化單元110的元件。舉例而言,一或多個計算裝置可包含一或多個儲存用於實施本文所述之各種元件之指令的記憶體、一或多個經配置為執行儲存在一或多個記憶體中之指令的硬體處理器,及一或多個記憶體中用於儲存由各種元件使用及操縱之資料結構的各種資料儲存庫。
程式化單元110可為用於將資料、中介資料及代碼程式化至可程式化裝置128上的安全系統。程式化單元110可從安全主系統104接收安全資訊、處理資訊及傳送正確配置版本的安全資訊至可程式化裝置128。
程式化單元110可包含程式化器112。程式化器112可為用於實體地程式化可程式化裝置128的機電系統。舉例而言,程式化器112可接收包含可程式化裝置128的匣(tray),將可程式化裝置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的能力以最大化安全。可藉由個別的安全密鑰106將可程式化裝置128中的每者個人化。
可程式化裝置128可經配置為包括成對裝置146。成對裝置146為可共享一或多個安全金鑰106的可程式化裝置128中之兩者或更多者。此可允許成對裝置146中之每者偵測及認證同一群組中之成對裝置146中的另一者。因此,來自成對裝置146之一者的資料可與成對裝置146中的另一者共享。此可允許如共享資訊、認證兩個或更多個成對裝置146之間的雙向安全通訊通道、辨識其他相關裝置或上述組合的功能。
在說明性範例中,安全程式化系統100可用於建立具有第一資料裝置134的成對裝置146之一者,如與第一信任裝置140(如智慧型手機)配對的系統資訊模組(SIM)晶片。在此配置中,可藉由成對裝置146的安全金鑰106來程式化第一資料裝置134及第一信任裝置140兩者。因此,第一信任裝置140可驗證第一資料裝置134的安全資訊148(如序列號),以認證第一信任裝置140經允許使用在第一資料裝置134上的其他資訊。
程式化單元110可包含耦合至程式化器112的安全控制器114。安全控制器114為用於處理安全資訊的計算裝置。安全控制器114可包括特定的加密及計算硬體,以設置加密資訊的處理。舉例而言,安全控制器114可包括量子電腦、平行計算電路、經配置為處理安全資訊的現場可程式化閘陣列(FPGA)、協同處理器、陣列邏輯單元、微處理器或上述組合。
安全控制器114可為專門配置為防止在處理安全資訊的輸入、中間或最後階段處未經授權地存取安全資訊的安全裝置。安全控制器114可為安全代碼元件提供執行時的安全執行環境,舉例而言,安全控制器114可為硬體安全模組(HSM)、微處理器、信任安全模組(TPM)、專用安全單元或上述組合。安全控制器114可為程式化單元110的一部分。舉例而言,如硬體安全模組的安全控制器114可包括在程式化器112內。
安全控制器114可耦合至安全模組以提供特定的安全功能。安全模組可包括第一安全模組116、第二安全模組118及第n個安全模組120。每個安全模組可提供特定的安全功能,如辨識、認證、加密、解密、驗證、代碼簽名、資料萃取或上述組合。舉例而言,安全模組可為硬體、軟體或上述組合。
舉例而言,第一安全模組116可經配置為向一套標準化的常用安全功能提供應用程式設計介面(API)。在另一範例中,第二安全模組118可為專用硬體及軟體的組合,以提供資料之更快的加密及解密。
程式化單元110可包括一或多個安全金鑰106的安全儲存。可在安全程式化系統100內部計算安全金鑰106、可外部計算此等安全金鑰106並由安全程式化系統100接收此等安全金鑰106,或上述組合。
安全金鑰106可用於加密及解密安全資訊。安全金鑰106可用於實施不同的安全方法和協定。舉例而言,安全金鑰106可包括具有私密金鑰152及公開金鑰154的金鑰對150以實施公開金鑰加密系統。在另一範例中,安全金鑰106可用於實施不同的安全協定或方法。儘管可將安全金鑰106描述為公開金鑰加密系統,但應當理解的是,安全金鑰106可用於實施任何不同的安全典範。
在說明性範例中,安全金鑰106可包含用於公開金鑰加密系統的一或多個金鑰對150。可使用金鑰對150中之一者的公開金鑰154加密安全資訊,且只能使用其成對的私密金鑰152解密此安全資訊。
安全程式化系統100的優點中之一者包含為每個可程式化裝置128提供不同的安全金鑰組106及由個別安全金鑰106所加密之不同版本的安全資訊148的能力。此可確保用於解密可程式化裝置128中之一者上的安全資訊148的安全金鑰106不能用於解密另一個可程式化裝置128上的安全資訊。每個可程式化裝置128可具有安全金鑰106中的單獨一者以提供最大的保護。
現在參考圖2,其中圖示了程式化器112的範例。程式化器112為用於供應可程式化裝置128的機電裝置。
程式化器112可用於存取可程式化裝置128且向可程式化裝置128提供內容有效承載。內容有效承載可包含資料、代碼、安全金鑰106、安全資訊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上的分區。
程式化處理器202可具有各種配置。舉例而言,程式化處理器202可包括安全控制器或經耦合至系統控制器。程式化處理器202可為單元處理器、多元處理器、雲端計算元件或上述組合。
程式化器儲存單元204為用於儲存及檢索資訊的裝置。舉例而言,程式化器112的程式化器儲存單元204可為碟驅動器、固態記憶體、光學儲存裝置或上述組合。
程式化器112可包括用於操作程式化器204的軟體。軟體為用於在程式化處理器202上執行的控制資訊。可儲存軟體於程式化器儲存單元204中並於程式化處理器202上執行此軟體。
程式化器112可包括輸入裝置插座206。輸入裝置插座206為可程式化裝置128的源。舉例而言,輸入裝置插座206可為符合聯合電子裝置工程委員會(JEDEC)標準的盤(tray)。輸入裝置插座206可用於支承未程式化的裝置。
程式化器112可包括輸出裝置插座214。輸出裝置插座214為已供應之可程式化裝置128的目的地。舉例而言,輸出裝置插座214可為用於支承成品裝置、儲存管、運輸包裝或其他類似結構之空的JEDEC盤。
程式化器112可包括裝置配接器208。裝置配接器208為用於耦合至可程式化裝置128的機構。
裝置配接器208可具有各種配置。舉例而言,裝置配接器208可包括用於安裝如晶片之可程式化裝置128的目的插座210。插座為用於支承可程式化裝置128及與可程式化裝置128建立介面的機構。可模組化裝置配接器208且可從程式化器112移除裝置配接器208,以適應不同的插座配置。裝置配接器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中的安全資料上執行操作。
信任裝置130可由安全程式化系統100提供以包括安全資訊。舉例而言,信任裝置130可包括裝置辨識符302、安全演算法304、安全憑證306及金鑰對150,此等金鑰對每者具有私密金鑰152及公開金鑰154。
在說明性範例中,安全金鑰106可包括用於公開金鑰加密系統的一或多個金鑰對150。可使用金鑰對150中之一者的私密金鑰152來加密安全資訊,且使用公開金鑰154解密此安全資訊。類似地,可使用私密金鑰152解密使用公開金鑰154所加密的資訊。
裝置辨識符302為可單獨唯一地辨識每個信任裝置130的資料值。舉例而言,裝置辨識符302可包括序列號、標記、安全代碼或上述組合。
安全演算法304包括安全代碼元件314。安全演算法304可向外部系統提供應用程式設計介面以控制信任裝置130上的安全功能。可客製化安全演算法304至每個信任裝置130。舉例而言,安全演算法304可包括如源代碼、可執行代碼、庫模組、鏈接模組、配置檔案、初始化資料、硬體控制代碼或上述組合的安全代碼元件314。
安全憑證306為與信任裝置130中之一者相關聯的安全物件。可預先程式化安全憑證306以證明裝置具有嵌入其中的特定信任根。安全憑證306可具有在其中之一或多個公開金鑰154。安全憑證306可包括如金鑰對150、安全金鑰106、加密密碼或上述組合的安全資料。
安全憑證306可為安全儲存的資料元件。舉例而言,安全憑證306可為使用前可解密之經加密的安全資訊。
金鑰對150可為具有用於加密及解密資料之兩個或更多個單獨的安全金鑰的安全元件。舉例而言,金鑰對150可包括私密金鑰152及公開金鑰154。可使用私密金鑰152解密用公開金鑰154加密的安全資訊。
可用各種方式來實施金鑰對150。舉例而言,金鑰對150可經配置為具有不同的金鑰長度以改變安全級別。可用不同的字元長度來實施金鑰對150。
儘管在公開金鑰加密系統的背景中描述了金鑰對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的信任裝置130型號的執行參數。代碼簽名模組322可用於驗證執行參數、將參數與信任裝置130中之一者中的型號資訊進行比較,且僅當此兩個值匹配時才允許執行代碼元件314。此可用於將代碼元件的操作限制至特定的高端電話或其他特定裝置。
信任裝置130的優點之一是信任裝置130可在內部辨識及認證安全資訊以增加安全級別。信任裝置130可使用儲存在安全儲存單元326中的安全金鑰106來驗證安全資訊。
當信任裝置130為安全時,信任裝置130可提供信任度量。信任裝置130可具有各種配置。舉例而言,信任裝置130可具有系統辨識符、認證機制、加密及解密功能、代碼簽名以保護可執行文件、信任儲存器及信任執行環境。
系統辨識符可包括辨識或描述硬體及軟體元件的元件。信任裝置130可具有安全地驗證其身份及其他屬性的能力。信任裝置130可能夠安全加密及解密資訊。信任裝置130可能夠驗證信任代碼。信任裝置130可具有安全的儲存及執行能力。
安全程式化系統100可能夠實施信任根系統。信任根(RoT)為信任計算環境中的一組功能,此組功能可建立藉由系統的信任操作。舉例而言,信任根可作為控制信任計算平台加密程序之單獨的安全計算引擎。或者,裝置可實施信任根作為固有信任的硬體及軟體元件。信任根藉由設計係安全的,及可用硬體實施或由硬體保護。信任根可用於執行安全關鍵功能,如量測或驗證軟體、保護加密金鑰及執行裝置認證。
信任根可提供各種安全功能,此等安全功能包括:即時加密、篡改安全資料的偵測和報告、主動篡改嘗試的偵測、數位版權管理及其他類似的安全功能。
因為由實體存取裝置所導致之更高的風險,故在遠端硬體空間中實施安全操作是困難的。此種安全裝置要求硬體與受保護的資料及軟體緊密合作,以確保安全操作。
現在參考圖4,其中圖示了資料裝置132中之一者的範例。資料裝置132為具有安全儲存單元326的元件。資料裝置132為能將安全資料儲存在安全儲存單元326中及提供當由信任裝置130中之一者存取儲存資料時對此儲存資料之存取的被動元件。
可由安全程式化系統100提供資料裝置132以包括安全資訊。舉例而言,資料裝置132可包括裝置辨識符302、安全演算法304、安全憑證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為可用於唯一地辨識可程式化裝置128、安全程式化系統100、程式化器112中之一者或其組合的資料結構。
裝置辨識符302可具有各種配置。舉例而言,裝置辨識符302可包括輸入的信任根504、序列號標記512、韌體標記506、製造標記510、產品標記508、操作標記514、原始設備製造商標記516(OEM標記)、金鑰對150或類似標記。
輸入的信任根504是安全元件。可從可程式化裝置128中之一者外部提供輸入的信任根504。在製造目標裝置時,可在此目標設備中實施輸入的信任根504。輸入的信任根504可提供解密種子、周邊組件的兼容性範圍、兼容性裝置類型、韌體可信度、製造窗口(開發製造階段(BoL)及回收利用階段(EoL))、所需的其他參數或上述組合。輸入的信任根504可基於計劃製造結構(材料清單)來修改裝置辨識符302中的其他欄位的解釋。輸入的信任根504可指定或限制製造結構為滿足輸入的信任根504之標準的可驗證元件。
序列號標記512為可包括用於可程式化裝置128中之一者的序列號的安全元件。裝置辨識符302可包括序列號標記512中的一或多者。序列號標記512可包括製造日期代碼、製造批次代碼、順序部件辨識符、元件類型代碼、所需的附加參數或上述組合。輸入的信任根504與序列號標記512的組合可在組裝期間提供單獨的辨識或兼容裝置的範圍。裝置辨識符302可唯一地限定下一級結構之材料清單內之硬體裝置的組合。
韌體標記506為可描述或辨識在可程式化裝置128中之一者中所使用之韌體版本的安全元件。舉例而言,可程式化裝置128中之一者可為具有安裝在電路板上之韌體的電路板。韌體標記506可辨識每個單獨韌體元件的版本號。韌體版本資訊可用於協調可程式化裝置128中之代碼元件之間的互操作性。輸入的信任根504可辨識意欲於可程式化裝置128中使用之韌體標記506。若輸入的信任根504辨識韌體標記506未被包含在預期的材料清單中,則不允許進行程式化。
製造標記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及各個資料元件兩者,可提供更細的安全細緻度。可理解的是,輸入的信任根504可存在於包含在材料清單中之可程式化裝置128之每者中。可程式化裝置128中之每者可基於在其被製造時所建立之輸入的信任根504來驗證其耦接至經認證的兼容元件。已意外地發現,裝置辨識符302可用於限制可用固定的物料清單組程式化的裝置的數量。此態樣可防止在沒有原始設備製造商(OEM)的瞭解或授權的情況下盜版生產過剩的零部件。
現在參考圖6,其中圖示了安全程式化系統100的示例性方塊圖。安全程式化系統100包括多個安全物件,如第一安全物件602及第二安全物件604。第一安全物件602可與第二安全物件604建立介面或進行通訊。
安全物件表示具有用於防止未經授權的竊聽或複製的安全機制或協定的任何硬體或軟體物件。舉例而言,安全物件可包含(但不限於)電子元件、電子裝置、開機載入程序、韌體(FW)、作業系統(OS)、軟體應用程式、硬體程式化器、周邊裝置、網站及機器等。
第一安全物件602可與辨識模組316、認證模組320、加密模組318及代碼簽名模組322建立介面。為了說明性目的,儘管將第二安全物件604圖示為僅與第一安全物件602連接,但第二安全物件604亦可與辨識模組316、加密模組318、認證模組320、代碼簽名模組322的任何組合連接。第一安全物件602或第二安全物件604係使用(但不限於)識別模組316、加密模組318、認證模組320、代碼簽名模組322、安全程式化系統100的任何其他單元、模組或功能的組合來保護安全漏洞。
辨識模組316生成安全物件的身份,以保護安全物件免受對此安全物件未經授權的存取。辨識模組316提取辨識代符624(ID代符)。ID代符624包括在授予存取安全物件前用於驗證身份的資訊。ID代符624可包括(但不限於)使用者辨識符、裝置的序列號及裝置辨識符等。
可由辨識模組316使用任何安全資訊或機制來提取ID代符624,此安全資訊或機制包括(但不限於)儲存在RoT代碼暫存器621中的信任根代碼620(RoT代碼)及儲存在RoT資料暫存器623中的信任根資料622(RoT資料)。RoT代碼暫存器621及RoT資料暫存器623可為揮發性記憶體、非揮發性記憶體、組合邏輯暫存器或上述組合。舉例而言,RoT資料622可表示與裝置的數位出生憑證相關聯的資訊、用於使用信任根代碼620的時間窗口、允許信任根代碼620之一範圍的零件號或序列號或上述組合。可在元件的製造及功能測試期間建立信任根資料622。藉由將信任根代碼620與信任根資料622組合,可在沒有ID代符624的附加組件或複製的情況下來生成每個程式化裝置128的ID代符624。
本文所指的術語「信任根(RoT)」係指可建立信任或安全的計算模組的一組功能,其包含硬體元件、軟體元件或硬體及軟體元件的組合。舉例而言,此等功能可實施為(但不限於)安全開機韌體、硬體初始化單元及交叉檢查元件/晶片等。僅能以經計劃的及有限數量的可程式化裝置128來利用硬體元件及軟體元件中的每一者。又,舉例而言,可使用(但不限於)控制加密處理器之操作之單獨的計算引擎來實施功能。用於將韌體元件寫入可程式化裝置中之一者的可程式化器112可利用ID代符624來選擇韌體元件的解密金鑰。將韌體元件複製到已程式化裝置128中之未經授權的裝置的嘗試可導致韌體元件的不正確解密,此可防止程式化器112執行程式化操作。
ID代符624可使用RoT資料622而自RoT代碼620中解密。可加密保護ID代符624,因此可僅由RoT代碼620的耦合版本來解密ID代符624。ID代符624可為唯一,使得每個安全物件具有此安全物件本身的辨識符,因此沒有一個安全物件與另一個安全物件共享此安全物件本身的辨識符。
RoT代碼620包括由特定硬體集合使用以解碼可用於辨識裝置來源的資料或以解碼內容的指令或命令。RoT資料622包括受保護的資料,且僅可使用RoT代碼620的耦合集來解碼此資料。可生成RoT代碼620,以僅用有限範圍內之具有適當的RoT資料622的可程式化裝置128操作。此組合可同時驗證正確的韌體元件正應用於正確的硬體裝置中,並驗證僅有程式化裝置128的計劃數量得到生成。
可由原始製造商的任何安全機制提供或生成RoT代碼620及RoT資料622。舉例而言,可在製造裝置時建立RoT資料622,且可在程式化或配置裝置期間將RoT代碼620程式化至裝置的安全儲存區域中。可生成RoT代碼620以控制程式化裝置128的特定使用及出現次數。
又,舉例而言,可用安全方式自主機伺服器或系統來發送RoT代碼620及RoT資料622至安全程式化系統100,使得只有安全程式化系統100已被授權且被驗證接收RoT代碼620和RoT資料622。此外,舉例而言,主機伺服器或系統可包括在安全程式化系統100可能夠從安全主系統104接收或解密資訊前發送安全金鑰106至安全程式化系統100以進行辨識或認證的安全主系統104。
作為一範例,安全儲存區域可包括(但不限於)一次性的可程式化記憶體或僅對授權使用者或裝置已知的任何其他儲存區域。作為另一範例,安全儲存區域可包括(但不限於)在沒有要被拒絕之允許的情況下僅有經授權的資訊或辨識符可存取之儲存器或記憶體。
舉例而言,在程式化裝置128於生產環境或系統中經配置時及程式化裝置128於生產環境或系統中被整合或操作之前,可將RoT代碼620預先程式化至裝置(如具有RoT資料622的安全物件)。RoT代碼620可使程式化裝置128能辨識哪些其他裝置可耦合至其介面。此可遵守計劃的構建進度,不可能產生過多的盜版元件。此外,舉例而言,生產環境或系統可包括(但不限於)可攜式裝置、電腦、伺服器及電子電路板等。
認證模組320為用於驗證辨識代符624是否經授權以用於存取安全物件的單元。在辨識模組316提取ID代符624後,認證模組320驗證ID代符624以辨識安全物件是否為可與授權系統通訊以發送或接收安全資訊的有效物件。舉例而言,若ID代符624中的一者無效,則可不允許安全物件與程式化器112交換資訊。
在認證模組320驗證安全物件的ID代符624有效後,認證模組320可生成ID代符624、金鑰代符628及加密代符626中之一者的組合。金鑰代符628包括用於認證ID代符624的資訊。加密代符626包括用於加密編碼或解碼用於資訊安全性或資料保密性之資訊的資訊。舉例而言,程式化器112可將加密檔案傳送至安全物件602,安全物件602可使用金鑰代符628來存取加密代符626,以便解壓縮及解碼要程式化至安全裝置602中的軟體。
在一或多個實施例中,可使用RoT代碼620自RoT資料622生成ID代符624、金鑰代符628或加密代符626。在一或多個實施例中,可加密保護ID代符624、金鑰代符628或加密代符626;因此,可僅由RoT代碼620的正確版本來解密ID代符624、金鑰代符628或加密代符626。
加密模組318為交換至安全物件602或於安全物件602與外部系統之間交換的安全資訊提供資料加密及解密。可與安全物件602交換安全資訊的外部系統可包括(但不限於)程式化器112、安全主系統104及主機系統等。
在實施例中,在辨識模組316提取ID代符624或認證模組320驗證ID代符624之後,加密模組318可生成ID代符624、金鑰代符628及加密代符626。可由加密模組318使用RoT資料622來生成加密代符626,以解碼來自RoT代碼620的資訊。
在實施例中,加密模組318可使用密碼代符626生成ID代符624或金鑰代符628,以進一步解碼來自RoT代碼620的其他資訊。在實施例中,使用具有提高資訊安全性或資料保密性的多級保護的加密模組318來大幅簡化資料洩漏的消除過程。
在實施例中,加密模組318可包括加密方法,此等加密方法包括(但不限於)對稱金鑰加密及公開金鑰加密等。舉例而言,加密模組318可包括加密方法,其中發送者和接收者兩者可共享相同金鑰或不同金鑰(可使用在RoT資料622中所建立之預定演算法來計算此等金鑰)。
作為一範例,密碼方法可包括(但不限於)區塊加密法及加密雜湊函數等。作為另一範例,加密方法可包括(但不限於)資料加密標準(DES)、進階加密標準(AES)、三重DES、MD4訊息摘要演算法、MD5演算法、安全雜湊演算法1及2或任何要開發的進階加密技術。
作為一範例,加密方法可包括(但不限於)公開金鑰或非對稱金鑰加密技術,其中可使用兩個不同但為數學上相關的金鑰─公開金鑰及私密金鑰。作為另一範例,可建立公開金鑰系統,使得從另一金鑰(例如,公開金鑰)計算一金鑰(例如,私密金鑰)係計算上不可行的(即使此等金鑰相關)。皆可秘密地生成公開金鑰及私密金鑰兩者為相互關聯的對。舉例而言,RoT資料622可提供轉換種子以在安全裝置602內生成私密金鑰。
舉例而言,在公開金鑰加密系統中,可自由分派公開金鑰,同時與其配對的私密金鑰可保密。在公開金鑰加密系統中,可使用公開金鑰以進行加密,而私密金鑰或秘密金鑰可用於解密。
代碼簽名模組322驗證在系統或裝置之間交換的代碼資訊的完整性。代碼簽名模組322驗證所交換資訊的內容是否被改變或篡改。
例如,代碼簽名模組322可包括對可執行文件或腳本進行數位簽名以確認軟體作者或產生器並驗證可執行代碼或腳本未被更改或損壞的程序。舉例而言,因為係藉由(但不限於)加密雜湊及校驗和等對代碼簽名,故可驗證此代碼係被修改或受損的。
在實施例中,在辨識模組316提取ID代符624或認證模組320驗證ID代符624之後,代碼簽名模組322可生成ID代符624、金鑰代符628及加密代符626。可由代碼簽名模組322使用RoT資料622來生成加密代符626,以解碼來自RoT代碼620的資訊。
在實施例中,代碼簽名模組322可使用加密代符626生成ID代符624或金鑰代符628,以進一步解碼來自RoT代碼620的其他資訊。在實施例中,使用具有提高資訊安全性或資料保密性的多級保護的代碼簽名模組322來大幅簡化資料洩漏的消除過程。
安全物件(如第一安全物件602或第二安全物件604)可與安全執行引擎606建立介面。安全執行引擎606包括管理或控制安全物件之程式化的機制。安全執行引擎606包括安全執行單元324及安全儲存單元326。
安全執行單元324為在受保護的環境中執行代碼或電腦指令的區塊。安全執行單元324操作的環境可建立彈性的、可擴展的解決方案,以解決建立其中僅有經信任的、經認證的應用程式代碼可操作的大規模、廣域安全環境的問題。安全執行單元324可使程式化器112及安全物件在安全環境中一起工作。
當安全物件在安全物件於最終使用者生產環境中操作之前先被程式化、配置、測試或認證時,安全執行單元324可執行由安全儲存單元326儲存的信任代碼。可簽名及認證由安全執行單元324執行的信任代碼。
安全儲存單元326儲存並提供用於安全執行單元324執行的信任代碼。在實施例中,使用將程式碼儲存在安全儲存單元326中的安全執行引擎606且使用安全執行單元324執行程式碼而大大簡化了安全環境,從而提供了針對資料洩漏之附加級別的保護。
舉例而言,當安全物件先前經程式化、配置、測試或認證時,信任代碼可預先儲存在安全物件的安全儲存器或記憶體區域中。又,舉例而言,加密模組318可使用從程式化器112向安全物件發送的資訊來解碼信任代碼。
現在參考圖7,其中圖示了安全程式化系統100的第二範例方塊圖。範例圖圖示了在安全物件701的程式化期間的安全資訊的資料流。
舉例而言,被繪製為ID1、ID2及ID3的辨識代符624可包括安全物件701的序列號標記512。序列號標記512為分配給安全物件701中之每者的唯一資訊。安全物件的序列號標記512可不同於另一個安全物件的另一個序列號標記512,使得不可能有兩個安全物件701共享相同的序列號標記512。可由程式化器112產生序列號標記512。可由程式化器112分配每個序列號標記512至每個安全物件。
輸入的信任根504(In_RoT)可包括(但不限於)程式化器辨識符216。表示為In_RoT 504的In_RoT 504包括在程式化安全物件701前已先被程式化或配置的資訊。在一或多個實施例中,可將先前程式化的資訊程式化為用於對安全物件701、程式化器112及安全物件701進行程式化的配接器的組合。舉例而言,In_RoT 504可為安全加載的解密引擎、介面裝置定義(物料清單耦合)或上述組合。
In_RoT 504可與ID代符624分開或不同。In_RoT 504可包括與要程式化至安全物件701中的資訊不同之先前程式化的資訊。ID代符624可定義程式化裝置128下一級目的地來作為製造計劃構建的一部分。
舉例而言,In_RoT 504可包括(但不限於)在製造元件時嵌入或程式化至元件中的序列號或唯一鍵。此外,舉例而言,製造元件的時間可為(但不限於)在程式化元件前在矽層或系統層級製造組件的時間。
在一或多個實施例中,製造執行系統702(MES)可攝取或輸入In_RoT 504。製造執行系統702可執行構建計劃以製造第一板712和第二板714。應當理解,製造執行系統702可製造任何數量的板。In_RoT 504可與生成獨特的RoT(如ID代符624)的程式化器結合,以產生獨特的系統級RoT。In_RoT 504可包括來自於在元件的製造期間已先程式化至元件中之數位出生憑證的資訊。舉例而言,數位出生憑證可包括RoT資料622和RoT代碼620。
In_RoT 504可包括任何數量之註記為P1及P2的製造標記510。製造標記510包括當製造元件時與元件相關聯的資訊。舉例而言,製造標記510可包括(但不限於)元件ID、程式化器ID、元件的製造位置、日期代碼及元件的製造時間等。
製造執行系統702為用於製造用於產品品質控制目的的電腦化系統。MES 702可追蹤及記錄原材料至成品的轉換。MES 702可提供關於可如何最佳化工廠底層的當前條件以提高生產輸出的資訊。MES 702可即時工作,以便能控制生產過程的複數個元素(例如輸入、人員、機器及支援服務等)。
在一或多個實施例中,MES 702可與ID代符624一起接收In_RoT 504以程式化可程式化裝置128,如安全物件701。可使用In_RoT 504及ID代符624以生成安全物件的裝置辨識符302。裝置辨識符302包括唯一且僅與一個設備或安全物件相關聯的資訊。
裝置辨識符302可包括可程式化至系統(如第一板712或第二板714)中的唯一資訊。第一板712及第二板714為板級系統,其具有多個在系統中彼此組裝及連接的安全物件701。
第一板712可包括用於加密的系統公開金鑰154。系統公開金鑰154可在用於公開金鑰加密系統的第一板712中實施。系統公開金鑰154可為金鑰對150中之一者的一部分。安全資訊可由使用金鑰對150中之一者的私密金鑰152的安全物件加密,且由使用系統公開金鑰154的第一板712解密。
第一板712可使用系統公開金鑰154來加密安全資訊並發送至安全物件,此安全物件可使用私密金鑰152來解密經加密資訊。儘管將系統公開金鑰154描述為用於第一板712,但可瞭解,亦可在第二板714中實施系統公開金鑰。
安全程式化系統100僅圖示經配置以提供本文所描述之功能的元件之眾多可能佈置中的一種佈置。其他佈置可包括更少的、附加的或不同的元件,且部件之間的分工可根據佈置而變化。舉例而言,在一些實施例中,可省略一些安全模組及由被省略的元件所專門依賴的任何其他元件。作為另一範例,在實施例中,系統100可進一步包括複數個序列號或其他系統辨識符。
現在參考圖8,其中圖示了根據實施例之信任裝置800的方塊圖。信任裝置800的各種元件可在各種系統中執行,此等各種系統包含如上述安全程式化系統100的系統。在實施例中,可組合信任硬體平台802以包含可與安全儲存模組806建立介面的安全執行模組804。
在信任硬體平台802的製造期間,製造執行系統702可為預定義的構建計劃工作,此預定義的構建計劃要求程式化裝置128中的每一者按照此構建計劃的要求來包含ID代符624。包括RoT資料622和RoT代碼620可精確地產生執行製造執行系統702所需之包括ID代符624之程式化裝置128的正確數量。
辨識模組316可根據製造執行系統702的需要而藉由生成符合RoT資料622的RoT代碼620來產生ID代符624。利用RoT代碼620和RoT資料622的加密模組318可生成加密代符626及金鑰代符628。可理解的是,可在製造時將RoT資料622設計至此電子裝置中,且當其準備被發送至製造執行系統702時RoT資料622可配置RoT代碼620。信任硬體平台802的每個子系統級可包括ID代符624、加密代符626及金鑰代符628。當可更新信任硬體平台802的操作韌體時,可使用ID代符624、加密代符626及金鑰代符628。
認證模組320可利用RoT代碼620和RoT資料622來驗證信任硬體平台802實際上是經認證的元件而非盜版裝置。一旦加載了新的韌體,代碼簽名模組322可在解密及加載用於控制信任硬體平台802之操作的代碼之前驗證韌體並未被改變或篡改。
應當理解,信任硬體平台802可維護用於執行製造執行系統702的硬體及軟體的安全性和完整性,而不會損害任何用於產生信任硬體平台802的硬體元件或軟體元件。要進一步瞭解的是,藉由先前論述的方法之可程式化裝置在子系統或板上的組裝可將子系統轉換為信任硬體平台802。
可在信任硬體平台802中實例化RoT代碼620和RoT資料622的特定實施例。RoT資料622及RoT代碼620可配置用於由信任硬體平台802執行的安全應用程式設計介面(API)。將安全API暴露至用於執行的信任硬體平台802可確保在安全環境中的RoT資料622的安全程式化。
安全API可與由安全演算法304程式化至裝置中的特定RoT的代碼有關。代碼RoT功能可藉由API機制暴露給(在裝置上的)韌體。舉例而言,代碼RoT的入口點可為API函數。安全API可在裝置上運行或執行。
安全演算法304可用於程式化安全相關的RoT。安全演算法304可在程式化單元110的程式化器112或安全控制器114上執行。安全演算法304可與程式化單元110執行以程式化與RoT相關聯的資料及代碼至裝置中的所有或至少多個程式化步驟相關。
已發現可客製化RoT代碼620和RoT資料622以使得可能夠針對特定類型及數量的信任硬體平台802進行選擇性程式化。RoT代碼620及RoT資料622可提供用於單個裝置或由信任硬體平台702服務的數千個裝置的安全演算法304。安全演算法304在程式化單元110上提供允許將其餘安全資訊寫入可程式化裝置128的抽象介面。舉例而言,可針對程式化FLASH特定、EEPROM特定、HSM特定及iPhone特定等之應用來客製化安全演算法304。基本上,安全演算法304可支援單個裝置類型並執行特定的程式化任務。在安全程式化環境下,安全演算法304可向快閃記憶體中的特定區塊寫入安全資訊或跳閘安全熔絲。
安全演算法304藉由抽象化將關鍵安全使用案例映射至系統之複雜度來簡化安全程式化。此使得藉由安全演算法304來將此等安全API嵌入至裝置中,其中可在逐個裝置的基礎上客製化此等安全演算法304。安全演算法304可提供新典範,以將專有代碼程式化至各個裝置中,同時防止未經授權存取專有代碼資源。由安全API表示的安全演算法304可簡化製造過程、保護專有代碼,並藉由阻止對未經授權的裝置的程式化來防止盜版。
可客製化安全演算法304,以為儲存用於目標裝置之安全儲存中之每個RoT的資料及代碼提供特定支援。安全演算法304亦可基於裝置的安全執行特徵來配置資料及代碼,以在安全執行中執行。安全演算法304將安全API介面暴露至用於專有執行的韌體。
現在參考圖9,其中圖示了管理和安全處理系統902(MSP系統)的範例。MSP系統902可安全地部署及提供可程式化裝置128。
MSP系統902可單獨地配置具有加密資訊的資料裝置及主動的信任裝置,以提供安全的程式化及操作環境。MSP系統902可允許可程式化裝置128在安全的原始設備製造商(OEM)站點的安全程式化。
MSP系統902可為安全程式化系統100的實施例之一。可使用安全程式化系統100的元件來實施MSP系統902的元件。
MSP系統902可支援部分分佈在多個位置或場地之系統的操作。MSP系統902可包括OEM開發場地940和工廠場地942。OEM開發場地940可用於準備可程式化裝置128的實際程式化及供應。OEM開發場地940可用於準備程式化多個工廠的資訊。OEM開發場地940為OEM可準備程式化專案944的位置,程式化專案944具有用於配置一組安全裝置(如可程式化裝置128、安全元件、信任裝置130或其他類似裝置)的資訊。
儘管不同類型的安全裝置之間存在差異,但通常將術語理解為係可互換的,且在本質上係一般性的。為了方便及簡潔,在本說明書中可互換地使用安全裝置、安全元件、可程式化裝置128、信任裝置130及其他相似元件。
OEM開發場地940可獲取用於提供可程式化裝置128並準備程式化專案944的韌體映像914。接著可將程式化專案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以程式化之前預配置可程式化裝置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可包括程式化系統或子系統(如安全程式化系統100、程式化單元110、程式化器112或上述組合)的系統辨識符814。接著,程式化專案944只能在具有系統辨識符814的系統上執行。
生產計數948為描述在生產運行中要生產的安全裝置的數量的指標。生產計數948可與安全裝置開始或完成生產時所更新的增量數目進行比較。接收程式化專案944的程式化器112可使用生產計數948來限制經程式化及經供應之裝置的數量,以防止可程式化裝置128的未經授權的生產。在生產期間,當前計數978可指示具有已生產產品之當前數量。系統可藉由將當前計數978與生產計數948進行比較來停止程式化裝置,及於當前計數978等於生產計數948時停止程式化。
可用各種方式配置OEM管理系統924。例如,可在共享配置中實施OEM管理系統944,及生成程式化專案944以部署至複數個OEM,此複數個OEM每者具有此複數個OEM自身的工廠(如工廠場地942)。可使用安全的主儲存系統102、安全主系統104、安全程式化系統100或上述系統及子系統的組合。
MSP系統902可包括工廠管理系統930。工廠管理系統930為用於在工廠場地942管理安全程式化元件的系統。工廠管理系統930可從OEM管理系統944接收程式化專案944及解密,並將製造資訊分發至位於工廠場地942的其他安全及程式化系統。
可用各種方式實施工廠管理系統930。例如,可用製造執行系統702、程式化處理器202、主電腦系統或另一類似的處理系統來實施工廠管理系統930。
MSP系統902可以包括工廠安全系統932。工廠安全系統係基於HSM的安全設備,此基於HSM的安全設備產生要程式化至可程式化裝置128中的金鑰及憑證。工廠安全系統932可藉由將一個OEM的安全資訊與另一個OEM的安全資訊隔離來支援多租戶OEM架構。此允許工廠安全系統932程式化及設置不同組之用於不同程式化器的不同OEM的可程式化裝置128。
可用各種方式配置工廠安全系統932。例如,可使用安全主系統104、安全控制器114、程式化處理器202、第一安全模組116、第二安全模組118、第n安全模組120或上述組合來實施工廠安全系統932。可使用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、裝置辨識符302、矽供應商辨識符956、OEM辨識符966或其他類似資訊的資訊。
矽供應商裝置憑證926為安全定義安全元件(如可程式化裝置128或信任裝置130)之一者之身份的一組資料元素。矽供應商裝置憑證926可包括裝置辨識符302、矽供應商公開金鑰954及/或其他安全資訊。可使用矽供應商金鑰對960的矽供應商公開金鑰954來解密由矽供應商私密金鑰958所加密的資訊。
在將安全元件傳送至其他製造商或使用者之前,矽供應商裝置憑證926可由矽供應商或製造商程式化至安全元件的安全儲存單元中。矽供應商裝置憑證926可儲存於一次寫入安全儲存單元中,其中可將附加資訊新增至矽供應商裝置憑證926,但不能擦除或修改現有資訊。當不需要進一步的更改時,可鎖定安全儲存單元的部分。安全儲存單元可包括一或多個資料元素,如多個裝置憑證及其他相關的安全資料。
可用各種方式來實施矽供應商裝置憑證926。例如,可使用製造標記510、安全憑證306、安全演算法304、產品標記508、操作標記514、輸入的信任根504、信任憑證402或另一類似的資料元素來實施矽供應商裝置憑證926。
MSP系統902可包括用於即時提供裝置級程式化統計的裝置資料追蹤系統934。裝置資料追蹤系統934可追蹤用於本端工廠中的安全程式化系統100或遠端設置裝置的裝置級資訊。裝置資料追蹤系統934可追蹤由MSP系統902中的程式化器112所配置之每個可程式化裝置128的裝置級資訊。裝置資料追蹤系統934可追蹤如矽供應商裝置憑證926、系統辨識符814、裝置辨識符302或已程式化至裝置中的其他資料元素的資料。裝置資料追蹤系統934可追蹤包括有效狀態、配置狀態、複製狀態或其他裝置級狀態的裝置狀態。
MSP系統902可包括裝置供應服務938。裝置供應服務938為在網際網路上供應可程式化裝置128的系統。裝置供應服務938可為硬體及軟體的組合,其可安全地將供應資訊傳送至現場的可程式化裝置128。裝置供應服務938可分發安全資訊、資料更新、軟體更新及裝置持續安全操作所需的其他安全和操作資訊。
MSP系統902可包括韌體更新服務912。韌體更新服務912為用於更新網際網路(如OEM雲端928)上之可程式化裝置128之韌體的系統。韌體更新服務912可安全地傳送韌體更新916至具有一或多個可程式化裝置128的系統,並用新韌體更新可程式化裝置128。韌體更新916為用於更新可程式化裝置128中之韌體的軟體及資料封包。韌體更新服務912可為具有安全軟體及硬體的系統的部分,其可部署韌體更新916及相關聯的安全資訊,以確保安全地更新可程式化裝置128。
可用各種方式操作MSP系統902。在說明性範例中,可基於安全元件使用案例970來操作MSP系統902。安全元件使用案例970可描述使用MSP系統902安全程式化可程式化裝置128的一種方式,其中可程式化裝置128準備好配置有韌體並具有在矽供應商設備處預先安裝的矽供應商裝置憑證926。
安全元件使用案例970可包含兩個主要步驟。在步驟1中,從可程式化裝置128中之一者提取矽供應商裝置憑證926且此裝置經認證。在步驟2中,基於認證裝置的矽供應商裝置憑證926來建立OEM裝置憑證946。接著,將OEM裝置憑證946程式化至裝置中。
在此種使用案例下,可將基於HSM的安全系統(如工廠安全系統932)整合為安全程式化系統(如用於程式化具有整合安全區域之安全微控制器單元的系統)的一部分。整合安全區域可為可寫入一次而不改變之記憶體的保護區域。此允許對於安全資料(如金鑰、代碼或憑證)之不可修改的儲存。
系統可包括OEM管理系統924、工廠管理系統930、作業建立及作業傳輸系統及用於管理可程式化裝置128的狀態資料的裝置資料追蹤系統934。可用各種方式實施各種系統。例如,OEM管理系統924、工廠管理系統930、作業建立及作業傳輸系統及裝置資料追蹤系統934皆可作為主機系統936上的軟體來執行。在另一範例中,系統可各自運行在專用硬體上。
在此安全模型中,工廠場地942可作為OEM使用者的代理且可執行OEM管理系統924的功能。此有效地意味著OEM使用者968以提供OEM金鑰材料904及OEM憑證951及以可程式化裝置128設置生產計數948來隱含地信任工廠場地942。因此活動係在程式化單元110的主機系統936上完成,故作業設置、OEM金鑰材料904的生成及安全程式化系統100的配置係由授權人員在工廠場地942內的實體安全位置處完成。
一些實施可聚焦於將OEM裝置憑證946提供至經配置為安全元件的可程式化裝置128上。然而,應當理解,藉由OEM系統來安全化OEM金鑰材料904之流及安全化生產計數948的更新係由實體安全構件及安全資料通道保護。
因資料被加密並連接至工廠安全系統932中的特定一者,故來自OEM開發場地940的OEM資料係安全的且OEM資料由OEM管理系統924整路加密直至工廠安全系統932。例如,可使用工廠安全系統憑證933來加密程式化專案944,工廠安全系統憑證933只能由工廠安全系統932中之預期的一者解密。
在另一範例中,包括OEM裝置憑證簽名金鑰947的OEM金鑰材料904的傳送是安全地完成的(因材料在傳輸期間被加密)。OEM裝置憑證簽名金鑰947可包括私密金鑰元件。
在說明性範例中,因可程式化裝置128的私密金鑰152從不離開裝置且及OEM裝置憑證簽名金鑰947至OEM管理系統924中的導入完成係可靠的。因資料經加密,故此可減少對實體安全性的需求。
在另一個說明性範例中,可基於微控制器單元使用案例972來操作MSP系統902,在微控制器單元使用案例972中MSP系統902用於供應可程式化裝置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處執行。由OEM使用者968控制整體的專案定義及生產計數948的決定。
可在OEM開發場地940的電腦上代管OEM軟體執行環境。所有OEM信任根皆可自OEM開發場地940安全地傳送至工廠場地942。工廠管理系統930、工廠安全系統932及裝置資料追蹤系統934可執行於主機系統936上的工廠場地942處。
在實施例中,因第一步驟需要可程式化裝置128的安全供應,故必須在安全設施(如OEM信任的工廠、矽廠商、OEM工廠或程式化中心)中執行此第一步驟。接著,可在具有較低安全級別的設施(如不信任的工廠、合同製造商、第三方合作夥伴或類似類型的設施)處執行步驟二。
在此安全模型中,在OEM開發場地940處定義OEM信任根及程式化專案944,及將此OEM信任根及程式化專案944分發至工廠場地942。重要的是,OEM使用者應管理他們自身的信任根,以改善OEM產品供應鏈的安全性。
在說明性範例中,因可程式化裝置128的金鑰對150在工廠安全系統932中生成且此金鑰對可能在工廠場地942處暴露,故MCU使用案例972需要實體安全性。可程式化裝置128及程式化器112間的實體連接係清楚的,故具有對工廠場地942的系統的實體存取的人可窺探及竊取重要資訊。因此,應實施實體安全以保護安全資訊。
在MCU使用案例972的替代性範例中,可程式化裝置128可為空白且非使用矽供應商裝置憑證926預先程式化。在此種情況下,OEM裝置憑證946可用於認證。此外,可使用來自OEM裝置憑證946的公開解密金鑰(如OEM公開金鑰962)來加密韌體解密金鑰922。
現在參考圖10,其中圖示了安全元件使用案例970的詳細範例。安全元件使用案例970描述了用於安全地配置安全元件(如可程式化裝置128)的過程。MSP系統902可安全地部署及提供每個根據安全元件使用案例970的可程式化裝置128。
在安全元件使用案例970中,可在不同的場地處實體化、傳送及管理安全元件。場地可包括不同類型的位置(如矽製造商1004、OEM位置1006、程式化中心1008、程式化器位置1010及裝置位置1012)。每個場地代表其中相關於動作之一些類型的安全程式化可發生的位置。此外,使用案例可包括嵌入於程式化器112及裝置位置1012處的資料及動作。
安全元件使用案例970可包括三個不同的事件序列,每個事件序列用於執行不同的安全活動。在第一序列1014中,MSP系統902可使用OEM管理系統924來初始化工廠安全系統932。此可在OEM開發場地940、工廠場地942或另一相似位置處執行。
MSP系統902亦可在工廠場地942、程式化中心1008或另一相似位置處初始化工廠管理系統930。可用當前計數978、矽供應商公開金鑰954、OEM私密金鑰952及OEM裝置憑證模板950更新工廠管理系統930。工廠管理系統930可將資訊轉發至工廠安全系統932以用於安全處理。
在第二序列1016中,在矽供應商(SV)工廠處使用矽供應商裝置憑證926來程式化安全元件。
在第三序列1018中,MSP系統902可使用預先安裝在第二序列1016中的矽供應商裝置憑證926來對每個裝置(如可程式化裝置128或信任裝置130)進行加密認證。接著,可建立OEM裝置憑證946並將OEM裝置憑證946程式化至可程式化裝置128中。
可藉由重新使用來自矽供應商裝置憑證926的裝置辨識金鑰對的公開金鑰部分(如矽供應商公開金鑰954)來建立OEM裝置憑證946。因此,矽供應商公開金鑰954可用於計算OEM裝置憑證946,故兩個憑證皆使用相同的憑證進行認證。或者,可使用不同的金鑰對來表示與矽供應商金鑰對分開的OEM辨識符。此可由工廠安全系統932或安全元件本身執行。
在第二序列1016中,在矽製造商1004處執行步驟1020。矽製造商1004可為建立原始安全元件的公司。為每個安全元件(如可程式化裝置128或信任裝置130)建立矽供應商裝置憑證926。矽供應商裝置憑證926可包括關於每個安全元件的唯一資訊(如裝置辨識符302、序列號、產品類型、製造日期或類似的裝置資訊)。
步驟1022亦在矽製造商1004處執行。矽供應商裝置憑證926中的每一者皆使用矽製造商的矽供應商私密金鑰958及矽供應商辨識符956簽名。對矽供應商裝置憑證926簽名來加密憑證的資料。僅能利用矽供應商公開金鑰954來解密資料。
步驟1024亦在矽製造商1004處執行。皆用以矽供應商私密金鑰958簽名的矽供應商裝置憑證926來程式化可程式化裝置128中的每一者。由矽供應商私密金鑰958簽名的矽供應商裝置憑證926顯示矽供應商批准或提供裝置。成功地使用矽供應商公開金鑰954來解密矽供應商裝置憑證926可驗證可程式化裝置128係來自對其簽名的矽供應商。
第二序列1016可利用已使用矽供應商私密金鑰958所進一步簽名之矽供應商裝置憑證926的唯一且單獨的實體來唯一地標記每個可程式化裝置128。此提供了可使用矽供應商公開金鑰954來解碼矽供應商裝置憑證926,以驗證矽供應商裝置憑證926由具有矽供應商辨識符956的矽供應商提供。此允許工廠或其他裝置使用者確定可程式化裝置128的認證。
在矽製造商1004、OEM位置1006及程式化中心1008處執行第一序列1014。第一序列1014可在程式化中心1008處配置程式化元件以用於安全程式化。
在步驟1030中,矽供應商可生成具有矽供應商公開金鑰954及矽供應商私密金鑰958的矽供應商金鑰對960。此可為具有矽供應商私密金鑰958及矽供應商公開金鑰954的矽供應商金鑰對1080。
在步驟1032中,可將矽供應商公開金鑰954傳送至OEM使用者1006。可用明確且未加密的方式來發送矽供應商公開金鑰954。例如,可在網路鏈結上發送矽供應商公開金鑰954。
在步驟1034中,OEM使用者1006可將OEM憑證951註冊至工廠管理系統930及程式化中心1008的工廠安全系統932。OEM憑證951可包括OEM公開金鑰962以解密及認證使用OEM私密金鑰962加密或簽名的資訊。可安全地執行程式化中心1008處的OEM憑證的註冊,以向程式化中心1008提供OEM使用者1006的安全資訊。可執行註冊以將OEM憑證引入並辨識至工廠管理系統930及工廠安全系統932中。
在步驟1035中,工廠管理系統930及工廠安全系統932可在安全交換過程中向OEM管理系統924發送工廠安全系統加密金鑰980。工廠安全系統資料加密金鑰980可用於加密從OEM使用者1006發送至工廠管理系統930及工廠安全系統932的資訊,以支援資訊的安全傳輸。工廠安全系統932可向OEM管理系統924發送工廠安全系統資料加密金鑰。
在步驟1036中,OEM使用者1006可建立具有SV裝置認證公開金鑰、OEM裝置憑證簽名金鑰及OEM裝置憑證模板950的封包。可在OEM管理系統924中建立OEM裝置憑證簽名金鑰或自外部安全系統(如外部的HSM)導入此OEM裝置憑證簽名金鑰。可使用工廠安全系統資料加密金鑰980來在OEM管理系統924中加密封包,隨後將此封包發送至工廠管理系統930及工廠安全系統932。由於已使用工廠安全系統932中的工廠安全系統資料加密金鑰980來加密封包,故僅能使用工廠安全系統932的工廠安全系統資料認證金鑰982進行解密。OEM裝置憑證模板950為OEM裝置憑證946的模板且接著由OEM私密簽名金鑰簽名,此模板包括具有裝置辨識符320之裝置的公開金鑰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。自可程式化裝置128清楚地傳送矽供應商裝置憑證926至程式化器112。
在步驟1042中,矽供應商裝置憑證926可從程式化器112傳送至工廠管理系統930及工廠安全系統932。工廠管理系統930控制程式化操作,且工廠安全系統932將管理裝置及系統安全。
在步驟1044中,在程式化中心1008的工廠管理系統930處接收矽供應商裝置憑證926。程式化器112位於工廠場地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對OEM裝置憑證946簽名,故可清楚傳送OEM裝置憑證946。
在步驟1052中,程式化器112可建立串列資料列表964。串列資料列表964為要程式化至可程式化裝置128中的裝置特定資料的列表。此可包括序列號、裝置辨識符、OEM裝置憑證946、製造標記、代碼、資料、標記、MAC位址、裝置私密金鑰或其他資訊。
在步驟1054中,包括在串列資料列表964上的裝置特定資料可由程式化器112程式化至可程式化裝置128中。串列資料列表964可指示裝置特定資料應儲存的位置。例如,OEM裝置憑證946可儲存於安全儲存單元中。
在步驟1056中,矽供應商裝置憑證926及OEM裝置憑證946由程式化器112自安全元件(如可程式化裝置128或信任裝置130)重新提取及檢索。儘管矽供應商裝置憑證926及OEM裝置憑證946的副本可能已存在於工廠安全系統932或系統的其他地方中,重新提取裝置憑證以驗證可程式化裝置128並偵測潛在的重複生產運行、未經授權的複製或其他不當活動。可使用驗證步驟以確保裝置憑證已經程式化且沒有錯誤。此可包括程式化故障、裝置損壞、位元錯誤或類似錯誤。
在步驟1058中,將矽供應商裝置憑證926及OEM裝置憑證946發送至工廠安全系統932以供驗證和進一步使用。所檢索的裝置憑證可用於第二輪認證,以驗證係可程式化裝置128中之正確的可程式化裝置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。
現在參考圖11,其中圖示了裝置上使用案例1102的範例。可在原始設備製造商位置處的硬體安全模組中執行裝置上的種子使用案例1102。
在裝置上種子及憑證生成使用案例1102中,可在多個位置之間實體化及管理安全元件。位置可包括各種配置。位置可包括矽製造商1104、原始設備製造商1106、程式化中心1108、製造中心或類似位置。此外,使用案例可包括嵌入在程式化器112級及裝置級1112處的資料及動作。
在步驟1122中,可將空白可程式化裝置128及參考開機載入器軟體提供給微控制器單元矽供應商,且將空白可程式化裝置128及參考開機載入器軟體實體地傳送至第二位置(如OEM 1106),以進一步處理。實體傳輸為安全的實體傳輸,以防止未經授權地存取空白可程式化裝置128及安全軟體。
在步驟1124中,可在如OEM的第二位置處接收可程式化裝置128。OEM可藉由修改參考開機載入器軟體來開發安全核心及安全開機載入器。OEM亦可開發及提供加密的韌體映像及韌體加密金鑰(UPK)。OEM亦可提供需要生產的裝置的總數。安全核心及種子核心可保存在OEM處的第一硬體安全模組(HSM#1)裝置中,且可藉由加密傳輸至場地上之第二硬體安全模組裝置(HSM#2)來提供給程式化中心。
在步驟1126中,安全裝置的第二硬體安全模組可將種子核心發送至程式化器112。在裝置的HSM#2上生成種子。種子核心需要程式化至裝置中,此裝置將在裝置上執行以生成種子及金鑰對。公開金鑰將進入裝置憑證且可將私密金鑰程式化至裝置。
步驟1126可發送種子核心至程式化器112,程式化器112將種子核心程式化至裝置中。接著,重新開機裝置並執行種子核心。種子核心可生成金鑰對。私密金鑰儲存在裝置上的隱藏記憶體區域中。公開金鑰(Kpub)返回至HSM#2。HSM#2亦可生成簽名憑證,將此等簽名憑證與安全核心合併,並將其程式化至裝置中。
因裝置秘密、種子核心及隨後的私密金鑰在HSM#2中生成且不會暴露在裝置外部,故此使用案例為最安全的使用案例。可在裝置外部發送及暴露公開金鑰。因此,即使以清楚方式交換一些資料,程式化器112及裝置之間的資料交換仍是安全的且最小化了安全漏洞。此與其中安全核心及種子程式化在程式化器及裝置之間清楚傳輸的裝置外種子使用案例1102不同。若資料被攔截且需要更嚴格的場地安全要求,則此可能為安全漏洞。
在步驟1128中,程式化器112可用可程式化有效承載P對信任裝置128進行程式化,接著自可程式化承載的任何修改來鎖定裝置。因裝置可隨時一經要求在裝置上使用種子來生成私密金鑰,故不需要將金鑰對的私密金鑰程式化至裝置中。私密金鑰的此一代為安全核心的一部分且僅能藉由安全核心來安全存取。
在步驟1130中,可用種子核心程式化可程式化裝置128中的一者。在安裝種子核心後,步驟1128可繼續,且程式化器可向裝置發出重新啟動命令。
在步驟1132中,裝置可生成裝置種子及安全金鑰106,接著生成並發送公開金鑰至如MES的程式化中心級。可用清楚方式發送公開金鑰(因可共享公開金鑰;公開金鑰並非為隱藏的值)。
在步驟1134中,系統可生成並簽署裝置憑證。接著,安全核心可與裝置憑證合併並發送至程式化器112。使用加密傳輸(此加密傳輸使用程式化器憑證)發送經合併的安全核心。
在步驟1136中,程式化器112可接收安全核心並將安全裝置128中的一者與安全核心一起提供。可使用加密的傳輸通道(此通道使用公開金鑰)將安全核心發送至可程式化裝置128中之一者。
在步驟1138中,裝置可解密並安裝安全核心。此外,可將簽名添加至裝置。在安裝了核心後,步驟1136可發送重新啟動命令至裝置,且裝置可在步驟1140中歸回憑證。
在步驟1142中,安全裝置使用來自裝置的裝置憑證的公共資料加密金鑰來生成特定於裝置的超加密UPK。接著,可將超加密金鑰及加密的韌體映像發送回程式化器112,以程式化至可程式化裝置128中之一者。
在步驟1144中,可將加密檔案程式化至可程式化裝置128中之一者中。可將加密檔案作為使用公開金鑰的加密檔案傳送至可程式化裝置128中之一者。
在步驟1146中,程式化器112可將加密檔案傳送至可程式化裝置128中之一者,其中解密映像並將其安裝至可程式化裝置128中之一者中。映像的安裝係藉由將憑證及模組列表發送回程式化器112來授權及驗證映像之安裝。
在步驟1148中,程式化器112可藉由將憑證及模組列表與已知憑證及模組列表相匹配來驗證加密檔案在可程式化裝置上的安裝。
在程式化中心處之第二硬體安全模組中生成裝置種子藉由減少洩漏安全元件之機會的數量來增加製造安全性的整體水平。由於程式化中心為受監控的環境(每天24小時的視訊監控),故可用更高的安全性及完整性來程式化可程式化裝置128。
3.0 功能概述
安全程式化系統100可用各種方式配置及提供安全元件(如可程式化裝置128及信任裝置130)。取決於在安全元件上執行的操作類型,可實施不同級別的安全。可在相同的實體系統上實施不同的使用案例及處理流,以適應不同的終端使用者的需求。
現在參考圖12,其中圖示了根據實施例的嵌入信任根系統1200的流程圖的第一範例。可在各種系統中執行信任裝置(例如,802)的各種元件,此等各種系統包括如上述安全程式化系統(例如,100)的系統。在實施例中,可使用在子組件製造的每個階段處的信任硬體平台來驗證的安全硬體組及安全製造過程來實施結合下文敘述的功能方塊所描述的每個處理。
嵌入信任根系統1200的流程圖包括:在方塊1202中建立信任根資料(例如,622)於半導體裝置中。信任根資料可包括經設計至在半導體裝置製造程序期間待配置之半導體裝置之電路中的辨識序列。
流程可進行至辨識用於製造執行系統(例如,702)的構建計劃,此辨識步驟包含在方塊1204中確定半導體裝置的數量及配置。可自半導體製造商辨識及訂製製造執行系統的要求。在第三方製造的情況下,OEM可訂製經配置及經運送至組裝器的半導體裝置,以支援構建計劃。
流程可進行至方塊1206中,生成信任根代碼(例如,620),其中可生成信任根代碼以支援製造執行系統的構建計劃。信任根代碼可將半導體裝置的實際處理限制為精確數量的裝置。信任根代碼可辨識哪些電路可耦合至半導體裝置及經耦合半導體裝置的特徵(例如,製造日期、序列號範圍、修訂級別及製造位置等)。
流程進行至方塊1208中的計算製造代符,其中信任根代碼可使用信任根資料來計算ID代符(例如,624)的確切數量、提供加密代符(例如,626)及當程式化包含半導體裝置之子組件時可使用的金鑰代符(例如,628)。當韌體加載至子組件上時,可使用金鑰代符及加密代符。可由嵌入信任根系統1200管理信任硬體平台(例如,802)之每個組裝及程式化階段。
流程進行至方塊1210中的驗證韌體完整性。在系統或裝置之間交換代碼資訊的完整性。代碼簽名模組(例如,322)使用數位簽名來驗證是否已更改或篡改所交換資訊的內容,可使用OEM裝置憑證簽名金鑰(例如947)或儲存在信任根資料中的簽名來驗證此數位簽名。
現在參考圖13,其中圖示了根據實施例之嵌入信任根系統1300的流程圖的第二範例。信任裝置(例如,802)的各種元件可在各種系統中執行,此各種系統包括如上述安全程式化系統(例如,100)的系統。在實施例中,可使用在子組件製造的每個階段由信任硬體平台來驗證之安全硬體組及安全製造過程來實施結合下文敘述的功能方塊所描述的每個處理。第二範例可用於使用OEM辨識符(例如,966)將OEM憑證(例如,951)程式化至可程式化裝置(例如,128)中。或者,第二範例可用於將辨識特定OEM裝置的OEM裝置憑證(例如,946)程式化至可程式化裝置中。
嵌入信任根系統1300的流程圖包括在方塊1302中生成安全演算法(例如,304)以將信任根(RoT)嵌入至可程式化裝置中。安全演算法及RoT藉由程式化器(例如,112)儲存於可程式化裝置的RoT代碼暫存器(例如,621)中。可使用原始設備製造商(OEM)開發場地(例如,940)處的程式化專案(例如,944)生成安全演算法,且由工廠場地(例如,942)處的程式化器將此安全演算法程式化至可程式化裝置中。
安全演算法為硬體系統執行的過程。例如,RoT可至少包括辨識代符(例如624)、OEM憑證(例如,951)及OEM裝置憑證。OEM憑證可包括OEM辨識符(例如,966)及OEM公開金鑰(例如,962)。OEM憑證只有OEM公開金鑰,無OEM私密金鑰(例如952)。
安全演算法涉及程式化單元(例如,110)執行以將與待程式化至可程式化裝置中的RoT相關聯的資料及代碼程式化的所有或至少一些程式化步驟。安全演算法包括安全代碼元件(例如,314)。RoT代碼向外部系統提供應用程式設計介面(API),以控制信任裝置(例如,130)上的安全功能。可客製化安全演算法或此安全演算法可不同於在工廠場地(例如,942)使用相同的程式化專案程式化的一組信任裝置的每個信任裝置。例如,安全代碼元件可包括源代碼、可執行代碼、函式庫模組、鏈接模組、配置檔案、初始化資料、硬體控制代碼或上述組合。此外,例如,安全演算法可以可選地儲存於可程式化裝置的安全儲存單元(例如,326)中,且在可程式化裝置的執行單元(例如,324)中執行。安全演算法通常可在程式化器(例如,112)上執行,並將與信任根相關的資料及代碼注入到可程式化裝置中。此外,例如,安全演算法可成為可追蹤目標作業的一部分但可能很少會儲存在可程式化裝置上。安全演算法可儲存在可程式化裝置上,但此等安全演算法通常不會儲存在可程式化裝置上。
流程可在方塊1304中繼續,以執行硬體系統上的安全演算法。硬體系統可至少包括程式化器、工廠安全系統(例如,932)、主機系統(例如,836)、執行單元或上述組合。例如,程式化器或程式化單元的安全控制器(例如114)執行安全演算法以產生可程式化裝置的安全資訊。
在方塊1306中,安全演算法指示硬體系統生成包括(但不限於)金鑰對的安全資訊。例如,可使用工廠安全系統生成金鑰對。金鑰對可包括OEM裝置公開金鑰或矽供應商公開金鑰(例如,954)及OEM裝置私密金鑰或矽供應商私密金鑰(例如,958)。
在方塊1308中,安全演算法指示硬體系統儲存金鑰對於可程式化裝置中。程式化器與執行單元通訊以將金鑰對儲存至安全儲存單元中。
在方塊1310中,安全演算法指示硬體系統使用OEM裝置公開金鑰來生成OEM裝置憑證。可使用工廠安全系統來生成OEM裝置憑證。OEM裝置憑證可包括OEM辨識符(例如,966)。可由工廠安全系統使用OEM裝備憑證簽名金鑰(例如,947)來對OEM裝置憑證簽名。
在方塊1312中,安全演算法指示硬體系統將OEM裝置憑證儲存至可程式化裝置中。可使用執行單元來儲存OEM裝置憑證。
當OEM裝置憑證經程式化至可程式化裝置中時,安全演算法完成。特別為每個可程式化裝置建立安全演算法。構成安全演算法的代碼可來自作業封包或程式化專案(例如944)。安全演算法可與待程式化至可程式化裝置中的程式化專案的資料捆綁在一起。
流程可進行至方塊1314中的驗證可程式化裝置,以確保OEM裝置憑證具有適當的裝置憑證且已經正確程式化。可由程式化器、主機系統、工廠安全系統或上述組合來驗證可程式化裝置。
例如,程式化器或主機系統請求執行單元從安全儲存單元檢索OEM裝置憑證。程式化器或執行單元驗證OEM裝置憑證是否由OEM裝置憑證簽名金鑰簽名。程式化器或執行單元在OEM裝置憑證中使用OEM裝置公開金鑰,以挑戰可程式化裝置對加密資料串流進行解密。若來自可程式化裝置的回應(例如,解密的資料串流)與來自程式化器或執行單元的原始資料串流匹配,則已程式化的OEM裝置憑證被驗證。
在實施例中,工廠管理系統(如,930)管理多個系統。工廠管理系統接受來自OEM管理系統(例如924)的輸入或請求,並將此輸入或請求傳遞至工廠安全系統。
除了其他優點之外,安全演算法尚用於提取如何建立及程式化RoT之裝置特定的複雜性,且藉由向可程式化裝置上的韌體提供應用程式設計介面(API)來建立抽象層以自OEM提取複雜性,使得可用韌體操縱RoT。
在實施例中,可僅使用工廠安全系統來執行所有安全交易(例如,金鑰生成、金鑰驗證、簽名生成及驗證等)。工廠管理系統(例如930)可不用於執行此等交易。
根據一或多個實施例,可執行系統以用於可程式化裝置(例如,128)之欺騙性偵測及預防。儘管描述了系統的範例,但其他實施例亦可應用於可用於執行本文所述功能的任何系統。系統的組件可藉由(例如)資料匯流排、資料鏈路、區域網路(LAN)、廣域網路(WAN)、網際網路、內部網路及外部網路等連接。系統內的任何數量裝置可藉由有線或無線通訊段彼此直接相連。
4.0 示例性實施例
呈現一些實施例的範例(但不限於)於以下款中:
根據實施例,一種系統包括:至少部分地由硬體實施的辨識模組,此辨識模組基於可程式化裝置的信任根資料暫存器及可程式化裝置的信任根代碼暫存器來產生由製造執行系統使用的辨識代符;至少部分由硬體實施的加密模組,此加密模組計算用於認證信任資料暫存器及信任根代碼暫存器的加密代符及金鑰代符;至少部分由硬體實施的認證模組,此認證模組基於加密代符及金鑰代符來驗證信任硬體平台;及至少部分由硬體實施的代碼簽名模組,此代碼簽名模組在程式化可程式化裝置之前驗證信任硬體平台的韌體完整性。
在實施例中,其中信任根代碼暫存器包括使用在原始設備製造商(OEM)開發場地處的程式化專案所產生的安全演算法,且此安全演算法藉由程式化器儲存於工廠場地處的可程式化裝置中。
在實施例中,進一步包括至少部分地由硬體實施的工廠安全系統,此工廠安全系統基於安全演算法將信任根(RoT)儲存於可程式化裝置中。
在實施例中,其中程式化器基於安全演算法產生用於儲存在可程式化裝置中的安全資訊。
在實施例中,其中程式化器基於安全演算法將金鑰對儲存在可程式化裝置中。
在實施例中,其中程式化器基於安全演算法產生具有公開金鑰及私密金鑰的憑證。
在實施例中,其中程式化器基於安全演算法將憑證儲存在可程式化裝置中。
根據實施例,一種方法包括以下步驟:基於可程式化裝置的信任根資料暫存器及可程式化裝置的信任根代碼暫存器產生由製造執行系統使用的辨識代符;計算用於認證信任資料暫存器及信任根代碼暫存器的加密代符及金鑰代符;基於加密代符及金鑰代符驗證信任硬體平台;及在程式化可程式化裝置之前驗證信任硬體平台的韌體完整性。
在實施例中,進一步包括以下步驟:在原始設備製造商(OEM)開發場地處使用程式化專案來產生安全演算法;及藉由工廠場地處的程式化器來將安全演算法儲存在可程式化裝置的信任根代碼暫存器中。
在實施例中,進一步包括以下步驟:基於安全演算法將信任根(RoT)儲存在可程式化裝置中。
在實施例中,進一步包括以下步驟:基於安全演算法產生用於儲存在可程式化裝置中的安全資訊。
在實施例中,進一步包括以下步驟:基於安全演算法將金鑰對儲存在可程式化裝置中。
在實施例中,進一步包括以下步驟:基於安全演算法產生具有公開金鑰及私密金鑰的憑證。
在實施例中,進一步包括以下步驟:基於安全演算法將憑證儲存在可程式化裝置中。
在本文中可找到此等及其他實施例的其他範例。
5.0實施機制─硬體概述
根據一實施例,本文所述技術由一或多個專用計算裝置來實施。專用計算裝置可為桌上型電腦系統、可攜式電腦系統、手持裝置、智慧型電話、媒體裝置、遊戲控制台、網路裝置或包含硬連線及/或程式邏輯以實施技術的任何其他裝置。專用計算裝置可被硬接線以執行技術,或可包括數位電子設備(如一或多個經持續程式化以執行技術的特殊應用積體電路(ASIC)或現場可程式化閘陣列(FPGA)),或可包括經程式化為根據韌體、記憶體、其他儲存器或組合中的程式指令以執行技術的一或多個通用硬體處理器。此類專用計算裝置亦可將客製化的硬接線邏輯、ASIC或FPGA與客製化的程式化結合以完成技術。
現在參考圖14,其中圖示了圖示在實施根據實施例之上述技術中所使用的電腦系統1400的方塊圖。電腦系統1400可為(例如)桌上型計算裝置、膝上型計算裝置、平板電腦、智慧型電話、伺服器設備、大型計算主機、多媒體裝置、手持裝置、網路設備或任何其他合適的裝置。
電腦系統1400包括用於傳送資訊的一或多個匯流排1402或其他通訊機制,及與匯流排1402耦合以用於處理資訊的一或多個硬體處理器1404。硬體處理器1404可為(例如)通用微處理器。匯流排1402可包括各種內部及/或外部組件,此等各種內部及/或外部組件包括(但不限於)內部處理器或記憶體匯流排、串列ATA匯流排、PCI Express匯流排、通用串列匯流排、超傳輸匯流排、Infiniband匯流排及/或任何其他合適的有線或無線通訊通道。
電腦系統1400亦包括主記憶體1406(如隨機存取記憶體(RAM)或其他動態或揮發性儲存裝置),主記憶體1406耦合至匯流排1402,以儲存待由處理器1404執行的資訊及指令。主記憶體1406亦可用於在由處理器1404執行待執行的指令期間儲存臨時變數或其他中間資訊。當此類指令儲存於處理器1404可存取之非暫態的儲存媒體中時,此類指令使電腦系統1400成為經客製化以執行指令中指定操作的專用機器。
電腦系統1400進一步包含耦合至匯流排1402的一或多個唯讀記憶體(ROM)1408或其他靜態儲存裝置以儲存用於處理器1404的靜態資訊及指令。提供及耦合一或多個儲存裝置1410(如固態驅動器(SSD)、磁碟、光碟或其他合適的非揮發性儲存裝置)至匯流排1402以儲存資訊及指令。
電腦系統1400可經由匯流排1402耦合至一或多個顯示器1412以向電腦使用者呈現資訊。例如,電腦系統〜00可經由高畫質多媒體介面(HDMI)電纜或其他合適電纜來連接至液晶顯示器(LCD)螢幕,及/或經由無線連接(如同級間Wi-Fi)直接連接至發光二極體(LED)電視機。合適類型的顯示器1412的其他範例可包括(但不限於)電漿顯示裝置、投影儀、陰極射線管(CRT)螢幕、電子紙、虛擬實境頭戴裝置、盲文終端及/或用於將資訊輸出至電腦使用者的任何合適裝置。在實施例中,可使用任何合適類型的輸出裝置(舉例而言如音訊揚聲器或印表機)來取代顯示器1412。
在實施例中,顯示器1412的輸出可由電腦系統1400中的一或多個圖形處理單元(GPU)加速。GPU可為(例如)高度並行化的多核心浮點處理單元,此多核心浮點處理單元經高度最佳化執行與圖形資料、3D資料及/或多媒體的顯示相關的計算操作。除了直接計算圖像及/或影片資料以輸出至顯示器1412之外,還可使用GPU來使圖像或其他影片資料離屏,並以非常高效能將此資料讀回至用於離屏影像處理的程式中。可將各種其他計算任務自處理器1404卸載至GPU。
一或多個輸入裝置1414經耦合至匯流排1402以將資訊及命令選擇傳送至處理器1404。輸入裝置1414的一範例為包括字母數字及其他鍵的鍵盤。另一類型的使用者輸入裝置1414為游標控制器1416(如滑鼠、軌跡球或游標方向鍵)以將方向資訊及命令選擇傳送至處理器1404並控制顯示器1412上的游標移動。輸入裝置通常在兩軸(允許裝置指定平面中的位置的第一軸(例如,x)及第二軸(例如,y))上具有兩個自由度。合適的輸入裝置1414的其他範例包括固定至顯示器1412的觸控式面板、相機、麥克風、加速度計、運動偵測器及/或其他感測器。在實施例中,可使用基於網路的輸入裝置1414。在此種實施例中,使用者輸入及/或其他資訊或命令可經由區域網路(LAN)或其他合適的共享網路上的路由器及/或交換器或經由同級間網路中繼,而自輸入裝置1414至電腦系統1400上的網路鏈結1420。
電腦系統1400可使用客製化的硬連線邏輯、一或多個ASIC或FPGA、韌體及/或程式邏輯(其結合電腦系統來使或程式化電腦系統1400成為專用機器)來實施本文所述技術。根據一實施例,本文技術由回應於處理器1404的電腦系統1400執行,處理器1404執行主記憶體1406中包含的一或多個指令的一或多個序列。此種指令可從另一儲存媒體(如儲存裝置1410)讀取至主記憶體1406中。包含在主記憶體1406中的指令序列的執行使處理器1404執行本文所述的處理步驟。在替代實施例中,可使用硬連線電路代替軟體指令或與軟體指令組合使用。
本文所用的術語「儲存媒體」係指儲存導致機器以特定方式操作的資料及/或指令的任何非暫態媒體。此種儲存媒體可包括非揮發性媒體及/或揮發性媒體。非揮發性媒體包括(例如)光碟或磁碟(如儲存裝置1410)。揮發性媒體包括動態記憶體(如主記憶體1406)。儲存媒體的常見形式包括(例如)軟碟、軟磁碟、硬碟、固態驅動器、磁帶或任何其他磁性資料儲存媒體、CD-ROM、任何其他光學資料儲存媒體、具有孔圖案的任何實體媒體、RAM、PROM,及EPROM、FLASH-EPROM、NVRAM及任何其他記憶體晶片或磁盒。
儲存媒體與傳輸媒體不同,但儲存媒體可與傳輸媒體結合使用。傳輸媒體參與了在儲存媒體之間傳輸資訊。例如,傳輸媒體包括同軸電纜、銅線及光纖(其包含導線(導線包含匯流排1402))。傳輸媒體亦可採取聲波或光波的形式,如在無線電波及紅外線資料通訊期間產生的波。
各種形式的媒體涉及將一或多個指令的一或多個序列傳送至處理器1404以執行。例如,最初可傳送指令至遠端電腦的磁碟或固態驅動器上。遠端電腦可載入指令至此遠端電腦的動態記憶體中,且使用數據機來在網路(如電纜網路或蜂窩網路)上發送作為經調變信號的指令。電腦系統1400本端數據機可接收網路上的資料並解調變信號,以解碼經傳送的指令。合適的電路接著可將資料放置在匯流排1402上。匯流排1402從處理器1404檢索及執行指令處將資料傳送至主記憶體1406。由主記憶體1406接收的指令可以可選地在處理器1404執行之前或之後儲存於儲存裝置1410上。
在實施例中,電腦系統1400亦可包括耦合至匯流排1402的一或多個通訊介面1418。通訊介面1418向網路鏈結1420提供通常為雙向的資料通訊耦合,網路鏈結1420係經連接至區域網路1422。例如,通訊介面1418可為綜合業務數位網(ISDN)卡、電纜數據機、衛星數據機或數據機,以向相應類型的電話線提供資料通訊連接。作為另一範例,一或多個通訊介面1418可包括區域網(LAN)卡,以提供資料通訊連接至兼容的LAN。作為另一範例,一或多個通訊介面1418可包括無線網路介面控制器(如基於802.11的控制器、藍芽控制器、長期進化(LTE)數據機及/或其他類型的無線介面)。在任何此種實施中,通訊介面1418發送及接收傳送表示各種類型資訊的數位資料串流的電信號、電磁信號或光信號。
網路鏈結1420通常藉由一或多個網路來向其他資料裝置提供資料通訊。例如,網路鏈結1420可藉由區域網路1422向主電腦1424或由服務提供商1426向經操作的資料裝置提供連接。服務供應商1426(可為(例如)網際網路服務供應商(ISP))接著提供經由廣域網路的資料通訊服務(例如,現在通常被稱為「網際網路」1428的全球封包資料通訊網路)。區域網路1422及網際網路1428兩者皆使用傳送數位資料串流的電信號、電磁信號或光信號。藉由各種網路的信號及網路鏈結1420上且經由將數位資料傳送至電腦系統1400及自電腦系統1400傳送數位資料的通訊介面1418的信號為傳輸媒體的範例形式。
在一實施例中,電腦系統1400可藉由(多個)網路、網路鏈結1420及通訊介面1418發送訊息及接收資料(包括程式碼及/或其他類型的指令)。在網際網路範例中,伺服器〜30可藉由網際網路1428、ISP 1426、區域網路1422及通訊介面1418傳送用於應用程式的請求代碼。當此接收到的代碼被接收及/或儲存於儲存裝置1410或其他非揮發性記憶體中以供稍後執行時,處理器1404可執行接收到的代碼。作為另一範例,經由網路鏈結1420接收的資訊可由電腦系統1400的軟體元件(如網路瀏覽器、應用或伺服器)進行直譯及/或處理,此軟體元件可藉由作業系統及/或軟體元件的其他中間層來基於其依次向處理器1404發出指令。
在實施例中,本文所述系統中的一些或所有系統可為或包括伺服器電腦系統,此等伺服器電腦系統包括一或多個電腦系統140,一或多個電腦系統140將系統的各種組件統一地實施為一組伺服器端處理。伺服器電腦系統可包括web伺服器、應用伺服器、資料庫伺服器及/或用於提供所述功能之包含上述組件的其他常規伺服器元件。伺服器電腦系統可接收基於網路的通訊,此基於網路的通訊包括來自各種來源的輸入資料,輸入資料包括(但不限於)使用者操作的客戶端計算裝置(如桌上型電腦、平板電腦或智慧型電話、遠端感測裝置及/或其他伺服器電腦系統)。
在實施例中,可全部或部分地使用「基於雲端」的元件來實施某些伺服器元件,此等「基於雲端」的元件藉由一或多個網路(如網際網路)耦合至系統。基於雲端的元件可暴露此等基於雲端的元件向系統的其他元件提供處理、儲存、軟體及/或其他資源的介面。在實施例中,可由代表元件被部署的另一實體的第三方實體實施基於雲端的元件。然而,在其他實施例中,可完全由單一實體所擁有及操作的電腦系統來實施所描述的系統。
在實施例中,設備包括處理器且經配置為執行前述方法中的任何一者。在實施例中,當由一個或多個處理器執行儲存軟體指令之非暫態電腦可讀取儲存媒體時,此等指令導致執行前述任何一種方法。
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‧‧‧輸入的信任根506‧‧‧韌體標記508‧‧‧產品標記510‧‧‧製造標記512‧‧‧序列號標記514‧‧‧操作標記516‧‧‧原始設備製造商標記602‧‧‧第一安全物件604‧‧‧第二安全物件606‧‧‧安全執行引擎620‧‧‧RoT代碼621‧‧‧RoT代碼暫存器622‧‧‧RoT資料623‧‧‧RoT資料暫存器624‧‧‧ID代符626‧‧‧加密代符628‧‧‧金鑰代符701‧‧‧安全物件702‧‧‧製造執行系統712‧‧‧第一板714‧‧‧第二板800‧‧‧信任裝置802‧‧‧信任硬體平台804‧‧‧安全執行模組806‧‧‧安全儲存模組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‧‧‧步驟1102‧‧‧使用案例1104‧‧‧矽製造商1106‧‧‧原始設備製造商1108‧‧‧程式化中心1122‧‧‧步驟1124‧‧‧步驟1126‧‧‧步驟1130‧‧‧步驟1132‧‧‧步驟1134‧‧‧步驟1136‧‧‧步驟1138‧‧‧步驟1140‧‧‧步驟1142‧‧‧步驟1144‧‧‧步驟1146‧‧‧步驟1148‧‧‧步驟1200‧‧‧嵌入信任根系統1202‧‧‧方塊1204‧‧‧方塊1206‧‧‧方塊1208‧‧‧方塊1210‧‧‧方塊1302‧‧‧方塊1304‧‧‧方塊1306‧‧‧方塊1308‧‧‧方塊1310‧‧‧方塊1312‧‧‧方塊1314‧‧‧方塊1400‧‧‧電腦系統1402‧‧‧匯流排1404‧‧‧硬體處理器1406‧‧‧主記憶體1408‧‧‧唯讀記憶體1410‧‧‧儲存裝置1412‧‧‧顯示器1414‧‧‧輸入裝置1416‧‧‧游標控制器1418‧‧‧通訊介面1422‧‧‧區域網路1424‧‧‧主電腦1426‧‧‧服務提供商1428‧‧‧網際網路
在附加圖式中以範例(而非限制)的方式圖示了本發明,及此等附圖中相同的元件符號係表示相同的元件,在此等附圖中:
圖1描繪了根據實施例之安全程式化系統的說明圖;
圖2描繪了程式化器的範例;
圖3描繪了信任裝置中之一者的範例;
圖4描繪了資料裝置中之一者的範例;
圖5描繪了裝置辨識的範例;
圖6描繪了安全程式化系統的示例性方塊圖;
圖7描繪了安全程式化系統的第二示例性方塊圖;
圖8為根據實施例之信任裝置的方塊圖;
圖9為管理及安全處理系統的範例;
圖10為安全元件使用案例的詳細範例;
圖11為設備上種子及憑證生成使用案例的範例;
圖12為根據實施例之嵌入信任根系統之流程圖的第一範例;
圖13為根據一或多個實施例之嵌入信任根系統之流程圖的第二範例;及
圖14為可在其上實施本發明之實施例的電腦系統的方塊圖。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無
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. 一種程式化單元設備,包含:一安全控制器,該安全控制器在一安全執行環境中產生一安全演算法,該安全演算法具有可執行代碼,基於一可程式化裝置的一裝置類型而動態配置該安全演算法;一程式化器,該程式化器經配置成執行該安全演算法的該可執行代碼,該安全演算法程式化一安全應用程式設計介面到該可程式化裝置中;一辨識裝置,該辨識裝置至少部分由硬體實施,該辨識裝置基於該可程式化裝置之一信任根資料暫存器及該可程式化裝置之一信任根代碼暫存器來產生一辨識代符;一加密裝置,該加密裝置至少部分由硬體實施,該加密裝置計算用於認證該信任根資料暫存器及該信任根代碼暫存器的一加密代符及一金鑰代符;一認證裝置,該認證裝置至少部分由硬體實施,該認證裝置藉由以該金鑰代符驗證該辨識代符來驗證該可程式化裝置被授權存取該程式化器;及一代碼簽名裝置,該代碼簽名裝置至少部分由硬體實施,該代碼簽名裝置在該程式化器使用該安全應用程式設計介面在該可程式化裝置中程式化一承載 之前驗證該承載的一數位簽名。
  2. 如請求項1所述之設備,其中該信任根代碼暫存器包含在一原始設備製造商(OEM)開發場地使用一程式化專案所產生的該安全演算法,且該安全演算法由該程式化器在一工廠場地儲存於該可程式化裝置中。
  3. 如請求項2所述之設備,進一步包含一工廠安全系統,該工廠安全系統至少部分由硬體實施,該工廠安全系統基於該安全演算法將一信任根(RoT)儲存在該可程式化裝置中。
  4. 如請求項2所述之設備,其中該程式化器基於該安全演算法來產生用於儲存在該可程式化裝置中的安全資訊。
  5. 如請求項2所述之設備,其中該程式化器基於該安全演算法來將一金鑰對儲存在該可程式化裝置中。
  6. 如請求項2所述之設備,其中該程式化器基於該安全演算法來產生具有一公開金鑰及一私密金鑰的一憑證。
  7. 如請求項6所述之設備,其中該程式化器基於該安全演算法來將該憑證儲存於該可程式化裝置中。
  8. 一種一程式化單元的操作方法,包含以下步驟:在一安全執行環境中產生一安全演算法,該安全演算法具有可執行代碼,及基於一可程式化裝置的一裝置類型而動態配置該安全演算法;在一程式化器上執行該安全演算法的該可執行代碼,以程式化一安全應用程式設計介面到該可程式化裝置中;基於該可程式化裝置的一信任根資料暫存器及該可程式化裝置的一信任根代碼暫存器來產生由一製造執行系統所使用的一辨識代符;計算用於認證該信任根資料暫存器及該信任根代碼暫存器的一加密代符及一金鑰代符;藉由以該金鑰代符驗證該辨識代符來驗證該可程式化裝置被授權存取該程式化器;及在該程式化器使用該安全應用程式設計介面在該可程式化裝置中程式化一承載之前驗證該承載的一數位簽名。
  9. 如請求項8所述之方法,進一步包含以下步驟:在一原始設備製造商(OEM)開發場地使用一程式化專案來產生該安全演算法;及 由該程式化器在一工廠場地將該安全演算法儲存在該可程式化裝置之該信任根代碼暫存器中。
  10. 如請求項9所述之方法,進一步包含以下步驟:基於該安全演算法將一信任根(RoT)儲存在該可程式化裝置中。
  11. 如請求項9所述之方法,進一步包含以下步驟:基於該安全演算法來產生用於儲存在該可程式化裝置中的安全資訊。
  12. 如請求項9所述之方法,進一步包含以下步驟:基於該安全演算法來將一金鑰對儲存在該可程式化裝置中。
  13. 如請求項9所述之方法,進一步包含以下步驟:基於該安全演算法來產生具有一公開金鑰及一私密金鑰的一憑證。
  14. 如請求項13所述之方法,進一步包含以下步驟:基於該安全演算法來將該憑證儲存於該可程式化裝置中。
  15. 一種非暫態電腦可讀取媒體,該非暫態電腦可讀取媒體儲存指令,當由一或多個計算裝置執行該等指令時,該等指令執行以下步驟:在一安全執行環境中產生一安全演算法,該安全演算法具有可執行代碼,及基於一可程式化裝置的一裝 置類型而動態配置該安全演算法;在一程式化器上執行該安全演算法的該可執行代碼,以程式化一安全應用程式設計介面到該可程式化裝置中;基於該可程式化裝置的一信任根資料暫存器及該可程式化裝置的一信任根代碼暫存器來產生由一製造執行系統所使用的一辨識代符;計算用於認證該信任根資料暫存器及該信任根代碼暫存器的一加密代符及一金鑰代符;藉由以該金鑰代符驗證該辨識代符來驗證該可程式化裝置被授權存取該程式化器;及在該程式化器使用該安全應用程式設計介面在該可程式化裝置中程式化一承載之前驗證該承載的一數位簽名。
  16. 如請求項15所述之非暫態電腦可讀取媒體,進一步包含以下步驟:在一原始設備製造商(OEM)開發場地使用一程式化專案來產生該安全演算法;及由該程式化器在一工廠場地將該安全演算法儲存在該可程式化裝置之該信任根代碼暫存器中。
  17. 如請求項16所述之非暫態電腦可讀取媒體,進一步包含以下步驟:基於該安全演算法將一信 任根(RoT)儲存在該可程式化裝置中。
  18. 如請求項16所述之非暫態電腦可讀取媒體,進一步包含以下步驟:基於該安全演算法來產生用於儲存在該可程式化裝置中的安全資訊。
  19. 如請求項16所述之非暫態電腦可讀取媒體,進一步包含以下步驟:基於該安全演算法來將一金鑰對儲存在該可程式化裝置中。
  20. 如請求項16所述之非暫態電腦可讀取媒體,進一步包含以下步驟:基於該安全演算法來產生具有一公開金鑰及一私密金鑰的一憑證。
TW106126679A 2016-08-08 2017-08-08 使用安全演算法嵌入基礎性的信任根 TWI744373B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662372242P 2016-08-08 2016-08-08
US62/372,242 2016-08-08
US15/669,873 US10268844B2 (en) 2016-08-08 2017-08-04 Embedding foundational root of trust using security algorithms
US15/669,873 2017-08-04

Publications (2)

Publication Number Publication Date
TW201810111A TW201810111A (zh) 2018-03-16
TWI744373B true TWI744373B (zh) 2021-11-01

Family

ID=61071404

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106126679A TWI744373B (zh) 2016-08-08 2017-08-08 使用安全演算法嵌入基礎性的信任根

Country Status (5)

Country Link
US (1) US10268844B2 (zh)
EP (1) EP3497880A4 (zh)
CN (1) CN109997333B (zh)
TW (1) TWI744373B (zh)
WO (1) WO2018031496A1 (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10425242B2 (en) * 2016-10-14 2019-09-24 Microsoft Technology Licensing, Llc IoT provisioning service
US10798216B2 (en) 2016-10-15 2020-10-06 Microsoft Technology Licensing, Llc Automatic provisioning of IoT devices
US11069418B1 (en) 2016-12-30 2021-07-20 EMC IP Holding Company LLC Method and system for offline program/erase count estimation
US10289550B1 (en) 2016-12-30 2019-05-14 EMC IP Holding Company LLC Method and system for dynamic write-back cache sizing in solid state memory storage
US10338983B2 (en) 2016-12-30 2019-07-02 EMC IP Holding Company LLC Method and system for online program/erase count estimation
US10403366B1 (en) 2017-04-28 2019-09-03 EMC IP Holding Company LLC Method and system for adapting solid state memory write parameters to satisfy performance goals based on degree of read errors
US10290331B1 (en) 2017-04-28 2019-05-14 EMC IP Holding Company LLC Method and system for modulating read operations to support error correction in solid state memory
US10866798B2 (en) * 2017-12-28 2020-12-15 Intel Corporation Firmware upgrade method and apparatus
CN110324138B (zh) * 2018-03-29 2022-05-24 阿里巴巴集团控股有限公司 数据加密、解密方法及装置
US10637876B2 (en) * 2018-04-27 2020-04-28 Dell Products L.P. Information handling system threat management
US11336658B2 (en) 2018-04-27 2022-05-17 Dell Products L.P. Information handling system threat management
US11595407B2 (en) 2018-04-27 2023-02-28 Dell Products L.P. Information handling system threat management
JP6550502B1 (ja) * 2018-05-10 2019-07-24 ウィンボンド エレクトロニクス コーポレーション 固有データ生成装置、半導体装置および認証システム
US10880099B2 (en) * 2018-05-23 2020-12-29 Wipro Limited Method and system for protecting computing devices from malwares
US10979232B2 (en) * 2018-05-31 2021-04-13 Motorola Solutions, Inc. Method for provisioning device certificates for electronic processors in untrusted environments
WO2020037612A1 (zh) 2018-08-23 2020-02-27 深圳市汇顶科技股份有限公司 嵌入式程序的安全引导方法、装置、设备及存储介质
CA3058012C (en) * 2019-03-29 2021-05-11 Alibaba Group Holding Limited Cryptography chip with identity verification
JP2020521341A (ja) 2019-03-29 2020-07-16 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited 識別情報に基づく暗号鍵の管理
EP3610607B1 (en) 2019-03-29 2021-08-25 Advanced New Technologies Co., Ltd. Cryptographic key management based on identity information
KR102234825B1 (ko) 2019-03-29 2021-04-02 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. 암호 동작들의 안전한 수행
US11101984B2 (en) * 2019-04-04 2021-08-24 Micron Technology, Inc. Onboarding software on secure devices to generate device identities for authentication with remote servers
GB2582947B (en) * 2019-04-10 2021-10-13 Advanced Risc Mach Ltd Provisioning data on a device
TWI718525B (zh) * 2019-04-26 2021-02-11 英屬維爾京群島商伊格拉斯控股有限公司 應用於安全製造的控管系統及其方法
WO2020246956A1 (en) * 2019-06-03 2020-12-10 Hewlett-Packard Development Company, L.P. Key authentication
CN111580522A (zh) * 2020-05-15 2020-08-25 东风柳州汽车有限公司 无人驾驶汽车的控制方法、汽车和存储介质
US11570156B2 (en) 2020-07-02 2023-01-31 International Business Machines Corporation Secure pairing of devices
US20220038266A1 (en) * 2020-07-31 2022-02-03 Micron Technology, Inc. Secure memory system programming for host device verification
US20220141658A1 (en) * 2020-11-05 2022-05-05 Visa International Service Association One-time wireless authentication of an internet-of-things device
US11368314B2 (en) 2020-11-13 2022-06-21 Microsoft Technology Licensing, Llc Secure digital signing
CN113553592A (zh) * 2021-07-01 2021-10-26 江苏电力信息技术有限公司 一种基于嵌入式信任根的智能设备安全代码更新方法
CN113505823B (zh) * 2021-07-02 2023-06-23 中国联合网络通信集团有限公司 供应链安全分析方法及计算机可读存储介质
US11698972B2 (en) * 2021-07-22 2023-07-11 Dell Products L.P. Method to securely transfer root of trust responsibilities on a common shared motherboard
CN113591109B (zh) * 2021-07-23 2023-05-02 上海瓶钵信息科技有限公司 可信执行环境与云端通信的方法及系统
TWI773516B (zh) * 2021-09-06 2022-08-01 新唐科技股份有限公司 進化可信根的方法與使用所述方法的電子裝置
WO2023138790A1 (en) * 2022-01-24 2023-07-27 Telefonaktiebolaget Lm Ericsson (Publ) Remote execution of computer instructions in a kernel space of a communication device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130191624A1 (en) * 2012-01-19 2013-07-25 Quizant, Ltd. Firmware protection and validation
US20160065592A1 (en) * 2011-09-23 2016-03-03 Jerome Svigals Internet Of Things Security

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050262361A1 (en) * 2004-05-24 2005-11-24 Seagate Technology Llc System and method for magnetic storage disposal
US20060010326A1 (en) 2004-07-08 2006-01-12 International Business Machines Corporation Method for extending the CRTM in a trusted platform
US7640541B2 (en) 2005-05-23 2009-12-29 Intel Corporation In-system reconfiguring of hardware resources
EP2145448B1 (en) 2007-04-12 2011-03-09 Intrinsic ID B.V. Controlled activation of function
US8625788B2 (en) * 2011-01-05 2014-01-07 Intel Corporation Method and apparatus for building a hardware root of trust and providing protected content processing within an open computing platform
GB2478505B (en) 2011-01-17 2012-02-15 Ido Schwartzman Method and system for secure firmware updates in programmable devices
US9317689B2 (en) * 2012-06-15 2016-04-19 Visa International Service Association Method and apparatus for secure application execution
US9305185B1 (en) * 2012-08-07 2016-04-05 Altera Corporation Method and apparatus for securing programming data of a programmable device
US9867043B2 (en) * 2012-08-28 2018-01-09 Visa International Service Association Secure device service enrollment
US9384367B2 (en) * 2012-09-04 2016-07-05 Intel Corporation Measuring platform components with a single trusted platform module
US11178126B2 (en) * 2013-01-15 2021-11-16 Schneider Electric USA, Inc. Systems and methods for securely accessing programmable devices
CN104104652B (zh) * 2013-04-03 2017-08-18 阿里巴巴集团控股有限公司 一种人机识别方法、网络服务接入方法及相应的设备
US9239920B2 (en) * 2013-04-23 2016-01-19 Qualcomm Incorporated Generation of working security key based on security parameters
US9559851B2 (en) * 2013-06-13 2017-01-31 Intel Corporation Secure pairing for secure communication across devices
US9270469B2 (en) * 2014-02-20 2016-02-23 Xilinx, Inc. Authentication using public keys and session keys
EP2937806A1 (en) * 2014-04-22 2015-10-28 ALSTOM Renewable Technologies Method and system for securing electronic data exchange between an industrial programmable device and a portable programmable device
US9917737B2 (en) * 2014-12-31 2018-03-13 Schneider Electric USA, Inc. Systems and methods for programmable device installations
US9721122B2 (en) * 2015-02-05 2017-08-01 Wipro Limited Method and system for performing secure I/O operation in a pluggable flash storage device
US9858412B2 (en) * 2015-06-25 2018-01-02 Intel Corporation Secure trusted execution environment data store
US10129035B2 (en) * 2015-08-10 2018-11-13 Data I/O Corporation Device birth certificate

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160065592A1 (en) * 2011-09-23 2016-03-03 Jerome Svigals Internet Of Things Security
US20130191624A1 (en) * 2012-01-19 2013-07-25 Quizant, Ltd. Firmware protection and validation

Also Published As

Publication number Publication date
US10268844B2 (en) 2019-04-23
EP3497880A4 (en) 2020-02-26
EP3497880A1 (en) 2019-06-19
CN109997333B (zh) 2022-12-23
WO2018031496A1 (en) 2018-02-15
TW201810111A (zh) 2018-03-16
US20180039795A1 (en) 2018-02-08
CN109997333A (zh) 2019-07-09

Similar Documents

Publication Publication Date Title
TWI744373B (zh) 使用安全演算法嵌入基礎性的信任根
US11870915B2 (en) Unified programming environment for programmable devices
US11824847B2 (en) Device programming with system generation
US10587451B2 (en) Device programming with system generation
US10496811B2 (en) Counterfeit prevention
EP3772008A1 (en) Device programming with system generation
US20240146545A1 (en) Unified programming environment for programmable devices