TW201820132A - 用於可程式化設備的統一程式設計環境 - Google Patents

用於可程式化設備的統一程式設計環境 Download PDF

Info

Publication number
TW201820132A
TW201820132A TW106133883A TW106133883A TW201820132A TW 201820132 A TW201820132 A TW 201820132A TW 106133883 A TW106133883 A TW 106133883A TW 106133883 A TW106133883 A TW 106133883A TW 201820132 A TW201820132 A TW 201820132A
Authority
TW
Taiwan
Prior art keywords
security
programming
programmable device
programmable
key
Prior art date
Application number
TW106133883A
Other languages
English (en)
Other versions
TWI741041B (zh
Inventor
雷傑夫 古拉蒂
大衛R 克里斯提
愛德恩R 米施
班傑明D 迪根
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 TW201820132A publication Critical patent/TW201820132A/zh
Application granted granted Critical
Publication of TWI741041B publication Critical patent/TWI741041B/zh

Links

Classifications

    • 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
    • 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/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/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Programmable Controllers (AREA)
  • Stored Programmes (AREA)

Abstract

一種安全程式設計系統可接收具有安全性核心及目標內容酬載的工作控制封包以供程式化到預定義的受信任設備集合中。設備程式設計器可將安全性核心安裝在受信任設備上,及使用安全性核心將受信任設備重開機以驗證安全性核心的正確操作。可接著將目標酬載安全地安裝在受信任設備上及驗證。

Description

用於可程式化設備的統一程式設計環境
此案主張於2016年9月30日所提出的標題為「UNIFIED PROGRAMMING ENVIRONMENT FOR PROGRAMMABLE DEVICES」的第62/401,953號的臨時申請案的優先權,其整體內容特此依據專利法以引用方式併入,如同其整體內容被完全闡述在本文中。
此案關於於2016年8月4日所提出的標題為「COUNTERFEIT PREVENTION」的第62/371,184號的臨時申請案、於2016年8月8日所提出的標題為「EMBEDDING FOUNDATIONAL ROOT OF TRUST USING SECURITY ALGORITHMS」的第62/372,242號的臨時申請案、於2016年8月1日所提出的標題為「DEVICE PROGRAMMING WITH SYSTEM GENERATION」的第62/369,304號的臨時申請案,此等臨時申請案中的各者由申請人所擁有且其整體內容以引用方式併入本文中。
實施例大致關於設備程式設計系統,且更具體而言是關於一種用於安全程式設計系統的統一程式設計環境。
此部分中所述的方法是可推行的方法,但不一定是先前已構思或推行的方法。因此,除非另有指示,不應僅因為此部分中所述的任何方法被包括在此部分中就假設此等方法有資格作為先前技術。
電子電路板組件的某些操作是遠離主要生產裝配線而執行的。在各種饋送機器及自動機搬運系統以積體電路填滿電子電路板的同時,關於處理積體電路的操作(例如程式設計、測試、校驗及量測)一般是在單獨配備上的單獨區域中執行,而不是整合到主要生產裝配線中。
可客製的設備(例如快閃記憶體(Flash)、可電抹除可程式化唯讀記憶體(EEPROM)、可程式化邏輯設備(PLD)、現場可程式化閘極陣列(FPGA)及併入非依電性記憶體構件的微控制器)可被配置為具有單獨的程式設計配備,此單獨的程式設計配備通常位在與電路板裝配線分離的區域中。此外,系統層級的元件(例如智慧型手機、電路板、物聯網(IoT)設備、媒體播放器)亦可能需要特定的安全性配置支援。
在製造線上批量製造或組裝的系統及子組件一般在功能上是相同的。此類產品共享了關於機能及操作的類似問題。表現在一個設備中的問題一般被發現在所有類似製造的設備中。
一種操作安全程式設計系統的方法,包括以下步驟:接收具有安全性核心及目標酬載的工作控制封包;將安全性核心安裝在可程式化設備中,此可程式化設備被安裝在程式設計器中;藉由啟動安全性核心來將程式設計器中的可程式化設備重開機;基於驗證碼來驗證可程式化設備的安全性核心;及將目標酬載配給給可程式化設備。
一種裝置,包括:程式設計單元,被配置為接收具有安全性核心及目標酬載的工作控制封包;程式設計單元的程式設計器,此程式設計器被配置為:將安全性核心安裝在可程式化設備中,此可程式化設備被安裝在程式設計器中;藉由啟動安全性核心來將程式設計器中的可程式化設備重開機;及將目標酬載配給給可程式化設備;及程式設計單元的安全性控制器,此安全性控制器被配置為在重開機之後基於從安全性核心所接收的驗證碼來驗證可程式化設備的安全性核心。
儲存指令的一或更多個非暫時性電腦可讀取媒體,此等指令當由一或更多個計算設備執行時,造成以下操作:接收具有安全性核心及目標酬載的工作控制封包;將安全性核心安裝在可程式化設備中,此可程式化設備被安裝在程式設計器中;藉由啟動安全性核心來將程式設計器中的可程式化設備重開機;基於驗證碼來驗證可程式化設備的安全性核心;及將目標酬載配給給可程式化設備。
在以下的說明中,為了解釋的目的,為了提供本發明的徹底瞭解而闡述許多特定細節。然而,將理解的是,可在沒有此等特定細節的情況下實行本發明。在其他實例中,習知的結構及設備是以方塊圖的形式圖示,以避免不必要地模糊了本發明。
依據以下大綱在本文中描述實施例: 1.0. 總體概述 2.0. 結構概述 3.0. 功能概述 4.0. 示例實施例 5.0. 實施機構 - 硬體概述 6.0. 延伸及替代方案 1.0. 總體概述
為了以安全的方式配給可程式化設備而揭露了方法、技術及機構。安全程式設計系統可個別加密目標資料及代碼酬載,且接著將資訊程式化到可程式化設備中的各個個別可程式化設備中。安全程式設計系統可產生定製的酬載封包,此定製的酬載封包僅可由具有正確安全性金鑰的系統或設備解密。
可程式化設備可包括記憶體晶片、電路板及完整的電子設備(例如智慧型手機、媒體播放器或其他消費者及工業電子設備)。安全性金鑰的配置可控制可程式化設備的操作。
安全程式設計系統可安全地配置包括元件、電路板及完整產品的個別設備。藉由在個別的元件製造時間實施安全性特徵,可在逐個設備的基礎上控制操作。安全內容、可執行代碼及金鑰可交互操作以提供高度的安全性及控制。
依據一個實施例,此系統可將安全性核心(security kernel)安裝到被安裝在程式設計器中的可程式化設備中,且接著在將目標酬載配給給可程式化設備之前將程式設計器中的可程式化設備重開機以驗證安全性核心。此舉可驗證安全性核心是正確地安裝在可程式化設備中的。
依據另一實施例,藉由個別加密可程式化設備中的一者上的目標酬載(例如電路板),接著電路板可被配置為僅與具有已註冊的安全性代碼的元件一同作用。此舉可用來確保,電路板僅可與某些類別部分一同操作。此舉提供了製造商在電路板的最終用途上的一定程度的控制。
依據另一實施例,可程式化設備可驗證序號或其他參數作為配給可程式化設備的先決條件。在又另一實施例中,此系統可基於工作控制封包中的安全性代碼來限制操作。此舉可防止複製或未授權地配給可程式化設備。
在其他態樣中,本發明包括配置為實現上述技術的電腦裝置及電腦可讀取媒體。 2.0. 結構概述
依據一實施例,圖1繪示了安全程式設計系統100的各種態樣的說明圖,可在此安全程式設計系統中實行本文中所述的技術。安全程式設計系統100可以密碼術資訊(cryptographic information)個別配置資料設備及活動的(active)、受信任的設備,以提供安全的程式設計及操作環境。
安全程式設計系統100包括具有程式設計器112的程式設計單元110、安全性控制器114、安全性金鑰106、用於耦接至可程式化設備的轉接器、第一安全性模組116、第二安全性模組118及第n安全性模組120。安全程式設計系統100可耦接到安全性主系統104,此安全性主系統具有安全主儲存系統102。安全性主系統104或安全主儲存系統102可產生及安全地儲存安全性金鑰106以供加密或解密資訊。安全性金鑰106可實施各種安全性範型(paradigm)。例如,安全性金鑰106可包括具有私密金鑰152及公開金鑰154的金鑰對偶150。金鑰對偶150可用來實施公開金鑰密碼術系統,其中由公開金鑰154所加密的資料可使用私密金鑰152來解密。安全程式設計系統100可依必要性包括許多不同的金鑰對偶150。可針對不同的設備或系統構件(包括安全程式設計系統100、程式設計單元110、程式設計器112、安全性控制器114、安全性模組、可程式化設備128、資料設備132、受信任設備130或任何其他的系統構件)實施金鑰對偶150、私密金鑰152及公開金鑰154。安全性金鑰106可與各種設備(包括硬體安全性模組(HSM)、受信任的安全性模組(TPM)、微處理器、微控制器、專用安全性單元或其組合)一同使用。
系統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為獨立的電子設備(例如手機、消費者電子設備、電路板或具有主動元件(active component)的類似設備),則轉接器可包括用以與可程式化設備128通訊的機構(mechanism)。轉接器可包括纜線鏈路、通用串列匯流排鏈路、串列連接、平行連接、無線通訊鏈路、電子資料匯流排介面、光學介面或任何其他通訊機構。
可程式化設備128為可由程式設計單元110配給安全資訊的設備。例如,可程式化設備128可包括資料設備,例如快閃記憶體單元、可程式化唯讀記憶體、安全資料儲存設備或其他資料儲存設備。可程式化設備128亦可包括邏輯設備,例如微控制器單元、微處理器單元、可程式化邏輯單元、特殊應用積體電路(ASIC)、現場可程式化閘極陣列(FPGA)或其他可程式化邏輯設備。
配給步驟可包括向設備傳輸資料及/或代碼資訊。例如,可藉由以資料程式化快閃記憶體單元來配給快閃記憶體單元。
可程式化設備128亦可包括受信任設備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為可程式化設備128中可共用安全性金鑰106中的一或更多者的二或更多個可程式化設備。此可允許經配對設備146中的各者偵測及認證相同群組中的經配對設備146中的另一者。因此,可與經配對設備146中的另一者共用來自經配對設備146中的一者的資料。此可允許例如以下機能:共用資訊、認證經配對設備146中的二或更多者之間的雙向安全通訊通道、識別其他相關的設備或其組合。新的金鑰對偶可儲存在資料庫、製造執行系統或其他資料系統中,其中可稍後擷取資訊以偵測設備竄改、偽造設備、版本化問題或其組合。
在一說明性實例中,安全程式設計系統100可用來建立具有第一資料設備134(例如系統資訊模組(SIM)晶片)的經配對設備146中的一者,此第一資料設備與第一受信任設備140(例如智慧型手機)配對。在此配置下,可針對經配對設備146將第一資料設備134及第一受信任設備140兩者程式化為具有安全性金鑰106。因此,第一受信任設備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。安全性模組中的各者可提供特定的安全性機能,例如識別、認證、加密、解密、驗證、代碼簽署、資料抽取或其組合。例如,安全性模組可為硬體、軟體或其組合。在另一實例中,可使用一配置來實施安全程式設計環境108,此配置具有程式設計器112、使用硬體安全性模組來實施的安全性控制器114、實施用來確保提供用於可程式化設備128的有效序號的序號伺服器模組的第一安全性模組116及適當的安全性金鑰。
例如,第一安全性模組116可被配置為向標準化的通用安全性功能集合提供應用程式設計介面(API)。在另一實例中,第二安全性模組118可為專用硬體及軟體的組合,以提供更快速的資料加密及解密。
程式設計單元110可包括安全性金鑰106中的一或更多者的安全儲存器。可在安全程式設計系統100內部計算安全性金鑰106、可在外部計算及由安全程式設計系統100接收安全性金鑰106或其組合。此外,安全程式設計系統100的內部設備及元件中的各者可使用支援設備及元件之間的資訊傳輸的通訊介面(未圖示)來與其他外部及內部元件通訊。瞭解到圖解的構件中的各者可使用通訊介面來與其他構件通訊。為了明確起見從圖式省略通訊介面。
安全性金鑰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的酬載影像及將影像儲存在本端程式設計器儲存單元中。儘管只有酬載影像被描述為單一影像,但瞭解到酬載影像可包括多個代碼影像。例如,酬載影像可為保有若干不同的可執行影像及資料的檔案庫。一個影像可提供安全的開機或核心(kernel)能力,而其他影像中的一者可提供其他的機能。酬載影像可被處理成目標為可程式化設備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可包括圖1的第一轉接器122、圖1的第二轉接器124及圖1的第n轉接器126。
設備轉接器208可具有各種配置。例如,設備轉接器208可包括用於安裝可程式化設備128(例如晶片)的目的地插槽210。插槽為用於固持可程式化設備128及與此等可程式化設備建立介面的機構。設備轉接器208可為模組式的且可從程式設計器112移除以適應不同的插槽配置。設備轉接器208可包括用於附接到程式設計器112的閂鎖機構(未圖示)。
目的地插槽210可固持可程式化設備128。目的地插槽210可用來對可程式化設備128進行讀取或寫入新的資訊。
程式設計器112可包括設備放置單元212。設備放置單元212是用於將可程式化設備128定位在目的地插槽210中的一者中的機構。
可以各種方式實施設備放置單元212。例如,設備放置單元212可為自動臂、取放機構或其組合。儘管設備放置單元212可被描述為基於軌道的定位系統,但瞭解到可使用能夠將可程式化設備128中的一者定位在目的地插槽210中的任何系統。
設備放置單元212可擷取可程式化設備128中來自輸入設備插座206的胚料的一或更多者。設備放置單元212可向設備轉接器208的目的地插槽210傳輸可程式化設備128。
一旦可程式化設備128被設備轉接器208接合且固定,可開始設備程式設計程序。程式設計器112可將資訊的本端複本程式化到目的地插槽210中的一者中的可程式化設備128中。例如,程式設計資訊的本端複本可能是在預先程式化的主設備中、來自本端儲存器的檔案或來自遠端伺服器。被程式化到可程式化設備128中的資訊可為獨一的且是針對可程式化設備128中的各者而定製的。例如,可基於個別可程式化設備128中的各者的設備標識來具體定製資訊。程式設計器112可以不同的影像程式化可程式化設備128中的各者且不限於複製各個設備中的相同資料。
一旦程式設計完成,設備放置單元212可向輸出設備插座214運輸已被程式化的可程式化設備128。設備放置單元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,各個金鑰對偶具有私密金鑰152及公開金鑰154。
在一說明性實例中,圖1的安全性金鑰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可被預先程式化為證明(certify)設備在其中嵌有特定的信任根。安全性憑證306可在其中具有公開金鑰154中的一或更多者。安全性憑證306可包括或鏈接到安全性資料,例如金鑰對偶150、安全性金鑰106、經加密的密碼或其組合。
安全性憑證306可為安全地儲存的資料構件。例如,安全性憑證306可為使用前必須解密的經加密安全性資訊。
金鑰對偶150可為具有二或更多個單獨安全性金鑰的安全性構件,此等安全性金鑰用來加密及解密資料。例如,金鑰對偶150可包括私密金鑰152及公開金鑰154。可使用私密金鑰152來解密以公開金鑰154加密的安全性資訊。
可以各種方式實施金鑰對偶150。例如,金鑰對偶150可被配置為具有不同的金鑰長度以改變安全性級別。私密金鑰152及公開金鑰154可被實施為具有相同或不同的字元長度。
儘管是在公開金鑰加密系統的背景脈絡下描述金鑰對偶150,但瞭解到金鑰對偶150亦可用來實施其他的加密範型。例如,金鑰對偶150可用於對稱式加密、不對稱式加密、基於標準的加密、散列演算法或任何其他的加密系統。
受信任設備130可包括被實施為安全性模組的安全性機能。例如,受信任設備130可包括識別模組316、認證模組320、密碼術模組318及代碼簽署模組322。
識別模組316可驗證圖1的可程式化設備128中的一者的標識。識別模組316可接收可程式化設備128中的一者的設備標識302及判定設備標識302是否正確。例如,設備標識320可與已知設備列表進行比較、針對檢查和(checksum)進行比較、使用計算演算法來比較或類似的技術。
認證模組320可認證可程式化設備128中的一者的屬性中的一或更多者。認證模組320可接收設備標識302、包括安全性金鑰106中的一或更多者的安全性參數以判定所提供的安全性參數是否有效。認證模組320亦可用來驗證設備標識302。
可以各種方式判定安全性參數的有效性。例如,可藉由使用受信任設備130中的一者可用的安全性金鑰中的一者成功解碼安全性參數來驗證安全性參數的有效性。在另一實例中,可藉由解密安全性參數中的一者及將其與儲存在受信任設備130中的一者內的預定義值進行比較來驗證安全性參數的有效性。
密碼術模組318是用於執行密碼術運算的單元。密碼術模組318可提供介面以執行計算密集的運算,例如加密及解密。其他安全性模組可與密碼術模組318耦接以提供安全性機能。
可以各種方式實施密碼術模組318。例如,密碼術模組318可包括硬體、軟體或其組合。密碼術模組318可提供標準化介面以允許其他安全性模組執行所需的密碼術功能。
代碼簽署模組322是用於保全代碼構件314的單元。代碼簽署模組322可用於保全代碼構件314且可加密代碼構件、解密代碼構件及控制代碼構件的執行。代碼簽署模組322可用來藉由驗證安全性資訊是與代碼構件314相關聯的來確保代碼構件314中的一者可在受信任設備130中的一者上執行。
在一說明性實例中,代碼構件314中的各者可包括一執行參數,此執行參數指示被授權執行代碼構件314的受信任設備130的型號。代碼簽署模組322可用來驗證執行參數、將參數與受信任設備130中的一者中的型號資訊進行比較及僅在兩個值匹配時允許執行代碼構件314。此舉可用來將代碼構件314的操作限制於特定的高端電話或其他的特定設備。
受信任設備130的優點中的一者是,受信任設備130可在內部識別及認證安全性資訊以增加安全性級別。受信任設備130可使用儲存在安全儲存單元326中的安全性金鑰106來驗證安全性資訊。
受信任設備130可在受信任設備130是安全的時候提供信任措施。受信任設備130可具有各種配置。例如,受信任設備130可具有系統標識、認證機構、加密及解密機能、用來保護可執行程式的代碼簽署行為、受信任的儲存器及受信任的執行環境。
系統標識可包括識別或描述硬體及軟體元件的構件。受信任設備130可具有安全地認證其身分及其他屬性的能力。受信任設備必須能夠安全地加密及解密資訊。受信任設備130必須能夠認證受信任的代碼。受信任設備必須具有安全儲存器及執行能力。
安全程式設計系統100必須能夠實施信任根系統。信任根(RoT)為受信任的計算環境中總是受系統信任的功能集合。例如,信任根可充當控制受信任的計算平台密碼術程序的單獨安全計算引擎。或者,設備可將信任根實施為本來就受信任的硬體及軟體元件。它們被設計為是安全的且可在硬體中實施或被硬體所保護。它們可用來執行安全性重要功能,例如量測或驗證軟體、保護密碼術金鑰及執行設備認證。
信任根可提供各種安全性機能,包括:運作中(on the fly)加密、安全資料的竄改的偵測及回報、主動竄改企圖的偵測、數位著作權管理及其他安全性功能。
因為肇因於實體地存取設備的較高風險,在行動硬體空間中實施安全操作是困難的。此類安全設備需要硬體與受保護的資料及軟體緊密合作以保障安全操作。
圖4繪示資料設備132的實例。資料設備132為具有安全儲存單元326的元件。資料設備132為能夠在安全儲存單元326中儲存安全資料及在由圖1的受信任設備130中的一者存取時提供經儲存資料的存取權的被動(passive)元件。
可由圖1的安全程式設計系統100配給資料設備132以包括安全性資訊。例如,資料設備132可包括設備標識302、安全性演算法304、圖3的安全性憑證306及金鑰對偶150,各個金鑰對偶具有私密金鑰152及公開金鑰154。在此情況下,可內部地從資料設備132內存取安全儲存單元326內的資料。
安全儲存單元326可用作單次寫入資料區域。可將資訊程式化到安全儲存單元326中,且接著安全儲存單元326可被處理為消除從資料設備132外面對安全儲存單元326內的資料的存取權。
在一說明性實例中,資料設備132中的一者可為快閃記憶設備。在快閃記憶設備內,快閃記憶體可被分割成不同的區塊。某些區塊可用來提供一般的記憶體空間。某些其他區塊可被配置為私用的且用來儲存不可從快閃記憶體驅動器外面存取的資料。私用區塊可用來形成安全儲存單元326。
在另一實例中,安全儲存單元326可為資料設備132中由安全性熔斷器所保護的一個資料設備上的專屬記憶體區域。可將資料寫入到安全儲存單元326且接著可藉由熔斷安全性熔斷器來消除外部的存取權。
資料設備132中的各者可包括受信任憑證402。受信任憑證402為可包括其他安全性參數的資料結構。例如,受信任憑證402可包括設備標識302、安全性演算法304、公開金鑰154中的一或更多者及其他的安全性資訊。
圖5繪示設備標識302的實例。設備標識302是可用來獨一地識別圖1的可程式化設備128、圖1的安全程式設計系統100、圖1的程式設計器112或其組合中的一者的資料結構。設備標識302可用來描述包括圖1的資料設備132及圖1的受信任設備130的可程式化設備128。
設備標識302可具有各種配置。例如,設備標識302可包括輸入信任根(incoming root of trust)504、序號標誌512、韌體標誌506、製造標誌510、產品標誌508、操作標誌514、原始配備製造商標誌516(OEM標誌)、金鑰對偶150或類似的標誌。
輸入信任根504是安全性構件。輸入信任根504可在製造或程式設計時被程式化到可程式化設備128中的一者中。例如,輸入信任根504可為序號及金鑰值。在另一實例中,輸入信任根504可為嵌式識別碼,例如在可程式化設備128中的一者中的矽創建(silicon creation)時間植入的設備識別碼。若輸入信任根504是創建於製造商處則可針對已知的值集合檢查此輸入信任根,或若此輸入信任根是在程式設計期間創建的則可記錄此輸入信任根,以供稍後在生產階段中及/或在應用、服務及修理階段中進行交叉檢查。輸入信任根504可儲存在資料庫、MES或類似的資料系統中。
序號標誌512為可包括可程式化設備128中的一者的序號的安全性構件。設備標識302可包括序號標誌512中的一或更多者。
韌體標誌506為可描述或識別可程式化設備128中的一者中所使用的韌體的安全性構件。韌體標誌506可包括版本號碼、經計算的檢查和值、部分或完整的散列值、文字字串識別碼、數字識別碼或其組合。例如,可程式化設備128中的一者可為具有韌體的電路板,此韌體安裝在此電路板上。韌體標誌506可針對各個單獨的韌體構件識別版本號。韌體版本資訊可用來協調可程式化設備128中的圖3的代碼構件314之間的可交互操作性。在另一實例中,韌體標誌506可包括經計算的散列檢查和,例如MD5散列或指紋。散列檢查和可用來藉由針對一散列比較散列檢查和來驗證韌體的資料完整性,此散列是針對現場版本(live version)的韌體計算的。任何差異會指示此韌體已被更改。
製造標誌510為可描述一或更多個製造屬性的安全性識別碼。例如,可程式化設備128中的一者可包括製造標誌510,例如位置資訊、程式設計器標識、程式設計單元標識、製造時間資訊、製造位置資訊、時間窗、製造執行系統標識資訊、工廠標識、供應商標識、製造配備資訊或製造相關的參數。
產品標誌508為可描述與可程式化設備128一同使用的產品的安全性構件。產品標誌508可包括相關的製造商、品牌資訊、產品線資訊、模型資訊或其他產品相關的參數。
操作標誌514為可描述可程式化設備128的操作屬性的安全性構件。操作標誌514可包括操作電壓、電壓模式、電流位準、功耗、加熱因素、關鍵操作頻率、操作序列資訊或操作參數。
OEM標誌516為可描述原始配備製造商或可使用可程式化設備128的相關合約製造商的安全性構件。OEM標誌516可包括製造商識別碼、許可證資訊、時間窗、被授權的位置、被授權的工廠、產品批量大小、序號範圍或其他OEM相關的參數。
設備標識302是包括用於可程式化設備128的安全性資訊的多變數資料結構。可在設備標識302內個別地加密設備標識302的資料構件。可加密設備標識302本身。在形成設備標識302的資料構件以及加密程度及用來保護設備標識302本身的其他安全性機構兩者的意義上,設備標識302可特定於可程式化設備128中的各者。設備標識302可包括圖1的公開金鑰154,此公開金鑰鏈結到與可程式化設備128中的一者相關聯的金鑰對偶150的圖1的私密金鑰152。
設備標識302的許多優點中的一者是允許藉由僅解密所需的構件來存取設備標識302內的特定資料構件。藉由加密設備標識302及個別的資料構件兩者,可提供較精細的安全性粒度。
設備標識302可被合併到設備出生憑證520中。設備出生憑證520可包括設備標識302及額外的製造及設備生命週期資訊。設備出生憑證520可用來針對可程式化設備128追蹤及認證設備生命週期的階段。可作為程式設計程序的一部分而產生設備出生憑證520,且此設備出生憑證可被程式化到可程式化設備128中的各者中。在下文中詳細描述了設備出生憑證520。
圖6繪示安全程式設計系統100的示例方塊圖。安全程式設計系統100包括了許多安全物件,例如第一安全物件602及第二安全物件604。第一安全物件602可與第二安全物件604建立介面或通訊。
安全物件表示具有用於保護免於未授權的截收或複製的安全性機構或協定的任何硬體或軟體物件。例如,安全物件可包括(但不限於)圖1的資料設備132中的一者、圖1的受信任設備134中的一者、電子元件、電子設備、開機載入器、韌體(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使用任何安全資訊或機構(例如但不限於信任根代碼620(RoT代碼)及信任根資料622(RoT資料))來抽取ID符記624。例如,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可在程式化或配置設備的期間被程式化到設備的安全儲存區域中。
並且,例如,可以安全的方式從主控伺服器或系統向安全程式設計系統100發送RoT代碼620及RoT資料622,使得只有已被授權及驗證的安全程式設計系統100接收RoT代碼620及RoT資料622。進一步地,例如,主控伺服器或系統可包括圖1的安全性主系統104,此安全性主系統向安全程式設計系統100發送圖1的安全性金鑰106以供在安全程式設計系統100可以能夠接收或解密來自安全性主系統104的資訊之前進行識別或認證。
作為一實例,安全儲存區域可包括(但不限於)一次性可程式化記憶體或只有經授權的使用者或設備知道的任何其他儲存區域。作為另一實例,安全儲存區域可包括(但不限於)僅可使用經授權的資訊或標識來存取的儲存器或記憶體,在沒有此經授權的資訊或標識的情況下,權限會被拒絕。
例如,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的環境可創建針對創建大規模的、廣域的安全環境的問題的有彈性的、可擴展的(scalable)解決方案,只有受信任的、經認證的應用代碼可在此安全環境中操作。安全執行單元324可允許程式設計器112及安全物件在安全環境中一起工作。
安全執行單元324可執行已由安全儲存單元326在安全物件操作在終端使用者生產環境中之前在安全物件先前被程式化、配置、測試或證明時所儲存的受信任代碼。由安全執行單元324所執行的受信任代碼可被簽署及認證。
安全儲存單元326儲存及提供受信任代碼供安全執行單元324執行。在一實施例中,是使用在安全儲存單元326中儲存程式碼及使用安全執行單元324執行程式碼的安全執行引擎606來大大地簡化安全環境,藉此提供了免於資料侵犯的額外保護級別。
例如,受信任代碼可能先前在安全物件先前被程式化、配置、測試或證明時儲存在安全物件的安全儲存器或記憶區域中。並且,例如,可由密碼術模組318使用從程式設計器112向安全物件發送的資訊來解碼受信任代碼。
圖7繪示安全程式設計系統100的第二方塊圖的實例。此示例圖圖示了在安全物件701的程式設計期間的安全資訊的資料流。
例如,識別符記624(被描繪為ID1、ID2及ID3)為用於圖1的可程式化設備128中的各者的元件級別識別碼。識別符記624可包括安全物件的序號標誌512。序號標誌512為分配給各個安全物件(例如可程式化設備128中的一者)的獨一資訊。安全物件的序號標誌512可為獨一的且與另一安全物件的序號標誌512中的另一者不同,使得不可存在共用相同序號標誌512的兩個安全物件。序號標誌512可由圖1的程式設計器112產生或在矽製造(silicon manufacture)時間嵌入。
圖5的輸入信任根504(In_RoT)可包括(但不限於)圖2的程式設計器標識216。輸入信任根504(標示為In_RoT 504)包括先前已在程式化安全物件701之前被程式化或配置的資訊。
在一或更多個實施例中,先前程式化的資訊可能已被程式化到用於程式化安全物件的轉接器、程式設計器112及安全物件的組合中。例如,In_RoT 504可為在矽製造時間植入在安全物件中的序號。
製造標誌510(例如P1、P2、P3等等)可分別與識別符記624(例如ID1、ID2、ID3等等)相對應。In_RoT 504可用作過濾器來證明製造標誌510合格以偵測偽造的設備。
In_RoT 504可能是與ID符記624獨立或不同的。In_RoT 504可包括與要程式化到安全物件701中的資訊不同的先前程式化的資訊。
例如,In_RoT 504可包括(但不限於)在製造元件的時候被嵌入或程式化在此等元件中的序號或獨一金鑰。並且,例如,製造元件的時間可為(但不限於)在程式化元件之前在矽層級或系統層級下製造元件的時間。
在一或更多個實施例中,可藉由製造執行系統702(MES)來攝入或輸入In_RoT 504。In_RoT 504亦可能已經位在MES 702中,且安全程式設計系統100可驗證In_RoT 504的正確性。In_RoT 504可與程式設計器產生的獨一RoT(例如ID符記624)結合以產生獨一的系統層級RoT。In_RoT 504可包括來自數位出生憑證的資訊,此資訊先前已在元件的製造期間被程式化到此元件中。
In_RoT 504可包括任何數量的製造標誌510(標記為P1及P2)。製造標誌510包括在製造元件時與此等元件相關聯的資訊。例如,製造標誌510可包括(但不限於)元件ID、程式設計器ID、晶片晶圓位置、晶圓號碼、晶圓遮罩識別碼、元件的製造位置、元件的製造日期及時間,或類似的值。
ID符記624為用於可程式化設備128中的各者的元件層級的識別碼。ID符記624中的各者可與製造標誌510相關聯。ID符記624可與In_RoT 504相關聯。In_RoT 504可為id、憑證、金鑰或類似的值。In_RoT 504可與元件資訊結合且註冊在MES 702中。此舉可發生在可程式化設備128被安裝在電路板中的一者上之前。
在可程式化設備128被安裝在電路板中的一者上時,將更新MES 702以界定ID符記624及此等可程式化設備所安裝在的電路板id之間的關係。此舉允許藉由結合元件中的各者的In_RoT 504、製造標誌510、ID符記624以及指示哪些元件是與哪個電路板相關聯的電路板資訊來計算系統層級的識別碼。
製造執行系統702是為了產品品質控制的目的在製造時所使用的電腦化系統。MES 702可追蹤原料到成品的轉變及為此轉變提供文件。MES 702可提供關於如何可最佳化廠房樓面上的目前條件以改良生產輸出的資訊。MES 702即時地工作以允許控制生產程序的多個構件(例如輸入、人事、機器、支援服務等等)。
在一或更多個實施例中,MES 702可接收In_RoT 504以及ID符記624以程式化可程式化設備128及元件識別碼。In_RoT 504、ID符記624及元件識別碼可用來產生安全物件701中的一者的設備標識302。設備標識302包括獨一的且僅與一個設備或安全物件701中的一者相關聯的資訊。
設備標識302可包括可被程式化到系統(例如包括第一電路板712及第二電路板714的安全物件701)中的獨一資訊。第一電路板712或第二電路板714為電路板層級的系統,其中許多安全物件701被組裝且彼此連接在此等系統中。
第一電路板712可包括用於密碼術的圖1的系統公開金鑰154。系統公開金鑰154可在用於公開金鑰加密系統的第一電路板712中實施。系統公開金鑰154可為圖1的金鑰對偶150中的一者的一部分。可由安全物件701中的一者使用金鑰對偶150中的一者的公開金鑰154加密安全性資訊,且可由第一電路板712使用圖1的私密金鑰154解密此安全性資訊。
第一電路板712可使用系統公開金鑰154來加密安全資訊及向安全物件701中的一者發送,此等安全物件可使用私密金鑰152來解密經加密的資訊。儘管系統公開金鑰154被描述為用於第一電路板712,但瞭解到系統公開金鑰可在第二電路板714中實施。
系統100僅繪示被配置為提供本文中所述的機能的元件的許多可能佈置中的一者。其他佈置可包括更少、額外或不同的元件,且在元件之間的工作劃分可能取決於佈置而有所不同。例如,在某些實施例中,可忽略某些安全性模組以及僅由所忽略的元件所依賴的任何其他元件。作為另一實例,在一實施例中,系統100可更包括多個序號或其他系統識別碼。
圖8繪示配給受信任設備130中的一者的實例。配給程序可將安全性資料程式化到可程式化設備128中及將受信任設備130與受信任設備130中的另一者相關聯。此外,配給程序可將受信任設備130與安全程式設計系統100相關聯。
安全程式設計系統100可使用安全程式設計系統100的公開金鑰154來編碼序號標誌512中的一或更多者及將經加密的值程式化在可程式化設備128中。例如,可程式化設備128可包括現場可程式化閘極陣列804、可程式化中央處理單元806(CPU)、嵌入式多媒體記憶體控制器808(eMMC)、微CPU(microCPU)810或類似的設備。
因此,可程式化設備128中的各者可具有序號標誌512中僅可使用與安全程式設計系統100相關聯的私密金鑰152來解密的一個序號標誌。在一說明性實例中,序號標誌512可表示安全程式設計系統100的系統標識814。此舉可提供安全程式設計系統100及可程式化設備128之間的安全性鏈結。安全性鏈結指示安全程式設計系統100及可程式化設備128之間的關係。
儘管配給程序是使用安全程式設計系統100的私密金鑰152來描述的,但瞭解到可使用不同系統元件的序號標誌512中的一者。例如,可使用用於圖1的程式設計器112的序號標誌512來配給可程式化設備128。
在被配給之後,可程式化設備128可接著被安裝在受信任設備130(例如電路板)中亦可被配給為具有安全程式設計系統100的公開金鑰154的一個受信任設備上。電路板可接著藉由解密經編碼的值812來識別可程式化設備128及比較結果以確認序號標誌512匹配。
在另一實例中,安全程式設計系統100可接收用於受信任設備130(例如電路板)中的一者的序號標誌512,且將藉由加密電路板的序號標誌512及將資訊程式化到可程式化設備128中來產生的經編碼的值812配給給可程式化設備128。在安裝之後,電路板可解密經編碼的值812及將序號標誌512與電路板的序號進行比較。
受信任設備130可被配給為具有設備標識302。用於受信任設備(例如電路板)中的一者的設備標識302可包括輸入信任根504、序號標誌512、韌體標誌506、製造標誌510或類似的識別碼。例如,序號標誌512可包括與不同類型的可程式化設備128相關聯的識別碼ID1、ID2及ID3。與適當識別碼相關聯的可程式化設備128中的各者可被電路板識別及認證,其中此電路板已被配給為具有適當元件的公開金鑰154。ID1、ID2及ID3可能已經被記錄在圖7的MES 702中且可在此階段交叉檢查以確保它們已經是由受信任的來源所配給的。驗證在配給階段期間所記錄的ID值可允許在創建圖5的設備出生憑證512期間進行交叉檢查。
儘管配給程序被描述為使用序號標誌512來識別相關的及授權的系統,但瞭解到亦可使用設備標識302內的其他構件。例如,可程式化設備128可使用設備標識302的另一部分(例如製造標誌510或韌體標誌506)來建立受信任設備130(例如電路板)及可程式化設備128之間的安全性鏈結。
使用與安全程式設計系統100的構件中的一者相關聯的公開金鑰154來編碼設備標識302的一部分的優點是提供了認證機構來限制可程式化設備128及受信任設備130的可交互操作性。藉由將由此等構件中的一者的公開金鑰154所編碼的值配給給可程式化設備128,受信任設備130可使用私密金鑰152來驗證可程式化設備128是被授權與受信任設備130一同操作的。
圖9繪示受信任設備130的製造流程902的實例。製造流程902可描述在設備生命週期中配置受信任設備130的製造程序的各個階段的機能。
製造流程902可包括用於配置受信任設備130的多個階段。例如,製造流程902可包括矽設計階段904、矽製造階段906、電路板設計階段908、安全性預程式設計階段910、預程式設計階段912、電路板製造階段914、設備配給階段916及設備操作階段918。
在矽設計階段904中,圖1的可程式化設備128的設計可提供為包括系統標識814、信任根因素、序號或其他獨一的硬體層級識別碼。例如,在矽設計階段904,快閃記憶體單元的結構可被配置為在預定義的區塊或記憶體位置中嵌入獨一的硬體層級識別碼。在另一實例中,硬體安全性單元的結構可被配置為包括用於獨一的硬體層級識別碼的儲存器。
在矽製造階段906,可基於矽設計階段904資訊來製造及配置受信任設備130。例如,受信任設備130可被配置為具有認證模組320及密碼術模組322。受信任設備130亦可被配置為具有獨一的硬體層級識別碼(例如系統標識814、信任根因素、序號或其他類似的識別碼)的值。
在電路板設計階段908,可建立用於受信任設備130的系統層級的電路板設計。電路板層級的設計可包括圖1的可程式化設備128、安全執行單元324、安全儲存單元326及電路板上的其他安全性相關的構件的利用及整合。在電路板設計階段908期間,可執行將可程式化設備128整合到包括受信任設備130中的另一者的其他系統的電路板層級上的行為。在一個實例中,將可程式化設備128整合到系統電路板設計中的行為可藉由將系統電路板配置為包括可程式化設備128來創建受信任設備130的另一實施例。
在安全性預程式設計階段910,可預先計算安全性憑證及其他硬體層級的安全性資訊以供在稍後的階段程式化到可程式化設備128中。安全性預程式設計階段910可執行用於系統的安全性程式設計。安全性資訊可用來證明設備具有特定的信任根因素或此設備中嵌有其他安全性資訊。安全性憑證可包括圖1的公開金鑰154、經加密資料、經加密代碼或其他的安全性資料或金鑰。
安全性預程式設計階段910可包括各種安全性行動。例如,安全性預程式設計階段910可包括以下步驟:接收圖1的金鑰對偶150,此等金鑰對偶具有來自由外部方(例如原始配備製造商920(OEM))所控制的憑證機構公開金鑰基礎建設單元922(憑證機構PKI)的圖1的私密金鑰152及公開金鑰154。在另一實例中,安全性預程式設計階段910可接收系統標識814及來自認證模組320、密碼術模組318及代碼簽署模組322的資訊,且準備將它們儲存在安全儲存單元326中。憑證機構PKI 922可產生安全性憑證。安全性憑證被預先程式化為證明設備在其中嵌有特定的信任根。安全性憑證可包括與特定的信任根相關聯的公開金鑰154。例如,可使用單獨的憑證來將基礎信任根中的各者嵌在可程式化設備128中,此單獨的憑證可由OEM在外部產生且由憑證機構PKI 922簽署。與金鑰對偶的公開金鑰154相關聯的私密金鑰152可儲存在安全儲存單元326的隱藏區域中。安全性憑證可儲存在安全儲存單元326的唯讀區域中。
可將獨一的硬體層級識別碼(例如信任根因素)嵌到安全儲存單元326中且透過安全性預程式設計階段中的安全性程式設計來針對安全執行單元324啟用此等識別碼。安全性程式設計可在預程式設計可程式化設備128之前執行且可包括韌體及資料程式設計。
在設計及製造時間將信任根因素及其他硬體層級的安全性識別碼實施在可程式化設備128中增加了安全性且改良了偽造偵測的級別。硬體層級的安全性識別碼被配置為難以假冒且用來認證設備的系譜。
進一步地,使用安全技術將信任根及硬體層級的安全性識別碼注入到安全儲存單元326中以提供強力的系統層級信任根及增加整體安全性。此舉可支援偽造的電路板及設備的偵測。
安全性預程式設計階段910可針對安全執行單元324及安全儲存單元326提供不同程度的支援以適應製造商及使用者的不同需要。此舉提供了可擴展的、可控制成本的及簡單的程序。
安全性預程式設計階段910可透過圖1的程式設計器112中的定製工具提供秘密的及安全的程式設計程序,此等定製工具可針對可程式化設備128中的各者提供個別化的安全性配置。程式設計器112可包括針對各個不同的設備類型的可程式化設備128所配置的標準化安全性演算法集合。
圖1的安全程式設計系統100藉由偵測及移除偽造的設備、提供強力的設備身分及認證支援來提供安全的製造環境,且允許了差異的下游服務。延伸韌體及資料程式設計模型將資料程式設計延伸達到安全性。此舉幫助簡化用於保全可程式化設備128的安全性程式設計模型。在一說明性實例中,矽供應商可針對個別的可程式化設備128中的各者提供設備資訊(例如In_RoT 504、序號範圍或其他的獨一值)。設備資訊可接著用來偵測非註冊的(non-registered)設備,此等非註冊的設備可接著因為是未註冊的(unregistered)或偽造的而被移除。
預程式設計階段912可加密資料及韌體構件且在可程式化設備被安裝在其他系統及電路板中之前將安全性資訊程式化在可程式化設備128中。預程式設計階段912可以獨一的安全性配置(包括安全性識別碼、安全性金鑰、安全性演算法、經加密的資料及代碼、軟體版本號碼、循環冗餘碼(CRC)、資料大小及其他的可程式化資訊特徵)來配置可程式化設備128中的各者。此類資料可儲存在資料庫、MES或其他資料系統中以供日後使用。
電路板製造階段914用於實施來自電路板設計階段908的資訊。電路板製造階段912可包括建構包括受信任設備130的系統及電路板。此舉可包括安裝可程式化設備128以供實施電路板及系統的安全性配置。
設備配給階段916可允許更新受信任設備130內的可程式化設備128。例如,可使用網路連接(有線或無線的)以供向受信任設備130傳輸安全資訊來更新可程式化設備128,此等受信任設備可在內部更新可程式化設備128。在另一實例中,受信任設備130可接收更新、安全性資料、額外的安全性金鑰或其他的安全性資訊,且在安全程式設計系統100外面配置。
設備操作階段918可允許受信任設備130在真實世界中活躍地操作。設備操作階段918可涵蓋設備的活動時期(device active time period)且可持續直到受信任設備130達到它們的生命盡頭(EOL)為止。設備活動時期可包括受信任設備130被製造及接著在真實世界中操作的時間。
受信任設備130亦可在設備活動時期期間接收下游服務924。設備活動時期可包括設備配給階段916及設備操作階段918。下游服務924可包括配給操作、防竄改行動,及韌體、作業系統、應用程式或其他軟體及韌體元件的更新。
安全製造系統100可允許用於受信任設備130的安全製造服務。安全製造系統100克服了由較不安全的系統所經歷的元件層級及系統層級的問題。在元件層級下,很少元件在矽製造時間具有信任根構件。此允許了偽造元件的增生,因為沒有用來識別元件的系譜的機構。
在系統層級下,許多製造系統並不在電路板層級下嵌入反映製造成系統的元件硬體及軟體的單獨信任根構件。此可包括物聯網設備。此外,某些信任根構件被注入到不安全的儲存系統中或是使用不安全的方法來安裝,此兩者皆增加了不安全性的級別。
一般而言,缺乏著強力的系統層級信任根,此可能造成系統/電路板層級的偽造的增生。進一步地,標準程序的缺乏針對安全儲存及執行提供了不同程度的支援,充其量也不過是導致不一致的安全性。
安全程式設計問題包括了關於需要定製的解決方案、依賴使用經定製的工具的秘密程式設計程序、使用個別定製的安全性演算法的安全性問題及可擴展性、成本及複雜度的問題。
安全製造系統100允許安全製造以允許偽造物的偵測及移除、強力的設備身分及認證,及允許差異的下游服務。安全製造系統100藉由將資料程式設計延伸為包括安全性特徵及簡化安全性程式設計而延伸了韌體/資料程式設計模型。
將安全性程式設計添加到資料程式設計可幫助擴張預程式設計服務的市場。此舉可藉由針對資料及安全性程式設計兩者結合一個演算法來簡化程序及幫助增加市場佔有率及採用率。此外,利用安全性考量可移除外部網路供應商的程式設計需要。安全程式設計可將金鑰及敏感的智慧財產保持得更安全。
安全製造方法學創建了強力的及安全的系統層級身分。是在設備出生時創建設備的身分。其是從用來建造系統及電路板的元件導出的。此身分跨越了硬體、韌體及軟體元件。設備的身分跨所有製造商、工廠、下包商及經銷商是獨一的。此外,此身分可安全地儲存在設備外或設備上。
強力的系統標識針對設備生命週期中包括設備操作時期的其餘部分允許更高級別的設備安全性、信任及可追溯性。藉由基於現存的矽信任根及獨一的製造資料來創建獨一的系統層級標識,可保全製造供應的改變。偽造的部件將不具有所需的信任根且可被消除。此外,元件及電路板中受危害的(compromised)韌體可被偵測且標記為錯誤狀況。進一步地,下游服務可利用系統標識作為建立及提供受信任服務的基礎。
圖10繪示圖1的受信任設備130的信任根資料流1002的實例。信任根資料流1002可描述設備生命週期中的輸入信任根504、系統信任根1004及輸出信任根1006的資料流。
輸入信任根504可表示在先前的階段(例如矽製造階段906)中已經被程式化到元件設備中的信任根且可由程式設計器112所接收。
系統信任根1004是用於元件設備的安全性構件。系統信任根1004可為圖1的安全程式設計系統100、圖1的安全程式設計單元110、程式設計器112的識別碼或類似的識別碼。系統信任根1004表示包括系統的元件,例如電路板上的元件。
系統信任根1004可具有各種配置。例如,系統信任根1004可包括安全程式設計系統100的元件的序號、獨一的安全性識別碼、安全程式設計系統100的位置或關於安全程式設計系統100的其他獨一識別符。
輸出信任根1006是安全性構件。輸出信任根1006是合併圖1的可程式化設備128中的各者的輸入信任根504及來自安全程式設計系統100或相關元件的系統信任根1004的識別碼。輸出信任根1006可被程式化到受信任設備130中的各者中以提供可將受信任設備130與安全程式設計系統100鏈接的個別化的安全性識別碼。
輸出信任根1006可用在設備生命週期的不同階段。例如,輸出信任根1006可在安全性預程式設計階段910或預程式設計階段912期間被程式化到受信任設備130中。在另一實例中,可在製造期間使用輸出信任根1006以在設備配給階段916期間驗證受信任設備130。此驗證可用來判定設備是否是真正的,包括偵測偽造的設備、未授權的設備或其他的不正常設備。在又另一實例中,輸出信任根1006可在製造之後及在設備操作階段918期間由受信任設備130中的一者所接收。
輸出信任根1006是基於輸入信任根504及系統信任根1004來計算的,且可具有各種配置。例如,輸出信任根1004可為基於兩個其他的信任根來計算的值。可藉由串聯法(concatenation)、將輸入值進行散列、加密輸入值、使用數學演算法結合輸入值或其組合來計算輸出信任根。輸出信任根1006可為單一值、多值資料結構、經加密的值、明確的文數字值、矩陣、二進位值或其組合。
信任根資料流1002可描述整體設備生命週期中所涉及的實體。例如,矽供應商1008可提供要由安全程式設計系統100程式化的可程式化設備128。矽供應商1008涉及矽設計階段904及矽製造階段906期間的設備生命週期。
原始配備製造商1010(OEM)可涉及電路板設計階段908、安全性預程式設計階段910、預程式設計階段912及電路板製造階段914期間的設備生命週期。OEM 1010可接收輸出信任根1006且在各種階段期間利用之。例如,OEM 1010可接收輸出信任根1006且在安全性預程式設計階段910期間將其嵌在電路板上。OEM 1010可為被授權針對OEM 1010執行安全性及資料程式設計的相關聯程式設計中心(PC)及契約製造(CM)設施。
設備生命週期亦可涉及經銷商1012。經銷商1012可提供受信任設備130及使用輸出信任根1006來配給它們。經銷商1012可接收輸出信任根1008且依需要將其分佈給適當的設備。
使用者1014亦可為設備生命週期的一部分。使用者1014可接收輸出信任根1006且將其用來啟用受信任設備130上的機能或內容。可電子地、以實體形式、藉由直接聯絡或其組合將輸出信任根1006分佈給使用者。
對於資料、韌體及應用程式設計而言,可由受信任設備130基於資料的大小在設備生命週期期間使用不同的通道來接收不同類型的安全性資訊。例如,在矽製造階段906,針對矽製造行為所傳輸的程式設計資訊可能小於1千位元組(KB)。在預程式設計階段912期間所傳輸的資訊一般可在50 KB及32吉位元組(GB)之間。此是圖1的可程式化設備128的一般實例。
透過網路服務提供者(ISP)所傳輸的資訊亦可能在50 KB及32 GB之間。可在電路板製造階段914期間傳輸此資訊。
安全程式設計系統100可增加安全製造行為的效用及彈性。此系統可提供各種安全製造特徵,包括程式設計支援、安全性程式設計、偽造偵測、可追溯性及智慧財產保護、以信任啟用的設備及許多其他的安全性特徵。
受信任設備130可提供安全設備服務及安全應用服務。例如,受信任設備130可向第三方的使用者、設備及應用服務提供按使用付費的存取權。在另一實例中,受信任設備130可提供設備層級的服務及使用者層級的服務。
圖11繪示安全設備製造流程1102的實例。安全設備製造流程1102可描述設備生命週期中的輸入信任根504、元件信任根1104及電路板信任根1106的資料流。
安全設備製造流程1102可描述設備生命週期,包括矽設計階段904、矽製造階段906、電路板設計階段908、預程式設計階段912、電路板製造階段914、設備配給階段916及設備操作階段918。安全設備製造流程1102顯示在製造受信任設備130期間實施及嵌入信任根的行為。
元件信任根1104是藉由結合可程式化設備128中的一者上的In_RoT 504及在程式設計階段期間所產生的信任根來產生的。此可包括設備出生憑證520的其他元件。
在電路板層級下,電路板信任根1106是在電路板製造階段914期間創建的。不能在預程式設計階段912期間創建電路板信任根1106,因為在預程式設計階段912,元件還未被關聯或放置在任何特定的電路板上。將元件中的各者(例如可程式化設備128中的一者)與電路板中的一者配對的行為是在電路板製造階段914期間建立的。
在受信任設備130中的一者第一次開機時,軟體代理器(software agent)1116(例如開機時間識別碼讀取代理器)可執行在受信任設備130上。軟體代理器1116可讀取與電路板上的元件相關聯的元件信任根1104以創建電路板信任根1106。因此,電路板信任根1106直接與用來製造電路板的設備的元件信任根1104中的各者鏈接。
可以各種方式形成系統標識814。例如,系統標識814可為安裝在特定電路板上的設備的元件信任根1104的組合或散列值。
設備憑證可與受信任設備130中的一者相關聯。電路板信任根1106可為受信任設備130中的一者的設備出生憑證。可能在預程式設計階段912期間形成空的或不完整的設備憑證。憑證代理器1114可在電路板製造階段914期間創建電路板信任根及/或系統標識814之後以此電路板信任根及/或系統標識更新空的設備憑證。
在另一實例中,輸入信任根504可在預程式設計階段912中與元件信任根1104結合以獨一地識別受信任設備130。元件信任根1104是與可程式化設備128中的一者相關聯的信任根。可程式化設備128中的各者可具有個別的元件信任根1104。可使用元件中的各者的設備出生憑證520來計算元件信任根1104。
元件信任根1104可為圖6的ID符記624、圖5的製造標誌510、圖5的輸入信任根504及其他安全性值的組合。元件信任根1104可被記錄且由OEM製造執行系統1108(OEM MES)所接收。OEM MES 1108可管理製造環境,包括捕捉及管理包括關於電路板上的可程式化設備128的安裝資訊的製造資料。OEM MES 1108可協調用於被製造的電路板中的各者的電路板信任根1106的計算,及向受信任設備130的電路板傳輸電路板信任根1106或將此電路板信任根傳回OEM MES 1108。可在電路板製造時間及在電路板製造階段914期間的電路板的功能測試之前執行電路板信任根1108的計算。
受信任設備130可在電路板製造階段914期間接收具有系統標識814及設備標識302的設備出生憑證520。作為電路板製造階段914的一部分,此系統可執行事後安全性測試以驗證憑證代理器1114。
系統層級的信任根可被保有在OEM MES 1108中或嵌在受信任設備130中。憑證代理器1114可更新虛擬憑證(dummy certificate),此虛擬憑證在其中具有還未完成到包括電路板信任根1106的元件資訊。
圖12繪示安全程式設計程序流程1202的實例。安全程式設計程序流程可在安全性及資料預程式設計階段1204期間將安全性資訊寫入到圖1的受信任設備130。階段的序列包括了矽設計階段904、矽製造階段906、電路板設計階段908、安全性及資料預程式設計階段1204、電路板製造階段904、設備配給階段916及設備操作階段918。
圖1的安全程式設計系統100可以目標酬載914程式化受信任設備130。目標酬載914可使用安全程式設計器1206以安全的方式包括經加密的或未加密的資料、韌體及應用程式。安全程式設計器1206可嵌入經加密的或未加密的資料,例如韌體、作業系統、資料、應用程式、更新等等。此外,安全程式設計器可在受信任設備130中安裝安全性信任根。此可包括資料及代碼兩者。此資料可包括金鑰、憑證、密碼、PIN碼及其他類似的安全性資料構件。此代碼可包括安全性開機載入器、安全性代碼及其他類似的活動代碼構件(active code element)。
安全程式設計系統100可使用安全程式設計器1206來結合代碼及資料的程式設計。此舉可減少設備的大量生產的成本。
可以包括識別模組316、認證模組320、密碼術模組318及代碼簽署模組322的安全性特徵強化安全程式設計器1206。安全性模組可在安全執行單元324中執行且存取安全儲存單元326。此外,受信任設備130亦可存取安全模組。為了將基礎信任根程式化到元件設備中,圖1的程式設計器112必須是受信任的設備。其必須在程式設計器112的設計及架構上實施基礎信任根。
圖13繪示設備出生憑證520的實例。設備出生憑證520是被嵌在可程式化設備128中的各者中的安全資料參數的集合,此等可程式化設備在製造時間形成系統設備。設備出生憑證520可包括關於圖1的可程式化設備128被製造的所在實體及位置的資訊以提供認證可程式化設備128的方式。
設備出生憑證520可包括各種資訊。設備出生憑證520可包括製造標誌510、輸入信任根504、序號標誌512、軟體標誌1306、OEM標誌516、系統測試標誌1308、操作標誌514、實體上不可複製的功能1310(PUF)、安全性金鑰106、產品標誌508、工作封包標識1304、位置標識、設施資訊、程式設計中心資訊或其他類似的安全性值。設備出生憑證520可包括圖3的設備標識302,且藉由包括關於製造程序中的各個步驟額外資訊(例如元件製造、程式設計配置、程式設計位置、工作封包資訊及其他相關的屬性)來延伸資訊。
實體上不可複製的功能1310為實施在實體結構中容易估算但難以預測的實體。實體上不可複製的功能1310為可程式化設備128中的一者中可在製造程序期間添加但難以複製的實體特徵。此可視為單向功能的硬體等效物。
設備出生憑證520或設備出生憑證520的元件可儲存在可程式化設備128的具有各種特徵的安全非依電性記憶體區域中。安全非依電性記憶體區域中的各者可提供不同程度的安全性。例如,此等特徵可包括一次性程式設計(OTP)區域、設備私密OTP區域、硬體熔斷器、唯讀記憶體(ROM)、受寫入保護的記憶體、密碼術控制的記憶體存取區域(例如受重播保護的記憶體區塊(RPMB)等等)等等。並且,例如,此等特徵可施用於可程式化設備128。
圖14繪示安全程式設計環境108的實例。安全程式設計環境108可包括額外的安全性構件以增加程式設計器112的安全性級別。
安全程式設計環境108可具有用於執行不同功能的各種配置。例如,安全程式設計環境108可包括程式設計器112、硬體安全性模組1404及序號伺服器1406。硬體安全性模組1404可將額外的安全性機能提供給程式設計器112,例如加密、解密及其他類似的功能。硬體安全性模組1404可產生嵌入基礎信任根所需的安全性構件,例如安全性金鑰、金鑰對偶或其他類似的構件。硬體安全性模組1404可由程式設計器112用來執行密碼術的及安全性的代碼。
序號伺服器1406可將用於圖1的可程式化設備128的序號提供給程式設計器112。序號伺服器1406可以各種方式提供序號。例如,序號伺服器1406可產生序號、從饋給物(feed)提供序號或其組合。序號可分佈在特定的序號範圍上、是相連的、不相連的、均勻分佈的或基於數學公式的。
安全程式設計環境108可從與OEM開發實驗室1410相關聯的OEM工作站1412接收工作控制封包1418。工作控制封包1418可與目標酬載1420及要程式化到可程式化設備128中的其他安全性及控制件相關聯。目標酬載1420可被加密為形成可向可程式化設備128傳輸的經加密酬載1422。
目標酬載1420是要加密及程式化到可程式化設備128中的資訊。目標酬載1420可包括資料、代碼、安全性金鑰及其他的資訊。例如,目標酬載1420可為要在受信任設備130上執行的安全韌體代碼。在另一實例中,目標酬載1420可包括結合在一起的不同資料構件,例如額外的安全性金鑰及一或更多個軟體模組的集合。
工作控制封包1418包括以目標酬載1420配置及程式化可程式化設備128所需的資訊。工作控制封包1418可包括程式設計指令、安全性資訊、程式設計器配置資訊、設備配置資訊及其他類似的工作資訊。
安全程式設計環境108可從具有憑證管理後台1416的OEM/CA公開金鑰基礎建設系統1414接收安全性資訊。憑證管理後台1416可針對要程式化的可程式化設備128中的各者計算安全性金鑰及個別的設備憑證。
程式設計器112可針對可程式化設備128中的各者個別加密目標酬載1420。例如,憑證管理後台1416及硬體安全性模組1408可針對可程式化設備128中的各者提供個別的圖1的安全性金鑰106。在另一實例中,程式設計器112可將安全性金鑰106與由序號伺服器1406所提供的個別序號結合以產生經加密酬載1422。程式設計器112可接著向安裝在圖2的設備轉接器208中的受信任設備130中的特定的一個受信任設備傳輸經加密酬載1422,且個別定製可程式化設備128中的各者。
在另一實施例中,可藉由將信任根嵌在可程式化設備128中來執行設備的安全性配給。圖1的金鑰對偶150是在硬體安全性模組1408中產生的,且接著圖1的私密金鑰152可在不暴露在安全可程式化環境108之外的情況下被程式化到可程式化設備128中。金鑰對偶150的圖1的公開金鑰154在硬體安全性模組1404中被轉變成憑證。憑證可接著被程式化到可程式化設備128中。金鑰對偶150中的各者的公開金鑰154亦可被抽取且放到OEM金鑰管理系統後台伺服器基礎建設(例如憑證管理後台1416)中。
在一說明性實例中,圖1的安全程式設計系統100可將經加密的韌體程式化到可程式化設備128中,在此可程式化設備處,已使用對稱金鑰K1加密經加密的韌體。經加密的韌體可為經加密酬載1422。此韌體可為例如是開機載入器、應用程式、作業系統構件或其他代碼構件的代碼。有兩個關於如何解決問題的變體。
在第一變體中,可將經加密的韌體程式化到可程式化設備中且使用對稱金鑰K1在可程式化設備128中的一者上解密此經加密的韌體。此舉需要經加密的韌體影像及對稱金鑰K1在不被暴露的情況下被程式化到可程式化設備中。可從經加密的韌體影像創建程式設計工作(例如工作控制封包1418)且接著將此程式設計工作程式化到可程式化設備128中的一者中。對稱金鑰K1可接著首先被安全地注入到硬體安全性模組1404中。程式設計器112及硬體安全性模組1404可使用對稱金鑰K1來彼此認證及創建用來在硬體安全性模組1404中加密對稱金鑰K1的共用秘密金鑰(例如對話金鑰(session key)1424)且將其發送到程式設計器112。程式設計器112可使用對話金鑰1424來解密經加密的對稱金鑰K1且接著將對稱金鑰K1程式化到可程式化設備128中的一者中。此是最安全的方法學。因為對話金鑰1424本質上是動態的,程式設計器112知道加密金鑰為何的事前資訊。
在第二變體中,若可程式化設備128缺乏加密/解密能力,則可在編成密碼術112上進行韌體影像的解密且接著可由程式設計器112將韌體影像程式化到可程式化設備128中的一者中。
安全程式設計環境108及程式設計器112可與硬體安全性模組1404一同整合以允許進行安全的金鑰及憑證程式設計以及安全性核心程式設計。
安全程式設計環境108可強化工作控制及工作運行以保護資料及韌體智慧財產。安全程式設計環境108可支援資料及韌體完整性,使得不能在運送到設備的途中改變智慧財產。安全程式設計環境可支援資料及韌體機密性,使得智慧財產不能被竊取及逆向工程。未授權的實體不能存取安全內容。
安全程式設計環境108可利用強化的程式設計器架構。程式設計器112可向安全網路上可存取的其他系統密碼術地識別及認證其本身(PKI民眾(citizen))。程式設計器112可安全地將其本身開機。程式設計器112可在不暴露資料或安全性金鑰的情況下安全地解密韌體及資料構件。最後,程式設計器112可讀取設備序號及密碼術地認證設備。
程式設計器112可程式化安全性核心、程式金鑰、本端產生的讀取金鑰、程式資料及韌體,及其他的安全性構件。程式設計器112可在具有充分的實體及存取安全性的安全前提之下操作以偵測或防止外部存取及竄改。
安全程式設計環境108可支援製造執行系統1408及與此製造執行系統建立介面以記錄每設備(per device)的資訊,例如序號、公開金鑰、公開憑證、每設備的程式設計資料及工件控制資訊。可保全MES 1408以防止未授權的存取及保護安全資料。
圖15繪示具有安全性演算法1502的製造流程的實例。具有安全性演算法1502的製造流程提供了製造受信任設備130的簡化方法。
圖1的安全程式設計系統100可程式化各種圖1的可程式化設備128。例如,可程式化設備128可為快閃記憶設備、FPGA設備、硬體安全性模組、智慧型手機、消費者設備或具有安全性需要的類似電子產品。因為設備類型中的各者可能需要不同的操作來程式化,安全程式設計系統100可實施安全性演算法1504系統來提供統一的程式設計介面以簡化設備程式設計。
安全性演算法1504可用在系統及受信任設備130之間的各個介面處。例如,安全性演算法1504可從識別模組316、認證模組320、密碼術模組318或代碼簽署模組322接收信任根代碼620及信任根資料622。安全性演算法1504中的各者可提供統一的介面以存取被程式化的特定類型的受信任設備130的安全性特徵。安全性演算法1504可針對模組中的各者提供與安全執行單元324及安全儲存單元326建立的統一介面。
安全性演算法1504可用來將信任根嵌到受信任設備130中。可針對各個設備類型定製安全性演算法1504,且此等安全性演算法可將用於各個信任根的代碼及資料儲存在安全儲存單元326中。安全性演算法1504可配置資料及代碼以運行在安全執行單元324中且利用受信任設備130中的一者的安全執行特徵。
安全性演算法1504可暴露標準化的程式設計介面以供由設備韌體存取。安全性演算法1504藉由抽離將金鑰安全性使用案例映射到系統的行為的複雜度而簡化了安全性程式設計。此舉簡化了將使用案例嵌入到設備中的行為。
在另一實例中,安全性演算法1504可用來將不同的信任根植入在安全儲存單元326中。可程式化設備128(例如快閃記憶體單元)可能需要特殊化的行動來將資料寫入到安全儲存單元326中。特殊化的行動可包括識別私用的記憶體區塊、啟動安全性熔斷器、使用唯寫記憶體或類似的行動。
圖16繪示安全開機使用案例1602的實例。安全開機使用案例1602可描述用於僅使用受認證的開機代碼來以安全的方式將受信任設備130中的一者開機的程序。此外,安全開機使用案例1602可用於執行空中(over the air)韌體更新、安裝空中應用程式及周邊認證。
在將代碼載入到受信任設備130中的一者上之前,必須認證此代碼是來自受信任方1603的且此代碼還未被竄改。可以簽章金鑰簽署經加密的項目(例如軟體項目)以認證來源。例如,可使用公開金鑰來認證使用金鑰對偶的私密金鑰來加密的項目。
此代碼可包括第一階開機載入器1610、第二階開機載入器1616、作業系統1618、韌體、應用程式或其他類似的代碼構件。代碼構件中的各者可包括簽章及密碼術金鑰以供認證。
第一階開機載入器1610可藉由向第二階開機載入器1616發送密碼術金鑰1614及將簽章1612接收回來來認證第二階開機載入器1616。若簽章1612及密碼術金鑰1614是正確的,則第二階開機載入器1616可認證第一階開機載入器1610。
第二階開機載入器1616可藉由向作業系統1618發送密碼術金鑰1630及將簽章1628接收回來來認證作業系統1618。若簽章1628及密碼術金鑰1630是正確的,則第二階開機載入器1616可認證作業系統1618。
作業系統1618可藉由向應用程式傳遞密碼術金鑰1634及取回簽章1632來在執行之前驗證應用程式。若簽章1632及密碼術金鑰1634是正確的,則作業系統可認證應用程式。應用程式可包括第一應用程式162、第二應用程式1622、第三應用程式1624及第n應用程式1626。
第一階開機載入器1610在製造時間被程式化到受信任設備130中的一者中。可以各種方式接收第二階開機載入器1616、作業系統1618及應用程式。例如,可在製造時間、從雲端1604、作為空中下載1606、從可移除式安全數位卡1608或其組合的方式接收它們。
認證金鑰可用來認證存有更新的周邊媒體。藉由以認證金鑰認證安全性構件,此系統可保障已是由認證金鑰的擁有者提供內容的。簽章金鑰亦可用來保證釋出軟體更新的一方(例如OEM)的真偽。簽章金鑰亦可用來驗證軟體更新還未在運送途中被更改。
圖17繪示設備配給使用案例1702的實例。設備配給使用案例1702可顯示用於由原始配備製造商、網路操作員或電信營運商向受信任設備130中的一者部署新的代碼及資料的程序。
在圖1的可程式化設備128的設備生命週期的操作階段期間,可在受信任設備130中的一者上啟動配給代理器1704。配給代理器1704可安全地接收更新後的代碼及資料且將它們安裝在受信任設備130內。
配給代理器1704可驗證及認證輸入的代碼及資料以確保配給操作是被允許的。配給代理器1704可存取圖5的設備出生憑證520且驗證輸入的代碼及資料的嵌入值與正在使用的值是一致的。可針對受信任設備130中的一個為目標的受信任設備將輸入的代碼及資料標以正確的安全性構件。
可由經授權的服務提供者(例如OEM、網路操作員或電信營運商)自動起動配給程序。或者,可由配給使用者1706人工起動配給程序。
設備出生憑證520可包括輸入信任根504、序號標誌512、韌體標誌506、製造標誌510、產品標誌508、操作標誌514、OEM標誌516、圖1的金鑰對偶150、使用者標誌1708或其他類似的安全性構件。配給代理器1704可在具有安全執行單元324及安全儲存單元326的受信任設備130上執行。例如,使用者標誌可包括使用者資訊,例如姓名、地址、電子郵件、電話、營運商計劃或其他類似的使用者資訊構件。
配給代理器1704可為與安全執行單元324一同執行且使用來自安全儲存單元326的資料的軟體或韌體。配給代理器1704可包括可由代碼簽署模組計算且用來認證配給代理器1704的代碼的內部檢查和或標誌。可在製造或配給時間檢查配給代理器1704的代碼,或可由受信任設備130中的此一者內的另一模組檢查代碼。
在一說明性實例中,配給代理器1704可用來將使用者資訊配給在受信任設備130中的一者上。配給代理器1704可藉由在活動階段期間(例如在引入新的使用者時)將設備出生憑證延伸為包括使用者資料,來將使用者相關的元資料添加到設備出生憑證。配給代理器1704允許受信任設備130中的一者的安全性元資料的安全更新。
圖18繪示竄改偵測使用案例1802的實例。竄改偵測使用案例1802描述了圖1的可程式化設備128中的代碼或資料中的未授權改變的偵測。
在可程式化設備128的設備生命週期的操作階段期間,可在可程式化設備128中的一者上啟動監控代理器1804。監控代理器1804可存取圖5的設備出生憑證520且驗證嵌入值與正在使用的值是一致的。
設備出生憑證520可包括輸入信任根504、序號標誌512、韌體標誌506、製造標誌510、產品標誌508、操作標誌514、OEM標誌516、金鑰對偶150或其他類似的安全性構件。監控代理器1804可在具有安全執行單元324及安全儲存單元326的受信任設備130上執行。
監控代理器1804可為與安全執行單元324一同執行且使用來自安全儲存單元326的資料的軟體或韌體。監控代理器1804可包括可由代碼簽署模組計算且用來認證監控代理器1804的代碼的內部檢查和或標誌。可在製造或配給時間檢查監控代理器1804的代碼,或可由受信任設備130中的此一者內的另一模組檢查代碼。
在一說明性實例中,監控代理器1804可針對可程式化設備中的一者(例如受信任的智慧型設備)的可用序號檢查序號標誌512。若兩個值不匹配,則監控代理器1804可偵測改變及起動適當的安全性行動1806。安全性行動1806可包括停止操作、發送安全性訊息、顯示安全性訊息、提供錯誤訊息、隔離(quarantine)設備或其組合。
在另一實例中,監控代理器1804可針對受信任的智慧型設備內的目前可用的韌體檢查韌體標誌506。若值不匹配,則可刪除目前可用的韌體及要求新的版本以改正問題。
圖19繪示物聯網使用案例1902的實例。物聯網使用案例可描述經部署的IoT設備(例如圖1的受信任設備130)的安全資訊流。
IoT設備1912可透過閘道器1910與網際網路1908通訊。遠端系統1904可透過網際網路1908向分析術資料儲存單元1906交換資料及分析資訊。
IoT設備1912中的各者可具有圖3的設備標識302。IoT設備1912中的各者可被串聯化且具有用於設備標識302的單獨及獨一的值。
此系統可偵測設備之間的通訊以及設備及周邊設備之間的通訊。可藉由使用設備認證來在設備之間建立信任完成此舉。此外,可藉由使用資料加密及解密來增加資料傳輸的機密性以保護運送中的資料。
此系統可實施設備健化(hardening)以保護設備免於攻擊。可藉由針對韌體及應用程式代碼兩者將設備上的代碼的執行限於經授權的代碼來完成此舉。可使用安全開機協定、代碼簽署及其他類似的技術來完成此舉。此外,此等設備可實施運行時間保護以幫助使用應用程式沙盒化(sandboxing)及虛擬化(virtualization)來防止代碼及資料截收攻擊。例如,此系統可利用安全執行模組及安全儲存模組,例如ARM TrustZone®或類似的系統。
可在設備生命週期的操作部分中的配給期間使用韌體及軟體的安全空中更新來實施安全設備管理。此舉可針對在較不安全的通道上所傳輸的代碼及資料更新提供額外保護。
最後,是藉由對旗標異例(flag anomaly)利用物聯網分析術來強化整體系統安全性。例如,可由分析術及資料儲存模組1906提供巨量資料分析以估算及偵測關於潛在的安全性威脅的不常見的網路及資料事件。
在一說明性實例中,此系統可向IoT設備1912中被顯示為被危害的所有IoT設備發送關機命令。在另一實例中,遠端系統1904可向IoT設備1912中的某些IoT設備發送資訊要求以收集估算安全性威脅所需的額外資訊。
圖20繪示安全性及資料程式設計使用案例2002的實例。安全性及資料程式設計使用案例2002可包括在微控制器單元(MCU)上執行安全性及資料程式設計。
安全性及資料程式設計使用案例2002的安全性部分可包括程式化空白設備、安裝安全性核心、配給設備金鑰、安裝設備憑證2014、鎖定設備及啟用安全儲存及安全執行或其組合。設備憑證201可包括標識、公開簽署金鑰、公開加密金鑰或其他類似的構件。
安全性及資料程式設計使用案例2002的資料及韌體部分可包括程式化經加密的韌體影像、解密設備上經保全的內容或其組合。此舉亦可包括加密圖14的目標酬載1420以形成圖14的經加密酬載1422、解密經加密酬載1422、解密用於驗證的簽章、計算及比較散列值或其他類似的行動。
在設備個人化實例中,設備憑證2014可具有從資料加密金鑰對偶所抽取的資料加密公開金鑰2008。想要向圖1的受信任設備130發送經加密資料的任何其他系統或設備可使用資料加密公開金鑰2008來加密資料。圖1的私密金鑰152可被程式化到設備上的隱藏區域中,例如非依電性記憶體區域中。私密金鑰152可用來解密經加密的資料。
設備憑證2014亦可包括從設備簽署金鑰對偶所抽取的公開設備簽署金鑰2006。將離開此設備的任何資料將被設備簽署金鑰對偶的私密金鑰簽署。設備簽署金鑰對偶的公開金鑰部分可由接收方所使用來認證訊息是來自簽署方的。
整體的問題是創建此等金鑰對偶及具有此等金鑰的設備憑證2014。私密金鑰及具有公開金鑰的設備憑證兩者將被程式化到設備中。此外,想要與特定設備傳遞資料的任何設備將需要在安全地交換資料之前取得對於此特定設備的設備憑證的存取權。
設備憑證2014必須由憑證機構所簽署。憑證機構是證明憑證中的資訊是正確的實體。由FAB金鑰對偶的私密金鑰來密碼術地完成此舉。FAB金鑰對偶表示製造微控制器單元矽所在的第三方。FAB金鑰對偶的公開金鑰被放到FAB憑證中,此FAB憑證接著由根金鑰對偶的私密金鑰所簽署。FAB憑證是用來保有FAB金鑰對偶的單獨資料憑證。根金鑰2010可表示微控制器單元的矽供應商的初始安全性金鑰。矽供應商金鑰的公開金鑰是可公開取得的且是可依需要擷取的。在此實例中,設備憑證的程式設計預期是在FAB工廠中執行的。
設備憑證2014及FAB憑證兩者被程式化到受信任設備130中以確保矽供應商及受信任設備130之間的信任鍊可由想要驗證一開始具有矽供應商的公開金鑰的受信任設備130的真偽的任何代理商所建立。若矽供應商的公開金鑰是已知的,則FAB憑證可被驗證以取得FAB金鑰2012的公開金鑰。在使用FAB金鑰2012的公開金鑰的情況下,設備憑證2014可被驗證且用來取得設備憑證2014的公開金鑰。
設備種子2004可為與圖1的可程式化設備128中的一者相關聯的獨一值。例如,設備種子2004可為設備層級的信任根、序號、安全性金鑰、隨機數或類似的獨一安全性值。
圖21繪示設備外種子使用案例2102的實例。可在程式設計中心處在硬體安全性模組中執行設備外種子使用案例2102。
在設備外種子使用案例2102中,可在若干位置之間實例化(instantiate)及管理安全性構件。此等位置可包括各種配置。例如,第一位置2104可為矽製造商。第二位置2106可為原始配備製造商(OEM)位置。第三位置2108可為設備製造或配給位置。第三位置2108可為圖1的程式設計器112及圖1的可程式化設備128所在的程式設計中心。第三位置2108可包括程式設計器112及可程式化設備128兩者的24小時視訊監視以防止任何竄改。可程式化設備128可包括安全性用具(security appliance)、晶片、記憶設備、電路板或其組合。
在步驟2110中,空白的可程式化設備128及參考開機載入器軟體可由微控制器單元矽供應商提供且被實體運輸到第二位置2106以供進一步處理。實體運輸是用來防止對於空白可程式化設備128及安全性軟體的未授權存取的安全實體運輸。
在步驟2112中,可在第二位置2106(例如OEM)處接收可程式化設備128。OEM可藉由更改參考開機載入器軟體來開發安全性核心及/或安全性開機載入器。OEM亦可開發及提供經加密的韌體影像及韌體加密金鑰(UPK)。OEM亦可提供需要生產的設備總計數。此資訊被保有在OEM處的第一硬體安全性模組(HSM #1)用具中且可透過加密式運輸被提供到程式設計中心到內裝的(on premise)第二硬體安全性模組安全性用具(HSM #2)中。
在步驟2114中,第二硬體安全性模組中的安全性用具可使用第二硬體安全性模組中所產生的隨機種子針對可程式化設備128中的各者產生所有經簽署的設備憑證及FAB憑證。HSM #2安全性用具可針對各個設備歸併(merge)種子、憑證及安全核心作為可程式化酬載P。可使用使用程式設計器憑證的經加密運輸來向程式設計器112傳輸安全性資訊。
在步驟2116中,程式設計器112可以可程式化酬載P程式化受信任設備128及接著鎖定此設備以免於可程式化酬載的任何更改。金鑰對偶的私密金鑰並不需要被程式化到設備中,因為設備可在設備上在任何時間依需要使用種子來產生私密金鑰。產生私密金鑰的此行為是安全性核心的一部分且僅可經由安全性核心來安全地存取。在步驟2118中,可程式化設備128中的一者可被程式化為具有安全性核心。
在步驟2120中,程式設計器112可發出重開機命令以驗證設備及安全性核心是活的且接著以設備憑證回傳。在步驟2124中,安全性用具使用來自設備的設備憑證的公開資料加密金鑰來產生設備特定的經超加密(super encrypted)的UPK。可接著將經超加密的金鑰及經加密的韌體影像發送回到程式設計器112以供程式化到可程式化設備128中的一者中。
在步驟2126中,經加密的檔案可被程式化到可程式化設備128中的一者中。可向可程式化設備128中的一者傳輸經加密檔案作為經加密檔案。
在步驟2128中,程式設計器112可向可程式化設備128中的一者傳輸經加密檔案,其中影像被解密及安裝在可程式化設備128中的一者中。是藉由將憑證及模組列表發送回到程式設計器112來合格化(qualify)及驗證影像的安裝。
在步驟2130中,程式設計器112可藉由將憑證及模組列表與已知憑證及模組的列表匹配來驗證可程式化設備上的經加密檔案的安裝。
在程式設計中心處在第二硬體安全性模組中產生設備種子藉由減少洩露安全性構件的機會數量而增加了製造安全性的整體級別。因為程式設計中心是具有每天24小時的視訊監視的受控環境,可以較高度的安全性及完整性程式化可程式化設備128。
圖22繪示設備上種子使用案例2202的實例。可在原始配備製造商位置處在硬體安全性模組中執行設備上種子使用案例2202。
在設備上種子使用案例2202中,可在若干位置之間實例化及管理安全性構件。此等位置可包括各種配置。此等位置可包括矽製造商2204、原始配備製造商2206、程式設計中心2208、製造中心或類似的位置。進一步,此使用案例可包括嵌在程式設計器112層級及設備層級2212的資料及行動。
在步驟2222中,空白的圖1的可程式化設備128及參考開機載入器軟體可被提供到微控制器單元矽供應商及實體運輸到第二位置(例如OEM 2206)以供進一步處理。實體運輸是用來防止對於空白可程式化設備128及安全性軟體的未授權存取的安全實體運輸。
在步驟2224中,可在第二位置(例如OEM)處接收可程式化設備128。OEM可藉由更改參考開機載入器軟體來開發安全性核心及安全性開機載入器。OEM亦可開發及提供經加密的韌體影像及韌體加密金鑰(UPK)。OEM亦可提供需要生產的設備總計數。安全性核心及種子核心可被保有在OEM處的第一硬體安全性模組(HSM #1)用具中且可透過經加密運輸被提供到程式設計中心到內裝第二硬體安全性模組安全性用具(HSM #2)中。
在步驟2226中,安全性用具的第二硬體安全性模組可向圖1的程式設計器112發送種子核心。在設備的HSM #2上產生種子。種子核心需要被程式化到設備中,此種子核心將在設備上執行以產生種子及金鑰對偶。公開金鑰將被置入設備憑證中且私密金鑰可被程式化到設備中。
步驟2226可向程式設計器112發送種子核心,此程式設計器將把種子核心程式化到設備中。接著將設備重開機及執行種子核心。種子核心可接著產生金鑰對偶。私密金鑰被儲存在設備上的隱藏記憶區域中。公開金鑰(Kpub)被回傳回HSM #2。HSM#2亦可產生經簽署的憑證、將它們與安全性核心歸併且將其程式化到設備中。
此使用案例是最安全的使用案例,因為設備秘密、種子核心及後續的私密金鑰是在HSM#2中產生的且永遠不被暴露到設備之外。可將公開金鑰發送及暴露到設備之外。因此,即使是明文地(in the clear)交換某些資料,程式設計器112及設備之間的資料交換亦是安全的且最小化了安全性易損性。此與圖21的設備外種子使用案例2102不同,在此使用案例中,安全性核心及種子程式設計是明文地在程式設計器及設備之間傳輸的。若資料被截收則此可能潛在地是安全性侵犯,且此需要較嚴格的場所(premise)安全性需求。
在步驟2228中,程式設計器112可以可程式化酬載P程式化受信任設備128及接著鎖定此設備以免於可程式化酬載的任何更改。金鑰對偶的私密金鑰並不需要被程式化到設備中,因為設備可在設備上在任何時間依需要使用種子來產生私密金鑰。產生私密金鑰的此行為是安全性核心的一部分且僅可經由安全性核心來安全地存取。
在步驟2230中,可程式化設備128中的一者可被程式化為具有種子核心。在已安裝種子核心之後,步驟2228可繼續進行且程式設計器可向設備發出重開機命令。
在步驟2232中,設備可產生設備種子及圖1的安全性金鑰106,且接著產生公開金鑰及向程式設計中心層級(例如MES)發送公開金鑰。可明文地發送公開金鑰,因為公開金鑰是可共用的且並非隱藏值。
在步驟2234中,系統可產生及簽署設備憑證。接著,安全核心可與設備憑證歸併且被發送到程式設計器112。是使用使用程式設計器憑證的經加密運輸來發送經歸併的安全核心。
在步驟2236中,程式設計器112可接收安全核心及將安全核心配給給可程式化設備128中的一者。可使用使用公開金鑰的經加密運輸通道來向可程式化設備128中的一者發送安全核心。
在步驟2238中,設備可解密及安裝安全核心。此外,可將簽章添加到設備。在已安裝安全核心之後,步驟2236可向設備發送重開機命令,而設備可在步驟2240中回傳憑證。
在步驟2242中,安全性用具使用來自設備的設備憑證的公開資料加密金鑰來產生設備特定的經超加密(super encrypted)的UPK。可接著將經超加密的金鑰及經加密的韌體影像發送回到程式設計器112以供程式化到可程式化設備128中的一者中。
在步驟2244中,經加密的檔案可被程式化到可程式化設備128中的一者中。可使用公開金鑰向可程式化設備128中的一者傳輸經加密檔案作為經加密檔案。
在步驟2246中,程式設計器112可向可程式化設備128中的一者傳輸經加密檔案,其中影像被解密及安裝在可程式化設備128中的一者中。是藉由將憑證及模組列表發送回到程式設計器112來合格化(qualify)及驗證影像的安裝。
在步驟2248中,程式設計器112可藉由將憑證及模組列表與已知憑證及模組的列表匹配來驗證可程式化設備上的經加密檔案的安裝。
在程式設計中心處在第二硬體安全性模組中產生設備種子藉由減少洩露安全性構件的機會數量而增加了製造安全性的整體級別。因為程式設計中心是具有每天24小時的視訊監視的受控環境,可以較高度的安全性及完整性程式化可程式化設備128。
圖23繪示受管理的及安全性處理系統2302(MSP系統)的實例。MSP系統2302可安全地部署及配給可程式化設備128。
MSP系統2302可以密碼術資訊個別配置資料設備及受信任的裝置,以提供安全的程式設計及操作環境。MSP系統2302可允許安全位置(例如契約製造商、原始配備製造商(OEM)地點或其他類似的位置)處的可程式化設備128的安全程式設計。
MSP系統2302可為圖1的安全程式設計系統100的實施例中的一者。可使用安全程式設計系統100的構件來實施MSP系統2302的構件。
MSP系統2302可支援跨多個位置或場所部分分佈的系統的操作。MSP系統2302可包括OEM開發場所2340及工廠場所2342。OEM開發場所2340可用來準備可程式化設備128的實際程式設計及配給。OEM開發場所2340可用來準備用於多個工廠的程式設計資訊。OEM開發場所2340是OEM可準備程式設計專案2344的位置,此程式設計專案具有用於配置安全設備(例如可程式化設備128、安全構件、圖1的受信任設備130或其他類似的設備)的集合的資訊。
儘管在不同類型的安全設備之間存在著差異,但此等用語一般被瞭解為是可互換的且本質上是通用的。為了便利及簡要起見,可在此說明書中可互換地使用安全設備、安全構件、可程式化設備128、受信任設備130及其他類似的構件。
OEM開發場所2340可取得用來配給可程式化設備128的韌體影像2314及準備程式設計專案2344。可接著向工廠場所2342安全地傳輸程式設計專案2344及使用此程式設計專案來控制可程式化設備128的程式設計。
OEM開發場所2340可具有安全製造系統及資料儲存器的集合以供促進創建程式設計專案2344。例如,OEM開發場所2340可包括OEM憑證金鑰材料2304、OEM安全性開機載入器2306、OEM韌體開發系統2308、OEM統治工具(mastering tool)2310、韌體更新服務2312及OEM管理系統2324。
工廠場所2342是用於程式設計及配給可程式化設備128的位置。工廠場所2342可為程式設計中心、製造設施、契約製造商地點或類似的位置。在一實施例中,工廠場所2342是程式設計器112及可程式化設備128所在及操作之處。
MSP系統2302可包括安全性開機載入器2318。安全性開機載入器2318是可在可程式化設備128上在開機時間執行以保障符合安全性協定的安全程式設計代碼。OEM安全性開機載入器2306創建設備身分、創建接受經加密資料串流及在設備上進行解密的能力及在設備上初始化安全運行時間環境使得韌體可安全地運行在設備上。
MSP系統2302亦可包括安全韌體2320。安全韌體2320是要嵌在可程式化設備128的非依電性記憶體中的軟體代碼及資料。安全韌體2320可在經加密狀態下傳輸且在程式設計器112處解密。
MSP系統2302可包括韌體解密金鑰2322。韌體解密金鑰2322可用來解密已使用與韌體解密金鑰2322相關的加密金鑰來加密的安全韌體2320。例如,韌體解密金鑰及加密金鑰可為用於加密的對稱金鑰對偶的一部分。
MSP系統2302可包括來自OEM的韌體影像2314。韌體影像2314是將由OEM安全性開機載入器2306所載入及在製造期間及之後在可程式化設備128上運行的嵌入式應用程式代碼。
MSP系統2302可包括OEM憑證金鑰材料2304。OEM憑證金鑰材料2304可包括例如為矽供應商設備認證金鑰2355、用來簽署OEM設備憑證2346的OEM設備憑證簽章金鑰2347及OEM設備憑證樣板2350的資訊。例如,矽供應商設備認證金鑰2355可為用來認證來自矽供應商的內容的認證金鑰。OEM設備憑證簽章金鑰2347可為用來簽署內容以安全地識別OEM的簽章金鑰。簽章金鑰可被鏈接到驗證金鑰以驗證簽章。在另一實例中,簽章金鑰及驗證金鑰可為認證金鑰對偶的公開及私密金鑰。
OEM設備憑證樣板2350是用來形成OEM憑證2351的資訊區塊。其包括用於OEM憑證2351的基本所需資訊。OEM憑證2351是界定OEM使用者2368的資訊區塊。OEM憑證2351可包括OEM識別碼2366、OEM公開金鑰2362及OEM私密金鑰2352。OEM識別碼2366是獨一地識別OEM的值。
矽供應商是可製造或提供可程式化設備128的實體。可以矽供應商識別碼2356識別矽供應商。矽供應商識別碼2356是鏈接到矽供應商的值。例如,矽供應商識別碼2356可鏈接到實際上製作形成可程式化設備128的積體電路或元件的公司。矽供應商亦可為在供應可程式化設備128以供由系統程式化之前預先配置此等可程式化設備的公司。
MSP系統2302可包括OEM韌體開發系統2308。韌體開發系統2308支援韌體影像2314的開發以供部署到可程式化設備128。
MSP系統2302可包括OEM統治工具2310(OMT)。OEM統治工具2310是可將OEM安全性開機載入器2306綁定(bind)到韌體影像2314的安全性應用程式或系統。OEM統治工具2310可簽署及加密韌體影像2314及準備韌體影像2314以供現場更新。現場升級可允許以安全的方式遠端地改變部署在可程式化設備128中的韌體。OEM統治工具2310可藉由使用韌體解密金鑰2322加密韌體影像2314來生產安全韌體2320。OEM統治工具2310可包括HSM或TSM且以硬體或軟體實施。
MSP系統2302可包括OEM管理系統2324。OEM管理系統2324是用於界定用於OEM使用者的程式設計專案2344的系統。程式設計專案2344是界定可程式化設備128的安全生產運行程序(production run)的資訊封包。
OEM管理系統2324可將OEM安全性開機載入器2306、韌體影像2314、OEM憑證2351、OEM憑證金鑰材料2304及生產計數2348綁定到程式設計專案2344。一旦一開始創建了程式設計專案2344,則程式設計專案2344可被更新為包括OEM安全性開機載入器2306、韌體影像2314、OEM憑證金鑰材料2304、OEM憑證2351及生產計數2348的參照、代碼及資料。綁定程序意指,此資訊是程式設計專案2344的參數的一部分。OEM管理系統2324亦可將程式設計專案2344綁定到工廠場所2342處的特定安全性程式設計系統。程式設計專案2344可包括程式設計系統或子系統(例如安全程式設計系統100、程式設計單元110、程式設計器112或其組合)的圖8的系統標識814。接著,可僅在具有系統標識814的系統上執行程式設計專案2344。
生產計數2348是描述在生產運行程序中生產的安全設備的數量的指示符。可將生產計數2348與在安全設備開始或完成生產時更新的增量數進行比較。接收程式設計專案2344的程式設計器112可使用生產計數2348來限制所程式化及配給的設備數量以防止未授權地生產可程式化設備128。在生產期間,目前計數2378可指示已生產的產品的目前數量。系統可藉由將目前計數2378與生產計數2348進行比較及在目前計數2378等於生產計數2348時停止來停止程式化此等設備。
可以各種方式配置OEM管理系統2324。例如,OEM管理系統2324可以共用的配置來實施,及產生用於部署到多個OEM的程式設計專案2344,各個OEM具有它們自己的工廠(例如工廠場所2342)。可使用圖1的安全主儲存系統102、圖1的安全性主系統104、圖1的安全程式設計系統100或其系統及子系統的組合來實施OEM管理系統2324。
MSP系統2302可包括工廠管理系統2330。工廠管理系統2330是用於管理工廠場所2342處的安全程式設計元件的系統。工廠管理系統2330可從OEM管理系統2324接收程式設計專案2344,且解密製造資訊及向位在工廠場所2342的其他安全性及程式設計系統分佈製造資訊。
可以各種方式實施工廠管理系統2330。例如,可以圖7的製造執行系統702、圖2的程式設計處理器202、主控電腦系統或另一類似的處理系統來實施工廠管理系統2330。
MSP系統2302可包括工廠安全性系統2332。工廠安全性系統是產生要程式化到可程式化設備128中的金鑰及憑證的基於HSM的安全性用具。工廠安全性系統2332可藉由將一個OEM的安全性資訊與另一OEM的安全性資訊隔絕來支援多租戶(multi-tenant)OEM架構。此舉允許工廠安全性系統2332在不同程式設計器中針對不同OEM程式化及配給不同的可程式化設備128集合。
可以各種方式配置工廠安全性系統2332。例如,可使用圖1的安全性主系統104、圖1的安全性控制器114、圖2的程式設計處理器202、圖1的第一安全性模組116、圖1的第二安全性模組118、圖1的第n安全性模組120或其組合來實施工廠安全性系統2332。可使用MSP系統2302中的一或多個安全性元件以集中式或分佈式的方式實施工廠安全性系統2332。
工廠安全性系統2332可提供高安全性加密服務,包括金鑰對偶產生、加密、解密、憑證管理、安全儲存、安全執行及其他類似的安全性處理特徵。工廠安全性系統2332亦可支援安全開發、安全統治、資料及代碼的安全部署、安全配給、安全程式設計及安全更新。
工廠安全性系統2332可基於設備憑證、部署管理及版本化、數位生命週期管理及應用程式管理來執行設備認證。工廠安全性系統2332可提供對稱式加密、散列功能、資料封閉(data encapsulation)、數位簽章、金鑰協議及運輸、金鑰管理及使用者存取控制。
工廠安全性系統2332可包括用於認證工廠安全性系統2332的身分的工廠安全性系統憑證2333。工廠安全性系統憑證2333可用來簽署從OEM開發場所2340及OEM管理系統2324向工廠管理系統2330及工廠安全性系統2332傳輸的資訊。工廠安全性系統2332可包括工廠安全性資料加密金鑰2380及工廠安全性資料認證金鑰2382。此等金鑰可用來安全地加密、解密、簽署及認證安全資訊。
MSP系統2302可包括工廠場所2342處的主控系統2336。主控系統2336是用於控制程式設計專案2344的執行及管理程式設計器112及工廠安全性系統2332之間的通訊的電腦系統。
可以各種方式實施主控系統2336。例如,可使用安全性控制器114、程式設計處理器202或耦接到安全程式設計系統100的另一類似的計算系統來實施主控系統2336。主控系統2336可耦接到工廠安全性系統2332、程式設計器112、工廠管理系統2330或其他類似的系統。
MSP系統2302可包括用於程式化可程式化設備128的程式設計器112。程式設計器112可接收空白或經部分程式化的設備的集合,且以來自程式設計專案2344的資訊安全地程式化可程式化設備128。
程式設計器112可創建用於程式化可程式化設備128的串列資料列表(serial data list)2364。串列資料列表2364為要程式化到可程式化設備128中的設備特定的資料的列表。此可包括韌體影像2314、OEM設備憑證2346、代碼、資料或其他資訊。串列資料列表2364可基於個別的設備資訊(例如序號、設備標識、資料憑證或類似的設備特定參數)而有所不同。
MSP系統2302可包括設備憑證以保護可程式化設備128。設備憑證可包括矽供應商設備憑證2326、原始配備製造商設備憑證2346(OEM設備憑證2346)或其他設備憑證。設備憑證可包括關於可程式化設備128的資訊,包括公開金鑰、圖3的設備標識302,矽供應商識別碼2356、OEM識別碼2366或其他類似的資訊。
矽供應商設備憑證2326是安全地界定安全構件(例如圖1的可程式化設備128或受信任設備130)中的一者的身分的資料構件的集合。矽供應商設備憑證2326可包括圖3的設備標識302、矽供應商公開金鑰2354及/或其他安全性資訊。可使用矽供應商金鑰對偶2360的矽供應商公開金鑰2354來解密由矽供應商私密金鑰2358所加密的資訊。
可在安全構件被傳輸到其他製造商或使用者之前由矽供應商或製造商將矽供應商設備憑證2326程式化到安全構件的安全儲存單元中。矽供應商設備憑證2326可儲存在單次寫入安全儲存單元中,在此單次寫入安全儲存單元處,可將額外的資訊添加到矽供應商設備憑證2326,但不能抹除或更改現存的資訊。可在不需要進一步改變時鎖定安全儲存單元的一部分。安全儲存單元可包括一或更多個資料構件,例如多個設備憑證及其他相關的安全性資料。
可以各種方式實施矽供應商設備憑證2326。例如,可使用圖5的製造標誌510、圖3的安全性憑證306、圖3的安全性演算法304、圖5的產品標誌508、圖5的操作標誌514、圖5的輸入信任根504、圖4的受信任憑證402或另一類似的資料構件來實施矽供應商設備憑證2326。
MSP系統2302可包括用於即時提供設備層級的程式設計統計法的設備資料追蹤系統2334。設備資料追蹤系統2334可針對本端工廠中的安全程式設計系統100或針對遠端配給的設備追蹤設備層級資訊。設備資料追蹤系統2334可針對由MSP系統2302中的程式設計器112所配置的可程式化設備128中的各者追蹤設備層級資訊。設備資料追蹤系統2334可追蹤例如為矽供應商設備憑證2326、圖8的系統標識814、設備標識302或已程式化到設備中的其他資料構件的資料。設備資料追蹤系統2334可追蹤設備狀態,包括有效性狀態、配置狀態、複製狀態(duplicate status)或其他設備層級的狀態。
MSP系統2302可包括設備配給服務2338。設備配給服務2338是用於在網際網路上配給可程式化設備128的系統。設備配給服務2338可為可安全地向現場中的可程式化設備128供應配給資訊的硬體及軟體的組合。設備配給服務2338可分佈安全性資訊、資料更新、軟體更新及設備的繼續進行的安全操作所需要的其他安全性及操作資訊。
MSP系統2302可包括韌體更新服務2312。韌體更新服務2312是用於在網際網路(例如OEM雲端2328)上更新可程式化設備128的韌體的系統。韌體更新服務2312可安全地向具有可程式化設備128中的一或更多者的系統供應韌體更新2316及以新的韌體更新可程式化設備128。韌體更新2316為用來更新可程式化設備128中的韌體的軟體及資料封包。韌體更新服務2312可為具有安全性軟體及硬體的系統的一部分,此部分可部署韌體更新2316及相關聯的安全性資訊以確保可程式化設備128被安全地更新。
可以各種方式操作MSP系統2302。在一說明性實例中,可基於安全構件使用案例2370來操作MSP系統2302。安全構件使用案例2370可描述使用MSP系統2302以安全地程式化可程式化設備128的一個方式,其中可程式化設備128已經被配置為具有韌體且具有在矽供應商設施處預先安裝的矽供應商設備憑證2326。
安全構件使用案例2370可包括兩個主要步驟。在步驟1中,從可程式化設備128中的一者抽取矽供應商設備憑證2326,且認證此設備。在步驟2中,基於經認證的設備的矽供應商設備憑證2326創建OEM設備憑證2346。接著將OEM設備憑證2346程式化到設備中。
在此使用案例中,基於HSM的安全性系統(例如工廠安全性系統2332)可被整合為安全程式設計系統100(例如用於將安全微控制器單元程式化為具有整合式安全性區域的系統)的一部分。整合式安全性區域可為記憶體可被單次寫入且不能改變的受保護區域。此舉允許不可更改地儲存安全性資料(例如金鑰、代碼或憑證)。
系統可包括OEM管理系統2324、工廠管理系統2330、工作創建及工作運行系統及設備資料追蹤系統2334以管理可程式化設備128的狀態資料。可以各種方式實施各種系統。例如,OEM管理系統2324、工廠管理系統2330、工作創建及工作運行系統及設備資料追蹤系統2334可全被執行為主控系統2336上的軟體。在另一實例中,系統可各個運行在專用的硬體上。
在此安全性模型中,工廠場所2342可充當OEM使用者的代理伺服器(proxy),且可執行OEM管理系統2324的機能。此舉有效地暗示著,OEM使用者2368隱含地托付工廠場所2342提供OEM憑證金鑰材料2304及OEM憑證2351且針對可程式化設備128設定生產計數2348。因為此活動是在圖1的程式設計單元110的主控系統2336上完成的,工作設置、OEM憑證金鑰材料2304的產生及安全程式設計系統100的配置是由權責人員在工廠場所2342內實體上安全的位置完成的。
某些實施方式可聚焦在將OEM設備憑證2346配給到被配置為安全構件的可程式化設備128上的行為上。然而,瞭解到由OEM系統保全OEM憑證金鑰材料2304流及安全更新生產計數2348的行為是由實體安全性手段及安全資料通道所保護的。
來自OEM開發場所2340的OEM資料從OEM管理系統2324一路到工廠安全性系統2332是安全的且被加密的,因為此資料被加密且聯系到(tie to)工廠安全性系統2332中的特定一個工廠安全性系統。例如,可使用工廠安全性系統憑證2333來加密程式設計專案2344,此工廠安全性系統憑證僅可由工廠安全性系統2332中的所要的一個工廠安全性系統來解密。
在另一實例中,OEM憑證金鑰材料2304(包括OEM設備憑證簽章金鑰2347)的傳輸被安全地完成,因為此材料在傳輸期間被加密。OEM設備憑證簽章金鑰2347可包括私密金鑰元件。
在一說明性實例中,因為可程式化設備128的私密金鑰152永不離開設備,及將OEM設備憑證簽章金鑰2347進口到OEM管理系統2324中的行為被安全地完成。此舉可減少實體安全性的需要,因為資料被加密了。
在另一說明性實例中,可基於微控制器單元使用案例2372來操作MSP系統2302,其中MSP系統2302用於配給圖1的可程式化設備128及受信任設備130(例如安全微控制器單元)。安全微控制器單元可包括安全處理及安全儲存設施。
MCU使用案例2372可包括兩個主要步驟。在第一步驟中,OEM安全性開機載入器2306可被程式化到可程式化設備128中。隨後,可使用OEM安全性開機載入器2306來將可程式化設備128開機以創建用於可程式化設備128的設備認證金鑰對偶2374及設備解密金鑰對偶2376。接著,可使用兩個金鑰對偶的一部分建構、程式化及簽署OEM設備憑證2346。例如,系統可包括具有簽章金鑰及驗證金鑰的認證金鑰對偶、具有加密金鑰及解密金鑰的加密金鑰對偶或類似的金鑰對偶結構。金鑰對偶的公開金鑰及私密金鑰彼此鏈接。
在第二步驟中,MSP系統2302可讀取矽供應商設備憑證2326及認證可程式化設備128。可以來自矽供應商設備憑證2326的設備解密金鑰加密韌體解密金鑰2322。經加密的韌體及經加密的韌體解密金鑰2322可被程式化在可程式化設備128上。
OEM安全性開機載入器2306、OEM韌體開發2308、OEM統治工具2310、OEM管理系統2324及OEM憑證金鑰材料2304的產生可全在OEM開發場所2340處執行。整體專案定義及生產計數2348的判定是由OEM使用者2368控制的。
OEM軟體執行環境可被主控在OEM開發場所2340處的電腦上。所有OEM信任根被安全地從OEM開發場所2340運輸到工廠場所2342。工廠管理系統2330、工廠安全性系統2332及設備資料追蹤系統2334可在主控系統2336上在工廠場所2342處執行。
在一實施例中,因為第一步驟需要安全地配給可程式化設備128,其必須在安全的設施(例如受OEM信任的工廠、矽供應商工廠、OEM工廠或程式設計中心)中執行。可接著在具有較低級別的安全性的設施(例如不受信任的工廠、契約製造商、第三方合伙者或類似類型的設施)處執行步驟2。
在此安全性模型中,OEM信任根及程式設計專案2344是在OEM開發場所2340處界定的且被分佈到工廠場所2342。重要的是,OEM使用者應管理他們自己的信任根以改良OEM產品的供應鏈的安全性。
在一說明性實例中,MCU使用案例2372需要實體安全性,因為可程式化設備128的圖1的金鑰對偶150是在工廠安全性系統2332中產生的且可能潛在地在工廠場所2342處暴露。可程式化設備128及程式設計器112之間的實體連接是明文的,所以擁有對於工廠場所2342的系統的實體存取權的某人可窺探及竊取重要的資訊。因此,應實施實體安全性以保護安全性資訊。
在MCU使用案例2372的一替代實例中,可程式化設備128可為空白的且不被預先程式化為具有矽供應商設備憑證2326。在此情況下,OEM設備憑證2346可用於認證。此外,可使用來自OEM設備憑證2346的公開解密金鑰(例如OEM公開金鑰2362)來加密韌體解密金鑰2322。
在另一說明性實例中,系統可藉由向可程式化設備128(例如安全微控制器)發送已由公開金鑰加密的識別符記及藉由以私密金鑰解密識別符記驗證識別符記,來實施詰問回應認證協定(challenge response authentication protocol)。公開金鑰可為用於可程式化設備的設備公開金鑰,而私密金鑰可為用於可程式化設備的設備私密金鑰。實施詰問回應認證可藉由驗證內容的發送方的身分來改良安全性。
圖24繪示安全構件使用案例2370的實例。安全構件使用案例2370描述用於安全地配置安全構件(例如圖1的可程式化設備128)的程序。圖23的MSP系統2302可依據安全構件使用案例2370安全地部署及配給圖1的可程式化設備128中的各者。
在安全構件使用案例2370中,可在不同的場所實例化、傳輸及管理安全構件。此等場所可包括不同類型的位置,例如矽製造商2404、OEM位置2406、程式設計中心2408、程式設計器位置2410及設備位置2412。場所中的各者表示某個類型的安全程式設計行為相關的行動可能發生的位置。進一步地,此使用案例可包括嵌在圖1的程式設計器112及設備位置2412的資料及行動。
安全構件使用案例2370可包括三個不同的事件序列,各個事件序列用於執行不同的安全活動。在第一序列2414中,圖23的MSP系統2302可使用圖23的OEM管理系統2324來初始化圖23的工廠安全性系統2332。此舉可在圖23的OEM開發場所2340、圖23的工廠場所2342或另一類似位置處執行。例如,可在矽供應商工廠處將安全構件程式化為具有矽供應商設備憑證。
MSP系統2302亦可在工廠場所2342、程式設計中心2408或另一類似位置處初始化圖23的工廠管理系統2330。工廠管理系統2330可被更新為具有目前計數2378、圖23的矽供應商公開金鑰2354、圖23的OEM私密金鑰2352及圖23的OEM設備憑證樣板2350。工廠管理系統2330可向工廠安全性系統2332遞送資訊以供進行安全處理。
在第二序列2416中,在矽供應商(SV)工廠處將安全構件程式化為具有圖23的矽供應商設備憑證2326。例如,可使用OEM管理系統2324及工廠管理系統將工廠安全性系統初始化為具有計數、矽供應商公開金鑰、OEM簽章金鑰及OEM設備憑證。
在第三序列2418中,MSP系統2302可使用在第二序列2416中預先安裝的矽供應商設備憑證2326來密碼術地認證設備(例如圖1的可程式化設備128或受信任設備130)中的各者。圖23的OEM設備憑證2346可被建構及程式化到可程式化設備128中。
可藉由重複使用來自矽供應商設備憑證2326的設備身分金鑰對偶的公開金鑰部分(例如矽供應商公開金鑰2354)來建構OEM設備憑證2346。因此,矽供應商公開金鑰2354可用來計算OEM設備憑證2346,所以兩個憑證都是使用相同的憑證來證明的。或者,可使用不同的金鑰對偶來獨立於矽供應商金鑰對偶表示OEM身分。此舉可由工廠安全性系統2332執行或在安全構件本身上執行。
在第二序列2416中,在矽製造商2404處執行步驟2420。矽製造商2404可為創建未處理的(raw)安全構件的公司。針對安全構件中的各者(例如可程式化設備128或受信任設備130)創建圖23的矽供應商設備憑證2326。矽供應商設備憑證2326可包括關於安全構件中的各者的獨一資訊,例如圖3的設備標識302、序號、產品類型、製造日期或類似的設備資訊。
亦在矽製造商2404處執行步驟2422。以具有圖23的矽供應商識別碼2356的矽製造的圖23的矽供應商私密金鑰2358來簽署矽供應商設備憑證2326中的各者。簽署矽供應商設備憑證2326的行為加密了憑證的資料。僅可以矽供應商公開金鑰2354解密資料。
亦在矽製造商2404處執行步驟2424。可程式化設備128中的各者被程式化為具有以矽供應商私密金鑰2358簽署的矽供應商設備憑證2326。由矽供應商私密金鑰2358所簽署的矽供應商設備憑證2326顯示設備是由矽供應商所核准或提供的。以矽供應商公開金鑰2354成功解密矽供應商設備憑證2326的行為可認證可程式化設備128是來自簽署此憑證的矽供應商的。
第二序列2416可以矽供應商設備憑證2326中已進一步以矽供應商私密金鑰2358簽署的獨一及個別的實例來獨一地標記可程式化設備128中的各者。此舉提供的是,可使用矽供應商公開金鑰2354來解碼矽供應商設備憑證2326以驗證矽供應商設備憑證2326是由具有矽供應商識別碼2356的矽供應商所提供的。此舉允許工廠或其他設備使用者判定可程式化設備128的真偽。
第一序列2414是在矽製造商2404、OEM位置2406及程式設計中心2408處執行的。第一序列2414可配置程式設計中心2408處的程式設計元件以供進行安全程式設計。
在步驟2430中,矽供應商可產生具有矽供應商公開金鑰2354及矽供應商私密金鑰2358的矽供應商金鑰對偶2360。此可為具有矽供應商私密金鑰2358及矽供應商公開金鑰2354的矽供應商金鑰對偶2360。
在步驟2432中,可將矽供應商公開金鑰2354傳輸到OEM使用者2406。可明文地及未加密地發送矽供應商公開金鑰2354。例如,可在網路鏈路上發送矽供應商公開金鑰2354。
在步驟2434中,OEM使用者2406可以程式設計中心2408的圖23的工廠管理系統2330及圖23的工廠安全性系統2332註冊圖23的OEM憑證2351。OEM憑證2351可包括圖23的OEM公開金鑰2362以解密及認證以OEM私密金鑰2362加密或簽署的資訊。在程式設計中心2408處註冊OEM憑證的行為可被安全地執行以將用於OEM使用者2406的安全性資訊提供給程式設計中心2408。可執行註冊行為以將OEM證書引入到工廠管理系統2330及工廠安全性系統2332中及識別此證書。
在步驟2435中,工廠管理系統2330及工廠安全性系統2332可在安全的交換程序中向OEM管理系統2324發送工廠安全性資料加密金鑰2380。工廠安全性資料加密金鑰2380可用來加密從OEM使用者2406向工廠管理系統2330及工廠安全性系統2332所發送的資訊以支援資訊的安全傳輸。工廠安全性系統2332可向OEM管理系統2324發送工廠安全性系統資料加密金鑰。
在步驟2436中,OEM使用者2406可創建具有SV設備認證公開金鑰、OEM設備憑證簽章金鑰及OEM設備憑證樣板2350的封包。OEM設備憑證簽章金鑰可能是在OEM管理系統2324中創建的或是從外部安全性系統(例如外部HSM)進口的。
可在OEM管理系統2324中使用工廠安全性資料加密金鑰2380來加密此封包,且接著向工廠管理系統2330及工廠安全性系統2332發送此封包。因為已使用工廠安全性系統2332的工廠安全性資料加密金鑰2380來加密此封包,僅可使用工廠安全性系統2332的工廠安全性資料認證金鑰2382來解密此封包。
OEM設備憑證樣板2350是用於OEM設備憑證2346的樣板,此樣板包括具有圖3的設備標識320且接著由OEM私用簽章金鑰所簽署的設備的公開金鑰154。OEM公開金鑰2362是聯系到OEM使用者2406的密碼術值。OEM公開金鑰2362具有各種格式。
例如,金鑰可被格式化為X.509公開金鑰憑證或另一公開金鑰格式。X.509標準將公開金鑰憑證界定為顯示公開金鑰的所有權。OEM公開金鑰2362可針對公開金鑰提供驗證資訊。OEM公開金鑰2362可在程式設計中心2408中用於設備證明。
在步驟2438中,OEM使用者2406可向程式設計中心2408發送具有矽供應商公開金鑰2354、OEM私密金鑰2352及OEM設備憑證樣板2350的封包。封包中的資訊可接著用來簽署可程式化設備128。
在程式設計中心2408或工廠場所2342處的程式設計器112及可程式化設備128上執行第三序列2418。第三序列2418可認證安全構件、以OEM資訊配給及密碼術地簽署安全構件及驗證經配給的設備是經授權的。例如,系統可密碼術地認證安全構件設備,此安全構件設備已經具有來自第一序列的經程式化的矽供應商設備憑證。接著,系統可建構新的OEM設備憑證及將新的OEM設備憑證程式化到設備中。可重複使用來自矽供應商憑證的設備身分金鑰對偶來創建OEM設備憑證。相同的金鑰對偶被用於兩個憑證。或者,可產生新的金鑰對偶來獨立於矽供應商金鑰對偶表示OEM身分。此舉可在工廠安全性系統中或設備本身中執行。
在步驟2440中,程式設計器112可讀取要程式化的可程式化設備128中的各者的矽供應商設備憑證2326。從可程式化設備128向程式設計器112明文傳輸矽供應商設備憑證2326。
在步驟2442中,可從程式設計器112向工廠管理系統2330及工廠安全性系統2332傳輸矽供應商設備憑證2326。工廠管理系統2330控制程式設計操作,而工廠安全性系統2332將管理設備及系統安全性。
在步驟2444中,在程式設計中心2408的工廠管理系統2330處接收矽供應商設備憑證2326。程式設計器112位在圖23的工廠場所2342。
在步驟2446中,可使用矽供應商公開金鑰2354來認證可程式化設備128。此步驟確認的是,要程式化的設備是由具有矽供應商識別碼2356的矽供應商所提供的。在序列1中以矽供應商私密金鑰2358簽署的矽供應商設備憑證2326是使用矽供應商公開金鑰2354來解密時認證可程式化設備128。若可使用矽供應商公開金鑰2354來存取矽供應商設備憑證2326中的資訊,則設備被認證。
在步驟2448中,基於OEM設備憑證樣板2350來格式化OEM設備憑證2346。接著,以OEM私密金鑰2352簽署OEM設備憑證2346。
在一說明性實例中,可由程式設計器2410針對可程式化設備2412產生設備憑證(例如OEM設備憑證2346)。可由OEM使用程式設計器2410來創建OEM設備憑證2346以針對是被動的可程式化設備128創建設備憑證。可程式化設備的被動實例可包括不具控制器或處理器的記憶設備。此類設備可外部地被程式化為具有設備憑證以提供身分及安全性支援。
在步驟2450中,向程式設計器112傳輸OEM設備憑證2346。因為已以OEM私密金鑰2352加密及簽署OEM設備憑證2346,可明文傳輸此OEM設備憑證。
在步驟2452中,程式設計器112可建立串列資料列表2364。串列資料列表2364為要程式化到可程式化設備128中的設備特定的資料的列表。此可包括序號、設備標識、OEM設備憑證2346、製造標誌、代碼、資料、標誌、mac位址、設備特定的金鑰或其他的資訊。
在步驟2454中,包括在串列資料列表2364上的設備特定的資料可由程式設計器112程式化到可程式化設備128中。串列資料列表2364可指示設備特定的資料應儲存在何處。例如,OEM設備憑證2346可儲存在安全儲存單元中。
在步驟2456中,由程式設計器112從安全構件(例如可程式化設備128或受信任設備130)重新抽取及擷取矽供應商設備憑證2326及OEM設備憑證2346。即使矽供應商設備憑證2326及OEM設備憑證2346的複本可能已經存在於工廠安全性系統2332中或系統中的他處,亦重新抽取設備憑證以驗證可程式化設備128及偵測潛在的複製生產運行程序、未授權的複製行為或其他不正確的活動。驗證步驟可用來確保,已無錯誤地程式化了設備憑證。此可包括程式設計失敗、設備損傷、位元錯誤或類似的錯誤。
在步驟2458中,向工廠安全性系統2332發送矽供應商設備憑證2326及OEM設備憑證2346以供進行驗證及進一步的使用。經擷取的設備憑證可用於第二輪認證以驗證程式化了可程式化設備128中的正確的可程式化設備。此舉可用來防止可程式化設備128的未授權複製及防止偽造設備。
在步驟2460中,驗證矽供應商設備憑證2326及OEM設備憑證2346以確定可程式化設備128是正確的。此舉可包括使用矽供應商公開金鑰2354來驗證矽供應商設備憑證2326及以OEM公開金鑰2362驗證OEM設備憑證2346。設備憑證的驗證涉及將設備憑證中的公開金鑰與矽供應商憑證中的公開金鑰進行比較以確保它們匹配。此外,可經由憑證驗證工具(未圖示)來處理憑證以確保憑證的格式是有效的。亦使用工廠安全性系統2332來驗證憑證上的簽章。
在步驟2462中,將驗證結果發送回到程式設計器112。在步驟2464中,程式設計器112可處理完成的設備。若可程式化設備128未被驗證,則程式設計器112可以指示不良設備的驗證狀態識別設備且向不良設備插座(未圖示)傳輸此等設備以供拋棄。若可程式化設備128被正確地驗證了,則可程式化設備128可被更新為具有經驗證的狀態值且傳遞作為經驗證的元件。或者,程式設計器112可產生驗證報告以在生產運行程序中將可程式化設備128中的各者的設備標識及驗證狀態記入日誌。可稍後移除或毀滅無效的可程式化設備128。 3.0. 功能概述
圖25繪示依據一或更多個實施例的用於圖1的可程式化設備128的安全配給程序流程2502的實例。可在各種系統(包括例如為上述的系統100的系統)中執行安全配給程序流程2502的各種構件。在一實施例中,與下文所述的功能方塊結合描述的程序中的各者可使用任何一般用途電腦或特殊用途電腦中的一或更多個電腦程式、其他軟體構件及/或數位邏輯來實施,此等一或更多個電腦程式、其他軟體構件及/或數位邏輯執行涉及與電腦記憶體的實體狀態交互作用及變換此實體狀態的資料擷取、變換及儲存操作。
安全配給程序流程2502負責安全地程式化、配置、配給及操作可程式化設備128。可程式化設備128可被程式化為具有由安全程式設計系統100所提供的圖14的目標酬載1420。安全配給程序流程2502可負責配置可程式化設備128、配置可程式化設備128、配給可程式化設備128及驗證可程式化設備128。
安全配給程序流程2502可具有各種配置。例如,安全配給程序流程2502可包括配置元件模組2504、配置受信任設備模組2506、配給模組2508及設備操作模組2510。
配置元件模組2504可實施元件配置程序以如此文件中先前所述地配置可程式化設備128(包括圖1的資料設備132)。配置元件模組2504可接收圖14的目標酬載1420及加密之以形成圖14的經加密酬載1422及使用圖1的程式設計器112來將經加密酬載1422程式化到可程式化設備128中。加密程序可包括從可程式化設備128抽取圖5的輸入信任根504及將輸入信任根504用作加密程序的一部分以允許可程式化設備128使僅在可程式化設備128中的一者可取得輸入信任根504時解密經加密酬載1422。
配置受信任設備模組2506可實施受信任設備配置程序以配置受信任設備130,此程序包括將其他可程式化設備128安裝到受信任設備130中、將安全性構件與可程式化設備128及受信任設備130相關聯及將圖14的經加密酬載1422傳輸到可程式化設備128中。受信任設備130可包括用於各式各樣的電子產品(包括智慧型手機、消費性電子設備、工業電子設備、聯網配備、電腦及其他類似的設備)的電路板。
配給模組2508可藉由向受信任設備130傳輸安全性資料及代碼來針對受信任設備130實施配給程序。配給程序可發生在製造階段期間或之後。配給模組2508可以各種方式傳輸資訊。例如,可在網路鏈路上、透過記憶卡、使用無線網路鏈路空中地或以其組合的方式傳輸資訊。
設備操作模組2510可實施各種操作程序以使用由先前的模組所傳輸的資訊來操作受信任設備130。設備操作模組2510可實施先前所述的使用案例。
設備操作模組2510可實施如圖16中所示的安全開機使用案例中所述的安全開機程序。安全開機程序可使用圖16的第一階開機載入器1610、圖16的第二階開機載入器1616、圖16的作業系統1618及例如為圖16的第一應用程式1620、圖16的第二應用程式1622、圖16的第三應用程式1624及圖16的第n應用程式1626的應用程式,來以安全的方式將受信任設備130開機。
設備操作模組2510可實施如圖17中所示的設備配給使用案例中所述的設備配給程序。設備操作模組2510可使用圖17的配給代理器1704來接收配給資訊及將資訊部署到受信任設備130。
設備操作模組2510可實施如圖18中所示的竄改偵測使用案例中所述的竄改偵測程序。竄改偵測程序可使用圖18的監控代理器1804來偵測儲存在受信任設備130中的代碼及資料中的改變。
設備操作模組2510可實施如圖19中所示的物聯網使用案例中所述的物聯網程序。物聯網使用案例可促進圖19的物聯網設備1912及後台系統之間的通訊。
設備操作模組2510可實施如圖20的安全性及資料程式設計使用案例2002中所述的安全性及資料程式設計程序。安全性及資料程式設計程序可基於圖20的設備種子2004及圖20的根金鑰2010來產生安全性構件。安全性構件可包括安全性核心、安全性開機載入器、圖20的設備憑證2014、圖20的公開設備簽署金鑰2006、圖20的資料加密公開金鑰2008及其他類似的安全性值。
圖21的設備外種子使用案例2102可實施如圖21中所示的設備外種子使用案例2102中所述的設備外種子及憑證產生程序。設備外及憑證產生程序可將安全性構件程式化到受信任設備130中及基於設備憑證及模組列表來驗證安裝。
第二設備外種子使用案例2102可實施如圖21中所示的第二設備外種子使用案例2102中所述的第二設備外種子及憑證產生程序。第二設備外及憑證產生程序可將安全性構件程式化到受信任設備130中及基於設備憑證及模組列表來驗證安裝。
第二設備外種子使用案例2102可實施如圖21中所示的第二設備外種子使用案例2102中所述的第二設備外種子及憑證產生程序。第二設備外及憑證產生程序可將安全性構件程式化到受信任設備130中及基於設備憑證及模組列表來驗證安裝。
例如,配給模組2508可將可程式化設備128中的各者(例如資料設備132)程式化為具有經加密酬載1422的檔案。配給模組2508可包括用於配置各個不同設備類型的可程式化設備128的特定資訊。資料設備132可使用圖2的設備轉接器208來耦接到程式設計器112。
在另一實例中,配給模組2508可配給可程式化設備128中的各者。瞭解到,可程式化設備128可包括受信任設備130、安全物件、智慧型設備。受信任設備130可包括智慧型手機、電路板、安全性設備或類似的設備。受信任設備130可直接以設備轉接器208、透過資料鏈路(例如有線或無線連接)或其組合來耦接到程式設計器112。
配給是將內容安裝在可程式化設備128上的行為。例如,配給行為可包括將韌體代碼、軟體、資料、影像、視訊或其他內容複製到可程式化設備128上。配給行為可包括藉由在部署之前認證內容、藉由將內容儲存在安全儲存單元326中、加密可程式化設備128上的內容、將內容儲存在單次寫入儲存區域中、將內容防寫或使用其他安全儲存技術,來安全地將內容安裝到可程式化設備128上。
在一說明性實例中,安全程式設計系統100可基於用來建立系統的元件來建立可程式化設備128中的各者的身分。對於受信任設備130中的各者(例如智慧型手機或電路板)而言,圖3的設備標識302可包括用於受信任設備130內的元件中的各者的序號或其他識別碼。可程式化設備128的身分可跨越硬體、軟體及/或韌體元件。
因為設備標識302可包括圖5的OEM標誌506,標識可跨所有製造商及供應商為獨一的。此外,因為可在製造時間由安全程式設計系統100加密設備標識302,可程式化設備128的身分可使用設備標識302及圖1的安全性金鑰106來安全地儲存在設備之外及設備上。
安全程式設計系統100的另一優點是,圖8的系統標識814可用來提供較高級別的設備安全性。藉由將可程式化設備128編碼為具有經加密版本的系統標識814,可程式化設備128對於可程式化設備128中的各者的生命週期中的其餘部分而言具有較高級別的信任及可追溯性。
安全程式設計系統100的又另一額外優點是,製造供應鏈是更安全的,因為系統標識814的使用提供了矽設備層級下的信任根。系統標識814被程式化到可程式化設備128中,且是基於及包括獨一的製造資料的。系統標識814允許偵測受危害的韌體,因為此韌體會不具有可以正確加密形式取得的系統標識814。
方塊圖僅圖示安全程式設計的許多可能流程中的一者。其他流程可在不同的佈置中包括較少、額外或不同的構件。例如,在某些實施例中,可忽略安全性模組以及僅由所忽略的構件所依賴的任何其他構件。作為另一實例,在一實施例中,流程可更包括用於計算散列值以判定儲存在可程式化設備128上的內容的完整性的散列產生模組。
圖26繪示安全程式設計程序流程2602。安全程式設計程序流程2602可將可程式化設備128配置為具有安全性核心2620、安全地安裝目標酬載914及接著驗證可程式化設備128中的內容。可在各種系統(包括例如為上述的系統100的系統)中執行安全程式設計程序流程2602的各種構件。在一實施例中,與下文所述的功能方塊結合描述的程序中的各者可使用任何一般用途電腦或特殊用途電腦中的一或更多個電腦程式、其他軟體構件及/或數位邏輯來實施,此等一或更多個電腦程式、其他軟體構件及/或數位邏輯執行涉及與電腦記憶體的實體狀態交互作用及變換此實體狀態的資料擷取、變換及儲存操作。
安全程式設計程序流程2602可將可程式化設備128的集合加載到程式設計器中、驗證設備、在可程式化設備128的安全儲存單元326中安全地安裝及驗證安全性核心2620、將可程式化設備128配給為具有目標酬載1420及驗證此可程式化設備及針對經配置的設備產生驗證報告2624。儘管本說明書為了明確起見指的是可程式化設備128的程式化,但瞭解到此用語可包括受信任設備130、個別的晶片及安全系統,例如智慧型手機、設備控制器、消費者設備、工業設備及其他系統。
安全程式設計程序流程2602可具有各種配置。例如,安全程式設計程序流程2602可包括接收工作控制封包模組2604、認證設備模組2606、驗證安全性核心模組2608、配給設備模組2610、產生驗證狀態模組2612及產生報告模組2614。
接收工作控制封包模組2604可接收界定要在可程式化設備128上執行的操作的參數的工作控制封包1418。可從OEM 2406、已知的第三方、程式設計中心2408處的使用者或其他受信任的來源提供工作控制封包1418。可包括程式設計專案2344的工作控制封包1418驅動設備程式設計程序。
工作控制封包1418可被配置為授權程式化可程式化設備128的集合的行為。可由經授權的實體(例如製造商、OEM或負責授權生產設備的其他實體)創建及授權工作控制封包1418。例如,可由消費者產品製造商創建工作控制封包1418,此製造商授權生產及程式化包含用來操作它們最新的產品的軟體的設備的行為。限制工作控制封包1418的行為允許製造商防止未授權地製造它們的產品,例如智慧型手機或其他智慧型設備。
工作控制封包1418可被配置為將生產行為限制於特定的程式設計器、特定的位置或特定的安全程式設計系統。例如,OEM使用者可使用OEM開發實驗室1410來創建工作控制封包1418。工作控制封包1418可包括目標酬載1420及具有安全性開機載入器2318的安全性核心2620。
可完全或部分加密工作控制封包1418以保護內容。OEM可產生金鑰對偶150中的一或更多者以供保護工作控制封包1418及目標酬載1420。在一個實例中,可使用具有憑證管理後台1416的OEM/CA公開金鑰基礎建設系統1414來產生金鑰對偶150。此舉可包括針對工作控制封包、目標酬載1420、可程式化設備128、OEM及系統中的其他安全性實體產生金鑰對偶150。
工作控制封包1418及目標酬載1420可被加密及接著發送到安全程式設計環境108。可安全地向安全程式設計環境108的硬體安全性模組1404傳輸金鑰對偶150。安全程式設計環境108是具有適當的安全性模組的安全程式設計系統100的特定配置。瞭解到,安全程式設計環境108可包括與工廠管理系統2330建立介面以將資訊部署到正確的系統。
可由具有程式設計單元110、程式設計器112及安全性控制器114的安全程式設計系統100安全地接收工作控制封包1418。工作控制封包1418可包括關於要程式化的設備的資訊,包括安全性核心2620、目標酬載1420、安全性金鑰、生產計數2348及關於製造工作的其他資訊。安全程式設計系統100可位在程式設計中心或其他製造位置中。
可以各種方式執行安全接收行為。例如,可從經授權的使用者以經加密格式向安全程式設計系統100發送工作控制封包1418。可使用硬體安全性模組來將工作控制封包1418的一部分或整體加密成經加密格式,以使用與跟安全程式設計系統100相關的系統、使用者、實體或位置中的一或更多者相關聯的公開金鑰來加密此封包。
可由安全程式設計系統100使用與安全程式設計系統100相關聯的私密金鑰(例如程式設計器私密金鑰、OEM私密金鑰、目標製造設施的私密金鑰或其他類似的加密金鑰)來解密工作控制封包1418。安全程式設計系統100可使用安全性控制器114(例如硬體安全性模組1404)來使用強化的硬體及軟體特徵執行密碼術功能以改良效能。
在另一實例中,可藉由以受保護的方式向安全程式設計系統100實體供應內容來執行安全接收行為。此舉可包括在受保護的實體媒體上供應內容、使用專用網路鏈路或其他實體安全性技術。
安全性核心2620是可部署到安全儲存單元326且可用來安全地操作可程式化設備128的設備特定的軟體或韌體模組。可以不同方式實施安全性核心2620,例如安全性開機載入器、第一開機載入器、安全作業系統或其他安全系統。可在可程式化設備128上在安全執行單元324中執行安全性核心2620。
工作控制封包1418可包括安全性核心2620及目標酬載1420作為用於特定OEM、工廠、使用者、程式設計器112或安全程式設計系統100的目標經加密內容。例如,可以使用特定工廠位置處的程式設計器112的公開金鑰來加密的格式來將安全性核心2620包括在工作控制封包1418中。一旦由安全程式設計系統100接收工作控制封包1418,可抽取安全性核心2620及使用程式設計器112的內部私密金鑰來解密此安全性核心。對於程式設計器112中的各個特定的一個程式設計器而言,私密金鑰可為不同的,以為了安全性理由而允許對於特定單元進行目標部署。加密安全性核心2620及以特定系統或使用者為目標的行為防止任何其他系統使用工作控制封包1418中的安全性核心2620。此舉可控制內容的未授權製造或分佈。
在一說明性實例中,可在可程式化設備128被開機、初始化或通電時執行安全性核心2620。系統被配置為使得在系統開動時,只有安全性核心2620可被執行。可在安全模式下執行安全性核心2620以防止竄改或外來干擾。
目標酬載1420包括要安裝在可程式化設備128中的內容。例如,目標酬載1420可包括韌體影像、安全性資訊、資料及其他內容。目標酬載1420可包括被加密的、以安全性金鑰簽署的、未加密的或經部分加密的內容。
一旦已由安全程式設計系統100接收工作控制封包1418,此工作控制封包可由程式設計單元110及安全性控制器114處理。例如,安全性控制器114可解密目標酬載1420的經加密部分、驗證數位簽章及產生額外的金鑰及設備憑證。
在另一實例中,程式設計單元110可將目標酬載1420的內容與安全性核心2620歸併以形成經結合的模組以供安全執行。或者,程式設計單元110及安全性控制器114可產生定製的資料以支援可程式化設備128的安全操作。
工作控制封包1418可包括用來將工作控制封包1418中的資訊的執行限制於特定OEM、契約製造商、工廠、程式設計中心、程式設計系統或程式設計器的資料及指令。例如,工作控制封包1418可將生產運行程序的執行僅限於可使用OEM公開金鑰2362來認證的系統,此OEM公開金鑰鏈接到工作控制封包1418中所提供的OEM憑證2351。在接收工作控制封包模組2604已完成之後,控制流程可移轉到認證設備模組2606。
認證設備模組2606可將可程式化設備128的集合加載到程式設計器110中及認證設備。認證設備模組2606可用來藉由偵測未授權設備及防止程式化此類設備來防止在生產運行程序中使用未授權設備。
工作控制封包1418可包括認證列表2632以識別要程式化的可程式化設備128的集合。認證列表2632是描述被授權為要程式化的設備的資料結構。
可以各種方式實施認證列表2632。例如,認證列表2632可為序號或其他設備識別碼的集合。認證列表2632亦可為可用來識別個別的可程式化設備、矽製造商或供應商、設備類型或其組合的一定範圍的識別碼值。在另一實例中,認證列表2632可包括結構化的資料,例如具有資料項目對偶的資料結構,此等資料項目包括用於經授權設備中的各者的矽供應商識別碼2356及序號標誌512。
認證列表2632可用來限制可程式化設備128的製造行為。認證設備模組2606可將可程式化設備128的序號與認證列表2632中的序號進行比較。若可程式化設備128的序號或其他識別碼匹配認證列表2632中的表值,則設備可被程式化。若序號並不匹配認證列表2632中的表值,則可程式化設備128可被無效化(invalidate)。無效化意指,設備被識別為不可使用的設備。
可以各種方式無效化可程式化設備128。例如,程式設計器112可以空白或無效的資料覆寫可程式化設備128中的資料。程式設計器112可將可程式化設備128移動到拋棄倉。程式設計器112可將無效狀態寫入到可程式化設備128(例如安全儲存區域中)以無效化設備。程式設計器112可將可程式化設備128程式化為具有無效化代碼以無效化設備。瞭解到,可程式化設備128可基於系統的特定硬體配置而以不同方式實施。
加載可程式化設備128的行為可包括將可程式化設備128安裝在程式設計器112上的轉接器中,使得程式設計器112可在可程式化設備128上執行程式設計操作。可程式化設備128可安裝在設備轉接器208的目的地插槽210中。可從輸入設備插座206、元件托盤、設備饋送器、倉或其他設備來源接收可程式化設備128。
認證設備模組2606可從可程式化設備128擷取安全資訊(例如矽供應商設備憑證2326或OEM設備憑證2346),及藉由分別針對矽供應商公開金鑰2354或OEM公開金鑰2362進行認證來認證設備。安全資訊亦可包括序號標誌512、輸入信任根504、韌體標誌506、製造標誌510、產品標誌508、OEM標誌516、操作標誌514、金鑰對偶150或其他類似的資訊。
認證設備模組2606可將認證狀態資訊記入到設備資料追蹤系統2334中以追蹤設備的狀態。在認證設備模組2606已完成之後,控制流程可移轉到驗證安全性核心模組2608。
驗證安全性核心模組2608可將安全性核心2620程式化到可程式化設備128中及接著驗證可程式化設備128內的安全性核心2620的正確操作。將可程式化設備128重開機或初始化以起動可程式化設備128上的安全性核心2620的執行。一旦安全性核心2620在操作,程式設計器112可與核心通訊及驗證此核心正確地操作且是安裝在經授權設備上的。
安全性核心2620可安全地儲存在可程式化設備128上。例如,安全性核心2620可儲存在安全儲存單元326中作為資料儲存區域中的經加密檔案、作為未加密檔案或其組合。安全性核心2620可包括可用來在起動後、操作期間或儲存期間驗證檔案完整性的經計算的散列值。
安全性核心2620可提供驗證碼2626以顯示此安全性核心操作正確。驗證碼2626是可識別執行在可程式化設備128上的安全性核心2620的資料或代碼構件。可回應於要求而在開機時間直接發送驗證碼2626、此驗證碼可供從安全儲存單元326擷取或其組合。驗證碼2626可具有各種形式,包括設備憑證、經公開金鑰編碼的值、經簽署的值、設備識別碼、序號,及識別符記、動態值或其他類似的值。
安全程式設計系統100可定製安全性核心2620以將操作限制於特定的設備。例如,安全性核心2620可被配置為僅在具有預定義序號的可程式化設備128上執行。此舉會防止安全性核心2620在未授權的設備上操作。安全性核心2620的更改或任何其他經更改安全性相關的代碼(modified security-related code)可由安全性控制器114執行以驗證新版本的安全性核心2620的完整性。
在一實例中,程式設計單元110的程式設計器112可向可程式化設備128上的安全性核心2620發送重開機命令2628以起動設備系統重開機以開始執行安全性核心2620。程式設計器112可接著從安全性核心2620要求驗證碼2626。
原位地將程式設計器112中的可程式化設備128重開機減少了驗證安全性核心2620所需的時間量。其亦可藉由在安全性核心2620正在執行在可程式化設備128上的同時支援此安全性核心的即時認證來提供高級別的安全性。
在設備已重開機之後,驗證安全性核心模組2608可接著擷取驗證碼2626及在程式設計單元110中以安全的方式認證驗證碼2626。在一說明性實例中,程式設計單元110可向安全性控制器114(例如具有專用密碼術處理硬體的硬體安全性模組)傳遞驗證碼2626,及接著使用儲存在程式設計單元110中的簽署代碼或安全性金鑰來密碼術地認證驗證碼2626。程式設計單元110的第一安全性模組116可為具有用來認證第一資料設備134的驗證碼2626的代碼及資料的認證系統模組。
安全性核心2620可提供用來以各種方式產生驗證碼2626的邏輯。安全性核心2620可在可程式化設備128接收到重開機命令及在安全執行單元324中執行安全性核心2620之後啟動。安全性核心2620可藉由從安全儲存單元326擷取代碼、在安全執行單元324中計算驗證碼2626、使用程式設計單元110的安全性控制器114計算驗證碼2626或其他類似的安全技術,來提供驗證碼2626。
在一說明性的實施例中,安全性核心2620可執行安全性演算法304以提供用來產生驗證碼2626的邏輯。安全性演算法304可為可在可程式化設備128上(例如安全執行單元324上)執行的可程式化代碼物件。因為安全性演算法304可被配置為僅在可程式化設備128上執行,此安全性演算法可基於安全儲存單元326內可用的安全性構件來產生驗證碼2626。
在另一實例中,在重開機之後,安全性核心2620可擷取儲存在安全儲存單元326中的驗證碼2626(例如預先程式化的資料構件)且向程式設計器112發送此驗證碼。驗證碼2626可包括設備憑證2014、矽供應商設備憑證2326、OEM設備憑證2346或類似的識別資料物件。
在又另一實例中,安全性核心2620可驗證從安全程式設計系統100所接收的識別值及基於此識別值來產生驗證碼2626。此識別值可為程式設計器標識、系統標識、OEM標識、識別符記624、密碼術符記626或其他身分值。
在另一實施例中,安全性核心2620可被配置為在將設備首次開機時初始化可程式化設備128的安全性環境。此舉可支援由可程式化設備128創建驗證碼2626及其他安全性構件。在可程式化設備128內創建安全性構件的行為藉由最小化外界的影響及存取而增加了安全性級別。安全性構件可在可程式化設備128內部創建且不暴露在設備之外。
在可程式化設備128首次開機時,安全性核心2620可包括軟體代理器1116(例如開機時間識別碼讀取代理器),此軟體代理器可在可程式化設備128的安全執行單元324中執行及產生可儲存在安全儲存單元326中的額外的標識及安全性構件。此等額外的識別構件可包括電路板信任根1106、設備標識302的更新、輸出信任根1006、設備憑證或其他的安全性識別值。
例如,安全程式設計系統100可配置目標系統,例如在電路板上具有可程式化設備128的電路板。接著,軟體代理器1116可讀取與可程式化設備128相關聯的元件信任根1104及針對電路板或系統產生電路板信任根1106。在目標系統是智慧型手機、媒體盒或其他複合系統時可能是如此。因此,電路板信任根1106直接與用來製造電路板的設備的元件信任根1104中的各者鏈接。電路板信任根1106是在安裝在電路板上的可程式化設備128被重開機以產生安全性資訊時產生的。可接著基於元件信任根1106、電路板信任根1106或其他電路板上的安全性構件來產生驗證碼2626。
具有程式設計器112的程式設計單元110可被配置為支援可程式化設備128的重開機。程式設計器112可與可程式化設備128建立介面以提供電力、時脈訊號、實際的或模擬的資料及控制輸入,及正確操作所需的其他機械的及電氣的輸入。程式設計單元110可使用安全性模組來提供原位地將可程式化設備128成功重開機所需的必要邏輯及控制。因此,程式設計單元110及程式設計器112可支援將可程式化設備128重開機及驗證正確的操作。
程式設計單元110可使用安全性控制器114來認證驗證碼2626以驗證安全性核心2620已被正確安裝在可程式化設備128上。在一個實施例中,安全性核心2620可回傳經簽署的設備憑證(例如矽供應商設備憑證2326或OEM設備憑證2346),且接著以正確的公開金鑰認證設備憑證以驗證安全性核心2620的操作。瞭解到,矽供應商及矽製造商可為相同或類似的實體。
一旦安全性核心2620已被驗證,可程式化設備128的狀態可由系統記入日誌且設備準備好要被配給。在驗證安全性核心模組2608已完成之後,控制流程可移轉到配給設備模組2610。
配給設備模組2610可將工作控制封包1418的目標酬載1420安裝到可程式化設備128上。在可程式化設備128及安全性核心2620已被驗證及認證之後,配給設備模組2610可將設備程式化為具有目標酬載1420的內容。
配給設備的行為可包括在將目標酬載1420中的經加密內容安裝在可程式化設備128上之前解密此經加密內容。例如,目標酬載1420可包括要安裝在安全儲存單元326中的韌體、影像、視訊、軟體、資料、安全性資訊、資料及其他內容。
目標酬載1420可包括以安全性金鑰加密及簽署的內容。在一個實例中,安全性金鑰可鏈接到安全性核心2620的驗證碼2626。程式設計單元110可使用安全性控制器114的安全性特徵來認證及解密目標酬載1420的經加密內容。安全性控制器114可為針對高效能安全性操作而配置的硬體及/或軟體模組。
目標酬載1420可包括要由可程式化設備128所使用的實用及安全性軟體。例如,目標酬載1420可包括用於識別模組316、密碼術模組318、認證模組320及代碼簽署模組322的軟體。此等模組亦可包括用來執行特定安全性任務的安全性演算法1504。
在一替代性遠端配給實施例中,可使用遠端配給服務(例如設備配給服務2338、韌體更新服務2312或類似的配給服務特徵)在網路鏈路上遠端地配給可程式化設備128。可程式化設備128可包括配給代理器1704以安全地接收目標酬載1420及接著將目標酬載的內容部署到可程式化設備128。可程式化設備128亦可包括監控代理器1804以驗證內部安全性金鑰對於目標酬載1420的內容而言是有效的。
設備資料及追蹤系統2334可將設備的配給記入日誌。在配給設備模組2610已完成之後,控制流程可移轉到產生驗證狀態模組2612。
產生驗證狀態模組2612可在已配給可程式化設備128之後驗證此可程式化設備。產生驗證狀態模組2612可透過具有程式設計器112及安全性控制器114的程式設計單元110擷取關於可程式化設備128的資訊。產生驗證狀態模組2612可產生設備驗證狀態2622以指示可程式化設備128是否已被正確配給。
可以各種方式判定設備驗證狀態2622。例如,設備驗證狀態2622在工作控制封包1418中的模組列表2630匹配可程式化設備128中的物件及模組的列表時可具有真值。在另一實例中,可基於針對可程式化設備128的內容所計算的散列值的驗證來設定設備驗證狀態2622。可基於由安全性核心2620所提供的另一狀態值來設定設備驗證狀態2622。在產生驗證狀態模組2612已完成之後,控制流程可移轉到產生報告模組2614。
產生報告模組2614可產生關於可程式化設備128的配給狀態的驗證報告2624。驗證報告2624可基於各個個別的可程式化設備128或被程式化的設備的集合。
基於驗證報告2624,程式設計單元110可命令程式設計器112無效化未通過驗證的可程式化設備128。程式設計器112可將無效的設備實體移動到拋棄站或將設備標記為無效的。
亦可向工廠管理系統2330發送驗證報告2624以供分佈到其他系統以識別可程式化設備128及它們的設備驗證狀態2622。驗證報告2624的資訊可用來偵測可程式化設備128的不適當使用,例如偽造的設備、複製的設備、無效的設備的存在及其他類似的設備狀況。
此等及其他實施例的其他實例見於此揭示案各處。 4.0. 示例實施例
(不限於)在以下條款及使用案例中表示某些實施例的實例:
依據一實施例,一種操作安全程式設計系統的方法包括以下步驟:接收具有安全性核心及目標酬載的工作控制封包;將安全性核心安裝在可程式化設備中,此可程式化設備被安裝在程式設計器中;藉由啟動安全性核心來將程式設計器中的可程式化設備重開機;基於驗證碼來驗證可程式化設備的安全性核心;及將目標酬載配給給可程式化設備。
在一實施例中,此方法更包括以下步驟:將可程式化設備重開機的步驟包括向安裝在程式設計器中的可程式化設備發送重開機命令。
在一實施例中,此方法更包括以下步驟:從可程式化設備擷取矽供應商設備憑證;從目標酬載抽取矽供應商公開金鑰;藉由以矽供應商公開金鑰認證矽供應商設備憑證來產生驗證碼;從矽供應商設備憑證抽取識別符記,此識別符記由矽供應商設備公開金鑰加密;及使用矽供應商設備私密金鑰來認證識別符記。
依據一實施例,一種操作安全程式設計系統的方法包括以下步驟:在程式設計器處接收工作控制封包,此工作控制封包具有目標酬載;將可程式化設備安裝在程式設計器中;針對可程式化設備產生設備憑證,此設備憑證具有認證金鑰及解密金鑰;將設備憑證嵌到可程式化設備的安全儲存單元中;使用鏈接到解密金鑰的加密金鑰來加密目標酬載;及將具有目標酬載的經加密酬載配給給可程式化設備。
在一實施例中,此方法更包括以下步驟:產生設備憑證的步驟包括產生具有可程式化設備的設備標識的設備憑證。
在一實施例中,此方法更包括以下步驟:接收目標酬載中的經加密酬載;以解密金鑰解密經加密酬載;及以未加密格式將經加密酬載安裝到可程式化設備中。
在一實施例中,此方法更包括以下步驟:接收目標酬載中的經加密酬載,此經加密酬載以簽署金鑰加密;及以與簽署金鑰鏈接的驗證金鑰驗證經加密酬載。
依據一實施例,一種安全程式設計系統包括:程式設計單元,被配置為接收具有安全性核心及目標酬載的工作控制封包;程式設計單元的程式設計器,此程式設計器被配置為:將安全性核心安裝在可程式化設備中,此可程式化設備被安裝在程式設計器中;藉由啟動安全性核心來將程式設計器中的可程式化設備重開機;及將目標酬載配給給可程式化設備;及程式設計單元的安全性控制器,此安全性控制器被配置為在重開機之後基於從安全性核心所接收的驗證碼來驗證可程式化設備的安全性核心。
在一實施例中,此系統更包括:程式設計器,被配置為向安裝在程式設計器中的可程式化設備發送重開機命令。
在一實施例中,此系統更包括:程式設計器,被配置為從可程式化設備擷取矽供應商設備憑證;及安全性控制器,被配置為:從目標酬載抽取矽供應商公開金鑰;藉由以矽供應商公開金鑰認證矽供應商設備憑證來產生驗證碼;從矽供應商設備憑證抽取識別符記,此識別符記由矽供應商設備公開金鑰加密;及使用矽供應商設備私密金鑰來認證識別符記。
在一實施例中,此系統更包括:安全性控制器,被配置為從目標酬載抽取韌體影像及解密韌體影像;及程式設計器,被配置為將韌體影像複製到可程式化設備。
在一實施例中,此系統更包括:程式設計單元,包括安全性控制器,此安全性控制器被配置為基於匹配目標酬載的另一模組列表的可程式化設備的模組列表來計算設備驗證狀態,且安全性控制器被配置為將設備驗證狀態安插到驗證報告中。
在一實施例中,此系統更包括:程式設計單元,被配置為在工作控制封包中以經加密格式接收安全性核心;安全性控制器,被配置為以預先載入在程式設計單元中的公開金鑰解密安全性核心;及程式設計器,被配置為以未加密格式將安全性核心安裝到可程式化設備中。
在一實施例中,此系統更包括:程式設計單元外部的硬體安全性模組,此硬體安全性模組被配置為以程式設計器公開金鑰、OEM公開金鑰或矽供應商公開金鑰加密安全性核心,及以經加密格式形成具有安全性核心的工作控制封包。
依據一實施例,儲存指令的一或更多個非暫時性電腦可讀取媒體,此等指令當由一或更多個計算設備執行時,造成以下操作:接收具有安全性核心及目標酬載的工作控制封包;將安全性核心安裝在可程式化設備中,此可程式化設備被安裝在程式設計器中;藉由啟動安全性核心來將程式設計器中的可程式化設備重開機;基於驗證碼來驗證可程式化設備的安全性核心;及將目標酬載配給給可程式化設備。
在一實施例中,此非暫時性電腦可讀取媒體更包括:將可程式化設備重開機的步驟包括向安裝在程式設計器中的可程式化設備發送重開機命令。
在一實施例中,此非暫時性電腦可讀取媒體更包括:從可程式化設備擷取矽供應商設備憑證;從目標酬載抽取矽供應商公開金鑰;藉由以矽供應商公開金鑰認證矽供應商設備憑證來產生驗證碼;從矽供應商設備憑證抽取識別符記,此識別符記由矽供應商設備公開金鑰加密;及使用矽供應商設備私密金鑰來認證識別符記。
在一實施例中,此非暫時性電腦可讀取媒體更包括:從目標酬載抽取韌體影像;解密韌體影像;及將韌體影像複製到可程式化設備。
在一實施例中,此非暫時性電腦可讀取媒體更包括:基於匹配目標酬載的另一模組列表的可程式化設備的模組列表來計算設備驗證狀態,及將設備驗證狀態安插到驗證報告中。
在一實施例中,此非暫時性電腦可讀取媒體更包括:在工作控制封包中以經加密格式接收安全性核心;以預先載入在程式設計單元中的公開金鑰解密安全性核心;及以未加密格式將安全性核心安裝到可程式化設備中。 5.0. 實施機構 - 硬體概述
依據一個實施例,本文中所述的技術是由一或更多個特殊用途計算設備來實施的。此等特殊用途計算設備可為桌上型電腦系統、可攜式電腦系統、手持式設備、智慧型手機、媒體設備、遊戲機、聯網設備或合併硬連線及/或程式邏輯以實施此等技術的任何其他設備。此等特殊用途計算設備可為用來執行此等技術的硬連線,或可包括數位電子設備(例如被永久程式化為執行此等技術的一或更多個特殊應用積體電路(ASIC)或現場可程式化閘極陣列(FPGA)),或可包括被程式化為依據韌體、記憶體、其他儲存器或組合中的程式指令來執行此等技術的一或更多個一般用途硬體處理器。此類特殊用途計算設備亦可將定製的硬連線邏輯、ASIC或FPGA與定製程式設計結合以完成此等技術。
圖27繪示依據一實施例的一方塊圖,此方塊圖圖示在實施上述技術時所利用的電腦系統2700。電腦系統2700例如可為桌上型計算設備、膝上型計算設備、平板電腦、智慧型手機、伺服器用具、計算主機、多媒體設備、手持式設備、聯網裝置或任何其他合適的設備。
電腦系統2700包括一或更多個匯流排2702或用於傳遞資訊的其他通訊機構以及與匯流排2702耦接以供處理資訊的一或更多個硬體處理器2704。硬體處理器2704例如可為一般用途微處理器。匯流排2702可包括各種內部及/或外部元件,包括(不限於)內部處理器或記憶體匯流排、串列ATA匯流排、PCI Express匯流排、通用串列匯流排、HyperTransport匯流排、Infiniband匯流排及/或任何其他合適的有線或無線通訊通道。
電腦系統2700亦包括耦接到匯流排2702以供儲存資訊及要由處理器2704所執行的指令的主記憶體2706(例如隨機存取記憶體(RAM)或其他動態或依電性儲存設備)。主記憶體2706亦可用於在執行要由處理器2704所執行的指令期間儲存暫時變數或其他中間資訊。此類指令當儲存在處理器2704可存取的非暫時性儲存媒體中時,使得電腦系統2700變成被定製為執行此等指令中所指定的操作的特殊用途機器。
電腦系統2700更包括一或更多個唯讀記憶體(ROM)2708或耦接到匯流排2702以供儲存用於處理器2704的靜態資訊及指令的其他靜態儲存設備。提供一或更多個儲存設備2710(例如固態硬碟(SSD)、磁碟、光碟或其他合適的非依電性儲存設備)且將此等儲存設備耦接到匯流排2702以供儲存資訊及指令。
電腦系統2700可透過匯流排2702耦接到一或更多個顯示器2712以供向電腦使用者呈現資訊。例如,電腦系統2700可透過高清晰度多媒體介面(HDMI)纜線或其他合適的佈線連接到液晶顯示器(LCD)監視器,及/或透過無線連接(例如同級間Wi-Fi直接連接)連接到發光二極體(LED)電視。合適類型的顯示器2712的其他實例可包括(不限於)電漿顯示設備、投影機、陰極射線管(CRT)監測器、電子紙、虛擬實境耳機、點字終端及/或用於向電腦使用者輸出資訊的任何其他合適的設備。在一實施例中,可利用任何合適類型的輸出設備(舉例而言,例如音訊揚聲器或印表機)而不是顯示器2712。
在一實施例中,輸出到顯示器2712的輸出可由電腦系統2700中的一或更多個圖形處理單元(GPU)加速。GPU例如可為高度平行化的、多核的浮點處理單元,此處理單元被高度最佳化以執行關於圖形資料、3D資料及/或多媒體的顯示的計算操作。除了直接計算影像及/或視訊資料以供輸出到顯示器2712以外,GPU亦可用來在螢幕外(off-screen)呈現成像或其他視訊資料,且將此資料讀回到程式中以供以非常高的效能進行螢幕外影像處理。可從處理器2704外載(off-load)各種其他計算任務到GPU。
一或更多個輸入設備2714耦接到匯流排2702以供向處理器2704傳遞資訊及命令選擇。輸入設備2714的一個實例為鍵盤,此鍵盤包括文數字及其他按鍵。另一類型的使用者輸入設備2714為用於向處理器2704傳遞方向資訊及命令選擇及用於控制顯示器2712上的游標移動的游標控制器2716,例如滑鼠、軌跡球或游標方向鍵。此輸入設備一般在兩個軸(第一軸(例如x)及第二軸(例如y))上具有兩個自由度,此兩個自由度允許設備指定一個平面上的位置。合適的輸入設備2714的又其他實例包括附加到顯示器2712的觸控螢幕面板、攝影機、傳聲器、加速度計、運動偵測器及/或其他感測器。在一實施例中,可利用基於網路的輸入設備2714。在此類實施例中,使用者輸入及/或其他資訊或命令可透過區域網路(LAN)或其他合適的共享式網路上的路由器及/或開關或透過同級間網路來從輸入設備2714傳播到電腦系統2700上的網路鏈路2720。
電腦系統2700可使用定製的硬連線邏輯、一或更多個ASIC或FPGA、韌體及/或程式邏輯來實施本文中所述的技術,此等元件與電腦系統結合而使得電腦系統2700或將此電腦系統程式化為特殊用途機器。依據一個實施例,本文中的技術是由電腦系統2700回應於處理器2704執行主記憶體2706中所包含的一或更多個指令的一或更多個序列而執行的。可從另一存儲媒體(例如儲存設備2710)將此類指令讀取到主記憶體2706中。執行主記憶體2706中所包含的指令的序列使得處理器2704執行本文中所述的程序步驟。在替代性實施例中,可替代於軟體指令或與軟體指令結合來使用硬連線的電路系統。
如本文中所使用的用語「儲存媒體」指的是儲存使機器以特定方式操作的資料及/或指令的任何非暫時性媒體。此類儲存媒體可包括非依電性媒體及/或依電性媒體。非依電性媒體例如包括光碟或磁碟,例如儲存設備2710。依電性媒體包括動態記憶體,例如主記憶體2706。儲存媒體的常見形式例如包括軟碟、軟性磁碟(flexible disk)、硬碟、固態硬碟、磁帶或任何其他磁式資料儲存媒體、CD-ROM、任何其他光學資料儲存媒體、具有孔洞圖案的任何實體媒體、RAM、PROM,及EPROM、FLASH-EPROM、NVRAM、任何其他記憶體晶片或匣。
儲存媒體不同於傳輸媒體,但可與傳輸媒體結合使用。傳輸媒體參與在儲存媒體之間傳輸資訊。例如,傳輸媒體包括同軸纜線、銅線及光纖(包括了包含匯流排2702的導線)。傳輸媒體亦可採取聲學或光波的形式,例如在無線電波及紅外線資料通訊期間所產生的彼等形式。
各種形式的媒體可涉及將一或更多個指令的一或更多個序列承載到處理器2704以供執行。例如,指令可能一開始被承載於遠端電腦的磁碟或固態硬碟上。遠端電腦可將指令載入到其動態記憶體中,且使用數據機來在網路(例如纜線網路或胞式網路)上將此等指令發送為調變訊號。電腦系統2700本端的數據機可在網路上接收資料及解調訊號以解碼所傳送的指令。適當的電路系統可接著將資料放置在匯流排2702上。匯流排2702將資料承載到主記憶體2706,處理器2704從此主記憶體擷取及執行指令。由主記憶體2706所接收的指令可可選地在由處理器2704執行之前或之後儲存在儲存設備2710上。
電腦系統2700在一實施例中亦可包括耦接到匯流排2702的一或更多個通訊介面2718。通訊介面2718向連接到本端網路2722的網路鏈路2720提供資料通訊耦接(一般是雙向的)。例如,通訊介面2718可為整合式服務數位網路(ISDN)卡、纜線數據機、衛星數據機或用來向相對應類型的電話線路提供資料通訊連接的數據機。作為另一實例,一或更多個通訊介面2718可包括用來向相容的區域網路(LAN)提供資料通訊連接的區域網路卡。作為又另一實例,一或更多個通訊介面2718可包括無線網路介面控制器,例如基於802.11的控制器、藍芽控制器、長期進化(LTE)數據機及/或其他類型的無線介面。在任何此類實施方式中,通訊介面2718發送及接收承載表示各種類型的資訊的數位資料串流的電氣、電磁或光學訊號。
網路鏈路2720一般經由一或更多個網路向其他資料設備提供資料通訊。例如,網路鏈路2720可經由本端網路2722向主控電腦2724提供連接或向由服務提供商2726操作的資料配備提供連接。服務提供商2726(其例如可為網際網路服務提供商(ISP))反過來經由廣域網路(例如現常稱為「網際網路」2728的全球封包資料通訊網路)提供資料通訊服務。本端網路2722及網際網路2728兩者使用承載數位資料串流的電氣、電磁或光學訊號。經由各種網路的訊號及網路鏈路2720上及經由通訊介面2718的訊號(此等訊號向及自電腦系統2700承載數位資料)為傳輸媒體的示例形式。
在一實施例中,電腦系統2700可經由網路、網路鏈路2720及通訊介面2718發送訊息及接收資料(包括程式代碼及/或其他類型的指令)。在網際網路實例中,伺服器2730可經由網際網路2728、服務提供商2726、本端網路2722及通訊介面2718針對應用程式傳送所要求的代碼。經接收的代碼可在其被接收時由硬體處理器2704執行,及/或儲存在儲存設備2710或其他非依電性儲存器中以供稍後執行。作為另一實例,透過網路鏈路2720所接收的資訊可由電腦系統2700的軟體元件(例如網頁瀏覽器、應用程式或伺服器)解譯及/或處理,此軟體元件反過來基於此資訊可能透過作業系統及/或軟體元件的其他中間層向硬體處理器2704發出指令。
在一實施例中,本文中所述的某些或所有系統可為或包括伺服器電腦系統,包括將系統的各種元件共同實施為伺服器端程序集合的一或更多個電腦系統2700。伺服器電腦系統可包括網頁伺服器、應用伺服器、資料庫伺服器及/或某些上述元件所用來提供所述機能的其他常規伺服器元件。伺服器電腦系統可接收包括來自各種來源中的任何來源(包括(不限於)使用者操作的客戶端計算設備,例如桌上型電腦、平板電腦或智慧型手機、遠端感測設備及/或其他伺服器電腦系統)的輸入資料的基於網路的通訊。
在一實施例中,可使用由一或更多個網路(例如網際網路)耦接到系統的基於「雲端」的元件來完全或部分實施某些伺服器元件。基於雲端的元件可暴露介面,此等元件藉由此等介面向系統的其他元件提供處理、儲存、軟體及/或其他資源。在一實施例中,可由第三方實體代替另一實體實施基於雲端的元件,其中此等元件是針對此另一實體而部署的。然而,在其他實施例中,所述的系統可完全由被單一實體擁有及操作的電腦系統所實施。
在一實施例中,一種裝置包括一處理器,且被配置為執行任何上述的方法。在一實施例中,一種電腦可讀取儲存媒體,此電腦可讀取儲存媒體儲存軟體指令,此等軟體指令在由一或更多個處理器執行時,造成執行上述方法中的任何方法。 6.0. 延伸及替代方案
如本文中所使用的,用語「第一」、「第二」、「某些」及「特定」用作命名規約以彼此區隔查詢、計劃、表示、步驟、物件、設備或其他項目,使得可在此等項目已被介紹之後引用此等項目。除非本文中另有指定,此等用語的使用並不暗示順序、時序或所引用的項目的任何其他特性。
在繪圖中,各種元件由箭頭描繪為通訊耦接到各種其他元件。此等箭頭僅繪示元件間的資訊流的某些實例。箭頭方向或在某些元件之間缺乏箭頭線的情況皆不應被解譯為指示某些元件本身之間的通訊的存在或不存在。確實,各元件可具有合適通訊介面的特徵,藉由此通訊介面,此元件可依需要變得通訊耦接到其他元件以完成本文中所述的任何功能。
在上述說明書中,已參照許多特定細節描述本發明的實施例,此等特定細節可從實施方式到實施方式而有所不同。因此,本發明為何物及申請人要本發明為何物的唯一且排他的指示為從此案發佈的請求項集合,包括任何後續的更正,此請求項集合呈現用以發佈此類請求項的特定形式。在此方面,儘管特定的請求項依附關係被陳設於此案的請求項中,但注意此案的附屬項特徵可依需要與其他附屬項的特徵及與此案獨立項的特徵結合,且此結合不僅是依據請求項集合中所載的特定依附關係。並且,儘管在本文中論述了單獨的實施例,但本文中所論述的實施例及/或部分實施例的任何組合可被結合以形成進一步的實施例。
本文中針對此類請求項中所包含的用語而明確闡述的任何定義應主宰如請求項中所使用的此類用語的意義。因此,請求項中未明確記載的限制、構件、性質、特徵、優點或屬性不應以任何方式限制此類請求項的範圍。據此,要以說明性而非限制性的意義來看待本說明書及圖式。
100‧‧‧安全程式設計系統
102‧‧‧安全主儲存系統
104‧‧‧安全性主系統
106‧‧‧安全性金鑰
108‧‧‧安全程式設計環境
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‧‧‧原始配備製造商標誌
520‧‧‧設備出生憑證
602‧‧‧第一安全物件
604‧‧‧第二安全物件
606‧‧‧安全執行引擎
620‧‧‧信任根代碼
622‧‧‧信任根資料
624‧‧‧ID符記
626‧‧‧密碼術符記
628‧‧‧金鑰符記
701‧‧‧安全物件
702‧‧‧製造執行系統
712‧‧‧第一電路板
714‧‧‧第二電路板
804‧‧‧現場可程式化閘極陣列
806‧‧‧可程式化中央處理單元
808‧‧‧嵌入式多媒體記憶體控制器
810‧‧‧微CPU
812‧‧‧經編碼的值
814‧‧‧系統標識
902‧‧‧製造流程
904‧‧‧矽設計階段
906‧‧‧矽製造階段
908‧‧‧電路板設計階段
910‧‧‧安全性預程式設計階段
912‧‧‧預程式設計階段
914‧‧‧電路板製造階段
916‧‧‧設備配給階段
918‧‧‧設備操作階段
920‧‧‧原始配備製造商
922‧‧‧憑證機構公開金鑰基礎建設單元
924‧‧‧下游服務
1002‧‧‧信任根資料流
1004‧‧‧系統信任根
1006‧‧‧輸出信任根
1008‧‧‧矽供應商
1010‧‧‧原始配備製造商
1012‧‧‧經銷商
1014‧‧‧使用者
1102‧‧‧安全設備製造流程
1104‧‧‧元件信任根
1106‧‧‧電路板信任根
1108‧‧‧OEM製造執行系統
1114‧‧‧憑證代理器
1116‧‧‧軟體代理器
1202‧‧‧安全程式設計程序流程
1204‧‧‧安全性及資料預程式設計階段
1206‧‧‧安全程式設計器
1304‧‧‧工作封包標識
1306‧‧‧軟體標誌
1308‧‧‧系統測試標誌
1310‧‧‧實體上不可複製的功能
1404‧‧‧硬體安全性模組
1406‧‧‧序號伺服器
1408‧‧‧硬體安全性模組
1410‧‧‧OEM開發實驗室
1412‧‧‧OEM工作站
1414‧‧‧OEM/CA公開金鑰基礎建設系統
1416‧‧‧憑證管理後台
1418‧‧‧工作控制封包
1420‧‧‧憑證管理後台
1422‧‧‧經加密酬載
1424‧‧‧對話金鑰
1502‧‧‧安全性演算法
1504‧‧‧安全性演算法
1602‧‧‧安全開機使用案例
1603‧‧‧受信任方
1604‧‧‧雲端
1606‧‧‧空中下載
1608‧‧‧可移除式安全數位卡
1610‧‧‧第一階開機載入器
1612‧‧‧簽章
1614‧‧‧密碼術金鑰
1616‧‧‧第二階開機載入器
1618‧‧‧作業系統
1620‧‧‧第一應用程式
1622‧‧‧第二應用程式
1624‧‧‧第三應用程式
1626‧‧‧第n應用程式
1628‧‧‧簽章
1630‧‧‧密碼術金鑰
1632‧‧‧簽章
1634‧‧‧密碼術金鑰
1702‧‧‧設備配給使用案例
1704‧‧‧配給代理器
1706‧‧‧配給使用者
1708‧‧‧使用者標誌
1802‧‧‧竄改偵測使用案例
1804‧‧‧監控代理器
1806‧‧‧安全性行動
1902‧‧‧物聯網使用案例
1904‧‧‧遠端系統
1906‧‧‧分析術資料儲存單元
1908‧‧‧網際網路
1910‧‧‧閘道器
1912‧‧‧IoT設備
2002‧‧‧安全性及資料程式設計使用案例
2004‧‧‧設備種子
2006‧‧‧公開設備簽署金鑰
2008‧‧‧資料加密公開金鑰
2010‧‧‧根金鑰
2012‧‧‧FAB金鑰
2014‧‧‧設備憑證
2016‧‧‧安全性核心
2102‧‧‧設備外種子使用案例
2104‧‧‧第一位置
2106‧‧‧第二位置
2108‧‧‧第三位置
2110‧‧‧步驟
2112‧‧‧步驟
2114‧‧‧步驟
2116‧‧‧步驟
2118‧‧‧步驟
2120‧‧‧步驟
2124‧‧‧步驟
2126‧‧‧步驟
2128‧‧‧步驟
2130‧‧‧步驟
2202‧‧‧設備上種子使用案例
2204‧‧‧矽製造商
2206‧‧‧原始配備製造商
2208‧‧‧程式設計中心
2212‧‧‧設備層級
2222‧‧‧步驟
2224‧‧‧步驟
2226‧‧‧步驟
2228‧‧‧步驟
2230‧‧‧步驟
2232‧‧‧步驟
2234‧‧‧步驟
2236‧‧‧步驟
2238‧‧‧步驟
2240‧‧‧步驟
2242‧‧‧步驟
2244‧‧‧步驟
2246‧‧‧步驟
2248‧‧‧步驟
2302‧‧‧受管理的及安全性處理系統
2304‧‧‧OEM憑證金鑰材料
2306‧‧‧OEM安全性開機載入器
2308‧‧‧OEM韌體開發系統
2310‧‧‧OEM統治工具
2312‧‧‧韌體更新服務
2314‧‧‧韌體影像
2316‧‧‧韌體更新
2318‧‧‧安全性開機載入器
2320‧‧‧安全韌體
2322‧‧‧韌體解密金鑰
2324‧‧‧OEM管理系統
2326‧‧‧矽供應商設備憑證
2328‧‧‧OEM雲端
2330‧‧‧工廠管理系統
2332‧‧‧工廠安全性系統
2333‧‧‧工廠安全性系統憑證
2334‧‧‧設備資料追蹤系統
2336‧‧‧主控系統
2338‧‧‧設備配給服務
2340‧‧‧OEM開發場所
2342‧‧‧工廠場所
2344‧‧‧程式設計專案
2346‧‧‧原始配備製造商設備憑證
2347‧‧‧OEM設備憑證簽章金鑰
2348‧‧‧生產計數
2350‧‧‧OEM設備憑證樣板
2351‧‧‧OEM憑證
2352‧‧‧OEM私密金鑰
2354‧‧‧矽供應商公開金鑰
2355‧‧‧矽供應商設備認證金鑰
2356‧‧‧矽供應商識別碼
2358‧‧‧矽供應商私密金鑰
2360‧‧‧矽供應商金鑰對偶
2362‧‧‧OEM公開金鑰
2364‧‧‧串列資料列表
2366‧‧‧OEM識別碼
2368‧‧‧OEM使用者
2370‧‧‧安全構件使用案例
2372‧‧‧微控制器單元使用案例
2374‧‧‧設備認證金鑰對偶
2376‧‧‧設備解密金鑰對偶
2378‧‧‧目前計數
2380‧‧‧工廠安全性資料加密金鑰
2382‧‧‧工廠安全性資料認證金鑰
2404‧‧‧矽製造商
2406‧‧‧OEM位置
2408‧‧‧程式設計中心
2410‧‧‧程式設計器位置
2412‧‧‧設備位置
2414‧‧‧第一序列
2416‧‧‧第二序列
2418‧‧‧第三序列
2420‧‧‧步驟
2422‧‧‧步驟
2424‧‧‧步驟
2430‧‧‧步驟
2432‧‧‧步驟
2434‧‧‧步驟
2435‧‧‧步驟
2436‧‧‧步驟
2438‧‧‧步驟
2440‧‧‧步驟
2442‧‧‧步驟
2444‧‧‧步驟
2446‧‧‧步驟
2448‧‧‧步驟
2450‧‧‧步驟
2452‧‧‧步驟
2454‧‧‧步驟
2456‧‧‧步驟
2458‧‧‧步驟
2460‧‧‧步驟
2462‧‧‧步驟
2464‧‧‧步驟
2502‧‧‧安全配給程序流程
2504‧‧‧配置元件模組
2506‧‧‧配置受信任設備模組
2508‧‧‧配給模組
2510‧‧‧設備操作模組
2602‧‧‧安全程式設計程序流程
2604‧‧‧接收工作控制封包模組
2606‧‧‧認證設備模組
2608‧‧‧驗證安全性核心模組
2610‧‧‧配給設備模組
2612‧‧‧產生驗證狀態模組
2614‧‧‧產生報告模組
2620‧‧‧安全性核心
2622‧‧‧設備驗證狀態
2624‧‧‧驗證報告
2626‧‧‧驗證碼
2628‧‧‧重開機命令
2630‧‧‧模組列表
2632‧‧‧認證列表
2700‧‧‧電腦系統
2702‧‧‧匯流排
2704‧‧‧硬體處理器
2706‧‧‧主記憶體
2708‧‧‧唯讀記憶體
2710‧‧‧儲存設備
2712‧‧‧顯示器
2714‧‧‧輸入設備
2716‧‧‧游標控制器
2718‧‧‧通訊介面
2720‧‧‧網路鏈路
2722‧‧‧本端網路
2724‧‧‧主控電腦
2726‧‧‧服務提供商
2728‧‧‧網際網路
2730‧‧‧伺服器
在隨附繪圖的圖式中藉由實例的方式(且非限制的方式)說明本發明,且在此等圖式中類似的參考標號指類似的構件(element),且在此等圖式中:
圖1描繪依據一實施例的安全程式設計系統的說明圖;
圖2描繪程式設計器(programmer)的實例;
圖3描繪受信任設備的實例;
圖4描繪資料設備的實例;
圖5描繪設備標識的實例;
圖6描繪安全程式設計系統的示例方塊圖;
圖7描繪安全程式設計系統的第二方塊圖的實例;
圖8為配給(provision)受信任設備中的一者的實例;
圖9為受信任設備的製造流程的實例;
圖10為受信任設備的信任根(root of trust)資料流的實例;
圖11為安全設備製造流程的實例;
圖12為安全程式設計程序流程的實例;
圖13為設備出生憑證的實例;
圖14為安全程式設計環境的實例;
圖15為具有安全性演算法的製造流程的實例;
圖16為安全開機使用案例的實例;
圖17為設備配給使用案例的實例;
圖18為竄改偵測使用案例的實例;
圖19為物聯網使用案例的實例;
圖20為安全性及資料程式設計使用案例的實例;
圖21為設備外種子(off device seed)及憑證產生使用案例的實例;
圖22為設備上種子(on device seed)及憑證產生使用案例的實例;
圖23為受管理的及安全性處理的系統的實例;
圖24為安全構件使用案例的詳細實例;
圖25為可程式化設備的安全配給程序流程的實例;
圖26為安全程式設計程序流的實例;及
圖27為電腦系統的方塊圖,可在此電腦系統上實施本發明的實施例。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無

Claims (16)

  1. 一種操作一安全程式設計系統的方法,包括以下步驟: 接收具有一安全性核心及一目標酬載的一工作控制封包; 將該安全性核心安裝在一可程式化設備中,該可程式化設備被安裝在一程式設計器中; 藉由啟動該安全性核心來將該程式設計器中的該可程式化設備重開機; 基於一驗證碼來驗證該可程式化設備的該安全性核心;及 將該目標酬載配給給該可程式化設備。
  2. 如請求項1所述的方法,其中將該可程式化設備重開機的步驟包括以下步驟:向安裝在該程式設計器中的該可程式化設備發送一重開機命令。
  3. 如請求項1所述的方法,更包括以下步驟: 從該可程式化設備擷取一矽供應商設備憑證; 從該目標酬載抽取一矽供應商公開金鑰; 藉由以該矽供應商公開金鑰認證該矽供應商設備憑證來產生該驗證碼; 從該矽供應商設備憑證抽取一識別符記,該識別符記由該矽供應商設備公開金鑰加密;及 使用一矽供應商設備私密金鑰來認證該識別符記。
  4. 一種裝置,包括: 一程式設計單元,被配置為接收具有一安全性核心及一目標酬載的一工作控制封包; 該程式設計單元的一程式設計器,該程式設計器被配置為:將該安全性核心安裝在一可程式化設備中,該可程式化設備被安裝在該程式設計器中;藉由啟動該安全性核心來將該程式設計器中的該可程式化設備重開機;及將該目標酬載配給給該可程式化設備;及 該程式設計單元的一安全性控制器,該安全性控制器被配置為在重開機之後基於從該安全性核心所接收的一驗證碼來驗證該可程式化設備的該安全性核心。
  5. 如請求項4所述的裝置,其中該程式設計器被配置為向安裝在該程式設計器中的該可程式化設備發送一重開機命令。
  6. 如請求項4所述的裝置,其中該程式設計單元包括: 該程式設計器,被配置為從該可程式化設備擷取一矽供應商設備憑證;及 該安全性控制器,被配置為:從該目標酬載抽取一矽供應商公開金鑰;藉由以該矽供應商公開金鑰認證該矽供應商設備憑證來產生該驗證碼;從該矽供應商設備憑證抽取一識別符記,該識別符記由該矽供應商設備公開金鑰加密;及使用一矽供應商設備私密金鑰來認證該識別符記。
  7. 如請求項4所述的裝置,其中該程式設計單元包括: 該安全性控制器,被配置為從該目標酬載抽取一韌體影像及解密該韌體影像;及 該程式設計器,被配置為將該韌體影像複製到該可程式化設備。
  8. 如請求項4所述的裝置,其中該程式設計單元包括該安全性控制器,該安全性控制器被配置為基於匹配該目標酬載的另一模組列表的該可程式化設備的一模組列表來計算一設備驗證狀態,且該安全性控制器被配置為將該設備驗證狀態安插到一驗證報告中。
  9. 如請求項4所述的裝置,其中: 該程式設計單元,被配置為在該工作控制封包中以一經加密格式接收該安全性核心; 該安全性控制器,被配置為以預先載入在一程式設計單元中的一公開金鑰解密該安全性核心;及 該程式設計器,被配置為以一未加密格式將該安全性核心安裝到該可程式化設備中。
  10. 如請求項4所述的裝置,更包括該程式設計單元外部的一硬體安全性模組,該硬體安全性模組被配置為以一程式設計器公開金鑰、一OEM公開金鑰或一矽供應商公開金鑰加密該安全性核心,及以一經加密格式形成具有該安全性核心的該工作控制封包。
  11. 一種儲存指令的一或更多個非暫時性電腦可讀取媒體,該等指令當由一或更多個計算設備執行時,造成以下操作: 接收具有一安全性核心及一目標酬載的一工作控制封包; 將該安全性核心安裝在一可程式化設備中,該可程式化設備被安裝在一程式設計器中; 藉由啟動該安全性核心來將該程式設計器中的該可程式化設備重開機; 基於一驗證碼來驗證該可程式化設備的該安全性核心;及 將該目標酬載配給給該可程式化設備。
  12. 如請求項11所述的非暫時性電腦可讀取媒體,其中將該可程式化設備重開機的步驟包括向安裝在該程式設計器中的該可程式化設備發送一重開機命令。
  13. 如請求項11所述的非暫時性電腦可讀取媒體,其中該指令在由該一或更多個計算設備執行時,進一步造成以下操作: 從該可程式化設備擷取一矽供應商設備憑證; 從該目標酬載抽取一矽供應商公開金鑰; 藉由以該矽供應商公開金鑰認證該矽供應商設備憑證來產生該驗證碼; 從該矽供應商設備憑證抽取一識別符記,該識別符記由該矽供應商設備公開金鑰加密;及 使用一矽供應商設備私密金鑰來認證該識別符記。
  14. 如請求項11所述的非暫時性電腦可讀取媒體,其中配給該可程式化設備的步驟包括: 從該目標酬載抽取一韌體影像; 解密該韌體影像;及 將該韌體影像複製到該可程式化設備。
  15. 如請求項11所述的非暫時性電腦可讀取媒體,其中該指令在由該一或更多個計算設備執行時,進一步造成以下操作: 基於匹配該目標酬載的另一模組列表的該可程式化設備的一模組列表來計算一設備驗證狀態;及 將該設備驗證狀態安插到一驗證報告中。
  16. 如請求項11所述的非暫時性電腦可讀取媒體,其中接收該工作控制封包的步驟包括: 在該工作控制封包中以一經加密格式接收該安全性核心; 以預先載入在一程式設計單元中的一公開金鑰解密該安全性核心;及 以一未加密格式將該安全性核心安裝到該可程式化設備中。
TW106133883A 2016-09-30 2017-09-30 用於可程式化設備的統一程式設計環境 TWI741041B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662401953P 2016-09-30 2016-09-30
US62/401,953 2016-09-30
US15/717,925 US10069633B2 (en) 2016-09-30 2017-09-27 Unified programming environment for programmable devices
US15/717,925 2017-09-27

Publications (2)

Publication Number Publication Date
TW201820132A true TW201820132A (zh) 2018-06-01
TWI741041B TWI741041B (zh) 2021-10-01

Family

ID=61757295

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106133883A TWI741041B (zh) 2016-09-30 2017-09-30 用於可程式化設備的統一程式設計環境

Country Status (4)

Country Link
US (6) US10069633B2 (zh)
EP (1) EP3520018B1 (zh)
TW (1) TWI741041B (zh)
WO (1) WO2018064392A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI669624B (zh) * 2018-09-19 2019-08-21 宏碁股份有限公司 網頁內容自我保護方法以及伺服器
TWI792043B (zh) * 2019-08-21 2023-02-11 德商羅伯特 博世有限公司 用於行動解決方案的開發和分配之系統和方法

Families Citing this family (158)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103329093B (zh) * 2011-01-19 2017-09-12 国际商业机器公司 用于更新执行环境中的代码的方法和系统
US11871901B2 (en) 2012-05-20 2024-01-16 Cilag Gmbh International Method for situational awareness for surgical network or surgical network connected device capable of adjusting function based on a sensed situation or usage
US11504192B2 (en) 2014-10-30 2022-11-22 Cilag Gmbh International Method of hub communication with surgical instrument systems
US10069633B2 (en) 2016-09-30 2018-09-04 Data I/O Corporation Unified programming environment for programmable devices
US10846076B2 (en) * 2016-10-11 2020-11-24 Barfield, Inc. Remote application update of measurement device field firmware
US10180800B2 (en) * 2017-03-02 2019-01-15 Intel Corporation Automated secure data and firmware migration between removable storage devices that supports boot partitions and replay protected memory blocks
US11194562B2 (en) * 2017-05-19 2021-12-07 Blackberry Limited Method and system for hardware identification and software update control
FR3068150B1 (fr) * 2017-06-21 2020-02-07 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede de securisation de maniere constructive d'un circuit integre lors de sa realisation
US10482252B2 (en) * 2017-09-18 2019-11-19 Nxp B.V. Method for protecting the confidentiality and integrity of firmware for an Internet of Things device
US11045197B2 (en) 2017-10-30 2021-06-29 Cilag Gmbh International Clip applier comprising a movable clip magazine
US11317919B2 (en) 2017-10-30 2022-05-03 Cilag Gmbh International Clip applier comprising a clip crimping system
US11911045B2 (en) 2017-10-30 2024-02-27 Cllag GmbH International Method for operating a powered articulating multi-clip applier
US11564756B2 (en) 2017-10-30 2023-01-31 Cilag Gmbh International Method of hub communication with surgical instrument systems
US11291510B2 (en) 2017-10-30 2022-04-05 Cilag Gmbh International Method of hub communication with surgical instrument systems
US11510741B2 (en) 2017-10-30 2022-11-29 Cilag Gmbh International Method for producing a surgical instrument comprising a smart electrical system
US11071560B2 (en) 2017-10-30 2021-07-27 Cilag Gmbh International Surgical clip applier comprising adaptive control in response to a strain gauge circuit
US11229436B2 (en) 2017-10-30 2022-01-25 Cilag Gmbh International Surgical system comprising a surgical tool and a surgical hub
US11801098B2 (en) 2017-10-30 2023-10-31 Cilag Gmbh International Method of hub communication with surgical instrument systems
US11311342B2 (en) 2017-10-30 2022-04-26 Cilag Gmbh International Method for communicating with surgical instrument systems
CN109842585B (zh) * 2017-11-27 2021-04-13 中国科学院沈阳自动化研究所 面向工业嵌入式系统的网络信息安全防护单元和防护方法
US11147607B2 (en) 2017-12-28 2021-10-19 Cilag Gmbh International Bipolar combination device that automatically adjusts pressure based on energy modality
US11202570B2 (en) 2017-12-28 2021-12-21 Cilag Gmbh International Communication hub and storage device for storing parameters and status of a surgical device to be shared with cloud based analytics systems
US11666331B2 (en) 2017-12-28 2023-06-06 Cilag Gmbh International Systems for detecting proximity of surgical end effector to cancerous tissue
US11559307B2 (en) 2017-12-28 2023-01-24 Cilag Gmbh International Method of robotic hub communication, detection, and control
US11857152B2 (en) 2017-12-28 2024-01-02 Cilag Gmbh International Surgical hub spatial awareness to determine devices in operating theater
US11317937B2 (en) 2018-03-08 2022-05-03 Cilag Gmbh International Determining the state of an ultrasonic end effector
US11602393B2 (en) 2017-12-28 2023-03-14 Cilag Gmbh International Surgical evacuation sensing and generator control
US11389164B2 (en) 2017-12-28 2022-07-19 Cilag Gmbh International Method of using reinforced flexible circuits with multiple sensors to optimize performance of radio frequency devices
US11026751B2 (en) 2017-12-28 2021-06-08 Cilag Gmbh International Display of alignment of staple cartridge to prior linear staple line
US11364075B2 (en) 2017-12-28 2022-06-21 Cilag Gmbh International Radio frequency energy device for delivering combined electrical signals
US11308075B2 (en) 2017-12-28 2022-04-19 Cilag Gmbh International Surgical network, instrument, and cloud responses based on validation of received dataset and authentication of its source and integrity
US11786251B2 (en) 2017-12-28 2023-10-17 Cilag Gmbh International Method for adaptive control schemes for surgical network control and interaction
US11304763B2 (en) 2017-12-28 2022-04-19 Cilag Gmbh International Image capturing of the areas outside the abdomen to improve placement and control of a surgical device in use
US11540855B2 (en) 2017-12-28 2023-01-03 Cilag Gmbh International Controlling activation of an ultrasonic surgical instrument according to the presence of tissue
US11311306B2 (en) 2017-12-28 2022-04-26 Cilag Gmbh International Surgical systems for detecting end effector tissue distribution irregularities
US11253315B2 (en) 2017-12-28 2022-02-22 Cilag Gmbh International Increasing radio frequency to create pad-less monopolar loop
US11969216B2 (en) 2017-12-28 2024-04-30 Cilag Gmbh International Surgical network recommendations from real time analysis of procedure variables against a baseline highlighting differences from the optimal solution
US11304745B2 (en) 2017-12-28 2022-04-19 Cilag Gmbh International Surgical evacuation sensing and display
US11419667B2 (en) 2017-12-28 2022-08-23 Cilag Gmbh International Ultrasonic energy device which varies pressure applied by clamp arm to provide threshold control pressure at a cut progression location
US11234756B2 (en) 2017-12-28 2022-02-01 Cilag Gmbh International Powered surgical tool with predefined adjustable control algorithm for controlling end effector parameter
US11744604B2 (en) 2017-12-28 2023-09-05 Cilag Gmbh International Surgical instrument with a hardware-only control circuit
US11659023B2 (en) 2017-12-28 2023-05-23 Cilag Gmbh International Method of hub communication
US11160605B2 (en) 2017-12-28 2021-11-02 Cilag Gmbh International Surgical evacuation sensing and motor control
US11432885B2 (en) 2017-12-28 2022-09-06 Cilag Gmbh International Sensing arrangements for robot-assisted surgical platforms
US11864728B2 (en) 2017-12-28 2024-01-09 Cilag Gmbh International Characterization of tissue irregularities through the use of mono-chromatic light refractivity
US11109866B2 (en) 2017-12-28 2021-09-07 Cilag Gmbh International Method for circular stapler control algorithm adjustment based on situational awareness
US11559308B2 (en) 2017-12-28 2023-01-24 Cilag Gmbh International Method for smart energy device infrastructure
US11896443B2 (en) 2017-12-28 2024-02-13 Cilag Gmbh International Control of a surgical system through a surgical barrier
US11832899B2 (en) 2017-12-28 2023-12-05 Cilag Gmbh International Surgical systems with autonomously adjustable control programs
US11969142B2 (en) 2017-12-28 2024-04-30 Cilag Gmbh International Method of compressing tissue within a stapling device and simultaneously displaying the location of the tissue within the jaws
US11678881B2 (en) 2017-12-28 2023-06-20 Cilag Gmbh International Spatial awareness of surgical hubs in operating rooms
US11589888B2 (en) 2017-12-28 2023-02-28 Cilag Gmbh International Method for controlling smart energy devices
US11257589B2 (en) 2017-12-28 2022-02-22 Cilag Gmbh International Real-time analysis of comprehensive cost of all instrumentation used in surgery utilizing data fluidity to track instruments through stocking and in-house processes
US11304720B2 (en) 2017-12-28 2022-04-19 Cilag Gmbh International Activation of energy devices
US11166772B2 (en) 2017-12-28 2021-11-09 Cilag Gmbh International Surgical hub coordination of control and communication of operating room devices
US20190201146A1 (en) 2017-12-28 2019-07-04 Ethicon Llc Safety systems for smart powered surgical stapling
US11424027B2 (en) 2017-12-28 2022-08-23 Cilag Gmbh International Method for operating surgical instrument systems
US10758310B2 (en) 2017-12-28 2020-09-01 Ethicon Llc Wireless pairing of a surgical device with another device within a sterile surgical field based on the usage and situational awareness of devices
US11213359B2 (en) 2017-12-28 2022-01-04 Cilag Gmbh International Controllers for robot-assisted surgical platforms
US11419630B2 (en) 2017-12-28 2022-08-23 Cilag Gmbh International Surgical system distributed processing
US11529187B2 (en) 2017-12-28 2022-12-20 Cilag Gmbh International Surgical evacuation sensor arrangements
US11818052B2 (en) 2017-12-28 2023-11-14 Cilag Gmbh International Surgical network determination of prioritization of communication, interaction, or processing based on system or device needs
US11571234B2 (en) 2017-12-28 2023-02-07 Cilag Gmbh International Temperature control of ultrasonic end effector and control system therefor
US11284936B2 (en) 2017-12-28 2022-03-29 Cilag Gmbh International Surgical instrument having a flexible electrode
US11100631B2 (en) 2017-12-28 2021-08-24 Cilag Gmbh International Use of laser light and red-green-blue coloration to determine properties of back scattered light
US11291495B2 (en) 2017-12-28 2022-04-05 Cilag Gmbh International Interruption of energy due to inadvertent capacitive coupling
US11013563B2 (en) 2017-12-28 2021-05-25 Ethicon Llc Drive arrangements for robot-assisted surgical platforms
US11266468B2 (en) 2017-12-28 2022-03-08 Cilag Gmbh International Cooperative utilization of data derived from secondary sources by intelligent surgical hubs
US11633237B2 (en) 2017-12-28 2023-04-25 Cilag Gmbh International Usage and technique analysis of surgeon / staff performance against a baseline to optimize device utilization and performance for both current and future procedures
US11937769B2 (en) 2017-12-28 2024-03-26 Cilag Gmbh International Method of hub communication, processing, storage and display
US11464535B2 (en) 2017-12-28 2022-10-11 Cilag Gmbh International Detection of end effector emersion in liquid
US11844579B2 (en) 2017-12-28 2023-12-19 Cilag Gmbh International Adjustments based on airborne particle properties
US10867055B2 (en) 2017-12-28 2020-12-15 Corlina, Inc. System and method for monitoring the trustworthiness of a networked system
US11273001B2 (en) 2017-12-28 2022-03-15 Cilag Gmbh International Surgical hub and modular device response adjustment based on situational awareness
US11464559B2 (en) 2017-12-28 2022-10-11 Cilag Gmbh International Estimating state of ultrasonic end effector and control system therefor
US11786245B2 (en) 2017-12-28 2023-10-17 Cilag Gmbh International Surgical systems with prioritized data transmission capabilities
US11096693B2 (en) 2017-12-28 2021-08-24 Cilag Gmbh International Adjustment of staple height of at least one row of staples based on the sensed tissue thickness or force in closing
US11324557B2 (en) 2017-12-28 2022-05-10 Cilag Gmbh International Surgical instrument with a sensing array
US11576677B2 (en) 2017-12-28 2023-02-14 Cilag Gmbh International Method of hub communication, processing, display, and cloud analytics
US11132462B2 (en) 2017-12-28 2021-09-28 Cilag Gmbh International Data stripping method to interrogate patient records and create anonymized record
US11179208B2 (en) * 2017-12-28 2021-11-23 Cilag Gmbh International Cloud-based medical analytics for security and authentication trends and reactive measures
US11446052B2 (en) 2017-12-28 2022-09-20 Cilag Gmbh International Variation of radio frequency and ultrasonic power level in cooperation with varying clamp arm pressure to achieve predefined heat flux or power applied to tissue
US11903601B2 (en) 2017-12-28 2024-02-20 Cilag Gmbh International Surgical instrument comprising a plurality of drive systems
US11423007B2 (en) 2017-12-28 2022-08-23 Cilag Gmbh International Adjustment of device control programs based on stratified contextual data in addition to the data
US11998193B2 (en) 2017-12-28 2024-06-04 Cilag Gmbh International Method for usage of the shroud as an aspect of sensing or controlling a powered surgical device, and a control algorithm to adjust its default operation
US11278281B2 (en) 2017-12-28 2022-03-22 Cilag Gmbh International Interactive surgical system
US20190201042A1 (en) 2017-12-28 2019-07-04 Ethicon Llc Determining the state of an ultrasonic electromechanical system according to frequency shift
US11896322B2 (en) 2017-12-28 2024-02-13 Cilag Gmbh International Sensing the patient position and contact utilizing the mono-polar return pad electrode to provide situational awareness to the hub
US10892995B2 (en) 2017-12-28 2021-01-12 Ethicon Llc Surgical network determination of prioritization of communication, interaction, or processing based on system or device needs
US11832840B2 (en) 2017-12-28 2023-12-05 Cilag Gmbh International Surgical instrument having a flexible circuit
US11771487B2 (en) 2017-12-28 2023-10-03 Cilag Gmbh International Mechanisms for controlling different electromechanical systems of an electrosurgical instrument
JP6692792B2 (ja) * 2017-12-28 2020-05-13 三菱重工業株式会社 監視装置、監視システム、監視方法及びプログラム
US11410259B2 (en) 2017-12-28 2022-08-09 Cilag Gmbh International Adaptive control program updates for surgical devices
US11376002B2 (en) 2017-12-28 2022-07-05 Cilag Gmbh International Surgical instrument cartridge sensor assemblies
US11304699B2 (en) 2017-12-28 2022-04-19 Cilag Gmbh International Method for adaptive control schemes for surgical network control and interaction
WO2019152521A1 (en) 2018-01-30 2019-08-08 Corlina, Inc. User and device onboarding
US11986233B2 (en) 2018-03-08 2024-05-21 Cilag Gmbh International Adjustment of complex impedance to compensate for lost power in an articulating ultrasonic device
US11534196B2 (en) 2018-03-08 2022-12-27 Cilag Gmbh International Using spectroscopy to determine device use state in combo instrument
US11259830B2 (en) 2018-03-08 2022-03-01 Cilag Gmbh International Methods for controlling temperature in ultrasonic device
US11278280B2 (en) 2018-03-28 2022-03-22 Cilag Gmbh International Surgical instrument comprising a jaw closure lockout
US11219453B2 (en) 2018-03-28 2022-01-11 Cilag Gmbh International Surgical stapling devices with cartridge compatible closure and firing lockout arrangements
US11213294B2 (en) 2018-03-28 2022-01-04 Cilag Gmbh International Surgical instrument comprising co-operating lockout features
US11207067B2 (en) 2018-03-28 2021-12-28 Cilag Gmbh International Surgical stapling device with separate rotary driven closure and firing systems and firing member that engages both jaws while firing
US11090047B2 (en) 2018-03-28 2021-08-17 Cilag Gmbh International Surgical instrument comprising an adaptive control system
US11589865B2 (en) 2018-03-28 2023-02-28 Cilag Gmbh International Methods for controlling a powered surgical stapler that has separate rotary closure and firing systems
US11471156B2 (en) 2018-03-28 2022-10-18 Cilag Gmbh International Surgical stapling devices with improved rotary driven closure systems
US10979232B2 (en) * 2018-05-31 2021-04-13 Motorola Solutions, Inc. Method for provisioning device certificates for electronic processors in untrusted environments
DE102018005091A1 (de) * 2018-06-27 2020-01-02 Giesecke+Devrient Mobile Security Gmbh Effiziente Firmware-Updates
WO2020112516A1 (en) * 2018-11-29 2020-06-04 Mocana Corporation System and method for protection of multipart system applications using a cryptographically protected package, a package map and a package object store for decryption and verification at runtime on the target device platform
US11595217B2 (en) 2018-12-06 2023-02-28 Digicert, Inc. System and method for zero touch provisioning of IoT devices
US11321468B2 (en) * 2018-12-31 2022-05-03 Micron Technology, Inc. Systems for providing access to protected memory
US11331101B2 (en) 2019-02-19 2022-05-17 Cilag Gmbh International Deactivator element for defeating surgical stapling device lockouts
US11317915B2 (en) 2019-02-19 2022-05-03 Cilag Gmbh International Universal cartridge based key feature that unlocks multiple lockout arrangements in different surgical staplers
US11464511B2 (en) 2019-02-19 2022-10-11 Cilag Gmbh International Surgical staple cartridges with movable authentication key arrangements
US11369377B2 (en) 2019-02-19 2022-06-28 Cilag Gmbh International Surgical stapling assembly with cartridge based retainer configured to unlock a firing lockout
US11357503B2 (en) 2019-02-19 2022-06-14 Cilag Gmbh International Staple cartridge retainers with frangible retention features and methods of using same
US10896412B2 (en) * 2019-03-12 2021-01-19 Airtime Network, Inc. Trustless physical cryptocurrency
US11232210B2 (en) * 2019-03-26 2022-01-25 Western Digital Technologies, Inc. Secure firmware booting
EP3915030B1 (en) * 2019-04-30 2023-10-18 Hewlett-Packard Development Company, L.P. Storage of network credentials
USD950728S1 (en) 2019-06-25 2022-05-03 Cilag Gmbh International Surgical staple cartridge
USD952144S1 (en) 2019-06-25 2022-05-17 Cilag Gmbh International Surgical staple cartridge retainer with firing system authentication key
USD964564S1 (en) 2019-06-25 2022-09-20 Cilag Gmbh International Surgical staple cartridge retainer with a closure system authentication key
US11663146B2 (en) 2019-06-27 2023-05-30 Microchip Technology Incorporated Security of embedded devices through a device lifecycle with a device identifier
CN110348224B (zh) * 2019-07-08 2020-06-30 沈昌祥 基于双体系结构可信计算平台的动态度量方法
EP3798886A1 (en) * 2019-09-26 2021-03-31 General Electric Company Devices, systems, and methods for securely initializing an embedded system
CN110784323A (zh) * 2019-10-08 2020-02-11 西安极光航空航天科技有限公司 一种基于md5算法的fpga加密方法及装置
KR20210050215A (ko) * 2019-10-28 2021-05-07 삼성전자주식회사 전자 장치의 고유 정보에 대한 무결성을 보장하는 전자 장치 및 그의 동작 방법
EP3817332B1 (en) 2019-10-30 2024-04-24 Secure Thingz Limited Data provisioning device for provisioning a data processing entity
US11205003B2 (en) * 2020-03-27 2021-12-21 Intel Corporation Platform security mechanism
EP3907645A1 (en) * 2020-05-08 2021-11-10 Secure Thingz Limited Apparatus and method for controlling the assembly of electronic devices
US10999260B1 (en) * 2020-05-12 2021-05-04 iCoin Technology, Inc. Secure messaging between cryptographic hardware modules
US11210658B2 (en) * 2020-05-12 2021-12-28 iCoin Technology, Inc. Constructing a distributed ledger transaction on a cold hardware wallet
DE102020003275B3 (de) 2020-05-29 2021-06-10 Giesecke+Devrient Mobile Security Gmbh Personalisierung eines Secure Element
US12010217B2 (en) * 2020-07-31 2024-06-11 Micron Technology, Inc. Secure memory system programming for host device verification
US11831406B2 (en) * 2020-08-21 2023-11-28 Arm Limited System, devices and/or processes for secure transfer of cryptographic control of computing platform
US11599087B2 (en) * 2020-10-21 2023-03-07 Dell Products L.P. System and method of utilizing information handling system identity types with motherboards of information handling systems
US20220141658A1 (en) * 2020-11-05 2022-05-05 Visa International Service Association One-time wireless authentication of an internet-of-things device
EP4002792A1 (en) * 2020-11-13 2022-05-25 Secure Thingz Limited An apparatus and method for provisioning electronic devices
EP4002788A1 (en) * 2020-11-13 2022-05-25 Secure Thingz Limited A system and devices for secure and efficient provisioning of electronic devices
EP4002790A1 (en) * 2020-11-13 2022-05-25 Secure Thingz Limited A provisioning method and system
EP4002789A1 (en) * 2020-11-13 2022-05-25 Secure Thingz Limited A provisioning system and method
EP4002791A1 (en) * 2020-11-13 2022-05-25 Secure Thingz Limited A provisioning system and method
CN114547633A (zh) * 2020-11-24 2022-05-27 北京晶视智能科技有限公司 人工智能模型的加密及签章方法与装置、解密及验证方法与装置
US11481520B2 (en) * 2020-12-15 2022-10-25 Hewlett Packard Enterprise Development Lp Secure identification of a printed circuit board
US20230012013A1 (en) * 2021-07-08 2023-01-12 Data I/O Corporation Secure device programming system with hardware security module and security interop layer
US11843707B2 (en) * 2021-07-12 2023-12-12 Dell Products, L.P. Systems and methods for authenticating hardware of an information handling system
US20230018433A1 (en) * 2021-07-13 2023-01-19 Vmware, Inc. Accessing corporate resources through an enrolled user device
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
EP4124980A1 (en) * 2021-07-28 2023-02-01 Giesecke+Devrient Mobile Security GmbH Personalization of a secure element
EP4124977A1 (en) * 2021-07-28 2023-02-01 Giesecke+Devrient Mobile Security GmbH Update agent with provisioning connectivity and secure element comprising the same
EP4124976A1 (en) * 2021-07-28 2023-02-01 Giesecke+Devrient Mobile Security GmbH Update agent and data pre-seeding in update agent
EP4124978A1 (en) * 2021-07-28 2023-02-01 Giesecke+Devrient Mobile Security GmbH Update of an operating system in a security element
EP4124979A1 (en) * 2021-07-28 2023-02-01 Giesecke+Devrient Mobile Security GmbH Software update in a security element
US20230090165A1 (en) * 2021-09-22 2023-03-23 Kameleonsec, Inc. Compiler add-on for code, data and execution flows attestation in a secure computing system
US11889002B2 (en) * 2021-09-23 2024-01-30 Rockwell Automation Technologies, Inc. Use of physical unclonable functions to prevent counterfeiting of industrial control products
US11966629B2 (en) * 2022-06-23 2024-04-23 Seagate Technology Llc Custom initialization in a distributed data storage system
US11954505B2 (en) * 2022-08-11 2024-04-09 Seagate Technology Llc Distributed data storage system with dormant hardware activation
CN115665350A (zh) * 2022-10-28 2023-01-31 四川长虹电器股份有限公司 智能电视软件适配多个数字功放硬件平台的处理方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE419586T1 (de) * 1995-02-13 2009-01-15 Intertrust Tech Corp Systeme und verfahren zur gesicherten transaktionsverwaltung und elektronischem rechtsschutz
US6775778B1 (en) * 1998-05-29 2004-08-10 Texas Instruments Incorporated Secure computing device having boot read only memory verification of program code
US6401140B1 (en) * 1999-01-12 2002-06-04 Dell Usa, L.P. Apparatus and method for booting a computer operation system from an intelligent input/output device having no option ROM with a virtual option ROM stored in computer
US7694121B2 (en) * 2004-06-30 2010-04-06 Microsoft Corporation System and method for protected operating system boot using state validation
US20060059574A1 (en) * 2004-09-10 2006-03-16 International Business Machines Corporation System for securely configuring a field programmable gate array or other programmable hardware
US20120084566A1 (en) * 2010-10-04 2012-04-05 Edward Chin Methods and systems for providing and controlling cryptographic secure communications across unsecured networks
US8254568B2 (en) * 2007-01-07 2012-08-28 Apple Inc. Secure booting a computing device
US8583908B2 (en) * 2007-12-31 2013-11-12 Intel Corporation Enhanced network and local boot of Unified Extensible Firmware Interface images
US8677144B2 (en) * 2008-02-25 2014-03-18 Cavium, Inc. Secure software and hardware association technique
JP5168012B2 (ja) 2008-07-28 2013-03-21 株式会社ジェイテクト プログラマブルコントローラのプログラム編集装置
US8788655B2 (en) * 2008-12-19 2014-07-22 Openpeak Inc. Systems for accepting and approving applications and methods of operation of same
CN102396251B (zh) * 2009-04-15 2015-06-24 交互数字专利控股公司 对与网络通信的设备的确认和/或认证
US9171175B2 (en) 2009-08-06 2015-10-27 Data I/O Corporation Data programming control system with secure data management and method of operation thereof
GB2477774A (en) * 2010-02-12 2011-08-17 Icera Inc Overriding production processor authentication restrictions through remote security unit for development code testing
US20120036373A1 (en) 2010-08-05 2012-02-09 Softlog Systems (2006) Ltd. Method system and device for secure firmware programming
JP5810168B2 (ja) * 2010-11-05 2015-11-11 インターデイジタル パテント ホールディングス インコーポレイテッド デバイスの妥当性確認、障害指示、および修復
US8843764B2 (en) * 2011-07-15 2014-09-23 Cavium, Inc. Secure software and hardware association technique
US9465755B2 (en) 2011-07-18 2016-10-11 Hewlett Packard Enterprise Development Lp Security parameter zeroization
JP5940159B2 (ja) * 2011-09-30 2016-06-29 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 非トラステッド・ユーザ端末にオペレーティング・システム・イメージをプロビジョニングするための方法、コンピュータ・プログラム、デバイス、装置
JP5519712B2 (ja) * 2012-01-20 2014-06-11 レノボ・シンガポール・プライベート・リミテッド コンピュータをブートする方法およびコンピュータ
US9100189B2 (en) * 2012-08-31 2015-08-04 Freescale Semiconductor, Inc. Secure provisioning in an untrusted environment
GB2508893A (en) * 2012-12-14 2014-06-18 Ibm Trusted boot device, which will not allow a computer to boot, if the computer firmware is not trusted by the boot device
TW201441932A (zh) 2013-04-19 2014-11-01 Nuvoton Technology Corp 處理裝置與系統程式更新方法
DE102013227184A1 (de) * 2013-12-27 2015-07-02 Robert Bosch Gmbh Verfahren zur Absicherung eines Systems-on-a-Chip
US11269984B2 (en) * 2014-12-09 2022-03-08 Janus Technologies, Inc. Method and apparatus for securing user operation of and access to a computer system
US10303891B2 (en) 2014-12-30 2019-05-28 Data I/O Corporation Automated manufacturing system with job packaging mechanism and method of operation thereof
DE102015108504B4 (de) * 2015-05-29 2019-05-02 Fujitsu Client Computing Limited Verfahren zum sicheren Booten eines Computersystems und Computersystem
US10025576B2 (en) * 2015-07-10 2018-07-17 Dell Products, Lp Method for deploying BIOS integrity measurement via BIOS update package and system therefor
US20170308705A1 (en) * 2016-04-22 2017-10-26 Qualcomm Incorporated System, device and method for anti-rollback protection of over-the-air updated device images
US20170372073A1 (en) * 2016-06-23 2017-12-28 Vmware, Inc. Secure booting of computer system
US10242196B2 (en) * 2016-07-29 2019-03-26 Vmware, Inc. Secure booting of computer system
US20180091315A1 (en) * 2016-09-27 2018-03-29 Qualcomm Incorporated Revocation and updating of compromised root of trust (rot)
US10069633B2 (en) 2016-09-30 2018-09-04 Data I/O Corporation Unified programming environment for programmable devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI669624B (zh) * 2018-09-19 2019-08-21 宏碁股份有限公司 網頁內容自我保護方法以及伺服器
TWI792043B (zh) * 2019-08-21 2023-02-11 德商羅伯特 博世有限公司 用於行動解決方案的開發和分配之系統和方法

Also Published As

Publication number Publication date
WO2018064392A1 (en) 2018-04-05
EP3520018B1 (en) 2024-05-22
US10069633B2 (en) 2018-09-04
US10673638B2 (en) 2020-06-02
US20240146545A1 (en) 2024-05-02
CN110088759A (zh) 2019-08-02
US20180375666A1 (en) 2018-12-27
US20180097639A1 (en) 2018-04-05
EP3520018A1 (en) 2019-08-07
US10263790B2 (en) 2019-04-16
US20220329443A1 (en) 2022-10-13
US11870915B2 (en) 2024-01-09
US11374772B1 (en) 2022-06-28
US20190245696A1 (en) 2019-08-08
EP3520018A4 (en) 2020-05-13
TWI741041B (zh) 2021-10-01

Similar Documents

Publication Publication Date Title
TWI741041B (zh) 用於可程式化設備的統一程式設計環境
US10268844B2 (en) Embedding foundational root of trust using security algorithms
US11595371B2 (en) Device programming with system generation
US10496811B2 (en) Counterfeit prevention
US10587451B2 (en) Device programming with system generation
EP3772008A1 (en) Device programming with system generation
CN110088759B (zh) 用于可编程设备的统一编程环境