CN110050273A - 利用系统产生的装置程序化 - Google Patents

利用系统产生的装置程序化 Download PDF

Info

Publication number
CN110050273A
CN110050273A CN201780053611.4A CN201780053611A CN110050273A CN 110050273 A CN110050273 A CN 110050273A CN 201780053611 A CN201780053611 A CN 201780053611A CN 110050273 A CN110050273 A CN 110050273A
Authority
CN
China
Prior art keywords
oem
programmable device
certificate
programmable
device certificate
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.)
Granted
Application number
CN201780053611.4A
Other languages
English (en)
Other versions
CN110050273B (zh
Inventor
R·古拉第
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 CN110050273A publication Critical patent/CN110050273A/zh
Application granted granted Critical
Publication of CN110050273B publication Critical patent/CN110050273B/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/109Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by using specially-adapted hardware at the client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data

Abstract

一种用于将目标有效负载设置及编程到安装在编程器中的可编程装置中的安全编程系统与方法。可编程装置可以在编程之前进行认证,以校验装置系为硅供货商生产的有效装置。目标有效负载可以编程到可编程装置中,并与经授权的制造商链接。可编程装置可以藉由校验硅供货商与经授权的制造商在对目标有效负载进行编程之后进行校验。

Description

利用系统产生的装置程序化
技术领域
本申请案根据专利法请求2017年6月30日提交的标题为「DEVICE PROGRAMMINGWITH SYSTEM GENERATION」的非临时申请案第15/640,438号与2016年8月1日提交的标题为「DEVICE PROGRAMMING WITH SYSTEM GENERATION」的临时申请案第62/369,304号的的优先权,其全部内容藉由引用并入本文,如同在此完全阐述。
本申请案系关于2016年8月4日提交的标题为「COUNTERFEIT PREVENTION」的临时申请案第62/371,184号、2016年8月8日提交的标题为「EMBEDDING FOUNDATIONAL ROOT OFTRUST USING SECURITY ALGORITHMS」的临时申请案第62/372,242号,2016年9月30日提交的标题为「UNIFIED PROGRAMMING ENVIRONMENT FOR PROGRAMMABLE DEVICES」的临时申请案第62/401,953号,以上每一者均由申请人所有,并藉由引用整体并入本文。
实施例一般系关于装置编程系统,更具体而言,系关于利用系统产生的安全编程系统。
背景技术
此段落中所述的方式是可推行的方式,但不一定是先前已构思或推行的方式。因此,除非原本指示,不应仅因为此段落中所述的任何方式被包括在此段落中就假设该等方式有资格作为先前技术。
电子电路板组件的某些操作远离于主要生产组件线路而执行。尽管各种馈入器机器及机器人处置系统以集成电路填充电子电路板,关于处理集成电路的操作(例如编程、测试、校正、及量测)一般执行于单独装备上的单独区域中,而不是整合进主要生产组件线路。
可定制的装置(例如闪存(Flash)、电子可抹除可编程只读存储器(EEPROM)、可编程逻辑设备(PLD)、现场可编程门阵列(FPGA)、及结合非挥发性内存组件的微控制器)可配置为具有通常位于与电路板组件线路分开的区域中的单独编程装备。此外,系统级部件(例如智能电话、电路板、物联网(IoT)装置、媒体播放器)亦可能需要特定的安全配置支持。
在生产线路上批量制造或组装的系统与子组件在功能上通常相同。这些产品在功能及操作上都有类似的问题。在一个装置中出现的问题通常在所有类似的制造装置中都会发现。
【发明内容】
根据一个实施例,藉由在可编程装置中之一者(例如电路板)上个别加密目标有效负载,则电路板可经配置为仅对具有已注册安全代码的部件进行工作。这可用于确保电路板只能利用某些类别的部件进行操作。此举为制造商提供在板的最终使用上的一定程度的控制。
根据另一实施例,可编程装置可以验证序列号或其他参数,以作为装置操作的先决条件。在另一实施例中,可编程装置可以提供代码签名设施,以在执行之前认证代码。
根据另一实施例,在对目标有效负载进行编程之后,可以在再次编程及认证之前认证可编程装置。此举可以包括认证硅供货商装置证书及原始装备制造商(OEM)装置证书。可编程装置可以包括识别硅供货商、OEM、用于编程装置的工厂、编程器、及可用于追踪及认证可编程装置的生产的其他识别信息的安全信息。
在其他态样中,本发明包括经配置为实现上述技术的计算机设备及计算机可读取媒体。
附图说明
在随附图式的图式中藉由示例的方式(且非限制的方式)说明本发明,而且图式中类似的组件符号系指称类似的组件,其中:
第1图图示根据实施例之安全编程系统的说明图;
第2图图标编程器之实例;
第3图图标受信任装置之实例;
第4图图标数据装置之实例;
第5图图标装置识别之实例;
第6图图标安全编程系统的示例性方块图;
第7图图标安全编程系统的第二示例性方块图;
第8图系为受信任装置之一个设置者的方块图;
第9图系为管理及安全处理系统的实例;
第10图系为安全组件使用案例的详细实例;
第11图系为依据一或更多个实施例之针对可编程装置的设置处理流程的实例;
第12图系为依据一或更多个实施例之针对可编程装置的安全制造处理流程的实例;以及
第13图系为计算机系统的方块图,可在该计算机系统上实施本发明的实施例。
具体实施方式
在以下的说明中,为了解释之目的,阐述许多特定细节,以提供本发明的彻底了解。然而,将理解,可以在没有这些特定细节的情况下实行本发明。在其他实例中,熟知的结构及装置系以方块图的形式图示,以避免不必要地模糊化本发明。
根据以下概述在本文中描述实施例:
1.0.一般概述
2.0.结构概述
3.0.功能概述
4.0.示例性实施例
5.0.实施机构-硬件概述
6.0.延伸及替代方案
1.0.一般概述
为了以安全的方式设置可编程装置而揭露方式、技术、及机构。安全编程系统可以个别加密数据及代码的目标有效负载,并接着将信息编程进每一个别的可编程装置。安全编程系统可以建立定制的有效负载封包,该定制的有效负载封包仅可由具有正确安全密钥的系统或装置解密。
可编程装置可以包括内存芯片、电路板、及完整的电子装置,例如智能电话、媒体播放器、或其他消费及工业电子装置。安全密钥的配置可控制可编程装置的操作。
安全编程系统可以安全地配置个别装置,包括部件、电路板、及完整的产品。藉由在个别部件制造时实现安全特征,可以藉由装置基础控制装置上的操作。安全内容、代码、及密钥可以互相操作,以提供高度的安全性及控制。
2.0.结构概述
现在参照第1图,依据实施例,安全编程系统100的各种态样的说明图系图示于第1图中,其中可在该安全编程系统100中实行本文中所述的技术。安全编程系统100可以利用密码信息个别配置数据装置与主动且受信任的装置,以提供安全的编程及操作环境。
安全编程系统100包含具有编程器112的编程单元110、安全控制器114、安全密钥106、用于耦接至可编程装置的转接器、第一安全模块116、第二安全模块118、及第n安全模块120。安全编程系统100可以耦接至安全主系统104,该安全主系统104具有安全主储存系统102。安全主系统104与安全主储存系统102可以产生及安全地储存用于加密及解密信息的安全密钥106。安全密钥106可以实现各种安全范例。举例而言,安全密钥106可以包括私钥152及公钥154的密钥对150。密钥对150可以用于实现公共密钥加密系统,其中可以使用私钥152解密由公钥154加密的资料。安全编程系统100可以根据需要包括多个不同的密钥对150。可以针对包括安全编程系统100、编程单元110、编程器112、安全控制器114、安全模块、可编程装置128、数据装置132、受信任装置130、或任何其他系统组件的不同装置或系统组件而实现密钥对150、私钥152、及公钥154。
系统100包含一或更多个计算装置。这些一或更多个计算装置包括配置为实施本文中所述之各种逻辑部件(包括具有编程器112之编程单元110、安全控制器114、转接器、第一安全模块116、第二安全模块118、及第n安全模块120的部件)之硬件及软件的任何组合。举例而言,一或更多个计算装置可以包括储存用于实施本文中所述之各种部件之指令的一或更多个内存、配置为执行储存于一或更多个内存中之指令的一或更多个硬件处理器、及用于储存由各种部件所利用及操控之数据结构之一或更多个内存中的各种数据储存库。
编程单元110可以是用于将数据、元数据、及代码编程至可编程装置128上的安全系统。编程单元110可以从安全主系统104接收安全信息,处理该信息,并将个别配置版本的安全信息传输至可编程装置128。
编程单元110可以包括编程器112。编程器112可以是用于实体编程可编程装置128的电机系统。举例而言,编程器112可以接收包含可编程装置128的托盘,将可编程装置128电耦接至转接单元、及将安全信息传输至可编程装置128。编程单元110可以从可编程装置128中之每一者接收个体化状态信息,并在个别装置的基础上定制传输至可编程装置128中之每一者的安全信息。举例而言,可编程装置128中之每一者可接收个别的信息区块,该信息区块不同于传输至可编程装置中之其他者的信息。
编程器112可耦接至可用以存取可编程装置128之转接器中的一或更多者。转接器可包括第一转接器122、第二转接器124、及第n转接器126。
在说明性实例中,第一转接器122可以是可用于将可编程装置中之一或更多者电连接至编程器112的硬件装置。编程器112可以接着将一版本的安全信息传输至可编程装置128中之一者。第一转接器122可包括用于安装可编程装置128的一或更多个插槽。第一转接器122可以包括用于安装集成电路的插槽、连接器、零插入力(ZIF)插槽、或类似装置。
尽管转接器系描述为用于安装可编程装置128的电机单元,应了解,转接器亦可具有其他实施方式。举例而言,若可编程装置128系为独立的电子装置(例如手机、消费电子装置、电路板、或具有主动部件的类似装置),则转接器可包括用于与可编程装置128通讯的机构。转接器可以包括电缆链路、通用串行总线链路、串行连接、并列连接、无线通信链路、电子数据总线接口、光接口、或任何其他通讯机构。
可编程装置128系为可由编程单元110提供安全信息的装置。举例而言,可编程装置128可以包括数据装置(例如闪存单元)、可编程只读存储器、安全数据储存装置、或其他数据储存装置。
提供步骤可以包括将资料及/或代码信息传输至装置。举例而言,可以藉由利用数据编程闪存单元,以提供闪存单元。
可编程装置128亦可包括受信任装置130,受信任装置130包括安全数据及安全编程信息。举例而言,可编程装置128可包括受信任装置130,例如手机、硬件安全模块、受信任的编程模块、电路板、或类似装置。
数据装置132可以包括任何数量的装置,例如第一数据装置134、第二数据装置136、及第n数据装置138。受信任装置130可以包括任何数量的受信任装置,例如第一受信任装置140、第二受信任装置142、及高达第n受信任装置144。
可以将个别定制的安全信息提供至可编程装置128中之每一者。因此,可编程装置128中之每一者可以包括单独的安全密钥106的集合,安全密钥106可用于个别加密储存于可编程装置128中的数据。此举提供以下能力:在可编程装置128中之每一者上不同地加密安全信息148,以最大化安全性。可编程装置128中之每一者可以利用个别安全密钥106以进行个性化。
可编程装置128可经配置以包括经配对装置146。经配对装置146系为可以共享安全密钥106中之一或更多者的可编程装置128中之二或更多者。此举可以允许经配对装置146中之每一者侦测及认证相同群组中之经配对装置146中的另一者。因此,可以与经配对装置146中的另一者共享来自经配对装置146中之一者的数据。此举可以允许例如以下功能:共享信息、认证经配对装置146中的二或更多者之间的双向安全信道、识别其他相关的装置、或其组合。
在说明性实例中,安全编程系统100可以用于建立经配对装置146中之一者,使得第一数据装置134(例如系统信息模块(SIM)芯片)与第一受信任装置140(例如智能电话)配对。在此配置中,可以利用用于经配对装置146的安全密钥106编程第一数据装置134及第一受信任装置140两者。因此,第一受信任装置140可以验证第一数据装置134的安全信息148(例如序列号),以认证第一受信任装置140被允许使用第一数据装置134上的其他信息。
编程单元110可以包括耦接至编程器112的安全控制器114。安全控制器114系为用于处理安全信息的计算装置。安全控制器114可以包括特定密码技术及计算硬件,以促进密码信息的处理。举例而言,安全控制器114可以包括量子计算机、并行计算电路系统、配置为处理安全信息的现场可编程门阵列(FPGA)、共处理器、数组逻辑单元、微处理器、或其组合。
安全控制器114可以是特别配置为防止在处理安全信息的输入、中间、或最终阶段处未授权地存取安全信息的安全装置。安全控制器114可以提供安全代码组件314执行于其中的安全执行环境。举例而言,安全控制器114可以是硬件安全模块(HSM)、微处理器、受信任的安全模块(TPM)、专用安全单元、或其组合。安全控制器114可以是编程单元110的一部分。举例而言,安全控制器114(例如硬件安全模块)可以包括在编程器112内。
安全控制器114可耦接至安全模块,以提供特定安全功能。安全模块可以包括第一安全模块116、第二安全模块118、及第n安全模块120。安全模块中之每一者可以提供特定安全功能,例如识别、认证、加密、解密、验证、代码签署、数据抽取、或其组合。举例而言,安全模块可以是硬件、软件、或其组合。
举例而言,第一安全模块116可经配置以将应用编程接口(API)提供至标准化的通用安全功能集合。在另一实例中,第二安全模块118可以是专用硬件及软件的组合,以提供更快速的数据加密及解密。
编程单元110可以包括安全密钥106中之一或更多者的安全储存器。可以在安全编程系统100内部运算安全密钥106、可外部地运算及由安全编程系统100接收安全密钥106、或其组合。
安全密钥106可以用于加密及解密安全信息。安全密钥106可以用于实施不同的安全方法及协议。举例而言,安全密钥106可用于实施公钥加密系统。在另一实例中,安全密钥106可以用于实施不同的安全协议或方法。尽管安全密钥106可描述为用于公钥加密系统,应了解,安全密钥106可以用于实施不同的安全典范。
安全编程系统100之优点中的一者包括以下能力:将不同的安全密钥106的集合以及由个别安全密钥106所加密之不同版本的安全信息148提供至可编程装置128中之每一者。此举可确保用于解密可编程装置128中之一者上之安全信息148的安全密钥106不能用于解密可编程装置128中之另一者上的安全信息。可编程装置128中之每一者可以具有安全密钥106中的单独一者,以提供最大保护。
现在参照第2图,其中图示编程器112的实例。编程器112系为用于提供可编程装置128的电机装置。
编程器112可用于存取可编程装置128,并将内容有效负载提供至可编程装置128。内容有效负载可以包括第1图的数据、代码、安全密钥106、第1图的安全信息148、及其他相关内容。
编程器112可以具有各种配置。编程器112可以包括编程处理器202、输入设备插座206、装置转接器208、目的地插槽210、装置放置单元212、及输出装置插座214。举例而言,编程器112可以是编程器112、芯片编程器、装置提供系统、电路板编程器、或类似的提供系统。
编程器112可以具有编程器识别216。编程器识别216系为用于识别编程器112的唯一值。
编程器112可以藉由将数据图像初始化及写入可编程装置128以配置可编程装置128。可以针对可编程装置128的装置类型配置数据图像。编程器112可以使用直接或间接内存存取,以将数据传输至可编程装置128。
编程器112可以接收可编程装置128的单一有效负载图像,并将图像储存在本端编程器储存单元中。有效负载图像可以处理成针对可编程装置128中之每一者的个别图像。配置可编程装置128之步骤可以在可编程装置128上储存内存结构、密码数据、及用户数据。配置之步骤可以包括在可编程装置128上形成单次结构(例如分区)之步骤。
编程器112可以包括编程处理器202。编程处理器202系为用于控制编程器112的计算单元。编程处理器202可以包括中央处理单元(未图标)、编程器储存单元204、通讯接口(未图标)、及软件(未图标)。
编程处理器202可以具有各种配置。举例而言,编程处理器202可以包括安全控制器,或者可以耦接至系统控制器。编程处理器202可以是单处理器、多处理器、云计算组件、或其组合。
编程器储存单元204系为用于储存及检索信息的装置。举例而言,编程器112的编程器储存单元204可以是碟驱动器、固态内存、光储存装置、或其组合。
编程器112可以包括用于操作编程器204的软件。软件系为用于在编程处理器202上执行的控制信息。软件可以储存在编程器储存单元204中,并在编程处理器202上执行。
编程器112可以包括输入设备插座206。输入设备插座206系为可编程装置128的来源。举例而言,输入设备插座206可以是符合联合电子装置工程委员会(JEDEC)标准的托盘。输入设备插座206可用于托持未经编程的装置。
编程器112可以包括输出装置插座214。输出装置插座214系为已提供的可编程装置128的目的地。举例而言,输出装置插座214可以是用于托持成品装置、储存管、运输包装、或其他类似结构的空JEDEC托盘。
编程器112可以包括装置转接器208。装置转接器208系为用于耦接至可编程装置128的机构。
装置转接器208可以具有各种配置。举例而言,装置转接器208可以包括用于安装可编程装置128(例如芯片)的目的地插槽210。插槽系为用于托持可编程装置128并与可编程装置128对接的机构。装置转接器208可以模块化,并且可以从编程器112移除,以适应不同的插槽配置。装置转接器208可以包括用于附接至编程器112的闩锁机构(未图示)。
目的地插槽210可以托持可编程装置128。目的地插槽210可以用于读取新信息或将新信息写入可编程装置128。
编程器112可以包括装置放置单元212。装置放置单元212系为用于将可编程装置128定位在目的地插槽210之一者中的机构。
可以利用各种方式实现装置放置单元212。举例而言,装置放置单元212可以是机器臂、拾取及放置机构、或其组合。尽管可以将装置放置单元212描述为轨道式定位系统,但应理解,可以使用能够将可编程装置128中之一者定位在目的地插槽210中的任何系统。
装置放置单元212可以从输入设备插座206检索空白的一或更多个可编程装置128。装置放置单元212可以将可编程装置128传输至装置转接器208的目的地插槽210。
一旦藉由装置转接器208接合及固定可编程装置128,则可以开始装置编程处理。编程器112可以将信息的本端副本编程到目的地插槽210中之一者中的可编程装置128。举例而言,编程信息的本端副本可以在预编程的主装置中、来自本端储存器中的档案、或来自远程服务器。
一旦完成编程,则装置放置单元212可以将已编程的可编程装置128运输至输出装置插座214。装置放置单元212可以将具有错误的可编程装置128中的任一者运输至废品箱(未图示)。
编程器112可以包括编程器识别216。编程器识别216系为用于编程器112的唯一值。编程器识别216可用于识别编程器112。编程器识别216可以合并至每一可编程装置128的装置识别,以指示使用哪个编程器112对装置进行编程。
现在参照第3图,其中图标受信任装置130中之一者的实例。受信任装置130系为具有安全储存单元326与安全执行单元324的部件。受信任装置130系为能够在安全执行单元324中执行安全代码的活动部件,以对安全储存单元326中的安全数据执行操作。
可以藉由第1图的安全编程系统100提供受信任装置130,以包括安全信息。举例而言,受信任装置130可以包括装置识别302、安全算法304、安全证书306、及密钥对150,密钥对150中之每一者具有私钥152与公钥154。
在说明性实例中,安全密钥106可以包含用于公钥加密系统的一或更多个密钥对150。可以使用密钥对150中之一者的公钥154加密安全信息,并使用私钥152解密安全信息。然而,应理解,系统可以采用不同的安全范例,包括对称加密、非对称加密、数据加密标准(DES)、哈希代码、PGP、或其他密码系统。在进一步实例中,密钥对150可以用于使用两个不同组的安全密钥106以提供数字签名。在数字签名实例中,可以使用第一组件的私钥152与第二组件的公钥154加密讯息或有效负载。可以使用第一组件的公钥154与第二组件的私钥152以解密所得到的加密讯息。若讯息被成功解密,则表明该讯息系藉由第一组件加密,而因此建立数字签名。
装置识别302系为可以唯一识别每一受信任装置130的个别数据值。举例而言,装置识别302可以包括序列号、标记、安全代码、或其组合。
安全算法304系为安全代码组件314。安全算法304可以将应用编程接口提供至外部系统,以控制受信任装置130上的安全功能。可以针对每一受信任装置130定制安全算法304。举例而言,安全算法304可以包括代码组件314,例如源代码、可执行代码、函式库模块、链接模块、配置档案、初始化数据、硬件句柄、或其组合。
安全证书306系为与受信任装置130中之一者相关联的安全物件。可以预编程安全证书306,以证明装置具有嵌入其中的特定信任根。安全证书306可以具有公钥154中之一或更多者。安全证书306可以包括安全数据,例如密钥对150、第1图的安全密钥106、加密密码、或其组合。
安全证书306可以是安全储存的数据组件。举例而言,安全证书306可以是在使用之前必须解密的加密安全信息。
密钥对150可以是具有用于加密及解密数据的二或更多个单独的安全密钥的安全组件。举例而言,密钥对150可以包括私钥152与公钥154。利用公钥154加密的安全信息可以使用私钥152解密。
可以利用各种方式实现密钥对150。举例而言,密钥对150可经配置以具有不同的密钥长度以改变安全等级。可以利用相同或不同的字符长度实现私钥152与公钥154。
尽管在公钥加密系统的上下文中描述密钥对150,但应理解,密钥对150亦可用于实现其他加密实例。举例而言,密钥对150可以用于对称加密、非对称加密、标准式加密、哈希算法、或任何其他加密系统。
受信任装置130可以包括实现为安全模块的安全功能。举例而言,受信任装置130可以包括识别模块316、认证模块320、密码模块318、及代码签名模块322。
识别模块316可以校验可编程装置128中之一者的识别。识别模块316可以接收可编程装置128中之一者的装置识别302,并决定装置识别302是否正确。举例而言,装置识别320可以与已知装置的列表进行比较,与校验和进行比较,使用计算算法进行比较,或使用类似技术进行比较。
认证模块320可以认证可编程装置128中之一者的一或更多个属性。认证模块320可以接收装置识别302以及包括一或更多个安全密钥106的安全参数,以决定所提供的安全参数是否有效。认证模块320亦可用于验证装置识别302。
可以利用各种方式决定安全参数的有效性。举例而言,可以藉由使用受信任装置130中之一者可使用的安全密钥中之一者来成功译码安全参数而验证安全参数的有效性。在另一实例中,可以藉由解密安全参数中之一者并将其与储存在受信任装置130中之一者内的预定义值进行比较,以验证安全参数的有效性。
密码模块318系为用于执行密码操作的单元。密码模块318可以提供用于执行计算密集型操作(例如加密及解密)的接口。其他安全模块可以与密码模块318耦接,以提供安全功能。
可以利用各种方式实现密码模块318。举例而言,密码模块318可以包括硬件、软件、或其组合。密码模块318可以提供标准化接口,以允许其他安全模块执行所需的密码功能。
代码签名模块322系为用于安全代码组件314的单元。代码签名模块322可以加密代码组件,解密代码组件,以及句柄组件的执行。代码签名模块322可以用于确保可以藉由校验与代码组件314相关联的安全信息而在受信任装置130中之一者上执行代码组件314中之一者。
在说明性实例中,代码组件314中之每一者可以包括执行参数,以指示代码组件314被授权执行的受信任装置130的型号。代码签名模块322可以用于验证执行参数,将参数与受信任装置130中之一者中的型号信息进行比较,以及仅当二个值匹配时才允许执行代码组件314。此举可以用于将代码组件314的操作限制于特定的高端电话或其他特定装置。
受信任装置130的优点中之一者系为受信任装置130可以在内部识别及认证安全信息,以增加安全等级。受信任装置130可以使用储存于安全储存单元326中的安全密钥106以验证安全信息。
当受信任装置130是安全的时候,受信任装置130可以提供信任度量。受信任装置130可以具有各种配置。举例而言,受信任装置130可以具有系统识别、认证机构、加密及解密功能、保护可执行文件的代码签名、受信任储存、及受信任执行环境。
系统识别可以包括识别或描述硬件与软件部件的组件。受信任装置130可以具有安全地认证其身份与其他属性的能力。受信任装置必须能够安全地加密及解密信息。受信任装置130必须能够认证受信任代码。受信任的装置必须具有安全的储存及执行能力。
安全编程系统100必须能够实现信任根的系统。信任根(RoT)系为受信任的计算环境中始终受到系统信任的一组功能。举例而言,信任根可以作为控制受信任计算平台密码处理的单独的安全计算引擎。可替代地,装置可以实现信任根,以作为受固有信任的硬件与软件部件。他们系设计成安全的,可以在硬件中实现或藉由硬件保护。他们可以用于执行安全关键功能,例如量测或校验软件,保护密码密钥,以及执行装置认证。
信任根可以提供各种安全功能,包括:实时加密、侦测及报告篡改安全数据、侦测主动篡改尝试、数字版权管理、及其他安全功能。
由于来自装置的物理存取的较高风险,所以在移动硬件空间中实施安全操作是困难的。此类安全装置要求硬件与受保护的数据及软件紧密合作,以确保安全操作。
现在参照第4图,其中图标数据装置132中之一者的实例。数据装置132系为具有安全储存单元326的部件。数据装置132系为被动式部件,能够将安全数据储存在安全储存单元326中,并在藉由第1图的受信任装置130中之一者存取时提供对储存数据的存取。
可以藉由第1图的安全编程系统100提供数据装置132,以包括安全信息。举例而言,数据装置132可以包括装置识别302、安全算法304、第3图的安全证书306、及密钥对150,密钥对150中之每一者具有私钥152与公钥154。在这种情况下,可以从数据装置132内部存取安全储存单元326内的数据。
安全储存单元326可以作为单次写入数据区域。可以将信息编程到安全储存单元326中,随后可以处理安全储存单元326,以从数据装置132外部消除对安全储存单元326内的数据的存取。
在说明性实例中,数据装置132中之一者可以是闪存装置。在闪存装置内,闪存可以划分成不同区块。一些区块可以用于提供一般的内存空间。一些其他区块可以配置成私密,并用于储存无法从闪存驱动器外部存取的信息。可以使用私密区块,以形成安全储存单元326。
在另一实例中,安全储存单元326可以是由安全保险丝保护的数据装置132中之一者上的专用内存区域。可以将数据写入安全储存单元326,随后藉由烧断安全保险丝而消除外部存取。
每一数据装置132可以包括受信任证书402。受信任证书402系为可以包括其他安全参数的数据结构。举例而言,受信任证书402可以包括装置识别302、安全算法304、及密钥对150。
现在参照第5图,其中图标装置识别302的实例。装置识别302系为可用于唯一地识别第1图的可编程装置128、第1图的安全编程系统100、第1图的编程器112、或其组合中之一者的数据结构。装置识别302可以用于描述包括数据装置132与受信任装置130的可编程装置128。
装置识别302可以具有各种配置。举例而言,装置识别302可以包括进入的信任根504、序列号标记512、韧体标记506、制造标记510、产品标记508、操作标记514、原始装备制造商标记516(OEM标记)、密钥对150、或类似标记。
进入的信任根504系为安全组件。在制造或编程时间,进入的信任根504可以编程到可编程装置128中之一者。举例而言,进入的信任根504可以是序列号与密钥值。在另一实例中,进入的信任根502可以是嵌入式识别符,例如在可编程装置128中之一者的硅建立时刻植入的装置识别符。
序列号标记512系为可以包括可编程装置128中之一者的序列号的安全组件。装置识别302可以包括序列号标记512中之一或更多者。
韧体标记506系为可以描述或识别用于可编程装置128中之一者的韧体的安全组件。韧体标记506可以包括版本号、计算的校验和值、部分或完整的哈希值、文本串识别符、数字识别符、或其组合。举例而言,可编程装置128中之一者可以是具有安装在板上的韧体的电路板。韧体标记506可以识别每一单独的韧体组件的版本号。韧体版本信息可用于协调可编程装置128中的第3图的代码组件314之间的互操作性。在另一实例中,韧体标记506可以包括计算的哈希校验和,例如MD5哈希或指纹。哈希校验和可用于藉由将哈希校验和与根据韧体的实时版本计算的哈希进行比较,以校验韧体的数据完整性。任何差异都表示韧体已被修改。
制造标记510系为可以描述一或更多个制造属性的安全识别符。举例而言,可编程装置128中之一者可以包括制造标记510,例如位置信息、编程器识别、编程单元识别、制造时间信息、制造位置信息、时间窗口、制造执行系统识别信息、工厂识别、供货商识别、制造装备信息、或制造相关参数。
产品标记508系为可以描述与可编程装置128一起使用的产品的安全组件。产品标记508可以包括相关的制造商、品牌信息、产品线信息、模型信息、或其他产品相关参数。
操作标记514系为可以描述可编程装置128的操作属性的安全组件。操作标记514可以包括操作电压、电压模式、电流位准、功率消耗、加热因子、关键操作频率、操作顺序信息、或操作参数。
OEM标记516系为可以描述可以使用可编程装置128的原始装置制造商或相关合约制造商的安全组件。OEM标记516可以包括制造商识别518、许可证信息、时间窗口、授权位置、授权工厂、产品批量大小、序列号范围、或其他OEM相关参数。
装置识别302系为包括可编程装置128的安全信息的多变量数据结构。装置识别302的数据组件可以在装置识别302内个别加密。装置识别302本身可被加密。在形成装置识别302的数据组件以及用于保护装置识别302本身的加密程度与其他安全机构方面,装置识别302可以指定至可编程装置128中之每一者。
装置识别302的许多优点中之一者系为藉由仅解密所需的组件以实现对装置识别302内的特定数据组件的存取。藉由加密装置识别302以及个别数据组件,可以提供更细的安全粒度。
现在参照第6图,其中图标安全编程系统100的示例性方块图。安全编程系统100包括几个安全对象,例如第一安全对象602与第二安全对象604。第一安全对象602可以与第二安全对象604对接或通讯。
安全对象表示具有用于防止未经授权的拦截或重复的安全机构或协议的任何硬件或软件对象。举例而言,安全对象可以包括但不限于数据装置132中之一者、受信任装置134中之一者、电子部件、电子装置、启动加载器、韧体(FW)、操作系统(OS)、软件应用程序、硬件编程器、周边装置、网站、机器等。
第一安全对象602可以与识别模块316、认证模块320、密码模块318、及代码签名模块322对接。为了说明之目的,尽管图标第二安全对象604仅与第一安全对象602连接,但是第二安全对象604亦可以与识别模块316、密码模块318、认证模块320、代码签名模块322的任何组合连接。使用(但不限于)识别模块316、密码模块318、认证模块320、代码签名模块322、安全编程系统100的任何其他单元、模块、或功能的组合以保护第一安全对象602或第二安全物件604以防止安全漏洞。
识别模块316产生安全对象的身份,以保护安全对象,而防止对安全对象进行未经授权的存取。识别模块316提取识别令牌624(ID令牌)。ID令牌624包括在授予对安全对象的存取之前用于校验身份的信息。ID令牌624可以包括但不限于用户识别、装置的序列号、装置识别等。
可以藉由识别模块316使用任何安全的信息或机构以提取ID令牌624,任何安全的信息或机构包括但不限于信任根代码620(RoT代码)与信任根数据622(RoT数据)。举例而言,RoT数据622可以表示与装置的数字出生证书相关联的信息。
本文中所指称的术语信任根(RoT)系指称受信任或受保全的计算模块中的一组功能,该计算模块包括硬件部件、软件部件、或硬件与软件部件的组合。举例而言,这些功能可以实施于(但不限于)启动韧体、硬件初始化单元、交叉检查部件/芯片等。此外,举例而言,可以使用(但不限于)控制密码处理器之操作的单独计算引擎来实施该等功能。
可以使用RoT代码620从RoT数据622提取ID令牌624。ID令牌624可以受到密码保护,因此仅可以藉由RoT代码620解密。ID令牌624可以是唯一的,而使得每一安全对象具有自己的识别,而因此没有安全对象与另一安全对象共享其识别。
RoT代码620包括用于解密可用于识别装置的来源或译码内容的数据的指令或命令。RoT资料622包括受保护且仅可以使用RoT代码620译码的信息。
可以藉由任何安全机构提供或产生RoT代码620与RoT数据622。举例而言,在编程或配置装置期间,RoT代码620与RoT资料622可以编程至装置的安全储存单元中。
此外,举例而言,可以利用安全的方式从主控服务器或系统将RoT代码620与RoT数据622发送至安全编程系统100,而使得只有已经授权及验证的安全编程系统100才能接收RoT代码620与RoT数据622。此外,举例而言,主控服务器或系统可以包括第1图的安全主系统104,以在安全编程系统100能够接收或解密来自安全主系统104的信息之前,将第1图的安全密钥106发送至安全编程系统100,以进行识别或认证。
作为实例,安全储存单元可以包括但不限于单次可编程内存或仅对经授权用户或装置为已知的任何其他储存单元。作为另一实例,安全储存单元可以包括但不限于仅对经授权的信息或识别为可存取并拒绝没有允许者的储存器或内存。
举例而言,在生产环境或系统中整合或操作装置(例如安全对象)之前编程或配置装置时,可以将RoT代码620与RoT数据622预编程至装置中。此外,举例而言,生产环境或系统可以包括但不限于便携设备、计算机、服务器、电子电路板等。
认证模块320可以用于校验识别令牌624是否被授权存取安全对象。在识别模块316提取ID令牌624之后,认证模块320校验ID令牌624,以识别安全对象是否为可以与授权系统通讯以发送或接收安全信息的有效对象。举例而言,若ID令牌624中之一者无效,则不允许安全对象与第1图的编程器112交换信息。
在认证模块320校验安全对象的ID令牌624有效之后,认证模块320可以产生ID令牌624中之一者、密钥令牌628、及密码令牌626的组合。密钥令牌628包括用于认证ID令牌624的信息。密码令牌626包括用于将用于信息安全性或数据机密性的信息密码编码或译码的信息。
在一或更多个实施例中,可以使用RoT代码620从RoT资料622产生ID令牌624、密钥令牌628、或密码令牌626。在一或更多个实施例中,ID令牌624、密钥令牌628、或密码令牌626可以受密码保护,而因此仅可以由RoT代码620解密。
密码模块318可以针对安全对象之间或安全对象与外部系统之间交换的安全信息提供数据加密及解密。可以将安全信息与安全对象交换的外部系统可以包括但不限于编程器112、安全主系统104、主控系统等。
在一或更多个实施例中,在识别模块316提取ID令牌624或认证模块320验证ID令牌624之后,密码模块318可以产生ID令牌624、密钥令牌628、及密码令牌626。可以由密码模块318使用RoT代码620产生密码令牌626,以译码来自RoT数据622的信息。
在一或更多个实施例中,密码模块318可以使用密码令牌626产生ID令牌624或密钥令牌628,以进一步译码来自RoT数据622的其他信息。在实施例中,使用具有改善信息安全性或数据机密性的多级保护的密码模块318,大大简化数据漏洞的消除。
在一或更多个实施例中,密码模块318可以包括密码方法,包括但不限于对称密钥加密、公钥加密等。举例而言,密码模块318可以包括密码方法,其中发送者与接收者可以共享可以使用预定算法计算的相同密钥或不同密钥。
作为实例,密码方法可以包括但不限于分组密码方法、密码哈希函数等。作为另一实例,密码方法可以包括但不限于数据加密标准(DES)、进阶加密标准(AES)、三重DES、MD4讯息摘要算法、MD5算法、安全哈希算法1及2等。
作为一实例,密码方法可以包括但不限于公钥或非对称密钥密码技术,其中可以使用两个不同但数学上相关的密钥(公钥及私钥)。作为另一实例,可建构公钥系统,而使得一个密钥(例如私钥)的计算可在计算上从另一密钥(例如公钥)是不可行的,即使他们相关。可以秘密地将公开及私钥两者产生为互相关联的对偶。
举例而言,在公钥密码系统中,公钥可以自由分配,而其配对的私钥可以保持为秘密。在公钥加密系统中,公钥可以用于加密,而私密或秘密密钥可以用于解密。
代码签名模块322校验在系统或装置之间交换的代码信息的完整性。代码签名模块322可以校验所交换的信息的内容是否被改变或被篡改。
举例而言,代码签名模块322可以包括对可执行文件或脚本进行数字签名的处理,以确认软件作者或产生器,并验证可执行代码或脚本未被改变或损坏。此外,举例而言,由于藉由(但不限于)密码哈希、校验和等签名,代码可以校验为已改变或损坏。
在一或更多个实施例中,在识别模块316提取ID令牌624或认证模块320验证ID令牌624之后,代码签名模块322可以产生ID令牌624、密钥令牌628、及密码令牌626。可以由代码签名模块322使用RoT代码620产生密码令牌626,以译码来自RoT数据622的信息。
在一或更多个实施例中,代码签名模块322可以使用密码令牌626产生ID令牌624或密钥令牌628,以进一步译码来自RoT数据622的其他信息。在实施例中,使用具有改善信息安全性或数据机密性的多级保护的代码签名模块322,大大简化数据漏洞的消除。
安全对象(例如第一安全对象602或第二安全对象604)可以与安全执行引擎606对接。安全执行引擎606包括管理或控制安全对象的操作的机构。安全执行引擎606包括安全执行单元324与安全储存单元326。
安全执行单元324系为在受保护环境中执行代码或计算机指令的区块。针对建立仅有受信任的经认证应用代码可以操作的大规模及大范围的安全环境的问题,安全执行单元324操作的环境可以建立灵活且可扩展的解决方案。安全执行单元324可以让编程器112与安全对象能够在安全环境中一起工作。
当在终端用户生产环境中操作安全对象之前预先编程、配置、测试、或证明安全对象时,安全执行单元324可以执行由安全储存单元326储存的受信任代码。可以对由安全执行单元324执行的受信任代码进行签名及认证。
安全储存单元326储存并提供用于执行的安全执行单元324的受信任代码。在实施例中,使用安全执行引擎606以在安全储存单元326中储存程序代码,并且使用安全执行单元324执行程序代码,而大大简化安全环境,而藉此提供针对数据漏洞的附加级别的保护。
举例而言,在预先编程、配置、测试、或证明安全对象时,受信任代码可以预先储存在安全对象的安全储存或内存区域中。此外,举例而言,可以藉由密码模块318使用从编程器112发送至安全对象的信息以译码受信任代码。
现在参照第7图,其中图标安全编程系统100的第二示例性方块图。示例图显示安全对象的编程期间的安全信息的数据串流。
举例而言,识别标记624(描绘为ID1、ID2、及ID3)可以包括安全对象的序列号标记512。序列号标记512系为分配给每一安全对象的唯一信息。安全对象的序列号标记512可以不同于另一安全对象的序列号标记512中之另一者,而使得可能不存在共享相同序列号标记的二个安全对象。序列号标记512可以由第1图的编程器112产生。每一序列号标记可以由编程器112分配给每一安全物件。
第5图的进入的信任根504(In_RoT)可以包括但不限于第2图的编程器识别216。In_RoT 504(标示为In_RoT 504)包括在编程安全对象之前已预先编程或配置的信息。在一或更多个实施例中,预先编程的信息可以编程为用于编程安全对象的转接器、编程器112、及安全对象的组合。举例而言,In_RoT 504可以是在硅制造时刻植入安全对象中的序列号。
In_RoT 504可以与ID令牌624分开或不同。In_RoT 504可以包括预先编程的信息,其不同于要被编程到安全对象中的信息。
举例而言,In_RoT 504可以包括但不限于在制造部件的时间嵌入或编程到部件中的序列号或唯一密钥。此外,举例而言,制造部件的时间可以是(但不限于)在编程部件之前在硅等级或系统级制造部件的时间。
在一或更多个实施例中,In_RoT 504可以藉由制造执行系统702(MES)摄取或输入。In_RoT 504可以与编程器产生的唯一RoT(例如ID令牌624)组合,以产生唯一的系统级RoT。In_RoT 504可以包括来自已在部件的制造期间预先编程到部件中的数字出生证明的信息。
In_RoT 504可以包括标示为P1与P2的任何数量的制造标记510。制造标记510包括在部件被制造时与部件相关联的信息。举例而言,制造标记510可以包括但不限于部件ID、编程器ID、部件的制造位置、部件的制造日期及时间等。
制造执行系统702系为用于制造产品质量控制目的之计算机化系统。MES 702可以追踪及记录原材料到成品的转换。MES 702可以提供关于如何优化工厂的当前条件以改善生产输出的信息。MES702可以实时工作,而能够控制生产处理的多个组件(例如输入、人员、机器、支持服务等)。
在一或更多个实施例中,MES 702可以一起接收In_RoT 504与ID令牌624,以编程可编程装置128。In_RoT 504与ID令牌624可用于产生安全对象的装置识别302。装置识别302包括唯一且仅与一个装置或安全对象相关联的信息。
装置识别302可以包括可以被编程到系统(例如第一板712或第二板714)中的唯一信息。第一板712或第二板714系为具有在系统中彼此组装及连接的几个安全对象的板等级系统。
第一板712可以包括用于密码的系统公钥154。可以在用于公钥加密系统的第一板712中实现系统公钥154。系统公钥154可以是第1图的密钥对150中之一者的一部分。安全信息可以藉由安全对象使用密钥对150中之一者的第1图的公钥154而加密,并藉由第一板712使用私有密钥152而解密。
第一板712可以使用系统公钥154以加密安全信息,并发送至安全对象,而安全对象可以使用私钥152来解密被加密的信息。尽管针对第一板712描述系统公钥154,但是应理解,可以在第二板714中实现系统公钥。
系统100仅绘示配置为提供本文中所述之功能之部件的许多可能布置中之一者。其他布置可包括更少、额外、或不同的部件,且在部件之间的工作划分可能取决于布置而变化。举例而言,在一些实施例中,可以忽略一些安全模块,加上仅由被忽略的部件所依赖的任何其他部件。作为另一实例,在实施例中,系统100可以进一步包括多个序列号或其他系统识别符。
现在参照第8图,其中图标受信任装置130中之一个设置者的实例。设置处理可以将安全数据编程到可编程装置128中,并将受信任装置130与受信任装置130中的另一者相关联。此外,设置处理可以将受信任装置130与安全编程系统100相关联。
安全编程系统100可以使用安全编程系统100的公钥154,以编码一或更多个序列号标记512,并对可编程装置128中的加密值进行编程。举例而言,可编程装置128可以包括现场可编程门阵列804、可编程中央处理单元806(CPU)、嵌入式多媒体内存控制器808(eMMC)、微CPU 810、或类似装置。
因此,每一可编程装置128可以具有序列号标记512中之一者,序列号标记512中之一者仅能使用与安全编程系统100相关联的第1图的私钥152解密。在说明性实例中,序列号标记512可以表示安全编程系统100的系统识别814。此举可以提供安全编程系统100与可编程装置128之间的安全连接。安全连接指示安全编程系统100与可编程装置128之间的关系。
尽管使用安全编程系统100的私钥152描述设置处理,但是应理解,可以使用不同系统部件的序列号标记512中之一者。举例而言,可以使用第1图的编程器112的序列号标记512以设置可编程装置128。
在设置之后,随后可编程装置128可以安装在亦可利用安全编程系统100的公钥154设置的受信任装置130中之一者上(例如电路板)。随后,电路板可以藉由解密编码值812而识别可编程装置128,并比较结果,以确认序列号标记512匹配。
在另一实例中,安全编程系统100可以接收受信任装置130中之一者(例如电路板)的序列号标记512,并利用编码值812设置可编程装置128,编码值812系藉由加密电路板的序列号标记512并将信息编程到可编程装置128中而产生。在安装之后,电路板可以译码编码值812,并将序列号标记512与电路板的序列号进行比较。
可以利用装置识别302设置受信任装置130。受信任装置中之一者(例如电路板)的装置识别302可以包括进入的信任根504、序列号标记512、韧体标记506、制造标记510、或类似的识别符。举例而言,序列号标记512可以包括与不同类型的可编程装置128相关联的识别符ID1、ID2、及ID3。与适当的识别符相关联的每一可编程装置128可以藉由电路板识别及认证,其中已利用适当部件的公钥154设置电路板。
尽管设置处理系描述为使用序列号标记512以识别相关且经授权的系统,但是应理解,亦可以使用装置识别302内的其他组件。举例而言,可编程装置128可以使用装置识别302的另一部分(例如制造标记510或韧体标记506)而建立受信任装置130(例如电路板)与可编程装置128之间的安全连接。
使用与安全编程系统100的组件中之一者相关联的公钥154以编码装置识别302的一部分的优点系为提供认证机构以限制可编程装置128与受信任装置130的互相操作性。藉由利用藉由组件中之一者的公钥154编码的值设置可编程装置128,受信任装置130可以校验可编程装置128被授权使用私钥152而与受信任装置130一起操作。
现在参照第9图,其中图标管理及安全处理系统902(MSP系统)的实例。MSP系统902可以安全地部署及设置可编程装置128。
MSP系统902可以利用密码信息个别配置数据装置与主动且受信任的装置,以提供安全的编程及操作环境。MSP系统902可以允许安全的原始装备制造商(OEM)站点上的可编程装置128的安全编程。
MSP系统902可以是第1图的安全编程系统100的实施例中之一者。可以使用安全编程系统100的组件以实现MSP系统902的组件。
MSP系统902可以支持在多个位置或场所部分分布的系统的操作。MSP系统902可以包括OEM开发前台940与工厂前台942。OEM开发前台940可以用于准备可编程装置128的实际编程与设置。OEM开发前台940可以用于准备多个工厂的编程信息。OEM开发前台940系为OEM可以准备具有用于配置一组安全装置(例如可编程装置128、安全组件、第1图的受信任装置130、或其他类似装置)的信息的编程项目944的位置。
尽管不同类型的安全装置之间存在差异,但是这些术语通常被理解为可互换,而在本质上是通用的。为了方便及简洁,在本叙述中可以互换地使用安全装置、安全组件、可编程装置128、受信任装置130、及其他类似组件。
OEM开发前台940可以采用韧体图像914,以用于设置可编程装置128并准备编程项目944。随后,编程项目944可以安全地传送到工厂前台942,并用于控制可编程装置128的编程。
OEM发展前台940可以具有一组安全制造系统与数据储存,以促进建立编程项目944。举例而言,OEM开发前台940可以包括OEM密钥材料904、OEM安全启动加载器906、OEM韧体开发系统908、OEM掌握工具910、韧体更新服务912、及OEM管理系统924。
工厂前台942系为用于编程及设置可编程装置128的位置。工厂前台942可以是编程中心、制造设施、合约制造商站点、或类似位置。在实施例中,工厂前台942系为定位及操作编程器112与可编程装置128的位置。
MSP系统902可以包括安全启动加载器918。安全启动加载器918系为可以在启动时在可编程装置128上执行以确保符合安全协定的安全编程代码。OEM安全启动加载器906建立装置身份,建立接受加密数据串流并在装置上解密的能力,以及初始化装置上的安全运行时间环境,而使得韧体可以安全地在装置上运行。
MSP系统902亦可以包括安全韧体920。安全韧体920系为嵌入至可编程装置128的非挥发性内存中的软件代码与数据。安全韧体920可以利用加密状态传送,并在编程器112处进行解密。
MSP系统902可以包括韧体解密密钥922。韧体解密密钥922可以用于解密已使用与韧体解密密钥922相关的加密密钥加密的安全韧体920。举例而言,韧体解密密钥与加密密钥可以是用于加密的对称密钥对的一部分。
MSP系统902可以包括来自OEM的韧体图像914:韧体图像914系为将由OEM安全启动加载器906加载并在制造期间及制造之后在可编程装置128上运行的嵌入式应用代码。
MSP系统902可以包括OEM密钥材料904:OEM密钥材料904可以包括信息,例如硅供货商装置认证密钥955、签署OEM装置证书946所需的OEM装置证书签名密钥947、及OEM装置证书模板950。
OEM证书模板950系为用于形成OEM证书951的一组信息。包括OEM证书951的基本必需信息。OEM证书951系为定义OEM用户968的一组信息。OEM证书951可以包括OEM识别符966、OEM公钥962、及OEM私钥952。OEM识别符966系为唯一识别OEM的值。
硅供货商系为可以制造或提供可编程装置128的实体。可以利用硅供货商识别符956识别硅供货商。硅供货商识别符956系为与硅供货商链接的值。举例而言,硅供货商识别符956可以链接到实际制造形成可编程装置128的集成电路或部件的公司。硅供货商亦可以是在将可编程装置128交给系统进行编程之前进行预配置的公司。
MSP系统902可以包括OEM韧体开发系统908。韧体开发系统908支持开发用于部署到可编程装置128的韧体图像914。
MSP系统902可以包括OEM掌握工具910(OMT):OEM掌握工具910系为可以将OEM安全启动加载器906绑定到韧体图像914的安全应用程序或系统。OEM掌握工具910可以签署及加密韧体图像914,并准备用于现场更新的韧体图像914。现场升级可以允许以安全的方式远程地改变部署在可编程装置128中的韧体。OEM掌握工具910可以藉由使用韧体解密密钥922加密韧体图像914,以产生安全韧体920。OEM掌握工具910可以包括HSM或TSM,并且可以利用硬件或软件实现。
MPS系统902可以包括OEM管理系统924。OEM管理系统924系为用于定义OEM使用者的编程项目944的系统。编程项目944系为定义可编程装置128的安全生产运行的信息封包。
OEM管理系统924可以将OEM安全启动加载器906、韧体图像914、OEM证书951、OEM密钥材料904、及生产计数948绑定到编程专案944。一旦编程项目944最初被建立,则可以更新编程项目944,以包括OEM安全启动加载器906的参照、代码、及数据,韧体图像914、OEM密钥材料904、OEM证书951、及生产计数948。绑定处理意味着信息系为编程项目944的参数的一部分。OEM管理系统924亦可以将编程项目944绑定到工厂前台942处的特定安全编程系统。编程项目944可以包括编程系统或子系统的第8图的系统识别814(例如安全编程系统100、编程单元110、编程器112、或其组合)。随后,编程项目944仅能在具有系统识别814的系统上执行。
生产计数948系为描述生产运行中所要生产的安全装置数量的指针。生产计数948可以与安全装置开始或完成生产时更新的增加数量进行比较。接收编程项目944的编程器112可以使用生产计数948以限制编程及设置的装置的数量,以防止可编程装置128的未经授权的生产。在生产期间,当前计数978可以指示目前已经生产的产品数量。系统可以藉由将当前计数978与生产计数948进行比较,并在当前计数978等于生产计数948时停止,而停止对装置进行编程。
可以利用各种方式实现OEM管理系统924。举例而言,OEM管理系统944可以利用共享配置实现,并且产生部署到分别具有自己的工厂的多个OEM的编程项目944,例如工厂前台942。可以使用第1图的安全主储存系统102、第1图的安全主系统104、第1图的安全编程系统100、或其系统及子系统的组合以实现OEM管理系统924。
MSP系统902可以包括工厂管理系统930。工厂管理系统930系为用于在工厂前台942处管理安全编程部件的系统。工厂管理系统930可以从OEM管理系统944接收编程项目944,并将制造信息解密并分发给位于工厂前台942处的其他安全及编程系统。
可以利用各种方式实现工厂管理系统930。举例而言,可以利用第7图的制造执行系统702、第2图的编程处理器202、主控计算机系统、或另一类似的处理系统而实现工厂管理系统930。
MSP系统902可以包括工厂安全系统932。工厂安全系统系为产生编程到可编程装置128中的密钥与证书的基于HSM的安全设备。工厂安全系统932可以藉由将一个OEM的安全信息与另一OEM的安全信息隔离,以支持多租户OEM体系结构。此举允许工厂安全系统932在不同的编程器中针对不同的OEM编程及设置不同组的可编程装置128。
可以利用各种方式实现工厂安全系统932。举例而言,工厂安全系统932可以使用第1图的安全主系统104、第1图的安全控制器114、第2图的编程处理器202、第1图的第一安全模块116、第1图中的第二安全模块118、第1图的第n个安全模块120、或其组合来实现。可以使用MSP系统902中的一或更多个安全部件,以集中或分布的方式实现工厂安全系统932。
工厂安全系统932可以提供高安全性加密服务,包括密钥对产生、加密、解密、证书管理、安全储存、安全执行、及其他类似的安全处理功能。工厂安全系统932亦可以支持安全开发、安全掌握、资料与代码的安全部署、安全设置、安全编程、及安全更新。
工厂安全系统932可以依据装置证书、部署管理、及版本控制、数字生命周期管理、及应用管理执行装置认证。工厂安全系统932可以提供对称加密、哈希功能、数据封装、数字签名、密钥协商及传输、密钥管理、及使用者访问控制。
工厂安全系统932可以包括用于认证工厂安全系统932的身份的工厂安全系统证书933。工厂安全系统证书933可用于签署从OEM开发前台940与OEM管理系统924传送到工厂管理系统930与工厂安全系统936的信息。工厂安全系统932可以包括工厂安全系统数据加密密钥980与工厂安全系统数据认证密钥982。密钥可用于安全加密、解密、签署、及认证安全信息。
MSP系统902可以包括在工厂前台942处的主控系统936。主控系统936系为用于控制编程项目944的执行及管理编程器112与工厂安全系统932之间的通讯的计算机系统。
可以利用各种方式实现主控系统936。举例而言,可以使用安全控制器114、编程处理器202、或耦接至安全处理系统100的另一类似的计算系统以实现主控系统936。主控系统936可以耦接至工厂安全系统932、编程器112、工厂管理系统930、或其他类似的系统。
MSP系统902可以包括用于编程可编程装置128的编程器112。编程器112可以接收一组空白或部分编程的装置,并利用来自编程项目944的信息安全地编程可编程装置128。
编程器112可以建立用于编程可编程装置128的串行数据列表964。串行数据列表964系为编程到可编程装置128的装置特定数据的列表。此举可以包括韧体图像914、OEM装置证书946、代码、数据、或其他信息。串行数据列表964可以依据个别装置信息(例如序列号、装置识别、数据证书、或类似的装置特定参数)而变化。
MSP系统902可以包括用于保护可编程装置128的装置证书。装置证书可以包括硅供货商装置证书926、原始装备制造商装置证书946(OEM装置证书946)、或其他装置证书。装置证书可以包括关于包括公钥的可编程装置128、第3图的装置识别302、硅供货商识别符956、OEM识别符966、或其他类似信息的信息。
硅供货商装置证书926系为安全地定义安全组件中之一者(例如第1图的可编程装置128或受信任装置130)的身份的一组数据组件。硅供货商装置证书926可以包括第3图的装置识别302、硅供货商公钥954、及/或其他安全信息。可以使用硅供货商密钥对960的硅供货商公钥954来解密由硅供货商私钥958加密的信息。
在将安全组件传送到其他制造商或用户之前,硅供货商装置证书926可以藉由硅供货商或制造商编程到安全组件的安全储存单元中。硅供货商装置证书926可以储存在单次写入安全储存单元中,其中可以将附加信息增加至硅供货商装置证书926,但是不能擦除或修改现有信息。当不需要进一步的改变时,可以锁定安全储存单元的部分。安全储存单元可以包括一或更多个数据组件,例如多个装置证书与其他相关的安全数据。
可以利用各种方式实现硅供货商装置证书926。举例而言,硅供货商装置证书926可以使用第5图的制造标记510、第3图的安全证书306、第3图的安全算法304、第5图的产品标记508、第5图的操作标记514、第5图的进入的信任根504、第4图的受信任证书402、或另一类似的数据组件来实现。
MSP系统902可以包括用于实时提供装置等级编程统计的装置数据追踪系统934。装置数据追踪系统934可以追踪本端工厂中的安全编程系统100或远程设置的装置的装置等级信息。装置数据追踪系统934可以追踪由MSP系统902中的编程器112配置的每一可编程装置128的装置等级信息。装置数据追踪系统934可以追踪数据,例如硅供货商装置证书926、第8图的系统识别814、装置识别302、或已编程到装置中的其他数据组件。装置数据追踪系统934可以追踪装置状态,包括有效状态、配置状态、重复状态、或其他装置等级状态。
MSP系统902可以包括装置设置服务938。装置设置服务938系为用于在因特网上设置可编程装置128的系统。装置设置服务938可以是硬件与软件的组合,而可以安全地将设置信息递送到现场的可编程装置128。装置设置服务938可以分发安全信息、数据更新、软件更新、及用于装置的持续安全操作所需的其他安全与操作信息。
MSP系统902可以包括韧体更新服务912。韧体更新服务912系为用于在因特网上更新可编程装置128的韧体的系统(例如OEM云928)。韧体更新服务912可以将韧体更新916安全地递送到具有一或更多个可编程装置128的系统,并利用新的韧体更新可编程装置128。韧体更新916系为用于更新可编程装置128中的韧体的软件与数据封包。韧体更新服务912可以是具有可以部署韧体更新916与相关联安全信息的安全软件与硬件的系统的一部分,以确保可编程装置128安全地更新。
可以利用各种方式操作MSP系统902。在说明性实例中,可以依据安全组件使用案例970操作MSP系统902。安全组件使用案例970可以描述使用MSP系统902安全编程可编程装置128的一种方式,其中已利用韧体配置可编程装置128,且可编程装置128具有预安装在硅供货商设施处的硅供货商装置证书926。
安全组件使用案例970可以包括二个主要步骤。在步骤1中,从可编程装置128中之一者提取硅供货商装置证书926,并且认证装置。在步骤2中,依据受认证装置的硅供货商装置证书926建立OEM装置证书946。随后,将OEM装置证书946编程到装置中。
在此使用案例中,基于HSM的安全系统(例如工厂安全系统932)可以整合成安全编程系统的一部分,例如用于编程具有整合安全区域的安全微控制器单元的系统。整合安全区域可以是可以写入一次而无法再改变的内存的受保护区域。此举允许储存无法修改的安全数据,如密钥、代码、或证书。
系统可以包括OEM管理系统924、工厂管理系统930、作业建立及作业运作系统、及装置数据追踪系统934,以管理用于可编程装置128的状态数据。可以利用各种方式实现各种系统。举例而言,OEM管理系统924、工厂管理系统930、作业建立及作业运作系统、及装置数据追踪系统934都可以作为主控系统936上的软件执行。在另一实例中,系统可以分别在专用硬件上运行。
在此安全模型中,工厂前台942可以作为OEM用户的代理,并且可以执行OEM管理系统924的功能。此举有效地暗示OEM使用者968藉由提供OEM密钥材料904与OEM证书951以及设定可编程装置128的生产计数948以暗示地信任工厂前台942。由于此动作系在第1图的编程单元110的主控系统936上完成,所以可以藉由位于工厂前台942内的物理上安全的位置的经授权人员完成作业设定、OEM密钥材料904的产生、及安全编程系统100的配置。
一些实施方案可以集中在将OEM装置证书946设置到配置为安全组件的可编程装置128上。然而,应理解,OEM系统的OEM密钥材料904的安全流程与生产计数948的安全更新系藉由物理安全构件与安全数据信道保护。
由于数据被加密并绑定至工厂安全系统932中的特定一者,所以来自OEM开发前台940的OEM数据从OEM管理系统924一直到工厂安全系统932都是安全的并经过加密。举例而言,可以使用工厂安全系统证书933加密编程项目944,工厂安全系统证书933仅能由工厂安全系统932中的所预期的一者解密。
在另一实例中,因为在传输期间将材料加密,包括OEM装置证书签名密钥947的OEM密钥材料904的传送是安全完成的。OEM装置证书签名密钥947可以包括私钥部件。
在说明性实例中,由于可编程装置128的私钥152从未离开装置,所以OEM装置证书签名密钥947导入到OEM管理系统924中是安全完成的。因为将数据加密,所以此举可以减少对物理安全性的需求。
在另一说明性实例中,可以依据微控制器单元使用案例972操作MSP系统902,其中MSP系统902系用于设置第1图的可编程装置128与受信任装置130,例如安全微控制器单元。安全微控制器单元可以包括安全处理与安全储存设施。
MCU使用案例972可以包括二个主要步骤。在第一步骤中,OEM安全启动加载器906可以编程到可编程装置128中。之后,可以使用OEM安全启动加载器906启动可编程装置128,以建立用于可编程装置128的装置认证密钥对974与装置解密密钥对976。随后,可以使用二个密钥对的部分构建、编程、及签署OEM装置证书946。
在第二步骤中,MSP系统902可以读取硅供货商装置证书926,以及认证可编程装置128。可以使用来自硅供货商装置证书926的装置解密密钥以加密韧体解密密钥922。可以在可编程装置128上编程经加密韧体与经加密的韧体解密密钥922。
OEM安全启动加载器906、OEM韧体开发908、OEM掌握工具910、OEM管理系统924、及OEM密钥材料904的产生都可以在OEM开发前台940进行。整个项目定义与生产计数948的决定系由OEM使用者968控制。
可以在OEM开发前台940的计算机上主控OEM软件执行环境。所有的OEM信任根都可以从OEM开发前台940安全地运送到工厂前台942。可以在主控系统936上的工厂前台942处执行工厂管理系统930、工厂安全系统932、及装置数据追踪系统934。
在实施例中,由于第一步骤需要可编程装置128的安全设置,所以必须在安全设施中执行,例如OEM的受信任工厂、硅供货商工厂、OEM工厂、或编程中心。随后,可以在具有较低安全等级的设施(如未受信任的工厂、合约制造商、第三方合作伙伴、或类似类型的设施)处执行步骤2。
在这个安全模型中,OEM信任根与编程项目944系在OEM开发前台940处定义,并分发至工厂前台942。重要的是,OEM使用者应该管理自己的信任根,以改善OEM产品的供应链安全性。
在说明性实例中,因为可编程装置128的第1图的密钥对150在工厂安全系统932中产生,并且可能潜在地在工厂前台942处暴露,所以MCU使用案例972需要物理安全性。可编程装置128与编程器112之间的物理连接系为明文,所以能够物理存取工厂前台942的系统的人可以窥探及窃取重要的信息。因此,应实施物理安全性,以保护安全信息。
在MCU使用案例972的另一实例中,可编程装置128可以是空白的,并未利用硅供货商装置证书926预编程。在此情况下,OEM装置证书946可以用于认证。此外,可以使用来自OEM装置证书946的公共解密密钥(例如OEM公钥962)来加密韧体解密密钥922。
现在参照第10图,其中图标安全组件使用案例970的详细实例。安全组件使用案例970描述用于安全地配置安全组件(例如第1图的可编程装置128)的处理。第9图的MSP系统902可以根据安全组件使用案例970安全地部署及设置第1图的每一可编程装置128。
在安全组件使用案例970中,可以在不同前台处实例化、传送、及管理安全组件。前台可以包括不同类型的位置,例如硅制造商1004、OEM位置1006、编程中心1008、编程器位置1010、及装置位置1012。每一前台都表示可以发生一些类型的安全编程相关动作的位置。此外,使用案例可以包括嵌入于第1图的编程器112与装置位置1012的数据与动作。
安全组件使用案例970可以包括三个不同的事件序列,每一事件序列用于执行不同的安全动作。在第一序列1014中,第9图的MSP系统902可以使用第9图的OEM管理系统924初始化第9图的工厂安全系统932。此举可以在第9图的OEM开发前台940、第9图的工厂前台942、或另一类似的位置进行。
MSP系统902亦可以在出厂前台942、编程中心1008、或另一类似位置处初始化第9图的工厂管理系统930。工厂管理系统930可以利用当前计数978、第9图的硅供货商公钥954、第9图的OEM私钥952、及第9图的OEM装置证书模板950进行更新。工厂管理系统930可以将信息转发至工厂安全系统932,以用于安全处理。
在第二序列1016中,利用第9图的硅供货商装置证书926在硅供货商(SV)工厂处对安全组件进行编程。
在第三序列1018中,使用在第二序列1016中预安装的硅供货商装置证书926,MSP系统902可以对每个装置(例如第1图的可编程装置128或受信任装置130)进行密码认证。随后,可以构建第9图的OEM装置证书946,并将其编程到可编程装置128中。
可以藉由重新使用来自硅供货商装置证书926的装置识别密钥对的公钥部分(例如硅供货商公钥954)构建OEM装置证书946。因此,硅供货商公钥954可以用于计算OEM装置证书946,而因此两个证书都使用相同的证书进行证明。可替代地,可以使用不同的密钥对来表示与硅供货商密钥对不同的OEM身份。此举可以藉由工厂安全系统932或安全组件本身执行。
在第二序列1016中,在硅制造商1004处执行步骤1020。硅制造商1004可以是建立原始安全组件的公司。针对每一安全组件(例如可编程装置128或受信任装置130)建立第9图的硅供货商装置证书926。硅供货商装置证书926可以包括关于每一安全组件的唯一信息,例如第3图的装置识别302、序列号、产品类型、制造日期、或类似装置信息。
在硅制造商1004处亦执行步骤1022。利用具有第9图的硅供货商识别符956的硅制造商的第9图的硅供货商私钥958签署硅供货商装置证书926中之每一者。签署硅供货商装置证书926以加密证书的数据。仅能利用硅供货商公钥954来解密数据。
在硅制造商1004处亦执行步骤1024。每一可编程装置128都利用硅供货商装置证书926进行编程,而硅供货商装置证书926系利用硅供货商私钥958进行签署。由硅供货商私钥958签署的硅供货商装置证书926表明该装置系由硅供货商认可或提供。利用硅供货商公钥954成功地解密硅供货商装置证书926可以认证可编程装置128来自所签署的硅供货商。
第二序列1016可以利用已经利用硅供货商私钥958进一步签署的硅供货商装置证书926的唯一且个别的实例来唯一地标示每一可编程装置128。此举提供可以使用硅供货商公钥954来译码硅供货商装置证书926,以校验硅供货商装置证书926系由具有硅供货商识别符956的硅供货商所提供。此举允许工厂或其他装置用户决定可编程装置128的认证。
第一序列1014系在硅制造商1004、OEM位置1006、及编程中心1008处执行。第一序列1014可以在用于安全编程的编程中心1008处配置编程部件。
在步骤1030中,硅供货商可以产生具有硅供货商公钥954与硅供货商私钥958的硅供货商密钥对960。这可以是具有硅供货商私钥958与硅供货商公钥954的硅供货商密钥对1080。
在步骤1032中,硅供货商公钥954可以传送到OEM使用者1006。硅供货商公钥954可以利用明确且未加密的方式发送。举例而言,硅供货商公钥954可以在网络链路上发送。
在步骤1034中,OEM使用者1006可以利用第9图的工厂管理系统930与编程中心1008的第9图的工厂安全系统932注册第9图的OEM证书951。OEM证书951可以包括第9图的OEM公钥962,以解密及认证利用OEM私钥962加密或签署的信息。可以安全地执行编程中心1008处的OEM证书的注册,以将OEM用户1006的安全信息提供至编程中心1008。可以执行注册,以将OEM凭证引入并识别到工厂管理系统930与工厂安全系统932中。
在步骤1035中,工厂管理系统930与工厂安全系统932可以在安全交换处理中将发送工厂安全系统加密密钥980至OEM管理系统924。工厂安全系统数据加密密钥980可用于加密从OEM使用者1006发送到工厂管理系统930与工厂安全系统932的信息,以支持信息的安全传送。工厂安全系统932可以将工厂安全系统数据加密密钥发送至OEM管理系统924。
在步骤1036中,OEM使用者1006可以建立具有SV装置认证公钥、OEM装置证书签名密钥、及OEM装置证书模板950的封包。OEM装置证书签名密钥可以在OEM管理系统924中建立,或者从外部安全系统(如外部HSM)导入。可以使用工厂安全系统数据加密密钥980在OEM管理系统924中加密封包,随后发送到工厂管理系统930与工厂安全系统932。因为已使用工厂安全系统932的工厂安全系统数据加密密钥980加密封包,所以仅能使用工厂安全系统932的工厂安全系统数据认证密钥982进行解密。OEM装置证书模板950系为用于OEM装置证书946的模板,其包括具有第3图的装置识别320且随后由OEM私密签名密钥签署的装置的公钥152。OEM公钥962系为绑定至OEM用户1006的密码值。OEM公钥962具有各种格式。举例而言,密钥可以格式化成X.509公钥证书或其他公钥格式。X.509标准定义公钥证书,以显示公钥的所有权。OEM公钥962可以提供用于公钥的验证信息。OEM公钥962可以用于编程中心1008中的装置证书。
在步骤1038中,OEM使用者1006可以将具有硅供货商公钥954、OEM私钥952、及OEM装置证书模板950的封包发送到编程中心1008。随后,可以使用封包中的信息以签署可编程装置128。
第三序列1018系在编程中心1008或工厂前台942处的编程器112与可编程装置128上执行。第三序列1018可以认证安全组件,利用OEM信息设置及密码签署安全组件,以及校验所设置的装置是否被授权。
在步骤1040中,编程器112可以读取将要编程的每一可编程装置128的硅供货商装置证书926。将硅供货商装置证书926从可编程装置128明文传送到编程器112。
在步骤1042中,硅供货商装置证书926可以从编程器112传送到工厂管理系统930与工厂安全系统932。工厂管理系统930控制编程操作,而工厂安全系统932将管理装置与系统的安全性。
在步骤1044中,在编程中心1008的工厂管理系统930处接收硅供货商装置证书926。编程器112系位于第9图的工厂前台942处。
在步骤1046中,可以使用硅供货商公钥954认证可编程装置128。此步骤确认将要编程的装置系由具有硅供货商识别符956的硅供货商提供。当使用硅供货商公钥954解密利用序列1中的硅供货商私钥958签署的硅供货商装置证书926时,认证可编程装置128。若可以使用硅供货商公钥954存取硅供货商装置证书926中的信息,则认证装置。
在步骤1048中,依据OEM装置证书模板950格式化OEM装置证书946。随后,使用OEM私钥952签署OEM装置证书946。
在步骤1050中,将OEM装置证书946传送到编程器112。由于OEM装置证书946已经利用OEM私钥952加密及签署,因此可以明文传送。
在步骤1052中,编程器112可以构建串行数据列表964。串行数据列表964系为编程到可编程装置128的装置特定数据的列表。这可以包括序列号、装置识别、OEM装置证书946、制造标记、代码、数据、标记、mac地址、装置特定密钥、或其他信息。
在步骤1054中,藉由编程器112将包括在串行数据列表964中的装置特定数据编程到可编程装置128中。串行数据列表964可以指示装置特定数据应该储存的位置。举例而言,OEM装置证书946可以储存在安全储存单元中。
在步骤1056中,藉由编程器112从安全组件(例如可编程装置128或受信任装置130)重新提取及检索硅供货商装置证书926与OEM装置证书946。尽管硅供货商装置证书926与OEM装置证书946的副本可能已经存在于工厂安全系统932或系统中的其他地方,但是装置证书系经重新提取,以校验可编程装置128,并侦测潜在的重复生产运行、未经授权的重复、或其他不合适的动作。验证步骤可以用于确保装置证书已编程为没有错误。这可能包括编程故障、装置损坏、位错误、或类似的错误。
在步骤1058中,硅供货商装置证书926与OEM装置证书946系发送到工厂安全系统932,以用于校验及进一步使用。所检索的装置证书可以用于第二轮的认证,以校验可编程装置128中的适当者是否被编程。此举可以用于防止可编程装置128的未经授权的复制,并防止伪造装置。
在步骤1060中,校验硅供货商装置证书926与OEM装置证书946,以确保可编程装置128是适当的。此举可以包括使用硅供货商公钥954验证硅供货商装置证书926,以及利用OEM公钥962验证OEM装置证书946。装置证书的验证系关于将装置证书中的公钥与硅供货商证书1078中的公钥进行比较,以确保其匹配。此外,证书可以透过证书验证工具(未图示)进行处理,以确保证书的格式有效。亦使用工厂安全系统932验证证书上的签名。
在步骤1062中,校验结果被发送回编程器112。在步骤1064中,编程器112可以处理完成的装置。若可编程装置128未被验证,则编程器112可以识别具有指示不良装置的验证状态的装置,并将其传送到不良装置插座(未图标),以进行处置。若可编程装置128被适当地校验,则可编程装置128可利用经校验的状态值更新,并作为经校验的部件传递。可替代地,编程器112可以产生验证报告,以在生产运行中记录每一可编程装置128的装置识别与验证状态。无效的可编程装置128可以在稍后移除或破坏。
3.0.功能概述
安全编程系统100可以利用各种方式配置及设置安全组件,例如第1图的可编程装置128与受信任装置130。可以取决于在安全组件上执行的操作的类型来实现不同等级的安全性。可以在相同的物理系统上实现不同的使用案与处理流程,以适应不同终端使用者的需求。
现在参照第11图,其中图示根据一或更多个实施例的第1图的可编程装置128的设置处理流程1102的实例。设置处理流程1102的各种组件可以在各种系统中执行,包括例如上述第1图的系统100的系统。在实施例中,可以在通用计算机或专用计算机中的任一者中使用一或更多个计算机程序、其他软件组件、及/或数字逻辑来实现与以下描述的功能方块相关联描述的每一处理,同时执行关于与计算机的内存的物理状态互动及转换的数据检索、转换、及储存操作。
设置处理流程1102负责利用由安全编程系统100提供的目标有效负载1114对可编程装置进行编程。设置处理流程1102可以负责在安全编程系统100中启动设置作业,接收可编程装置128,计算加密的有效负载1116,以及设置可编程装置128。设置处理流程1102可以将第8图的系统识别814与第3图的装置识别302的编程描述为可编程装置128,并且描述他们之间的安全连接。
设置处理流程1102可以具有各种配置。举例而言,设置处理流程1102可以包括启动设置作业模块1104、接收装置信息模块1106、计算加密的有效负载模块1108、及设置装置模块1110。
启动设置作业模块1104可以接收作业控制封包1112与目标有效负载1114,以用于编程到可编程装置128中。作业控制封包1112包含指令与参数,以用于利用目标有效负载1114设置可编程装置128。
目标有效负载1114系为被加密并被编程到可编程装置128中的信息。目标有效负载1114可以包括数据、代码、安全密钥、及其他信息。举例而言,目标有效负载1114可以是在第1图的受信任装置130上执行的安全韧体代码。在另一实例中,目标有效负载1114可以包括组合在一起的不同数据组件,例如一组附加安全密钥以及一或更多个软件模块。举例而言,作业控制封包1112可以是第9图的编程项目944的一部分。
作业控制封包1112包含利用目标有效负载1114配置及编程可编程装置128所需的信息。作业控制封包1112可以包括编程指令、安全信息、编程器配置信息、装置配置信息、及其他类似的作业信息。
在说明性实例中,作业控制封包1112可以包含用于设置一组特定可编程装置128的指令。作业控制封包1112可以包括用于在编程到可编程装置128之前加密目标有效负载1114的第1图的一或更多个安全密钥106。安全密钥106可以表示用于加密目标有效负载1114的信任根。
作业控制封包1112可以包括用于识别安全编程系统100、第1图的编程单元110、第1图的编程器112、目标有效负载1114、及其他安全参数的安全密钥106。举例而言,可以使用与编程器112相关联的第1图的公钥154来加密第2图的编程器识别216。第2图的编程器识别216仅可以使用与编程器112相关联的安全密钥106的第1图的私钥152来解密。其他系统组件的识别符同样可以使用与该组件相关联的公钥154与私钥152进行加密及解密。
作业控制封包1112可以包括用于执行生产运行的编程器112的编程器识别216。若作业控制封包1112的编程器识别216并未匹配使用中的编程器112的编程器识别,则将不执行生产作业。这允许将作业限制于仅在指定的编程器112上执行。类似地,作业控制封包1112可以包括前台识别、工厂识别、或其他位置及装置识别符,以确保作业控制封包1112仅能在已知位置的已知装备上运行。这可以防止未经授权生产安全装置。
在启动设置作业模块1104完成之后,控制流程可以传递到第3图的接收装置识别模块316。接收装置信息模块1106可以接收关于待编程的可编程装置128的信息。
安全编程系统100可以耦接至第7图的制造执行系统702。MES 702可以配置城将待编程的可编程装置128的序列号发送到安全编程系统100。
举例而言,MES 702可以使用光学或射频技术从可编程装置128读取序列号。在另一实例中,可以利用与待编程的可编程装置128相关的序列号或其他参数的列表来编程MES702。在另一实例中,安全编程系统100可以直接读取可编程装置128的序列号。在接收装置信息模块1106完成之后,控制流程可以传递至计算加密的有效负载模块1108。
计算加密的有效负载模块1108可以加密目标有效负载1114,以形成加密的有效负载1116。可以使用与每一可编程装置128的第3图的装置识别302的一或更多个部分相关联的公钥154以形成加密的有效负载1116。
计算加密有效负载模块1108可以利用各种方式加密目标有效负载1114。举例而言,可以使用与第5图的序列号标记512、第5图的韧体标记506、第5图的制造标记510、第5图的产品标记508、第5图的操作标记514、第5图的OEM标记516、或用于可编程装置128中之一者的装置识别302内的类似值相关联的公钥154加密目标有效负载1114。可以使用与来自装置识别302的所选参数相关联的私钥152来对加密的有效负载1116进行解密。
在另一实例中,计算加密的有效负载模块1108可以使用来自安全编程系统100的信息来计算加密的有效负载1116。可以使用与安全编程系统100、编程单元110、编程器112、第2图的装置转接器208、或其他类似参数相关联的公钥154来加密目标有效负载。
计算加密的有效负载模块1108可以使用目标有效负载1114的不同部分来形成加密的有效负载1116。举例而言,可以藉由加密整个目标有效负载1114、目标有效负载1114的子集、或目标有效负载1114的组合、及其他信息来形成加密的有效负载1116。
计算加密的有效负载模块1108可以使用安全模块,以处理目标有效负载1114。计算加密的有效负载模块1108可以使用识别模块316、第3图的认证模块320、第3图的密码模块318、或第3图的代码签名模块322的任何组合,以执行形成加密的有效负载1116所需的安全操作。
识别模块316可以用于校验每一可编程装置128的识别。认证模块320可以用于认证与每一可编程装置128相关联的参数。密码模块318可以用于对目标有效负载1114以及加密的有效负载1116进行加密及解密。代码签名模块322可以用于校验目标有效负载1114内的第3图的代码组件314的有效性。在计算加密的有效负载模块1108完成之后,控制流程可以传递到设置装置模块1110。
设置装置模块1110可以利用加密的有效负载1116对每一可编程装置128进行编程。设置装置模块1110可以与编程器112的硬件对接,以将加密的有效负载1116传送到耦接至编程器112的可编程装置128。
举例而言,设置装置模块1110可以利用加密的有效负载1116的档案对每一可编程装置128(例如第1图的数据装置132)进行编程。设置装置模块1110可以包括用于配置可编程装置128的每一不同装置类型的特定信息。数据装置132可以使用装置转接器208耦接至编程器112。
在另一实例中,设置装置模块1110可以设置每一可编程装置128(例如受信任装置130)。受信任装置130可以包括智能电话、电路板、安全装置、或类似装置。受信任装置130可以经由数据链路(例如有线或无线连接或其组合)直接耦接至装置转接器208中的编程器112。
在说明性实例中,安全编程系统100可以依据用于构建系统的部件来建立每一可编程装置128的身份。对于每一受信任装置130(例如智能电话或电路板),装置识别302可以包括受信任装置130内的每一部件的序列号或其他识别符。可编程装置128的身份可以跨越硬件、软件、及/或韧体部件。
因为装置识别302可以包括OEM标记516,因此所有制造商与供货商的识别可以是唯一的。此外,因为可以在制造时刻由安全编程系统100加密装置识别302,所以可以使用装置识别302与安全密钥106将可编程装置128的身份安全地储存在装置外以及在装置上。
安全编程系统100的一个优点系为第8图的系统识别814能够实现更高等级的装置安全性。藉由利用系统识别814的加密版本对可编程装置128进行编码,可编程装置128对于每一可编程装置128的其余生命周期具有较高的信任等级以及可追踪性。
因为系统识别814的使用在硅装置等级提供信任根,所以安全编程系统100的另一附加优点系为制造供应链更安全。系统识别814被编程到可编程装置128中,并基于唯一的制造数据,且包括唯一的制造数据。因为受损的韧体将不会具有可取得的适当的加密形式的系统识别814,所以系统识别814允许受损的韧体的侦测。
方块图仅显示系统产生的许多可能流程中之一者。其他流程可以包括在不同布置中的更少、附加、或不同的组件。举例而言,在一些实施例中,可以忽略安全模块,加上仅由被忽略的组件所依赖的任何其他组件。作为另一实例,在实施例中,流程可以进一步包括哈希产生模块。
现在参照第12图,其中图示根据一或更多个实施例的第1图的可编程装置128的安全制造处理流程1202的实例。设置处理流程1202的各种组件可以在各种系统中执行,包括例如上述第1图的系统100的系统。在实施例中,可以在通用计算机或专用计算机中的任一者中使用一或更多个计算机程序、其他软件组件、及/或数字逻辑来实现与以下描述的功能方块相关联描述的每一处理,同时执行关于与计算机的内存的物理状态互动及转换的数据检索、转换、及储存操作。
设置处理流程1202认证第1图的编程器122中的可编程装置128,产生OEM装置证书946,将目标有效负载1220编程到可编程装置128中,以及校验硅供货商装置证书926与OEM装置证书946。
设置处理流程1202可以具有各种配置。举例而言,设置处理流程1202可以包括提取装置证书模块1204、认证装置模块1206、产生OEM装置证书模块1208、程序装置模块1210、产生验证状态模块1212、及分类装置模块1214。设置处理流程1202的控制流程可以按顺序从模块传递到模块。
提取装置证书模块1204可以从可编程装置128提取硅供货商装置证书926。硅供货商装置证书926可以藉由硅供货商私钥958加密,并储存在安装于第1图的编程器122中的可编程装置128的第3图的安全储存单元326中。编程器122可以存取安全储存单元326,以将由硅供货商预先编程的硅供货商装置证书926提取到可编程装置128中。
认证装置模块1206可以认证硅供货商装置证书926,以显示编程器122中的可编程装置128系为来自硅供货商的认证装置。为了认证可编程装置128,可以使用硅供货商公钥954来解密先前使用硅供货商公钥958加密的硅供货商装置证书926。若解密成功,则可编程装置128是有效的,并且来自硅供货商。否则,若无法使用硅供货商公钥954成功解密硅供货商装置证书926,则装置未受认证。
产生OEM装置证书模块1208可以使用第9图的OEM装置证书模板950来建立OEM装置证书946。OEM装置证书950可以包括关于从硅供货商装置证书926检索的可编程装置128的信息。在已经建立OEM装置证书950之后,可以使用OEM私钥952进行签署。
程序装置模块1210可以将OEM装置证书950与目标有效负载1220从编程器122传送到可编程装置128。OEM装置证书950可以储存在可编程装置128的第3图的安全储存单元326中之一者中。目标有效负载1220可被编程到可编程装置128的安全或非安全部分中。目标有效负载1220可以包括韧体图像914、第9图的韧体更新916、第3图的安全算法304、或部署在可编程装置128中的其他代码或数据。
在目标有效负载1220已经被编程之后,产生验证状态模块1212可以从可编程装置128检索硅供货商数据证书926与OEM装置证书946。硅供货商数据证书926可以针对硅供货商公钥954进行认证。OEM装置证书946可以针对OEM公钥962进行认证。若二个装置证书都被认证,则可编程装置128是有效的。
分类装置模块1214可以依据装置证书的认证而产生可编程装置128的验证状态1222。若二个装置证书都有效,则验证状态1222系设定为有效。若装置证书中之任一者或二者为无效,则验证状态1222系设定为无效。
若验证状态1222展示装置证书中之一者或二者为无效,则被编程的可编程装置128中的当前一者为无效,并且不应该被使用。编程器122可以将可编程装置128中的无效者传送到输出插座,以进行处置。
分类装置模块1214亦可产生验证报告,而列出验证失败的可编程装置128的序列号或装置识别。报导企图使用未经授权的装置可以藉由识别潜在的仿冒及滥用而增加安全性。
在可编程装置128已经被编程之后,藉由展示最初加载到第1图的编程器112中的装置系为接收第11图的目标有效负载1114的相同装置,校验硅供货商数据证书926与OEM装置证书946的完整性增加安全等级。检查可编程装置128是否由硅供货商授权,并且在完成时二次检查可编程装置128是否由硅供货商与第9图的OEM使用者968授权,而有助于防止未经授权的制造,并降低伪造产品的可能性。
4.0.示例性实施例
在不限制的情况下在以下例句中表示一些实施例的实例:
根据实施例,安全编程系统的操作方法包含以下步骤:从安装于编程器中的可编程装置提取硅供货商装置证书,使用硅供货商公钥来认证硅供货商装置证书,依据硅供货商装置证书产生用于可编程装置的OEM装置证书,OEM装置证书系利用OEM私钥签署,将OEM装置证书与目标有效负载传送到编程器中的可编程装置,在OEM装置证书传送到可编程装置之后,从可编程装置提取OEM装置证书与硅供货商装置证书,藉由使用OEM公钥认证OEM装置证书并使用硅供货商公钥认证硅供货商装置证书来产生验证状态,若OEM装置证书或硅供货商装置证书中之一者并未成功认证,则验证状态设定为无效,以及依据验证状态将可编程装置分类到编程器的输出插座中。
在实施例中,该方法进一步包含以下步骤:将OEM装置证书写入可编程装置上的安全储存单元中。
在实施例中,该方法进一步包含以下步骤:从可编程装置的安全储存单元提取硅供货商装置证书。
在实施例中,该方法进一步包含以下步骤:将可编程装置移动到编程器的不良装置插座。
在实施例中,该方法进一步包含以下步骤:建立具有编程器的编程器识别的作业控制封包。
根据实施例,安全编程系统的操作方法包含以下步骤:接收具有目标有效负载的作业控制封包,从安装于编程器中的可编程装置提取硅供货商装置证书,硅供货商装置证书系藉由硅供货商私钥加密,使用硅供货商公钥来认证工厂安全系统中的硅供货商装置证书,依据硅供货商装置证书产生用于可编程装置的OEM装置证书,OEM装置证书系利用OEM私钥签署,将OEM装置证书与目标有效负载传送到编程器中的可编程装置,OEM装置证书系储存在可编程装置的安全储存单元中,在OEM装置证书传送到可编程装置之后,从可编程装置提取OEM装置证书与硅供货商装置证书,藉由使用OEM公钥认证OEM装置证书并使用硅供货商公钥认证硅供货商装置证书来产生验证状态,若OEM装置证书或硅供货商装置证书中之一者并未成功认证,则验证状态设定为无效,以及依据验证状态将可编程装置分类到输出插座中。
在实施例中,该方法进一步包含以下步骤:将经授权的计数编码到OEM装置证书中。
在实施例中,该方法进一步包含以下步骤:在工厂安全系统中认证OEM装置证书与硅供货商装置证书。
在实施例中,该方法进一步包含以下步骤:匹配来自硅供货商装置证书的硅供货商识别符与来自编程单元中的安全控制器的储存的硅供货商识别符。
在实施例中,该方法进一步包含以下步骤:产生具有与验证状态相关联的硅供货商装置证书的装置识别符的有效装置列表。
根据实施例,安全编程系统包含编程器与耦接至编程器的工厂安全系统,编程器用于从可编程装置提取硅供货商装置证书,将OEM装置证书与目标有效负载传送到编程器中的可编程装置,在将OEM装置证书传送到可编程装置之后,从可编程装置提取OEM装置证书与硅供货商装置证书,依据验证状态将可编程装置分类到编程器的输出插座中,而工厂安全系统用于使用硅供货商公钥来认证硅供货商装置证书,依据硅供货商装置证书产生可编程装置的OEM装置证书,利用OEM私钥来签署OEM装置证书,藉由使用OEM公钥来认证OEM装置证书以及使用硅供货商公钥来认证硅供货商装置证书而产生验证状态,若OEM装置证书或硅供货商装置证书中之一者未成功认证,则验证状态设定为无效。
在实施例中,该系统进一步包含储存在可编程装置上的安全储存单元中的OEM装置证书。
在实施例中,该系统进一步包含从可编程装置的安全储存单元提取的硅供货商装置证书。
在实施例中,该系统进一步包含将可编程装置移动到编程器的不良装置插座的编程器。
在实施例中,该系统进一步包含具有编程器的编程器识别的作业控制封包。
在实施例中,该系统进一步包含可编程装置,可编程装置包括藉由硅供货商私钥加密的硅供货商装置证书以及储存在安全储存单元中的OEM装置证书与硅供货商装置证书,编程器包括具有目标有效负载的作业控制封包,而工厂安全系统系用于使用硅供货商公钥来认证硅供货商装置证书。
在实施例中,该系统进一步包含具有可编程装置的经授权计数的OEM装置证书。
在实施例中,该系统进一步包含藉由工厂安全系统的安全控制器验证的OEM装置证书与硅供货商装置证书。
在实施例中,该系统进一步包含与来自编程单元中的安全控制器的预安装的硅供货商识别符匹配的来自硅供货商装置证书的硅供货商识别符。
在实施例中,该系统进一步包含具有可编程装置的硅供货商装置证书的装置识别符的有效装置列表。
这些及其他实施例的其他实例系见于本揭示各处。
5.0.实施机构-硬件概述
依据一个实施例,本文中所述的技术系由一或更多个特殊用途计算装置所实施。特殊用途计算装置可为桌面计算机系统、便携计算机系统、手持式装置、智能电话、媒体装置、游戏机、网络装置、或合并硬联机及/或程序逻辑以实施该等技术的任何其他装置。特殊用途计算装置可为硬联机,以执行该等技术,或者可以包括数字电子装置(例如被永久编程以执行该等技术的一或更多个特殊应用集成电路(ASIC)或现场可编程门阵列(FPGA)),或者可以包括编程为依据韧体、内存、其他储存器或组合中的程序指令来执行该等技术的一或更多个一般用途硬件处理器。此类特殊用途计算装置亦可以将定制的硬联机逻辑、ASIC、或FPGA与定制编程结合,以完成该等技术。
现在参照第13图,其中图示根据实施例绘示在实施上述技术时所利用的计算机系统1300的方块图。举例而言,计算机系统1300可为桌上型计算装置、膝上型计算装置、平板计算机、智能电话、服务器设备、计算大型计算机、多媒体装置、手持式装置、网络装置、或任何其他合适的装置。
计算机系统1300包括一或更多个总线1302或用于传递信息的其他通讯机构以及与总线1302耦接以用于处理信息的一或更多个硬件处理器1304。举例而言,硬件处理器1304可为一般用途微处理器。总线1302可以包括各种内部及/或外部部件,在不限制的情况下包括内部处理器或内存总线、序列ATA总线、PCI Express总线、通用串行总线、HyperTransport总线、Infiniband总线、及/或任何其他合适的有线或无线通信通道。
计算机系统1300亦包括耦接至总线1302以用于储存信息及要由处理器1304所执行之指令的主存储器1306(例如随机存取内存(RAM)或其他动态或挥发性储存装置)。主存储器1306亦可用于在执行要由处理器1304所执行的指令期间储存暂时变量或其他中间信息。此类指令当储存在处理器1304可存取的非瞬时储存媒体中时,使得计算机系统1300变成定制为执行该等指令中所指定之操作的特殊用途机器。
计算机系统1300进一步包括一或更多个只读存储器(ROM)1308或耦接至总线1302以针对处理器1304储存静态信息及指令的其他静态储存装置。一或更多个储存装置1310(例如固态硬盘(SSD)、磁盘、光盘或其他合适的非挥发性储存装置)被提供且耦接至总线1302,以用于储存信息及指令。
计算机系统1300可以经由总线1302耦接至一或更多个显示器1312,以用于向计算机用户呈现信息。举例而言,计算机系统1300可经由高清晰度多媒体接口(HDMI)缆线或其他合适的布线连接至液晶显示器(LCD)监视器,及/或透过无线连接(例如点对点Wi-Fi直接连接)连接至发光二极管(LED)电视。合适类型之显示器1312的其他实例在不限制的情况下可包括电浆显示设备、投影机、阴极射线管(CRT)监测器、电子纸、虚拟现实耳机、点字终端、及/或用于向计算机用户输出信息的任何其他合适的装置。在实施例中,可以利用任何合适类型的输出装置(例如音频喇叭或打印机)代替显示器1312。
在实施例中,可以藉由计算机系统1300中的一或更多个图形处理单元(GPU)加速显示器1312的输出。举例而言,GPU可为高度平行化的、多核的浮点处理单元,该处理单元经优化以执行关于图形数据、3D数据、及/或多媒体之显示的计算操作。除了直接计算影像及/或视讯数据以输出至显示器1312以外,GPU亦可用于在屏幕外呈现成像或其他视讯数据,且将该数据读回进程序以用于以非常高的效能进行屏幕外图像处理。各种其他计算任务可从处理器1304外载至GPU。
一或更多个输入设备1314耦接至总线1302,以向处理器1304传递信息及命令选择。输入设备1314的一个实例为键盘,该键盘包括文字数字及其他键。另一类型的使用者输入设备1314系为用于向处理器1304传递指向信息及命令选择及用于控制显示器1312上之光标移动的光标控制器1316,例如鼠标、轨迹球、或光标指向键。此输入设备一般在两个轴(第一轴(例如x)及第二轴(例如y))上具有两个自由度,该两个自由度允许装置指定平面中的位置。合适的输入设备1314的其他实例包括附加至显示器1312的触控屏幕面板、摄影机、麦克风、加速度计、运动侦测器、及/或其他传感器。在实施例中,可利用基于网络的输入设备1314。在此类实施例中,使用者输入及/或其他信息或命令可以经由局域网络(LAN)或其他合适的共享式网络上的路由器及/或开关或经由点对点网络来从输入设备1314传播至计算机系统1300上的网络链路1320。
计算机系统1300可使用定制的硬联机逻辑、一或更多个ASIC或FPGA、韧体、及/或程序逻辑来实施本文所述之技术,该等部件与计算机系统结合使得或编程计算机系统1300成为特殊用途机器。根据一个实施例,本文中的技术响应于处理器1304执行主存储器1306中所包含之一或更多个指令的一或更多个序列而由计算机系统1300执行。此类指令可从另一储存媒体(例如储存装置1310)读取进主存储器1306。执行主存储器1306中所包含之指令的序列使得处理器1304执行本文中所述的处理步骤。在另一实施例中,可替代于软件指令或与软件指令结合来使用硬联机的电路系统。
如本文中所使用的用语「储存媒体」系指称储存使机器以特定方式操作的数据及/或指令的任何非瞬时媒体。此类储存媒体可以包含非挥发性媒体及/或挥发性媒体。举例而言,非挥发性媒体包括光或磁盘,例如储存装置1310。挥发性媒体包括易失存储器,例如主存储器1306。储存媒体的通用形式例如包括软盘、软性磁盘、硬盘、固态硬盘、磁带或任何其他磁式数据储存媒体、CD-ROM、任何其他光学数据储存媒体、具有孔洞图样的任何实体媒体、RAM、PROM、及EPROM、FLASH-EPROM、NVRAM、任何其他内存芯片或匣。
储存媒体不同于传输媒体,但可以与传输媒体结合使用。传输媒体参与在储存媒体之间传输信息。举例而言,传输媒体包括同轴缆线、铜线、及光纤(包括含有总线1302的导线)。传输媒体亦可采取声学或光波的形式,例如在音波及红外线数据通讯期间所产生的那些形式。
各种形式的媒体可涉及将一或更多个指令的一或更多个序列承载至处理器1304以供执行。举例而言,指令可以一开始就承载于远程计算机的磁盘或固态硬盘上。远程计算机可以将指令载进其易失存储器,且使用调制解调器来在网络(例如缆线网络或细胞式网络)上将该等指令发送为调变讯号。在计算机系统1300本端的调制解调器可在网络上接收数据及解调讯号,以译码所传送的指令。适当的电路系统可接着将数据放置在总线1302上。总线1302将数据承载至主存储器1306,处理器1304从该主存储器1306检索及执行指令。由主存储器1306所接收的指令可以任选地在由处理器1304执行之前或之后储存于储存装置1310上。
在实施例中,计算机系统1300亦可包括耦接至总线1302的一或更多个通讯接口1318。通讯接口1318将数据通讯耦合(一般为双路)提供至连接至本端网络1322的网络链路1320。举例而言,通讯接口1318可为整合型服务数字网络(ISDN)卡、电缆调制解调器、卫星调制解调器、或用以向相对应类型的电话线路提供数据通讯连接的调制解调器。作为另一实例,一或更多个通讯接口1318可以包括用于将数据通讯连接提供至兼容LAN的局域网络(LAN)卡。作为另一实例,一或更多个通讯接口1318可包括无线网络接口控制器,例如基于802.11的控制器、蓝牙控制器、长期进化(LTE)调制解调器、及/或其他类型的无线接口。在任何此类实施方案中,通讯接口1318发送及接收承载表示各种类型之信息之数字数据串流的电、电磁、或光学讯号。
网络链路1320一般藉由一或更多个网络向其他数据装置提供数据通讯。举例而言,网络链路1320可以藉由本端网络1322向主控计算机1324或由服务提供商1326所操作的数据装备提供连接。服务提供商1326(例如可为因特网服务提供商(ISP))反过来藉由广域网(例如现常称为「因特网」1328的全球封包数据通讯网络)提供数据通讯服务。本端网络1322及因特网1328两者使用承载数字数据串流的电、电磁、或光学讯号。藉由各种网络的讯号及网络链路1320上及藉由通讯接口1318的讯号(该等讯号承载往返计算机系统1300的数字数据)系为传输媒体的示例形式。
在实施例中,计算机系统1300可以藉由网络、网络链路1320、及通讯接口1318发送讯息及接收数据(包括程序代码及/或其他类型的指令)。在因特网实例中,服务器1330可以透过因特网1328、ISP 1326、本端网络1322、及通讯接口1318传送用于应用程序的受请求的代码。所接收的代码可在接收时由硬件处理器1304执行,及/或储存在储存装置1310或其他非挥发性储存器中,以供之后执行。作为另一实例,经由网络链路1320所接收的信息可由计算机系统1300的软件部件(例如网页浏览器、应用程序、或服务器)解译及/或处理,该软件部件反过来依据该信息可能透过操作系统及/或软件部件的其他中间层向硬件处理器1304发出指令。
在实施例中,本文中所述的一些或所有系统可以是或包括服务器计算机系统,包括将系统之各种部件共同实施为服务器端处理之集合的一或更多个计算机系统1300。服务器计算机系统可以包括网页服务器、应用服务器、数据库服务器、及/或某些上述部件所用以提供所述功能的其他习知服务器部件。服务器计算机系统可以从各种来源(在不限制的情况下包括使用者操作的客户端计算装置(例如桌面计算机、平板计算机、或智能电话)、远程感测装置、及/或其他服务器计算机系统)中的任何者接收基于网络的通讯(包括输入数据)。
在实施例中,可以使用由一或更多个网络(例如因特网)耦接至系统之基于「云端」的部件来完全或部分实施某些服务器部件。基于云端的部件可以暴露接口,该等部件藉由该等接口向系统的其他部件提供处理、储存、软件、及/或其他资源。在实施例中,基于云端的部件可由第三方实体代替另一实体实施,其中该等部件是针对该另一实体而部署。然而,在其他实施例中,所述的系统可完全藉由被单一实体拥有及操作的计算机系统所实施。
在实施例中,一种设备包含处理器,并经配置以执行任何上述方法。在实施例中,一种储存软件指令的非瞬时计算机可读取储存媒体,该等软件指令在藉由一或更多个处理器执行时,造成执行上述方法中的任何者。6.0.延伸及替代方案
如本文中所使用的术语「第一」、「第二」、「某些」、及「特定」系作为命名规约,以彼此区隔查询、计划、表示、步骤、对象、装置或其他项目,使得可在这些项目已被介绍之后参照这些项目。除非原本在本文中指定,这些术语的使用并不暗示顺序、时序、或所参照之项目的任何其他特性。
在图式中,各种部件由箭头描绘为通讯耦接至各种其他部件。这些箭头仅绘示部件间之信息流的某些实例。箭头方向或在某些部件之间缺乏箭头线皆不应解译为指示某些部件本身间之通讯的存在或不存在。确实,每一部件可以具有合适通讯接口的特征,藉由该通讯接口,该部件可依所需变得通讯耦接至其他部件,以完成本文中所述的任何功能。
在上述说明书中,已参照许多特定细节描述本发明的实施例,该等特定细节可随着实施方案到实施方案而变化。因此,本发明为何物及申请人所欲作为本发明之物的唯一且排他的指示为从此案发布的请求项集合,包括任何后续的更正,该请求项集合呈现如此请求项所用以发布的特定形式。就此而言,尽管特定的请求项依附关系被陈设于此案的请求项中,注意的是,此案的附属项特征可适当地与其他附属项的特征及与此案独立项的特征结合,且该结合不只是依据请求项集合中所载的特定依附关系。此外,尽管在本文中论述单独的实施例,本文中所论述之实施例及/或部分实施例的任何组合可组合以形成进一步的实施例。
本文中针对如此请求项中所包含的术语明确阐述的任何定义应主宰如请求项中所使用之如此术语的意义。因此,请求项中未明确记载的限制、构件、属性、特征、优点或特性不应以任何方式限制如此请求项的范围。因此,以说明性而非限制性的意义来看待说明书及图示。

Claims (20)

1.一种操作一安全编程系统的方法,包含以下步骤:
从安装于一编程器中的一可编程装置提取一硅供货商装置证书;
使用一硅供货商公钥来认证该硅供货商装置证书;
依据该硅供货商装置证书产生用于该可编程装置的一OEM装置证书,该OEM装置证书系利用一OEM私钥签署;
将该OEM装置证书与一目标有效负载传送到安装在该编程器中的该可编程装置;
在该OEM装置证书传送到该可编程装置之后,从该可编程装置提取该OEM装置证书与该硅供货商装置证书;
藉由使用该OEM公钥认证该OEM装置证书并使用该硅供货商公钥认证该硅供货商装置证书来产生一验证状态,若该OEM装置证书或该硅供货商装置证书中之一者并未成功认证,则该验证状态设定为无效;以及
依据该验证状态将该可编程装置分类到该编程器的一输出插座中。
2.如请求项1所述之方法,其中产生该OEM装置证书之步骤包括以下步骤:将该OEM装置证书写入该可编程装置上的一安全储存单元中。
3.如请求项1所述之方法,其中提取该硅供货商装置证书之步骤包括以下步骤:从该可编程装置的一安全储存单元提取该硅供货商装置证书。
4.如请求项1所述之方法,其中分类该可编程装置之步骤包括以下步骤:将该可编程装置移动到该编程器的一不良装置插座。
5.如请求项1所述之方法,进一步包含以下步骤:建立具有该编程器的一编程器识别的一作业控制封包。
6.一种操作一安全编程系统的方法,包含以下步骤:
接收具有一目标有效负载的一作业控制封包;
从安装于一编程器中的一可编程装置提取一硅供货商装置证书,该硅供货商装置证书系藉由一硅供货商私钥加密;
使用一硅供货商公钥来认证一工厂安全系统中的该硅供货商装置证书;
依据该硅供货商装置证书产生用于该可编程装置的一OEM装置证书,该OEM装置证书系利用一OEM私钥签署;
将该OEM装置证书与该目标有效负载传送到该编程器中的该可编程装置,该OEM装置证书系储存在该可编程装置的一安全储存单元中;
在该OEM装置证书传送到该可编程装置之后,从该可编程装置提取该OEM装置证书与该硅供货商装置证书;
藉由使用该OEM公钥认证该OEM装置证书并使用该硅供货商公钥认证该硅供货商装置证书来产生一验证状态,若该OEM装置证书或该硅供货商装置证书中之一者并未成功认证,则该验证状态设定为无效;以及
依据该验证状态将该可编程装置分类到一输出插座中。
7.如请求项6所述之方法,其中产生该OEM装置证书之步骤包括以下步骤:将一经授权的生产计数编码到一作业控制封包中。
8.如请求项6所述之方法,其中产生该验证状态之该步骤包括以下步骤:在该工厂安全系统中认证该OEM装置证书与该硅供货商装置证书。
9.如请求项6所述之方法,其中认证该硅供货商装置证书之该步骤包括以下步骤:匹配来自该硅供货商装置证书的一硅供货商识别符与来自该编程单元中的一安全控制器的一储存的硅供货商识别符。
10.如请求项6所述之方法,其中产生该验证状态之该步骤包括以下步骤:产生具有与该验证状态相关联的该硅供货商装置证书的一装置识别符的一有效装置列表。
11.一种安全编程系统,包含:
一编程器,用于从一可编程装置提取一硅供货商装置证书,将该OEM装置证书与一目标有效负载传送到该编程器中的该可编程装置,在将该OEM装置证书传送到该可编程装置之后,从该可编程装置提取该OEM装置证书与该硅供货商装置证书,依据该验证状态将该可编程装置分类到该编程器的一输出插座中;以及
一工厂安全系统,耦接至该编程器,并使用一硅供货商公钥来认证该硅供货商装置证书,依据该硅供货商装置证书产生该可编程装置的一OEM装置证书,利用该OEM私钥来签署该OEM装置证书,藉由使用该OEM公钥来认证该OEM装置证书以及使用该硅供货商公钥来认证该硅供货商装置证书而产生一验证状态,若该OEM装置证书或该硅供货商装置证书中之一者并未成功认证,则该验证状态设定为无效。
12.如请求项11所述之系统,其中该OEM装置证书系储存在该可编程装置上的一安全储存单元中。
13.如请求项11所述之系统,其中该硅供货商装置证书系从该可编程装置的一安全储存单元提取。
14.如请求项11所述之系统,其中该编程器将该可编程装置移动到一不良装置插座。
15.如请求项11所述之系统,其中该工厂安全系统包括具有该编程器的一编程器识别的一作业控制封包。
16.如请求项11所述之系统,其中:
该可编程装置包括藉由该硅供货商私钥加密的该硅供货商装置证书以及储存在安全储存单元中的该OEM装置证书与该硅供货商装置证书;
该编程器包括具有一目标有效负载的一作业控制封包,以及
该工厂安全系统系用于使用该硅供货商公钥来认证该硅供货商装置证书。
17.如请求项16所述之系统,其中该编程器包括具有该可编程装置的一经授权的生产计数的一作业控制封包。
18.如请求项16所述之系统,其中该可编程装置包括藉由该工厂安全系统的一安全控制器验证的该OEM装置证书与该硅供货商装置证书。
19.如请求项16所述之系统,其中该可编程装置包括与来自该编程单元中的一安全控制器的一预安装的硅供货商识别符匹配的来自该硅供货商装置证书的一硅供货商识别符。
20.如请求项16所述之系统,其中该编程器包括具有与该可编程装置的该硅供货商装置证书的一装置识别符的一有效装置列表。
CN201780053611.4A 2016-08-01 2017-07-31 利用系统产生的装置程序化 Active CN110050273B (zh)

Applications Claiming Priority (5)

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

Publications (2)

Publication Number Publication Date
CN110050273A true CN110050273A (zh) 2019-07-23
CN110050273B CN110050273B (zh) 2024-02-06

Family

ID=61011793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780053611.4A Active CN110050273B (zh) 2016-08-01 2017-07-31 利用系统产生的装置程序化

Country Status (6)

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

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9923755B2 (en) 2016-08-01 2018-03-20 Data I/O Corporation Device programming with system generation
US11050605B2 (en) * 2016-08-01 2021-06-29 Data I/O Corporation Device programming with system generation
EP3382479B1 (en) * 2017-03-31 2023-07-05 ABB Schweiz AG Rule-based communicating of equipment data from an industrial system to an analysis system using uni-directional interfaces
GB201802975D0 (en) * 2018-02-23 2018-04-11 Secure Thingz Ltd Programming target devices
US10585819B2 (en) * 2018-03-05 2020-03-10 Samsung Electronics Co., Ltd. SSD architecture for FPGA based acceleration
US10979232B2 (en) * 2018-05-31 2021-04-13 Motorola Solutions, Inc. Method for provisioning device certificates for electronic processors in untrusted environments
WO2020088783A1 (en) * 2018-11-02 2020-05-07 Telefonaktiebolaget Lm Ericsson (Publ) Authentication of an original equipment manufacturer entity
US11372977B2 (en) * 2018-11-12 2022-06-28 Thirdwayv, Inc. Secure over-the-air firmware upgrade
GB2584909B (en) * 2019-06-21 2022-11-23 Secure Thingz Ltd Secure provision of Programmable Devices
TWI709079B (zh) * 2019-09-26 2020-11-01 奕智鏈結科技股份有限公司 文件碎形化出版與機密管制系統及其技術
TWI740272B (zh) * 2019-11-14 2021-09-21 和碩聯合科技股份有限公司 寫入映像檔至記憶體之裝置、方法及其非暫態電腦可讀取媒體
US11570156B2 (en) 2020-07-02 2023-01-31 International Business Machines Corporation Secure pairing of devices
US20220141658A1 (en) * 2020-11-05 2022-05-05 Visa International Service Association One-time wireless authentication of an internet-of-things device
US20220405391A1 (en) * 2021-06-21 2022-12-22 Micron Technology, Inc. Secure Identity Chaining between Components of Trusted Computing Base
DE102022123487A1 (de) 2022-09-14 2024-03-14 Dr. Ing. H.C. F. Porsche Aktiengesellschaft System, Verfahren und Computerprogrammprodukt zum kontrollierten Updaten einer Software für eine Steuerungseinrichtung

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101149773A (zh) * 2007-08-27 2008-03-26 中国人民解放军空军电子技术研究所 一种基于软件实名认证的系统及其安全查证方法
EP2056231A1 (en) * 2007-11-01 2009-05-06 Infineon Technologies AG Method and system for transferring information to a device
EP2387262A1 (en) * 2010-05-10 2011-11-16 Research In Motion Limited System and method for multi-certificate and certificate authority strategy
US20120079279A1 (en) * 2010-03-29 2012-03-29 Maxlinear, Inc. Generation of SW Encryption Key During Silicon Manufacturing Process
US20150082392A1 (en) * 1997-06-11 2015-03-19 Prism Technologies Llc Method for managing access to protected computer resources
US20150100786A1 (en) * 1999-06-11 2015-04-09 Tvworks, Llc Trust Information Delivery Scheme for Certificate Validation
KR20150040920A (ko) * 2012-08-10 2015-04-15 크라이프토그라피 리서치, 인코포레이티드 집적회로들에서의 보안 피쳐 및 키 관리
US20150242615A1 (en) * 2014-02-27 2015-08-27 Microsemi SoC Corporation Methods for controlling the use of intellectual property in individual integrated circuit devices
CN105074682A (zh) * 2013-01-15 2015-11-18 施耐德电气美国股份有限公司 安全访问可编程装置的系统和方法
US9226145B1 (en) * 2014-03-28 2015-12-29 Sprint Communications Company L.P. Verification of mobile device integrity during activation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050132357A1 (en) * 2003-12-16 2005-06-16 Microsoft Corporation Ensuring that a software update may be installed or run only on a specific device or class of devices
US7644278B2 (en) * 2003-12-31 2010-01-05 International Business Machines Corporation Method for securely creating an endorsement certificate in an insecure environment
US8677144B2 (en) * 2008-02-25 2014-03-18 Cavium, Inc. Secure software and hardware association technique
WO2010057312A1 (en) * 2008-11-24 2010-05-27 Certicom Corp. System and method for hardware based security
US9208459B2 (en) * 2009-07-10 2015-12-08 Certicom Corp. System and method for performing serialization of devices
US8843764B2 (en) * 2011-07-15 2014-09-23 Cavium, Inc. Secure software and hardware association technique
US9720681B2 (en) * 2011-07-20 2017-08-01 Data I/O Corporation Device programming system with data broadcast and method of operation thereof
US9081747B1 (en) * 2012-03-06 2015-07-14 Big Bang Llc Computer program deployment to one or more target devices
US9230137B2 (en) * 2013-05-30 2016-01-05 Dell Products, L.P. Secure original equipment manufacturer (OEM) identifier for OEM devices
US9390246B2 (en) * 2013-09-25 2016-07-12 Intel Corporation Creating secure original equipment manufacturer (OEM) identification
US9635014B2 (en) * 2014-02-21 2017-04-25 Samsung Electronics Co., Ltd. Method and apparatus for authenticating client credentials
US9923755B2 (en) 2016-08-01 2018-03-20 Data I/O Corporation Device programming with system generation

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150082392A1 (en) * 1997-06-11 2015-03-19 Prism Technologies Llc Method for managing access to protected computer resources
US20150100786A1 (en) * 1999-06-11 2015-04-09 Tvworks, Llc Trust Information Delivery Scheme for Certificate Validation
CN101149773A (zh) * 2007-08-27 2008-03-26 中国人民解放军空军电子技术研究所 一种基于软件实名认证的系统及其安全查证方法
EP2056231A1 (en) * 2007-11-01 2009-05-06 Infineon Technologies AG Method and system for transferring information to a device
US20120079279A1 (en) * 2010-03-29 2012-03-29 Maxlinear, Inc. Generation of SW Encryption Key During Silicon Manufacturing Process
EP2387262A1 (en) * 2010-05-10 2011-11-16 Research In Motion Limited System and method for multi-certificate and certificate authority strategy
KR20150040920A (ko) * 2012-08-10 2015-04-15 크라이프토그라피 리서치, 인코포레이티드 집적회로들에서의 보안 피쳐 및 키 관리
CN105074682A (zh) * 2013-01-15 2015-11-18 施耐德电气美国股份有限公司 安全访问可编程装置的系统和方法
US20150242615A1 (en) * 2014-02-27 2015-08-27 Microsemi SoC Corporation Methods for controlling the use of intellectual property in individual integrated circuit devices
US9226145B1 (en) * 2014-03-28 2015-12-29 Sprint Communications Company L.P. Verification of mobile device integrity during activation

Also Published As

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

Similar Documents

Publication Publication Date Title
CN110050273A (zh) 利用系统产生的装置程序化
TWI744373B (zh) 使用安全演算法嵌入基礎性的信任根
TWI741041B (zh) 用於可程式化設備的統一程式設計環境
US11595371B2 (en) Device programming with system generation
US10496811B2 (en) Counterfeit prevention
CN108475319A (zh) 装置出生凭证
CN102171652A (zh) 为电子装置提供可信软件的方法
EP3772008A1 (en) Device programming with system generation
US20240146545A1 (en) Unified programming environment for programmable devices
JP2011010325A (ja) 装置鍵

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
GR01 Patent grant