CN109997333B - 使用安全算法嵌入基础性的信任根 - Google Patents
使用安全算法嵌入基础性的信任根 Download PDFInfo
- Publication number
- CN109997333B CN109997333B CN201780053561.XA CN201780053561A CN109997333B CN 109997333 B CN109997333 B CN 109997333B CN 201780053561 A CN201780053561 A CN 201780053561A CN 109997333 B CN109997333 B CN 109997333B
- Authority
- CN
- China
- Prior art keywords
- security
- programmable device
- trust
- root
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
- H04W12/069—Authentication using certificates or pre-shared keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/10—Integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/127—Trusted platform modules [TPM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本文揭露以安全方式提供可程序化装置的方法、技术及机制。安全程序化系统可单独加密数据及代码的目标有效承载(payload),随后将信息程序化至针对特定作业的可程序化装置中之每一者中。安全程序化系统可建立只能由具有正确安全密钥的特定系统或装置来解密之客制化的有效承载封包。
Description
技术领域
本申请案主张2017年8月4日所申请之美国专利非临时申请序列号15/669,873(其名称为「使用安全算法嵌入基础性的信任根(EMBEDDING FOUNDATIONAL ROOT OF TRUSTUSING SECURITY ALGORITHMS)」)及2016年8月8日所申请之美国专利临时申请序列号62/372,242(其名称为「使用安全算法嵌入基础性的信任根(EMBEDDING FOUNDATIONAL ROOTOF TRUST USING SECURITY ALGORITHMS)」)的优先权;根据35USC§120,此等申请案之全部内容藉由引用并入本文中而视为本文的一部分。
本申请案系与2016年8月4日所申请之美国专利临时申请序列号62/371,184(其名称为「COUNTERFEIT PREVENTION」)、2006年9月30日所申请之美国专利临时申请序列号62/401,953(其名称为「UNIFIED PROGRAMMING ENVIRONMENT FOR PROGRAMMABLE DEVICES」)及2017年6月30日所申请之美国专利非临时申请序列号15/640,438(其名称为「DEVICEPROGRAMMING WITH SYSTEM GENERATION」)相关;每个申请案均由申请人所有且其全部内容藉由引用并入本文中。
实施例一般系关于装置程序化系统;更具体来说,系关于安全程序化及验证系统。
背景技术
本章节中描述的方法系为可探求的方法,并非一定是先前已经设想或探求过的方法。因此,除非另有说明,否则不应假定本章节中描述的任何方法仅因其包含于本章节中而为先前技术。
合同电子组件组件可为盗版行为展现有价值的智能财产。智慧财产的曝光可让开发人员在开发中花费数百万美元。尽管各种进料机及机器人处理系统以集成电路填充电子电路板,但与处理集成电路相关的操作(如程序化、测试、校准及量测)通常系在单独设备上的不同区域中(而不是结合至主生产装配线中)执行。
可用独立的程序化设备来配置可程序化装置(如闪存(Flash)、电子抹除式可复写只读存储器(EEPROM)、可程序化逻辑设备(PLD)、现场可程序化门阵列(FPGA)及结合非挥发性内存组件的微控制器),此独立的程序化设备经常位于与电路板装配线分开的区域中。此外,如智能型手机、电路板、物联网(IoT)装置及媒体播放器等系统层级组件亦可能需要特定的安全配置支持。
发明内容
一种设备,包含:辨识模块,此辨识模块至少部分由硬件实施,辨识模块基于可程序化装置之信任根数据缓存器及可程序化装置之信任根代码缓存器来产生由制造执行系统所使用的辨识代符;加密模块,此加密模块至少部分由硬件实施,加密模块计算用于认证信任数据缓存器及信任根代码缓存器的加密代符及密钥代符;认证模块,此认证模块至少部分由硬件实施,认证模块基于加密代符及密钥代符来验证信任硬件平台;及代码签名模块,此代码签名模块至少部分由硬件实施,代码签名模块在程序化可程序装置之前验证信任硬件平台的韧体完整性。
一种方法,包含以下步骤:基于可程序化装置的信任根数据缓存器及可程序化装置的信任根代码缓存器来产生由制造执行系统所使用的辨识代符;计算用于认证信任数据缓存器及信任根代码缓存器的加密代符及密钥代符;基于加密代符及密钥代符来验证信任硬件平台;及在程序化可程序化装置之前验证信任硬件平台的韧体完整性。
一或多个非瞬时计算机可读取媒体,此一或多个非瞬时计算机可读取媒体储存指令,当由一或多个计算装置执行此等指令时,此等指令执行以下步骤:基于可程序化装置的信任根数据缓存器及可程序化装置的信任根代码缓存器来产生由制造执行系统所使用的辨识代符;计算用于认证信任数据缓存器及信任根代码缓存器的加密代符及密钥代符;基于加密代符及密钥代符来验证信任硬件平台;及在程序化可程序化装置之前验证信任硬件平台的韧体完整性。
附图说明
在附加图式中以范例(而非限制)的方式图示了本发明,及此等附图中相同的组件符号系表示相同的组件,在此等附图中:
图1描绘了根据实施例之安全程序化系统的说明图;
图2描绘了程序化器的范例;
图3描绘了信任装置中之一者的范例;
图4描绘了数据装置中之一者的范例;
图5描绘了装置辨识的范例;
图6描绘了安全程序化系统的示例性方块图;
图7描绘了安全程序化系统的第二示例性方块图;
图8为根据实施例之信任装置的方块图;
图9为管理及安全处理系统的范例;
图10为安全组件使用案例的详细范例;
图11为设备上种子及凭证生成使用案例的范例;
图12为根据实施例之嵌入信任根系统之流程图的第一范例;
图13为根据一或多个实施例之嵌入信任根系统之流程图的第二范例;及
图14为可在其上实施本发明之实施例的计算机系统的方块图。
具体实施方式
在下文描述中,为了说明目的,阐述了众多具体细节以提供对本发明的透彻理解。然而,将为显而易见的是,可在没有此等具体细节的情况下实施本发明。在其他范例中,以方块图形式图标了众所周知的结构及装置,以避免不必要地模糊本发明。
本文根据下列提纲来描述实施例,此等提纲为:
1.0整体概述
2.0结构概述
3.0功能概述
4.0示例性实施例
5.0实施机制─硬件概述
6.0扩展及替代
1.0整体概述
本文揭露以安全方式提供可程序化装置的方法、技术及机制。安全程序化系统可单独加密数据及代码的目标有效承载(payload),随后将信息程序化至针对特定作业的可程序化装置中之每一者中。安全程序化系统可建立只能由具有正确安全密钥的特定系统或装置来解密之客制化的有效承载封包。
可程序化装置可包含内存芯片、电路板等,以及如智能型手机、媒体播放器及其他消费者和工业电子装置等完整的电子装置。安全密钥的配置可控制可程序化装置的程序化操作。
根据实施例,对可程序化装置(如电路板)中之一者上之个别目标有效承载的程序数据的加密可使得电路板能经配置为仅与具有已注册安全代码的组件一起运作。此可用于确保仅能以经认证的零件类别来制造电路板。
根据实施例,当安全代码经识别为无效时,将不授权可程序化装置运作(例如,接收程序化数据或代码或将任何用户数据发送回主机系统或服务器等)。侦测到此种未经授权的操作消除了可能被篡改或损坏的假冒装置及安全装置。
根据实施例,可报告及储存未授权装置的辨识(例如,序列号等)以用于后续的认证过程。储存的辨识可做为用于后续认证的先验信息,以减少所选辨识的总体验证时间。
根据实施例,可程序化装置可验证序列号或作为装置操作先决条件的其他参数。在另一个实施例中,可程序化装置可提供代码签名设施以在执行前认证代码。
在其他态样中,本发明包括经配置为执行前述技术的计算机设备及计算机可读取媒体。
2.0结构概述
现在参考图1,其中图示了可根据实施例实施本文所述技术之安全程序化系统100各态样的说明性视图。安全程序化系统100可单独配置数据装置并利用加密信息启动信任装置,以提供安全的程序化及操作环境。
安全程序化系统100包含程序化单元110,程序化单元110具有程序化器112、安全控制器114、安全密钥106、用于耦合至可程序化装置128的配接器、第一安全模块116、第二安全模块118及第n安全模块120。安全程序化系统100可耦合至具有安全主储存系统102的安全主系统104。安全主系统104和安全主储存系统102可产生及安全地储存安全密钥106以用于加密和解密信息。安全密钥106可实现各种安全典范。安全密钥106可包括具有私钥152及公钥154的密钥对150。密钥对150可用于实施公钥加密系统,其中由可用公钥154解密私钥152所加密的资料。安全程序化系统100可根据需要而包含多个不同的密钥对150。可为不同装置或系统组件来实施密钥对150、私钥152及公钥154,此等不同装置或系统组件包含安全程序化系统100、程序化单元110、程序化器112、安全控制器114、安全模块、可程序化装置128、数据装置132、信任装置130或任何其他系统组件。
系统100包含一或多个计算装置。此等一或多个计算装置包含经配置为实施本文所述之各种逻辑组件的硬件及软件的任何组合,此等各种逻辑组件包含具有程序化器112、安全控制器114、配接器、第一安全模块116、第二安全模块118及第n个安全模块120的程序化单元110的组件。举例而言,一或多个计算装置可包含一或多个储存用于实施本文所述之各种组件之指令的内存、一或多个经配置为执行储存在一或多个内存中之指令的硬件处理器,及一或多个内存中用于储存由各种组件使用及操纵之数据结构的各种数据储存库。
程序化单元110可为用于将数据、中介数据及代码程序化至可程序化装置128上的安全系统。程序化单元110可从安全主系统104接收安全信息、处理信息及传送正确配置版本的安全信息至可程序化装置128。
程序化单元110可包含程序化器112。程序化器112可为用于实体地程序化可程序化装置128的机电系统。举例而言,程序化器112可接收包含可程序化装置128的匣(tray),将可程序化装置128电耦合至配接器单元,及将安全信息传送至可程序化装置128中。程序化单元110可自每个可程序化装置128接收个别的状态信息,及在个别的装置基础上客制化传送至每个可程序化装置128的安全信息。举例而言,可程序化装置128中的每一者可接收个别的信息(此信息与传送至可程序化装置中之其他装置的信息不同)块。
程序化器112可耦合至一或多个可用于存取可程序化装置128的配接器。配接器可包括第一配接器122、第二配接器124及第n配接器126。
在说明性范例中,第一配接器122可为可用于将一或多个可程序化装置电连接到程序化器112的硬件装置。程序化器112可接着将安全信息的版本传送至可程序化装置128中的一者。第一配接器122可包含用于安装可程序化装置128的一或多个插座。第一配接器122可包括插座、连接器、零插拔力(ZIF)插座或类似装置以安装集成电路。
尽管将配接器描述为用于安装可程序化装置128的机电单元,但应当理解的是,配接器亦可具有其他实施。举例而言,若可程序化装置128为独立电子装置(如移动电话、消费型电子装置、电路板或具有主动组件的类似装置),则配接器可包括与可程序化装置128进行通讯的机制。配接器可包括电缆链路、无线通信链路、电子数据总线接口或类似的数据通讯机制。
可程序化装置128为可由程序化单元110提供安全信息的装置。举例而言,可程序化装置128可包含数据装置,此等数据装置如闪存单元、可程序化只读存储器、安全数据储存装置或类似数据装置。
配置可包括将数据及代码信息传送至装置。举例而言,可藉由数据程序化闪存单元来提供此闪存单元。
可程序化装置128亦可包含信任装置130,信任装置130包含安全数据及安全程序信息。举例而言,可程序化装置128可包括信任装置130(例如,移动电话、硬件安全模块、信任程序化模块、电路板或类似设备)。
数据装置132可包括任何数量的装置;例如,第一数据装置134、第二数据装置136及第n数据装置138。信任装置130可包括任何数量的信任装置;例如,第一信任装置140、第二信任装置142及最多第n信任装置144。
可提供个别客制化的安全信息给可程序化装置128中之每者。因此,可程序化装置128中的每者可包含单独的安全密钥组106,安全密钥组106可用于个别地加密储存在可程序化装置128中的数据。此提供了在可程序化装置128中之每者上不同地加密安全信息148的能力以最大化安全。可藉由个别的安全密钥106将可程序化装置128中的每者个人化。
可程序化装置128可经配置为包括成对装置146。成对装置146为可共享一或多个安全密钥106的可程序化装置128中之两者或更多者。此可允许成对装置146中之每者侦测及认证同一群组中之成对装置146中的另一者。因此,来自成对装置146之一者的数据可与成对装置146中的另一者共享。此可允许如共享信息、认证两个或更多个成对装置146之间的双向安全信道、辨识其他相关装置或上述组合的功能。
在说明性范例中,安全程序化系统100可用于建立具有第一数据装置134的成对装置146之一者,如与第一信任装置140(如智能型手机)配对的系统信息模块(SIM)芯片。在此配置中,可藉由成对装置146的安全密钥106来程序化第一数据装置134及第一信任装置140两者。因此,第一信任装置140可验证第一数据装置134的安全信息148(如序列号),以认证第一信任装置140经允许使用在第一数据装置134上的其他信息。
程序化单元110可包含耦合至程序化器112的安全控制器114。安全控制器114为用于处理安全信息的计算装置。安全控制器114可包括特定的加密及计算硬件,以设置加密信息的处理。举例而言,安全控制器114可包括量子计算机、并行计算电路、经配置为处理安全信息的现场可程序化门阵列(FPGA)、协同处理器、数组逻辑单元、微处理器或上述组合。
安全控制器114可为专门配置为防止在处理安全信息的输入、中间或最后阶段处未经授权地存取安全信息的安全装置。安全控制器114可为安全代码组件提供执行时的安全执行环境,举例而言,安全控制器114可为硬件安全模块(HSM)、微处理器、信任安全模块(TPM)、专用安全单元或上述组合。安全控制器114可为程序化单元110的一部分。举例而言,如硬件安全模块的安全控制器114可包括在程序化器112内。
安全控制器114可耦合至安全模块以提供特定的安全功能。安全模块可包括第一安全模块116、第二安全模块118及第n个安全模块120。每个安全模块可提供特定的安全功能,如辨识、认证、加密、解密、验证、代码签名、数据萃取或上述组合。举例而言,安全模块可为硬件、软件或上述组合。
举例而言,第一安全模块116可经配置为向一套标准化的常用安全功能提供应用程序设计界面(API)。在另一范例中,第二安全模块118可为专用硬件及软件的组合,以提供数据之更快的加密及解密。
程序化单元110可包括一或多个安全密钥106的安全储存。可在安全程序化系统100内部计算安全密钥106、可外部计算此等安全密钥106并由安全程序化系统100接收此等安全密钥106,或上述组合。
安全密钥106可用于加密及解密安全信息。安全密钥106可用于实施不同的安全方法和协定。举例而言,安全密钥106可包括具有私钥152及公钥154的密钥对150以实施公钥加密系统。在另一范例中,安全密钥106可用于实施不同的安全协定或方法。尽管可将安全密钥106描述为公钥加密系统,但应当理解的是,安全密钥106可用于实施任何不同的安全典范。
在说明性范例中,安全密钥106可包含用于公钥加密系统的一或多个密钥对150。可使用密钥对150中之一者的公钥154加密安全信息,且只能使用其成对的私钥152解密此安全信息。
安全程序化系统100的优点中之一者包含为每个可程序化装置128提供不同的安全密钥组106及由个别安全密钥106所加密之不同版本的安全信息148的能力。此可确保用于解密可程序化装置128中之一者上的安全信息148的安全密钥106不能用于解密另一个可程序化装置128上的安全信息。每个可程序化装置128可具有安全密钥106中的单独一者以提供最大的保护。
现在参考图2,其中图标了程序化器112的范例。程序化器112为用于供应可程序化装置128的机电装置。
程序化器112可用于存取可程序化装置128且向可程序化装置128提供内容有效承载。内容有效承载可包含数据、代码、安全密钥106、安全信息148及其他相关内容。
程序化器112可具有各种配置。程序化器112可包含程序化处理器202、输入设备插座206、装置配接器208、目的插座210、装置放置单元212及输出装置插座214。举例而言,程序化器112可为程序化器112、芯片程序化器、装置供应系统、电路板程序化器或类似的配置系统。
程序化器112可具有程序化器辨识符216。程序化器辨识符216为用于辨识程序化器112的唯一值。
程序化器112可藉由将数据映像初始化及将此数据映像写入可程序化装置128中来配置程序化装置128。可为可程序化装置128的装置类型来配置数据映像。程序化器112可使用直接或间接内存存取而将数据传送至可程序化装置128。
程序化器112可接收用于可程序化装置128的单一有效承载映像,并将此映像储存在本端程序化器储存单元中。可将有效承载映像处理成针对每个可程序化装置128的单独映像。配置可程序化装置128可储存内存结构、加密数据及用户数据于可程序化装置128上。配置可包含形成一次性结构,如可程序化装置128上的分区。
程序化处理器202可具有各种配置。举例而言,程序化处理器202可包括安全控制器或经耦合至系统控制器。程序化处理器202可为单元处理器、多元处理器、云端计算组件或上述组合。
程序化器储存单元204为用于储存及检索信息的装置。举例而言,程序化器112的程序化器储存单元204可为碟驱动器、固态内存、光学储存装置或上述组合。
程序化器112可包括用于操作程序化器204的软件。软件为用于在程序化处理器202上执行的控制信息。可储存软件于程序化器储存单元204中并于程序化处理器202上执行此软件。
程序化器112可包括输入设备插座206。输入设备插座206为可程序化装置128的源。举例而言,输入设备插座206可为符合联合电子装置工程委员会(JEDEC)标准的盘(tray)。输入设备插座206可用于支承未程序化的装置。
程序化器112可包括输出装置插座214。输出装置插座214为已供应之可程序化装置128的目的地。举例而言,输出装置插座214可为用于支承成品装置、储存管、运输包装或其他类似结构之空的JEDEC盘。
程序化器112可包括装置配接器208。装置配接器208为用于耦合至可程序化装置128的机构。
装置配接器208可具有各种配置。举例而言,装置配接器208可包括用于安装如芯片之可程序化装置128的目的插座210。插座为用于支承可程序化装置128及与可程序化装置128建立接口的机构。可模块化装置配接器208且可从程序化器112移除装置配接器208,以适应不同的插座配置。装置配接器208可包括用于附接至程序化器112的闩锁机构(未图示)。
目的插座210可支承可程序化装置128。可使用目的插座210以读取新信息或写入新信息至可程序化装置128。
程序化器112可包括装置放置单元212。装置放置单元212为将可程序化装置128定位在目的插座210中之一者中的机构。
可用各种方式来实施装置放置单元212。举例而言,装置放置单元212可为机器人臂、拾取及放置机构或上述组合。尽管可将装置放置单元212描述为基于轨道的定位系统,但要了解的是,可使用能将可程序化装置128中之一者定位在目的插座210中的任何系统。
装置放置单元212可从输入设备插座206检索一或多个空白的可程序化装置128。装置放置单元212可传送可程序化装置128至装置配接器208的目的插座210。
一旦藉由装置配接器208接合及固定可程序化装置128,则装置程序化程序可开始。程序化器112可将本端信息副本程序化至目的插座210中之一者中的可程序化装置128中。举例而言,本端可程序化信息副本可在预先程序化的主装置中、来自本端储存器中的档案,或来自远程服务器。
一旦完成程序化,则装置放置单元212可传送已程序化的可程序化装置128至输出装置插座214。装置放置单元212可传送可程序化装置128中之具有错误的任一者至拒绝箱(未图示)。
程序化器112可包括程序化器辨识符216。程序化器辨识符216为程序化器112的唯一值。程序化器辨识符216可用于辨识程序化器112。可将程序化器辨识符216并入至每个可程序化装置128之装置辨识符中,以指示使用哪个程序化器112程序化装置。
现在参考图3,其中图标了信任装置130中之一者的范例。信任装置130为具有安全储存单元326及安全执行单元324的组件。信任装置130为能执行在安全执行单元324中之安全代码的主动组件,以在安全储存单元326中的安全数据上执行操作。
信任装置130可由安全程序化系统100提供以包括安全信息。举例而言,信任装置130可包括装置辨识符302、安全算法304、安全凭证306及密钥对150,此等密钥对每者具有私钥152及公钥154。
在说明性范例中,安全密钥106可包括用于公钥加密系统的一或多个密钥对150。可使用密钥对150中之一者的私钥152来加密安全信息,且使用公钥154解密此安全信息。类似地,可使用私钥152解密使用公钥154所加密的信息。
装置辨识符302为可单独唯一地辨识每个信任装置130的数据值。举例而言,装置辨识符302可包括序列号、标记、安全代码或上述组合。
安全算法304包括安全代码组件314。安全算法304可向外部系统提供应用程序设计界面以控制信任装置130上的安全功能。可客制化安全算法304至每个信任装置130。举例而言,安全算法304可包括如源代码、可执行代码、库模块、链接模块、配置档案、初始化数据、硬件句柄或上述组合的安全代码组件314。
安全凭证306为与信任装置130中之一者相关联的安全物件。可预先程序化安全凭证306以证明装置具有嵌入其中的特定信任根。安全凭证306可具有在其中之一或多个公钥154。安全凭证306可包括如密钥对150、安全密钥106、加密密码或上述组合的安全数据。
安全凭证306可为安全储存的数据组件。举例而言,安全凭证306可为使用前可解密之经加密的安全信息。
密钥对150可为具有用于加密及解密数据之两个或更多个单独的安全密钥的安全组件。举例而言,密钥对150可包括私钥152及公钥154。可使用私钥152解密用公钥154加密的安全信息。
可用各种方式来实施密钥对150。举例而言,密钥对150可经配置为具有不同的密钥长度以改变安全级别。可用不同的字符长度来实施密钥对150。
尽管在公钥加密系统的背景中描述了密钥对150,但应当理解,密钥对150亦可用于实施任何其他加密典范。举例而言,密钥对150可用于对称加密、非对称加密、基于标准的加密、哈希算法或任何其他加密系统。
信任装置130可包括实施为安全模块的安全功能。举例而言,信任设备130可包括辨识模块316、认证模块320、加密模块318及代码签名模块322。
辨识模块316可验证可程序化装置128中之一者的辨识符。辨识模块316可接收可程序化装置128中之一者的装置辨识符302,并确定装置辨识符302是否正确。举例而言,装置辨识符320可与已知装置的列表进行比较、与校验和进行比较、与使用计算算法进行比较或与类似技术进行比较。
认证模块320可验证可程序化装置128中之一者的一或多个属性。认证模块320可接收装置辨识符302及包含一或多个安全密钥106的安全参数,以确定所提供的安全参数是否有效。认证模块320亦可用于验证装置辨识符302。
可用各种方式确定安全参数的有效性。举例而言,可藉由使用可由信任装置130中的一者得到之安全密钥之一者成功地解密安全性参数来验证安全性参数的有效性。在另一个范例中,可藉由解密安全参数之一者来验证安全参数的有效性,及将其与储存在信任装置130中之一者内的预定义值进行比较。
加密模块318为用于执行加密操作的单元。加密模块318可提供执行如加密及解密之计算密集型任务的接口。其他安全模块可与加密模块318耦合以提供安全功能。
可用各种方式来实施加密模块318。举例而言,加密模块318可包含硬件、软件或上述组合。加密模块318可提供标准接口以允许其他安全模块执行所需的加密功能。
代码签名模块322为用于保护代码组件314的单元。代码签名模块322可加密代码组件、解密代码组件及句柄组件的执行。代码签名模块322可用于确保藉由验证与代码组件314相关联的安全信息来在信任装置130中之一者上执行代码组件中之一者。
在说明性范例中,代码组件314中的每一者可包括指示被授权执行代码组件314的信任装置130型号的执行参数。代码签名模块322可用于验证执行参数、将参数与信任装置130中之一者中的型号信息进行比较,且仅当此两个值匹配时才允许执行代码组件314。此可用于将代码组件的操作限制至特定的高端电话或其他特定装置。
信任装置130的优点之一是信任装置130可在内部辨识及认证安全信息以增加安全级别。信任装置130可使用储存在安全储存单元326中的安全密钥106来验证安全信息。
当信任装置130为安全时,信任装置130可提供信任度量。信任装置130可具有各种配置。举例而言,信任装置130可具有系统辨识符、认证机制、加密及解密功能、代码签名以保护可执行文件、信任储存器及信任执行环境。
系统辨识符可包括辨识或描述硬件及软件组件的组件。信任装置130可具有安全地验证其身份及其他属性的能力。信任装置130可能够安全加密及解密信息。信任装置130可能够验证信任代码。信任装置130可具有安全的储存及执行能力。
安全程序化系统100可能够实施信任根系统。信任根(RoT)为信任计算环境中的一组功能,此组功能可建立藉由系统的信任操作。举例而言,信任根可作为控制信任计算平台加密程序之单独的安全计算引擎。或者,装置可实施信任根作为固有信任的硬件及软件组件。信任根藉由设计系安全的,及可用硬件实施或由硬件保护。信任根可用于执行安全关键功能,如量测或验证软件、保护加密密钥及执行装置认证。
信任根可提供各种安全功能,此等安全功能包括:实时加密、篡改安全数据的侦测和报告、主动篡改尝试的侦测、数字版权管理及其他类似的安全功能。
因为由实体存取装置所导致之更高的风险,故在远程硬件空间中实施安全操作是困难的。此种安全装置要求硬件与受保护的数据及软件紧密合作,以确保安全操作。
现在参考图4,其中图标了数据装置132中之一者的范例。数据装置132为具有安全储存单元326的组件。数据装置132为能将安全数据储存在安全储存单元326中及提供当由信任装置130中之一者存取储存数据时对此储存数据之存取的被动组件。
可由安全程序化系统100提供数据装置132以包括安全信息。举例而言,数据装置132可包括装置辨识符302、安全算法304、安全凭证306及密钥对150,密钥对150每者具有私钥152及公钥154。在此种情况下,可从数据装置132内部存取安全性储存单元326内的数据。
安全储存单元326可作为一次写入数据区域。可将信息程序化至安全储存单元326中,接着可处理安全储存单元326以从数据装置132外部消除对安全储存单元326内之数据的存取。
在说明性范例中,数据装置132中之一者可为闪存装置。在闪存装置内,可将闪存划分成不同区块。一些区块可用来提供一般的内存空间。其他一些区块可经配置为私有,且用于储存无法从闪存装置外部存取的信息。可使用专用区块来形成安全储存单元326。
在另一范例中,安全储存单元326可为由安全熔丝保护的数据装置132中之一者上的专用内存区域。可将数据写入安全储存单元326,接着藉由烧断安全熔丝来消除外部存取。
数据装置132中的每一者可包括信任凭证402。信任凭证402为可包括其他安全参数的数据结构。举例而言,信任凭证402可包括装置辨识符302、安全算法304及密钥对150。
现在参考图5,其中图标了装置辨识符302的范例。装置辨识符302为可用于唯一地辨识可程序化装置128、安全程序化系统100、程序化器112中之一者或其组合的数据结构。
装置辨识符302可具有各种配置。举例而言,装置辨识符302可包括输入的信任根504、序列号标记512、韧体标记506、制造标记510、产品标记508、操作标记514、原始设备制造商标记516(OEM标记)、密钥对150或类似标记。
输入的信任根504是安全组件。可从可程序化装置128中之一者外部提供输入的信任根504。在制造目标装置时,可在此目标设备中实施输入的信任根504。输入的信任根504可提供解密种子、周边组件的兼容性范围、兼容性装置类型、韧体可信度、制造窗口(开发制造阶段(BoL)及回收利用阶段(EoL))、所需的其他参数或上述组合。输入的信任根504可基于计划制造结构(材料列表)来修改装置辨识符302中的其他字段的解释。输入的信任根504可指定或限制制造结构为满足输入的信任根504之标准的可验证组件。
序列号标记512为可包括用于可程序化装置128中之一者的序列号的安全组件。装置辨识符302可包括序列号标记512中的一或多者。序列号标记512可包括制造日期代码、制造批次代码、顺序部件辨识符、组件类型代码、所需的附加参数或上述组合。输入的信任根504与序列号标记512的组合可在组装期间提供单独的辨识或兼容装置的范围。装置辨识符302可唯一地限定下一级结构之材料列表内之硬件装置的组合。
韧体标记506为可描述或辨识在可程序化装置128中之一者中所使用之韧体版本的安全组件。举例而言,可程序化装置128中之一者可为具有安装在电路板上之韧体的电路板。韧体标记506可辨识每个单独韧体组件的版本号。韧体版本信息可用于协调可程序化装置128中之代码组件之间的互操作性。输入的信任根504可辨识意欲于可程序化装置128中使用之韧体标记506。若输入的信任根504辨识韧体标记506未被包含在预期的材料清单中,则不允许进行程序化。
制造标记510为可描述一或多个制造性质的安全辨识符。举例而言,可程序化装置128中之一者可包括制造标记510(如位置信息、制造时间信息、制造位置信息、时间窗口、制造执行系统辨识信息、工厂辨识符、供货商辨识符、制造装置信息或制造相关的参数)。
产品标记508为可描述与可程序化装置128一起使用的产品的安全组件。产品标记508可包括相关制造商、品牌信息、产品线信息、型号信息或其他产品相关参数。
操作标记514为可描述可程序化装置128的操作属性的安全组件。操作标记514可包括工作电压、电压模式、电流位准、功率消耗、加热因子、关键操作频率、操作序列信息或操作参数。
OEM标记516为可描述可使用可程序化装置128的原始设备制造商或相关合同制造商的安全组件。OEM标记516可包括制造商辨识符518、许可证信息、时间窗口、授权位置、授权工厂、产品批号、序列号范围或其他OEM相关参数。
装置辨识符302为包括可程序化装置128的安全信息的多变量数据结构。装置辨识符302的数据组件可在装置辨识符302内单独加密。可加密装置辨识符302本身。在形成装置辨识符302的数据组件及用于保护装置辨识符302的加密程度和其他安全机制方面,装置辨识符302可特定于可程序化装置128中的每一者。
装置辨识符302的众多优点之一是藉由仅解密所需的组件来实施对装置辨识符302内的特定数据组件的存取。藉由加密装置辨识符302及各个数据组件两者,可提供更细的安全细致度。可理解的是,输入的信任根504可存在于包含在材料列表中之可程序化装置128之每者中。可程序化装置128中之每者可基于在其被制造时所建立之输入的信任根504来验证其耦接至经认证的兼容组件。已意外地发现,装置辨识符302可用于限制可用固定的物料列表组程序化的装置的数量。此态样可防止在没有原始设备制造商(OEM)的了解或授权的情况下盗版生产过剩的零部件。
现在参考图6,其中图标了安全程序化系统100的示例性方块图。安全程序化系统100包括多个安全对象,如第一安全对象602及第二安全对象604。第一安全对象602可与第二安全对象604建立接口或进行通讯。
安全对象表示具有用于防止未经授权的窃听或复制的安全机制或协议的任何硬件或软件对象。举例而言,安全对象可包含(但不限于)电子组件、电子装置、开机加载程序、韧体(FW)、操作系统(OS)、软件应用程序、硬件程序化器、周边装置、网站及机器等。
第一安全对象602可与辨识模块316、认证模块320、加密模块318及代码签名模块322建立接口。为了说明性目的,尽管将第二安全对象604图标为仅与第一安全对象602连接,但第二安全对象604亦可与辨识模块316、加密模块318、认证模块320、代码签名模块322的任何组合连接。第一安全对象602或第二安全对象604系使用(但不限于)识别模块316、加密模块318、认证模块320、代码签名模块322、安全程序化系统100的任何其他单元、模块或功能的组合来保护安全漏洞。
辨识模块316生成安全对象的身份,以保护安全物件免受对此安全物件未经授权的存取。辨识模块316提取辨识代符624(ID代符)。ID代符624包括在授予存取安全对象前用于验证身份的信息。ID代符624可包括(但不限于)用户辨识符、装置的序列号及装置辨识符等。
可由辨识模块316使用任何安全信息或机制来提取ID代符624,此安全信息或机制包括(但不限于)储存在RoT代码缓存器621中的信任根代码620(RoT代码)及储存在RoT数据缓存器623中的信任根数据622(RoT数据)。RoT代码缓存器621及RoT数据缓存器623可为挥发性内存、非挥发性内存、组合逻辑缓存器或上述组合。举例而言,RoT数据622可表示与装置的数字出生凭证相关联的信息、用于使用信任根代码620的时间窗口、允许信任根代码620之一范围的零件号或序列号或上述组合。可在组件的制造及功能测试期间建立信任根数据622。藉由将信任根代码620与信任根数据622组合,可在没有ID代符624的附加组件或复制的情况下来生成每个程序化装置128的ID代符624。
本文所指的术语「信任根(RoT)」系指可建立信任或安全的计算模块的一组功能,其包含硬件组件、软件组件或硬件及软件组件的组合。举例而言,此等功能可实施为(但不限于)安全开机韧体、硬件初始化单元及交叉检查组件/芯片等。仅能以经计划的及有限数量的可程序化装置128来利用硬件组件及软件组件中的每一者。又,举例而言,可使用(但不限于)控制加密处理器之操作之单独的计算引擎来实施功能。用于将韧体组件写入可程序化装置中之一者的可程序化器112可利用ID代符624来选择韧体组件的解密密钥。将韧体组件复制到已程序化装置128中之未经授权的装置的尝试可导致韧体组件的不正确解密,此可防止程序化器112执行程序化操作。
ID代符624可使用RoT数据622而自RoT代码620中解密。可加密保护ID代符624,因此可仅由RoT代码620的耦合版本来解密ID代符624。ID代符624可为唯一,使得每个安全对象具有此安全对象本身的辨识符,因此没有一个安全对象与另一个安全对象共享此安全对象本身的辨识符。
RoT代码620包括由特定硬件集合使用以译码可用于辨识装置来源的数据或以译码内容的指令或命令。RoT数据622包括受保护的数据,且仅可使用RoT代码620的耦合集来译码此数据。可生成RoT代码620,以仅用有限范围内之具有适当的RoT数据622的可程序化装置128操作。此组合可同时验证正确的韧体组件正应用于正确的硬件装置中,并验证仅有程序化装置128的计划数量得到生成。
可由原始制造商的任何安全机制提供或生成RoT代码620及RoT数据622。举例而言,可在制造装置时建立RoT数据622,且可在程序化或配置装置期间将RoT代码620程序化至装置的安全储存区域中。可生成RoT代码620以控制程序化装置128的特定使用及出现次数。
又,举例而言,可用安全方式自主机服务器或系统来发送RoT代码620及RoT数据622至安全程序化系统100,使得只有安全程序化系统100已被授权且被验证接收RoT代码620和RoT数据622。此外,举例而言,主机服务器或系统可包括在安全程序化系统100可能够从安全主系统104接收或解密信息前发送安全密钥106至安全程序化系统100以进行辨识或认证的安全主系统104。
作为一范例,安全储存区域可包括(但不限于)一次性的可程序化内存或仅对授权用户或装置已知的任何其他储存区域。作为另一范例,安全储存区域可包括(但不限于)在没有要被拒绝之允许的情况下仅有经授权的信息或辨识符可存取之储存器或内存。
举例而言,在程序化装置128于生产环境或系统中经配置时及程序化装置128于生产环境或系统中被整合或操作之前,可将RoT代码620预先程序化至装置(如具有RoT数据622的安全对象)。RoT代码620可使程序化装置128能辨识哪些其他装置可耦合至其接口。此可遵守计划的构建进度,不可能产生过多的盗版组件。此外,举例而言,生产环境或系统可包括(但不限于)便携设备、计算机、服务器及电子电路板等。
认证模块320为用于验证辨识代符624是否经授权以用于存取安全对象的单元。在辨识模块316提取ID代符624后,认证模块320验证ID代符624以辨识安全对象是否为可与授权系统通讯以发送或接收安全信息的有效对象。举例而言,若ID代符624中的一者无效,则可不允许安全对象与程序化器112交换信息。
在认证模块320验证安全对象的ID代符624有效后,认证模块320可生成ID代符624、密钥代符628及加密代符626中之一者的组合。密钥代符628包括用于认证ID代符624的信息。加密代符626包括用于加密编码或译码用于信息安全性或数据保密性之信息的信息。举例而言,程序化器112可将加密档案传送至安全对象602,安全对象602可使用密钥代符628来存取加密代符626,以便解压缩及译码要程序化至安全装置602中的软件。
在一或多个实施例中,可使用RoT代码620自RoT数据622生成ID代符624、密钥代符628或加密代符626。在一或多个实施例中,可加密保护ID代符624、密钥代符628或加密代符626;因此,可仅由RoT代码620的正确版本来解密ID代符624、密钥代符628或加密代符626。
加密模块318为交换至安全对象602或于安全对象602与外部系统之间交换的安全信息提供数据加密及解密。可与安全对象602交换安全信息的外部系统可包括(但不限于)程序化器112、安全主系统104及主机系统等。
在实施例中,在辨识模块316提取ID代符624或认证模块320验证ID代符624之后,加密模块318可生成ID代符624、密钥代符628及加密代符626。可由加密模块318使用RoT数据622来生成加密代符626,以解碼来自RoT代码620的信息。
在实施例中,加密模块318可使用密码代符626生成ID代符624或密钥代符628,以进一步解碼来自RoT代码620的其他信息。在实施例中,使用具有提高信息安全性或数据保密性的多级保护的加密模块318来大幅简化数据泄漏的消除过程。
在实施例中,加密模块318可包括加密方法,此等加密方法包括(但不限于)对称密钥加密及公钥加密等。举例而言,加密模块318可包括加密方法,其中发送者和接收者两者可共享相同密钥或不同密钥(可使用在RoT数据622中所建立之预定算法来计算此等密钥)。
作为一范例,密码方法可包括(但不限于)区块加密法及加密哈希函数等。作为另一范例,加密方法可包括(但不限于)数据加密标准(DES)、进阶加密标准(AES)、三重DES、MD4讯息摘要算法、MD5算法、安全哈希算法1及2或任何要开发的进阶加密技术。
作为一范例,加密方法可包括(但不限于)公钥或非对称密钥加密技术,其中可使用两个不同但为数学上相关的密钥─公钥及私钥。作为另一范例,可建立公钥系统,使得从另一密钥(例如,公钥)计算一密钥(例如,私钥)系计算上不可行的(即使此等密钥相关)。皆可秘密地生成公钥及私钥两者为相互关联的对。举例而言,RoT数据622可提供转换种子以在安全装置602内生成私钥。
举例而言,在公钥加密系统中,可自由分派公钥,同时与其配对的私钥可保密。在公钥加密系统中,可使用公钥以进行加密,而私钥或秘密密钥可用于解密。
代码签名模块322验证在系统或装置之间交换的代码信息的完整性。代码签名模块322验证所交换信息的内容是否被改变或篡改。
例如,代码签名模块322可包括对可执行文件或脚本进行数字签名以确认软件作者或产生器并验证可执行代码或脚本未被更改或损坏的程序。举例而言,因为系藉由(但不限于)加密哈希及校验和等对代码签名,故可验证此代码系被修改或受损的。
在实施例中,在辨识模块316提取ID代符624或认证模块320验证ID代符624之后,代码签名模块322可生成ID代符624、密钥代符628及加密代符626。可由代码签名模块322使用RoT数据622来生成加密代符626,以解碼来自RoT代码620的信息。
在实施例中,代码签名模块322可使用加密代符626生成ID代符624或密钥代符628,以进一步解碼来自RoT代码620的其他信息。在实施例中,使用具有提高信息安全性或数据保密性的多级保护的代码签名模块322来大幅简化数据泄漏的消除过程。
安全对象(如第一安全对象602或第二安全对象604)可与安全执行引擎606建立接口。安全执行引擎606包括管理或控制安全对象之程序化的机制。安全执行引擎606包括安全执行单元324及安全储存单元326。
安全执行单元324为在受保护的环境中执行代码或计算机指令的区块。安全执行单元324操作的环境可建立弹性的、可扩展的解决方案,以解决建立其中仅有经信任的、经认证的应用程序代码可操作的大规模、广域安全环境的问题。安全执行单元324可使程序化器112及安全对象在安全环境中一起工作。
当安全对象在安全对象于最终用户生产环境中操作之前先被程序化、配置、测试或认证时,安全执行单元324可执行由安全储存单元326储存的信任代码。可签名及认证由安全执行单元324执行的信任代码。
安全储存单元326储存并提供用于安全执行单元324执行的信任代码。在实施例中,使用将程序代码储存在安全储存单元326中的安全执行引擎606且使用安全执行单元324执行程序代码而大大简化了安全环境,从而提供了针对数据泄漏之附加级别的保护。
举例而言,当安全对象先前经程序化、配置、测试或认证时,信任代码可预先储存在安全对象的安全储存器或内存区域中。又,举例而言,加密模块318可使用从程序化器112向安全对象发送的信息来译码信任代码。
现在参考图7,其中图标了安全程序化系统100的第二范例方块图。范例图图标了在安全对象701的程序化期间的安全信息的数据流。
举例而言,被绘制为ID1、ID2及ID3的辨识代符624可包括安全对象701的序列号标记512。序列号标记512为分配给安全对象701中之每者的唯一信息。安全对象的序列号标记512可不同于另一个安全对象的另一个序列号标记512,使得不可能有两个安全对象701共享相同的序列号标记512。可由程序化器112产生序列号标记512。可由程序化器112分配每个序列号标记512至每个安全对象。
输入的信任根504(In_RoT)可包括(但不限于)程序化器辨识符216。表示为In_RoT504的In_RoT 504包括在程序化安全对象701前已先被程序化或配置的信息。在一或多个实施例中,可将先前程序化的信息程序化为用于对安全对象701、程序化器112及安全对象701进行程序化的配接器的组合。举例而言,In_RoT 504可为安全加载的解密引擎、接口装置定义(物料列表耦合)或上述组合。
In_RoT 504可与ID代符624分开或不同。In_RoT 504可包括与要程序化至安全对象701中的信息不同之先前程序化的信息。ID代符624可定义程序化装置128下一级目的地来作为制造计划构建的一部分。
举例而言,In_RoT 504可包括(但不限于)在制造组件时嵌入或程序化至组件中的序列号或唯一键。此外,举例而言,制造组件的时间可为(但不限于)在程序化组件前在硅层或系统层级制造组件的时间。
在一或多个实施例中,制造执行系统702(MES)可摄取或输入In_RoT 504。制造执行系统702可执行构建计划以制造第一板712和第二板714。应当理解,制造执行系统702可制造任何数量的板。In_RoT 504可与生成独特的RoT(如ID代符624)的程序化器结合,以产生独特的系统级RoT。In_RoT 504可包括来自于在组件的制造期间已先程序化至组件中之数字出生凭证的信息。举例而言,数字出生凭证可包括RoT数据622和RoT代码620。
In_RoT 504可包括任何数量之注记为P1及P2的制造标记510。制造标记510包括当制造组件时与组件相关联的信息。举例而言,制造标记510可包括(但不限于)组件ID、程序化器ID、组件的制造位置、日期代码及组件的制造时间等。
制造执行系统702为用于制造用于产品质量控制目的的计算机化系统。MES 702可追踪及记录原材料至成品的转换。MES 702可提供关于可如何优化工厂底层的当前条件以提高生产输出的信息。MES 702可实时工作,以便能控制生产过程的复数个元素(例如输入、人员、机器及支持服务等)。
在一或多个实施例中,MES 702可与ID代符624一起接收In_RoT 504以程序化可程序化装置128,如安全对象701。可使用In_RoT 504及ID代符624以生成安全对象的装置辨识符302。装置辨识符302包括唯一且仅与一个设备或安全对象相关联的信息。
装置辨识符302可包括可程序化至系统(如第一板712或第二板714)中的唯一信息。第一板712及第二板714为板级系统,其具有多个在系统中彼此组装及连接的安全对象701。
第一板712可包括用于加密的系统公钥154。系统公钥154可在用于公钥加密系统的第一板712中实施。系统公钥154可为密钥对150中之一者的一部分。安全信息可由使用密钥对150中之一者的私钥152的安全对象加密,且由使用系统公钥154的第一板712解密。
第一板712可使用系统公钥154来加密安全信息并发送至安全对象,此安全对象可使用私钥152来解密经加密信息。尽管将系统公钥154描述为用于第一板712,但可了解,亦可在第二板714中实施系统公钥。
安全程序化系统100仅图标经配置以提供本文所描述之功能的组件之众多可能布置中的一种布置。其他布置可包括更少的、附加的或不同的组件,且部件之间的分工可根据布置而变化。举例而言,在一些实施例中,可省略一些安全模块及由被省略的组件所专门依赖的任何其他组件。作为另一范例,在实施例中,系统100可进一步包括复数个序列号或其他系统辨识符。
现在参考图8,其中图示了根据实施例之信任装置800的方块图。信任装置800的各种组件可在各种系统中执行,此等各种系统包含如上述安全程序化系统100的系统。在实施例中,可组合信任硬件平台802以包含可与安全储存模块806建立接口的安全执行模块804。
在信任硬件平台802的制造期间,制造执行系统702可为预定义的构建计划工作,此预定义的构建计划要求程序化装置128中的每一者按照此构建计划的要求来包含ID代符624。包括RoT数据622和RoT代码620可精确地产生执行制造执行系统702所需之包括ID代符624之程序化装置128的正确数量。
辨识模块316可根据制造执行系统702的需要而藉由生成符合RoT数据622的RoT代码620来产生ID代符624。利用RoT代码620和RoT数据622的加密模块318可生成加密代符626及密钥代符628。可理解的是,可在制造时将RoT数据622设计至此电子装置中,且当其准备被发送至制造执行系统702时RoT数据622可配置RoT代码620。信任硬件平台802的每个子系统级可包括ID代符624、加密代符626及密钥代符628。当可更新信任硬件平台802的操作韧体时,可使用ID代符624、加密代符626及密钥代符628。
认证模块320可利用RoT代码620和RoT数据622来验证信任硬件平台802实际上是经认证的组件而非盗版装置。一旦加载了新的韧体,代码签名模块322可在解密及加载用于控制信任硬件平台802之操作的代码之前验证韧体并未被改变或篡改。
应当理解,信任硬件平台802可维护用于执行制造执行系统702的硬件及软件的安全性和完整性,而不会损害任何用于产生信任硬件平台802的硬件组件或软件组件。要进一步了解的是,藉由先前论述的方法之可程序化装置在子系统或板上的组装可将子系统转换为信任硬件平台802。
可在信任硬件平台802中实例化RoT代码620和RoT数据622的特定实施例。RoT数据622及RoT代码620可配置用于由信任硬件平台802执行的安全应用程序设计界面(API)。将安全API暴露至用于执行的信任硬件平台802可确保在安全环境中的RoT数据622的安全程序化。
安全API可与由安全算法304程序化至装置中的特定RoT的代码有关。代码RoT功能可藉由API机制暴露给(在装置上的)韧体。举例而言,代码RoT的入口点可为API函数。安全API可在装置上运行或执行。
安全算法304可用于程序化安全相关的RoT。安全算法304可在程序化单元110的程序化器112或安全控制器114上执行。安全算法304可与程序化单元110执行以程序化与RoT相关联的数据及代码至装置中的所有或至少多个程序化步骤相关。
已发现可客制化RoT代码620和RoT数据622以使得可能够针对特定类型及数量的信任硬件平台802进行选择性程序化。RoT代码620及RoT数据622可提供用于单个装置或由信任硬件平台702服务的数千个装置的安全算法304。安全算法304在程序化单元110上提供允许将其余安全信息写入可程序化装置128的抽象接口。举例而言,可针对程序化FLASH特定、EEPROM特定、HSM特定及iPhone特定等之应用来客制化安全算法304。基本上,安全算法304可支持单个装置类型并执行特定的程序化任务。在安全程序化环境下,安全算法304可向闪存中的特定区块写入安全信息或跳闸安全熔丝。
安全算法304藉由抽象化将关键安全使用案例映像至系统之复杂度来简化安全程序化。此使得藉由安全算法304来将此等安全API嵌入至装置中,其中可在逐个装置的基础上客制化此等安全算法304。安全算法304可提供新典范,以将专有代码程序化至各个装置中,同时防止未经授权存取专有代码资源。由安全API表示的安全算法304可简化制造过程、保护专有代码,并藉由阻止对未经授权的装置的程序化来防止盗版。
可客制化安全算法304,以为储存用于目标装置之安全储存中之每个RoT的数据及代码提供特定支持。安全算法304亦可基于装置的安全执行特征来配置数据及代码,以在安全执行中执行。安全算法304将安全API接口暴露至用于专有执行的韧体。
现在参考图9,其中图示了管理和安全处理系统902(MSP系统)的范例。MSP系统902可安全地部署及提供可程序化装置128。
MSP系统902可单独地配置具有加密信息的数据装置及主动的信任装置,以提供安全的程序化及操作环境。MSP系统902可允许可程序化装置128在安全的原始设备制造商(OEM)站点的安全程序化。
MSP系统902可为安全程序化系统100的实施例之一。可使用安全程序化系统100的组件来实施MSP系统902的组件。
MSP系统902可支持部分分布在多个位置或场地之系统的操作。MSP系统902可包括OEM开发场地940和工厂场地942。OEM开发场地940可用于准备可程序化装置128的实际程序化及供应。OEM开发场地940可用于准备程序化多个工厂的信息。OEM开发场地940为OEM可准备程序化项目944的位置,程序化项目944具有用于配置一组安全装置(如可程序化装置128、安全组件、信任装置130或其他类似装置)的信息。
尽管不同类型的安全装置之间存在差异,但通常将术语理解为系可互换的,且在本质上系一般性的。为了方便及简洁,在本说明书中可互换地使用安全装置、安全组件、可程序化装置128、信任装置130及其他相似组件。
OEM开发场地940可获取用于提供可程序化装置128并准备程序化项目944的韧体映像914。接着可将程序化项目944安全地传送至工厂场地942,且可使用此程序化项目以控制可程序化装置128的程序化。
OEM开发场地940可具有用于促进建立程序化项目944的一组安全制造系统及数据储存。举例而言,OEM开发场地940可包括OEM密钥材料904、OEM安全开机加载器906、OEM韧体开发系统908、OEM控制工具910、韧体更新服务912及OEM管理系统924。
工厂场地942为用于程序化及供应可程序化装置128的位置。工厂场地942可为程序化中心、制造设备、合同制造商站点或类似位置。在实施例中,工厂场地942为程序化器112及可程序化装置128所在及操作处。
MSP系统902可包括安全开机加载器918。安全开机加载器918为可在可程序化装置128开机时执行的安全程序化代码,以确保符合安全协定。OEM安全开机加载器906建立装置辨识符、建立接受加密数据串流并在装置上解密的能力,及初始化装置上的安全运行时间环境,以便可在装置上安全执行韧体。
MSP系统902亦可包括安全韧体920。安全韧体920为要嵌入至可程序化装置128的非挥发性内存中的软件代码及数据。安全韧体920可用加密状态传送并在程序化器112处解密。
MSP系统902可包括韧体解密密钥922。韧体解密密钥922可用于解密已使用与韧体解密密钥922相关之加密密钥加密的安全韧体920。举例而言,韧体解密密钥及加密密钥可为用于加密的对称密钥对的一部分。
MSP系统902可包含来自OEM的韧体映像914。韧体映像914为由OEM安全开机加载器906加载并在制造期间和之后在可程序化装置128上运行的嵌入式应用代码。
MSP系统902可包括OEM密钥材料904。OEM密钥材料904可包括如硅供货商装置认证密钥955、签署OEM装置凭证946所需的OEM装置凭证签名密钥947及OEM设备凭证模板950的信息。
OEM凭证模板950为用于形成OEM凭证951的一组信息。其包括OEM凭证951的基本必需信息。OEM凭证951为定义OEM用户968的一组信息。OEM凭证951可包括OEM辨识符966、OEM公钥962及OEM私钥952。OEM辨识符966为唯一地辨识OEM的值。
硅供货商为可制造或提供可程序化装置128的实体。可用硅供货商辨识符956来辨识硅供货商。硅供货商辨识符956为与硅供货商链接的值。举例而言,硅供货商辨识符956可链接至实际制造形成可程序化装置128的集成电路或组件的公司。硅供货商亦可为在藉由系统传送可程序化装置128以程序化之前预配置可程序化装置128的公司。
MSP系统902可包含OEM韧体开发系统908。韧体开发系统908支持用于部署至可程序化装置128的韧体映像914的开发。
MSP系统902可包括OEM控制工具910(OMT)。OEM控制工具910为可将OEM安全开机加载器906绑定至韧体映像914的安全应用程序或系统。OEM控制工具910可对韧体映像914进行签名及加密,并准备韧体映像914以进行现场更新。现场更新可允许以可靠方式远程改变部署在可程序化装置128中的韧体。OEM控制工具910可藉由加密使用韧体解密密钥922的韧体映像914来产生安全韧体920。OEM控制工具910可包含HSM或TSM,且可由硬件或软件来实施。
MPS系统902可包括OEM管理系统924。OEM管理系统924为用于为OEM用户定义程序化项目944的系统。程序化项目944为定义可程序化装置128的安全生产运行的信息封包。
OEM管理系统924可将OEM安全开机加载器906、韧体映像914、OEM凭证951、OEM密钥材料904及生产计数948绑定至程序化项目944。一旦开始建立程序化项目944,则程序化项目944可更新为包含OEM安全开机加载器906、韧体映像914、OEM密钥材料904、OEM凭证951及生产计数948的参考、代码及数据。绑定程序意味着信息为程序化项目944的参数的部分。OEM管理系统924亦可将程序化项目944绑定至工厂场地942处的特定安全程序化系统。程序化项目944可包括程序化系统或子系统(如安全程序化系统100、程序化单元110、程序化器112或上述组合)的系统辨识符814。接着,程序化项目944只能在具有系统辨识符814的系统上执行。
生产计数948为描述在生产运行中要生产的安全装置的数量的指针。生产计数948可与安全装置开始或完成生产时所更新的增量数目进行比较。接收程序化项目944的程序化器112可使用生产计数948来限制经程序化及经供应之装置的数量,以防止可程序化装置128的未经授权的生产。在生产期间,当前计数978可指示具有已生产产品之当前数量。系统可藉由将当前计数978与生产计数948进行比较来停止程序化装置,及于当前计数978等于生产计数948时停止程序化。
可用各种方式配置OEM管理系统924。例如,可在共享配置中实施OEM管理系统944,及生成程序化项目944以部署至复数个OEM,此复数个OEM每者具有此复数个OEM自身的工厂(如工厂场地942)。可使用安全的主储存系统102、安全主系统104、安全程序化系统100或上述系统及子系统的组合。
MSP系统902可包括工厂管理系统930。工厂管理系统930为用于在工厂场地942管理安全程序化组件的系统。工厂管理系统930可从OEM管理系统944接收程序化项目944及解密,并将制造信息分发至位于工厂场地942的其他安全及程序化系统。
可用各种方式实施工厂管理系统930。例如,可用制造执行系统702、程序化处理器202、主计算机系统或另一类似的处理系统来实施工厂管理系统930。
MSP系统902可以包括工厂安全系统932。工厂安全系统系基于HSM的安全设备,此基于HSM的安全设备产生要程序化至可程序化装置128中的密钥及凭证。工厂安全系统932可藉由将一个OEM的安全信息与另一个OEM的安全信息隔离来支持多租户OEM架构。此允许工厂安全系统932程序化及设置不同组之用于不同程序化器的不同OEM的可程序化装置128。
可用各种方式配置工厂安全系统932。例如,可使用安全主系统104、安全控制器114、程序化处理器202、第一安全模块116、第二安全模块118、第n安全模块120或上述组合来实施工厂安全系统932。可使用MSP系统902中的一或多个安全组件以集中方式或分散方式来实施工厂安全系统932。
工厂安全系统932可提供包括密钥对生成、加密、解密、凭证管理、安全储存、安全执行及其他类似的安全处理特征的高安全性加密服务。工厂安全系统932亦可支持安全开发、安全控制、安全部署数据及代码、安全设置、安全程序化及安全更新。
工厂安全系统932可基于装置凭证、部署管理及版本控制、数字生命周期管理及应用管理来执行装置认证。工厂安全系统932可提供对称加密、哈希函数、数据封装、数字签名、密钥协商及传输、密钥管理及使用者访问控制。
工厂安全系统932可包括用于认证工厂安全系统932的身份的工厂安全系统凭证933。工厂安全系统凭证933可用于签署自OEM开发场地940及OEM管理系统924传送至工厂管理系统930及工厂安全系统936的信息。工厂安全系统932可包括工厂安全系统数据加密密钥980及工厂安全系统数据认证密钥982。密钥可用于安全加密、解密、签署及验证安全信息。
MSP系统902可包括在工厂场地942处的主机系统936。主机系统936为用于控制程序化项目944的执行并管理程序化器112及工厂安全系统932之间的通讯的计算机系统。
可用各种方式来实施主机系统936。例如,可使用安全控制器114、程序化处理器202或耦合至安全处理系统100的另一类似的计算系统来实施主机系统936。主机系统936可耦合至工厂安全系统932、程序化器112、工厂管理系统930或其他类似系统。
MSP系统902可包括用于程序化可程序化装置128的程序化器112。程序化器112可接收一组空白或部分程序化的装置,并使用来自程序化项目944的信息来安全地程序化可程序化装置128。
程序化器112可建立用于程序化可程序化装置128的串行数据列表964。串行数据列表964为要程序化至可程序化装置128中的装置特定数据的列表。此可包括韧体映像914、OEM装置凭证946、代码、数据或其他信息。串行数据列表964可基于各个装置信息(如序列号、装置辨识符、数据凭证或类似的装置特定参数)而变化。
MSP系统902可包括用于保护可程序化装置128的装置凭证。装置凭证可包括硅供货商装置凭证926、原始设备制造商装置凭证946(OEM装置凭证946)或其他装置凭证。装置凭证可包括关于包括公钥的可程序化装置128、装置辨识符302、硅供货商辨识符956、OEM辨识符966或其他类似信息的信息。
硅供货商装置凭证926为安全定义安全组件(如可程序化装置128或信任装置130)之一者之身份的一组数据元素。硅供货商装置凭证926可包括装置辨识符302、硅供货商公钥954及/或其他安全信息。可使用硅供货商密钥对960的硅供货商公钥954来解密由硅供货商私钥958所加密的信息。
在将安全组件传送至其他制造商或用户之前,硅供货商装置凭证926可由硅供货商或制造商程序化至安全组件的安全储存单元中。硅供货商装置凭证926可储存于一次写入安全储存单元中,其中可将附加信息新增至硅供货商装置凭证926,但不能擦除或修改现有信息。当不需要进一步的更改时,可锁定安全储存单元的部分。安全储存单元可包括一或多个数据元素,如多个装置凭证及其他相关的安全数据。
可用各种方式来实施硅供货商装置凭证926。例如,可使用制造标记510、安全凭证306、安全算法304、产品标记508、操作标记514、输入的信任根504、信任凭证402或另一类似的数据元素来实施硅供货商装置凭证926。
MSP系统902可包括用于实时提供装置级程序化统计的装置数据追踪系统934。装置数据追踪系统934可追踪用于本端工厂中的安全程序化系统100或远程设置装置的装置级信息。装置数据追踪系统934可追踪由MSP系统902中的程序化器112所配置之每个可程序化装置128的装置级信息。装置数据追踪系统934可追踪如硅供货商装置凭证926、系统辨识符814、装置辨识符302或已程序化至装置中的其他数据元素的数据。装置数据追踪系统934可追踪包括有效状态、配置状态、复制状态或其他装置级状态的装置状态。
MSP系统902可包括装置供应服务938。装置供应服务938为在因特网上供应可程序化装置128的系统。装置供应服务938可为硬件及软件的组合,其可安全地将供应信息传送至现场的可程序化装置128。装置供应服务938可分发安全信息、数据更新、软件更新及装置持续安全操作所需的其他安全和操作信息。
MSP系统902可包括韧体更新服务912。韧体更新服务912为用于更新因特网(如OEM云端928)上之可程序化装置128之韧体的系统。韧体更新服务912可安全地传送韧体更新916至具有一或多个可程序化装置128的系统,并用新韧体更新可程序化装置128。韧体更新916为用于更新可程序化装置128中之韧体的软件及数据封包。韧体更新服务912可为具有安全软件及硬件的系统的部分,其可部署韧体更新916及相关联的安全信息,以确保安全地更新可程序化装置128。
可用各种方式操作MSP系统902。在说明性范例中,可基于安全组件使用案例970来操作MSP系统902。安全组件使用案例970可描述使用MSP系统902安全程序化可程序化装置128的一种方式,其中可程序化装置128准备好配置有韧体并具有在硅供货商设备处预安装的硅供货商装置凭证926。
安全组件使用案例970可包含两个主要步骤。在步骤1中,从可程序化装置128中之一者提取硅供货商装置凭证926且此装置经认证。在步骤2中,基于认证装置的硅供货商装置凭证926来建立OEM装置凭证946。接着,将OEM装置凭证946程序化至装置中。
在此种使用案例下,可将基于HSM的安全系统(如工厂安全系统932)整合为安全程序化系统(如用于程序化具有整合安全区域之安全微控制器单元的系统)的一部分。整合安全区域可为可写入一次而不改变之内存的保护区域。此允许对于安全数据(如密钥、代码或凭证)之不可修改的储存。
系统可包括OEM管理系统924、工厂管理系统930、作业建立及作业传输系统及用于管理可程序化装置128的状态数据的装置数据追踪系统934。可用各种方式实施各种系统。例如,OEM管理系统924、工厂管理系统930、作业建立及作业传输系统及装置数据追踪系统934皆可作为主机系统936上的软件来执行。在另一范例中,系统可各自运行在专用硬件上。
在此安全模型中,工厂场地942可作为OEM用户的代理且可执行OEM管理系统924的功能。此有效地意味着OEM使用者968以提供OEM密钥材料904及OEM凭证951及以可程序化装置128设置生产计数948来隐含地信任工厂场地942。因此活动系在程序化单元110的主机系统936上完成,故作业设置、OEM密钥材料904的生成及安全程序化系统100的配置系由授权人员在工厂场地942内的实体安全位置处完成。
一些实施可聚焦于将OEM装置凭证946提供至经配置为安全组件的可程序化装置128上。然而,应当理解,藉由OEM系统来安全化OEM密钥材料904之流及安全化生产计数948的更新系由实体安全构件及安全数据信道保护。
因数据被加密并连接至工厂安全系统932中的特定一者,故来自OEM开发场地940的OEM数据系安全的且OEM数据由OEM管理系统924整路加密直至工厂安全系统932。例如,可使用工厂安全系统凭证933来加密程序化项目944,工厂安全系统凭证933只能由工厂安全系统932中之预期的一者解密。
在另一范例中,包括OEM装置凭证签名密钥947的OEM密钥材料904的传送是安全地完成的(因材料在传输期间被加密)。OEM装置凭证签名密钥947可包括私钥组件。
在说明性范例中,因可程序化装置128的私钥152从不离开装置且及OEM装置凭证签名密钥947至OEM管理系统924中的导入完成系可靠的。因数据经加密,故此可减少对实体安全性的需求。
在另一个说明性范例中,可基于微控制器单元使用案例972来操作MSP系统902,在微控制器单元使用案例972中MSP系统902用于供应可程序化装置128及信任装置130,如安全微控制器单元。安全微控制器单元可包括安全处理及安全储存设施。
MCU使用案例972可包括两个主要步骤。在第一步骤中,可将OEM安全开机加载器906程序化至可程序化装置128中。之后,可使用OEM安全开机加载器906对可程序化装置128开机,以建立用于可程序化装置128的装置认证密钥对974及装置解密密钥对976。接着,可使用两个密钥对的部分来建立、程序化及签名OEM装置凭证946。
在第二步骤中,MSP系统902可读取硅供货商装置凭证926及验证可程序化装置128。可利用来自硅供货商装置认证926的装置解密密钥来加密韧体解密密钥922。可在可程序化装置128上程序化经加密的韧体及经加密的韧体解密密钥922。
OEM安全开机加载器906、OEM韧体开发908、OEM控制工具910、OEM管理系统924及OEM密钥材料904的生成皆可在OEM开发场地940处执行。由OEM使用者968控制整体的项目定义及生产计数948的决定。
可在OEM开发场地940的计算机上代管OEM软件执行环境。所有OEM信任根皆可自OEM开发场地940安全地传送至工厂场地942。工厂管理系统930、工厂安全系统932及装置数据追踪系统934可执行于主机系统936上的工厂场地942处。
在实施例中,因第一步骤需要可程序化装置128的安全供应,故必须在安全设施(如OEM信任的工厂、硅厂商、OEM工厂或程序化中心)中执行此第一步骤。接着,可在具有较低安全级别的设施(如不信任的工厂、合同制造商、第三方合作伙伴或类似类型的设施)处执行步骤二。
在此安全模型中,在OEM开发场地940处定义OEM信任根及程序化项目944,及将此OEM信任根及程序化项目944分发至工厂场地942。重要的是,OEM使用者应管理他们自身的信任根,以改善OEM产品供应链的安全性。
在说明性范例中,因可程序化装置128的密钥对150在工厂安全系统932中生成且此密钥对可能在工厂场地942处暴露,故MCU使用案例972需要实体安全性。可程序化装置128及程序化器112间的实体连接系清楚的,故具有对工厂场地942的系统的实体存取的人可窥探及窃取重要信息。因此,应实施实体安全以保护安全信息。
在MCU使用案例972的替代性范例中,可程序化装置128可为空白且非使用硅供货商装置凭证926预先程序化。在此种情况下,OEM装置凭证946可用于认证。此外,可使用来自OEM装置凭证946的公开解密密钥(如OEM公钥962)来加密韧体解密密钥922。
现在参考图10,其中图标了安全组件使用案例970的详细范例。安全组件使用案例970描述了用于安全地配置安全组件(如可程序化装置128)的过程。MSP系统902可安全地部署及提供每个根据安全组件使用案例970的可程序化装置128。
在安全组件使用案例970中,可在不同的场地处实体化、传送及管理安全组件。场地可包括不同类型的位置(如硅制造商1004、OEM位置1006、程序化中心1008、程序化器位置1010及装置位置1012)。每个场地代表其中相关于动作之一些类型的安全程序化可发生的位置。此外,使用案例可包括嵌入于程序化器112及装置位置1012处的数据及动作。
安全组件使用案例970可包括三个不同的事件序列,每个事件序列用于执行不同的安全活动。在第一序列1014中,MSP系统902可使用OEM管理系统924来初始化工厂安全系统932。此可在OEM开发场地940、工厂场地942或另一相似位置处执行。
MSP系统902亦可在工厂场地942、程序化中心1008或另一相似位置处初始化工厂管理系统930。可用当前计数978、硅供货商公钥954、OEM私钥952及OEM装置凭证模板950更新工厂管理系统930。工厂管理系统930可将信息转发至工厂安全系统932以用于安全处理。
在第二序列1016中,在硅供货商(SV)工厂处使用硅供货商装置凭证926来程序化安全组件。
在第三序列1018中,MSP系统902可使用预安装在第二序列1016中的硅供货商装置凭证926来对每个装置(如可程序化装置128或信任装置130)进行加密认证。接着,可建立OEM装置凭证946并将OEM装置凭证946程序化至可程序化装置128中。
可藉由重新使用来自硅供货商装置凭证926的装置辨识密钥对的公钥部分(如硅供货商公钥954)来建立OEM装置凭证946。因此,硅供货商公钥954可用于计算OEM装置凭证946,故两个凭证皆使用相同的凭证进行认证。或者,可使用不同的密钥对来表示与硅供货商密钥对分开的OEM辨识符。此可由工厂安全系统932或安全组件本身执行。
在第二序列1016中,在硅制造商1004处执行步骤1020。硅制造商1004可为建立原始安全组件的公司。为每个安全组件(如可程序化装置128或信任装置130)建立硅供货商装置凭证926。硅供货商装置凭证926可包括关于每个安全组件的唯一信息(如装置辨识符302、序列号、产品类型、制造日期或类似的装置信息)。
步骤1022亦在硅制造商1004处执行。硅供货商装置凭证926中的每一者皆使用硅制造商的硅供货商私钥958及硅供货商辨识符956签名。对硅供货商装置凭证926签名来加密凭证的数据。仅能利用硅供货商公钥954来解密数据。
步骤1024亦在硅制造商1004处执行。皆用以硅供货商私钥958签名的硅供货商装置凭证926来程序化可程序化装置128中的每一者。由硅供货商私钥958签名的硅供货商装置凭证926显示硅供货商批准或提供装置。成功地使用硅供货商公钥954来解密硅供货商装置凭证926可验证可程序化装置128系来自对其签名的硅供货商。
第二序列1016可利用已使用硅供货商私钥958所进一步签名之硅供货商装置凭证926的唯一且单独的实体来唯一地标记每个可程序化装置128。此提供了可使用硅供货商公钥954来译码硅供货商装置凭证926,以验证硅供货商装置凭证926由具有硅供货商辨识符956的硅供货商提供。此允许工厂或其他装置用户确定可程序化装置128的认证。
在硅制造商1004、OEM位置1006及程序化中心1008处执行第一序列1014。第一序列1014可在程序化中心1008处配置程序化组件以用于安全程序化。
在步骤1030中,硅供货商可生成具有硅供货商公钥954及硅供货商私钥958的硅供货商密钥对960。此可为具有硅供货商私钥958及硅供货商公钥954的硅供货商密钥对1080。
在步骤1032中,可将硅供货商公钥954传送至OEM使用者1006。可用明确且未加密的方式来发送硅供货商公钥954。例如,可在网络链结上发送硅供货商公钥954。
在步骤1034中,OEM使用者1006可将OEM凭证951注册至工厂管理系统930及程序化中心1008的工厂安全系统932。OEM凭证951可包括OEM公钥962以解密及认证使用OEM私钥962加密或签名的信息。可安全地执行程序化中心1008处的OEM凭证的注册,以向程序化中心1008提供OEM用户1006的安全信息。可执行注册以将OEM凭证引入并辨识至工厂管理系统930及工厂安全系统932中。
在步骤1035中,工厂管理系统930及工厂安全系统932可在安全交换过程中向OEM管理系统924发送工厂安全系统加密密钥980。工厂安全系统数据加密密钥980可用于加密从OEM使用者1006发送至工厂管理系统930及工厂安全系统932的信息,以支持信息的安全传输。工厂安全系统932可向OEM管理系统924发送工厂安全系统数据加密密钥。
在步骤1036中,OEM使用者1006可建立具有SV装置认证公钥、OEM装置凭证签名密钥及OEM装置凭证模板950的封包。可在OEM管理系统924中建立OEM装置凭证签名密钥或自外部安全系统(如外部的HSM)导入此OEM装置凭证签名密钥。可使用工厂安全系统数据加密密钥980来在OEM管理系统924中加密封包,随后将此封包发送至工厂管理系统930及工厂安全系统932。由于已使用工厂安全系统932中的工厂安全系统数据加密密钥980来加密封包,故仅能使用工厂安全系统932的工厂安全系统数据认证密钥982进行解密。OEM装置凭证模板950为OEM装置凭证946的模板且接着由OEM私密签名密钥签名,此模板包括具有装置辨识符320之装置的公钥152。OEM公钥962为与OEM使用者1006相关联的加密值。OEM公钥962具有各种格式。例如,密钥可格式化为X.509公钥凭证或另一公钥格式。X.509标准定义了一个公钥凭证来显示公钥的所有权。OEM公钥962可提供用于公钥的验证信息。OEM公钥962可用于程序化中心1008中的装置认证。
在步骤1038中,OEM使用者1006可发送具有硅供货商公钥954、OEM私钥952及OEM装置认证模板950的封包至程序化中心1008。接着,封包中的信息可用来对可程序化装置128进行签名。
第三序列1018执行于程序化中心1008处或工厂场地942处的程序化器112及可程序化装置128上。第三序列1018可认证安全组件、用OEM信息提供及加密签名安全组件,并验证所配置的设备被授权。
在步骤1040中,程序化器112可读取要程序化的每个可程序化装置128的硅供货商装置凭证926。自可程序化装置128清楚地传送硅供货商装置凭证926至程序化器112。
在步骤1042中,硅供货商装置凭证926可从程序化器112传送至工厂管理系统930及工厂安全系统932。工厂管理系统930控制程序化操作,且工厂安全系统932将管理装置及系统安全。
在步骤1044中,在程序化中心1008的工厂管理系统930处接收硅供货商装置凭证926。程序化器112位于工厂场地942处。
在步骤1046中,可使用硅供货商公钥954来认证可程序化装置128。此步骤确认待程序化的装置由具有硅供货商辨识符956的硅供货商提供。当使用硅供货商公钥954解密使用序列1中的硅供货商私钥958所签名之硅供货商装置凭证926时,可程序化装置128被认证。若可使用硅供货商公钥954来存取硅供货商装置凭证926中的信息,则装置被认证。
在步骤1048中,基于OEM装置凭证模板950来格式化OEM装置凭证946。接着,用OEM私钥952签名OEM装置凭证946。
在步骤1050中,将OEM装置凭证946传送至程序化器112。由于已加密OEM装置凭证946且使用OEM私钥952对OEM装置凭证946签名,故可清楚传送OEM装置凭证946。
在步骤1052中,程序化器112可建立串行数据列表964。串行数据列表964为要程序化至可程序化装置128中的装置特定数据的列表。此可包括序列号、装置辨识符、OEM装置凭证946、制造标记、代码、数据、标记、MAC地址、装置私钥或其他信息。
在步骤1054中,包括在串行数据列表964上的装置特定数据可由程序化器112程序化至可程序化装置128中。串行数据列表964可指示装置特定数据应储存的位置。例如,OEM装置凭证946可储存于安全储存单元中。
在步骤1056中,硅供货商装置凭证926及OEM装置凭证946由程序化器112自安全组件(如可程序化装置128或信任装置130)重新提取及检索。尽管硅供货商装置凭证926及OEM装置凭证946的副本可能已存在于工厂安全系统932或系统的其他地方中,重新提取装置凭证以验证可程序化装置128并侦测潜在的重复生产运行、未经授权的复制或其他不当活动。可使用验证步骤以确保装置凭证已经程序化且没有错误。此可包括程序化故障、装置损坏、位错误或类似错误。
在步骤1058中,将硅供货商装置凭证926及OEM装置凭证946发送至工厂安全系统932以供验证和进一步使用。所检索的装置凭证可用于第二轮认证,以验证系可程序化装置128中之正确的可程序化装置128被程序化。此可用于防止可程序化装置128之未经授权的复制且防止伪造装置。
在步骤1060中,验证硅供货商装置凭证926及OEM装备凭证946以确保可程序化装置128系正确的。此可包括使用硅供货商公钥954验证硅供货商装置凭证926,并使用OEM公钥962来验证OEM装置凭证946。装置凭证的验证涉及将装置凭证中的公钥与硅供货商凭证1078中的公钥进行比较,以确保此等公钥两者匹配。此外,可藉由凭证验证工具(未图示)处理凭证,以确保凭证的格式有效。亦使用工厂安全系统932来验证凭证上的签名。
在步骤1062中,将验证结果发送回程序化器112。在步骤1064中,程序化器112可处理完成装置。若可程序化装置128未被验证,则程序化器112可辨识具有指示不良装置的验证状态的装置,并将此等装置传送至坏装置容器(未图标)以进行处置。若可程序化装置128被正确验证,则可程序化装置128可被经验证的状态值更新并作为经验证的组件传递。或者,程序化器112可生成验证报告以在生产运行中记录每个可程序化装置128的装置辨识符及验证状态。可在稍后移除或破坏无效的可程序化装置128。
现在参考图11,其中图标了装置上使用案例1102的范例。可在原始设备制造商位置处的硬件安全模块中执行装置上的种子使用案例1102。
在装置上种子及凭证生成使用案例1102中,可在多个位置之间实体化及管理安全组件。位置可包括各种配置。位置可包括硅制造商1104、原始设备制造商1106、程序化中心1108、制造中心或类似位置。此外,使用案例可包括嵌入在程序化器112级及装置级1112处的数据及动作。
在步骤1122中,可将空白可程序化装置128及参考开机加载器软件提供给微控制器单元硅供货商,且将空白可程序化装置128及参考开机加载器软件实体地传送至第二位置(如OEM 1106),以进一步处理。实体传输为安全的实体传输,以防止未经授权地存取空白可程序化装置128及安全软件。
在步骤1124中,可在如OEM的第二位置处接收可程序化装置128。OEM可藉由修改参考开机加载器软件来开发安全核心及安全开机加载器。OEM亦可开发及提供加密的韧体映像及韧体加密密钥(UPK)。OEM亦可提供需要生产的装置的总数。安全核心及种子核心可保存在OEM处的第一硬件安全模块(HSM#1)装置中,且可藉由加密传输至场地上之第二硬件安全模块装置(HSM#2)来提供给程序化中心。
在步骤1126中,安全装置的第二硬件安全模块可将种子核心发送至程序化器112。在装置的HSM#2上生成种子。种子核心需要程序化至装置中,此装置将在装置上执行以生成种子及密钥对。公钥将进入装置凭证且可将私钥程序化至装置。
步骤1126可发送种子核心至程序化器112,程序化器112将种子核心程序化至装置中。接着,重新启动装置并执行种子核心。种子核心可生成密钥对。私钥储存在装置上的隐藏内存区域中。公钥(Kpub)返回至HSM#2。HSM#2亦可生成签名凭证,将此等签名凭证与安全核心合并,并将其程序化至装置中。
因装置秘密、种子核心及随后的私钥在HSM#2中生成且不会暴露在装置外部,故此使用案例为最安全的使用案例。可在装置外部发送及暴露公钥。因此,即使以清楚方式交换一些数据,程序化器112及装置之间的数据交换仍是安全的且最小化了安全漏洞。此与其中安全核心及种子程序化在程序化器及装置之间清楚传输的装置外种子使用案例1102不同。若数据被拦截且需要更严格的场地安全要求,则此可能为安全漏洞。
在步骤1128中,程序化器112可用可程序化有效承载P对信任装置128进行程序化,接着自可程序化承载的任何修改来锁定装置。因装置可随时一经要求在装置上使用种子来生成私钥,故不需要将密钥对的私钥程序化至装置中。私钥的此一代为安全核心的一部分且仅能藉由安全核心来安全存取。
在步骤1130中,可用种子核心程序化可程序化装置128中的一者。在安装种子核心后,步骤1128可继续,且程序化器可向装置发出重新启动命令。
在步骤1132中,装置可生成装置种子及安全密钥106,接着生成并发送公钥至如MES的程序化中心级。可用清楚方式发送公钥(因可共享公钥;公钥并非为隐藏的值)。
在步骤1134中,系统可生成并签署装置凭证。接着,安全核心可与装置凭证合并并发送至程序化器112。使用加密传输(此加密传输使用程序化器凭证)发送经合并的安全核心。
在步骤1136中,程序化器112可接收安全核心并将安全装置128中的一者与安全核心一起提供。可使用加密的传输信道(此信道使用公钥)将安全核心发送至可程序化装置128中之一者。
在步骤1138中,装置可解密并安装安全核心。此外,可将签名添加至装置。在安装了核心后,步骤1136可发送重新启动命令至装置,且装置可在步骤1140中归回凭证。
在步骤1142中,安全装置使用来自装置的装置凭证的公共数据加密密钥来生成特定于装置的超加密UPK。接着,可将超加密密钥及加密的韧体映像发送回程序化器112,以程序化至可程序化装置128中之一者。
在步骤1144中,可将加密档案程序化至可程序化装置128中之一者中。可将加密档案作为使用公钥的加密档案传送至可程序化装置128中之一者。
在步骤1146中,程序化器112可将加密档案传送至可程序化装置128中之一者,其中解密映像并将其安装至可程序化装置128中之一者中。映像的安装系藉由将凭证及模块列表发送回程序化器112来授权及验证映像之安装。
在步骤1148中,程序化器112可藉由将凭证及模块列表与已知凭证及模块列表相匹配来验证加密档案在可程序化装置上的安装。
在程序化中心处之第二硬件安全模块中生成装置种子藉由减少泄漏安全组件之机会的数量来增加制造安全性的整体水平。由于程序化中心为受监控的环境(每天24小时的视讯监控),故可用更高的安全性及完整性来程序化可程序化装置128。
3.0功能概述
安全程序化系统100可用各种方式配置及提供安全组件(如可程序化装置128及信任装置130)。取决于在安全组件上执行的操作类型,可实施不同级别的安全。可在相同的实体系统上实施不同的使用案例及处理流,以适应不同的终端使用者的需求。
现在参考图12,其中图示了根据实施例的嵌入信任根系统1200的流程图的第一范例。可在各种系统中执行信任装置(例如,802)的各种组件,此等各种系统包括如上述安全程序化系统(例如,100)的系统。在实施例中,可使用在子组件制造的每个阶段处的信任硬件平台来验证的安全硬件组及安全制造过程来实施结合下文叙述的功能方块所描述的每个处理。
嵌入信任根系统1200的流程图包括:在方块1202中建立信任根数据(例如,622)于半导体装置中。信任根数据可包括经设计至在半导体装置制造程序期间待配置之半导体装置之电路中的辨识序列。
流程可进行至辨识用于制造执行系统(例如,702)的构建计划,此辨识步骤包含在方块1204中确定半导体装置的数量及配置。可自半导体制造商辨识及订制制造执行系统的要求。在第三方制造的情况下,OEM可订制经配置及经运送至组装器的半导体装置,以支持构建计划。
流程可进行至方块1206中,生成信任根代码(例如,620),其中可生成信任根代码以支持制造执行系统的构建计划。信任根代码可将半导体装置的实际处理限制为精确数量的装置。信任根代码可辨识哪些电路可耦合至半导体装置及经耦合半导体装置的特征(例如,制造日期、序列号范围、修订级别及制造位置等)。
流程进行至方块1208中的计算制造代符,其中信任根代码可使用信任根数据来计算ID代符(例如,624)的确切数量、提供加密代符(例如,626)及当程序化包含半导体装置之子组件时可使用的密钥代符(例如,628)。当韧体加载至子组件上时,可使用密钥代符及加密代符。可由嵌入信任根系统1200管理信任硬件平台(例如,802)之每个组装及程序化阶段。
流程进行至方块1210中的验证韧体完整性。在系统或装置之间交换代码信息的完整性。代码签名模块(例如,322)使用数字签名来验证是否已更改或篡改所交换信息的内容,可使用OEM装置凭证签名密钥(例如947)或储存在信任根数据中的签名来验证此数字签名。
现在参考图13,其中图示了根据实施例之嵌入信任根系统1300的流程图的第二范例。信任装置(例如,802)的各种组件可在各种系统中执行,此各种系统包括如上述安全程序化系统(例如,100)的系统。在实施例中,可使用在子组件制造的每个阶段由信任硬件平台来验证之安全硬件组及安全制造过程来实施结合下文叙述的功能方块所描述的每个处理。第二范例可用于使用OEM辨识符(例如,966)将OEM凭证(例如,951)程序化至可程序化装置(例如,128)中。或者,第二范例可用于将辨识特定OEM装置的OEM装置凭证(例如,946)程序化至可程序化装置中。
嵌入信任根系统1300的流程图包括在方块1302中生成安全算法(例如,304)以将信任根(RoT)嵌入至可程序化装置中。安全算法及RoT藉由程序化器(例如,112)储存于可程序化装置的RoT代码缓存器(例如,621)中。可使用原始设备制造商(OEM)开发场地(例如,940)处的程序化项目(例如,944)生成安全算法,且由工厂场地(例如,942)处的程序化器将此安全算法程序化至可程序化装置中。
安全算法为硬件系统执行的过程。例如,RoT可至少包括辨识代符(例如624)、OEM凭证(例如,951)及OEM装置凭证。OEM凭证可包括OEM辨识符(例如,966)及OEM公钥(例如,962)。OEM凭证只有OEM公钥,无OEM私钥(例如952)。
安全算法涉及程序化单元(例如,110)执行以将与待程序化至可程序化装置中的RoT相关联的数据及代码程序化的所有或至少一些程序化步骤。安全算法包括安全代码组件(例如,314)。RoT代码向外部系统提供应用程序设计界面(API),以控制信任装置(例如,130)上的安全功能。可客制化安全算法或此安全算法可不同于在工厂场地(例如,942)使用相同的程序化项目程序化的一组信任装置的每个信任装置。例如,安全代码组件可包括源代码、可执行代码、函式库模块、链接模块、配置档案、初始化数据、硬件句柄或上述组合。此外,例如,安全算法可以可选地储存于可程序化装置的安全储存单元(例如,326)中,且在可程序化装置的执行单元(例如,324)中执行。安全算法通常可在程序化器(例如,112)上执行,并将与信任根相关的数据及代码注入到可程序化装置中。此外,例如,安全算法可成为可追踪目标作业的一部分但可能很少会储存在可程序化装置上。安全算法可储存在可程序化装置上,但此等安全算法通常不会储存在可程序化装置上。
流程可在方块1304中继续,以执行硬件系统上的安全算法。硬件系统可至少包括程序化器、工厂安全系统(例如,932)、主机系统(例如,836)、执行单元或上述组合。例如,程序化器或程序化单元的安全控制器(例如114)执行安全算法以产生可程序化装置的安全信息。
在方块1306中,安全算法指示硬件系统生成包括(但不限于)密钥对的安全信息。例如,可使用工厂安全系统生成密钥对。密钥对可包括OEM装置公钥或硅供货商公钥(例如,954)及OEM装置私钥或硅供货商私钥(例如,958)。
在方块1308中,安全算法指示硬件系统储存密钥对于可程序化装置中。程序化器与执行单元通讯以将密钥对储存至安全储存单元中。
在方块1310中,安全算法指示硬件系统使用OEM装置公钥来生成OEM装置凭证。可使用工厂安全系统来生成OEM装置凭证。OEM装置凭证可包括OEM辨识符(例如,966)。可由工厂安全系统使用OEM装备凭证签名密钥(例如,947)来对OEM装置凭证签名。
在方块1312中,安全算法指示硬件系统将OEM装置凭证储存至可程序化装置中。可使用执行单元来储存OEM装置凭证。
当OEM装置凭证经程序化至可程序化装置中时,安全算法完成。特别为每个可程序化装置建立安全算法。构成安全算法的代码可来自作业封包或程序化项目(例如944)。安全算法可与待程序化至可程序化装置中的程序化项目的数据捆绑在一起。
流程可进行至方块1314中的验证可程序化装置,以确保OEM装置凭证具有适当的装置凭证且已经正确程序化。可由程序化器、主机系统、工厂安全系统或上述组合来验证可程序化装置。
例如,程序化器或主机系统请求执行单元从安全储存单元检索OEM装置凭证。程序化器或执行单元验证OEM装置凭证是否由OEM装置凭证签名密钥签名。程序化器或执行单元在OEM装置凭证中使用OEM装置公钥,以挑战可程序化装置对加密数据串流进行解密。若来自可程序化装置的响应(例如,解密的数据串流)与来自程序化器或执行单元的原始数据串流匹配,则已程序化的OEM装置凭证被验证。
在实施例中,工厂管理系统(如,930)管理多个系统。工厂管理系统接受来自OEM管理系统(例如924)的输入或请求,并将此输入或请求传递至工厂安全系统。
除了其他优点之外,安全算法尚用于提取如何建立及程序化RoT之装置特定的复杂性,且藉由向可程序化装置上的韧体提供应用程序设计界面(API)来建立抽象层以自OEM提取复杂性,使得可用韧体操纵RoT。
在实施例中,可仅使用工厂安全系统来执行所有安全交易(例如,密钥生成、密钥验证、签名生成及验证等)。工厂管理系统(例如930)可不用于执行此等交易。
根据一或多个实施例,可执行系统以用于可程序化装置(例如,128)之欺骗性侦测及预防。尽管描述了系统的范例,但其他实施例亦可应用于可用于执行本文所述功能的任何系统。系统的组件可藉由(例如)数据总线、数据链路、局域网络(LAN)、广域网(WAN)、因特网、内部网络及外部网络等连接。系统内的任何数量装置可藉由有线或无线通信段彼此直接相连。
4.0示例性实施例
呈现一些实施例的范例(但不限于)于以下款中:
根据实施例,一种系统包括:至少部分地由硬件实施的辨识模块,此辨识模块基于可程序化装置的信任根数据缓存器及可程序化装置的信任根代码缓存器来产生由制造执行系统使用的辨识代符;至少部分由硬件实施的加密模块,此加密模块计算用于认证信任数据缓存器及信任根代码缓存器的加密代符及密钥代符;至少部分由硬件实施的认证模块,此认证模块基于加密代符及密钥代符来验证信任硬件平台;及至少部分由硬件实施的代码签名模块,此代码签名模块在程序化可程序化装置之前验证信任硬件平台的韧体完整性。
在实施例中,其中信任根代码缓存器包括使用在原始设备制造商(OEM)开发场地处的程序化项目所产生的安全算法,且此安全算法藉由程序化器储存于工厂场地处的可程序化装置中。
在实施例中,进一步包括至少部分地由硬件实施的工厂安全系统,此工厂安全系统基于安全算法将信任根(RoT)储存于可程序化装置中。
在实施例中,其中程序化器基于安全算法产生用于储存在可程序化装置中的安全信息。
在实施例中,其中程序化器基于安全算法将密钥对储存在可程序化装置中。
在实施例中,其中程序化器基于安全算法产生具有公钥及私钥的凭证。
在实施例中,其中程序化器基于安全算法将凭证储存在可程序化装置中。
根据实施例,一种方法包括以下步骤:基于可程序化装置的信任根数据缓存器及可程序化装置的信任根代码缓存器产生由制造执行系统使用的辨识代符;计算用于认证信任数据缓存器及信任根代码缓存器的加密代符及密钥代符;基于加密代符及密钥代符验证信任硬件平台;及在程序化可程序化装置之前验证信任硬件平台的韧体完整性。
在实施例中,进一步包括以下步骤:在原始设备制造商(OEM)开发场地处使用程序化项目来产生安全算法;及藉由工厂场地处的程序化器来将安全算法储存在可程序化装置的信任根代码缓存器中。
在实施例中,进一步包括以下步骤:基于安全算法将信任根(RoT)储存在可程序化装置中。
在实施例中,进一步包括以下步骤:基于安全算法产生用于储存在可程序化装置中的安全信息。
在实施例中,进一步包括以下步骤:基于安全算法将密钥对储存在可程序化装置中。
在实施例中,进一步包括以下步骤:基于安全算法产生具有公钥及私钥的凭证。
在实施例中,进一步包括以下步骤:基于安全算法将凭证储存在可程序化装置中。
在本文中可找到此等及其他实施例的其他范例。
5.0实施机制─硬件概述
根据一实施例,本文所述技术由一或多个专用计算装置来实施。专用计算装置可为桌面计算机系统、便携计算机系统、手持装置、智能电话、媒体装置、游戏控制面板、网络装置或包含硬联机及/或程序逻辑以实施技术的任何其他装置。专用计算装置可被硬接线以执行技术,或可包括数字电子设备(如一或多个经持续程序化以执行技术的特殊应用集成电路(ASIC)或现场可程序化门阵列(FPGA)),或可包括经程序化为根据韧体、内存、其他储存器或组合中的程序指令以执行技术的一或多个通用硬件处理器。此类专用计算装置亦可将客制化的硬接线逻辑、ASIC或FPGA与客制化的程序化结合以完成技术。
现在参考图14,其中图标了图标在实施根据实施例之上述技术中所使用的计算机系统1400的方块图。计算机系统1400可为(例如)桌上型计算装置、膝上型计算装置、平板计算机、智能电话、服务器设备、大型计算主机、多媒体装置、手持装置、网络设备或任何其他合适的装置。
计算机系统1400包括用于传送信息的一或多个总线1402或其他通讯机制,及与总线1402耦合以用于处理信息的一或多个硬件处理器1404。硬件处理器1404可为(例如)通用微处理器。总线1402可包括各种内部及/或外部组件,此等各种内部及/或外部组件包括(但不限于)内部处理器或内存总线、串行ATA总线、PCI Express总线、通用串行总线、超传输总线、Infiniband总线及/或任何其他合适的有线或无线通信通道。
计算机系统1400亦包括主存储器1406(如随机存取内存(RAM)或其他动态或挥发性储存装置),主存储器1406耦合至总线1402,以储存待由处理器1404执行的信息及指令。主存储器1406亦可用于在由处理器1404执行待执行的指令期间储存临时变量或其他中间信息。当此类指令储存于处理器1404可存取之非瞬时的储存媒体中时,此类指令使计算机系统1400成为经客制化以执行指令中指定操作的专用机器。
计算机系统1400进一步包含耦合至总线1402的一或多个只读存储器(ROM)1408或其他静态储存装置以储存用于处理器1404的静态信息及指令。提供及耦合一或多个储存装置1410(如固态驱动器(SSD)、磁盘、光盘或其他合适的非挥发性储存装置)至总线1402以储存信息及指令。
计算机系统1400可经由总线1402耦合至一或多个显示器1412以向计算机用户呈现信息。例如,计算机系统~00可经由高画质多媒体接口(HDMI)电缆或其他合适电缆来连接至液晶显示器(LCD)屏幕,及/或经由无线连接(如同级间Wi-Fi)直接连接至发光二极管(LED)电视机。合适类型的显示器1412的其他范例可包括(但不限于)电浆显示设备、投影仪、阴极射线管(CRT)屏幕、电子纸、虚拟现实头戴装置、盲文终端及/或用于将信息输出至计算机用户的任何合适装置。在实施例中,可使用任何合适类型的输出装置(举例而言如音频扬声器或打印机)来取代显示器1412。
在实施例中,显示器1412的输出可由计算机系统1400中的一或多个图形处理单元(GPU)加速。GPU可为(例如)高度并行化的多核心浮点处理单元,此多核心浮点处理单元经高度优化执行与图形数据、3D数据及/或多媒体的显示相关的计算操作。除了直接计算图像及/或影片数据以输出至显示器1412之外,还可使用GPU来使图像或其他影片数据离屏,并以非常高效能将此数据读回至用于离屏图像处理的程序中。可将各种其他计算任务自处理器1404卸除至GPU。
一或多个输入设备1414经耦合至总线1402以将信息及命令选择传送至处理器1404。输入设备1414的一范例为包括字母数字及其他键的键盘。另一类型的用户输入设备1414为光标控制器1416(如鼠标、轨迹球或光标箭头键)以将方向信息及命令选择传送至处理器1404并控制显示器1412上的光标移动。输入设备通常在两轴(允许装置指定平面中的位置的第一轴(例如,x)及第二轴(例如,y))上具有两个自由度。合适的输入设备1414的其他范例包括固定至显示器1412的触控式面板、相机、麦克风、加速度计、运动侦测器及/或其他传感器。在实施例中,可使用基于网络的输入设备1414。在此种实施例中,使用者输入及/或其他信息或命令可经由局域网络(LAN)或其他合适的共享网络上的路由器及/或交换器或经由同级间网络中继,而自输入设备1414至计算机系统1400上的网络链结1420。
计算机系统1400可使用客制化的硬联机逻辑、一或多个ASIC或FPGA、韧体及/或程序逻辑(其结合计算机系统来使或程序化计算机系统1400成为专用机器)来实施本文所述技术。根据一实施例,本文技术由响应于处理器1404的计算机系统1400执行,处理器1404执行主存储器1406中包含的一或多个指令的一或多个序列。此种指令可从另一储存媒体(如储存装置1410)读取至主存储器1406中。包含在主存储器1406中的指令序列的执行使处理器1404执行本文所述的处理步骤。在替代实施例中,可使用硬联机电路代替软件指令或与软件指令组合使用。
本文所用的术语「储存媒体」系指储存导致机器以特定方式操作的数据及/或指令的任何非瞬时媒体。此种储存媒体可包括非挥发性媒体及/或挥发性媒体。非挥发性媒体包括(例如)光盘或磁盘(如储存装置1410)。挥发性媒体包括易失存储器(如主存储器1406)。储存媒体的常见形式包括(例如)软盘、软磁盘、硬盘、固态驱动器、磁带或任何其他磁性数据储存媒体、CD-ROM、任何其他光学数据储存媒体、具有孔图案的任何实体媒体、RAM、PROM,及EPROM、FLASH-EPROM、NVRAM及任何其他内存芯片或磁盒。
储存媒体与传输媒体不同,但储存媒体可与传输媒体结合使用。传输媒体参与了在储存媒体之间传输信息。例如,传输媒体包括同轴电缆、铜线及光纤(其包含导线(导线包含总线1402))。传输媒体亦可采取声波或光波的形式,如在无线电波及红外线数据通讯期间产生的波。
各种形式的媒体涉及将一或多个指令的一或多个序列传送至处理器1404以执行。例如,最初可传送指令至远程计算机的磁盘或固态驱动器上。远程计算机可加载指令至此远程计算机的易失存储器中,且使用调制解调器来在网络(如电缆网络或蜂窝网络)上发送作为经调变信号的指令。计算机系统1400本端调制解调器可接收网络上的数据并解调变信号,以译码经传送的指令。合适的电路接着可将数据放置在总线1402上。总线1402从处理器1404检索及执行指令处将数据传送至主存储器1406。由主存储器1406接收的指令可以可选地在处理器1404执行之前或之后储存于储存装置1410上。
在实施例中,计算机系统1400亦可包括耦合至总线1402的一或多个通讯接口1418。通讯接口1418向网络链结1420提供通常为双向的数据通讯耦合,网络链结1420系经连接至局域网络1422。例如,通讯接口1418可为综合业务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器或调制解调器,以向相应类型的电话线提供数据通讯连接。作为另一范例,一或多个通讯接口1418可包括区域网(LAN)卡,以提供数据通讯连接至兼容的LAN。作为另一范例,一或多个通讯接口1418可包括无线网络接口控制器(如基于802.11的控制器、蓝芽控制器、长期进化(LTE)调制解调器及/或其他类型的无线接口)。在任何此种实施中,通讯接口1418发送及接收传送表示各种类型信息的数字数据串流的电信号、电磁信号或光信号。
网络链结1420通常藉由一或多个网络来向其他数据装置提供数据通讯。例如,网络链结1420可藉由局域网络1422向主计算机1424或由服务提供商1426向经操作的数据装置提供连接。服务供货商1426(可为(例如)因特网服务供货商(ISP))接着提供经由广域网的数据通讯服务(例如,现在通常被称为「因特网」1428的全球封包数据通讯网络)。局域网络1422及因特网1428两者皆使用传送数字数据串流的电信号、电磁信号或光信号。藉由各种网络的信号及网络链结1420上且经由将数字数据传送至计算机系统1400及自计算机系统1400传送数字数据的通讯接口1418的信号为传输媒体的范例形式。
在一实施例中,计算机系统1400可藉由(多个)网络、网络链结1420及通讯接口1418发送讯息及接收数据(包括程序代码及/或其他类型的指令)。在因特网范例中,服务器~30可藉由因特网1428、ISP 1426、局域网络1422及通讯接口1418传送用于应用程序的请求代码。当此接收到的代码被接收及/或储存于储存装置1410或其他非挥发性内存中以供稍后执行时,处理器1404可执行接收到的代码。作为另一范例,经由网络链结1420接收的信息可由计算机系统1400的软件组件(如网络浏览器、应用或服务器)进行直译及/或处理,此软件组件可藉由操作系统及/或软件组件的其他中间层来基于其依次向处理器1404发出指令。
在实施例中,本文所述系统中的一些或所有系统可为或包括服务器计算机系统,此等服务器计算机系统包括一或多个计算机系统140,一或多个计算机系统140将系统的各种组件统一地实施为一组服务器端处理。服务器计算机系统可包括web服务器、应用服务器、数据库服务器及/或用于提供所述功能之包含上述组件的其他常规服务器组件。服务器计算机系统可接收基于网络的通讯,此基于网络的通讯包括来自各种来源的输入数据,输入数据报括(但不限于)使用者操作的客户端计算装置(如桌面计算机、平板计算机或智能电话、远程感测装置及/或其他服务器计算机系统)。
在实施例中,可全部或部分地使用「基于云端」的组件来实施某些服务器组件,此等「基于云端」的组件藉由一或多个网络(如因特网)耦合至系统。基于云端的组件可暴露此等基于云端的组件向系统的其他组件提供处理、储存、软件及/或其他资源的接口。在实施例中,可由代表组件被部署的另一实体的第三方实体实施基于云端的组件。然而,在其他实施例中,可完全由单一实体所拥有及操作的计算机系统来实施所描述的系统。
在实施例中,设备包括处理器且经配置为执行前述方法中的任何一者。在实施例中,当由一个或多个处理器执行储存软件指令之非瞬时计算机可读取储存媒体时,此等指令导致执行前述任何一种方法。
6.0扩展及替代
如本文所使用地,术语「第一」、「第二」、「某些」及「特定」作为命名常规以将查询、计划、表示、步骤、对象、装置或其他项目彼此区分,以便此等项目可在其经引入后被引述。除非另有说明,否则使用此等术语并不暗示经引述项目的排序、时序或任何其他特征。
在附加图式中,各种组件经描绘为藉由箭头通讯地耦合至各种其他组件。此等箭头仅图标了组件间的信息流的某些范例。箭头的方向及某些组件之间的箭头线的缺乏皆不应解释为指示某些组件本身之间是否存在通讯。实际上,每个组件可具有合适的通讯接口,组件可藉由此接口来根据需要来通信地耦合至其他组件,以完成本文所述的任何功能。
在前述说明书中,已参照可在实施中彼此变化之各种具体细节描述了本发明的实施例。因此,本发明及申请人所意欲视为本发明的范畴的单一及唯一的指示系为以一组请求项产出的特定形式自本申请案中所产出之此组请求项,包含任何后续修正。在此方面,尽管在本申请案的申请专利范围中阐述了具体的请求项相依性,但应注意,本申请案的附属请求项的特征可适当地与本申请案的其他附属请求项及独立请求项的特征结合,而不仅是根据申请专利范围中所述之具体相依性。此外,尽管在本文中论述了单独的实施例,但可组合本文所述的实施例及/或部分实施例的任何组合以形成其他实施例。
本文中所明确阐述之关于此等申请专利范围中所包含术语的定义应适用于申请专利范围中使用的此类术语的含义。因此,请求项中没有明确叙述的任何限制、元素、特性、特征、优点或属性应以任何方式限制此类请求项的范畴。因此,说明书及附加图式被认为是说明性的;而非限制性。
Claims (20)
1.一种设备,包含:
一程序化单元,包括:
一安全控制器,该安全控制器在安全执行环境中产生安全算法,基于可程序化装置的装置类型来动态地配置该安全算法;
一程序化器,该程序化器被配置为执行该安全算法,该安全算法将一安全应用程序设计界面程序化至该可程序化装置中;
一辨识模块,该辨识模块至少部分由硬件实施,该辨识模块基于一可程序化装置的一信任根数据缓存器及该可程序化装置的一信任根代码缓存器来产生一辨识代符,该辨识代符具有装置辨识符,该装置辨识符被用于授权存取该可程序化装置,该信任根数据缓存器用于储存安全数据,该信任根代码缓存器用于储存用于该安全算法的代码;
一加密模块,该加密模块至少部分由硬件实施,该加密模块产生用于认证该信任根数据缓存器及该信任根代码缓存器的一密钥代符,该密钥代符用于认证该辨识代符;
一认证模块,该认证模块至少部分由硬件实施,通过用该密钥代符来验证该辨识代符,该认证模块验证该可程序化装置以授权存取该程序化器;及
一代码签名模块,该代码签名模块至少部分由硬件实施,在该程序化器使用该安全应用程序设计界面将有效承载在该可程序化装置中程序化之前,该代码签名模块验证该有效承载的数字签名。
2.根据权利要求1所述的设备,其中该信任根代码缓存器包含在一原始设备制造商(OEM)开发场地使用一程序化项目所产生的该安全算法,且该安全算法由一程序化器在一工厂场地储存在该可程序化装置中。
3.根据权利要求2所述的设备,进一步包含一工厂安全系统,该工厂安全系统至少部分由硬件实施,该工厂安全系统基于该安全算法将一信任根(RoT)储存在该可程序化装置中。
4.根据权利要求2所述的设备,其中该程序化器基于该安全算法来产生用于储存在该可程序化装置中的安全信息。
5.根据权利要求2所述的设备,其中该程序化器基于该安全算法来将一密钥对储存在该可程序化装置中。
6.根据权利要求2所述的设备,其中该程序化器基于该安全算法来产生具有一公钥及一私钥的一凭证。
7.根据权利要求6所述的设备,其中该程序化器基于该安全算法来将该凭证储存于该可程序化装置中。
8.一种方法,包含以下步骤:
在安全执行环境中产生安全算法,基于可程序化装置的装置类型来动态地配置该安全算法;
在程序化器上执行该安全算法,以将一安全应用程序设计界面程序化至该可程序化装置中;
基于该可程序化装置的一信任根数据缓存器及该可程序化装置的一信任根代码缓存器来产生一辨识代符,该辨识代符具有装置辨识符,该装置辨识符被用于授权存取该可程序化装置,该信任根数据缓存器用于储存安全数据,该信任根代码缓存器用于储存用于该安全算法的代码;
产生用于认证该信任根数据缓存器及该信任根代码缓存器的一密钥代符,该密钥代符用于认证该辨识代符;
通过用该密钥代符来验证该辨识代符,对验证该可程序化装置的一信任硬件平台进行授权以存取程序化器;及
在该程序化器使用该安全应用程序设计界面将有效承载在该可程序化装置中程序化之前,验证该信任硬件平台的有效承载的数字签名。
9.根据权利要求8所述的方法,进一步包含以下步骤:
在一原始设备制造商(OEM)开发场地使用一程序化项目来产生该安全算法;及
由该程序化器在一工厂场地将该安全算法储存在该可程序化装置的该信任根代码缓存器中。
10.根据权利要求9所述的方法,进一步包含以下步骤:基于该安全算法将一信任根(RoT)储存在该可程序化装置中。
11.根据权利要求9所述的方法,进一步包含以下步骤:基于该安全算法来产生用于储存在该可程序化装置中的安全信息。
12.根据权利要求9所述的方法,进一步包含以下步骤:基于该安全算法来将一密钥对储存在该可程序化装置中。
13.根据权利要求9所述的方法,进一步包含以下步骤:基于该安全算法来产生具有一公钥及一私钥的一凭证。
14.根据权利要求13所述的方法,进一步包含以下步骤:基于该安全算法来将该凭证储存于该可程序化装置中。
15.一种非瞬时计算机可读取媒体,该非瞬时计算机可读取媒体储存指令,当由一或多个计算装置执行该指令时,该指令执行以下步骤:
在安全执行环境中产生安全算法,基于可程序化装置的装置类型来动态地配置该安全算法;
在程序化器上执行该安全算法,以将一安全应用程序设计界面程序化至该可程序化装置中;
基于该可程序化装置的一信任根数据缓存器及该可程序化装置的一信任根代码缓存器来产生一辨识代符,该辨识代符具有装置辨识符,该装置辨识符被用于授权存取该可程序化装置,该信任根数据缓存器用于储存安全数据,该信任根代码缓存器用于储存用于该安全算法的代码;
产生用于认证该信任根数据缓存器及该信任根代码缓存器的一密钥代符,该密钥代符用于认证该辨识代符;
通过用该密钥代符来验证该辨识代符,对验证该可程序化装置的一信任硬件平台进行授权以存取程序化器;及
在该程序化器使用该安全应用程序设计界面将有效承载在该可程序化装置中程序化之前,验证该信任硬件平台的有效承载的数字签名。
16.根据权利要求15所述的非瞬时计算机可读取媒体,进一步包含以下步骤:
在一原始设备制造商(OEM)开发场地使用一程序化项目来产生该安全算法;及
由一程序化器在一工厂场地将该安全算法储存在该可程序化装置的该信任根代码缓存器中。
17.根据权利要求16所述的非瞬时计算机可读取媒体,进一步包含以下步骤:基于该安全算法将一信任根(RoT)储存在该可程序化装置中。
18.根据权利要求16所述的非瞬时计算机可读取媒体,进一步包含以下步骤:基于该安全算法来产生用于储存在该可程序化装置中的安全信息。
19.根据权利要求16所述的非瞬时计算机可读取媒体,进一步包含以下步骤:基于该安全算法来将一密钥对储存在该可程序化装置中。
20.根据权利要求16所述的非瞬时计算机可读取媒体,进一步包含以下步骤:基于该安全算法来产生具有一公钥及一私钥的一凭证。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662372242P | 2016-08-08 | 2016-08-08 | |
US62/372,242 | 2016-08-08 | ||
US15/669,873 US10268844B2 (en) | 2016-08-08 | 2017-08-04 | Embedding foundational root of trust using security algorithms |
US15/669,873 | 2017-08-04 | ||
PCT/US2017/045804 WO2018031496A1 (en) | 2016-08-08 | 2017-08-07 | Embedding foundational root of trust using security algorithms |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109997333A CN109997333A (zh) | 2019-07-09 |
CN109997333B true CN109997333B (zh) | 2022-12-23 |
Family
ID=61071404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780053561.XA Active CN109997333B (zh) | 2016-08-08 | 2017-08-07 | 使用安全算法嵌入基础性的信任根 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10268844B2 (zh) |
EP (1) | EP3497880A4 (zh) |
CN (1) | CN109997333B (zh) |
TW (1) | TWI744373B (zh) |
WO (1) | WO2018031496A1 (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10425242B2 (en) * | 2016-10-14 | 2019-09-24 | Microsoft Technology Licensing, Llc | IoT provisioning service |
US10798216B2 (en) | 2016-10-15 | 2020-10-06 | Microsoft Technology Licensing, Llc | Automatic provisioning of IoT devices |
US10338983B2 (en) | 2016-12-30 | 2019-07-02 | EMC IP Holding Company LLC | Method and system for online program/erase count estimation |
US10289550B1 (en) | 2016-12-30 | 2019-05-14 | EMC IP Holding Company LLC | Method and system for dynamic write-back cache sizing in solid state memory storage |
US11069418B1 (en) | 2016-12-30 | 2021-07-20 | EMC IP Holding Company LLC | Method and system for offline program/erase count estimation |
US10403366B1 (en) | 2017-04-28 | 2019-09-03 | EMC IP Holding Company LLC | Method and system for adapting solid state memory write parameters to satisfy performance goals based on degree of read errors |
US10290331B1 (en) | 2017-04-28 | 2019-05-14 | EMC IP Holding Company LLC | Method and system for modulating read operations to support error correction in solid state memory |
US10866798B2 (en) | 2017-12-28 | 2020-12-15 | Intel Corporation | Firmware upgrade method and apparatus |
CN110324138B (zh) * | 2018-03-29 | 2022-05-24 | 阿里巴巴集团控股有限公司 | 数据加密、解密方法及装置 |
US11336658B2 (en) | 2018-04-27 | 2022-05-17 | Dell Products L.P. | Information handling system threat management |
US11595407B2 (en) | 2018-04-27 | 2023-02-28 | Dell Products L.P. | Information handling system threat management |
US10637876B2 (en) | 2018-04-27 | 2020-04-28 | Dell Products L.P. | Information handling system threat management |
JP6550502B1 (ja) * | 2018-05-10 | 2019-07-24 | ウィンボンド エレクトロニクス コーポレーション | 固有データ生成装置、半導体装置および認証システム |
US10880099B2 (en) * | 2018-05-23 | 2020-12-29 | Wipro Limited | Method and system for protecting computing devices from malwares |
US10979232B2 (en) * | 2018-05-31 | 2021-04-13 | Motorola Solutions, Inc. | Method for provisioning device certificates for electronic processors in untrusted environments |
EP3644181A4 (en) * | 2018-08-23 | 2020-07-15 | Shenzhen Goodix Technology Co., Ltd. | SECURE PRIMING METHOD OF INTEGRATED PROGRAM, APPARATUS AND DEVICE, AND INFORMATION MEDIUM |
KR20200116010A (ko) | 2019-03-29 | 2020-10-08 | 알리바바 그룹 홀딩 리미티드 | 아이덴티티 정보에 기초한 암호 키 관리 |
EP3610607B1 (en) | 2019-03-29 | 2021-08-25 | Advanced New Technologies Co., Ltd. | Cryptographic key management based on identity information |
JP6871411B2 (ja) | 2019-03-29 | 2021-05-12 | アドバンスド ニュー テクノロジーズ カンパニー リミテッド | 暗号動作のセキュアな実行 |
KR102157453B1 (ko) * | 2019-03-29 | 2020-09-18 | 알리바바 그룹 홀딩 리미티드 | 신원 검증을 사용하는 암호화 칩 |
US11101984B2 (en) * | 2019-04-04 | 2021-08-24 | Micron Technology, Inc. | Onboarding software on secure devices to generate device identities for authentication with remote servers |
GB2582947B (en) * | 2019-04-10 | 2021-10-13 | Advanced Risc Mach Ltd | Provisioning data on a device |
TWI718525B (zh) * | 2019-04-26 | 2021-02-11 | 英屬維爾京群島商伊格拉斯控股有限公司 | 應用於安全製造的控管系統及其方法 |
WO2020246956A1 (en) * | 2019-06-03 | 2020-12-10 | Hewlett-Packard Development Company, L.P. | Key authentication |
CN111580522A (zh) * | 2020-05-15 | 2020-08-25 | 东风柳州汽车有限公司 | 无人驾驶汽车的控制方法、汽车和存储介质 |
US11570156B2 (en) | 2020-07-02 | 2023-01-31 | International Business Machines Corporation | Secure pairing of devices |
US20220141658A1 (en) * | 2020-11-05 | 2022-05-05 | Visa International Service Association | One-time wireless authentication of an internet-of-things device |
US11368314B2 (en) | 2020-11-13 | 2022-06-21 | Microsoft Technology Licensing, Llc | Secure digital signing |
CN113553592A (zh) * | 2021-07-01 | 2021-10-26 | 江苏电力信息技术有限公司 | 一种基于嵌入式信任根的智能设备安全代码更新方法 |
CN113505823B (zh) * | 2021-07-02 | 2023-06-23 | 中国联合网络通信集团有限公司 | 供应链安全分析方法及计算机可读存储介质 |
US11698972B2 (en) * | 2021-07-22 | 2023-07-11 | Dell Products L.P. | Method to securely transfer root of trust responsibilities on a common shared motherboard |
CN113591109B (zh) * | 2021-07-23 | 2023-05-02 | 上海瓶钵信息科技有限公司 | 可信执行环境与云端通信的方法及系统 |
TWI773516B (zh) * | 2021-09-06 | 2022-08-01 | 新唐科技股份有限公司 | 進化可信根的方法與使用所述方法的電子裝置 |
WO2023138790A1 (en) * | 2022-01-24 | 2023-07-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Remote execution of computer instructions in a kernel space of a communication device |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103339957A (zh) * | 2011-01-05 | 2013-10-02 | 英特尔公司 | 用于在开放的计算平台内构造硬件信任根并且提供受保护的内容处理的方法和装置 |
US8694795B1 (en) * | 2012-06-15 | 2014-04-08 | Visa International Service Association | Method and apparatus for secure application execution |
WO2014165627A1 (en) * | 2013-04-03 | 2014-10-09 | Alibaba Group Holding Limited | Method and system for distinguishing humans from machines and for controlling access to network services |
CN105144626A (zh) * | 2013-04-23 | 2015-12-09 | 高通股份有限公司 | 基于安全参数的工作安全密钥的产生 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050262361A1 (en) * | 2004-05-24 | 2005-11-24 | Seagate Technology Llc | System and method for magnetic storage disposal |
US20060010326A1 (en) | 2004-07-08 | 2006-01-12 | International Business Machines Corporation | Method for extending the CRTM in a trusted platform |
US7640541B2 (en) | 2005-05-23 | 2009-12-29 | Intel Corporation | In-system reconfiguring of hardware resources |
ES2362462T3 (es) | 2007-04-12 | 2011-07-06 | Intrinsic Id B.V. | Activación controlada de función. |
GB2478505B (en) | 2011-01-17 | 2012-02-15 | Ido Schwartzman | Method and system for secure firmware updates in programmable devices |
US9344437B2 (en) | 2011-09-23 | 2016-05-17 | Jerome Svigals | Internet of things security |
US9666241B2 (en) | 2012-01-19 | 2017-05-30 | Quixant Plc | Firmware protection and validation |
US9305185B1 (en) * | 2012-08-07 | 2016-04-05 | Altera Corporation | Method and apparatus for securing programming data of a programmable device |
WO2014036021A1 (en) * | 2012-08-28 | 2014-03-06 | Visa International Service Association | Secure device service enrollment |
US9384367B2 (en) * | 2012-09-04 | 2016-07-05 | Intel Corporation | Measuring platform components with a single trusted platform module |
WO2014112972A1 (en) * | 2013-01-15 | 2014-07-24 | Schneider Electric USA, Inc. | Systems and methods for securely accessing programmable devices |
WO2014200496A1 (en) * | 2013-06-13 | 2014-12-18 | Intel Corporation | Secure pairing for communication across devices |
US9270469B2 (en) * | 2014-02-20 | 2016-02-23 | Xilinx, Inc. | Authentication using public keys and session keys |
EP2937806A1 (en) * | 2014-04-22 | 2015-10-28 | ALSTOM Renewable Technologies | Method and system for securing electronic data exchange between an industrial programmable device and a portable programmable device |
US9917737B2 (en) * | 2014-12-31 | 2018-03-13 | Schneider Electric USA, Inc. | Systems and methods for programmable device installations |
US9721122B2 (en) * | 2015-02-05 | 2017-08-01 | Wipro Limited | Method and system for performing secure I/O operation in a pluggable flash storage device |
US9858412B2 (en) * | 2015-06-25 | 2018-01-02 | Intel Corporation | Secure trusted execution environment data store |
US10129035B2 (en) * | 2015-08-10 | 2018-11-13 | Data I/O Corporation | Device birth certificate |
-
2017
- 2017-08-04 US US15/669,873 patent/US10268844B2/en active Active
- 2017-08-07 EP EP17840114.7A patent/EP3497880A4/en active Pending
- 2017-08-07 CN CN201780053561.XA patent/CN109997333B/zh active Active
- 2017-08-07 WO PCT/US2017/045804 patent/WO2018031496A1/en unknown
- 2017-08-08 TW TW106126679A patent/TWI744373B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103339957A (zh) * | 2011-01-05 | 2013-10-02 | 英特尔公司 | 用于在开放的计算平台内构造硬件信任根并且提供受保护的内容处理的方法和装置 |
US8694795B1 (en) * | 2012-06-15 | 2014-04-08 | Visa International Service Association | Method and apparatus for secure application execution |
WO2014165627A1 (en) * | 2013-04-03 | 2014-10-09 | Alibaba Group Holding Limited | Method and system for distinguishing humans from machines and for controlling access to network services |
CN105144626A (zh) * | 2013-04-23 | 2015-12-09 | 高通股份有限公司 | 基于安全参数的工作安全密钥的产生 |
Non-Patent Citations (3)
Title |
---|
"ESTABLISHING THE ROOT OF TRUST";Vincent Zimmer;Michael Krau;《URL:https://uefi.org/sites/default/files/resources/UEFI%20RoT%20white%20paper_Final%208%208%2016%20(003).pdf》;20160802 * |
Tim Morin." FPGA内建硬件信任根确保IoT信息安全".《中国电子商情(基础电子)》.2015, * |
Yunlong Wu ; Dong Cui ; Qiang Zhang."Research on gesture cryptographic platform based on trusted computing".《2010 International Conference on Optics, Photonics and Energy Engineering (OPEE)》.2010, * |
Also Published As
Publication number | Publication date |
---|---|
EP3497880A4 (en) | 2020-02-26 |
TW201810111A (zh) | 2018-03-16 |
EP3497880A1 (en) | 2019-06-19 |
WO2018031496A1 (en) | 2018-02-15 |
US20180039795A1 (en) | 2018-02-08 |
CN109997333A (zh) | 2019-07-09 |
US10268844B2 (en) | 2019-04-23 |
TWI744373B (zh) | 2021-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109997333B (zh) | 使用安全算法嵌入基础性的信任根 | |
US11870915B2 (en) | Unified programming environment for programmable devices | |
US11595371B2 (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 | ||
GR01 | Patent grant |