CN117349818A - 用于多核处理器的远程认证 - Google Patents

用于多核处理器的远程认证 Download PDF

Info

Publication number
CN117349818A
CN117349818A CN202311288031.7A CN202311288031A CN117349818A CN 117349818 A CN117349818 A CN 117349818A CN 202311288031 A CN202311288031 A CN 202311288031A CN 117349818 A CN117349818 A CN 117349818A
Authority
CN
China
Prior art keywords
core
examples
secure
software
runtime
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.)
Pending
Application number
CN202311288031.7A
Other languages
English (en)
Inventor
F·S·多姆克
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN117349818A publication Critical patent/CN117349818A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • 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/2103Challenge-response
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Abstract

所公开的技术通常针对软件的鉴别。在该技术的一个示例中,私有认证密钥被存储在硬件中。在一些示例中,在顺序引导过程期间,按照软件级被顺序引导的次序,计算多个软件级的每个软件级的哈希。可以将多个软件级的每个软件级的哈希加密地附加到累积寄存器。累积寄存器可用于认证软件级的有效性。多个软件级可以包括第一引导加载器、用于多核处理器的第一核的运行时、以及用于多核处理器的第二核的第一执行环境的运行时。

Description

用于多核处理器的远程认证
本申请是于2018年5月31日向国际局提出、优先权日为2017年6月25日、于2019年12月24日进入中国国家阶段、国家申请号为201880042490.8、发明名称为“用于多核处理器的远程认证”的中国发明专利申请的分案申请。
背景技术
物联网(“IoT”)通常是指能够通过网络进行通信的设备系统。该设备可以包括日常用品,诸如烤面包机、咖啡机、恒温器系统、洗衣机、干衣机、灯、汽车等。网络通信可用于设备自动化、数据捕获、提供警报、设置个性化以及许多其他应用。
发明内容
提供本发明内容以简化形式介绍概念的选择,这些概念将在下面的具体实施方式中进一步描述。本发明内容既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
简要地说,所公开的技术通常针对软件的鉴别。在该技术的一个示例中,私有认证密钥被存储在硬件中。在一些示例中,在顺序引导过程期间,按照软件级被顺序引导的次序,计算多个软件级的每个软件级的哈希。可以将多个软件级的每个软件级的哈希加密地附加到累积寄存器。累积寄存器可用于证明软件级的有效性。多个软件级可以包括第一引导加载器、用于多核处理器的第一核的运行时、以及用于多核处理器的第二核的第一执行环境的运行时。
在阅读和理解附图和描述之后,将理解所公开技术的其他方面和应用。
附图说明
参考以下附图描述本公开的非限制性和非穷举性示例。在附图中,除非另外指明,否则贯穿各个附图,类似的附图标记指代类似的部分。这些附图不一定按比例绘制。
为了更好地理解本公开,将参考以下具体实施方式,该具体实施方式将结合附图进行阅读,在附图中:
图1是示出了可以在其中采用本技术的各个方面的合适环境的一个示例的框图;
图2是示出了根据所公开的技术的各个方面的合适的计算设备的一个示例的框图;
图3是示出了系统的示例的框图;
图4是示出了图3的多核处理器的示例的框图;以及
图5A-5B是示出了根据本公开的各个方面的用于多核处理器的远程认证的示例过程的流程图。
具体实施方式
以下描述提供了具体细节,以用于对技术的各种示例的透彻理解和实现针对技术的各种示例的描述。本领域技术人员将理解,可以在没有许多这些细节的情况下实践该技术。在某些情况下,没有示出或详细描述众所周知的结构和功能,以避免不必要地使技术示例的描述不清楚。旨在以本公开中使用的术语以其最广泛的合理方式来解释,即使其与该技术的某些示例的详细描述结合使用。尽管以下可能会强调某些术语,旨在以任意受限的方式解释的任意术语将被明显地并且具体地定义,如在“具体实施方式”部分中。在整个说明书和权利要求书中,除非上下文另外指出,否则以下术语至少具有本文明确关联的含义。以下标识的含义不一定限制这些术语,而仅提供这些术语的示意性示例。例如术语“基于”和“根据”中的每一个都不是排他的,并且等效于术语“至少部分地基于”,并且包括基于其他因素的选项,其中一些可能在本文中未描述。作为另一个示例,术语“经由”不是排他的,并且等效于术语“至少部分地经由”,并且包括经由附加因素进行的选项,其中一些可能在本文中未描述。“在...中”的含义包括“在...中”和“在...上”。本文使用的短语“在一个实施例中”或“在一个示例中”不一定指相同的实施例或示例,尽管它可以。特定的文本数字标记的使用并不意味着存在值较小的数字标记。例如记载“从由第三foo和第四bar组成的组中选择的小部件”本身并不意味着存在至少三个foo,也不意味着存在至少四个bar元素。单数形式的引用仅是为了阅读的清楚,并且包括复数引用,除非特别地排除了复数引用。除非另外明确指出,否则术语“或”是包含性的“或”运算符。例如短语“A或B”表示“A、B或A和B”。如本文所使用的,术语“组件”和“系统”旨在涵盖硬件、软件或硬件和软件的各种组合。因此,例如系统或组件可以是过程、在计算设备上执行的过程、计算设备、或其一部分。
简要地说,所公开的技术通常针对软件的鉴别。在该技术的一个示例中,私有认证密钥被存储在硬件中。在一些示例中,在顺序引导过程期间,按照顺序引导软件级的次序,计算多个软件级的每个软件级的哈希。可以将多个软件级的每个软件级的哈希加密地附加到累积寄存器。累积寄存器可用于证明软件级的有效性。多核处理器可用于IoT设备和其他上下文中。在一些示例中,多核处理器可以为IoT设备提供网络连接,以及各种其他功能,包括硬件和软件安全性、受监视的操作系统、加密功能、外围设备控制、遥测和/或类似功能。
当具有多核处理器的IoT设备连接到网络以接收IoT服务时,IoT服务可以首先请求认证,以便于证明多核处理器上的软件没有受到损害。IoT服务可能由此发出挑战。
在一些示例中,多核处理器可以包括具有响应于重启而被重置为零的值的累加寄存器,并且对累加寄存器的值的修改限于加密地将值附加至累积寄存器或其他方式的操作。例如该值的加密附加将寄存器的当前值替换为根据例如寄存器的“当前”值与“待附加数据”的级联或其他组合计算出的加密哈希。该哈希可以是单向哈希,例如使得哈希和为其生成哈希的数据的一部分通常不足以恢复为其生成哈希的数据的另一部分。
在一些示例中,在引导期间,基于与深度防御层次结构相对应的信任链,顺序引导软件级。在一些示例中,当顺序引导每个软件级时,取得软件级的哈希,并且将该哈希加密地附加到累积寄存器。
多核处理器可以用包括累积寄存器的值的响应来响应认证挑战。此外,在某些示例中,使用私有认证密钥对挑战的响应进行签名。IoT服务可以接收对挑战的响应,证明累积寄存器的值正确,并使用公共认证密钥来验证签名。
示意性设备/操作环境
图1是可以在其中实践技术各方面的环境100的图。如图所示,环境100包括经由网络130连接的计算设备110以及网络节点120。即使在图1中示出了环境100的特定组件,在其他示例中,环境100也可以包括附加的和/或不同的组件。例如在某些示例中,环境100还可以包括网络存储设备、维护管理器和/或其他合适的组件(未示出)。图1中所示的计算设备110可以在各种位置,包括在处所、在云中等。例如计算机设备110可以在客户端侧、在服务器侧等。
如图1所示,网络130可以包括一个或多个网络节点120,一个或多个网络节点120将多个计算设备110互连,并将计算设备110连接到外部网络140,例如因特网或内联网。例如网络节点120可以包括交换机、路由器、集线器、网络控制器或其他网络元件。在某些示例中,计算设备110可以被组织成机架、动作区域、组、集合或其他合适的分区。例如在所示的示例中,计算设备110被分组为分别标识为第一、第二和第三主机集合112a-112c的三个主机集合。在所示示例中,主机集合112a-112c中的每一个分别可操作地耦合到对应的网络节点120a-120c,其通常被称为“机架顶部”或“TOR”网络节点。TOR网络节点120a-120c然后可以可操作地耦合到附加网络节点120,以形成分层、平面、网状或允许计算设备110与外部网络140之间的通信的其他合适类型的拓扑的计算机网络。在其他示例中,多个主机集合112a-112c可以共享单个网络节点120。计算设备110实际上可以是任意类型的通用或专用计算设备。例如这些计算设备可以是诸如台式计算机、膝上型计算机、平板计算机、显示设备、照相机、打印机或智能电话的用户设备。但是,在数据中心环境中,这些计算设备可以是服务器设备,诸如应用服务器计算机、虚拟计算主机计算机或文件服务器计算机。此外,计算设备110可以被单独地配置为提供计算,存储和/或其他合适的计算服务。
在一些示例中,计算设备110中的一个或多个是IoT设备,包括IoT集线器的一部分或全部的设备,包括应用后端的一部分或全部的设备等,如在下面更详细地讨论。
示意性计算设备
图2是图示其中可实践本技术的各个方面的计算设备200的一个示例的图。计算设备200实际上可以是任意类型的通用或专用计算设备。例如计算设备200可以是诸如台式计算机、膝上型计算机、平板计算机、显示设备、照相机、打印机或智能电话的用户设备。同样地,计算设备200也可以是服务器设备,诸如应用服务器计算机、虚拟计算主机计算机或文件服务器计算机,例如计算设备200可以是图1的计算设备110或网络节点120的示例。计算设备200也可以是连接到网络以接收IoT服务的IoT设备。同样,计算机设备200可以是图3至图5B中示出或参考其的设备的任意示例设备,如下面更详细地讨论的。如图2所示,计算设备200包括处理电路210、操作存储器220、存储器控制器230、数据存储存储器250、输入接口260、输出接口270和网络适配器280。计算设备200的这些先前列出的组件中的每一个包括至少一个硬件元件。
计算设备200包括至少一个处理电路210,该至少一个处理电路210被配置为执行指令,诸如用于实现本文描述的工作负载、处理或技术的指令。处理电路210可以包括微处理器、微控制器、图形处理器、协处理器、现场可编程门阵列、可编程逻辑器件、信号处理器或适合于处理数据的任意其他电路。处理电路210是核的示例。前述指令以及其他数据(例如数据集、元数据、操作系统指令等)可以在计算设备200的运行时期间被存储在操作存储器220中。操作存储器220还可以包括各种数据存储设备/组件中的任意一种,诸如易失性存储器、半易失性存储器、随机存取存储器、静态存储器、高速缓存、缓冲区或用于存储运行时信息的其他介质。在一个示例中,当计算设备200断电时,操作存储器220不保留信息。相反,作为引导或其他加载过程的一部分,计算设备200可以被配置为将指令从非易失性数据存储组件(例如数据存储组件250)转移到操作存储器220。在一些示例中,可以采用其他形式的执行,诸如直接从数据存储存储器250执行,例如现场执行(XIP)。
操作存储器220可以包括第四代双倍数据速率(DDR4)存储器、第三代双倍数据速率(DDR3)存储器、其他动态随机存取存储器(DRAM)、高带宽存储器(HBM)、混合存储器立方体存储器、3D-堆叠式存储器、静态随机存取存储器(SRAM)、磁阻随机存取存储器(MRAM)、伪静态随机存取存储器(PSRAM)或其他存储器,并且此类存储器可以包括集成到DIMM、SIMM、SODIMM、已知合格晶片(KGD)或其他封装上的一个或多个存储器电路。可以根据通道、存储排(rank)和存储体(bank)来组织这样的操作存储器模块或设备。例如操作存储器设备可以经由存储器控制器230在通道中被耦合到处理电路210。计算设备200的一个示例可包括每个通道一个或两个DIMM,其中每个通道一个或两个存储排。存储排内的操作存储器可以使用共享时钟、共享地址和命令总线进行操作。而且,操作存储器设备可以被组织为几个存储体,其中存储体可以被认为是由行和列寻址的阵列。基于操作存储器的这种组织,操作存储器内的物理地址可以由通道、存储排、存储体、行和列的元组来引用。
尽管进行了上述讨论,但是操作存储器220特别地不包括或不涵盖通信介质、任意通信介质或任意信号本身。
存储器控制器230被配置为将处理电路210对接到操作存储器220。例如存储器控制器230可以被配置为在操作存储器220和处理电路210之间对接命令、地址和数据。存储器控制器230也可以被配置为从处理电路210或为处理电路210抽象化或以其他方式管理存储器管理的某些方面。尽管将存储器控制器230示为与处理电路210分离的单个存储器控制器,但在其他示例中,可以采用多个存储器控制器,一个或多个存储器控制器可以与操作存储器220集成等。此外,可以将存储器控制器集成到处理电路210中。这些和其他变型是可能的。
在计算设备200中,数据存储存储器250、输入接口260、输出接口270和网络适配器280通过总线240被对接到处理电路210。尽管图2将总线240示为单个无源总线,但诸如总线的集合、点对点链路的集合、输入/输出控制器、桥、其他接口电路或其任意集合的其他配置也可以适当地用于将数据存储存储器250、输入接口260、输出接口270、或网络适配器280对接到处理电路210。
在计算设备200中,数据存储存储器250用于长期非易失性数据存储。数据存储存储器250可以包括各种非易失性数据存储设备/组件中的任意一个,诸如非易失性存储器、磁盘、磁盘驱动器、硬盘驱动器、固态驱动器或可以用于信息的非易失性存储的任意其他介质。然而,数据存储存储器250具体地不包括或不涵盖通信介质、任意通信介质或任意信号本身。与操作存储器220相反,计算设备200将数据存储存储器250用于非易失性长期数据存储,而不是用于运行时数据存储。
此外,计算设备200可以包括或耦合到任意类型的处理器可读介质,诸如处理器可读存储介质(例如操作存储器220和数据存储存储器250)和通信介质(例如通信信号和无线电波)。尽管术语处理器可读存储介质包括操作存储器220和数据存储存储器250,但是在整个说明书和权利要求中,术语“处理器可读存储介质”无论是以单数还是复数使用,都在本文中被定义,使得该术语“处理器可读存储介质”具体排除并且不涵盖通信介质、任意通信介质或任意信号本身。但是,术语“处理器可读存储介质”的确涵盖处理器高速缓存、随机存取存储器(RAM)、寄存器存储器和/或类似物。
计算设备200还包括输入接口260,其可以被配置为使计算设备200能够从用户或其他设备接收输入。另外,计算设备200包括输出接口270,其可以被配置为提供来自计算设备200的输出。在一个示例中,输出接口270包括帧缓冲器、图形处理器、图形处理器或加速器,并且被配置为绘制用于在单独的视觉显示设备(诸如监视器、投影仪、虚拟计算客户端计算机等)上呈现的显示。在另一个示例中,输出接口270包括视觉显示设备,并且被配置为绘制和呈现用于观看的显示。在又一个示例中,输入接口260和/或输出接口270可以包括通用异步接收器/发送器(“UART”)、串行外围设备接口(“SPI”)、集成电路间(“I2C”)、通用输入/输出(GPIO)和/或类似物。此外,输入接口260和/或输出接口270可以包括或被对接到任意数量或类型的外围设备。
在所示的示例中,计算设备200被配置为经由网络适配器280与其他计算设备或实体进行通信。网络适配器280可以包括有线网络适配器,例如以太网适配器、令牌环适配器或数字订户线路(DSL)适配器。网络适配器280还可包括无线网络适配器,例如Wi-Fi适配器、蓝牙适配器、ZigBee适配器、长期演进(LTE)适配器、SigFox、LoRa、电力线或5G适配器。
尽管示出了具有以特定布置配置的某些组件的计算设备200,但是这些组件和布置仅仅是其中可以采用该技术的计算设备的一个示例。在其他示例中,数据存储存储器250、输入接口260、输出接口270或网络适配器280可以直接耦合到处理电路210,或者可以经由输入/输出控制器、桥或其他接口电路被耦合到处理电路210。该技术的其他变化是可能的。
计算设备200的一些示例包括适于存储运行时数据的至少一个存储器(例如操作存储器220)和适于执行处理器可执行代码的至少一个处理器(例如处理单元210),该处理器可执行代码响应于执行,使计算设备200能够执行动作。
示意性系统
图3是图示系统(300)的示例的框图。系统300可以包括网络330、均连接至网络330的IoT支持服务351、IoT设备341和342以及应用后端313。术语“IoT设备”是指旨在利用IoT服务的设备。IoT设备实际上可以包括连接到云以使用IoT服务的任意设备,包括用于遥测收集或任意其他目的。IoT设备包括可以连接到网络以利用IoT服务的任意设备。IoT设备可以包括日常对象,诸如烤面包机、咖啡机、恒温器系统、洗衣机、烘干机、灯、汽车等。IoT设备还可以包括例如“智能”建筑物中的各种设备,包括灯、温度传感器、湿度传感器、占用传感器等。IoT设备的IoT服务可用于设备自动化、数据捕获、提供警报和/或设置的个性化。但是,上述列表仅包括IoT服务的许多可能用户中的一些。无论是否在本文中讨论这样的应用,可以将这些服务用于众多其他应用或与众多其他应用结合使用。
应用后端313是指一个设备或多个设备,诸如分布式系统,其执行能够实现数据收集、存储和/或基于IoT数据采取的动作的动作,包括用户访问和控制、数据分析、数据显示、数据存储的控制、基于IoT数据采取的自动动作和/或类似物。在一些示例中,由应用后端采取的动作中的至少一些动作可以由在应用后端313中运行的应用执行。
术语“IoT支持服务”是指一个或多个设备,诸如分布式系统,在某些示例中,IoT设备在网络上连接到一个或多个设备用于IoT服务。在某些示例中,IoT支持服务是IoT集线器。在某些示例中,排除了IoT集线器,并且IoT设备直接或通过一个或多个中介与应用后端通信,而没有包括IoT集线器,并且应用后端中的软件组件作为IoT支持服务操作。IoT设备通过与IoT支持服务的通信来接收IoT服务。
IoT设备341和342中的每个,和/或包括IoT支持服务351和/或应用后端313的设备,可以包括图2的计算设备200的示例。术语“IoT支持服务”是不限于一种特定类型的IoT服务,而是指IoT设备在配置后通信的设备,用于至少一种IoT解决方案或IoT服务。也就是说,在整个说明书和权利要求书中使用的术语“IoT支持服务”对于任意IoT解决方案都是通用的。术语IoT支持服务仅指已配置的IoT设备与其通信的IoT解决方案/IoT服务的一部分。在一些示例中,IoT设备与一个或多个应用后端之间的通信用IoT支持服务作为中介而发生。IoT支持服务在云中,而IoT设备是边缘设备。说明书中的图3和图3的相应描述出于说明的目的图示了示例系统,其不限制本公开的范围。
IoT设备341和342中的一个或多个可以包括多核处理器345。每个多核处理器345可以具有使用跨核验证和秘密设备密钥的多个突变的安全引导机制,其中顺序引导使用与多核处理器345的纵深防御层次结构相对应的信任链,如下文更详细地讨论的。
网络330可以包括一个或多个计算机网络,包括有线和/或无线网络,其中每个网络可以是例如无线网络、局域网(LAN)、广域网(WAN)、和/或全球网络,诸如因特网。在互连的LAN集合,包括基于不同层次结构和协议的LAN,路由器充当LAN之间的链路,从而使消息能够从一个被发送到另一个。此外,LAN内的通信链路通常包括双绞线或同轴电缆,而网络之间的通信链路可能利用模拟电话线,包括T1、T2、T3和T4的完整或部分专用数字线、综合业务数字网(ISDN)、数字订户线路(DSL)、包括卫星链路的无线链路、或本领域技术人员已知的其他通信链路。此外,远程计算机和其他相关电子设备可以经由调制解调器和临时电话链路远程连接到LAN或WAN。本质上,网络330包括信息可以通过其在IoT支持服务351,IoT设备341和342以及应用后端313之间行进的任意通信方法。尽管每个设备或服务都显示为连接到网络330,但并没有表示每个设备都与所示的其他设备通信。在一些示例中,所示的某些设备/服务仅经由一个或多个中间设备与所示的某些其他设备/服务通信。另外,其他网络330被示为一个网络,在一些示例中,网络330可以替代地包括可以彼此连接或可以不彼此连接的多个网络,其中所示的设备中的一些通过多个网络中的一个网络彼此通信,而所示的设备中的其他设备与多个网络中的不同网络彼此通信。
作为一个示例,IoT设备341和342是旨在利用由IoT支持服务提供的IoT服务的设备,在一些示例中,IoT支持服务包括诸如IoT支持服务351的一种或多种IoT支持服务。应用后端313包括执行向IoT设备的用户提供设备门户的动作的一个设备或多个设备。
在一些示例中,作为连接过程的一部分和/或在任意其他消息、工作或信息被交换之前,IoT支持服务351可以请求和/或要求IoT设备尝试连接到IoT支持服务351以远程认证在IoT设备上运行的软件的有效性。远程认证可用于在认证完成时证明IoT设备中多核处理器中的软件是否有效。
系统300可以包括比图3所示更多或更少的设备,图3仅以示例的方式示出。
此外,图3示出了用于多核处理器的一个示例应用,即在IoT设备中使用。除了在IoT设备和/或IoT上下文中之外,多核处理器345还可以在各种其他合适的应用和上下文中使用。
示意性多核处理器
图4是示出了具有纵深防御层次结构的多核处理器445的示例的图。图4和说明书中的图4的对应描述出于示例性目的图示了示例处理器,所述示例处理器不限制本公开的范围。
在一些示例中,多核处理器445使其中包括多核处理器445的设备能够作为诸如图3的IoT设备341或342的IoT设备进行操作。在一些示例中,多核处理器445可以具有至少4MB的RAM和至少4MB的闪存。但是,这仅是一种可能的实现的示例。其他处理器可以包括更少或更多的RAM和/或闪存的各种组合。在一些示例中,多核处理器445不仅提供网络连接,而且还提供各种其他功能,包括硬件和软件安全性、受监视的操作系统、加密功能、外围设备控制、遥测和/或类似功能。另外,多核处理器445可以包括用于允许以安全的方式引导设备、允许安全地更新设备、确保设备上正在运行适当的软件、允许设备正确地用作IoT和/或类似物的技术。
在一些示例中,多核处理器445被如下布置。多核处理器445包括安全复合体469、安全微控制器(MCU)460、通用CPU 470、至少一个输入/输出(I/O)MCU 480、和无线电核490。安全MCU 460可以包括安全MCU只读存储器(ROM)461、安全MCU第一引导加载器462、和安全MCU运行时463。CPU470可以是应用处理器,应用处理器包括:安全世界(SW)运行时471、以管理员模式运行的普通世界操作系统(OS)472、普通世界用户模式服务473和普通世界用户模式应用474。每个I/O MCU 480可以包括MCU服务481和MCU应用482。无线电核490可以包括无线电固件491。
在一些示例中,安全复合体469是多核处理器469中的信任的硬件根。在一些示例中,安全复合体469被直接连接到安全MCU460。在一些示例中,安全MCU 460具有非常高的信任程度,但是不如安全复合体469那么受信任。在这些示例中,安全MCU 460控制需要非常高的信任程度的一个或多个功能。在一个示例中,安全MCU 460控制多核处理器445和/或IoT设备的功率。
在某些示例中,CPU 470运行高级操作系统。在一些示例中,CPU 470具有两个独立的执行环境:安全世界(SW)运行时471和普通世界执行环境。术语“安全世界”广泛用于指代受信任的环境,并且不限于特定的安全特征。在一些示例中,CPU 470的安全世界运行时471也是系统的可信计算库的一部分。然而,在一些示例中,CPU 470的安全世界运行时471不能访问核安全复合体469的内部,并且依赖于安全MCU运行时463以用于特定的安全敏感操作。
CPU 470的普通世界执行环境可以被配置为具有对诸如存储器的片上资源的有限访问。在一些示例中,在该环境中运行的代码仍必须满足安全性和质量的某些(例如相对较高的)标准,但是与在安全MCU 460上运行的代码或在CPU 470上在安全世界运行时471中运行的代码相比,不那么受信任。
在一些示例中,I/O MCU核480不如安全MCU 460和CPU 470受到信任,并且因此,在某些示例中,CPU的安全世界环境负责配置多核处理器445的防火墙以限制I/O MCU 480对片上资源的访问。
在一些示例中,无线电核490执行供应商提供的固件。无线电核490可以提供到因特网和诸如IoT服务的云服务的无线电功能和连接性。在一些示例中,无线电核490可以经由Wi-Fi、蓝牙和/或其他连接技术来提供通信。但是,与I/O MCU 480一样,在某些示例中,CPU 470负责配置防火墙,以限制无线电核490对片上资源的访问。在一些示例中,无线电核490不具有对未加密秘密的任意访问权,并且不能够损害安全MCU 460或CPU 470的执行。
在一些示例中,每个独立的执行环境由在单独的执行环境中执行的单个软件组件管理,该单独的执行环境称为执行环境的“双亲”。在这样的示例中,一个例外可能是信任的硬件根(本文示例中为安全性复合体469)没有双亲。在一个特定示例中,每个双亲在与其管理的环境至少一样受信任的环境中执行。在其他示例中,可以采用其他合适的安全手段。管理操作可以包括引导和恢复目标环境,监视和处理目标环境中的重置以及配置目标环境的访问策略。在某些情况下,某些管理操作是由双亲以外的组件执行的。例如在一些示例中,CPU的普通世界是管理I/O MCU 480,但是从CPU安全世界运行时471接收帮助来这样做的环境(例如配置防火墙以及对I/O MCU 480的开始指令进行编程)。
例如在一些示例中,安全MCU运行时473管理安全世界运行时472,安全世界运行时471中的组件管理普通世界OS 472,普通世界OS 472中的组件管理普通世界用户模式服务473和应用474,并且普通世界用户模式服务473管理I/O MCU 480和无线电核490。
在一些示例中,不仅由来自更受信任的执行环境的软件组件管理独立的执行环境,而且不同的功能被分配给不同的独立执行环境,其中更敏感的功能被分配给更受信任的独立执行环境。在一个特定示例中,比其被分配给的独立执行环境更不受信任的独立执行环境被限制访问该功能。通过这种方式,独立的执行环境可以基于信任层次结构来实现纵深防御。在其他示例中,可以采用其他合适的安全手段。
例如在一些示例中,安全复合体469在层次结构的顶部,并且被分配给秘密(例如加密密钥),安全MCU运行时463在层次结构中的下一个,并且被分配用于控制功率,安全世界运行时471在该层次结构中的下一个,并被分配用于存储和用于对实时时钟(RTC)的写访问;普通世界OS 472在层次结构中的下一个,并且被分配用于管理无线电功能;普通世界用户模式应用474在层次结构中的下一个,并且被分配给应用,并且I/O MCU 480在层次结构的底部,并分配给外围设备。在其他示例中,功能以不同的方式被分配给独立的执行环境。
在一些示例中,信任层次结构的每个级别,除了层次结构的底部(即,最不信任)级别之外,例如在实现对其所处理软件的支持方面,都具有用于接受或拒绝来自不太受信任级别的任何请求的完全控制,并且具有用于从不那么受信任的级别评估限制或审核请求,并验证来自较低级别的请求以确保请求正确和真实。同样,如前所述,在某些示例中,除最高(即,最受信任)级别之外的层次结构的每个级别都有双亲,该双亲负责管理较低(即,不那么受信任)级别,包括监视较低级别的软件并确保较低级别的软件正确运行。
在一些示例中,层次结构的各层利用安全通信通道和防火墙。例如,在一些示例中,安全MCU运行时471具有两个消息队列,其被配置为使得基于硬件,队列之一仅可以在安全世界中被使用,而一个队列可以在普通世界中被使用。在一个特定示例中,如果消息来自安全世界队列,则基于硬件,该消息必须来自安全世界,并且因此比来自普通世界的消息更受信任。在其他示例中,可以采用其他合适的安全手段。
另外,在一些示例中,除了层次结构的最高层之外,在没有层次结构的更高级别已验证该层的情况下,层次结构的任何层都不会开始,并且在验证该层之后,允许该层开始。同样,在这些示例中,层次结构的层具有例如在任意时间用于停止层次结构的任意较低级别的能力。因此,在这些示例中,就停止、开始和运行层次结构的较低级别而言,多核处理器445具有层次结构的每一层的软件能力,这些软件能力在层次结构的较低(即,不太受信任)的级别上具有完全优势。
在一些示例中,安全复合体469是信任的硬件根以及纵深防御的信任层次结构的最高、最受信任级别。在一些示例中,安全复合体469包含密钥、秘密、加密引擎和/或类似物。在一些示例中,安全复合体469存储秘密,执行诸如密钥生成、加密、解密、哈希、其他加密功能、其他与安全相关的功能等的功能。在一些示例中,安全复合体469能够检查存储在单向可写存储器中的秘密值,诸如电子保险丝、一次性可编程元件等。
在某些示例中,当多核处理器445通电并且其功率管理单元(PMU)具有稳定的功率时,PMU将安全复合体469从重置中释放出来。在一些示例中,安全复合体469是多核处理器445的受信任计算基础的核。在一些示例中,核安全复合体469驱动安全引导过程。在一个特定示例中,核被限制执行代码,直到安全复合体469使之能够执行代码为止。在其他示例中,可以采用其他合适的安全手段。
在一些示例中,为了避免到闪存的未检测到的运行时写导致在安全MCU 460上执行的不受信任的代码的可能性,未在安全MCU 460上使用就地执行(XiP)。在一个特定示例中,相反,ROM 461和运行时463确保在安全MCU 460上执行的代码从闪存被复制到安全MCU460的私有SRAM中并在执行之前进行验证。在其他示例中,可以采用其他合适的安全手段。
在某些示例中,安全MCU 460不包含存储器管理单元(MMU),但确实包含可用于提供某些保护措施的存储器保护单元(MPU),诸如控制可读性、可写性和物理地址空间各部分的可执行性。MPU可以这种方式使用,例如将堆栈和存储器映射的闪存标记为不执行。
在一些示例中,安全MCU ROM 461负责初始化足够多的多核处理器445,以便在闪存中存储的第一片软件可以在安全MCU 460上安全地执行。
在一些示例中,在输入时,安全MCU ROM 461中的代码等待以下指示:安全MCU 460已完成初始化,读取指示设备安全状态的电子保险丝,配置锁相环(PLL)以设置所需的稳态时钟频率,并启用闪存的存储器映射(例如,对于所有核)。在一些示例中,尽管安全MCU 460不直接从闪存执行代码,但是它确实利用该机制来将数据从闪存读取和复制到其SRAM。
在这些示例中,在完成该配置之后,ROM 461中的代码负责将控制加载并转移到安全MCU引导加载器462,该安全MCU引导加载器462是安全MCU 460的第一级引导加载器。在一些示例中,在闪存中在已知位置找到加密和签名的安全MCU引导加载器462。在这些示例中,ROM代码验证该代码,并将其加载到安全MCU 460的私有SRAM中。在某些示例中,安全MCU引导加载器462包含在多核处理器445上执行的非ROM代码的第一条指令,以及是固定大小(例如16k)的原始二进制。在一些示例中,安全MCU引导加载器462负责加载、验证控制并将控制转移到安全MCU运行时463,设置设备的软件密钥存储,实现用于重新编程闪存的低级“恢复模式”(用于开发目的,并且还可能用于现场更新-适当地受保护),应用更新/回滚,并在安全MCU 460中配置和引导安全看门狗定时器(直到安全MCU运行时463取得控制)。
在这些示例中,非常类似于之前的ROM代码,安全MCU引导加载器462在闪存中定位安全MCU运行时代码,验证代码,将代码加载到安全MCU 460的私有SRAM中,并将控制转移到代码。在一些示例中,一旦安全MCU引导加载器462已经以这种方式转移了执行,安全MCU引导加载器462将不会重新获得控制,并且在安全MCU引导加载器462已经完成执行之后,安全MCU引导加载器462将不会保持驻留在安全MCU 460的SRAM中。
在一些示例中,安全MCU运行时463负责管理CPU的安全世界环境。在一些示例中,安全MCU还负责管理和控制功率域和其他关键组件,例如正确设置其他核的调试启用信号,供电或断电多核处理器445上的不同域,重新配置和引导安全MCU 460的自己的看门狗定时器(接管安全的MCU引导加载器),配置CPU 470的看门狗定时器并响应其重置中断,并唤醒已经被断电但接收到中断的核(CPU 470或I/O MCU 480)。在一些示例中,安全MCU运行时463负责监视CPU 470的安全世界运行时471,以确保安全世界运行时471正在正确运行并重置安全世界运行时471。
安全MCU运行时463与安全复合体469交互以请求核安全复合体469执行与核安全复合体469相关联的任务。例如安全MCU运行时463可以请求安全复合体469提取密钥或请求该安全复合体469用提取的密钥处理某些某物,以请求安全复合体469生成PIN号,以请求由安全性复合体469加密某物并将加密后的版本返回到安全MCU运行时463等。在一些示例中,安全MCU运行时463本质上充当用于安全复合体469的操作系统。
CPU 470上的安全世界可以具有创建私有独立执行环境的信任区,该专用独立执行环境受到硬件保护而不受多核处理器445的其余部分的影响。安全世界可以具有运行时,安全世界运行时471。在一些示例中,CPU 470上的安全世界环境是多核处理器445的受信任计算基础的一部分,并且因此不执行第三方代码。例如安全世界可能有其自己的内核和用户模式进程。安全世界运行时471可能负责保护多核处理器445上的安全敏感的硬件资源,安全地公开对这些资源的有限访问,并且充当CPU 470的普通世界OS 472、普通世界用户服务473和普通世界应用474的普通事件环境的看门狗。例如在某些示例中,安全世界运行时471负责监视普通世界OS 472,确保普通世界OS 472正确运行,以及重置普通世界OS 472。在一些示例中,安全世界运行时471负责将请求从无法访问安全MCU 463运行时的层转发到安全MCU 463运行时。
在一些示例中,CPU 470不包含ROM代码;相反,CPU 470包含8字节的易失性存储器,其中包含第一指令,以便在退出重置后执行该指令。在这些示例中,在CPU 470退出重置之前,安全MCU 460对8字节易失性存储器进行编程,以包含到从共享SRAM执行的CPU安全世界运行时471的第一指令的分支。在一些示例中,CPU 470被配置为使得在安全世界运行时471中执行的代码从被配置为普通世界472-474不可访问的一系列SRAM中执行。
在某些示例中,安全世界运行时471还负责在CPU 470上引导普通世界环境,将运行时服务公开给在普通世界中运行的软件,访问实时时钟(RTC),I/O MCU 480管理API,无线电核490管理API,管理普通世界无法访问的硅组件(并且不需要由安全MCU 460进行管理),以宏模式与闪存控制器进行交互,对CPU安全世界471的直接存储器访问(DMA)引擎进行编程,所有防火墙的配置,核I/O映射的配置,处理指示违反防火墙的中断,使I/O MCU480和无线电490核退出重置,为I/O MCU 480核配置看门狗定时器,配置实时时钟(RTC),并管理某些软件组件的更新。由于安全世界还包含多个硬件模式(即,管理员模式、用户模式),因此安全世界运行时471可以在内部跨越多个模式,以用于附加的纵深防御。
在一些示例中,安全世界运行时471在信任/纵深防御层次结构中的安全-MCU运行时463以下,但是在层次结构中的普通世界OS 472之上操作。在这些示例中,尽管安全-MCU运行时463可以例如请求核安全复合体469生成PIN号,但是安全世界运行时471不能生成PIN号。同样,在这些示例中,尽管安全MCU运行时463可以访问功率,但是安全世界运行时471却没有。但是,在这些示例中,安全世界运行时471负责管理存储装置,并且安全世界运行时471下面的层次结构的各个层无法访问存储装置。
如所讨论的,在一些示例中,CPU 470的安全世界环境是CPU 470的受硬件保护的私有执行环境。除安全世界环境之外,CPU 470的其余软件环境是普通世界环境。在一些示例中,有一些安全世界可以读取但普通世界不能读取的寄存器。普通世界环境可以包括管理员模式和用户模式。CPU 470的普通世界环境的管理员模式可以包括普通世界OS472。CPU470的普通世界环境的用户模式可以包括普通世界用户服务473和普通世界用户应用474。
在一些示例中,普通世界OS 472负责管理普通世界用户应用474的资源。在某些示例中,普通世界OS 472负责管理无线电功能,以及在层次结构上在层普通世界OS 472下方(即,与层普通世界OS 472相比不受信任)的层不能直接访问无线电功能,而是可以经由普通世界OS 472间接访问无线电功能。
在一些示例中,在CPU普通世界用户空间中,运行的用户服务集合473负责:引导I/O MCU 480(在安全世界运行时471的帮助下),引导无线电核490(在安全世界运行时471的帮助下),将设备遥测发布到IoT服务,将诊断信息发布到IoT服务,从IoT服务接收和应用软件更新,以及处理来自I/O MCU 480看门狗定时器的重置中断。
在一些示例中,CPU设备API在内部利用普通世界用户运行时服务473,并抽象地为在CPU(在普通世界中)上托管的第三方应用代码提供对以下功能的访问:发布设备遥测,发布诊断信息,与I/O MCU 480通信,控制和向外围设备发出I/O以及应用代码。在一些示例中,多核处理器445的产品制造商和其他客户可以编写第三方代码以在普通世界中的CPU470上执行。在一些示例中,该代码能够使用CPU设备API,并且可以与在I/O MCU 480上执行的I/O运行时协调。
在一些示例中,多核处理器445包含旨在用于感测和致动的两个“I/O”MCU 480。在这些示例中的一些示例中,两个I/O MCU 480都不包含任意ROM代码。相反,在这些示例中,每个I/O MCU 480包含在特定物理地址处被映射的8字节易失性存储器。当I/O MCU 480开始执行时,它可以从该地址获取其初始指令。在使每个I/O MCU 480退出重置之前,CPU 470可以对8字节易失性存储器进行编程,以包含从闪存到I/O MCU加载程序XiP的第一条指令的分支。
在一些示例中,公司可以使用I/O MCU 480微控制器来包括其现有微控制器上的代码,这可以允许公司用多核处理器445替换其现有微控制器功能。
在一些示例中,多核处理器445的无线电堆栈在由生产芯片的硅供应商编程的无线电核490上执行。
尽管图4示出了多核处理器445的特定示例,但是多核处理器445的许多其他示例也是可能的。例如独立执行环境的数量和类型在不同的示例中可能有所不同。在一些示例中,多核处理器445具有至少两个具有不同能力的通用核,使得多核处理器445具有异构核。在一个示例中,具有不同能力的至少两个通用核可以至少是微控制器和CPU,而在其他示例中,使用具有不同能力的其他通用核。这两个核是通用的,因为任意合适的代码都可以在核上运行。例如MCU微控制器和CPU是通用核,而图形处理单元(GPU)并不是通用核;相反,GPU用于处理特定类型的计算,并且可以运行某些类型的执行。尽管多核处理器445中的两个核都是通用的,并且每个核都可以运行任意合适的代码,但是它们具有彼此不同的能力。尽管CPU和MCU微控制器都是通用核,但CPU通常比MCU更为强大,并且可以执行MCU微控制器无法执行的指令。这只是具有不同功能的两个通用核的示例。尽管本文讨论了诸如CPU和MCU的特定核,但在其他示例中,也可以采用其他通用核,诸如任意通用CPU、微控制器等。而且,在各种示例中可以采用各种数量的核。
此外,在各种示例中,可以将不同的功能分配给层次结构的不同级别。例如在图4所示的多核处理器445的示例中,与管理存储装置的功能相比,控制功率的功能被分配给层次结构中更受信任的级别。但是,在其他示例中,与控制功率的功能相比,管理存储装置的功能被分配给层次结构中更受信任的级别。
多核处理器445可以使用安全密钥存储库来存储密钥和其他秘密。例如安全密钥存储库中的某些密钥可以用于验证对软件的签名,例如以确保软件是真实有效的。
在一些示例中,当多核处理器445被供电时并且其PMU具有稳定的功率时,PMU从重置释放安全性复合体469。在一些示例中,安全MCU ROM 461负责初始化足够的多核处理器445,以便存储在闪存中的第一片软件可以在安全MCU 460上安全地执行。在一些示例中,安全MCU ROM 461上的ROM代码等待安全MCU 460已完成初始化的指示,读取指示设备安全状态的电子保险丝,配置PLL以设置时钟频率,并启用闪存的存储器映射(例如针对所有核)。
在这些示例中,在完成该配置之后,MCU ROM 461中的代码负责将控制加载并转移到安全MCU引导加载器462,该安全MCU引导加载器462是安全MCU 460的第一级引导加载器。在一些示例中,第一引导加载器被存储在闪存中。在一些示例中,第一引导加载器被加密并用作为公钥/私钥对的一部分的全局私钥签名。在一些示例中,MCU ROM 461中的代码读取第一引导加载器。在一些示例中,MCU ROM 461中的ROM代码计算第一引导加载器的哈希,并使用全局公钥来证明第一引导加载器。在一些示例中,响应于证明,MCU ROM 461中的代码使第一引导加载器被加载到安全MCU ROM 460的私有SRAM中并被引导。
在一些示例中,第一引导加载器的签名的验证提供了第一引导加载器是真实和/或有效的保证。尽管可以使用全局私钥对第一引导加载器进行签名,但由于多种原因,包括公开风险,但并非所有软件都需要使用全局私钥进行签名。此外,某些设备被设计使得在设备生命周期期间不应更改第一引导加载器。然而,其他软件可以被设计为例如在现场,在部署之后等被更新,并且可以将该其他软件的更新与用于这种更新的软件的新签名相关联。因此,代替使用全局私钥对所有软件进行签名,可以使用许多不同的密钥。然而,在一些示例中,安全MCU ROM 461存储全局公钥,但是不存储验证软件所需的所有其他密钥。
因此,安全密钥存储库可以用于保护用于验证软件签名的其他密钥。在某些示例中,安全密钥存储库位于闪存中。在一些示例中,安全密钥存储库用突变密钥加密和/或签名,该突变密钥可以如下导出。
在一些示例中,每个多核处理器445具有秘密的、唯一的、按设备的密钥。在某些示例中,按设备的密钥是存储在硬件中的高级加密标准(AES)密钥。在一些示例中,可以以特定的授权方式使用按设备的密钥,包括生成按设备密钥的突变,但是例如,因为存储按设备密钥的硬件不允许软件读取按设备密钥,所以可能不允许软件读取按设备密钥本身。相反,硬件可以允许执行特定的授权动作。在一些示例中,在引导第一引导加载器之后,安全MCUROM 460基于第一引导加载器的哈希来突变按设备密钥,以导出第一突变密钥。安全MCUROM 460可以使第一突变密钥存储在安全MCU ROM 460的私有SRAM中。对密钥进行突变可以互换地称为密钥派生或执行密钥派生功能。第一突变密钥可以是确定性的,因为它是由第一引导加载器生成的,在某些示例中,第一引导加载器在多核处理器445的生命周期期间中不会更改。
接下来,在一些示例中,第一引导加载器被引导。
第一引导加载器可以基于第一突变密钥和随机种子来生成第二突变密钥。第二突变密钥可以用于安全密钥存储库的加密、解密、签名和/或验证。
在设备的初始/第一次引导中,密钥、哈希和其他秘密可以被确定,并被存储在安全密钥存储库闪存中,并用第二突变密钥加密和/或签名。其中用于验证在安全MCU运行时之后引导的软件级的密钥可以存储在安全密钥存储库中。因此,在初始引导时,安全密钥存储库可以在闪存上创建,并用第二突变密钥加密和/或签名。在一些示例中,如上所述,随机种子用于在初始引导时派生第二突变密钥,并且该随机种子被存储并且不是秘密的。因此,在一些示例中,在随后的引导中,闪存包含安全密钥存储库,该安全密钥存储库可以用第二突变密钥解密和/或验证。同样,在某些示例中,在后续引导中,应生成与初始引导相同的第二突变密钥,因为按设备的密钥应与初始引导相同,并且第一引导加载器的哈希应与初始引导相同,并使用相同的随机种子。
除了如上所述生成第二突变密钥之外,第一引导加载器还可以根据第一密钥以及单独的对应持久性和经验证的随机数来生成一个或多个其他突变密钥。接下来,在一些示例中,第一引导加载器在闪存中定位安全MCU运行时463代码,读取安全MCU运行时463代码,并计算安全MCU运行时463代码的哈希。在一些示例中,安全MCU运行时463计算安全世界运行时471的哈希。在一些示例中,第一引导加载器加密和/或签名(使用第二突变密钥)闪存中的安全密钥存储库中安全MCU运行时463的哈希,并将安全MCU运行时463的哈希存储在闪存中。在某些示例中,第一引导加载器完成执行。在第一引导加载器完成执行之后,直到多核处理器445重新引导之后,第一突变密钥才可用。
在一些示例中,安全世界运行时471加密和/或签名(使用第二突变密钥)安全密钥存储库闪存中的普通世界OS的哈希,并且将安全密钥存储库闪存中的普通世界OS的哈希存储在闪存中。
在一些示例中,普通世界OS 472加密和/或签名(使用第二突变密钥)来自在闪存中安全密钥存储库中的普通世界用户应用474的哈希,并且将来自在闪存中安全密钥存储库中的普通世界用户应用474的哈希存储在闪存中。
在一些示例中,当前软件级的哈希计算和签名对于其余级以类似的方式继续进行。
在后续引导中,如先前所讨论的,在一些示例中,第二突变密钥被重新生成并用于解密安全密钥存储库。在一些示例中,在重新生成第二突变的密钥之后,第一引导加载器在闪存中定位安全MCU运行时463代码,读取安全MCU运行时463代码,并计算安全MCU运行时463代码的哈希。
在一些示例中,在第一引导加载器已经计算了安全MCU运行时463代码的哈希之后的后续引导上,第一引导加载器从闪存中的安全密钥存储库读取并且解密和/或验证存储在安全密钥存储库中的安全MCU运行时463代码的哈希。在一些示例中,第一引导加载器然后验证安全MCU运行时463。验证可以包括将在该引导期间计算出的MCU运行时463代码的哈希与安全MCU运行时463代码的存储哈希进行比较,并使用安全MCU运行时463的公钥来验证安全MCU运行时463的签名。在某些示例中,安全MCU运行时463的公钥被存储在硬件中,而后续软件级的公钥被存储在安全密钥存储库中。在一些示例中,响应于对安全MCU运行时463的验证,第一引导加载器将安全MCU运行时463加载到私有SRAM中,并将控制转移到安全MCU运行时463代码,从而导致安全MCU运行时463被引导。
在一些示例中,每个后续级以相似的方式顺序引导,其中每个级由其信任层次结构中的双亲顺序地验证和引导。例如MCU运行时463可以负责验证和引导安全世界运行时471,安全世界运行时471可以负责验证和引导普通世界OS 472,普通世界OS 472可以负责验证和引导普通世界用户应用474,并且普通世界用户应用474可以负责验证一个或多个I/O MCU 480。
例如在一些示例中,安全MCU运行时463计算安全世界运行时471的哈希。在一些示例中,安全MCU运行时463从闪存中的安全密钥存储库中读取并解密和/或验证公共安全世界运行时公钥和安全世界运行时471代码的哈希。然后,安全MCU运行时463可以验证安全世界运行时471。验证可以包括将该引导期间计算出的安全世界运行时471的哈希与存储的安全世界运行时471代码的哈希进行比较,并使用安全MCU运行时公钥来验证安全世界运行时471的签名。在一些示例中,响应于安全世界运行时471的验证,安全MCU运行时463将安全世界运行时471加载到私有SRAM中,并使安全世界运行时471被引导。
在一些示例中,安全世界运行时471从闪存中的安全密钥存储库中读取并且解密和/或验证普通世界OS公钥和普通世界OS 472代码的哈希。在一些示例中,安全世界运行时471然后验证普通世界OS472。验证可以包括将在该引导期间计算出的普通世界OS 472的哈希与普通世界OS 472代码的存储哈希进行比较,并使用普通世界OS公钥来验证普通世界OS472的签名。在某些示例中,响应于对普通世界OS 472的验证,安全世界运行时471将普通世界OS 472加载到SRAM中以用于CPU 470的安全世界,并使普通世界OS 472被引导。
在一些示例中,对于要被引导的其余级以类似方式,继续进行顺序验证和引导,其中每个级由其信任层次结构中的双亲顺序地进行验证和引导,并且突变密钥从安全密钥存储库中被读取,然后使用第二突变密钥解密和/或验证。
在任意验证级期间,由于该软件不是真实的,该软件已损坏,攻击者试图闯入该设备等,验证可能会失败。在某些示例中,如果验证在任意级失败,则既不会引导该级也不会引导任意后续级,并且擦除存储器(SRAM)中的任意密钥、哈希和/或密秘。第一突变密钥的使用也可能受到限制,例如用于其他密钥的生成。在该示例中,一旦生成其他密钥,就可以例如通过清除存储该第一突变密钥的寄存器来擦除该第一突变密钥。
在一些示例中,设备可以被设计为使得安全MCU 460ROM代码和第一引导加载器不旨在被更新。但是,其他软件/级可能会在设备生命周期期间更新一次或多次,并且有些可能会频繁更新。在一些示例中,在更新期间,在更新本身之前,安全世界首先证明挂起的更新,并对更新的代码进行哈希。在一些示例中,安全MCU运行时463然后在闪存中更新将要更新的任意级的哈希和密钥,并为任意更新的级生成签名。
在一些示例中,安全密钥存储库还可以用于存储其他秘密,包括用户提供的秘密,诸如网络凭证,或要保护免受潜在攻击者攻击的其他信息。在一些示例中,这些附加秘密可以被存储在闪存中的安全密钥存储库中,也可以用第二突变密钥加密和/或签名。
在引导完成之后,多核处理器445可以例如经由与诸如图3的IoT支持服务351的IoT支持服务的通信而在用于IoT服务的网络上进行通信。在一些示例中,IoT支持服务351可能会请求和/或要求包含多核处理器445的IoT设备作为连接过程的一部分和/或在任意其他消息、工作或信息可以被交换之前远程认证IoT设备或多核处理器445上运行的软件的有效性。远程认证可用于证明IoT设备中的软件/在多核处理器上执行的软件是否有效。作为一个示例,IoT支持服务351可以响应于连接请求、对IoT服务的请求或来自IoT设备的其他通信,通过网络向多核处理器445将发送挑战。
在一些示例中,此外,安全MCU 460中的硬件通过使用安全MCU 460中的硬件中的私有认证密钥存储库以及安全MCU 460中的两个寄存器(在某些示例中称为DR0和DR1)来生成对挑战的响应。
在某些示例中,私有认证密钥由安全MCU 460存储在硬件中,并且访问受制于安全MCU460。在某些示例中,私有认证密钥是公钥/私钥对的一部分,并且IoT支持服务351具有与私有认证密钥相对应的公共认证密钥。
在一些示例中,寄存器DR1是完全可读且可写的寄存器。在一些示例中,寄存器DR0是累积寄存器。在某些示例中,DR0的值是可读的,不是秘密的。在某些示例中,设备重新引导时,DR0的值重置为零(或其他一些默认值)。在一些示例中,对DR0寄存器的值的修改限于将值密秘地附加到DR0寄存器的操作。
在一些示例中,如先前所讨论的,在多核处理器445的安全引导期间,顺序地引导各个级,其中每个级都由信任层次结构中的其双亲进行验证和引导。例如在一些示例中,如上所述,安全ROM 461负责引导第一引导加载器,第一引导加载器负责引导MCU运行时463,MCU运行时463负责下次引导安全世界运行时471,安全世界运行时471可能负责下次引导普通世界OS 472,普通世界OS 472可能负责下次引导普通世界用户应用474,而普通世界用户应用474可能负责下次引导一个或多个I/O MCU 480。
如上所述,在引导每个软件级之前或与每个软件级结合,可以对该软件级进行哈希。例如可以在引导第一引导加载器之前或与引导第一引导加载器结合地生成第一引导加载器的哈希,可以在引导MCU运行时463之前或与引导MCU运行时463结合生成MCU运行时463的哈希,可以在引导安全世界运行时471之前或与引导安全世界运行时471结合生成安全世界运行时471的哈希,可以在引导普通世界OS 472之前或与引导普通世界OS 472结合生成普通世界OS 472的哈希,依此类推。还可能为在安全引导过程期间引导的后续软件级生成哈希。在一些示例中,当为每个软件级生成哈希时,该软件级的哈希被加密地附加到累积寄存器DR0。
引导之后,多核处理器445可能尝试与IoT服务进行通信,并且可能会收到挑战以作为响应。在一些示例中,响应于挑战,安全MCU 460中的多核处理器445硬件生成对挑战的响应。挑战可以存储在寄存器DR1中。在一些示例中,对挑战的响应包括DR0值和DR1值,其中DR1值是挑战。在一些示例中,对挑战的响应也由安全MCU 460中的硬件使用设备的私有认证密钥来签名。在一些示例中,对安全MCU 460中的硬件生成的挑战的响应然后从多核处理器445发送到IoT支持服务。
IoT支持服务可以证明对挑战的响应,包括证明值和验证签名。来自响应的DR0值可用于证明多核处理器445具有IoT支持服务期望该设备正在执行的软件。在某些示例中,IoT支持服务具有正确的值,该值对应于多核处理器应执行的每个软件级的哈希。可以验证签名以证明响应来自多核处理器,而不是来自另一方。
在一些示例中,如果签名是有效的,则可以认为是通过加密地附加每个引导的软件级的哈希来如所期望地计算出对挑战的响应中的DR0值的验证。
图4示例地示出了多核处理器的一个特定示例,可以对其采用远程认证。远程认证也可以用于多核处理器的其他示例。图4示出了示例,该示例包括具有硬件信任根的安全MCU、执行安全世界环境和普通世界环境的CPU、以及具有较低信任级别的其他MCU。本文示例中,安全MCU是被引导的第一核,其后是CPU(具有在“普通世界”执行环境之前引导的安全世界执行环境),然后是其他MCU。除了仅以示例的方式给出的图4的特定示例之外,其他示例可以包括其他核和/或其他信任层次结构。
在一些示例中,多核处理器445包括至少两个核,该至少两个核包括至少第一通用核和第二通用核,其中第一和第二通用核具有不同的能力,并且根据与信任层次结构相对应的信任链顺序地引导,其中通用核中的一个通用核比另一个通用核更受信任,其中更受信任的通用核在更不受信任的通用核之前被验证和引导。核不必对应于图4所示的特定核,这只是一个示例。
图5A-5B是示出了用于多核处理器的远程认证的示例过程的流程图,该示例过程可以由诸如图3和/或图4的多核处理器的多核处理器来执行。
在所示的示例中,步骤581首先发生。在一些示例中,在步骤581,私有认证密钥被存储在硬件中。如图所示,在一些示例中,步骤582接下来发生。在一些示例中,在步骤582,第一软件级被读取。如图所示,在一些示例中,接下来发生步骤583。在一些示例中,在步骤583,计算当前软件级的哈希。如图所示,在一些示例中,步骤584接下来发生。在步骤584,在一些示例中,将当前软件级的计算出的哈希加密地附加到累积寄存器以更新累积寄存器的值。
如图所示,在一些示例中,判定步骤585接下来发生。在某些示例中,在判定步骤585,做出是否所有软件级都已被引导的确定。如果不是,则在一些示例中,过程进行到步骤586。在一些示例中,在步骤586,读取要引导的下一个软件级。如图所示,在一些示例中,该过程然后移至步骤583。在一些示例中,要被引导的软件级至少包括第一引导加载器、用于第一核的运行时以及用于第二核的第一执行环境的运行时。
如果取而代之的是在判定步骤585的确定是肯定的,则在某些示例中接下来发生步骤587。在一些示例中,在步骤587,接收到挑战。如图所示,在一些示例中,接下来发生步骤588。在一些示例中,在步骤588,生成对挑战的响应,使得对挑战的响应包括挑战和累积寄存器的值,并且使得该响应由私有认证密钥签名。如图所示,在一些示例中,步骤589接下来发生。在一些示例中,在步骤589,发送对挑战的响应。然后,该过程可以进行到返回框,在该处恢复其他处理。
结论
尽管以上具体实施方式描述了该技术的某些示例,并且描述了预期的最佳模式,但是无论以上在文本中出现的多么详细,都可以以多种方式实践该技术。细节可以在实现中变化,同时仍然被本文描述的技术所涵盖。如上所述,当描述技术的某些特征或方面时使用的特定术语不应被理解为暗示该术语在本文中被重新定义为限于与该术语相关联的任意特定的特性、特征或方面。通常,除非具体实施方式中明确定义了这些术语,否则不应将所附权利要求中使用的术语解释为将本技术限制于本文公开的特定示例。因此,该技术的实际范围不仅涵盖所公开的示例,而且包括实践或实现该技术的所有等效方式。

Claims (20)

1.一种装置,包括:
多核处理器,包括第一核、第二核和适于存储运行时数据的至少一个存储器,其中所述第一核是物理核,所述第二核是与所述第一核分离的另一物理核,并且其中所述第一核适于执行处理器可执行代码,所述处理器可执行代码响应于执行而使所述装置执行操作,所述操作包括:
顺序地引导用于所述装置的多个软件级,包括针对所述多个软件级中的每个软件级:
将与所述软件级相关联的值加密地附加到累积寄存器,作为所述累积寄存器的值的更新,其中所述多个软件级包括第一引导加载器、用于所述多核处理器的所述第一核的运行时、以及用于所述多核处理器的所述第二核的第一执行环境的运行时。
2.根据权利要求1所述的装置,其中所述多个软件级还包括用于所述第二核的第二执行环境的操作系统。
3.根据权利要求1所述的装置,其中所述操作还包括:
将挑战存储在另一寄存器中。
4.根据权利要求1所述的装置,其中所述累积寄存器被置为使得所述累积寄存器的所述值被硬件限制为按照以下枚举方式中的一个方式而被改变:响应于所述多核处理器的重新引导而被重新设置为默认值,并且将哈希加密地附加到所述累积寄存器的当前值而被改变。
5.根据权利要求1所述的装置,其中所述操作还包括:
作出针对IoT服务的请求,其中挑战响应于所述请求而被接收。
6.根据权利要求1所述的装置,其中所述第一核和所述第二核是具有不同能力的通用核,并且其中所述第一核和所述第二核被配置为具有纵深防御层次结构,所述纵深防御层次结构中的所述第一核在所述纵深防御层次结构中的所述第二核之上。
7.根据权利要求1所述的装置,其中顺序引导的次序对应于纵深防御层次结构。
8.根据权利要求1所述的装置,其中所述第一核是安全微控制器,并且其中所述第二核是中央处理单元。
9.一种方法,包括:
顺序地引导用于多核计算设备的多个软件级,包括针对所述多个软件级中的每个软件级:
将与所述软件级相关联的值加密地附加到寄存器,作为所述寄存器的值的更新,其中所述多个软件级包括第一引导加载器、用于所述多核设备的第一核的运行时、以及用于所述多核设备的第二核的第一执行环境的运行时,其中所述第一核是物理核,并且其中所述第二核是与所述第一核分离的另一物理核。
10.根据权利要求9所述的方法,其中所述多个软件级还包括用于所述第二核的第二执行环境的操作系统。
11.根据权利要求9所述的方法,还包括:
将挑战存储在另一寄存器中。
12.根据权利要求9所述的方法,还包括:
作出对IoT支持服务的请求,其中挑战响应于所述请求而被接收。
13.根据权利要求9所述的方法,其中所述第一核和所述第二核是具有不同能力的通用核,并且其中所述第一核和所述第二核被配置为具有纵深防御层次结构,所述纵深防御层次结构中的所述第一核在所述纵深防御层次结构中的所述第二核之上。
14.根据权利要求9所述的方法,其中顺序引导的次序对应于纵深防御层次结构。
15.一种设备,包括:
存储器和处理器,其中所述存储器和所述处理器分别被配置为存储和执行指令,所述指令用于使所述设备执行操作,所述操作包括:
由所述设备接收用以认证在所述设备上执行的多个软件级的有效性的请求;以及
响应于所述请求,传送表示所述多个软件级的加密签名的值,所述值已经通过分别与所述多个软件级中的软件级相关联的值顺序附加而被生成,其中所述多个软件级包括:用于所述网络连接的设备的第一核的运行时、以及用于所述网络连接的设备的第二核的执行环境的操作系统;所述第一核是物理核,其中所述第二核是与所述第一核分离的另一物理核。
16.根据权利要求15所述的设备,其中所述多个软件级还包括用于所述设备的引导加载器。
17.根据权利要求15所述的设备,其中所述加密签名的值与所述多个软件级的顺序引导结合地被生成,并且其中所述多个软件级中的至少一个软件级由所述多个软件级中的另一软件级引导。
18.根据权利要求15所述的设备,其中所述操作还包括:
作出针对IoT服务的请求,其中用以认证所述有效性的所述请求响应于针对所述IoT服务的所述请求而被接收。
19.根据权利要求15所述的设备,其中所述设备包括第一核和第二核,其中所述第一核和所述第二核是具有不同能力的通用核,并且其中所述第一核和所述第二核被配置为具有纵深防御层次结构,所述纵深防御层次结构中的所述第一核在所述纵深防御层次结构中的所述第二核之上。
20.根据权利要求15所述的设备,其中所述顺序附加的次序对应于针对所述设备的执行环境的纵深防御层次结构。
CN202311288031.7A 2017-06-25 2018-05-31 用于多核处理器的远程认证 Pending CN117349818A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/632,380 2017-06-25
US15/632,380 US10503892B2 (en) 2017-06-25 2017-06-25 Remote attestation for multi-core processor
CN201880042490.8A CN110785759B (zh) 2017-06-25 2018-05-31 用于多核处理器的远程认证
PCT/US2018/035236 WO2019005396A1 (en) 2017-06-25 2018-05-31 REMOTE ATTESTATION FOR MULTI-CORE PROCESSOR

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201880042490.8A Division CN110785759B (zh) 2017-06-25 2018-05-31 用于多核处理器的远程认证

Publications (1)

Publication Number Publication Date
CN117349818A true CN117349818A (zh) 2024-01-05

Family

ID=62683489

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201880042490.8A Active CN110785759B (zh) 2017-06-25 2018-05-31 用于多核处理器的远程认证
CN202311288486.9A Pending CN117349819A (zh) 2017-06-25 2018-05-31 用于多核处理器的远程认证
CN202311288031.7A Pending CN117349818A (zh) 2017-06-25 2018-05-31 用于多核处理器的远程认证

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN201880042490.8A Active CN110785759B (zh) 2017-06-25 2018-05-31 用于多核处理器的远程认证
CN202311288486.9A Pending CN117349819A (zh) 2017-06-25 2018-05-31 用于多核处理器的远程认证

Country Status (4)

Country Link
US (3) US10503892B2 (zh)
EP (1) EP3646223A1 (zh)
CN (3) CN110785759B (zh)
WO (1) WO2019005396A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180139090A1 (en) * 2016-11-15 2018-05-17 John Geiger Method for secure enrollment of devices in the industrial internet of things
US10708061B2 (en) 2017-06-25 2020-07-07 Microsoft Technology Licensing, Llc Secure key storage for multi-core processor
US10771450B2 (en) * 2018-01-12 2020-09-08 Blackberry Limited Method and system for securely provisioning a remote device
US11068598B2 (en) * 2018-11-01 2021-07-20 Dell Products L.P. Chassis internal device security
GB2578628B (en) * 2018-11-01 2021-09-15 Trustonic Ltd Device attestation techniques
US10346614B1 (en) * 2019-03-01 2019-07-09 Hajoon Ko Security system and method for internet of things
WO2021067510A1 (en) * 2019-09-30 2021-04-08 Intel Corporation Methods and apparatus to attest objects in edge computing environments
CN111565110B (zh) * 2020-05-09 2022-03-04 西安电子科技大学 基于ro puf多核系统的统一身份认证系统及方法
US11449278B2 (en) * 2020-09-04 2022-09-20 Netapp, Inc. Methods for accelerating storage operations using computational network and storage components and devices thereof
CN112732295B (zh) * 2020-12-31 2022-11-01 东风汽车集团有限公司 一种基于多核ECU的Boot loader刷写方法、电子设备及存储介质
US11698969B1 (en) * 2021-06-25 2023-07-11 Amazon Technologies, Inc. Boot security of integrated circuit device
CN114398216B (zh) * 2022-02-15 2022-11-15 深圳市航顺芯片技术研发有限公司 链路控制方法、装置、系统、设备及可读存储介质

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6990579B1 (en) * 2000-03-31 2006-01-24 Intel Corporation Platform and method for remote attestation of a platform
US6996544B2 (en) 2002-02-27 2006-02-07 Imagineer Software, Inc. Multiple party content distribution system and method with rights management features
WO2006082985A2 (en) 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Methods and apparatus for providing a secure booting sequence in a processor
US7613921B2 (en) * 2005-05-13 2009-11-03 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US8291226B2 (en) 2006-02-10 2012-10-16 Qualcomm Incorporated Method and apparatus for securely booting from an external storage device
US20070288761A1 (en) 2006-06-09 2007-12-13 Dale Jason N System and method for booting a multiprocessor device based on selection of encryption keys to be provided to processors
US8397299B2 (en) 2006-09-14 2013-03-12 Interdigital Technology Corporation Method and system for enhancing flow of behavior metrics and evaluation of security of a node
US8688986B2 (en) 2006-12-27 2014-04-01 Intel Corporation Method for exchanging strong encryption keys between devices using alternate input methods in wireless personal area networks (WPAN)
CN101034991B (zh) * 2007-04-06 2011-05-11 中兴通讯股份有限公司 安全引导系统及方法、代码签名构造方法及认证方法
CN101038556B (zh) * 2007-04-30 2010-05-26 中国科学院软件研究所 可信引导方法及其系统
US7853780B2 (en) 2008-07-31 2010-12-14 Oracle America, Inc. Core initialization code validation
US8615788B2 (en) 2009-08-12 2013-12-24 International Business Machines Corporation Method and apparatus for scalable integrity attestation in virtualization environments
EP2360611B1 (en) 2010-01-22 2014-09-10 ST-Ericsson SA Secure environment management during switches between different modes of multicore systems
CN101848082B (zh) 2010-05-27 2012-08-22 华南理工大学 一种基于线性几何的等级群组密钥管理方法
US8812871B2 (en) 2010-05-27 2014-08-19 Cisco Technology, Inc. Method and apparatus for trusted execution in infrastructure as a service cloud environments
US8782435B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time using control flow signatures
CN104012030B (zh) 2011-12-21 2018-04-13 英特尔公司 用于保护对称加密密钥的系统及方法
US9524248B2 (en) * 2012-07-18 2016-12-20 Micron Technology, Inc. Memory management for a hierarchical memory system
KR20140073384A (ko) 2012-12-06 2014-06-16 삼성전자주식회사 보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 보안 부팅 방법
CN103914658B (zh) 2013-01-05 2017-02-22 展讯通信(上海)有限公司 终端设备的安全启动方法及终端设备
US9329943B2 (en) 2013-01-08 2016-05-03 Symantec Corporation Methods and systems for instant restore of system volume
US9075995B2 (en) * 2013-03-11 2015-07-07 Microsoft Technology Licensing, Llc Dynamically loaded measured environment for secure code launch
US9336010B2 (en) 2013-03-15 2016-05-10 Xilinx, Inc. Multi-boot or fallback boot of a system-on-chip using a file-based boot device
US9838291B2 (en) * 2013-08-02 2017-12-05 Cellos Software Ltd Multicore processing of bidirectional traffic flows
US20150121054A1 (en) * 2013-10-31 2015-04-30 Advanced Micro Devices, Inc. Platform Secure Boot
US9405912B2 (en) 2013-11-14 2016-08-02 Microsoft Technology Licensing, Llc Hardware rooted attestation
WO2015087365A1 (ja) * 2013-12-09 2015-06-18 三菱電機株式会社 情報機器
US9536094B2 (en) 2014-01-13 2017-01-03 Raytheon Company Mediated secure boot for single or multicore processors
US9443111B2 (en) 2014-02-28 2016-09-13 Seagate Technology Llc Device security using an encrypted keystore data structure
US9348997B2 (en) 2014-03-13 2016-05-24 Intel Corporation Symmetric keying and chain of trust
EP2962192B1 (en) 2014-05-09 2017-12-06 Huawei Technologies Co., Ltd. System and method thereof to optimize boot time of computers having multiple cpus
US9525668B2 (en) * 2014-06-27 2016-12-20 Intel Corporation Face based secure messaging
US9594927B2 (en) 2014-09-10 2017-03-14 Intel Corporation Providing a trusted execution environment using a processor
US20160124481A1 (en) 2014-10-31 2016-05-05 Qualcomm Incorporated Methods and systems for detecting undervolting of processing cores
WO2016073411A2 (en) 2014-11-03 2016-05-12 Rubicon Labs, Inc. System and method for a renewable secure boot
US9674162B1 (en) 2015-03-13 2017-06-06 Amazon Technologies, Inc. Updating encrypted cryptographic key pair
US9742568B2 (en) 2015-09-23 2017-08-22 Dell Products, L.P. Trusted support processor authentication of host BIOS/UEFI
US10057223B2 (en) 2015-09-26 2018-08-21 Intel Corporation Data protection keys
US9953167B2 (en) 2015-10-12 2018-04-24 Microsoft Technology Licensing, Llc Trusted platforms using minimal hardware resources
US10037266B2 (en) 2016-04-01 2018-07-31 Sony Interactive Entertainment America Llc Game stream fuzz testing and automation
US10313121B2 (en) 2016-06-30 2019-06-04 Microsoft Technology Licensing, Llc Maintaining operating system secrets across resets
CN106407156B (zh) * 2016-09-23 2018-11-23 深圳震有科技股份有限公司 一个bootrom引导多核cpu启动的方法及系统
US10223531B2 (en) 2016-12-30 2019-03-05 Google Llc Secure device state apparatus and method and lifecycle management
US10353779B2 (en) * 2017-05-05 2019-07-16 Dell Products L.P. Systems and methods for detection of firmware image corruption and initiation of recovery
US10346345B2 (en) 2017-05-26 2019-07-09 Microsoft Technology Licensing, Llc Core mapping
US10402567B2 (en) 2017-06-25 2019-09-03 Microsoft Technology Licensing, Llc Secure boot for multi-core processor
US10708061B2 (en) 2017-06-25 2020-07-07 Microsoft Technology Licensing, Llc Secure key storage for multi-core processor

Also Published As

Publication number Publication date
US11256797B2 (en) 2022-02-22
US10503892B2 (en) 2019-12-10
US11809544B2 (en) 2023-11-07
CN110785759A (zh) 2020-02-11
EP3646223A1 (en) 2020-05-06
US20220171841A1 (en) 2022-06-02
US20180373863A1 (en) 2018-12-27
CN110785759B (zh) 2023-09-29
WO2019005396A1 (en) 2019-01-03
CN117349819A (zh) 2024-01-05
US20200110869A1 (en) 2020-04-09

Similar Documents

Publication Publication Date Title
CN110785759B (zh) 用于多核处理器的远程认证
US11843705B2 (en) Dynamic certificate management as part of a distributed authentication system
EP3556080B1 (en) Secure iot device update
US10402567B2 (en) Secure boot for multi-core processor
CN110799979B (zh) 用于多核处理器的安全密钥存储
US20180285600A1 (en) Connected secure iot processor
US10715526B2 (en) Multiple cores with hierarchy of trust
EP3631667B1 (en) Flash recovery mode
US20230134324A1 (en) Managing storage of secrets in memories of baseboard management controllers
CN111989677B (zh) Nop雪橇防御

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