CN110088759B - 用于可编程设备的统一编程环境 - Google Patents

用于可编程设备的统一编程环境 Download PDF

Info

Publication number
CN110088759B
CN110088759B CN201780070730.0A CN201780070730A CN110088759B CN 110088759 B CN110088759 B CN 110088759B CN 201780070730 A CN201780070730 A CN 201780070730A CN 110088759 B CN110088759 B CN 110088759B
Authority
CN
China
Prior art keywords
security
programmable
programming
programmable device
programmer
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201780070730.0A
Other languages
English (en)
Other versions
CN110088759A (zh
Inventor
R·古拉第
大卫·R·克里斯蒂
爱德温·R·穆诗
本杰明·M·迪阿根
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Data IO Corp
Original Assignee
Data IO Corp
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 Data IO Corp filed Critical Data IO Corp
Publication of CN110088759A publication Critical patent/CN110088759A/zh
Application granted granted Critical
Publication of CN110088759B publication Critical patent/CN110088759B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Abstract

一种安全编程***可接收具有安全性核心及目标内容载荷的工作控制封包以供编程到预定义的受信任设备集合中。设备编程器可将安全性核心安装在受信任设备上,及使用安全性核心将受信任设备重开机以验证安全性核心的正确操作。可接着将目标载荷安全地安装在受信任设备上及验证。

Description

用于可编程设备的统一编程环境
技术领域
本申请要求于2016年9月30日所提出的标题为“用于可编程设备的统一编程环境”(UNIFIED PROGRAMMING ENVIRONMENT FOR PROGRAMMABLE DEVICES)的第62/401,953号的临时申请的优先权,其整体内容特此依据专利法以引用方式并入,如同其整体内容被完全阐述在本文中。
本申请关于于2016年8月4日所提出的标题为“伪造预防”(COUNTERFEITPREVENTION)的第62/371,184号的临时申请、于2016年8月8日所提出的标题为“使用安全算法的嵌入式基础信任根”(EMBEDDING FOUNDATIONAL ROOT OF TRUST USING SECURITYALGORITHMS)的第62/372,242号的临时申请、于2016年8月1日所提出的标题为“具有***生成的设备编程”(DEVICE PROGRAMMING WITH SYSTEM GENERATION)的第62/369,304号的临时申请,这些临时申请中的各者由申请人所拥有且其整体内容以引用方式并入本文中。
实施例大致关于设备编程***,且更具体而言是关于一种用于安全编程***的统一编程环境。
背景技术
此部分中所述的方法是可推行的方法,但不一定是先前已构思或推行的方法。因此,除非另有指示,不应仅因为此部分中所述的任何方法被包括在此部分中就假设这些方法有资格作为现有技术。
电子电路板组件的某些操作是远离主要生产装配线而执行的。在各种馈送机器及自动机搬运***以集成电路填满电子电路板的同时,关于处理集成电路的操作(例如编程、测试、校验及量测)一般是在单独配备上的单独区域中执行,而不是整合到主要生产装配线中。
可定制的设备(例如闪存(Flash)、电可擦可编程只读存储器(EEPROM)、可编程逻辑设备(PLD)、现场可编程门阵列(FPGA)及并入非易失存储器元件的微控制器)可被配置为具有单独的编程配备,此单独的编程配备通常位于与电路板装配线分离的区域中。此外,***层级的组件(例如智能手机、电路板、物联网(IoT)设备、媒体播放器)也可能需要特定的安全性配置支持。
在制造在线批量制造或组装的***及子组件一般在功能上是相同的。此类产品共享了关于功能及操作的类似问题。表现在一个设备中的问题一般被发现在所有类似制造的设备中。
附图说明
在随附绘图的图中通过示例的方式(且非限制的方式)说明本发明,且在这些图中类似的附图标记指类似的元件(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为计算机***的方块图,可在此计算机***上实施本发明的实施例。
具体实施方式
在以下的说明中,为了解释的目的,为了提供本发明的彻底了解而阐述许多特定细节。然而,将理解的是,可在没有这些特定细节的情况下实行本发明。在其他实例中,习知的结构及设备是以方块图的形式图示,以避免不必要地模糊了本发明。
依据以下大纲在本文中描述实施例:
1.0总体概述
2.0结构概述
3.0功能概述
4.0示例实施例
5.0实施机构-硬件概述
6.0延伸及替代方案
1.0总体概述
为了以安全的方式配给可编程设备而公开了方法、技术及机构。安全编程***可个别加密数据及代码的目标载荷,且接着将信息编程到可编程设备中的各个个别可编程设备中。安全编程***可产生定制的载荷封包,此定制的载荷封包仅可由具有正确安全性密钥的***或设备解密。
可编程设备可包括内存芯片、电路板及完整的电子设备(例如智能手机、媒体播放器或其他消费者及工业电子设备)。安全性密钥的配置可控制可编程设备的操作。
安全编程***可安全地配置包括组件、电路板及完整产品的个别设备。通过在个别的组件制造时间实施安全性特征,可在逐个设备的基础上控制操作。安全内容、可执行代码及密钥可互操作以提供高度的安全性及控制。
依据一个实施例,此***可将安全性核心(security kernel)安装到被安装在编程器中的可编程设备中,且接着在将目标载荷配给给可编程设备之前将编程器中的可编程设备重开机以验证安全性核心。此举可验证安全性核心是正确地安装在可编程设备中的。
依据另一实施例,通过个别加密可编程设备中的一者上的目标载荷(例如电路板),接着电路板可被配置为仅与具有已注册的安全性代码的组件一同作用。此举可用来确保,电路板仅可与某些类别部分一同操作。此举提供了制造商在电路板的最终用途上的一定程度的控制。
依据另一实施例,可编程设备可验证序号或其他参数作为配给可编程设备的先决条件。在又另一实施例中,此***可基于工作控制封包中的安全性代码来限制操作。此举可防止复制或未授权地配给可编程设备。
在其他态样中,本发明包括配置为实现上述技术的计算机装置及计算机可读取媒体。
2.0结构概述
依据一实施例,图1绘示了安全编程***100的各种态样的说明图,可在此安全编程***中实行本文中所述的技术。安全编程***100可以密码术信息(cryptographicinformation)个别配置数据设备及活动的(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的胚料(blank)的一或更多者。设备放置单元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可包括输入信任根(incomingroot 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产生或在硅制造(siliconmanufacture)时间嵌入。
图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_RoT504。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是为了产品质量控制的目的在制造时所使用的计算机化***。MES702可追踪原料到成品的转变及为此转变提供文件。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的MES702中且可在此阶段交叉检查以确保它们已经是由受信任的来源所配给的。验证在配给阶段期间所记录的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在外部产生且由凭证机构PKI922签署。与密钥对的公钥154相关联的私钥152可储存在安全储存单元326的隐藏区域中。安全性凭证可储存在安全储存单元326的只读区域中。
可将唯一的硬件层级标识符(例如信任根因素)嵌到安全储存单元326中且透过安全性预编程阶段中的安全性编程来针对安全执行单元324启用这些标识符。安全性编程可在预编程可编程设备128之前执行且可包括固件及数据编程。
在设计及制造时间将信任根因素及其他硬件层级的安全标识符实施在可编程设备128中增加了安全性且改良了伪造侦测的级别。硬件层级的安全标识符被配置为难以假冒且用来认证设备的系谱。
进一步地,使用安全技术将信任根及硬件层级的安全标识符注入到安全储存单元326中以提供强力的***层级信任根及增加整体安全性。此举可支持伪造的电路板及设备的侦测。
安全性预编程阶段910可针对安全执行单元324及安全储存单元326提供不同程度的支持以适应制造商及使用者的不同需要。此举提供了可扩展的、可控制成本的及简单的程序。
安全性预编程阶段910可透过图1的编程器112中的定制工具提供秘密的及安全的编程程序,这些定制工具可针对可编程设备128中的各者提供个别化的安全性配置。编程器112可包括针对各个不同的设备类型的可编程设备128所配置的标准化安全性算法集合。
图1的安全编程***100通过侦测及移除伪造的设备、提供强力的设备身分及认证支持来提供安全的制造环境,且允许了差异的下游服务。延伸固件及数据编程模型将数据编程延伸达到安全性。此举帮助简化用于保全可编程设备128的安全性编程模型。在一说明性示例中,硅供货商可针对个别的可编程设备128中的各者提供设备信息(例如In_RoT504、序号范围或其他的唯一值)。设备信息可接着用来侦测非注册的(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期间所传输的信息一般可在50KB及32吉字节(GB)之间。此是图1的可编程设备128的一般示例。
透过网络服务提供者(ISP)所传输的信息也可能在50KB及32GB之间。可在电路板制造阶段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(OEMMES)所接收。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或类似的***。
可在设备生命周期的操作部分中的配给期间使用固件及软件的安全空中更新来实施安全设备管理。此举可针对在较不安全的通道上所传输的代码及数据更新提供额外保护。
最后,是通过对旗标异例(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 datalist)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延伸及替代方案
如本文中所使用的,用语“第一”、“第二”、“某些”及“特定”用作命名规约以彼此区隔查询、计划、表示、步骤、对象、设备或其他项目,使得可在这些项目已被介绍之后引用这些项目。除非本文中另有指定,这些用语的使用并不暗示顺序、时序或所引用的项目的任何其他特性。
在附图中,各种组件由箭头描绘为通讯耦接到各种其他组件。这些箭头仅绘示组件间的信息流的某些示例。箭头方向或在某些组件之间缺乏箭头线的情况皆不应被解译为指示某些组件本身之间的通讯的存在或不存在。确实,各组件可具有合适通讯接口的特征,通过此通讯接口,此组件可依需要变得通讯耦接到其他组件以完成本文中所述的任何功能。
在上述说明书中,已参照许多特定细节描述本发明的实施例,这些特定细节可从实施方式到实施方式而有所不同。因此,本发明为何物及申请人要本发明为何物的唯一且排他的指示为从本申请发布的权利要求集合,包括任何后续的更正,该权利要求集合呈现用以发布这些权利要求的特定形式。在此方面,尽管特定的权利要求从属关系被陈设于本申请的权利要求中,但注意本申请的从属权利要求特征可依需要与其他从属权利要求的特征及与本申请独立权利要求的特征结合,且此结合不仅是依据权利要求集合中所载的特定从属关系。并且,尽管在本文中论述了单独的实施例,但本文中所论述的实施例及/或部分实施例的任何组合可被结合以形成进一步的实施例。
本文中针对这些权利要求中所包含的用语而明确阐述的任何定义应主宰如权利要求中所使用的此类用语的意义。因此,权利要求中未明确记载的限制、构件、性质、特征、优点或属性不应以任何方式限制这些权利要求的范围。据此,要以说明性而非限制性的意义来看待本说明书及附图。

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所述的非暂时性计算机可读取媒体,其中接收该工作控制封包的步骤包括:
在该工作控制封包中以一经加密格式接收该安全性核心;
以预先加载在一编程单元中的一公钥解密该安全性核心;及
以一未加密格式将该安全性核心安装到该可编程设备中。
CN201780070730.0A 2016-09-30 2017-09-28 用于可编程设备的统一编程环境 Active CN110088759B (zh)

Applications Claiming Priority (5)

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

Publications (2)

Publication Number Publication Date
CN110088759A CN110088759A (zh) 2019-08-02
CN110088759B true CN110088759B (zh) 2024-06-25

Family

ID=61757295

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780070730.0A Active CN110088759B (zh) 2016-09-30 2017-09-28 用于可编程设备的统一编程环境

Country Status (5)

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

Families Citing this family (164)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5932837B2 (ja) 2011-01-19 2016-06-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation コードを更新および認証するための方法およびシステム、プログラムの完全性を試験する方法およびシステム
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
US11311342B2 (en) 2017-10-30 2022-04-26 Cilag Gmbh International Method for communicating with surgical instrument systems
US11801098B2 (en) 2017-10-30 2023-10-31 Cilag Gmbh International Method of hub communication with surgical instrument systems
US11229436B2 (en) 2017-10-30 2022-01-25 Cilag Gmbh International Surgical system comprising a surgical tool and a surgical hub
US11291510B2 (en) 2017-10-30 2022-04-05 Cilag Gmbh International Method of hub communication with surgical instrument systems
US11103268B2 (en) 2017-10-30 2021-08-31 Cilag Gmbh International Surgical clip applier comprising adaptive firing control
US11317919B2 (en) 2017-10-30 2022-05-03 Cilag Gmbh International Clip applier comprising a clip crimping system
US11510741B2 (en) 2017-10-30 2022-11-29 Cilag Gmbh International Method for producing a surgical instrument comprising a smart electrical system
US11564756B2 (en) 2017-10-30 2023-01-31 Cilag Gmbh International Method of hub communication with surgical instrument systems
US11911045B2 (en) 2017-10-30 2024-02-27 Cllag GmbH International Method for operating a powered articulating multi-clip applier
US11045197B2 (en) 2017-10-30 2021-06-29 Cilag Gmbh International Clip applier comprising a movable clip magazine
CN109842585B (zh) * 2017-11-27 2021-04-13 中国科学院沈阳自动化研究所 面向工业嵌入式***的网络信息安全防护单元和防护方法
US11786251B2 (en) 2017-12-28 2023-10-17 Cilag Gmbh International Method for adaptive control schemes for surgical network control and interaction
US11571234B2 (en) 2017-12-28 2023-02-07 Cilag Gmbh International Temperature control of ultrasonic end effector and control system therefor
US11540855B2 (en) 2017-12-28 2023-01-03 Cilag Gmbh International Controlling activation of an ultrasonic surgical instrument according to the presence of tissue
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
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
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
US11832899B2 (en) 2017-12-28 2023-12-05 Cilag Gmbh International Surgical systems with autonomously adjustable control programs
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
US11576677B2 (en) 2017-12-28 2023-02-14 Cilag Gmbh International Method of hub communication, processing, display, and cloud analytics
US11464535B2 (en) 2017-12-28 2022-10-11 Cilag Gmbh International Detection of end effector emersion in liquid
US11659023B2 (en) 2017-12-28 2023-05-23 Cilag Gmbh International Method of hub communication
US11832840B2 (en) 2017-12-28 2023-12-05 Cilag Gmbh International Surgical instrument having a flexible circuit
US11666331B2 (en) 2017-12-28 2023-06-06 Cilag Gmbh International Systems for detecting proximity of surgical end effector to cancerous tissue
US11844579B2 (en) 2017-12-28 2023-12-19 Cilag Gmbh International Adjustments based on airborne particle properties
US11160605B2 (en) 2017-12-28 2021-11-02 Cilag Gmbh International Surgical evacuation sensing and motor control
US11376002B2 (en) 2017-12-28 2022-07-05 Cilag Gmbh International Surgical instrument cartridge sensor assemblies
US11464559B2 (en) 2017-12-28 2022-10-11 Cilag Gmbh International Estimating state of ultrasonic end effector and control system therefor
US11529187B2 (en) 2017-12-28 2022-12-20 Cilag Gmbh International Surgical evacuation sensor arrangements
US11166772B2 (en) 2017-12-28 2021-11-09 Cilag Gmbh International Surgical hub coordination of control and communication of operating room devices
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
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
US11857152B2 (en) 2017-12-28 2024-01-02 Cilag Gmbh International Surgical hub spatial awareness to determine devices in operating theater
US11903601B2 (en) 2017-12-28 2024-02-20 Cilag Gmbh International Surgical instrument comprising a plurality of drive systems
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
US11256818B2 (en) 2017-12-28 2022-02-22 Corlina, Inc. System and method for enabling and verifying the trustworthiness of a hardware system
US11179208B2 (en) * 2017-12-28 2021-11-23 Cilag Gmbh International Cloud-based medical analytics for security and authentication trends and reactive measures
US11147607B2 (en) 2017-12-28 2021-10-19 Cilag Gmbh International Bipolar combination device that automatically adjusts pressure based on energy modality
US11234756B2 (en) 2017-12-28 2022-02-01 Cilag Gmbh International Powered surgical tool with predefined adjustable control algorithm for controlling end effector parameter
US11602393B2 (en) 2017-12-28 2023-03-14 Cilag Gmbh International Surgical evacuation sensing and generator control
US11589888B2 (en) 2017-12-28 2023-02-28 Cilag Gmbh International Method for controlling smart energy devices
US11311306B2 (en) 2017-12-28 2022-04-26 Cilag Gmbh International Surgical systems for detecting end effector tissue distribution irregularities
US11317937B2 (en) 2018-03-08 2022-05-03 Cilag Gmbh International Determining the state of an ultrasonic end effector
US11132462B2 (en) 2017-12-28 2021-09-28 Cilag Gmbh International Data stripping method to interrogate patient records and create anonymized record
US11678881B2 (en) 2017-12-28 2023-06-20 Cilag Gmbh International Spatial awareness of surgical hubs in operating rooms
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
US11771487B2 (en) 2017-12-28 2023-10-03 Cilag Gmbh International Mechanisms for controlling different electromechanical systems of an electrosurgical instrument
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
US11304699B2 (en) 2017-12-28 2022-04-19 Cilag Gmbh International Method for adaptive control schemes for surgical network control and interaction
US11266468B2 (en) 2017-12-28 2022-03-08 Cilag Gmbh International Cooperative utilization of data derived from secondary sources by intelligent surgical hubs
US11864728B2 (en) 2017-12-28 2024-01-09 Cilag Gmbh International Characterization of tissue irregularities through the use of mono-chromatic light refractivity
US11364075B2 (en) 2017-12-28 2022-06-21 Cilag Gmbh International Radio frequency energy device for delivering combined electrical signals
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
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
US20190201113A1 (en) 2017-12-28 2019-07-04 Ethicon Llc Controls for robot-assisted surgical platforms
US11284936B2 (en) 2017-12-28 2022-03-29 Cilag Gmbh International Surgical instrument having a flexible electrode
US11744604B2 (en) 2017-12-28 2023-09-05 Cilag Gmbh International Surgical instrument with a hardware-only control circuit
US11304720B2 (en) 2017-12-28 2022-04-19 Cilag Gmbh International Activation of energy devices
US11273001B2 (en) 2017-12-28 2022-03-15 Cilag Gmbh International Surgical hub and modular device response adjustment based on situational awareness
US11410259B2 (en) 2017-12-28 2022-08-09 Cilag Gmbh International Adaptive control program updates for surgical devices
US11424027B2 (en) 2017-12-28 2022-08-23 Cilag Gmbh International Method for operating surgical instrument systems
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
US11696760B2 (en) 2017-12-28 2023-07-11 Cilag Gmbh International Safety systems for smart powered surgical stapling
US11672605B2 (en) 2017-12-28 2023-06-13 Cilag Gmbh International Sterile field interactive control displays
US11253315B2 (en) 2017-12-28 2022-02-22 Cilag Gmbh International Increasing radio frequency to create pad-less monopolar loop
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
JP6692792B2 (ja) * 2017-12-28 2020-05-13 三菱重工業株式会社 監視装置、監視システム、監視方法及びプログラム
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
US11896443B2 (en) 2017-12-28 2024-02-13 Cilag Gmbh International Control of a surgical system through a surgical barrier
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
US11278281B2 (en) 2017-12-28 2022-03-22 Cilag Gmbh International Interactive surgical system
US11109866B2 (en) 2017-12-28 2021-09-07 Cilag Gmbh International Method for circular stapler control algorithm adjustment based on situational awareness
US11937769B2 (en) 2017-12-28 2024-03-26 Cilag Gmbh International Method of hub communication, processing, storage and display
US11559307B2 (en) 2017-12-28 2023-01-24 Cilag Gmbh International Method of robotic hub communication, detection, and control
US11612408B2 (en) 2017-12-28 2023-03-28 Cilag Gmbh International Determining tissue composition via an ultrasonic system
US11432885B2 (en) 2017-12-28 2022-09-06 Cilag Gmbh International Sensing arrangements for robot-assisted surgical platforms
US11559308B2 (en) 2017-12-28 2023-01-24 Cilag Gmbh International Method for smart energy device infrastructure
US11324557B2 (en) 2017-12-28 2022-05-10 Cilag Gmbh International Surgical instrument with a sensing array
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
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
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
US11304745B2 (en) 2017-12-28 2022-04-19 Cilag Gmbh International Surgical evacuation sensing and display
US11213359B2 (en) 2017-12-28 2022-01-04 Cilag Gmbh International Controllers for robot-assisted surgical platforms
US11786245B2 (en) 2017-12-28 2023-10-17 Cilag Gmbh International Surgical systems with prioritized data transmission capabilities
US11291495B2 (en) 2017-12-28 2022-04-05 Cilag Gmbh International Interruption of energy due to inadvertent capacitive coupling
US11419630B2 (en) 2017-12-28 2022-08-23 Cilag Gmbh International Surgical system distributed processing
WO2019152521A1 (en) 2018-01-30 2019-08-08 Corlina, Inc. User and device onboarding
US11589915B2 (en) 2018-03-08 2023-02-28 Cilag Gmbh International In-the-jaw classifier based on a model
US11259830B2 (en) 2018-03-08 2022-03-01 Cilag Gmbh International Methods for controlling temperature in ultrasonic device
US11344326B2 (en) 2018-03-08 2022-05-31 Cilag Gmbh International Smart blade technology to control blade instability
US11471156B2 (en) 2018-03-28 2022-10-18 Cilag Gmbh International Surgical stapling devices with improved rotary driven closure systems
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
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
US11219453B2 (en) 2018-03-28 2022-01-11 Cilag Gmbh International Surgical stapling devices with cartridge compatible closure and firing lockout arrangements
US11278280B2 (en) 2018-03-28 2022-03-22 Cilag Gmbh International Surgical instrument comprising a jaw closure lockout
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
TWI669624B (zh) * 2018-09-19 2019-08-21 宏碁股份有限公司 網頁內容自我保護方法以及伺服器
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
WO2020117549A1 (en) 2018-12-06 2020-06-11 Mocana Corporation 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
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
US11369377B2 (en) 2019-02-19 2022-06-28 Cilag Gmbh International Surgical stapling assembly with cartridge based retainer configured to unlock a firing lockout
US11751872B2 (en) 2019-02-19 2023-09-12 Cilag Gmbh International Insertable deactivator element for surgical stapler lockouts
US11357503B2 (en) 2019-02-19 2022-06-14 Cilag Gmbh International Staple cartridge retainers with frangible retention features and methods of using same
US11331100B2 (en) 2019-02-19 2022-05-17 Cilag Gmbh International Staple cartridge retainer system with authentication keys
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
DE102019206302A1 (de) * 2019-05-02 2020-11-05 Continental Automotive Gmbh Verfahren und Vorrichtung zum Übertragen eines Boot-Codes mit verbesserter Datensicherheit
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 沈昌祥 基于双体系结构可信计算平台的动态度量方法
JP7420920B2 (ja) * 2019-08-21 2024-01-23 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング モビリティソリューションの開発及び分配のためのシステム及び方法
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
CN111740965B (zh) * 2020-06-09 2022-08-19 河海大学常州校区 一种基于物理不可克隆方程的物联网设备认证方法
CN112069494A (zh) * 2020-06-30 2020-12-11 西安万像电子科技有限公司 一种零终端的权限操作方法及***
US12010217B2 (en) * 2020-07-31 2024-06-11 Micron Technology, Inc. Secure memory system programming for host device verification
US20220058275A1 (en) * 2020-08-21 2022-02-24 Arm Limited System, devices and/or processes for system ownership change event
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
EP4002790A1 (en) * 2020-11-13 2022-05-25 Secure Thingz Limited A provisioning method and system
EP4002792A1 (en) * 2020-11-13 2022-05-25 Secure Thingz Limited An apparatus and method for provisioning electronic devices
EP4002791A1 (en) * 2020-11-13 2022-05-25 Secure Thingz Limited A provisioning system and method
EP4002788A1 (en) * 2020-11-13 2022-05-25 Secure Thingz Limited A system and devices for secure and efficient provisioning of electronic devices
EP4002789A1 (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
WO2023283460A1 (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
EP4124979A1 (en) * 2021-07-28 2023-02-01 Giesecke+Devrient Mobile Security GmbH Software update in a security 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
EP4124978A1 (en) * 2021-07-28 2023-02-01 Giesecke+Devrient Mobile Security GmbH Update of an operating system in a security element
EP4124976A1 (en) * 2021-07-28 2023-02-01 Giesecke+Devrient Mobile Security GmbH Update agent and data pre-seeding in update agent
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 (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101303717B (zh) * 1995-02-13 2015-04-29 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的***和方法
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
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 株式会社ジェイテクト プログラマブルコントローラのプログラム編集装置
CN102648471B (zh) * 2008-11-24 2015-05-27 塞尔蒂卡姆公司 用于基于硬件的安全的***和方法
US8788655B2 (en) * 2008-12-19 2014-07-22 Openpeak Inc. Systems for accepting and approving applications and methods of operation of same
EP2814277A1 (en) * 2009-04-15 2014-12-17 Interdigital Patent Holdings, Inc. Validation and/or authentication of a device for communication with a network
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
US20120084562A1 (en) * 2010-10-04 2012-04-05 Ralph Rabert Farina Methods and systems for updating a secure boot device using cryptographically secured communications across unsecured networks
JP5810168B2 (ja) * 2010-11-05 2015-11-11 インターデイジタル パテント ホールディングス インコーポレイテッド デバイスの妥当性確認、障害指示、および修復
US8843764B2 (en) * 2011-07-15 2014-09-23 Cavium, Inc. Secure software and hardware association technique
WO2013012435A1 (en) 2011-07-18 2013-01-24 Hewlett-Packard Development Company, L.P. Security parameter zeroization
WO2013046068A1 (en) * 2011-09-30 2013-04-04 International Business Machines Corporation Provisioning of operating systems to user terminals
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

Also Published As

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

Similar Documents

Publication Publication Date Title
CN110088759B (zh) 用于可编程设备的统一编程环境
CN109997333B (zh) 使用安全算法嵌入基础性的信任根
US11824847B2 (en) Device programming with system generation
US10587451B2 (en) Device programming with system generation
US10496811B2 (en) Counterfeit prevention
EP3772008A1 (en) Device programming with system generation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant