CN113515414B - 数据处理系统和非暂态机器可读介质 - Google Patents

数据处理系统和非暂态机器可读介质 Download PDF

Info

Publication number
CN113515414B
CN113515414B CN202110318379.0A CN202110318379A CN113515414B CN 113515414 B CN113515414 B CN 113515414B CN 202110318379 A CN202110318379 A CN 202110318379A CN 113515414 B CN113515414 B CN 113515414B
Authority
CN
China
Prior art keywords
pld
image
logic
management processor
management
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110318379.0A
Other languages
English (en)
Other versions
CN113515414A (zh
Inventor
G·罗森伯格
N·罗伯森
J·L·洛佩兹
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN113515414A publication Critical patent/CN113515414A/zh
Application granted granted Critical
Publication of CN113515414B publication Critical patent/CN113515414B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting 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]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2247Verification or detection of system hardware configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables
    • 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/3247Cryptographic 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
    • 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/2129Authenticate client device independently of the user

Abstract

本公开涉及可编程逻辑器件的验证,尤其涉及一种数据处理系统,包括:管理处理器;耦接到管理处理器的可编程逻辑器件(PLD);以及机器可读介质(MRM)。MRM包括PLD配置图像,该PLD配置图像用于用图像定义的逻辑配置PLD,其中,图像定义的逻辑包括自验证逻辑以及用于使得管理处理器能够与该自验证逻辑通信的图像定义的管理接口。MRM还包括基于PLD配置图像的加密签名。MR还包括PLD认证指令,这些PLD认证指令在被管理处理器执行时使得管理处理器经由管理接口从PLD检索PLD配置图像的地址,经由管理接口使用该地址从PLD检索PLD配置图像,经由管理接口从PLD检索加密签名,并且使用信任实体的加密密钥和加密签名对PLD配置图像进行认证。

Description

数据处理系统和非暂态机器可读介质
技术领域
本公开涉及数据处理系统和非暂态机器可读介质。
背景技术
数据处理系统(例如,服务器、个人计算机、智能电话等)可以包括具有可配置电路的组件。可以被称为“可配置”或“可编程”的电路的类型包括例如可编程逻辑阵列(PLA)电路、可编程阵列逻辑(PAL)电路、通用阵列逻辑(GAL)电路、复杂PLD(CPLD)电路、现场可编程门阵列(FPGA)电路等。具有可配置电路的组件也可以被称为“可编程逻辑器件”(PLD)。
用于对PLD进行编程或配置的数据可以被称为“配置图像”。当数据处理系统上电时,数据处理系统中的每个PLD可以自动加载其配置图像,从而根据由配置图像支配或定义的预定配置来配置该PLD的可编程部分。但是,与使用PLD相关联的一个风险是,其配置图像有可能被损坏。
为了增强数据处理系统的安全性和可靠性,可以对数据处理系统中的PLD进行验证。但是,以快速、可靠、高效、且免受篡改的方式验证PLD是一个挑战。例如,PLD可以包括标准接口(例如,串行外围接口(SPI)、内部集成电路(I2C)接口、联合调试行动组(JTAG)接口等),并且基板管理控制器(BMC)可以使用该标准接口来从PLD检索信息。但是,标准接口可能相对较慢,并且对于攻击者而言相对容易从标准接口截取流量。由于实现相对复杂、牵涉到大量信号线、以及支持的通信接口复杂等原因,标准接口还是相对低效的。
发明内容
一种数据处理系统,包括:管理处理器;可编程逻辑器件(PLD),所述PLD耦接到所述管理处理器;非暂态机器可读介质(MRM);所述MRM中的PLD配置图像,所述PLD配置图像用于用图像定义的逻辑配置所述PLD,其中,所述图像定义的逻辑包括自验证逻辑和图像定义的管理接口,所述图像定义的管理接口用于使得所述管理处理器能够与所述PLD中的所述自验证逻辑通信;所述MRM中的加密签名,所述加密签名基于所述PLD配置图像;以及所述MRM中的PLD认证指令,其中,所述PLD认证指令在由所述管理处理器执行时使得所述管理处理器:经由所述PLD的所述图像定义的管理接口,从所述PLD检索所述PLD配置图像的地址;使用所述PLD配置图像的所述地址,经由所述PLD的所述图像定义的管理接口从所述PLD检索所述PLD配置图像;经由所述PLD的所述图像定义的管理接口,从所述PLD检索所述加密签名;以及使用所述加密签名和信任实体的加密密钥,对所述PLD配置图像进行认证,其中:所述PLD的所述自验证逻辑包括读取状态寄存器;并且所述PLD认证指令在由所述管理处理器执行时,使得所述管理处理器通过经由所述图像定义的管理接口从所述PLD检索所述PLD配置图像的多个连续页面来从所述PLD检索所述PLD配置图像,其中,检索每个页面包括:向所述PLD的所述自验证逻辑发送读取请求,其中,所述读取请求包括要检索的页面的地址;在发送所述读取请求后,监视所述读取状态寄存器以确定读取数据是否就绪;以及响应于所述读取状态寄存器指示所述读取数据就绪,从所述PLD的所述自验证逻辑检索所述页面。
一种数据处理系统,包括:管理处理器;可编程逻辑器件(PLD),所述PLD耦接到所述管理处理器;非暂态机器可读介质(MRM);所述MRM中的PLD配置图像,所述PLD配置图像用于用图像定义的逻辑配置所述PLD,其中,所述图像定义的逻辑包括自验证逻辑和图像定义的管理接口,所述图像定义的管理接口用于使得所述管理处理器能够与所述PLD中的所述自验证逻辑通信;所述MRM中的加密签名,所述加密签名基于所述PLD配置图像;以及所述MRM中的PLD认证指令,其中,所述PLD认证指令在由所述管理处理器执行时使得所述管理处理器:经由所述PLD的所述图像定义的管理接口,从所述PLD检索所述PLD配置图像的地址;使用所述PLD配置图像的所述地址,经由所述PLD的所述图像定义的管理接口从所述PLD检索所述PLD配置图像;经由所述PLD的所述图像定义的管理接口,从所述PLD检索所述加密签名;以及使用所述加密签名和信任实体的加密密钥,对所述PLD配置图像进行认证,所述PLD与所述管理处理器经由管理总线耦接;所述PLD的所述图像定义的管理接口使得所述图像定义的逻辑能够:在PLD数据达到所述管理总线之前对所述PLD数据进行加密;对由所述PLD从所述管理总线接收的数据进行解密;所述管理处理器包括到所述管理总线的接口;并且所述管理处理器的所述接口使得所述管理处理器能够:在管理处理器数据到达所述管理总线之前对所述管理处理器数据进行加密;以及对从所述管理总线接收的PLD数据进行解密。
一种数据处理系统,包括:管理处理器;可编程逻辑器件(PLD),所述PLD耦接到所述管理处理器;非暂态机器可读介质(MRM);所述MRM中的PLD配置图像,所述PLD配置图像用于用图像定义的逻辑配置所述PLD,其中,所述图像定义的逻辑包括自验证逻辑和图像定义的管理接口,所述图像定义的管理接口用于使得所述管理处理器能够与所述PLD中的所述自验证逻辑通信;所述MRM中的加密签名,所述加密签名基于所述PLD配置图像;以及所述MRM中的PLD认证指令,其中,所述PLD认证指令在由所述管理处理器执行时使得所述管理处理器:经由所述PLD的所述图像定义的管理接口,从所述PLD检索所述PLD配置图像的地址;使用所述PLD配置图像的所述地址,经由所述PLD的所述图像定义的管理接口从所述PLD检索所述PLD配置图像;经由所述PLD的所述图像定义的管理接口,从所述PLD检索所述加密签名;以及使用所述加密签名和信任实体的加密密钥,对所述PLD配置图像进行认证,其中:所述管理处理器包括基板管理控制器(BMC);所述PLD包括片上系统(SoC);所述MRM包括第一MRM和第二MRM;所述第一MRM耦接到所述SoC中的硬化逻辑;所述第一MRM包括所述PLD配置图像和所述加密签名;所述第二MRM驻留在来自包括以下各项的群组的位置中:所述BMC内部;以及所述BMC外部;并且所述第二MRM包括所述PLD认证指令。
一种非暂态机器可读介质(MRM),包括:可编程逻辑器件(PLD)配置图像,所述PLD配置图像用于用图像定义的逻辑来配置数据处理系统的PLD,所述图像定义的逻辑包括图像定义的管理接口,所述图像定义的管理接口使得所述数据处理系统中的管理处理器能够与所述PLD中的所述图像定义的逻辑通信;以及加密签名,所述加密签名基于所述PLD配置图像;其中,所述图像定义的逻辑包括自验证逻辑,所述自验证逻辑用于使得所述管理处理器能够利用所述PLD的所述图像定义的管理接口以从所述PLD检索:所述PLD配置图像的地址;所述PLD配置图像;以及所述加密签名,其中:所述PLD包括耦接到所述MRM的硬化逻辑;所述图像定义的逻辑包括嵌入式随机存取存储器(ERAM);并且所述自验证逻辑使得所述PLD能够:经由所述硬化逻辑从所述MRM获取所述PLD配置图像的页面;以及将所述页面复制到所述图像定义的逻辑中的所述ERAM,并且其中:所述自验证逻辑包括所述管理处理器经由所述PLD的所述图像定义的管理接口能够访问的一组验证寄存器,以使得所述管理处理器能够从所述PLD检索所述PLD配置图像的多个连续页面;并且所述一组验证寄存器包括:读取地址寄存器,所述读取地址寄存器要由所述管理处理器用所述配置图像的期望页面的地址更新;读取状态寄存器,所述读取状态寄存器用于使得所述管理处理器能够确定读取数据何时就绪;以及读取数据寄存器,所述读取数据寄存器用于使得所述管理处理器能够在所述自验证逻辑已经经由所述硬化逻辑获取所述期望页面并且将所述期望页面复制到所述图像定义的逻辑中的所述ERAM后,从所述ERAM获取所述期望页面。
附图说明
图1是根据示例实施方式的具有PLD验证技术的数据处理系统的框图。
图2是示出根据示例实施方式的数据处理系统中用于验证PLD的过程的流程图。
图3是示出针对由数据处理系统中的管理处理器执行的操作、在图2的框216示出的操作的进一步细节的流程图。
图4是示出针对由数据处理系统中的PLD执行的操作、在图2的框216示出的操作的进一步细节的流程图。
图5是具有PLD验证技术的数据处理系统的框图。
图6是包括PLD配置图像和加密签名的机器可读介质的框图。
图7是包括在执行时使得数据处理系统的管理处理器对PLD配置图像进行认证的指令的机器可读介质的框图。
具体实施方式
如上所述,以快速、可靠、高效、以及免受篡改的方式验证PLD可能是一个挑战。诸如速度、可靠性、效率以及安全性等的属性可能与验证过程本身有关。它们还可能涉及创建能够执行这种验证过程的数据处理系统所需的开发工作。
不同的电子组件可能有不同的设计或模型。例如,将包括PLD的数据处理系统的制造商可以选择利用特定的PLD模型而不是其他PLD模型。不同的PLD模型可以使用不同的机制来访问它们各自的配置图像和签名。同样,如果数据处理系统将包括管理处理器,则制造商可以选择利用特定的管理处理器模型而不是其他管理处理器模型。
出于本公开的目的,数据处理系统的设计或模型包括将包括在该数据处理系统中的组件的设计或模型。数据处理系统的设计或模型也可以被称为“系统设计”。例如,一个系统设计可以为特定目的使用一个PLD模型,而不同的系统设计可以为相同目的使用不同的PLD模型。类似地,两种系统设计的不同可能在于,一种使用特定的管理处理器模型,另一种使用不同的管理处理器模型。
如果能够验证特定PLD模型的管理处理器将被实现为专用集成电路(ASIC),则创建该ASIC设计可能需要耗费大量的工程工作。这种设计可能不适于验证其他类型的PLD。然而,制造商可能希望生产具有许多不同设计——包括这些系统所使用的PLD设计有所不同的系统设计——的数据处理系统。因此,为每种不同的PLD设计设计不同的管理处理器设计可能需要消耗额外的工程工作。
类似地,如果能够验证特定PLD模型的管理处理器将被实现为微控制器,则可能需要耗费大量的工程工作来创建指令,这些指令在执行时将使得该微控制器能够验证PLD。微控制器可以包含一个或多个通用处理内核及各种子系统。在该一个或多个内核上执行的指令可以被称为“软件”,或者更具体地说是“固件”。制造商可以开发使得微控制器能够作为能够验证特定模型的PLD的管理处理器来操作的固件。例如,该固件可以对包括用于微控制器的子系统的各种参数的定制配置进行实例化。固件可以被开发用于特定系统设计。例如,可以定制固件以配置管理处理器的子系统用于验证特定模型的PLD。
然而,开发用于许多不同系统设计的固件可能是一种挑战。例如,将由管理处理器执行的固件可能是复杂的,并且针对每种不同的系统设计修改固件可能引入风险、引入额外负担、并且增加将管理处理器合并到最终系统设计中的时间。
本公开描述了一种有效且高效地验证数据处理系统中的一个或多个PLD的配置图像的方法。在一些示例中,数据处理系统包括管理处理器和PLD,该PLD具有用于与管理处理器通信的定制的图像定义的管理接口。例如,管理处理器可以是BMC,PLD可以是CPLD。
如本文所使用的,术语“BMC”是指使用传感器监视计算机系统的物理状态并通过独立的“带外”连接与管理系统通信的专用服务处理器。“计算机系统”可以指服务器计算机、用户计算机、或任何电子设备或电子设备的集合。BMC还可以通过输入/输出控制器(IOCTL)接口驱动器、表现状态转移(REST)应用程序接口(API)、或有助于BMC和应用程序之间的通信的一些其它系统软件代理与在OS级执行的应用程序通信。BMC可以在硬件级别访问位于计算机系统中的硬件组件。BMC可以直接修改硬件组件。BMC可以独立于该BMC所在的计算机系统的操作系统(OS)来操作。BMC可以位于要监视的计算机系统的主板或主电路板上。BMC被安装在受管计算机系统的主板上或以其他方式连接或附接到受管计算机系统的事实并不妨碍BMC被视为与执行OS的处理资源分离。BMC具有管理计算机系统的组件的管理功能。BMC的管理功能的示例可以包括以下各项的任意一项或某些组合:电源控制、热监视和控制、风扇控制、系统健康监视、计算机系统的远程访问、计算机系统的远程重引导、系统设置和部署、系统安全等。
在一些示例中,BMC可以为计算设备提供所谓的“熄灯”功能。熄灯功能可以允许诸如系统管理员的用户在计算机系统上执行管理操作,即使OS未安装或在计算机系统上不起作用。此外,在一些示例中,BMC可以使用辅助电源(例如,电池电源)运行;因此,计算机系统不必通电以允许BMC执行其操作。BMC提供的服务可以被认为是“带外”服务,因为OS可能没有运行,并且在某些情况下计算机系统可能断电或不能正常工作(例如,计算机系统经历了故障或硬件故障)。
BMC可以包括管理员或其他实体可以用来与BMC远程通信的通信接口诸如网络接口和/或串行接口。BMC可以通过专用管理信道(例如,通信接口)提供“带外”服务,并且无论计算机系统是否处于通电状态,“带外”服务都可用。
在一些示例中,数据处理系统还包括非易失性机器可读介质。该机器可读介质包含PLD配置图像,该PLD配置图像用图像定义的逻辑配置PLD。图像定义的逻辑包括自验证逻辑。图像定义的逻辑还包括图像定义的管理接口。图像定义的管理接口使得管理处理器能够与PLD中的自验证逻辑通信。
机器可读介质还包含由信任实体(例如,数据处理系统的制造商)基于PLD配置图像和该信任实体的加密密钥(例如,私钥)生成的加密签名。出于本公开的目的,术语“签名”表示加密签名,术语“密钥”表示加密密钥。此外,用于PLD的配置图像也可以被称为“配置比特流”,并且加密签名也可以被称为“签名块”。
机器可读介质还包括将由管理处理器执行的PLD认证指令(PAI)。当由管理处理器执行时,PLD认证指令使得管理处理器经由PLD的图像定义的管理接口从PLD检索PLD配置图像的地址。PLD认证指令还使得管理处理器使用PLD配置图像的地址来经由PLD的图像定义的管理接口从PLD检索PLD配置图像。PLD认证指令还使得管理处理器经由PLD的图像定义的管理接口从PLD检索签名。PLD认证指令还使得管理处理器使用信任实体的密钥(例如,数据处理系统的制造商的公共密钥)和该签名对PLD配置图像进行认证。因此,管理处理器可以验证PLD配置图像是该图像的批准版本(例如,来自制造商的未修改的官方版本)。如果PLD配置图像已损坏,则管理处理器可以采取补救措施。
在一些示例中,PLD的配置图像和相应的签名被存储在PLD内的非易失性存储器(NVS)中。在其它示例中,配置图像和相应的签名被存储在PLD外部的NVS中。例如,制造商可以在配置图像被生成后生成签名,作为数据处理系统的构建流的一部分。如果制造商随后更新配置图像,则制造商也更新签名。因此,数据处理系统中的管理处理器可以针对用于证明目的的签名使用配置图像的密码验证,以验证配置图像是来自制造商的配置图像的未修改的官方版本。
如果配置图像不为真,则管理处理器可以采取补救措施。例如,管理处理器可以禁用PLD,或者只要PLD受损,管理处理器可以防止数据处理系统中的中央处理单元(CPU)达到工作状态。因此,如果攻击者损坏了PLD的配置图像(例如,禁用安全特征),则管理处理器将阻止数据处理系统使用该PLD。
管理处理器可以使用快速、安全、灵活、且独立于供应商和PLD的设备模型的验证过程。
如下面更详细地描述的,在一些示例中,管理处理器一次从PLD检索PLD配置图像的一个页面。管理处理器还可以一次从PLD检索一个页面的对应签名。出于本公开的目的,术语“页面”是指特定大小的数据块。在一些示例中,管理处理器使用16字节的页面大小检索PLD配置图像和签名。在不同的示例中,页面的大小可以更小或更大。
图1是根据示例系统设计的具有PLD验证技术的数据处理系统110的框图。图1描绘了数据处理系统110的特定示例架构,尽管根据其他实施方式的数据处理系统的其他示例可以具有与图1中所示的架构不同的架构。例如,在一些示例中,数据处理系统可以包括多个CPU等。对于图1所示的实施方式,数据处理系统110包括连接到随机存取存储器(RAM)113的CPU 114。另外,数据处理系统110包括PLD 120和经由管理互连件117连接到PLD 120的管理处理器112。管理互连件117也可以被称为管理总线。在一些示例中,管理互连件117是定制的高速源同步互连件。
PLD 120包括硬化逻辑124,其是从启动到启动不会改变的电路系统。当数据处理系统110启动时,PLD 120从数据处理系统中的NVS检索配置图像172,并且PLD 120基于该配置图像在PLD 120内创建用户逻辑121。由于PLD中的用户逻辑是根据该PLD的配置图像来配置、编程、或定义的,用户逻辑也可以被称为“图像定义的逻辑”。在一些实施例中,配置图像172被存储在内部非易失性存储器(NVM)170中的PLD 120中。在一些实施例中,配置图像172存储在外部NVM 180中的PLD 120外部。NVM 170或NVM 180还可以包含对应于配置图像172的签名174。在一些示例中,硬化逻辑124使用SPI接口166来访问外部NVM 180。
用户逻辑121可以包括功能逻辑128。管理处理器112可以使用功能逻辑128与数据处理系统110的其他组件(例如,与CPU 114、RAM 113以及辅助设备176)通信。例如,管理处理器112可以使用功能逻辑128来监视和调整CPU 114的电源状态。
用户逻辑121还可以包括自验证逻辑122、辅助验证逻辑129以及管理接口126。由于管理接口126是由配置图像172定义的,所以管理接口126也可以被称为“图像定义的管理接口”。同样,用户逻辑121内的其它组件也可以被称为“图像定义的”。管理接口126使得管理处理器112能够与PLD 120的组件诸如自验证逻辑122通信。
在一些示例中,管理处理器112是微控制器、片上系统(SoC)、嵌入式处理器、或任何其他合适类型的处理器。在一些示例中,管理处理器112用作BMC。在一些实施例中,PLD120是CPLD。管理接口126也可以被称为“CPLD接口”(CIF)。因此,管理互连件117也可以被称为“CIF互连件”或“CIF总线”。
管理处理器112可以通过在管理互连件117上暴露出的PLD 120的一组验证寄存器130访问配置图像172和签名174来验证配置图像172。验证寄存器130可以是自验证逻辑122的一部分。自验证逻辑122中用于使得管理处理器112能够从PLD 120获取配置图像172和签名174的附加电路包括嵌入式RAM(ERAM)140和用于访问与PLD相关联的NVS的状态机150,诸如内部NVM 170或外部NVM 180。因此,状态机150也可以被称为NVS访问状态机(NASM)150。NASM 150包括命令序列表(CST)152。NASM 150使用CST 152使得硬化逻辑124将从指定地址开始的配置图像172的一部分加载到ERAM 140中。NASM 150能够这样做是因为NASM 150配置有适于与特定的硬化结构接口160交互的逻辑(包括CST 152),该硬化结构接口160使得硬化逻辑124中的组件能够与用户逻辑121中的组件通信或交互。
自验证逻辑122通过在来自管理处理器112的读取请求中指定数据的地址来使得管理处理器112能够从PLD 120获取数据。来自管理处理器(MP)112的读取请求也可以被称为“MP读取请求”。此外,自验证逻辑122使得管理处理器112能够从PLD 120获取配置图像172的起始地址和配置图像172的结束地址(或大小)。自验证逻辑122还使得管理处理器112能够从PLD 120获取签名174的起始地址和结束地址(或大小)。
具体地,在图1的示例中,验证寄存器130包括寄存器子集,该寄存器子集包含配置图像172的起始偏移、配置图像172的结束偏移、签名174的起始偏移以及签名174的结束偏移。该寄存器子集可以被称为“图像/签名地址寄存器”132。自验证逻辑122允许管理处理器112经由管理接口126读取那些寄存器。如图所示,验证寄存器130还包括读取地址寄存器134、读取状态寄存器136以及读取数据寄存器138。
在一些实施例中,不同的寄存器可以用于不同类型的值。在一些示例中,可以将单个寄存器划区为包含多种类型的值。例如,读取状态寄存器136可以被实现为寄存器内的特定位。出于本公开的目的,术语“寄存器”应该被理解为指代待完整的寄存器或寄存器的特定部分。
自验证逻辑122允许管理处理器(经由管理接口126)向读取地址寄存器134写入,以指定将从PLD 120读取的页面的地址。将期望地址写入读取地址寄存器134的操作可以被认为是读取请求的发出。自验证逻辑122还允许管理处理器112从读取状态寄存器136读取,以确定自验证逻辑122何时完成对管理处理器112的期望页面的检索。自验证逻辑122还允许管理处理器112对读取状态寄存器136写入,以在提交读取请求之前清除读取状态。因此,读取状态寄存器136中的值指示期望数据是否准备好由管理处理器112读取。换句话说,读取状态寄存器136实现了可被称为“就绪标志”的标志。
读取数据寄存器138包含或链接到自验证逻辑122响应于来自管理处理器112的读取请求而从硬化逻辑124读取的数据。例如,读取数据寄存器138可以被映射到ERAM 140。自验证逻辑122允许管理处理器112从读取状态寄存器136读取以确定读取请求何时就绪,并且自验证逻辑122允许管理处理器112从读取数据寄存器138读取以获取期望数据。自验证逻辑122还允许管理处理器112在发出读取请求之前对读取状态寄存器136进行写入,以将该请求(或相应的读取数据)标记为“未就绪”。
如图1所示,管理处理器112可以包括NVM 118,并且NVM 118可以包括软件119,软件119当由管理处理器112执行时使得管理处理器112能够验证或致使管理处理器112验证配置图像172。因此,软件119也可以被称为“PLD认证指令”(PAI)119。例如,PLD认证指令119可以被实现为固件。PLD认证指令119还可以对包括用于微控制器的子系统的各种参数的定制配置进行实例化。PLD认证指令119结合管理处理器112中的电路可以实现管理接口116,该管理接口116使得管理处理器112能够经由管理互连件117与PLD 120通信。另外,作为认证过程的一部分,管理处理器112可以从PLD 120检索签名174,并且管理处理器112可以使用信任实体的加密密钥102对签名174进行认证。
在一些示例中,密钥102和PLD认证指令119可以驻留在管理处理器112外部的NVM中。
在一些示例中,生成签名174的信任实体可以是数据处理系统110的制造商。在一些示例中,制造商可以使用加密密钥(例如,私钥)基于配置图像来生成签名174,并且制造商可以在数据处理系统110的构建过程期间将相应的密钥102(例如,公共密钥)存储在NVM118中。
如上所述,NASM 150包括用于访问配置图像172和签名174的逻辑(包括CST 152)。具体地,NASM 150和CST 152被设计为在特定PLD模型中操作。例如,硬化逻辑124可以包括特定的一组NVM控制寄存器162和特定的NVM命令接口164,并且CST 152可以被设计为使用NVM控制寄存器162和NVM命令接口164从硬化逻辑124检索指定页面。
然而,NASM 150是图像定义的,并且CST 152可以很容易被修改。因此,容易修改NASM 150和CST 152以在不同PLD模型中操作。另外,由于管理接口126是图像定义的,所以可以容易地创建为不同PLD模型创建相同类型的管理接口的配置图像。因此,根据本文的教导,可以相对容易地配置具有管理处理器可用于PLD验证的接口的不同PLD模型。
此外,不同的系统设计可以使用不同的管理处理器模型来验证不同的PLD模型。然而,每个管理处理器中的PLD认证指令可以使得该管理处理器能够根据本教导与各种PLD模型交互。例如,每个管理处理器可以使用相同种类的管理接口和相同种类的PLD认证指令,因为这些PLD认证指令实现本文所述的相同种类的处理。
因此,本公开描述了一种灵活且独立于PLD的供应商和设备模型的验证过程。
此外,管理处理器112可以经由管理接口126访问功能逻辑128和辅助验证逻辑129。如上所述,功能逻辑128可以使得管理处理器112能够与数据处理系统110中的其他设备通信。辅助验证逻辑129可以使得处理器能够验证数据处理系统110中的附加设备诸如辅助设备176。在一些实施例中,PLD 120可以经由标准接口127与辅助设备176、CPU 114以及RAM 113通信。然而,在一些示例中,用户逻辑可以包括多个标准接口,以使得PLD能够经由不同的总线与不同的设备通信。
PLD 120的验证过程也可以很快。例如,PLD 120可以上电并根据配置图像172非常快速地配置用户逻辑121,从而使得管理处理器112能够验证PLD 120。此外,管理处理器112用于从PLD 120获取配置图像172和签名174的协议可以允许将数据快速传输到管理处理器112。
另外,PLD 120的验证过程可以是安全的,因为管理处理器112和PLD 120相互通信的机制或协议可能不是众所周知的。例如,数据处理系统110的制造商可以对该协议的各种细节保密。此外,管理接口116和管理接口126可以使用加密来保护管理互连件117上的信息。
管理接口116和管理接口126的开发也可以是高效的,因为这些接口可以使用已经开发的逻辑来使得管理处理器能够访问PLD中的寄存器。
如上所述,自验证逻辑122可以通过设置读取地址寄存器134,等待设置数据就绪位(例如,读取状态寄存器136),然后从读取数据寄存器138读取,允许管理处理器112一次读取一页面的数据。在一些示例中,用户逻辑121实现NASM 150,该NASM 150是有限状态机(FSM),其使用存储在CST 152——其可以是内部的PLD存储器块——中的一系列命令来访问硬化逻辑124并从内部NVM 170或从外部NVM 180读取数据。这些命令可以特定于PLD 120的特定PLD模型。换句话说,这些命令可以是特定于模型的命令。对于具有不同PLD模型的不同系统模型,系统制造商可以容易地改变CST以处理该PLD模型,同时为系统的管理处理器保持相同的寄存器集。
自验证逻辑122从硬化逻辑124读取的数据可以被存储在PLD 120中的RAM中(例如,ERAM 140中),以减少逻辑资源的使用。
图像/签名地址寄存器132定义可从中获取图像和签名的地址范围。这些寄存器中的值可以容易地被改变,以允许不同大小的配置图像和签名。管理处理器112可以一次一个页面地遍历该地址范围,以读取完整图像和完整签名。
图2是示出根据示例实施方式的数据处理系统中的验证PLD的过程的流程图。该过程从数据处理系统110上电开始,该数据处理系统包括管理处理器112和PLD 120。如框210所示,在数据处理系统110的引导过程的早期,管理处理器112可以确定是否存在任何要认证的PLD。例如,管理处理器112可以被配置为对PLD 120进行认证。可选地,数据处理系统110可以包括将被认证的多个PLD。例如,辅助设备176也可以是PLD,并且管理处理器112可以被配置为对PLD 120和辅助设备176进行认证。
当数据处理系统110处于软关断或辅助电源的电源状态,诸如高级配置和电源接口(ACPI)睡眠状态S5时,管理处理器112可以在向数据处理系统110供电的早期不引人注目地执行PLD验证,而不会显著中断PLD 120的标准操作。在一些示例中,管理处理器112在PLD120加载配置图像172后立即验证PLD 120。
如下面更详细地描述的,如果配置图像172验证失败,则管理处理器112可以在错误消息中标记失败,并尝试更新配置图像以恢复到良好状态。管理处理器112可以防止前数据处理系统110改变到工作电源状态(例如,ACPI睡眠状态S0)直到发出的验证被解决,以防止数据处理系统110在受损状态下运行。
再次参考框210,如果存在要认证的PLD,则管理处理器112随后可以防止数据处理系统110进入等待成功PLD验证的工作状态,如框212所示。如框214所示,管理处理器112随后可以选择PLD进行认证。例如,在一个示例中,管理处理器112被配置为对一个设备进行认证:PLD 120。在另一示例中,管理处理器112被配置为对多个PLD(例如,PLD 120和辅助设备176)进行认证。如框216所示,管理处理器112随后可以对所选择的PLD进行认证。下面针对图3和图4提供示例认证过程的附加细节。
如框220所示,管理处理器112随后可以确定认证是否成功。如果认证成功,则管理处理器112可以更新认证日志,如框222所示,并且该过程可以返回到框210。然后,管理处理器112可以确定是否有更多的PLD要认证。如果存在要认证的另一PLD,则管理处理器112可以重复上述操作以对该PLD进行认证。
如果没有更多的PLD要认证,则过程可以从框210传递到框230。然后,管理处理器112可以允许数据处理系统110进入工作电源状态。
此外,管理处理器112可以基于用户策略选择,在数据处理系统110运行期间周期性地重新验证PLD,而不中断PLD的操作或要求任何停机时间。例如,如框240所示,可通过PLD重新认证计时器的到期来触发重新认证。作为响应,管理处理器112可以在框210确定存在要认证的PLD。管理处理器112随后可以对PLD 120或多个PLD进行重新认证。任何检测到的故障都可以引发补救措施。
再次参考框220,响应于PLD(例如,PLD 120)的认证失败,管理处理器112可以执行补救措施来处理认证失败。例如,管理处理器112可以用错误消息向系统用户报告故障,并且管理处理器112可以尝试恢复该PLD的良好配置图像。补救措施还可以包括用关于认证失败的细节更新PLD认证日志。
图2的框216涉及管理处理器对PLD的认证。PLD的认证可以涉及由PLD执行的一些操作和由管理处理器执行的一些操作。
图3是示出聚焦管理处理器112执行的操作的、关于图2的框216的进一步细节的流程图。结合PLD 120来描述这些操作。然而,管理处理器112可以使用相同种类的处理来对诸如辅助设备176之类的其他PLD进行认证。
如框310所示,该过程可以从管理处理器112从图像/签名地址寄存器132读取配置图像172的起始偏移和结束偏移以及签名174的起始偏移和结束偏移开始。然后,管理处理器112可以一次一个页面地从PLD 120读取配置图像172和签名174。
例如,如框320所示,管理处理器112可以确定配置图像172的所有页面和签名174的所有页面是否已经被读取。如果还没有读取所有页面,则管理处理器112可以计算下一个要读取的页面的地址,如框322所示。例如,为了检索配置图像172的第一页面,管理处理器112可以使用图像起始偏移。为了检索后续页面,管理处理器112可以添加页面大小以计算要读取的下一页面的地址。另外,如框324所示,管理处理器112可以将读取状态寄存器136设置为指示未就绪的值。如框所示,管理处理器112然后可以通过将要读取的页面的地址写入读取地址寄存器134,向PLD 120中的自验证逻辑122发送读取请求。
如框330所示,管理处理器112随后可以等待自验证逻辑122用指示所请求的数据已就绪的值来更新读取状态寄存器136。如框332所示,管理处理器112然后可以通过从读取数据寄存器138读取页面的数据来响应就绪的读取状态。如上所述,读取数据寄存器138可以被映射到ERAM 140。因此,管理处理器112可以经由读取数据寄存器138从ERAM 140获取期望页面。
然后,该过程可以返回到框320,以对配置图像172的所有页面和签名174的所有页面重复。一旦管理处理器112读取了配置图像172和签名174的所有页面,管理处理器112随后可以使用签名174和密钥102来验证配置图像172,如框340所示。例如,如上所述,在一些示例中,密钥102是信任实体的公共密钥,并且签名174由该信任实体使用相应的私钥生成。因此,管理处理器112可以使用该公共密钥来验证配置图像172没有被破坏,并且验证配置图像172是由信任实体签署的。
图4是示出针对由被认证的PLD执行的操作、图2的框216所示的操作的进一步细节的流程图。结合PLD 120描述该过程。然而,其他PLD(例如,辅助设备176)可以使用相同种类的过程。如框410所示,该过程可以从PLD 120中的自验证逻辑122等待从管理处理器112接收读取请求开始。一旦管理处理器112向自验证逻辑122发送读取请求(例如,通过将期望页面的地址写入读取地址寄存器134),自验证逻辑122可以通过使用NASM 150向硬化逻辑124发送相应的读取请求进行响应,如框412所示。在图1中,标记为[A]和[B]的箭头表示响应于管理处理器112将期望页面的地址写入读取地址寄存器134,自验证逻辑122使用NASM 150向硬化逻辑124发送读取请求。
如框414所示,硬化逻辑124随后可以将指定页面从内部NVM 170或外部NVM 180复制到ERAM 140。在图1中,标记为[C]的箭头表示硬化逻辑124将指定页面复制到ERAM 140。如框420所示,自验证逻辑122可以等待硬化逻辑124指示其已完成读取请求。一旦硬化逻辑124通知NASM 150其已完成读取请求,NASM 150就可以通过将读取状态寄存器136更新为指示数据就绪来进行响应,如框422所示。在图1中,标记为[D]的箭头表示NASM更新读取状态寄存器136以指示所请求的数据就绪。图4的过程随后可以结束。
再次参考图3的框330和332,一旦自验证逻辑122将读取状态寄存器136更新为指示数据就绪,管理处理器112就可以从读取数据寄存器138读取页面。例如,在图1中,标记为[E]的箭头表示管理处理器112经由读取数据寄存器138从ERAM 140获取数据。如以上针对图3的框320和340所述,一旦管理处理器112检索到配置图像172和签名174的所有页面,管理处理器112随后可以对配置图像172进行认证。
另外的实施方式:
图5是具有PLD验证技术的数据处理系统510的框图。数据处理系统510包括管理处理器512、耦接到管理处理器512的PLD 520以及非暂态机器可读介质(MRM)518。MRM 518包括PLD配置图像590,该PLD配置图像用图像定义的逻辑521配置PLD 520,图像定义的逻辑521包括自验证逻辑522和图像定义的管理接口526,图像定义的管理接口526使得管理处理器能够512与自验证逻辑522通信。MRM 518还包括基于PLD配置图像590的加密签名592。MRM518还包括PLD认证指令519,该PLD认证指令在由管理处理器512执行时使得管理处理器512经由图像定义的管理接口526从PLD 520检索PLD配置图像590的地址。当由管理处理器512执行时,PLD认证指令519还使得管理处理器512使用PLD配置图像590的地址以经由图像定义的管理接口526从PLD 520检索PLD配置图像590。当由管理处理器512执行时,PLD认证指令519还使得管理处理器512经由图像定义的管理接口526从PLD 520检索加密签名592。当由管理处理器512执行时,PLD认证指令519还使得管理处理器512使用信任实体的加密密钥502和加密签名592对PLD配置图像590进行认证。
在可以与前述示例结合的一些示例中,自验证逻辑包括读取状态寄存器和PLD认证指令,该PLD认证指令在执行时使得管理处理器通过经由图像定义的管理接口从PLD检索PLD配置图像的多个连续页面来从PLD检索PLD配置图像。另外,检索每个页面包括向自验证逻辑发送读取请求,其中,该读取请求包括要检索的页面的地址;在发送读取请求后,监视读取状态寄存器以确定读取数据是否就绪;以及响应于读取状态寄存器指示读取数据就绪,从自验证逻辑检索页面。
在一些可以与上述任何示例结合的示例中,自验证逻辑包括读取数据寄存器和访问NVS的FSM。此外,自验证逻辑使得PLD通过使用FSM使得页面经由读取数据寄存器对管理处理器可用,来响应来自管理处理器的读取请求。
在一些可以与上述任何示例结合的示例中,自验证逻辑包括ERAM,读取数据寄存器被映射到ERAM;并且自验证逻辑使得PLD通过使用FSM将页面从MRM复制到ERAM来响应来自管理处理器的读取请求,以使得BMC能够经由读取数据寄存器从PLD检索页面。
在一些可以与上述任何示例结合的示例中,PLD与管理处理器经由管理总线耦接。另外,PLD的图像定义的管理接口使得图像定义的逻辑能够在PLD数据到达管理总线之前对PLD数据进行加密,并且对PLD从管理总线接收的数据进行解密。此外,管理处理器包括去往管理总线的接口。此外,管理处理器的接口使得管理处理器能够在管理处理器数据到达管理总线之前对管理处理器数据进行加密,并且对从管理总线接收的PLD数据进行解密。
在一些可以与上述任何示例组合的示例中,管理处理器包括BMC,PLD包括SoC,MRM包括第一MRM和第二MRM,第一MRM耦接到SoC中的硬化逻辑,第一MRM包括PLD配置图像和加密签名,第二MRM驻留在包括BMC内部和BMC外部的群组中的一个位置。另外,第二MRM包括PLD认证指令。
在可以与前述任何示例结合的一些示例中,数据处理系统还包括耦接到PLD的CPU。此外,PLD的图像定义的逻辑还包括管理处理器经由图像定义的管理接口能够访问的功能逻辑。此外,PLD的功能逻辑使得管理处理器能够与CPU进行关于CPU的操作特性的通信。
在一些可以与上述任何示例结合的示例中,数据处理系统包括耦接到PLD的辅助设备,PLD的图像定义的逻辑包括管理处理器经由图像定义的管理接口能够访问的功能逻辑,并且PLD的功能逻辑使得管理处理器能够与辅助设备通信。
在一些可以与上述任何示例相结合的示例中,PLD的图像定义的逻辑包括辅助设备验证逻辑,管理处理器经由图像定义的管理接口能够访问该辅助设备验证逻辑,该辅助设备验证逻辑使得管理处理器能够对来自辅助设备的数据进行认证。
图6是包括PLD配置图像612和加密签名614的非暂态MRM 610的框图。PLD配置图像612将使用包括图像定义的管理接口的图像定义的逻辑来配置数据处理系统的PLD,图像定义的管理接口使得数据处理系统中的管理处理器能够与PLD中的图像定义的逻辑通信。加密签名614基于PLD配置图像612。图像定义的逻辑包括自验证逻辑,以使得管理处理器能够利用PLD的图像定义的管理接口从PLD检索数据。该数据包括PLD配置图像612的地址、PLD配置图像612以及加密签名614。
在一些可以与前一示例相结合的示例中,PLD包括耦接到MRM的硬化逻辑,图像定义的逻辑包括ERAM,并且自验证逻辑使得PLD能够经由硬化逻辑从MRM获取PLD配置图像的页面,并且将该页面复制到图像定义的逻辑中的ERAM。
在一些可以与上述任何示例相结合的示例中,自验证逻辑包括一组验证寄存器,管理处理器经由PLD的图像定义的管理接口能够访问这些寄存器,以使得管理处理器能够从PLD检索PLD配置图像的多个连续页面。此外,该组验证寄存器包括读取地址寄存器、读取状态寄存器和读取数据寄存器,读取地址寄存器由管理处理器用配置图像的期望页面的地址更新,读取状态寄存器使得管理处理器能够确定读取数据何时就绪,并且读取数据寄存器使得管理处理器能够在自验证逻辑经由硬化逻辑获取期望页面并将期望页面复制到图像定义的逻辑中的ERAM之后从ERAM获取期望数据。
在一些可以与上述任何示例相结合的示例中,该组验证寄存器包括向管理处理器提供PLD配置图像的地址的图像地址寄存器以及向管理处理器提供加密签名的地址的签名地址寄存器。
在一些可以与上述任何示例相结合的示例中,图像定义的管理接口使得PLD能够在PLD数据到达数据处理系统中的管理总线之前对PLD数据进行加密,并对PLD从管理总线接收的数据进行解密。
在一些可以与上述任何示例结合的示例中,自验证逻辑包括访问NVS的FSM,并且FSM包括命令序列表。此外,响应于从管理处理器接收到读取请求,其中读取请求指定PLD配置图像的页面,自验证逻辑使用命令序列表从PLD中的硬化逻辑获取指定页面。
图7是包含指令720的非暂态MRM 710的框图,该指令720在执行时使得数据处理系统的管理处理器对用于数据处理系统中的PLD的PLD配置图像进行认证。具体地,指令720使得管理处理器在PLD已经使用PLD配置图像对包括自验证逻辑和图像定义的管理接口的图像定义的逻辑进行实例化之后,利用PLD的图像定义的管理接口来检索用于PLD的PLD配置图像的地址。在执行时,指令720还使得管理处理器利用PLD的图像定义的管理接口从PLD检索加密签名的地址,其中加密签名基于PLD配置图像。在执行时,指令720还使得管理处理器利用图像定义的管理接口和PLD配置图像的地址来从PLD检索PLD配置图像。在执行时,指令720还使得管理处理器利用图像定义的管理接口和加密签名的地址从PLD检索加密签名。在执行时,指令720还使得管理处理器利用信任实体的加密密钥和加密签名对PLD配置图像进行认证。
在一些可以与前一示例相结合的示例中,指令在执行时使得管理处理器在数据处理系统的引导过程中对PLD配置图像进行认证。
在一些可以与上述任何示例结合的示例中,指令在执行时使得管理处理器防止数据处理系统的中央处理单元在PLD配置图像被认证之前进入工作状态。
在一些可以与上述任何示例相结合的示例中,指令在执行时使得管理处理器在数据处理系统的引导过程完成之后,在运行期间周期性地重新验证PLD配置图像。
在可以与上述任何示例结合的一些示例中,指令在执行时使得管理处理器在管理处理器数据到达数据处理系统中的管理总线之前对管理处理器数据进行加密,并对从管理总线接收的PLD数据进行解密。
虽然本公开已经针对有限数量的实施方式或示例进行了描述,但是本领域技术人员根据本公开将能想到许多修改和变化。意图是所附权利要求涵盖所有这些修改和变化。

Claims (12)

1.一种数据处理系统,包括:
管理处理器;
可编程逻辑器件PLD,所述PLD耦接到所述管理处理器;
非暂态机器可读介质MRM;
所述MRM中的PLD配置图像,所述PLD配置图像用于用图像定义的逻辑配置所述PLD,其中,所述图像定义的逻辑包括自验证逻辑和图像定义的管理接口,所述图像定义的管理接口用于使得所述管理处理器能够与所述PLD中的所述自验证逻辑通信;
所述MRM中的加密签名,所述加密签名基于所述PLD配置图像;以及
所述MRM中的PLD认证指令,其中,所述PLD认证指令在由所述管理处理器执行时使得所述管理处理器:
经由所述PLD的所述图像定义的管理接口,从所述PLD检索所述PLD配置图像的地址;
使用所述PLD配置图像的所述地址,经由所述PLD的所述图像定义的管理接口从所述PLD检索所述PLD配置图像;
经由所述PLD的所述图像定义的管理接口,从所述PLD检索所述加密签名;以及
使用所述加密签名和信任实体的加密密钥,对所述PLD配置图像进行认证,其中:
所述PLD的所述自验证逻辑包括读取状态寄存器;并且
所述PLD认证指令在由所述管理处理器执行时,使得所述管理处理器通过经由所述图像定义的管理接口从所述PLD检索所述PLD配置图像的多个连续页面来从所述PLD检索所述PLD配置图像,其中,检索每个页面包括:
向所述PLD的所述自验证逻辑发送读取请求,其中,所述读取请求包括要检索的页面的地址;
在发送所述读取请求后,监视所述读取状态寄存器以确定读取数据是否就绪;以及
响应于所述读取状态寄存器指示所述读取数据就绪,从所述PLD的所述自验证逻辑检索所述页面。
2.如权利要求1所述的数据处理系统,其中:
所述自验证逻辑包括读取数据寄存器和用于访问非易失性存储装置的有限状态机FSM;并且
所述自验证逻辑使得所述PLD通过使用所述FSM使所述页面经由所述读取数据寄存器对所述管理处理器可用,对来自所述管理处理器的所述读取请求进行响应。
3.如权利要求2所述的数据处理系统,其中:
所述自验证逻辑包括嵌入式随机存取存储器ERAM;
所述读取数据寄存器被映射到所述ERAM;并且
所述自验证逻辑使得所述PLD通过使用所述FSM将所述页面从所述MRM复制到所述ERAM,对来自所述管理处理器的所述读取请求进行响应,以使得基板管理控制器BMC能够经由所述读取数据寄存器从所述PLD检索所述页面。
4.一种数据处理系统,包括:
管理处理器;
可编程逻辑器件PLD,所述PLD耦接到所述管理处理器;
非暂态机器可读介质MRM;
所述MRM中的PLD配置图像,所述PLD配置图像用于用图像定义的逻辑配置所述PLD,其中,所述图像定义的逻辑包括自验证逻辑和图像定义的管理接口,所述图像定义的管理接口用于使得所述管理处理器能够与所述PLD中的所述自验证逻辑通信;
所述MRM中的加密签名,所述加密签名基于所述PLD配置图像;以及
所述MRM中的PLD认证指令,其中,所述PLD认证指令在由所述管理处理器执行时使得所述管理处理器:
经由所述PLD的所述图像定义的管理接口,从所述PLD检索所述PLD配置图像的地址;
使用所述PLD配置图像的所述地址,经由所述PLD的所述图像定义的管理接口从所述PLD检索所述PLD配置图像;
经由所述PLD的所述图像定义的管理接口,从所述PLD检索所述加密签名;以及
使用所述加密签名和信任实体的加密密钥,对所述PLD配置图像进行认证,所述PLD与所述管理处理器经由管理总线耦接;
所述PLD的所述图像定义的管理接口使得所述图像定义的逻辑能够:
在PLD数据达到所述管理总线之前对所述PLD数据进行加密;
对由所述PLD从所述管理总线接收的数据进行解密;
所述管理处理器包括到所述管理总线的接口;并且
所述管理处理器的所述接口使得所述管理处理器能够:
在管理处理器数据到达所述管理总线之前对所述管理处理器数据进行加密;以及
对从所述管理总线接收的PLD数据进行解密。
5.一种数据处理系统,包括:
管理处理器;
可编程逻辑器件PLD,所述PLD耦接到所述管理处理器;
非暂态机器可读介质MRM;
所述MRM中的PLD配置图像,所述PLD配置图像用于用图像定义的逻辑配置所述PLD,其中,所述图像定义的逻辑包括自验证逻辑和图像定义的管理接口,所述图像定义的管理接口用于使得所述管理处理器能够与所述PLD中的所述自验证逻辑通信;
所述MRM中的加密签名,所述加密签名基于所述PLD配置图像;以及
所述MRM中的PLD认证指令,其中,所述PLD认证指令在由所述管理处理器执行时使得所述管理处理器:
经由所述PLD的所述图像定义的管理接口,从所述PLD检索所述PLD配置图像的地址;
使用所述PLD配置图像的所述地址,经由所述PLD的所述图像定义的管理接口从所述PLD检索所述PLD配置图像;
经由所述PLD的所述图像定义的管理接口,从所述PLD检索所述加密签名;以及
使用所述加密签名和信任实体的加密密钥,对所述PLD配置图像进行认证,其中:
所述管理处理器包括基板管理控制器BMC;
所述PLD包括片上系统SoC;
所述MRM包括第一MRM和第二MRM;
所述第一MRM耦接到所述SoC中的硬化逻辑;
所述第一MRM包括所述PLD配置图像和所述加密签名;
所述第二MRM驻留在来自包括以下各项的群组的位置中:
所述BMC内部;以及
所述BMC外部;并且
所述第二MRM包括所述PLD认证指令。
6.如权利要求5所述的数据处理系统,其中:
所述数据处理系统还包括耦接到所述PLD的中央处理单元CPU;
所述PLD的所述图像定义的逻辑还包括所述管理处理器经由所述图像定义的管理接口能够访问的功能逻辑;并且
所述PLD的所述功能逻辑使得所述管理处理器能够与所述CPU进行关于所述CPU的操作特性的通信。
7.如权利要求5所述的数据处理系统,其中:
所述数据处理系统包括耦接到所述PLD的辅助设备;
所述PLD的所述图像定义的逻辑包括所述管理处理器经由所述图像定义的管理接口能够访问的功能逻辑;并且
所述PLD的所述功能逻辑使得所述管理处理器能够与所述辅助设备通信。
8.如权利要求7所述的数据处理系统,其中:
所述PLD的所述图像定义的逻辑包括所述管理处理器经由所述图像定义的管理接口能够访问的辅助设备验证逻辑,所述辅助设备验证逻辑用于使得所述管理处理器能够对来自所述辅助设备的数据进行认证。
9.一种非暂态机器可读介质MRM,包括:
可编程逻辑器件PLD配置图像,所述PLD配置图像用于用图像定义的逻辑来配置数据处理系统的PLD,所述图像定义的逻辑包括图像定义的管理接口,所述图像定义的管理接口使得所述数据处理系统中的管理处理器能够与所述PLD中的所述图像定义的逻辑通信;以及
加密签名,所述加密签名基于所述PLD配置图像;
其中,所述图像定义的逻辑包括自验证逻辑,所述自验证逻辑用于使得所述管理处理器能够利用所述PLD的所述图像定义的管理接口以从所述PLD检索:
所述PLD配置图像的地址;
所述PLD配置图像;以及
所述加密签名,其中:
所述PLD包括耦接到所述MRM的硬化逻辑;
所述图像定义的逻辑包括嵌入式随机存取存储器ERAM;并且
所述自验证逻辑使得所述PLD能够:
经由所述硬化逻辑从所述MRM获取所述PLD配置图像的页面;以及
将所述页面复制到所述图像定义的逻辑中的所述ERAM,并且其中:
所述自验证逻辑包括所述管理处理器经由所述PLD的所述图像定义的管理接口能够访问的一组验证寄存器,以使得所述管理处理器能够从所述PLD检索所述PLD配置图像的多个连续页面;并且
所述一组验证寄存器包括:
读取地址寄存器,所述读取地址寄存器要由所述管理处理器用所述配置图像的期望页面的地址更新;
读取状态寄存器,所述读取状态寄存器用于使得所述管理处理器能够确定读取数据何时就绪;以及
读取数据寄存器,所述读取数据寄存器用于使得所述管理处理器能够在所述自验证逻辑已经经由所述硬化逻辑获取所述期望页面并且将所述期望页面复制到所述图像定义的逻辑中的所述ERAM后,从所述ERAM获取所述期望页面。
10.如权利要求9所述的MRM,其中,所述一组验证寄存器包括:
图像地址寄存器,所述图像地址寄存器用于向所述管理处理器提供所述PLD配置图像的地址;以及
签名地址寄存器,所述签名地址寄存器用于向所述管理处理器提供所述加密签名的地址。
11.如权利要求9所述的MRM,其中,所述图像定义的管理接口使得所述PLD能够:
在PLD数据到达所述数据处理系统中的管理总线之前对所述PLD数据进行加密;以及
对由所述PLD从所述管理总线接收的数据进行解密。
12.如权利要求9所述的MRM,其中:
所述自验证逻辑包括用于访问非易失性存储装置的有限状态机FSM,并且所述FSM包括命令序列表;并且
响应于从所述管理处理器接收到读取请求,其中,所述读取请求指定所述PLD配置图像的页面,所述自验证逻辑使用所述命令序列表从所述PLD中的硬化逻辑获取所指定的页面。
CN202110318379.0A 2020-04-09 2021-03-25 数据处理系统和非暂态机器可读介质 Active CN113515414B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/844,053 2020-04-09
US16/844,053 US11443074B2 (en) 2020-04-09 2020-04-09 Verification of programmable logic devices

Publications (2)

Publication Number Publication Date
CN113515414A CN113515414A (zh) 2021-10-19
CN113515414B true CN113515414B (zh) 2023-07-18

Family

ID=77851713

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110318379.0A Active CN113515414B (zh) 2020-04-09 2021-03-25 数据处理系统和非暂态机器可读介质

Country Status (3)

Country Link
US (1) US11443074B2 (zh)
CN (1) CN113515414B (zh)
DE (1) DE102021104937B4 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114567445A (zh) * 2022-02-28 2022-05-31 苏州国芯科技股份有限公司 一种验签数据传输方法、装置、设备及介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6069489A (en) 1998-08-04 2000-05-30 Xilinx, Inc. FPGA having fast configuration memory data readback
US6650140B2 (en) 2001-03-19 2003-11-18 Altera Corporation Programmable logic device with high speed serial interface circuitry
US7143295B1 (en) * 2002-07-18 2006-11-28 Xilinx, Inc. Methods and circuits for dedicating a programmable logic device for use with specific designs
US7759968B1 (en) 2006-09-27 2010-07-20 Xilinx, Inc. Method of and system for verifying configuration data
US8095800B2 (en) * 2008-11-20 2012-01-10 General Dynamics C4 System, Inc. Secure configuration of programmable logic device
US9436848B2 (en) 2013-05-30 2016-09-06 Cryptography Research, Inc. Configurator for secure feature and key manager
US20160232103A1 (en) * 2013-09-26 2016-08-11 Mark A. Schmisseur Block storage apertures to persistent memory
US20170090909A1 (en) * 2015-09-25 2017-03-30 Qualcomm Incorporated Secure patch updates for programmable memories
US10417078B2 (en) * 2016-04-08 2019-09-17 Lattice Semiconductor Corporation Deterministic read back and error detection for programmable logic devices
US10540232B2 (en) * 2017-09-19 2020-01-21 Hewlett Packard Enterprise Development Lp Recovery using programmable logic device
WO2019140218A1 (en) * 2018-01-12 2019-07-18 Stc.Unm An autonomous, self-authenticating and self-contained secure boot-up system and methods
WO2019217929A1 (en) * 2018-05-11 2019-11-14 Lattice Semiconductor Corporation Failure characterization systems and methods for programmable logic devices
FR3097365B1 (fr) * 2019-06-11 2021-07-02 St Microelectronics Rousset Circuit électronique
US11216591B1 (en) * 2019-06-12 2022-01-04 Xilinx, Inc. Incremental authentication for memory constrained systems
US11580057B2 (en) * 2019-10-28 2023-02-14 Xilinx, Inc. Subsystem for configuration, security, and management of an adaptive system
US11443071B2 (en) * 2020-02-13 2022-09-13 SiFive, Inc. Secure debug architecture

Also Published As

Publication number Publication date
DE102021104937A1 (de) 2021-10-14
CN113515414A (zh) 2021-10-19
DE102021104937B4 (de) 2023-09-21
US20210319141A1 (en) 2021-10-14
US11443074B2 (en) 2022-09-13

Similar Documents

Publication Publication Date Title
CN111052118B (zh) 硬件实施的固件安全
US10878098B2 (en) System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof
EP3805968B1 (en) Technologies for secure hardware and software attestation for trusted i/o
EP3556080B1 (en) Secure iot device update
EP2741228B1 (en) System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof
US11843705B2 (en) Dynamic certificate management as part of a distributed authentication system
US10318736B2 (en) Validating operating firmware of a periperhal device
US7774619B2 (en) Secure code execution using external memory
US8332653B2 (en) Secure processing environment
CN102122327B (zh) 使用多个认证代码模块进入安全计算环境
WO2018222666A1 (en) Method and apparatus for secure system boot
JP2011522469A (ja) 保護されたソフトウエアイメージを有する集積回路及びそのための方法
JP2017033537A (ja) 外部不揮発性メモリに間接アクセスするセキュリティデバイス
JP2018536958A (ja) ネットワークを通じて更新されることができるセキュアなブートコードキャッシュ
CN113568799A (zh) 对物理安全设备的模拟
TW202044022A (zh) 更新信號技術
EP3758326B1 (en) Secure updating of computing system firmware
CN113515414B (zh) 数据处理系统和非暂态机器可读介质
US11822668B2 (en) Systems and methods for authenticating configurations of an information handling system
US20230010319A1 (en) Deriving independent symmetric encryption keys based upon a type of secure boot using a security processor
WO2020259285A1 (zh) 图像形成装置及图像形成装置用安全控制系统
US11966748B2 (en) Dynamic boot configuration
US11843707B2 (en) Systems and methods for authenticating hardware of an information handling system
US20240134968A1 (en) Electronic system and security authority delegation method thereof
US20230015334A1 (en) Deriving dependent symmetric encryption keys based upon a type of secure boot using a security processor

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