DE102023110485A1 - DETECTING AND RESPOND TO ENVIRONMENTAL SECURITY ATTACKS ON SEMICONDUCTOR PACKAGING - Google Patents

DETECTING AND RESPOND TO ENVIRONMENTAL SECURITY ATTACKS ON SEMICONDUCTOR PACKAGING Download PDF

Info

Publication number
DE102023110485A1
DE102023110485A1 DE102023110485.3A DE102023110485A DE102023110485A1 DE 102023110485 A1 DE102023110485 A1 DE 102023110485A1 DE 102023110485 A DE102023110485 A DE 102023110485A DE 102023110485 A1 DE102023110485 A1 DE 102023110485A1
Authority
DE
Germany
Prior art keywords
reset
logic gates
security
canary
controller
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
DE102023110485.3A
Other languages
German (de)
Inventor
Theodore F. Emerson
Christopher M. Wesneski
Daniel J. Zink
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 DE102023110485A1 publication Critical patent/DE102023110485A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic 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 additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • 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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/72Protecting 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

Ein Prozess beinhaltet die Erzeugung eines Ausgabewertes durch eine Kanarienschaltung eines Halbleiterpakets. Das Halbleiterpaket enthält eine Hardware-Root-of-Trust-Engine für ein elektronisches System. Der Prozess umfasst den Vergleich des Ausgabewerts mit einem erwarteten Wert durch die Canary-Schaltung. Der Prozess beinhaltet, dass das Halbleiterpaket in Reaktion auf ein Ergebnis des Vergleichs eine Reaktion des Halbleiterpakets auf eine Rücksetzanforderung reguliert.A process includes generating an output value by a canary circuit of a semiconductor package. The semiconductor package includes a hardware root of trust engine for an electronic system. The process includes comparing the output value to an expected value by the canary circuit. The process includes the semiconductor package regulating a response of the semiconductor package to a reset request in response to a result of the comparison.

Description

HINTERGRUNDBACKGROUND

Eine Computerplattform kann Gegenstand eines Sicherheitsangriffs sein, um z. B. auf Informationen zuzugreifen, die auf der Computerplattform gespeichert sind, oder um Komponenten der Computerplattform zu beschädigen. Um das Ausmaß des potenziellen Schadens durch Sicherheitsangriffe zu verhindern oder zumindest zu begrenzen, kann die Computerplattform über verschiedene Sicherheitsstufen verfügen. So kann die Computerplattform beispielsweise über verschiedene Mechanismen zur Zugangsbeschränkung verfügen, wie etwa Firewalls, Passwörter und Schlüssel. Als weiteres Beispiel kann die Computerplattform einen Sicherheitsprozessor haben. Der Sicherheitsprozessor kann eine Reihe von sicherheitsrelevanten Funktionen bereitstellen, um die Computerplattform gegen Sicherheitsangriffe zu schützen. Eine sicherheitsrelevante Funktion kann zum Beispiel die sichere Speicherung von Plattformgeheimnissen sein. Ein weiteres Beispiel für eine sicherheitsrelevante Funktion kann die Validierung von Firmware sein. Ein weiteres Beispiel für eine sicherheitsrelevante Funktion kann die Sicherung von Firmware-Updates sein. Weitere Beispiele für sicherheitsrelevante Funktionen sind die Erzeugung kryptografischer Schlüssel, die Versiegelung kryptografischer Schlüssel und die Entsiegelung kryptografischer Schlüssel.A computer platform can be the subject of a security attack, e.g. B. to access information stored on the computer platform or to damage components of the computer platform. To prevent or at least limit the extent of potential damage from security attacks, the computing platform may have various levels of security. For example, the computing platform may have various mechanisms for restricting access, such as firewalls, passwords and keys. As another example, the computer platform may have a security processor. The security processor can provide a number of security-related functions to protect the computing platform against security attacks. A security-relevant function can, for example, be the secure storage of platform secrets. Another example of a security-relevant function can be the validation of firmware. Another example of a security-related function can be securing firmware updates. Other examples of security-related functions include cryptographic key generation, cryptographic key sealing, and cryptographic key unsealing.

KURZBESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF DRAWINGS

  • 1 ist ein schematisches Diagramm einer Computerplattform mit einer digitalen Canary-Schaltung und einem Reset-Regler zum Schutz eines Sicherheitsprozessors der Computerplattform gegen umweltbedingte Sicherheitsangriffe gemäß einem Implementierungsbeispiel. 1 is a schematic diagram of a computing platform having a digital canary circuit and a reset controller for protecting a security processor of the computing platform against environmental security attacks, according to an example implementation.
  • 2 ist eine schematische Darstellung einer sicheren Enklave des Sicherheitsprozessors gemäß einem Ausführungsbeispiel. 2 is a schematic representation of a secure enclave of the security processor according to one embodiment.
  • 3 ist ein Blockdiagramm des Rückstellreglers gemäß einem Ausführungsbeispiel. 3 is a block diagram of the reset controller according to an embodiment.
  • 4 ist ein Flussdiagramm, das einen Prozess darstellt, der vom Sicherheitsprozessor durchgeführt wird, um eine Reaktion des Sicherheitsprozessors auf eine Rücksetzanforderung gemäß einer Beispielimplementierung zu regulieren. 4 is a flowchart illustrating a process performed by the security processor to regulate a response of the security processor to a reset request, according to an example implementation.
  • 5 zeigt eine Silizium-Root-of-Trust-Engine (SRoT-Engine) des Sicherheitsprozessors und veranschaulicht die Einbindung einer digitalen Canary-Schaltung in die SRoT-Engine gemäß einem Implementierungsbeispiel. 5 shows a silicon root of trust engine (SRoT engine) of the security processor and illustrates the integration of a digital canary circuit into the SRoT engine according to an implementation example.
  • 6 zeigt die räumliche Vermischung von Logikgattern der Root-of-Trust-Engine und Logikgattern der Canary-Schaltung gemäß einem Implementierungsbeispiel. 6 shows the spatial mixing of logic gates of the root-of-trust engine and logic gates of the canary circuit according to an implementation example.
  • 7 zeigt einen Verarbeitungskern des Sicherheitsprozessors und veranschaulicht den Einbau einer digitalen Canary-Schaltung in den Verarbeitungskern gemäß einem Implementierungsbeispiel. 7 shows a processing core of the security processor and illustrates the incorporation of a digital canary circuit into the processing core according to an implementation example.
  • 8 zeigt die räumliche Vermischung von Logikgattern des Verarbeitungskerns und Logikgattern der Kanarienschaltung gemäß einem Implementierungsbeispiel. 8th shows the spatial mixing of logic gates of the processing core and logic gates of the canary circuit according to an implementation example.
  • 9 ist ein Blockdiagramm einer digitalen Canary-Schaltung gemäß einem Implementierungsbeispiel. 9 is a block diagram of a digital canary circuit according to an implementation example.
  • 10 ist ein Flussdiagramm eines Prozesses zur Erkennung von und Reaktion auf Manipulationsaktivitäten gemäß einer Beispielimplementierung. 10 is a flowchart of a process for detecting and responding to tampering activities according to an example implementation.
  • 11 ist ein Blockdiagramm eines Baseboard Management Controllers (BMC) mit einer Canary-Schaltung zur Erkennung von Manipulationen und einem Controller zur Durchführung einer Reaktionsmaßnahme als Reaktion auf eine erkannte Manipulation gemäß einer Beispielimplementierung. 11 is a block diagram of a baseboard management controller (BMC) with a canary circuit for detecting tampering and a controller for taking a response action in response to a detected tampering, according to an example implementation.
  • 12 ist ein Blockdiagramm einer Computerplattform mit einer Canary-Schaltung zur Erkennung von Manipulationen und einem Reset-Regler zur Regulierung einer Reset-Haltezeit als Reaktion auf erkannte Manipulationen gemäß einem Implementierungsbeispiel. 12 is a block diagram of a computer platform having a canary circuit for detecting tampering and a reset controller for regulating a reset hold time in response to detected tampering, according to an example implementation.

AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION

Eine Computerplattform kann einen Sicherheitsprozessor enthalten, der einen oder mehrere sicherheitsbezogene Dienste für die Computerplattform ausführen kann. So kann ein Sicherheitsprozessor beispielsweise Firmware-Anweisungen als Teil des sicheren Startvorgangs der Computerplattform validieren. Als spezifischeres Beispiel kann ein Sicherheitsprozessor eine Root-of-Trust-Engine enthalten, um als Reaktion auf das Zurücksetzen oder Einschalten der Computerplattform Firmware-Anweisungen zu validieren, die mit einer kryptografischen Vertrauenskette verbunden sind. Als weitere Beispiele kann ein Sicherheitsprozessor eines oder mehrere der folgenden Verfahren durchführen: Speichern von Messungshashes, Laden von Referenzmessungshashes, Speichern von kryptografischen Schlüsseln, Abrufen von kryptografischen Schlüsseln, Erzeugen von kryptografischen Schlüsseln, Abrufen einer kryptografischen Plattformidentität, Erstellen von Zertifikaten, Speichern von Zertifikaten, Hinzufügen von Zertifikaten, Löschen von Zertifikaten, Versiegeln von kryptografischen Schlüsseln und Entsiegeln von kryptografischen Schlüsseln.A computing platform may include a security processor that may perform one or more security-related services for the computing platform. For example, a security processor may validate firmware instructions as part of the secure boot process of the computing platform. As a more specific example, a security processor may include a root of trust engine to validate firmware instructions associated with a cryptographic chain of trust in response to a reset or power-on of the computing platform. As further examples, a security processor may perform one or more of the following: storing measurement hashes, loading reference measurement hashes, storing cryptographic keys, retrieving cryptographic keys, generating cryptographic keys, retrieving a cryptographic platform identity, creating certificates, storing certificates, adding certificates, deleting certificates, sealing cryptographic keys, and unsealing cryptographic keys.

Eine mögliche Methode, eine Computerplattform anzugreifen, besteht darin, eine Umgebungsbedingung des Sicherheitsprozessors der Plattform so zu manipulieren, dass die Umgebungsbedingung weit außerhalb der Spezifikationen des Sicherheitsprozessors für diese Bedingung liegt. In diesem Zusammenhang bezieht sich eine „Umgebungsbedingung“ eines Sicherheitsprozessors auf einen Parameter oder ein Merkmal des Betriebszustands des Sicherheitsprozessors, der/das einen erwarteten Betriebsbereich hat und durch einen Stimulus von außerhalb des Sicherheitsprozessors beeinflusst werden kann. Eine Umgebungsbedingung für einen Sicherheitsprozessor kann beispielsweise die Höhe einer Versorgungsspannung sein, die dem Sicherheitsprozessor zugeführt wird, die Rate eines Taktsignals, das der Sicherheitsprozessor empfängt, die Chiptemperatur des Sicherheitsprozessors, der Strahlungspegel des Sicherheitsprozessors oder die Stärke eines elektromagnetischen Feldes, dem der Sicherheitsprozessor ausgesetzt ist. Die gezielte Manipulation einer Umgebungsbedingung eines Sicherheitsprozessors, so dass die Umgebungsbedingung außerhalb des entsprechenden erwarteten Bereichs liegt, wird hier als ein „durch die Umgebungsbedingung bedingter“ Sicherheitsangriff bezeichnet.One possible method of attacking a computer platform is to manipulate an environmental condition of the platform's security processor such that the environmental condition is well outside the security processor's specifications for that condition. In this context, an "environmental condition" of a security processor refers to a parameter or characteristic of the operating state of the security processor that has an expected operating range and can be affected by a stimulus external to the security processor. For example, an environmental condition for a security processor may be the level of a supply voltage supplied to the security processor, the rate of a clock signal received by the security processor, the chip temperature of the security processor, the radiation level of the security processor, or the strength of an electromagnetic field to which the security processor is exposed. Deliberately manipulating an environmental condition of a security processor such that the environmental condition is outside the corresponding expected range is referred to herein as an "environmental condition-induced" security attack.

Ein Beispiel für einen umweltbedingten Sicherheitsangriff ist, dass ein Sicherheitsprozessor mit einer Versorgungsspannung versorgt wird, die größer ist als die Höchstgrenze der Versorgungsspannung des Sicherheitsprozessors. Ein weiteres Beispiel ist, dass die Rate eines Taktsignals, das einem Sicherheitsprozessor zugeführt wird, größer sein kann als die für den Sicherheitsprozessor festgelegte maximale Taktfrequenz. Ein weiteres Beispiel ist, dass die Umgebungstemperatur für einen Sicherheitsprozessor manipuliert werden kann (z. B. kann ein Lüfter ausgeschaltet werden, ein Kühlkörper kann entfernt werden, thermische Energie kann der Umgebung zugeführt werden oder ein anderer Mechanismus kann verwendet werden, um die Umgebungstemperatur zu erhöhen), um zu bewirken, dass die Chiptemperatur des Sicherheitsprozessors die für den Sicherheitsprozessor angegebene maximale Chiptemperatur übersteigt.An example of an environmental security attack is that a security processor is supplied with a supply voltage that is greater than the maximum limit of the security processor's supply voltage. Another example is that the rate of a clock signal supplied to a security processor may be greater than the maximum clock frequency set for the security processor. Another example is that the ambient temperature for a security processor can be manipulated (e.g. a fan can be turned off, a heat sink can be removed, thermal energy can be added to the environment, or some other mechanism can be used to increase the ambient temperature increase) to cause the security processor chip temperature to exceed the maximum chip temperature specified for the security processor.

Das Ziel eines umweltbedingten Sicherheitsangriffs auf einen Sicherheitsprozessor besteht darin, den Sicherheitsprozessor zu einer Fehlfunktion oder zu einer oder mehreren Störungen zu veranlassen, um einem Angreifer die Möglichkeit zu geben, in das ansonsten geschlossene System des Sicherheitsprozessors einzudringen. Die Funktionsstörung kann sich auf unterschiedliche Weise äußern. Die Fehlfunktion eines Sicherheitsprozessors kann beispielsweise dazu führen, dass sich Bit-Zustände umkehren, dass Programmanweisungen beschädigt werden, dass das Verhalten bei der Programmausführung von dem erwarteten Verhalten abweicht, dass geschützte Anweisungen ausgeführt werden, die nicht ausgeführt werden sollten, dass die Ausführung von Anweisungen, die nicht umgangen werden sollten, umgangen wird, dass Firmware validiert wird, die nicht validiert werden sollte, oder dass der Sicherheitsprozessor ganz allgemein ein anormales Verhalten zeigt. Anders ausgedrückt: Ein durch die Umgebungsbedingungen bedingter Sicherheitsangriff kann einen Angriffspfad darstellen, der die Sicherheitsvorkehrungen des Sicherheitsprozessors umgeht, die ansonsten vorhanden sind, wenn der Sicherheitsprozessor ordnungsgemäß funktioniert. Da ein umweltbedingter Sicherheitsangriff einen Sicherheitsprozessor dazu veranlasst, außerhalb seiner Konstruktionsspezifikationen zu arbeiten, ist es möglich, dass die genaue(n) Ursache(n) der Fehlfunktion nicht bekannt und nicht vorhersehbar ist/sind.The goal of an environmental security attack on a security processor is to cause the security processor to malfunction or to cause one or more malfunctions, allowing an attacker to penetrate the otherwise closed system of the security processor. The malfunction can manifest itself in a number of ways. For example, a security processor malfunction can result in bit states being reversed, program instructions being corrupted, program execution behavior deviating from expected behavior, protected instructions being executed that should not be executed, execution of instructions that should not be bypassed being bypassed, firmware being validated that should not be validated, or the security processor generally exhibiting abnormal behavior. In other words, an environmental security attack can provide an attack path that bypasses the security processor's safeguards that would otherwise be in place if the security processor were functioning properly. Because an environmental security attack causes a security processor to operate outside of its design specifications, it is possible that the exact cause(s) of the malfunction are unknown and unpredictable.

Gemäß Ausführungsbeispielen verfügt ein Sicherheitsprozessor über eine oder mehrere digitale Canary-Schaltungen, um einen durch Umgebungsbedingungen verursachten Sicherheitsangriff auf den Sicherheitsprozessor zu erkennen. Wie hier verwendet, bezieht sich der Begriff „Canary-Schaltung“ auf eine Schaltung, die aufgrund eines umweltbedingten Sicherheitsangriffs eine Fehlfunktion aufweist und eine beobachtbare Anzeige liefert, wenn die Fehlfunktion auftritt, so dass die Anzeige auch als Indikator für einen umweltbedingten Sicherheitsangriff dienen kann. In Übereinstimmung mit einigen Implementierungen führt ein Canary-Schaltkreis eine oder mehrere kryptographische Chiffriertransformationen durch, die eine Ausgabe auf der Grundlage einer bekannten Eingabe erzeugen, und die Ausgabe kann als Indikator verwendet werden. Auf diese Weise weist eine Abweichung der Ausgabe der Canary-Schaltung von einer erwarteten Ausgabe auf eine Fehlfunktion hin und zeigt einen durch die Umgebungsbedingungen verursachten Sicherheitsangriff an.According to embodiments, a security processor has one or more digital canary circuits to detect a security attack on the security processor caused by environmental conditions. As used herein, the term "canary circuit" refers to a circuit that malfunctions due to an environmental security attack and provides an observable indication when the malfunction occurs, such that the indication may also serve as an indicator of an environmental security attack. In accordance with some implementations, a canary circuit performs one or more cryptographic cipher transformations that produce an output based on a known input, and the output may be used as an indicator. In this way, a deviation of the canary circuit output from an expected output indicates a malfunction and indicates a security attack caused by the environmental conditions.

Der Canary-Schaltkreis kann über eine relativ komplexe Logik verfügen (z. B. eine Kette seriell gekoppelter AES-Chiffriertransformationen), die so ausgelegt ist, dass sie zu dem Zeitpunkt oder in der Nähe des Zeitpunkts ausfällt, zu dem eine geschützte Komponente (z. B. eine Root-of-Trust-Engine oder ein Sicherheitsverarbeitungskern) des Sicherheitsprozessors aufgrund eines durch die Umgebungsbedingungen verursachten Angriffs ausfällt. Gemäß Ausführungsbeispielen liefert die digitale Canary-Schaltung eine Manipulationsanzeige als Reaktion auf einen Ausgangswert, der von ihrer komplexen Logik erzeugt wird und nicht mit einem erwarteten Wert übereinstimmt. Um sicherzustellen, dass die digitale Canary-Schaltung einer ähnlichen Umgebung ausgesetzt ist wie das zu schützende Bauteil, werden die Logikgatter der Canary-Schaltung räumlich mit den Logikgattern des zu schützenden Bauteils vermischt, wie hier beschrieben. Wie hier weiter beschrieben, ermöglicht die hohe Empfindlichkeit der Canary-Schaltung gegenüber einem durch die Umgebungsbedingungen bedingten Sicherheitsangriff eine rechtzeitige Reaktion auf die Manipulation.The canary circuit may have relatively complex logic (e.g., a chain of serially coupled AES cipher transformations) that is designed to fail at or near the time a protected component (e.g., a root-of-trust engine or a security processing core) of the security processor fails due to an attack caused by the environmental conditions. According to embodiments, the digital canary circuit provides a tamper indication in response to an output value generated by its complex logic that does not match an expected value. To ensure that the digital canary circuit is exposed to a similar environment as the component to be protected, the logic gates of the canary circuit ation is spatially mixed with the logic gates of the component to be protected, as described here. As further described here, the high sensitivity of the canary circuit to an environmental-related security attack enables a timely response to the manipulation.

Wenn ein Sicherheitsprozessor einem durch Umgebungsbedingungen verursachten Sicherheitsangriff ausgesetzt wird, kann in Verbindung mit dem wiederholten Zurücksetzen des Sicherheitsprozessors die Wahrscheinlichkeit erhöht werden, dass der Sicherheitsangriff erfolgreich ist. So kann der Sicherheitsprozessor beispielsweise Teil einer Computerplattform sein, die über einen sicheren Startvorgang verfügt, um sicherzustellen, dass authentifizierte Firmware und Software auf der Computerplattform ausgeführt werden. Beim sicheren Hochfahren baut die Computerplattform eine kryptografische Vertrauenskette für die maschinenlesbaren Anweisungen (z. B. eine Firmware und Software) auf, die von der Computerplattform ausgeführt werden. Die Vertrauenskette kann mit einer Anfangsverbindung oder einem Vertrauensanker beginnen, der das Anfangsglied oder den Anfang der Vertrauenskette darstellt. Im Allgemeinen wird beim sicheren Booten jeder Satz maschinenlesbarer Anweisungen, der jedem Glied der Vertrauenskette entspricht, als vertrauenswürdig eingestuft und dann geladen und ausgeführt, um zu prüfen, ob der nächste Satz maschinenlesbarer Anweisungen, der dem nächsten Nachfolgeglied entspricht, vertrauenswürdig ist, bevor der nächste Satz geladen und ausgeführt werden darf.Exposing a security processor to a security attack caused by environmental conditions, coupled with repeated resetting of the security processor, can increase the likelihood that the security attack will be successful. For example, the security processor may be part of a computer platform that has a secure boot process to ensure that authenticated firmware and software are running on the computer platform. During secure boot, the computing platform establishes a cryptographic chain of trust for the machine-readable instructions (e.g., firmware and software) executed by the computing platform. The chain of trust can begin with an initial link or a trust anchor, which represents the initial link or beginning of the chain of trust. In general, secure boot involves trusting each set of machine-readable instructions corresponding to each link in the trust chain and then loading and executing it to check whether the next set of machine-readable instructions corresponding to the next successor link is trusted before the next one Set can be loaded and executed.

Da ein Sicherheitsprozessor eine Rolle beim Aufbau einer Vertrauenskette für eine Computerplattform spielen kann, wenn Komponenten des Sicherheitsprozessors aus dem Reset freigegeben werden, ist jeder Reset des Sicherheitsprozessors eine weitere Gelegenheit für eine induzierte Fehlfunktion des Sicherheitsprozessors, die einem Angreifer Vorteile bringt. Der Sicherheitsprozessor kann beispielsweise eine oder mehrere Komponenten enthalten, die ein oder mehrere Glieder einer kryptografischen Vertrauenskette bilden, und die Fehlfunktion einer oder mehrerer solcher Komponenten kann Angriffspunkte darstellen.Because a security processor can play a role in establishing a chain of trust for a computer platform, when components of the security processor are released from reset, each reset of the security processor is another opportunity for an induced malfunction of the security processor that provides an advantage to an attacker. For example, the security processor may include one or more components that form one or more links in a cryptographic chain of trust, and the malfunction of one or more such components may provide points of attack.

Ein spezifischeres Beispiel: Ein Sicherheitsprozessor kann eine Root-of-Trust-Engine enthalten, die einen Vertrauensanker für die Vertrauenskette einer Computerplattform setzt, wenn die Root-of-Trust-Engine aus dem Reset freigegeben wird. Durch eine Fehlfunktion des Sicherheitsprozessors zu dem Zeitpunkt oder in der Nähe des Zeitpunkts, zu dem die Root-of-Trust-Engine aus der Rücksetzphase entlassen wird, kann die Fehlfunktion beispielsweise dazu führen, dass ein bösartiger Satz von anfänglichen Firmware-Anweisungen fälschlicherweise authentifiziert (d. h. als vertrauenswürdig eingestuft) wird. Ein weiteres Beispiel: Firmware, die von einem Verarbeitungskern eines Sicherheitsprozessors ausgeführt wird, kann vertrauenswürdig sein, aber der Verarbeitungskern kann nach dem Zurücksetzen einen bösartigen Satz von Firmware-Anweisungen, der dem nächsten Glied der Vertrauenskette entspricht, fälschlicherweise authentifizieren. Ein weiteres Beispiel: Der anfängliche Firmware-Satz kann vertrauenswürdig sein, aber der Verarbeitungskern kann, nachdem er aus der Rücksetzphase entlassen wurde, die anfänglichen Fehler- und/oder Sicherheitsprüfungen nicht korrekt durchführen oder allgemein ein unerwartetes Ausführungsverhalten zeigen.As a more specific example, a security processor may contain a root-of-trust engine that sets a trust anchor for a computing platform's chain of trust when the root-of-trust engine is released from reset. For example, a malfunction of the security processor at or near the time that the root of trust engine is released from the reset phase could result in a malicious set of initial firmware instructions being falsely authenticated ( i.e. classified as trustworthy). As another example, firmware executed by a processing core of a security processor may be trusted, but the processing core may, after being reset, falsely authenticate a malicious set of firmware instructions corresponding to the next link in the chain of trust. As another example, the initial firmware set may be trustworthy, but the processing core, after being released from the reset phase, may not correctly perform the initial error and/or security checks or generally exhibit unexpected execution behavior.

Gemäß den hier beschriebenen Beispielen verfügt ein Halbleitergehäuse über einen Reset-Regler, der das Reset-Verhalten des Halbleitergehäuses steuert oder regelt. In Übereinstimmung mit den Beispielimplementierungen bezieht sich die Steuerung oder Regelung der „Rücksetzreaktion“ des Halbleitergehäuses auf die Zeit, die das Halbleitergehäuse im Rücksetzzustand gehalten wird, durch den Rücksetzregler. Anders ausgedrückt, steuert oder regelt der Reset-Regler gemäß Beispielimplementierungen eine „Reset-Haltezeit“, d. h. die kontinuierliche Zeit zwischen dem Beginn des Resets und dem Ende des Resets (auch als Freigabe des Resets bezeichnet). Die Steuerung der Rücksetz-Haltezeit durch den RücksetzRegler kann verwendet werden, um die Zeitrate, mit der das Halbleiterpaket zurückgesetzt werden kann, effektiv zu drosseln oder zu begrenzen, und diese Drosselung kann auferlegt und/oder erhöht werden, wenn eine Manipulation des Halbleiterpakets erkannt wird.According to the examples described herein, a semiconductor package includes a reset controller that controls or regulates the reset behavior of the semiconductor package. According to the example implementations, controlling or regulating the “reset response” of the semiconductor package refers to the amount of time the semiconductor package is held in the reset state by the reset controller. In other words, according to example implementations, the reset controller controls or regulates a “reset hold time,” which is the continuous time between the start of the reset and the end of the reset (also referred to as the release of the reset). Control of the reset hold time by the reset controller can be used to effectively throttle or limit the rate at which the semiconductor package can be reset, and this throttling can be imposed and/or increased when tampering with the semiconductor package is detected.

Im Allgemeinen steuert der Reset-Regler die Reaktion des Halbleitergehäuses auf eine „Reset-Anforderung“. In diesem Zusammenhang bezieht sich eine „Rücksetzanforderung“ auf eine Angabe, die bereitgestellt oder erzeugt wird, um eine oder mehrere Komponenten des Halbleitergehäuses zurückzusetzen. Eine Rücksetzanforderung kann beispielsweise durch ein elektrisches Rücksetzsignal ausgelöst werden. Viele verschiedene Komponenten, sowohl innerhalb des Halbleitergehäuses als auch außerhalb des Halbleitergehäuses, können die Aktivierung des Rücksetzsignals bewirken. Beispielsweise kann eine Stromüberwachungsschaltung außerhalb des Halbleitergehäuses das Rücksetzsignal auslösen. Ein weiteres Beispiel ist ein interner Watchdog-Timer des Halbleitergehäuses, der das Rücksetzsignal auslöst, wenn der Timer abläuft. Ein weiteres Beispiel ist, dass ein interner Schaltkreis das Rücksetzsignal als Reaktion auf das Schreiben eines bestimmten Bits in einem Steuerregister aktivieren kann.In general, the reset controller controls the response of the semiconductor package to a "reset request". In this context, a "reset request" refers to an indication provided or generated to reset one or more components of the semiconductor package. For example, a reset request may be triggered by an electrical reset signal. Many different components, both inside the semiconductor package and outside the semiconductor package, can cause the reset signal to be activated. For example, a power monitoring circuit outside the semiconductor package can trigger the reset signal. Another example is an internal watchdog timer of the semiconductor package that triggers the reset signal when the timer expires. Another example is that an internal circuit can activate the reset signal in response to a specific bit being written to a control register.

Das Rücksetzsignal kann einen ersten Zustand (z. B. einen aktivierten Zustand, wie einen logischen Nullzustand) haben, um das Halbleiterpaket in den Reset zu versetzen (oder die Einleitung des Resets anzufordern), und einen zweiten Zustand (z. B. einen deaktivierten Zustand, wie einen logischen Ein-Zustand), um das Halbleiterpaket aus dem Reset zu entlassen. In Übereinstimmung mit Beispielimplementierungen empfängt der Rücksetzregler ein Eingangsrücksetzsignal (z. B. das Rücksetzsignal, das aktiviert wird, um die Rücksetzanforderung bereitzustellen) und liefert ein Ausgangsrücksetzsignal an den/die Rücksetzanschluss/-anschlüsse von einer oder mehreren Komponenten des Halbleitergehäuses. Die Rücksetzsteuerung regelt die Rücksetzhaltezeit, d. h. die Verzögerung zwischen dem Zeitpunkt, zu dem die Rücksetzsteuerung das Ausgangsrücksetzsignal aktiviert (um die Rücksetzung zu beginnen), und dem Zeitpunkt, zu dem das Ausgangsrücksetzsignal das Ausgangsrücksetzsignal deaktiviert (um die Rücksetzung freizugeben).The reset signal may have a first state (e.g., an activated state, such as a logic zero state) to reset the semiconductor package (or request initiation of the reset), and a second state (e.g., deactivated state, such as a logical on state) to release the semiconductor package from reset. In accordance with example implementations, the reset controller receives an input reset signal (e.g., the reset signal activated to provide the reset request) and provides an output reset signal to the reset terminal(s) of one or more components of the semiconductor package. The reset control regulates the reset hold time, that is, the delay between the time when the reset control activates the output reset signal (to begin the reset) and the time when the output reset signal deactivates the output reset signal (to enable the reset).

Gemäß Ausführungsbeispielen kann der Rücksetzregler die Rücksetz-Haltezeit unabhängig von der Rücksetz-Haltezeit regeln, die durch das Eingangsrücksetzsignal angezeigt werden kann. Anders ausgedrückt, kann der Rücksetzregler, obwohl er die Rücksetzung als Reaktion auf die Aktivierung des Eingangs-Rücksetzsignals einleitet, die Rücksetzfreigabe des Rücksetzreglers unabhängig von der Zeit sein, in der das Eingangs-Rücksetzsignal nicht mehr aktiviert ist.According to embodiments, the reset controller may regulate the reset hold time independently of the reset hold time, which may be indicated by the input reset signal. In other words, although the reset controller initiates reset in response to activation of the input reset signal, the reset enable of the reset controller may be independent of the time that the input reset signal is no longer activated.

In Übereinstimmung mit Beispielimplementierungen regelt der Rücksetzregler die Rücksetz-Haltezeit (d.h. er regelt die Rücksetz-Reaktionszeit des Halbleitergehäuses) auf der Grundlage, ob eine der Kanarienschaltungen des Halbleitergehäuses eine Manipulationsaktivität erkannt hat oder nicht. Beispielsweise kann der Rücksetzregler in Übereinstimmung mit Beispielimplementierungen zunächst eine erste kleinere Rücksetz-Haltezeit vorgeben (z. B. eine Rücksetz-Haltezeit vorgeben, die der Rücksetz-Haltezeit des Eingangs-Rücksetzsignals entspricht, oder eine vordefinierte Mindest-Rücksetz-Haltezeit vorgeben), und der Rücksetzregler kann die Rücksetz-Haltezeit als Reaktion auf eine Canary-Schaltung, die die Erkennung von Manipulationsaktivitäten anzeigt, erhöhen.In accordance with example implementations, the reset controller regulates the reset hold time (i.e., it regulates the reset response time of the semiconductor package) based on whether or not one of the canary circuits of the semiconductor package has detected tamper activity. For example, in accordance with example implementations, the reset controller may first specify a first smaller reset hold time (e.g., specify a reset hold time that corresponds to the reset hold time of the input reset signal, or specify a predefined minimum reset hold time), and the reset controller can increase the reset hold time in response to a canary circuit indicating detection of tampering activity.

Gemäß Ausführungsbeispielen kann der Rücksetzregler die Rücksetz-Haltezeit als Reaktion auf die Erkennung einer Manipulationsaktivität regulieren, die nicht auf die Erkennung eines durch die Umgebungsbedingungen bedingten Sicherheitsangriffs durch eine Canary-Schaltung zurückzuführen ist. In diesem Zusammenhang bezieht sich die Erkennung von „Manipulationsaktivitäten“ auf die Erkennung oder Identifizierung einer Signatur eines oder mehrerer Ereignisse, wobei diese Signatur mit einer Signatur (einem zeitlichen Muster von Ereignissen, einem Attribut eines Ereignisses, einer bestimmten Abfolge von Ereignissen) eines Sicherheitsangriffs übereinstimmt.According to embodiments, the reset controller may regulate the reset hold time in response to detection of tamper activity that is not due to detection of an environmental security attack by a canary circuit. In this context, detection of "tamper activity" refers to detection or identification of a signature of one or more events, where this signature matches a signature (a temporal pattern of events, an attribute of an event, a particular sequence of events) of a security attack.

Als Beispiele für Manipulationsaktivitäten, die nicht auf einen durch die Umgebungsbedingungen bedingten Sicherheitsangriff zurückzuführen sind, können Manipulationsaktivitäten erkannt werden, wenn ein Schaltsensor anzeigt, dass die Computerplattform (z. B. ein Blade-Server) aus einem Gehäuse (z. B. einem Rack) entfernt wurde, oder wenn ein Schaltsensor anzeigt, dass eine Gehäuseabdeckung der Computerplattform geöffnet wurde. Als weitere Beispiele können Manipulationsaktivitäten erkannt werden, wenn die Höhe der Versorgungsspannung eine bestimmte Höchstgrenze überschreitet, wenn die Eingangstaktrate eine bestimmte Höchstrate überschreitet oder wenn die Chiptemperatur eine bestimmte Höchsttemperatur überschreitet.As examples of tampering activity that is not due to an environmental security attack, tampering activity can be detected when a switch sensor indicates that the computing platform (e.g., a blade server) is ejected from an enclosure (e.g., a rack ) has been removed, or if a switch sensor indicates that a computer platform cover has been opened. As further examples, tampering activities can be detected when the level of the supply voltage exceeds a certain maximum limit, when the input clock rate exceeds a certain maximum rate or when the chip temperature exceeds a certain maximum temperature.

Das Halbleiterpaket kann als Reaktion auf eine erkannte Manipulationsaktivität eine oder mehrere Aktionen einleiten und/oder durchführen, die über die Änderung der Rücksetzreaktion des Pakets hinausgehen können, um der erkannten Manipulationsaktivität entgegenzuwirken, sie zu melden und/oder abzuschwächen. So kann beispielsweise als Reaktion auf eine erkannte Manipulationsaktivität eine Abschaltung des Halbleitergehäuses eingeleitet werden. Ein weiteres Beispiel ist, dass das Halbleiterpaket die Erkennung von Manipulationsaktivitäten protokollieren kann. Als weiteres Beispiel kann das Halbleiterpaket als Reaktion auf die erkannte Manipulationsaktivität eine Warnung (z. B. das Senden einer Nachricht oder einer anderen Benachrichtigung an einen Systemadministrator) senden oder das Senden einer solchen einleiten. Ein weiteres Beispiel ist, dass das Halbleiterpaket Geheimnisse, die in einem sicheren Speicher gespeichert sind, als Reaktion auf eine erkannte Manipulationsaktivität löschen kann.The semiconductor package may initiate and/or perform one or more actions in response to detected tampering activity, which may go beyond changing the package's reset response, to counteract, report, and/or mitigate the detected tampering activity. For example, a shutdown of the semiconductor package may be initiated in response to detected tampering activity. As another example, the semiconductor package may log detection of tampering activity. As another example, the semiconductor package may send or initiate sending an alert (e.g., sending a message or other notification to a system administrator) in response to detected tampering activity. As another example, the semiconductor package may delete secrets stored in secure storage in response to detected tampering activity.

Wie in 1 als spezifischeres Beispiel dargestellt, enthält eine Computerplattform 100 in Übereinstimmung mit einigen Implementierungen ein Halbleitergehäuse 153, das eine oder mehrere digitale Canary-Schaltungen 134 (hier als „Canary-Schaltungen 134“ bezeichnet) und einen Reset-Regler 135 enthält. Wie hier beschrieben, können die Canary-Schaltungen 134 in Übereinstimmung mit Beispielimplementierungen in der Nähe von oder integriert in Komponenten des Sicherheitsprozessors 130 platziert werden, um gegen umweltbedingte Sicherheitsangriffe geschützt zu sein. Zu diesen Komponenten kann beispielsweise eine Silizium-Root-of-Trust-SRoT-Engine 143, ein Sicherheitsverarbeitungskern 142 und/oder eine andere Komponente des Sicherheitsprozessors 130 gehören. Der Rücksetzungsregler 135 steuert oder regelt eine Rücksetzungsreaktion des Sicherheitsprozessors 130, und der Rücksetzungsregler 135 ändert in Übereinstimmung mit Beispielimplementierungen die Rücksetzungsreaktion als Reaktion auf eine erkannte Manipulationsaktivität, wie z. B. eine Manipulationsaktivität, die von einer Canary-Schaltung 134 erkannt wird. Gemäß Ausführungsbeispielen regelt der Rücksetzregler 135 eine Rücksetz-Haltezeit für das Halbleitergehäuse 153 in Abhängigkeit davon, ob eine Manipulation des Halbleitergehäuses 153 festgestellt wurde.As in 1 As a more specific example, in accordance with some implementations, a computing platform 100 includes a semiconductor package 153 that includes one or more digital canary circuits 134 (referred to herein as “canary circuits 134”) and a reset controller 135. As described herein, in accordance with example implementations, the canary circuits 134 may be placed near or integrated with components of the security processor 130 to protect against environmental security attacks. These components may include, for example, a silicon root of trust SRoT engine 143, a security processing core 142, and/or other components. component of the security processor 130. The reset controller 135 controls or regulates a reset response of the security processor 130, and in accordance with example implementations, the reset controller 135 changes the reset response in response to detected tampering activity, such as tampering activity detected by a canary circuit 134. According to embodiments, the reset controller 135 regulates a reset hold time for the semiconductor package 153 depending on whether tampering of the semiconductor package 153 has been detected.

Bei dem Halbleitergehäuse 153 kann es sich um eine beliebige Anzahl verschiedener Halbleitergehäuse handeln, wie z. B. ein oberflächenmontierbares Gehäuse, ein Durchgangslochgehäuse, ein Ball-Grid-Array-Gehäuse, ein Small-Outline-Gehäuse, ein Chip-Scale-Gehäuse oder einen anderen Behälter, der einen oder mehrere Halbleiterchips 157 enthält.The semiconductor package 153 can be any number of different semiconductor packages, such as. B. a surface mount package, a through-hole package, a ball grid array package, a small outline package, a chip-scale package, or other container that contains one or more semiconductor chips 157.

Zusätzlich zur Erkennung von Manipulationsaktivitäten durch eine Canary-Schaltung 134 kann eine spezielle Schaltung zur Erkennung von Manipulationen des Halbleitergehäuses in einigen Ausführungsformen eine Manipulationsaktivität erkennen. Darüber hinaus kann in einigen Ausführungsformen eine Manipulationsaktivität durch den Reset-Regler 135 erkannt werden. Beispielsweise überwacht der Reset-Regler 135 in einigen Ausführungsbeispielen ein Zeitmuster von Reset-Anforderungen für das Halbleiterpaket 153, um festzustellen, ob die Zeitrate der Reset-Anforderungen einen vordefinierten Schwellenwert überschreitet (was auf die Erkennung von Manipulationsaktivitäten hinweist). Das Halbleiterpaket 153 kann gemäß Beispielimplementierungen als Reaktion auf eine erkannte Manipulationsaktivität eine oder mehrere Reaktionsmaßnahmen einleiten und/oder durchführen, um der Manipulationsaktivität entgegenzuwirken, die Manipulationsaktivität zu melden und/oder die aus der Manipulationsaktivität resultierenden Auswirkungen abzuschwächen.In addition to detecting tampering activity by a canary circuit 134, a dedicated semiconductor package tampering detecting circuit may detect tampering activity in some embodiments. Additionally, in some embodiments, tampering activity may be detected by the reset controller 135. For example, in some embodiments, the reset controller 135 monitors a timing pattern of reset requests for the semiconductor package 153 to determine whether the timing rate of reset requests exceeds a predefined threshold (indicating the detection of tampering activity). The semiconductor package 153 may, in response to a detected tampering activity, initiate and/or perform one or more response actions to counteract the tampering activity, report the tampering activity, and/or mitigate the effects resulting from the tampering activity, according to example implementations.

Der Reset-Regler 135 und die Canary-Schaltung(en) 134 können je nach der jeweiligen Implementierung Teil einer Reihe verschiedener Halbleitergehäuse sein. Wie in 1 dargestellt, kann das Halbleitergehäuse 153 beispielsweise einen Sicherheitsprozessor 130 enthalten, und ein Reset-Regler 135 und eine oder mehrere Kanarienschaltungen 134 können Teil des Sicherheitsprozessors 130 sein. Beispielsweise kann der Sicherheitsprozessor 130 auf einem oder mehreren Halbleiterchips 157 des Halbleitergehäuses 153 hergestellt werden. Im hier verwendeten Kontext bezieht sich ein „Sicherheitsprozessor“ auf eine Hardwarekomponente eines elektronischen Geräts, wie der Computerplattform 100, die einen oder mehrere sicherheitsbezogene Dienste für das elektronische Gerät durchführt.The reset regulator 135 and the canary circuit(s) 134 may be part of a number of different semiconductor packages depending on the particular implementation. As in 1 For example, as shown, the semiconductor package 153 may contain a security processor 130, and a reset controller 135 and one or more canary circuits 134 may be part of the security processor 130. For example, the security processor 130 can be manufactured on one or more semiconductor chips 157 of the semiconductor package 153. As used herein, a “security processor” refers to a hardware component of an electronic device, such as computing platform 100, that performs one or more security-related services for the electronic device.

In weiteren Ausführungsformen kann ein Halbleiterpaket einen Reset-Regler 135 und eine oder mehrere Canary-Schaltungen 134 enthalten; das Halbleiterpaket kann jedoch keinen Sicherheitsprozessor enthalten. Beispielsweise kann ein Halbleiterpaket (oder „Sockel“) einer Zentraleinheit (CPU) gemäß einigen Implementierungen einen Reset-Governor 135, eine oder mehrere Canary-Schaltungen 134 und einen oder mehrere Verarbeitungskerne (z. B. CPU-Kerne) enthalten, und das CPU-Halbleiterpaket kann keinen Sicherheitsprozessor enthalten. Als weiteres Beispiel kann ein Halbleiterpaket gemäß weiteren Implementierungen einen Reset-Governor 135 und eine oder mehrere Canary-Schaltungen 134 enthalten, wobei das Halbleiterpaket keine Verarbeitungskerne oder einen Sicherheitsprozessor enthält.In further embodiments, a semiconductor package may include a reset governor 135 and one or more canary circuits 134; however, the semiconductor package may not include a security processor. For example, according to some implementations, a central processing unit (CPU) semiconductor package (or "socket") may include a reset governor 135, one or more canary circuits 134, and one or more processing cores (e.g., CPU cores), and the CPU semiconductor package may not include a security processor. As another example, according to further implementations, a semiconductor package may include a reset governor 135 and one or more canary circuits 134, but the semiconductor package may not include any processing cores or a security processor.

Der Sicherheitsprozessor 130 kann in Abhängigkeit von der jeweiligen Implementierung verschiedene Formen annehmen. Beispielsweise kann der Sicherheitsprozessor 130 gemäß einigen Implementierungen einem eigenständigen sicherheitsspezifischen Halbleiterpaket entsprechen, das ein Hardware-Root-of-Trust enthält, ein Firmware-Image für eine Computerplattform validiert und den Start der Computerplattform auf der Grundlage eines Ergebnisses dieser Validierung steuert. Ein weiteres Beispiel ist, dass der Sicherheitsprozessor 130 gemäß einigen Implementierungen ein vertrauenswürdiges Plattformmodul (TPM) sein kann. Als weiteres Beispiel kann der Sicherheitsprozessor 130 gemäß einigen Implementierungen ein Co-Prozessor eines CPU-Halbleiterpakets mit mehreren CPU-Kernen (oder „Sockel“) sein.The security processor 130 may take various forms depending on the particular implementation. For example, according to some implementations, the security processor 130 may correspond to a standalone security-specific semiconductor package that includes a hardware root of trust, validates a firmware image for a computing platform, and controls the boot of the computing platform based on a result of that validation. As another example, according to some implementations, the security processor 130 may be a trusted platform module (TPM). As another example, according to some implementations, the security processor 130 may be a co-processor of a CPU semiconductor package having multiple CPU cores (or "sockets").

Bei der in 1 dargestellten Beispielimplementierung ist der Sicherheitsprozessor 130 Teil eines Management-Controllers, z. B. eines BMC 129.At the in 1 In the example implementation shown, the security processor 130 is part of a management controller, e.g. B. a BMC 129.

Im hier verwendeten Kontext ist ein „BMC“ oder „Baseboard Management Controller“ ein spezialisierter Dienstprozessor, der den physischen Zustand eines Servers oder anderer Hardware mithilfe von Sensoren überwacht und über ein Verwaltungsnetzwerk mit einem Verwaltungssystem kommuniziert. Der Baseboard-Management-Controller kann auch mit Anwendungen kommunizieren, die auf Betriebssystemebene ausgeführt werden, und zwar über einen IOCTL-Schnittstellentreiber (Input/Output Controller), eine REST-Anwendungsprogrammschnittstelle (API) oder einen anderen Systemsoftware-Proxy, der die Kommunikation zwischen dem Baseboard-Management-Controller und Anwendungen erleichtert. Der Baseboard-Management-Controller kann auf Hardware-Ebene auf Hardware-Geräte zugreifen, die sich in einem Servergehäuse befinden, einschließlich des Systemspeichers. Der Baseboard-Management-Controller kann in der Lage sein, die Hardware-Geräte direkt zu verändern. Der Baseboard-Management-Controller kann unabhängig vom Betriebssystem des Systems arbeiten, in dem der Baseboard-Management-Controller angeordnet ist. Ein Baseboard-Management-Controller kann sich auf der Hauptplatine oder der Hauptplatine des Servers oder eines anderen zu überwachenden Geräts befinden.As used herein, a "BMC" or "Baseboard Management Controller" is a specialized service processor that monitors the physical state of a server or other hardware using sensors and communicates with a management system over a management network. The baseboard management controller can also communicate with applications running at the operating system level through an Input/Output Controller (IOCTL) interface driver, a REST application program interface (API), or another system software proxy that facilitates communication between the baseboard management controller and applications. The baseboard management controller can be at the hardware level Access hardware devices located in a server chassis, including system memory. The baseboard management controller may be able to modify the hardware devices directly. The baseboard management controller can operate independently of the operating system of the system in which the baseboard management controller is located. A baseboard management controller can be located on the motherboard or motherboard of the server or other device being monitored.

Die Tatsache, dass ein Basisplatinen-Verwaltungscontroller auf einer Hauptplatine des verwalteten Servers/der verwalteten Hardware montiert oder anderweitig mit dem verwalteten Server/der verwalteten Hardware verbunden oder daran angebracht ist, verhindert nicht, dass der Basisplatinen-Verwaltungscontroller als „getrennt“ von dem Server/der Hardware betrachtet wird. Wie hierin verwendet, hat ein Baseboard-Management-Controller Verwaltungsfunktionen für Teilsysteme eines Computergeräts und ist von einer Verarbeitungsressource getrennt, die ein Betriebssystem eines Computergeräts ausführt. Der Baseboard-Management-Controller ist getrennt von einem Prozessor, z. B. einer Zentraleinheit, die ein High-Level-Betriebssystem oder einen Hypervisor auf einem System ausführt.The fact that a baseboard management controller is mounted on a motherboard of the managed server/hardware or is otherwise connected or attached to the managed server/hardware does not prevent the baseboard management controller from being considered "separate" from the server/hardware. As used herein, a baseboard management controller has management functions for subsystems of a computing device and is separate from a processing resource that executes an operating system of a computing device. The baseboard management controller is separate from a processor, such as a central processing unit, that executes a high-level operating system or hypervisor on a system.

Bei der Computerplattform 100 handelt es sich gemäß Ausführungsbeispielen um eine modulare Einheit, die einen Rahmen oder ein Chassis umfasst. Darüber hinaus kann diese modulare Einheit Hardware enthalten, die auf dem Chassis montiert und in der Lage ist, maschinenlesbare Anweisungen auszuführen. Ein Blade-Server ist ein Beispiel für eine Computerplattform 100, wie sie in einigen Implementierungen verwendet wird. Die Computerplattform 100 kann in Übereinstimmung mit weiteren Implementierungen eine Reihe verschiedener anderer Formen haben, wie z. B. einen in einem Gestell montierten Server, einen eigenständigen Server, einen Client, einen Desktop, ein Smartphone, einen tragbaren Computer, eine Netzwerkkomponente, ein Gateway, einen Netzwerk-Switch, ein Speicher-Array, ein tragbares elektronisches Gerät, einen tragbaren Computer, einen Tablet-Computer, einen Thin-Client, einen Laptop-Computer, einen Fernseher, einen modularen Switch, ein Gerät der Unterhaltungselektronik, ein Gerät, ein Edge-Processing-System, ein Sensorsystem, eine Uhr, eine herausnehmbare Peripheriekarte oder im Allgemeinen jede andere prozessorbasierte Plattform.The computing platform 100 is, according to embodiments, a modular unit that includes a frame or chassis. Furthermore, this modular unit may include hardware mounted on the chassis that is capable of executing machine-readable instructions. A blade server is an example of a computing platform 100 as used in some implementations. The computing platform 100 may take a number of different other forms, such as a rack-mounted server, a standalone server, a client, a desktop, a smartphone, a portable computer, a network component, a gateway, a network switch, a storage array, a portable electronic device, a wearable computer, a tablet computer, a thin client, a laptop computer, a television, a modular switch, a consumer electronics device, an appliance, an edge processing system, a sensor system, a watch, a removable peripheral card, or generally any other processor-based platform, in accordance with further implementations.

In Übereinstimmung mit Beispielimplementierungen kann die Computerplattform 100 mit einer Netzwerkstruktur 161 verbunden sein. Die Netzwerkstruktur 161 kann mit einem oder mehreren Typen von Kommunikationsnetzwerken verbunden sein, wie (als Beispiele) Fibre-Channel-Netzwerke, Compute-Express-Link (CXL)-Strukturen, dedizierte Verwaltungsnetzwerke, lokale Netzwerke (LANs), Weitverkehrsnetzwerke (WANs), globale Netzwerke (z. B. das Internet), drahtlose Netzwerke oder eine beliebige Kombination davon.In accordance with example implementations, computing platform 100 may be connected to a network fabric 161. Network fabric 161 may be connected to one or more types of communications networks, such as (as examples) Fibre Channel networks, Compute Express Link (CXL) fabrics, dedicated management networks, local area networks (LANs), wide area networks (WANs), global networks (e.g., the Internet), wireless networks, or any combination thereof.

In Übereinstimmung mit Beispielimplementierungen kann die BMC 129 einen Satz von Firmware-Anweisungen ausführen, die als „Firmware-Management-Stack“ bezeichnet werden, um eine Vielzahl von verwaltungsbezogenen Funktionen für einen Host 101 der Computerplattform 100 auszuführen. So kann die BMC 129 beispielsweise verwaltungsbezogene Funktionen wie Betriebssystem-Laufzeitdienste, Ressourcenerkennung und -initialisierung sowie Pre-Operating-Systemdienste bereitstellen. Die verwaltungsbezogenen Funktionen können auch Fernverwaltungsfunktionen umfassen. Zu den Fernverwaltungsfunktionen können beispielsweise Tastatur-Video-Maus-Funktionen (KVM), virtuelle Stromversorgungsfunktionen (z. B. fernaktivierte Funktionen zur Ferneinstellung eines Stromversorgungszustands, wie z. B. eines Energiesparzustands, eines Einschaltzustands, eines Rücksetzzustands oder eines Ausschaltzustands), virtuelle Medienverwaltungsfunktionen und eine oder mehrere andere verwaltungsbezogene Funktionen für den Host 101 gehören.In accordance with example implementations, the BMC 129 may execute a set of firmware instructions referred to as a "firmware management stack" to perform a variety of management-related functions for a host 101 of the computing platform 100. For example, the BMC 129 may provide management-related functions such as operating system runtime services, resource discovery and initialization, and pre-operating system services. The management-related functions may also include remote management functions. For example, the remote management functions may include keyboard video mouse (KVM) functions, virtual power functions (e.g., remotely activated functions for remotely setting a power state, such as a sleep state, a power-on state, a reset state, or a power-off state), virtual media management functions, and one or more other management-related functions for the host 101.

Ein „Host“ (oder „Host-Instanz“) ist mit einer Instanz des Betriebssystems 113 (z. B. einer Linux- oder Windows-Betriebssysteminstanz) verbunden und wird durch einen entsprechenden Satz von Ressourcen der Computerplattform 100 bereitgestellt. Bei der in 1 dargestellten Beispielimplementierung können die Ressourcen für einen Host 101 einen oder mehrere Haupt-CPU-Kerne 102 (z. B. CPU-Verarbeitungskerne, Halbleiter mit CPU-Prozessorkernen) und Speichervorrichtungen umfassen, die mit dem/den CPU-Kern(en) 102 verbunden sind, um einen Systemspeicher 104 zu bilden. Der/die CPU-Kern(e) 102 kann/können mit einer oder mehreren Ein-/Ausgabebrücken 106 gekoppelt sein, die die Kommunikation zwischen dem/den CPU-Kern(en) 102 und dem BMC 129 sowie die Kommunikation mit verschiedenen E/A-Geräten ermöglichen, z. B. mit Speicherlaufwerken 122, einem oder mehreren Netzwerkschnittstellen-Controllern (NICs) 124, einem oder mehreren USB-Geräten (Universal Serial Bus) 126, E/A-Geräten, einem Videocontroller und so weiter. Darüber hinaus kann die Computerplattform 100, wie ebenfalls in 1 dargestellt, ein oder mehrere Peripheral Component Interconnect Express (PCIe)-Geräte 110 (z. B. PCIe-Erweiterungskarten) enthalten, die über entsprechende individuelle PCIe-Busse 108 mit dem/den CPU-Kern(en) 102 verbunden sein können. Gemäß einer weiteren Beispielimplementierung können die PCIe-Geräte 110 mit der/den E/A-Brücke(n) 106 gekoppelt werden, anstatt mit dem/den CPU-Kern(en) 102 gekoppelt zu sein. In noch weiteren Implementierungen können die E/A-Brücke(n) 106 und die PCIe-Schnittstellen Teil des/der CPU-Kerns/e 102 sein.A “host” (or “host instance”) is associated with an instance of the operating system 113 (e.g., a Linux or Windows operating system instance) and is provided by a corresponding set of resources of the computing platform 100. At the in 1 In the example implementation shown, the resources for a host 101 may include one or more main CPU cores 102 (e.g., CPU processing cores, semiconductors with CPU processor cores) and memory devices connected to the CPU core(s) 102 are to form a system memory 104. The CPU core(s) 102 may be coupled to one or more input/output bridges 106 that facilitate communication between the CPU core(s) 102 and the BMC 129, as well as communication with various I/Os. A devices enable, e.g. B. with storage drives 122, one or more network interface controllers (NICs) 124, one or more USB (Universal Serial Bus) devices 126, I/O devices, a video controller, and so on. In addition, the computer platform 100, as also shown in 1 shown include one or more Peripheral Component Interconnect Express (PCIe) devices 110 (e.g., PCIe expansion cards), which may be connected to the CPU core(s) 102 via corresponding individual PCIe buses 108. According to another example implementation, the PCIe devices 110 may be coupled to the I/O bridge(s) 106 the, rather than being coupled to the CPU core(s) 102. In still other implementations, the I/O bridge(s) 106 and the PCIe interfaces may be part of the CPU core(s) 102.

In Übereinstimmung mit einigen Implementierungen kann die Computerplattform 100 mehrere Hosts 101 enthalten (z. B. kann jeder Host 101 einem zugehörigen CPU-Multicore-Paket (oder „Sockel“) entsprechen). Das BMC 129 kann verwaltungsbezogene Dienste und sicherheitsbezogene Dienste für jeden Host 101 bereitstellen.In accordance with some implementations, the computing platform 100 may include multiple hosts 101 (e.g., each host 101 may correspond to an associated CPU multicore package (or "socket")). The BMC 129 may provide management-related services and security-related services for each host 101.

Im Allgemeinen können die Speichervorrichtungen, die den Systemspeicher 104 bilden, sowie andere hier beschriebene Speicher und Speichermedien aus nicht transitorischen Speichervorrichtungen wie Halbleiterspeichervorrichtungen, Flash-Speichervorrichtungen, Memristoren, Phasenwechsel-Speichervorrichtungen, einer Kombination aus einer oder mehreren der vorgenannten Speichertechnologien usw. gebildet werden. Darüber hinaus können die Speichervorrichtungen flüchtige Speichervorrichtungen (z. B. dynamische Direktzugriffsspeicher (DRAM), statische Direktzugriffsspeicher (SRAM) usw.) oder nichtflüchtige Speichervorrichtungen (z. B. Flash-Speicher, Festwertspeicher (ROM) usw.) sein, sofern hier nicht anders angegeben.In general, the memory devices that make up the system memory 104, as well as other memories and storage media described herein, may be formed from non-transitory memory devices such as semiconductor memory devices, flash memory devices, memristors, phase change memory devices, a combination of one or more of the aforementioned memory technologies, etc. In addition, the memory devices may be volatile memory devices (e.g., dynamic random access memory (DRAM), static random access memory (SRAM), etc.) or non-volatile memory devices (e.g., flash memory, read-only memory (ROM), etc.), except herein stated otherwise.

In Übereinstimmung mit einigen Implementierungen können eine oder mehrere NICs 124 intelligente Eingabe-/Ausgabe-Peripheriegeräte oder „intelligente E/A-Peripheriegeräte“ sein, die Backend-E/A-Dienste für eine oder mehrere Anwendungen 115 (oder Anwendungsinstanzen) bereitstellen, die auf der Computerplattform 100 ausgeführt werden. In Übereinstimmung mit einigen Implementierungen können eines oder mehrere der PCIe-Geräte 110 intelligente E/A-Peripheriegeräte sein.In accordance with some implementations, one or more NICs 124 may be intelligent input/output peripherals or “intelligent I/O peripherals” that provide backend I/O services to one or more applications 115 (or application instances) that be executed on the computer platform 100. In accordance with some implementations, one or more of the PCIe devices 110 may be intelligent I/O peripherals.

In Übereinstimmung mit Beispielimplementierungen umfasst der BMC 129 einen oder mehrere Hauptverwaltungsprozessorkerne 154 (hier als „Hauptverarbeitungskerne 154“ bezeichnet), die maschinenlesbare Anweisungen ausführen, um Verwaltungsfunktionen für einen Host 101 als Teil der Verwaltungsebene des BMC durchzuführen. Diese Anweisungen können einem Firmware-Management-Stack des BMC 129 entsprechen. Der (die) Hauptverarbeitungskern(e) 154 führt (führen) den Firmware-Verwaltungsstapel aus, um dem BMC 129 zu ermöglichen, eine Vielzahl von Verwaltungsfunktionen für den Host 101 auszuführen, wie z. B. die Überwachung von Sensoren, die Überwachung des Betriebssystemstatus, die Überwachung des Energiestatus, die Protokollierung von Computersystemereignissen, die Bereitstellung einer Fernkonsole, die Bereitstellung von ferngesteuerten Funktionen und anderen virtuellen Präsenztechnologien sowie andere Verwaltungsaktivitäten. In Übereinstimmung mit Beispielimplementierungen kann die BMC 129 mit einem Fernverwaltungsserver 190 über eine NIC 158 der BMC 129 kommunizieren. In Übereinstimmung mit weiteren Implementierungen kann das BMC 129 mit dem Fernverwaltungsserver 190 über eine NIC 124 kommunizieren.In accordance with example implementations, the BMC 129 includes one or more main management processor cores 154 (referred to herein as “main processing cores 154”) that execute machine-readable instructions to perform management functions for a host 101 as part of the management plane of the BMC. These instructions may correspond to a BMC 129 firmware management stack. The main processing core(s) 154 executes the firmware management stack to enable the BMC 129 to perform a variety of management functions for the host 101, such as: Such as monitoring sensors, monitoring operating system status, monitoring power status, logging computer system events, providing a remote console, providing remote functions and other virtual presence technologies, and other management activities. In accordance with example implementations, the BMC 129 may communicate with a remote management server 190 via a NIC 158 of the BMC 129. In accordance with other implementations, the BMC 129 may communicate with the remote management server 190 via a NIC 124.

Neben der Bereitstellung von Verwaltungsfunktionen für den/die Host(s) 101 kann die BMC 129 sicherheitsbezogene Merkmale bereitstellen, die den/die Host(s) 101 vor Sicherheitsangriffen schützen. Insbesondere umfasst die Sicherheitsebene des BMC in Übereinstimmung mit Beispielimplementierungen eine sichere Enklave 140. In diesem Zusammenhang bezieht sich eine „sichere Enklave“ auf ein Teilsystem der BMC 129, für das der Zugriff in das und aus dem Teilsystem streng kontrolliert wird. Wie hier weiter beschrieben, kann die sichere Enklave 140 in Übereinstimmung mit Beispielimplementierungen neben ihren anderen Merkmalen den Rücksetzregler 135, eine oder mehrere Canary-Schaltungen 134, einen sicheren Speicher 144 und den Sicherheitsverarbeitungskern 142 umfassen.In addition to providing management functions for the host(s) 101, the BMC 129 may provide security-related features that protect the host(s) 101 from security attacks. In particular, in accordance with example implementations, the security layer of the BMC includes a secure enclave 140. In this context, a “secure enclave” refers to a subsystem of the BMC 129 for which access into and out of the subsystem is tightly controlled. As further described herein, in accordance with example implementations, the secure enclave 140 may include, among its other features, the reset controller 135, one or more canary circuits 134, a secure memory 144, and the security processing core 142.

Gemäß Beispielimplementierungen führt die sichere Enklave 140 kryptografische Funktionen für den/die Host(s) 101 aus und ist vollständig innerhalb einer kryptografischen Begrenzung angeordnet. Eine „kryptografische Grenze“ bezieht sich in diesem Zusammenhang auf eine kontinuierliche Grenze oder einen Perimeter, der die logischen und physischen Komponenten eines kryptografischen Teilsystems enthält, wie z. B. BMC-Komponenten, die die sichere Enklave 140 bilden.According to example implementations, the secure enclave 140 performs cryptographic functions for the host(s) 101 and is located entirely within a cryptographic boundary. A "cryptographic boundary" in this context refers to a continuous boundary or perimeter that contains the logical and physical components of a cryptographic subsystem, such as BMC components, that make up the secure enclave 140.

Die sichere Enklave 140 der BMC 129 ist in Übereinstimmung mit Beispielimplementierungen von der Verwaltungsebene der BMC (und anderen nicht sicheren Komponenten der BMC 129, die sich außerhalb der sicheren Enklave 140 befinden) isoliert. Gemäß Beispielimplementierungen umfasst die sichere Enklave 140 eine Hardware- oder Silizium-RoT (hier als „SRoT“ bezeichnet), die über die SRoT-Engine 143 bereitgestellt werden kann.The secure enclave 140 of the BMC 129 is isolated from the management plane of the BMC (and other non-secure components of the BMC 129 that are external to the secure enclave 140) in accordance with example implementations. According to example implementations, the secure enclave 140 includes a hardware or silicon RoT (referred to herein as "SRoT") that may be provided via the SRoT engine 143.

Insbesondere speichert die sichere Enklave 140 in Übereinstimmung mit Beispielimplementierungen einen unveränderlichen Fingerabdruck, der von der SRoT-Engine 143 verwendet wird, um einen anfänglichen Teil der Firmware 170 zu validieren (d. h. die Vertrauenswürdigkeit des anfänglichen Teils zu überprüfen), bevor dieser anfängliche Teil der Firmware 170 ausgeführt wird. In Übereinstimmung mit Beispielimplementierungen hält die BMC 129 als Reaktion auf das Einschalten oder Zurücksetzen der BMC 129 ihren Hauptverarbeitungskern bzw. ihre Hauptverarbeitungskerne 154 im Reset, und die BMC 129 hält den Sicherheitsverarbeitungskern 142 der sicheren Enklave 140 im Reset. Als Reaktion auf das Einschalten/Zurücksetzen validiert die SRoT-Engine 143 einen anfänglichen Teil der Firmware 170 und lädt ihn dann in einen Speicher 151 der sicheren Enklave 140, so dass diesem Firmware-Teil nun vertraut wird. Die BMC 129 gibt dann den Sicherheitsverarbeitungskern 142 aus dem Reset frei, damit der Sicherheitsverarbeitungskern 142 booten und die geladenen Firmware-Befehle ausführen kann.In particular, in accordance with example implementations, the secure enclave 140 stores an immutable fingerprint that is used by the SRoT engine 143 to validate an initial portion of the firmware 170 (ie, verify the trustworthiness of the initial portion) before that initial portion of the firmware 170 is executed. In accordance with example implementations, in response to powering up or resetting the BMC 129, the BMC 129 maintains its main processing core(s) 154 in reset, and the BMC 129 maintains the security processing core 142 of the secure enclave 140 in reset. As reaction upon power-on/reset, the SRoT engine 143 validates an initial portion of the firmware 170 and then loads it into a memory 151 of the secure enclave 140 so that that portion of firmware is now trusted. The BMC 129 then releases the security processing core 142 from reset to allow the security processing core 142 to boot and execute the loaded firmware instructions.

Durch Ausführen der Firmware-Anweisungen kann der Sicherheitsverarbeitungskern 142 dann einen anderen Teil der Firmware 170 validieren, der einem Teil des Management-Firmware-Stacks des BMC entspricht, und nach der Validierung diesen Teil des Firmware-Stacks in einen Speicher 155 des BMC 129 laden. Der Teil des Management-Firmware-Stacks kann dann von dem/den Hauptverarbeitungskern(en) 154 des BMC ausgeführt werden (wenn er aus dem Reset freigegeben wird), was den/die Hauptverarbeitungskern(e) 154 veranlasst, zusätzliche Teile der Firmware 170 zu laden und die geladenen Teile in einem Speicher 164 abzulegen. Der Zugriff auf den Speicher 164 kann zusätzliche Trainings- und Initialisierungsschritte beinhalten (z. B. Trainings- und Initialisierungsschritte, die in der DDR4-Spezifikation festgelegt sind). Diese Anweisungen können von dem validierten Teil des Firmware-Management-Stacks des BMC im Speicher 155 ausgeführt werden. In Übereinstimmung mit Beispielimplementierungen kann die sichere Enklave 140 den Speicher 155 sperren, um Änderungen oder Manipulationen an den validierten Firmware-Abschnitten, die im Speicher 155 gespeichert sind, zu verhindern.By executing the firmware instructions, the security processing core 142 may then validate another portion of the firmware 170 corresponding to a portion of the BMC's management firmware stack, and after validation, load that portion of the firmware stack into a memory 155 of the BMC 129. The portion of the management firmware stack may then be executed by the BMC's main processing core(s) 154 (when released from reset), causing the main processing core(s) 154 to load additional portions of the firmware 170 and place the loaded portions in a memory 164. Accessing the memory 164 may include additional training and initialization steps (e.g., training and initialization steps specified in the DDR4 specification). These instructions may be executed by the validated portion of the BMC's firmware management stack in the memory 155. In accordance with example implementations, secure enclave 140 may lock memory 155 to prevent changes or tampering with the validated firmware sections stored in memory 155.

Daher kann gemäß Beispielimplementierungen eine kryptografische Vertrauenskette, die in der SRoT der BMC verankert ist, von der SRoT auf den Firmware-Management-Stack ausgedehnt werden, der von den Hauptverarbeitungskernen 154 der BMC ausgeführt wird. Darüber hinaus kann der Firmware-Verwaltungsstapel, der von dem/den Hauptverarbeitungskern(en) 154 ausgeführt wird, gemäß Beispielimplementierungen Hostsystem-Firmware validieren, beispielsweise UEFI 111-Firmware (Unified Extensible Firmware Interface), wodurch die Vertrauenskette auf die Hostsystem-Firmware ausgedehnt wird.Therefore, according to example implementations, a cryptographic chain of trust anchored in the SRoT of the BMC may be extended from the SRoT to the firmware management stack executed by the main processing cores 154 of the BMC. Furthermore, according to example implementations, the firmware management stack executed by the main processing core(s) 154 may validate host system firmware, such as Unified Extensible Firmware Interface (UEFI) 111 firmware, thereby extending the chain of trust to the host system firmware.

In Übereinstimmung mit Beispielimplementierungen ist die BMC 129 so konstruiert, dass sie eine bestimmte Domäne oder Entität der BMC 129 daran hindert, sich einzuschalten oder aus dem Reset zu kommen, bis die sichere Enklave 140 die Domäne/Entität validiert. Darüber hinaus kann die BMC 129 in Übereinstimmung mit Beispielimplementierungen Komponenten der BMC 129 daran hindern, auf Ressourcen der BMC 129 und Ressourcen der Computerplattform 100 zuzugreifen, bis die sichere Enklave 140 die Ressourcen genehmigt/validiert hat. Das BMC 129 kann Busfilterung und -überwachung durchführen (z. B. Busfilterung und -überwachung für einen SPI-Bus (Serial Peripheral Interface), einen SMB-Bus (System Management Bus), einen I2 C-Bus (Inter-Integrated Component), einen I3 C-Bus (Improved I2 C) usw.), um unerwünschten Zugriff auf Busgeräte zu verhindern. Beispielsweise kann der BMC 129 eine Busfilterung und -überwachung für einen Bus 167 (z. B. einen SPI-Bus) durchführen, der mit einem nichtflüchtigen Speicher 168 verbunden ist, in dem die Firmware 170 gespeichert ist.In accordance with example implementations, the BMC 129 is designed to prevent a particular domain or entity of the BMC 129 from powering on or coming out of reset until the secure enclave 140 validates the domain/entity. Additionally, in accordance with example implementations, the BMC 129 may prevent components of the BMC 129 from accessing resources of the BMC 129 and resources of the computing platform 100 until the secure enclave 140 has approved/validated the resources. The BMC 129 may perform bus filtering and monitoring (e.g., bus filtering and monitoring for a Serial Peripheral Interface (SPI) bus, a System Management Bus (SMB) bus, an Inter-Integrated Component (I 2 C) bus, an Improved I 3 C (I 2 C) bus, etc.) to prevent unwanted access to bus devices. For example, the BMC 129 may perform bus filtering and monitoring for a bus 167 (e.g., an SPI bus) that is connected to a non-volatile memory 168 in which the firmware 170 is stored.

In Übereinstimmung mit Beispielimplementierungen kann der Rücksetzregler 135 auf demselben Halbleiterchip 157 wie die sichere Enklave 140 hergestellt werden. Wie hierin beschrieben, hat der Sicherheitsprozessor 130 gemäß Beispielimplementierungen zwar einen gestaffelten Reset, bei dem der Sicherheitsverarbeitungskern 142 und die SRoT-Engine 143 gleichzeitig in den Reset versetzt werden, aber der Sicherheitsverarbeitungskern 142 und die SRoT-Engine 143 werden zu unterschiedlichen Zeiten aus dem Reset freigegeben. Auf diese Weise wird gemäß Beispielimplementierungen zuerst die SRoT-Engine 143 aus dem Reset freigegeben (während der Sicherheitsverarbeitungskern 142 im Reset gehalten wird), um den Anfangsteil der Firmware 170 zu validieren. In Übereinstimmung mit Beispielimplementierungen gibt die SRoT-Engine 143 den Sicherheitsverarbeitungskern 142 aus der Rückstellung frei, nachdem die SRoT-Engine validiert hat, und lädt dann den Anfangsteil der Firmware 170 in den Speicher 151 für die Ausführung des Verarbeitungskerns. In Übereinstimmung mit Beispielimplementierungen steuert die Reset-Haltezeit (die durch den Reset-Regler 135 geregelt wird) die Zeit, die die SRoT-Engine 143 im Reset gehalten wird. Durch die Festlegung einer steuerbaren Reset-Haltezeit für den Reset-Zustand kann der Reset-Regler 135 Reset-Anforderungen drosseln oder begrenzen, um die Rate zu begrenzen, mit der der Sicherheitsprozessor 130 zurückgesetzt werden kann.In accordance with example implementations, the reset regulator 135 may be fabricated on the same semiconductor chip 157 as the secure enclave 140. As described herein, according to example implementations, although the security processor 130 has a staggered reset in which the security processing core 142 and the SRoT engine 143 are brought into reset at the same time, the security processing core 142 and the SRoT engine 143 come out of the reset at different times Approved. In this way, according to example implementations, the SRoT engine 143 is first released from reset (while the security processing core 142 is kept in reset) to validate the initial portion of the firmware 170. In accordance with example implementations, the SRoT engine 143 releases the security processing core 142 from default after the SRoT engine validates and then loads the initial portion of the firmware 170 into memory 151 for execution of the processing core. Consistent with example implementations, the reset hold time (which is controlled by the reset controller 135) controls the time that the SRoT engine 143 is held in reset. By setting a controllable reset hold time for the reset state, the reset controller 135 can throttle or limit reset requests to limit the rate at which the security processor 130 can be reset.

In Übereinstimmung mit einigen Implementierungen regelt die Rücksetzsteuerung 135 die Dauer der Rücksetz-Haltezeit in Abhängigkeit davon, ob eine Manipulationsaktivität erkannt wurde oder nicht. Zum Beispiel kann der Rücksetzregler 135 in Übereinstimmung mit Beispielimplementierungen eine erste, kleinere Rücksetzhaltezeit festlegen, wenn eine Manipulationserkennungshistorie (z. B. eine Historie, die durch nichtflüchtige Speicherbits dargestellt wird) keine vorherige Manipulationserkennung anzeigt, und der Rücksetzregler 135 kann die Rücksetzhaltezeit als Reaktion auf eine erkannte Manipulationsaktivität erhöhen. In Übereinstimmung mit einigen Implementierungen kann ein Hinweis auf eine Manipulationsaktivität das Ergebnis eines Sensors eines Manipulationserkennungsschaltkreises des Sicherheitsprozessors 130 sein, der eine Umgebungsbedingung erkennt (z. B. die Rate, die einen Schwellenwert überschreitet, der eine Versorgungsspannung, eine Taktrate oder eine Chiptemperatur definiert), die über einen bestimmten Bereich für die Umgebungsbedingung hinausgeht. In Übereinstimmung mit Implementierungsbeispielen kann eine Canary-Schaltung 134 des Sicherheitsprozessors 130 einen durch die Umgebungsbedingungen bedingten Sicherheitsangriff erkennen und einen entsprechenden Hinweis auf eine Manipulationserkennung geben.In accordance with some implementations, the reset controller 135 regulates the duration of the reset hold time depending on whether or not tampering activity has been detected. For example, in accordance with example implementations, the reset controller 135 may set a first, smaller reset hold time when a tamper detection history (e.g., a history represented by non-volatile memory bits) does not indicate a previous tamper detection, and the reset controller 135 may increase the reset hold time in response to detected tamper activity. In accordance with some implementations, an indication of tamper activity may be the result of a sensor of a tamper detection circuit. of the security processor 130 that detects an environmental condition (e.g., the rate exceeding a threshold defining a supply voltage, a clock rate, or a chip temperature) that exceeds a certain range for the environmental condition. In accordance with implementation examples, a canary circuit 134 of the security processor 130 may detect an environmental condition-related security attack and provide a corresponding tamper detection indication.

In Übereinstimmung mit einigen Implementierungen kann die Rücksetzsteuerung 135 Manipulationsaktivitäten auf der Grundlage des Zeitmusters der Rücksetzanforderungen, die dem Sicherheitsprozessor 130 bereitgestellt werden, erkennen. In einigen Implementierungen kann die Rücksetzsteuerung 135 beispielsweise eine Manipulationsaktivität erkennen, wenn die Rate der Rücksetzanforderungen einen vordefinierten Schwellenwert überschreitet (z. B. wenn die Rate einen Schwellenwert überschreitet, der eine maximale Anzahl N von Rücksetzanforderungen innerhalb eines Zeitraums T definiert).In accordance with some implementations, the reset controller 135 may detect tampering activities based on the timing pattern of reset requests provided to the security processor 130. For example, in some implementations, the reset controller 135 may detect tampering activity when the rate of reset requests exceeds a predefined threshold (e.g., when the rate exceeds a threshold that defines a maximum number N of reset requests within a time period T).

Wie in 2 gezeigt, kann die sichere Enklave 140 ein komplettes System-on-Chip (SOC) sein und sich innerhalb einer streng kontrollierten kryptografischen Grenze 204 befinden. Im Allgemeinen können die Komponenten der sicheren Enklave 140 über eine Businfrastruktur 205 kommunizieren. In Übereinstimmung mit Beispielimplementierungen kann die Businfrastruktur 205 Merkmale wie einen Datenbus, einen Steuerbus, einen Adressbus, einen Systembus, einen oder mehrere Busse, eine oder mehrere Brücken usw. umfassen.As in 2 As shown, the secure enclave 140 may be a complete system-on-chip (SOC) and located within a tightly controlled cryptographic boundary 204. In general, the components of the secure enclave 140 may communicate via a bus infrastructure 205. In accordance with example implementations, the bus infrastructure 205 may include features such as a data bus, a control bus, an address bus, a system bus, one or more buses, one or more bridges, etc.

Der Sicherheitsverarbeitungskern 142 kann einen Befehls-Cache 209 und einen Daten-Cache 211 enthalten. Der flüchtige Speicher 151 kann beispielsweise ein statischer Direktzugriffsspeicher (SRAM) sein und Daten speichern, die Messungen der vertrauenswürdigen Datenbasis (Trusted Computing Base, TCB) darstellen, beispielsweise eine oder mehrere PCR-Banken. Der sichere Speicher 144 kann zum Beispiel ein nichtflüchtiger RAM (NVRAM) sein. Die sichere Enklave 140 kann Register 240 enthalten. Bei den Registern 240 kann es sich um Softwareregister, Hardwareregister oder eine Kombination aus Hardware- und Softwareregistern handeln, abhängig von der jeweiligen Implementierung. In einigen Implementierungen umfassen die Register 240 beispielsweise kryptografisch sichere Register, wie Software-PCRs. Darüber hinaus können die Register 240 gemäß Beispielimplementierungen Betriebsregister umfassen, wie z. B. Hardware-Register, die Steuer-, Status- und Konfigurationsfunktionen für die sichere Enklave 140 bereitstellen.The security processing core 142 may include an instruction cache 209 and a data cache 211. The volatile memory 151 may be, for example, a static random access memory (SRAM) and may store data representing measurements of the trusted computing base (TCB), such as one or more PCR banks. The secure memory 144 may be, for example, a non-volatile RAM (NVRAM). The secure enclave 140 may include registers 240. The registers 240 may be software registers, hardware registers, or a combination of hardware and software registers, depending on the particular implementation. For example, in some implementations, the registers 240 include cryptographically secure registers, such as software PCRs. In addition, according to example implementations, the registers 240 may include operational registers, such as hardware registers that provide control, status, and configuration functions for the secure enclave 140.

Die sichere Enklave 140 umfasst in Übereinstimmung mit Beispielimplementierungen eine sichere Brücke 214, die über eine sichere Verbindung 218 den Zugang zur sicheren Enklave 140 kontrolliert (d. h. eine Firewall für die sichere Enklave 140 einrichtet). Bei der Verbindung 218 kann es sich beispielsweise um einen Bus 218 (z. B. einen SPI-Bus) oder eine interne Verbindungsstruktur handeln, wie z. B. eine Advanced Microcontroller Bus Architecture (AMBA)-Struktur oder eine Advanced eXtensible Interface (AXI)-Struktur. Die sichere Brücke 214 kann eine zusätzliche vorgelagerte Schnittstelle bereitstellen, damit die sichere Enklave 140 die Verbindung 218 „erreichen“ kann. Die sichere Enklave 140 kann die vorgelagerte Schnittstelle nutzen, um ihre Firmware zu erhalten und im Allgemeinen die Firmware 170 zu validieren (1). Die sichere Brücke 214 kann Filterung und Überwachung auf der Verbindungsleitung 218 einsetzen, um einen unbefugten Zugriff auf den Speicher 151 zu verhindern. In Übereinstimmung mit Beispielimplementierungen kann die Verwaltungsebene des BMC 129 mit der sicheren Enklave 140 über die Ausführung einer oder mehrerer Sicherheitsdienst-Programmierschnittstellen (APIs) kommunizieren.The secure enclave 140, in accordance with example implementations, includes a secure bridge 214 that controls access to the secure enclave 140 (ie, establishes a firewall for the secure enclave 140) over a secure connection 218. The connection 218 may be, for example, a bus 218 (e.g. an SPI bus) or an internal connection structure, such as. B. an Advanced Microcontroller Bus Architecture (AMBA) structure or an Advanced eXtensible Interface (AXI) structure. The secure bridge 214 may provide an additional upstream interface to allow the secure enclave 140 to “reach” the connection 218. The secure enclave 140 may use the upstream interface to obtain its firmware and generally validate the firmware 170 ( 1 ). The secure bridge 214 may employ filtering and monitoring on the connection line 218 to prevent unauthorized access to the memory 151. In accordance with example implementations, the management plane of the BMC 129 may communicate with the secure enclave 140 through the execution of one or more security service programming interfaces (APIs).

Wie ebenfalls in 2 dargestellt, kann die sichere Enklave 140 in Übereinstimmung mit Beispielimplementierungen eine Manipulationserkennungsschaltung 234 enthalten. Die Manipulationserkennungsschaltung 234 empfängt gemäß Beispielimplementierungen ein oder mehrere Umgebungssignale 236 (z. B. Sensorsignale, die eine Chiptemperatur, eine Taktrate, eine Versorgungsspannungsgröße, einen Gehäuseöffnungsstatus, einen Entnahmestatus usw. darstellen), die die Manipulationserkennungsschaltung 234 zur Erkennung von Manipulationen verwenden kann. Beispielsweise kann die Manipulationserkennungsschaltung 234 einen Wert (z. B. eine Versorgungsspannung), der durch ein bestimmtes Umgebungssignal 236 dargestellt wird, mit einem Schwellenwert (z. B. einem Höchstschwellenwert für die Versorgungsspannung) vergleichen, um festzustellen, ob eine Manipulationsaktivität erkannt wird. Als weiteres Beispiel kann die Manipulationserkennungsschaltung 234 feststellen, ob ein bestimmtes Umgebungssignal 236 (z. B. ein Schalterstatus, der anzeigt, ob eine Gehäuseabdeckung geöffnet wurde) einen Zustand aufweist, der anzeigt, dass eine Abdeckung der Computerplattform 100 geöffnet wurde.As also in 2 , in accordance with example implementations, secure enclave 140 may include tamper detection circuitry 234. Tamper detection circuitry 234 receives one or more environmental signals 236 (e.g., sensor signals representing a chip temperature, clock rate, supply voltage magnitude, package open status, removal status, etc.) that tamper detection circuitry 234 may use to detect tampering, in accordance with example implementations. For example, tamper detection circuitry 234 may compare a value (e.g., a supply voltage) represented by a particular environmental signal 236 to a threshold (e.g., a maximum threshold for the supply voltage) to determine whether tampering activity is detected. As another example, the tamper detection circuit 234 may determine whether a particular environmental signal 236 (e.g., a switch status indicating whether a chassis cover has been opened) has a condition indicating that a cover of the computer platform 100 has been opened.

Die Manipulationserkennungsschaltung 234 kann in Übereinstimmung mit Beispielimplementierungen Manipulationsanzeigesignale 237 überwachen, die von Kanarienschaltungen 134 der sicheren Enklave 140 bereitgestellt werden, um festzustellen, ob eine durch die Umgebungsbedingungen bedingte Manipulationsaktivität von einer der Kanarienschaltungen 134 erkannt wurde. Darüber hinaus kann die Manipulationserkennungsschaltung 234 in Übereinstimmung mit einigen Implementierungen über eine oder mehrere Kommunikationsleitungen 274 einen Hinweis auf eine erkannte Manipulationsaktivität von der Rücksetzsteuerung 135 empfangen (z. B. einen Hinweis darauf, dass die Rücksetzsteuerung 135 erkannt hat, dass die Zeitrate der Rücksetzanforderungen einen vordefinierten Schwellenwert überschreitet).The tamper detection circuit 234 may, in accordance with example implementations, monitor tamper indication signals 237 provided by canary circuits 134 of the secure enclave 140 to determine whether environmental tamper activity has been detected by one of the canary circuits 134. Additionally, in accordance with some implementations, the tamper detection circuit 234 may receive an indication of detected tamper activity from the reset controller 135 via one or more communication lines 274 (e.g., an indication that the reset controller 135 has detected that the time rate of reset requests exceeds a predefined threshold).

In Übereinstimmung mit einigen Implementierungen kann die Manipulationserkennungsschaltung 234 einen Rücksetzindikator 283 (z. B. ein in einem nichtflüchtigen Speicher gespeichertes Bit) überwachen, der mit einer Echtzeituhr (RTC) 280 verbunden ist, um eine mit der RTC 280 verbundene Manipulationsaktivität zu erkennen. Auf diese Weise kann die RTC-Vorrichtung 280, wie hierin weiter beschrieben, in Übereinstimmung mit Beispielimplementierungen vom Rücksetzregler 135 verwendet werden, um die Rücksetzhaltezeit zu messen. Die RTC-Vorrichtung 280 kann mit einer Pufferbatterie 285 (z. B. einer „Münz“-Batterie) verbunden sein, und wenn die Pufferbatterie 285 entfernt wird, können flüchtige Speicher der RTC-Vorrichtung 280 gelöscht werden, wodurch die RTC-Vorrichtung 280 zurückgesetzt wird.In accordance with some implementations, the tamper detection circuit 234 may monitor a reset indicator 283 (e.g., a bit stored in non-volatile memory) connected to a real time clock (RTC) 280 to detect tamper activity associated with the RTC 280. In this manner, as further described herein, the RTC device 280 may be used by the reset controller 135 to measure the reset hold time, in accordance with example implementations. The RTC device 280 may be connected to a backup battery 285 (e.g., a "coin" battery), and when the backup battery 285 is removed, volatile memories of the RTC device 280 may be erased, thereby causing the RTC device 280 is reset.

Gemäß einigen Implementierungen kann der Rücksetzregler 135 beispielsweise einen Alarmtimer der RTC-Vorrichtung 280 verwenden, so dass die RTC-Vorrichtung 280 eine Anzeige erzeugt (z. B. ein Interruptsignal aktiviert), wenn der Timer eine Zeit erreicht, die der Rücksetzregler 135 in ein Register der RTC-Vorrichtung 280 schreibt. Der Reset-Governor 135 kann die von der RTC-Vorrichtung 280 gelieferte Anzeige verwenden, um die Freigabe eines Resets auszulösen (d. h. die Dauer der Reset-Haltezeit einzustellen). Wenn die RTC-Vorrichtung 280 zurückgesetzt wird, kann jedoch auch die Rücksetz-Haltezeit effektiv zurückgesetzt werden, um so die Auferlegung einer längeren Rücksetz-Haltezeit zu vereiteln, was für einen Angreifer von Vorteil sein kann.For example, according to some implementations, the reset governor 135 may use an alarm timer of the RTC device 280 such that the RTC device 280 generates an indication (e.g., asserts an interrupt signal) when the timer reaches a time that the reset governor 135 writes to a register of the RTC device 280. The reset governor 135 may use the indication provided by the RTC device 280 to trigger the release of a reset (i.e., set the duration of the reset hold time). However, when the RTC device 280 is reset, the reset hold time may also be effectively reset, thus thwarting the imposition of a longer reset hold time, which may be advantageous to an attacker.

In Übereinstimmung mit Beispielimplementierungen kann das Entfernen der Stützbatterie 281 erkannt werden, und als Reaktion auf diese Erkennung kann der Zustand der Rücksetzanzeige 283 auf einen Wert gesetzt werden, der anzeigt, dass die RTC-Vorrichtung 280 zurückgesetzt wurde. Beispielsweise kann eine Schaltung das Entfernen der Stützbatterie 285 erkennen, indem sie Daten in einem nichtflüchtigen Speicher speichert, die einen oder mehrere Registerwerte (z. B. Daten, die ein aktuelles Datum oder einen anderen Wert darstellen) der RTC-Vorrichtung 280 repräsentieren, und regelmäßig den/die entsprechenden aktuellen Registerwert(e) mit dem/den gespeicherten Wert(en) vergleicht, um zu sehen, ob der/die aktuelle(n) Registerwert(e) zeitlich zurückgegangen ist/sind. In Übereinstimmung mit einigen Implementierungen kann die RTC-Vorrichtung 280 ihre Rücksetzung erkennen und die Rücksetzanzeige 283 setzen, um die Rücksetzung anzuzeigen. In Übereinstimmung mit weiteren Implementierungen kann die Manipulationserkennungsschaltung 234 die Einstellung der Rücksetzanzeige 283 steuern. Es wird darauf hingewiesen, dass, obwohl in 2 die RTC-Vorrichtung 280 außerhalb der sicheren Enklave 140 dargestellt ist, die RTC-Vorrichtung 280 in Übereinstimmung mit weiteren Implementierungen Teil der sicheren Enklave 140 sein kann. In Übereinstimmung mit einigen Implementierungen kann die RTC-Vorrichtung 280 einer von mehreren Zeitgebern 254 der sicheren Enklave 140 sein.In accordance with example implementations, removal of the backup battery 281 may be detected, and in response to this detection, the state of the reset indicator 283 may be set to a value indicating that the RTC device 280 has been reset. For example, a circuit may detect removal of the backup battery 285 by storing data in non-volatile memory representing one or more register values (e.g., data representing a current date or other value) of the RTC device 280 and periodically comparing the corresponding current register value(s) to the stored value(s) to see if the current register value(s) has regressed in time. In accordance with some implementations, the RTC device 280 may detect its reset and set the reset indicator 283 to indicate the reset. In accordance with further implementations, the tamper detection circuit 234 may control the setting of the reset indicator 283. It is noted that, although in 2 the RTC device 280 is shown outside of the secure enclave 140, in accordance with further implementations, the RTC device 280 may be part of the secure enclave 140. In accordance with some implementations, the RTC device 280 may be one of a plurality of timers 254 of the secure enclave 140.

In Übereinstimmung mit Beispielimplementierungen kann die Manipulationserkennungsschaltung 234, wenn eine Manipulation durch die Manipulationserkennungsschaltung 234 erkannt wird, eine oder mehrere Aktionen einleiten und/oder durchführen, um auf die erkannte Manipulationsaktivität zu reagieren. Zum Beispiel kann die Manipulationserkennungsschaltung 234 über Kommunikationsleitungen 290 mit der Businfrastruktur 205 kommunizieren, um eine oder mehrere Reaktionsmaßnahmen einzuleiten, um der Manipulationsaktivität entgegenzuwirken, die Manipulationsaktivität zu melden und/oder die Auswirkungen der Manipulationsaktivität zu mildern. Als weiteres Beispiel kann die Manipulationserkennungsschaltung 234 über eine oder mehrere Kommunikationsleitungen 274 mit dem Rücksetzregler 135 kommunizieren, um den Rücksetzregler 135 zu veranlassen, die Rücksetzhaltezeit zu erhöhen. Als weiteres Beispiel kann die Manipulationserkennungsschaltung 234 die sichere Enklave 140 veranlassen, sensible Informationen zu entfernen (z. B. bestimmte Geheimnisse zu löschen, die im sicheren Speicher 144 gespeichert sind); ein Signal oder eine Nachricht zu übermitteln, um eine externe Komponente zu alarmieren (z. B, einen Hauptverarbeitungskern 154, das Betriebssystem 113 (1), den Fernverwaltungsserver 190 (1) oder eine andere Einheit) auf die Manipulationsaktivität aufmerksam zu machen; den/die Hauptverarbeitungskern(e) 154 zurückzusetzen; oder eine oder mehrere andere Reaktionsmaßnahmen durchzuführen, um der Manipulationsaktivität entgegenzuwirken, die Manipulationsaktivität zu melden und/oder die Auswirkungen der Manipulationsaktivität zu mildern.In accordance with example implementations, when tampering is detected by tamper detection circuit 234, tamper detection circuit 234 may initiate and/or perform one or more actions to respond to the detected tamper activity. For example, tamper detection circuit 234 may communicate with bus infrastructure 205 via communication lines 290 to initiate one or more response actions to counteract the tamper activity, report the tamper activity, and/or mitigate the effects of the tamper activity. As another example, tamper detection circuit 234 may communicate with reset controller 135 via one or more communication lines 274 to cause reset controller 135 to increase the reset hold time. As another example, tamper detection circuit 234 may cause secure enclave 140 to remove sensitive information (e.g., delete certain secrets stored in secure storage 144); transmit a signal or message to alert an external component (e.g., a main processing core 154, the operating system 113 ( 1 ), the remote management server 190 ( 1 ) or another entity) of the tampering activity; reset the main processing core(s) 154; or perform one or more other response actions to counteract the tampering activity, report the tampering activity, and/or mitigate the effects of the tampering activity.

In Übereinstimmung mit einigen Implementierungen kann der Rücksetzregler 135 einen Ausgang 282 haben, der ein Ausgangsrücksetzsignal liefert. Der Ausgang 282 kann mit einem Rücksetzanschluss 203 des SRoT-Motors 143 gekoppelt sein, so dass der Rücksetzregler 135 ein Ausgangsrücksetzsignal aktivieren kann, um den SRoT-Motor 143 in den Rücksetzzustand zu versetzen, und das Ausgangsrücksetzsignal deaktivieren kann, um den SRoT-Motor 143 aus dem Rücksetzzustand zu lösen. Wie in 2 dargestellt, enthält der Rücksetzregler 135 in Übereinstimmung mit Beispielimplementierungen einen Eingang 207, der ein Eingangsrücksetzsignal empfängt, das eine Rücksetzanforderung 201 anzeigen kann. Eine bestimmte Rücksetzanforderung 201 kann z. B. dadurch erzeugt werden, dass das Eingangsrücksetzsignal aktiviert wird (z. B. auf einen logischen Nullpegel gebracht wird). Gemäß Ausführungsbeispielen setzt der Rücksetzregler 135 als Reaktion auf die Aktivierung des Eingangsrücksetzsignals sein Ausgangsrücksetzsignal durch, um den SRoT-Motor 143 in den Rücksetzzustand zu versetzen. Ohne das Vorhandensein des Rücksetzreglers 135 (d. h., wenn das Eingangs- und das Ausgangsrücksetzsignal gleich sind), wird der SRoT-Motor 143 durch die Rücknahme des Eingangsrücksetzsignals (z. B. durch die Erlaubnis, dass das Eingangsrücksetzsignal auf einen logischen Eins-Pegel zurückkehrt) aus dem Rücksetzzustand entlassen.In accordance with some implementations, the reset controller 135 may have an output 282 that provides an output reset signal. The output 282 can be connected to a reset connection 203 of the SRoT motor 143 be coupled so that the reset controller 135 can activate an output reset signal to put the SRoT motor 143 into the reset state and can deactivate the output reset signal to release the SRoT motor 143 from the reset state. As in 2 As shown, in accordance with example implementations, reset controller 135 includes an input 207 that receives an input reset signal that may indicate a reset request 201. A specific reset request 201 can e.g. B. can be generated by activating the input reset signal (e.g. bringing it to a logic zero level). According to embodiments, in response to activation of the input reset signal, the reset controller 135 asserts its output reset signal to place the SRoT motor 143 into the reset state. Without the presence of the reset controller 135 (ie, when the input and output reset signals are equal), the SRoT motor 143 is powered down by resetting the input reset signal (e.g., by allowing the input reset signal to return to a logic one level ) released from the reset state.

Gemäß einigen Implementierungen gibt der Rücksetzregler 135 den SRoT-Motor 143 aus der Rücksetzung frei (z. B. hebt das Ausgangsrücksetzsignal auf), wenn das Eingangsrücksetzsignal aufgehoben wird, oder in relativ kurzer Zeit danach, wenn keine Manipulationsaktivität festgestellt wurde. Wenn jedoch eine Manipulationsaktivität erkannt wurde, gibt der Rücksetzregler 135 den SRoT-Motor 143 mit einer relativ längeren Verzögerung aus der Rücksetzung frei (z. B. gibt der Rücksetzregler 135 eine längere Rücksetz-Haltezeit vor), wie in Beispielen gezeigt wird.According to some implementations, the reset controller 135 releases the SRoT motor 143 from reset (e.g., clears the output reset signal) when the input reset signal is cleared, or in a relatively short time thereafter if no tamper activity is detected. However, if tampering activity is detected, the reset controller 135 releases the SRoT motor 143 from reset with a relatively longer delay (e.g., the reset controller 135 specifies a longer reset hold time), as shown in examples.

Neben anderen Merkmalen kann die sichere Enklave 140 in Übereinstimmung mit einigen Implementierungen, wie in 2 dargestellt, eine kryptografische Verarbeitungsmaschine 270 enthalten, die in den sicheren Speicher 144 geschriebene Daten verschlüsselt und aus dem sicheren Speicher 144 gelesene Daten entschlüsselt. Abhängig von der jeweiligen Implementierung kann die Ver- und Entschlüsselung eine Advanced Encryption Standard-XOR-Encrypt-XOR-Based Tweaked-Codebook Mode with Ciphertext Stealing (oder „AES-XTS“) Blockchiffre oder eine andere Blockchiffre verwenden.Among other features, the secure enclave 140 may, in accordance with some implementations, as in 2 shown, may include a cryptographic processing engine 270 that encrypts data written to the secure storage 144 and decrypts data read from the secure storage 144. Depending on the particular implementation, the encryption and decryption may use an Advanced Encryption Standard-XOR-Encrypt-XOR-Based Tweaked-Codebook Mode with Ciphertext Stealing (or "AES-XTS") block cipher or another block cipher.

Die sichere Enklave 140 kann in Übereinstimmung mit Beispielimplementierungen kryptografische Beschleuniger 244 enthalten, wie z. B. symmetrische und asymmetrische kryptografische Beschleuniger, die den Sicherheitsverarbeitungskern 142 bei Operationen wie Schlüsselerzeugung, Signaturvalidierung, Verschlüsselung, Entschlüsselung usw. unterstützen. Darüber hinaus können die kryptografischen Beschleuniger 244 einen echten Zufallszahlengenerator enthalten, um eine vertrauenswürdige Entropiequelle für kryptografische Operationen bereitzustellen.The secure enclave 140 may include cryptographic accelerators 244, such as symmetric and asymmetric cryptographic accelerators, in accordance with example implementations that assist the security processing core 142 in operations such as key generation, signature validation, encryption, decryption, etc. In addition, the cryptographic accelerators 244 may include a true random number generator to provide a trusted source of entropy for cryptographic operations.

In Übereinstimmung mit Beispielimplementierungen kann die sichere Enklave 140 einmalig programmierbare (OTP-)Sicherungen 258 enthalten, die Daten speichern, die wirklich unveränderliche Attribute darstellen, wie z. B. eine Silizium-Root-of-Trust-Signatur nach Secure Hash Algorithm 2 (SHA-2) (z. B. den unveränderlichen Fingerabdruck, der von der SRoT-Engine 143 verwendet wird), einen eindeutigen Identifikator (z. B. einen Identifikator, der verwendet wird, um ein Plattform-Identitätszertifikat zu platzieren), einen Fingerabdruck zur Sicherheitsfreigabe und so weiter. Die sichere Enklave 140 kann auch andere Komponenten aufweisen, die, wie ein Fachmann wissen kann, in einer prozessorbasierten Architektur vorhanden sein können, wie z. B. Zeitgeber 254, ein Unterbrechungscontroller 250 (der Unterbrechungsauslösungsimpulse von den Zeitgebern 254 und anderen Quellen empfängt) und so weiter.In accordance with example implementations, the secure enclave 140 may include one-time programmable (OTP) fuses 258 that store data representing truly immutable attributes, such as a Secure Hash Algorithm 2 (SHA-2) silicon root of trust signature (e.g., the immutable fingerprint used by the SRoT engine 143), a unique identifier (e.g., an identifier used to place a platform identity certificate), a security clearance fingerprint, and so on. The secure enclave 140 may also include other components that, as one of skill in the art may appreciate, may be present in a processor-based architecture, such as timers 254, an interrupt controller 250 (which receives interrupt trigger pulses from the timers 254 and other sources), and so on.

Darüber hinaus kann die sichere Enklave 140 Schnittstellen zur Unterstützung der anfänglichen Entwicklung und Fehlersuche der sicheren Enklave 140 (im Vorproduktionsmodus der sicheren Enklave 140) enthalten, die jedoch vollständig deaktiviert werden können oder (für den Produktionsmodus der sicheren Enklave 140) geänderte Funktionen aufweisen können, wenn bestimmte Sicherungen (z. B. bestimmte OTP-Sicherungen 258) durchgebrannt sind. Zu diesen Schnittstellen kann beispielsweise ein Universal Asynchronous Receiver/Transmitter (UART) 262 gehören, der für die Fehlersuche und Entwicklung der sicheren Enklave 140 verwendet werden kann und dann für den Produktionsmodus der sicheren Enklave 140 auf eine reine Sendekonfiguration gesichert wird. Gemäß einigen Implementierungen kann der UART 262 beispielsweise von den OTP-Sicherungen 258 so konfiguriert werden, dass er im Produktionsmodus der sicheren Enklave 140 einseitig Statusinformationen von der sicheren Enklave 140 liefert. Als weiteres Beispiel können die OTP-Fuses 258 in Übereinstimmung mit weiteren Implementierungen den UART 262 für den Produktionsmodus deaktivieren, so dass die gesamte Kommunikation mit dem UART 262 deaktiviert wird, um jegliche Kommunikation über die kryptografische Grenze 204 zu verhindern. Als weiteres Beispiel für eine Schnittstelle, die bei der anfänglichen Entwicklung und Fehlersuche der sicheren Enklave 140 hilfreich sein kann, aber für den Produktionsmodus modifiziert/deaktiviert werden kann, kann die sichere Enklave 140 eine Joint Test Action Group (JTAG)-Schnittstelle (nicht dargestellt) für den Sicherheitsprozessor enthalten; und diese JTAG-Schnittstelle kann für den Produktionsmodus der sicheren Enklave 140 deaktiviert werden.In addition, the secure enclave 140 may include interfaces to support the initial development and troubleshooting of the secure enclave 140 (in the pre-production mode of the secure enclave 140), but which may be completely disabled or may have modified functions (for the production mode of the secure enclave 140). if certain fuses (e.g. certain OTP fuses 258) are blown. These interfaces may include, for example, a Universal Asynchronous Receiver/Transmitter (UART) 262, which may be used for troubleshooting and development of the secure enclave 140 and then secured to a transmit-only configuration for the production mode of the secure enclave 140. For example, according to some implementations, the UART 262 may be configured by the OTP fuses 258 to unilaterally provide status information from the secure enclave 140 in production mode to the secure enclave 140. As another example, in accordance with other implementations, the OTP fuses 258 may disable the UART 262 for production mode so that all communication with the UART 262 is disabled to prevent any communication across the cryptographic boundary 204. As another example of an interface that may assist in initial development and troubleshooting of the secure enclave 140, but may be modified/disabled for production mode, the secure enclave 140 may include a Joint Test Action Group (JTAG) interface (not shown ) for the security processor included; and this JTAG interface can be disabled for secure enclave 140 production mode.

In 3 ist ein Teilsystem 300 der sicheren Enklave 140 dargestellt, das die Reaktion der sicheren Enklave 140 auf Rücksetzanforderungen 201 in Übereinstimmung mit Beispielimplementierungen steuert. Wie in 3 gezeigt, umfasst das Teilsystem 300 gemäß Beispielimplementierungen den Reset-Regler 135 und die RTC-Vorrichtung 280. Gemäß Beispielimplementierungen empfängt der Rücksetzregler 135 Rücksetzanforderungen 201 von einer oder mehreren Rücksetzanforderungsquellen 350. Eine bestimmte Rücksetzanforderungsquelle 350 kann extern oder intern zum Sicherheitsprozessor 130 sein (1).In 3 A subsystem 300 of the secure enclave 140 is shown that controls the response of the secure enclave 140 to reset requests 201 in accordance with example implementations. As in 3 As shown, according to example implementations, the subsystem 300 includes the reset controller 135 and the RTC device 280. According to example implementations, the reset controller 135 receives reset requests 201 from one or more reset request sources 350. A particular reset request source 350 may be external or internal to the security processor 130 ( 1 ).

Eine Quelle für die Rücksetzanforderung 350 kann beispielsweise eine Stromüberwachungsschaltung sein. Ein weiteres Beispiel: Gemäß einigen Implementierungen kann eine Rücksetzanforderungsquelle 350 eine Schaltung sein, die eine Rücksetzanforderung 201 als Reaktion darauf erzeugt, dass der Sicherheitsverarbeitungskern 142 (2) in ein Rücksetzbit eines Steuerregisters schreibt. Als weiteres Beispiel kann eine Rücksetzanforderungsquelle 350 in Übereinstimmung mit einigen Implementierungen ein Watchdog-Timer sein. Eine Rücksetzanforderungsquelle 350 kann möglicherweise mit einer bösartigen Entität verbunden sein, um Rücksetzanforderungen 201 als Teil eines Sicherheitsangriffs zu erzeugen. Eine Rücksetzanforderungsquelle 350 kann eine Schaltung des Sicherheitsprozessors 130 (1), des BMC 129 (1) oder der Computerplattform 100 (1) sein, kann aber von einer bösartigen Organisation manipuliert werden, um Rücksetzanforderungen 201 als Teil eines Sicherheitsangriffs zu erzeugen.A source for the reset request 350 may be, for example, a power monitoring circuit. As another example, according to some implementations, a reset request source 350 may be circuitry that generates a reset request 201 in response to the security processing core 142 ( 2 ) writes into a reset bit of a control register. As another example, a reset request source 350 may be a watchdog timer in accordance with some implementations. A reset request source 350 may potentially be associated with a malicious entity to generate reset requests 201 as part of a security attack. A reset request source 350 may include circuitry of the security processor 130 ( 1 ), of BMC 129 ( 1 ) or the computer platform 100 ( 1 ), but can be manipulated by a malicious organization to generate reset requests 201 as part of a security attack.

Wie in 3 dargestellt, umfasst der Rücksetzregler 135 in Übereinstimmung mit einigen Implementierungen eine Rücksetzverzögerungsschaltung 310 und einen Controller 304. Die Rücksetzfreigabe-Verzögerungsschaltung 310 leitet gemäß Beispielimplementierungen die Bestätigung des Eingangsrücksetzsignals (empfangen am Eingang 207) an das Ausgangsrücksetzsignal (bereitgestellt am Ausgang 282) weiter. Anders ausgedrückt, in Übereinstimmung mit Beispielimplementierungen erzwingt die Rücksetzfreigabe-Verzögerungsschaltung 310 eine geringe bis gar keine Verzögerung bei der Aktivierung des Ausgangs-Rücksetzsignals, nachdem das Eingangs-Rücksetzsignal aktiviert wurde. Gemäß Ausführungsbeispielen löst die Flanke des Eingangs-Rücksetzsignals, die mit der Aktivierung verbunden ist (z. B. die negativ verlaufende Flanke), den Rücksetzregler 135 aus, um eine Rücksetz-Haltezeit zu messen, d. h. die Zeit zu messen, die vergeht, bevor der Rücksetzregler 135 das Ausgangs-Rücksetzsignal wieder freigibt, um das Rücksetzen freizugeben.As in 3 As shown, in accordance with some implementations, the reset regulator 135 includes a reset delay circuit 310 and a controller 304. The reset enable delay circuit 310 passes the assertion of the input reset signal (received at input 207) to the output reset signal (provided at output 282), in accordance with example implementations. In other words, in accordance with example implementations, the reset enable delay circuit 310 enforces little to no delay in the assertion of the output reset signal after the input reset signal is asserted. According to embodiments, the edge of the input reset signal associated with the activation (e.g., the negative going edge) triggers the reset controller 135 to measure a reset hold time, ie, to measure the time that elapses before the reset controller 135 releases the output reset signal again to enable the reset.

Genauer gesagt, in Übereinstimmung mit einigen Implementierungen schreibt der Controller 304 als Reaktion auf die Aktivierung des Eingangs-Rücksetzsignals Daten, die einen Zeitwert darstellen, in ein Alarm-Timer-Register 360 der RTC-Vorrichtung 280. Der Zeitwert stellt eine zukünftige RTC-Zeit dar, die von der aktuellen RTC-Zeit um die Rücksetz-Haltezeit versetzt ist. Die RTC-Vorrichtung 280 misst auf diese Weise die Rücksetz-Haltezeit und erzeugt eine Anzeige (z. B. ein Interrupt-Signal), um anzuzeigen, dass die Rücksetz-Haltezeit abgelaufen ist. Die Rücksetzfreigabeverzögerungsschaltung 310 wartet in Übereinstimmung mit Beispielimplementierungen darauf, dass die RTC-Vorrichtung 280 die Anzeige erzeugt, die die Messung der Rücksetzhaltezeit darstellt. Als Reaktion darauf, dass die RTC-Vorrichtung 280 die Anzeige erzeugt, setzt die Rücksetzfreigabeverzögerungsschaltung 310 das Ausgangsrücksetzsignal am Ausgang 282 durch, um die Rücksetzung freizugeben.More specifically, in accordance with some implementations, in response to the activation of the input reset signal, the controller 304 writes data representing a time value to an alarm timer register 360 of the RTC device 280. The time value represents a future RTC time offset from the current RTC time by the reset hold time. The RTC device 280 thus measures the reset hold time and generates an indication (e.g., an interrupt signal) to indicate that the reset hold time has expired. The reset enable delay circuit 310 waits for the RTC device 280 to generate the indication representing the measurement of the reset hold time, in accordance with example implementations. In response to the RTC device 280 producing the indication, the reset enable delay circuit 310 asserts the output reset signal at output 282 to enable the reset.

Der Controller 304 kann in Übereinstimmung mit Beispielimplementierungen die Rücksetz-Haltezeit regulieren (und daher den entsprechenden Wert in das Alarmzeitregister schreiben), je nachdem, ob eine Manipulationsaktivität erkannt wurde. Wenn beispielsweise keine Manipulationsaktivität erkannt wurde, kann der Controller 304 Daten in das Alarmregister der RTC-Vorrichtung 280 schreiben, die einen Zeitversatz darstellen, der einer minimalen Rücksetz-Haltezeit entspricht. Wenn eine Manipulationsaktivität erkannt wurde, kann die Steuereinheit 304 Daten in das Alarmregister der RTC-Vorrichtung 280 schreiben, die eine vordefinierte längere Rücksetz-Haltezeit darstellen, die von der aktuellen Zeit versetzt ist.The controller 304 may, in accordance with example implementations, regulate the reset hold time (and therefore write the corresponding value to the alarm time register) depending on whether tampering activity has been detected. For example, if no tampering activity has been detected, the controller 304 may write data to the alarm register of the RTC device 280 representing a time offset corresponding to a minimum reset hold time. If tampering activity has been detected, the controller 304 may write data to the alarm register of the RTC device 280 representing a predefined longer reset hold time offset from the current time.

In Übereinstimmung mit einigen Implementierungen kann die Steuerung 304 die Rücksetz-Haltezeit auf der Grundlage der Art der erkannten Manipulation regulieren. Beispielsweise kann die Steuereinheit 304 als Reaktion auf einen durch die Umgebungsbedingungen bedingten Sicherheitsangriff eine längere Rücksetz-Haltezeit vorschreiben als eine Rücksetz-Haltezeit, die für andere Arten von Manipulationsaktivitäten vorgeschrieben ist. Darüber hinaus kann die Steuereinheit 304 gemäß einigen Implementierungen die Rücksetz-Haltezeit für bestimmte Arten von Manipulationen (z. B. einen umweltbedingten Sicherheitsangriff) nach oben korrigieren, jedoch nicht für andere Arten von Manipulationen (z. B. eine erkannte Öffnung der Abdeckung).In accordance with some implementations, the controller 304 may regulate the reset hold time based on the type of tampering detected. For example, in response to an environmental security attack, the controller 304 may prescribe a longer reset hold time than a reset hold time prescribed for other types of tampering activities. Moreover, in accordance with some implementations, the controller 304 may adjust the reset hold time upward for certain types of tampering (e.g., an environmental security attack) but not for other types of tampering (e.g., a detected cover opening).

In Übereinstimmung mit einigen Implementierungen kann die Steuereinheit 304 mehr als zwei Rücksetz-Haltezeiten festlegen. Darüber hinaus kann die Steuereinheit 304 die Rücksetz-Haltezeit auf der Grundlage eines Verlaufs der Erkennung von Manipulationsaktivitäten regulieren. Beispielsweise kann die Steuereinheit 304 eine erste Rücksetz-Haltezeit als Reaktion auf eine anfängliche Erkennung einer Manipulationsaktivität festlegen, und die Steuereinheit kann eine zweite Rücksetz-Haltezeit, die größer als die erste Rücksetz-Haltezeit ist, als Reaktion auf eine nachfolgende Erkennung einer Manipulationsaktivität festlegen.In accordance with some implementations, the controller 304 may set more than two reset hold times. In addition, the controller 304 may set the reset hold time based on a history of detection of tampering activities. For example, the controller 304 may set a first reset hold time in response to an initial detection of tampering activity, and the controller may set a second reset hold time, greater than the first reset hold time, in response to a subsequent detection of tampering activity.

Das Steuergerät 304 kann aus der Sicht des Rücksetzreglers 135 die Manipulationshistorie in Übereinstimmung mit einigen Implementierungen zurücksetzen. Beispielsweise kann das Steuergerät 304 eine Historie der Erkennung von Manipulationsaktivitäten für den Rücksetzregler 135 in einem nichtflüchtigen Speicher speichern, die Rücksetz-Haltezeit auf der Grundlage dieser Historie regulieren und nach Ablauf einer vorbestimmten Zeit, in der keine (für den Rücksetzregler 135 relevanten) Manipulationsaktivitäten erkannt wurden, die Historie der Erkennung von Manipulationsaktivitäten löschen. In Übereinstimmung mit weiteren Implementierungen löscht das Steuergerät 304 den Verlauf der Erkennung von Manipulationsaktivitäten, unabhängig von der Zeit, die seit der letzten Erkennung von Manipulationen vergangen ist.The controller 304 may reset the tamper history from the perspective of the reset controller 135 in accordance with some implementations. For example, the controller 304 may store a history of tamper activity detection for the reset controller 135 in non-volatile memory, regulate the reset hold time based on this history, and clear the history of tamper activity detection after a predetermined time in which no tamper activity (relevant to the reset controller 135) has been detected. In accordance with further implementations, the controller 304 clears the history of tamper activity detection regardless of the time that has passed since the last tamper detection.

Gemäß Beispielimplementierungen kann das Steuergerät 304 aus einem oder mehreren Hardware-Verarbeitungskernen bestehen, die maschinenausführbare Befehle ausführen, um die hier beschriebenen Funktionen des Rückstellreglers 135 auszuführen. In Übereinstimmung mit weiteren Implementierungen kann der gesamte oder ein Teil des Rückstellreglers 135 von dedizierter Hardware (z. B. Logikgattern) ausgeführt werden, die eine oder mehrere Funktionen für den Rückstellregler 135 ausführt, ohne maschinenausführbare Befehle auszuführen. Auf diese Weise kann diese Hardware je nach der jeweiligen Implementierung ein anwendungsspezifischer integrierter Schaltkreis (ASIC), ein feldprogrammierbares Gate-Array (FPGA), ein komplexer programmierbarer Logikbaustein (CPLD) usw. sein.According to example implementations, controller 304 may consist of one or more hardware processing cores that execute machine-executable instructions to perform the functions of reset controller 135 described herein. In accordance with further implementations, all or a portion of reset controller 135 may be executed by dedicated hardware (e.g., logic gates) that performs one or more functions for reset controller 135 without executing machine-executable instructions. As such, this hardware may be an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a complex programmable logic device (CPLD), etc., depending on the particular implementation.

Gemäß einigen Implementierungen kann die Rücksetzverzögerungsschaltung 310 aus Logik bestehen, z. B. aus kombinatorischen Logikgattern und Flipflops. Gemäß weiteren Implementierungen kann der Betrieb der Rücksetzverzögerungsschaltung 310 nicht von einem RTC-Gerät abhängen. Beispielsweise kann die Rücksetzfreigabe-Verzögerungsschaltung 310 gemäß einigen Implementierungen die Rücksetz-Haltezeit unter Verwendung einer Kette von seriell gekoppelten Verzögerungselementen messen, und der Controller 304 kann die Anzahl der Verzögerungselemente der Kette steuern, um die Rücksetz-Haltezeit zu regulieren. Als weiteres Beispiel kann das Verzögerungselement für die Rücksetzfreigabe in Übereinstimmung mit weiteren Implementierungen eine Zeitgeberschaltung oder ein anderes Verzögerungselement zur Messung der Rücksetzhaltezeit enthalten.According to some implementations, the reset delay circuit 310 may consist of logic, e.g. B. from combinational logic gates and flip-flops. According to further implementations, the operation of the reset delay circuit 310 may not depend on an RTC device. For example, according to some implementations, the reset enable delay circuit 310 may measure the reset hold time using a chain of serially coupled delay elements, and the controller 304 may control the number of delay elements in the chain to regulate the reset hold time. As another example, the reset enable delay element may include a timer circuit or other delay element for measuring the reset hold time, in accordance with other implementations.

In 4 ist ein Beispielprozess 400 dargestellt, der vom Sicherheitsprozessor 130 (1) durchgeführt werden kann, um die Rücksetzreaktion des Sicherheitsprozessors gemäß Beispielimplementierungen zu steuern. Der Prozess 400 kann eine Reihe von Komponenten des Sicherheitsprozessors 130 einbeziehen, wie z. B. den Reset-Regler 135 (2 und 3), die Manipulationserkennungsschaltung 234 (2), die Kanarienschaltung(en) 134 (2) und die RTC-Vorrichtung 280 (2), wie hier beschrieben.In 4 An example process 400 is shown which is executed by the security processor 130 ( 1 ) to control the reset response of the safety processor according to example implementations. The process 400 may involve a number of components of the safety processor 130, such as the reset controller 135 ( 2 and 3 ), the tamper detection circuit 234 ( 2 ), the canary circuit(s) 134 ( 2 ) and the RTC device 280 ( 2 ), as described here.

Gemäß 4 beginnt der Prozess 400 in Übereinstimmung mit Beispielimplementierungen beim Einschalten und umfasst die Bestimmung (gemäß Entscheidungsblock 408), ob die Manipulationserkennungsschaltung eine neue Manipulationsaktivität erkannt hat, und wenn dies der Fall ist, die Durchführung einer oder mehrerer Reaktionsmaßnahmen (wie bei 412 dargestellt) auf die Manipulationsaktivität. Insbesondere kann die Durchführung der Reaktionsmaßnahmen 412 in Übereinstimmung mit Beispielimplementierungen die Erhöhung der Rücksetzhaltezeit gemäß Block 416 und die Protokollierung der Erkennung von Manipulationsaktivitäten gemäß Block 420 umfassen. Darüber hinaus kann, wie ebenfalls in 4 dargestellt, in Übereinstimmung mit einigen Implementierungen die Durchführung der Reaktionsmaßnahmen 412 die Initiierung (Block 424) einer Alarmbenachrichtigung umfassen (z. B. Benachrichtigung eines Managementverarbeitungskerns 154 des BMC 129 oder Benachrichtigung des Fernverwaltungsservers 190 (1) über die Erkennung der Manipulationsaktivität).According to 4 In accordance with example implementations, the process 400 begins at power-on and includes determining (as per decision block 408) whether the tamper detection circuitry has detected new tampering activity and, if so, taking one or more response actions (as depicted at 412) in response to the tampering activity Manipulation activity. In particular, performing the response actions 412 in accordance with example implementations may include increasing the reset hold time in accordance with block 416 and logging detection of tamper activity in accordance with block 420. In addition, as also in 4 shown, in accordance with some implementations, performing the response actions 412 may include initiating (block 424) an alarm notification (e.g., notifying a management processing core 154 of the BMC 129 or notifying the remote management server 190 ( 1 ) about the detection of manipulation activity).

Der Prozess 400 umfasst ferner die Bestimmung gemäß Entscheidungsblock 430, ob das Zeitmuster der jüngsten Rücksetzanzeigen auf eine Manipulationsaktivität hinweist. Wenn dies der Fall ist, geht die Steuerung in Übereinstimmung mit Beispielimplementierungen zum Block 412 über, um entsprechende Maßnahmen durchzuführen. Andernfalls, wenn keine neue Manipulationsaktivität erkannt wurde, umfasst der Prozess 400 gemäß dem Prozess 400 die Bestimmung (Entscheidungsblock 438), ob ein vordefiniertes Kriterium oder Kriterien für die Wiederherstellung einer anfänglichen Rücksetz-Haltezeit (z. B. eine vordefinierte Mindestrücksetz-Haltezeit) erfüllt wurden. Als Beispiel kann der Prozess 400 in Übereinstimmung mit einigen Implementierungen nach Ablauf einer vorbestimmten Zeitspanne beinhalten, dass der Rücksetzungsregler eine anfängliche Rücksetzungshaltezeit wiederherstellt (Block 439).The process 400 further includes determining, at decision block 430, whether the timing pattern of recent reset indications indicates tampering activity. If so, control passes to block 412 to take appropriate action, in accordance with example implementations. Otherwise, if no new tampering activity has been detected, the process 400 includes determining (decision block 438) whether a predefined criterion or criteria for restoring an initial reset hold time (e.g., a predefined minimum reset hold time) has been met, in accordance with process 400. As an example, after a predetermined period of time has elapsed, in accordance with some implementations, the process 400 may include the reset controller restores an initial reset hold time (block 439).

Gemäß Beispielimplementierungen können ein oder mehrere Canary-Schaltungen in der Nähe der jeweiligen zu schützenden Komponenten eines Sicherheitsprozessors angeordnet sein. So kann beispielsweise bei einigen Implementierungen ein Canary-Schaltkreis in der Nähe einer SRoT-Engine und ein anderer Canary-Schaltkreis in der Nähe eines Sicherheitsverarbeitungskerns des Sicherheitsprozessors angeordnet sein.According to example implementations, one or more canary circuits may be located near the respective components of a security processor to be protected. For example, in some implementations, one canary circuit may be located near an SRoT engine and another canary circuit may be located near a security processing core of the security processor.

Gemäß weiteren Implementierungen können Komponenten der zu schützenden Komponente räumlich mit Komponenten der zugehörigen Canary-Schaltung vermischt sein. Beispielsweise können in einigen Implementierungen Komponenten einer Canary-Schaltung mit Komponenten einer SRoT-Engine räumlich vermischt sein. Wie in 5 gezeigt, kann die SRoT-Engine 143 in einigen Ausführungsformen SRoT-Logikelemente 508 enthalten. Im hier verwendeten Kontext bezieht sich ein „Logikelement“ auf eine Schaltung, die aus einer Reihe von Logikgattern gebildet wird. Wie in 5 dargestellt, kann ein Logikelement 508 ein oder mehrere Logikgatter 520 (hier „SRoT-Logikgatter 520“ genannt) enthalten. Ein SRoT-Logikgatter 520 kann beispielsweise ein kombinatorisches Logikgatter sein, wie ein UND-Gatter, ein ODER-Gatter, ein NAND-Gatter, ein NICHT-Gatter, ein NOR-Gatter, ein XOR-Gatter oder allgemein eine Vorrichtung, die einen booleschen Algebra-Ausdruck auf einen oder mehrere boolesche Eingänge anwendet, um einen booleschen Ausgang in Übereinstimmung mit dem booleschen Algebra-Ausdruck zu liefern. Bei einem SRoT-Logikelement 508 kann es sich beispielsweise um ein Flip-Flop, ein Register, einen Zähler, einen Zeitgeber, eine Verzögerungsschaltung, eine Vergleichsschaltung, eine Schaltung zur Implementierung eines Zustands einer Zustandsmaschine oder allgemein um einen Satz von Logikgattern handeln, die eine Funktion für das SRoT-System 143 ausführen.According to further implementations, components of the component to be protected may be spatially mixed with components of the associated canary circuit. For example, in some implementations, components of a canary circuit may be spatially mixed with components of an SRoT engine. As in 5 , in some embodiments, the SRoT engine 143 may include SRoT logic elements 508. As used herein, a “logic element” refers to a circuit formed from a series of logic gates. As shown in 5 As shown, a logic element 508 may include one or more logic gates 520 (herein referred to as "SRoT logic gates 520"). For example, an SRoT logic gate 520 may be a combinational logic gate such as an AND gate, an OR gate, a NAND gate, a NOT gate, a NOR gate, an XOR gate, or generally a device that applies a Boolean algebra expression to one or more Boolean inputs to provide a Boolean output in accordance with the Boolean algebra expression. For example, an SRoT logic element 508 may be a flip-flop, a register, a counter, a timer, a delay circuit, a comparison circuit, a circuit for implementing a state of a state machine, or generally a set of logic gates that perform a function for the SRoT system 143.

Der SRoT-Motor 143 kann ferner kanäre Logikelemente 512 einer kanären Schaltung enthalten. Jedes kanäre Logikelement 512 kann ein oder mehrere Logikgatter 516 (hier als „kanäre Logikgatter 516“ bezeichnet) enthalten, die kombinatorische Logikgatter sein können. Ein kanäres Logikelement 512 kann beispielsweise ein Flip-Flop, ein Register, ein Zähler, ein Zeitgeber, eine Verzögerungsschaltung, eine Vergleichsschaltung, eine Schaltung zur Implementierung eines Zustands einer Zustandsmaschine, eine Schaltung zur Durchführung einer Verschlüsselungs-Chiffre (z. B. eines AES-Chiffre-Blocks) oder allgemein eine Gruppe von Logikgattern sein, die eine Funktion für die kanäre Schaltung ausführen.The SRoT motor 143 may further include canary logic elements 512 of a canary circuit. Each canary logic element 512 may include one or more logic gates 516 (referred to herein as “canary logic gates 516”), which may be combinatorial logic gates. A canary logic element 512 may, for example, be a flip-flop, a register, a counter, a timer, a delay circuit, a comparison circuit, a circuit for implementing a state of a state machine, a circuit for performing an encryption cipher (e.g. an AES -cipher blocks) or generally a group of logic gates that perform a function for the canary circuit.

Wie mit der Bezugsziffer 514 in 5 dargestellt, können die kanarischen Logikgatter 516 in Übereinstimmung mit Beispielimplementierungen räumlich mit den SRoT-Logikgattern 520 vermischt werden. In diesem Zusammenhang bezieht sich die „räumliche Vermischung“ der Logikgatter 516 und 520 auf die Anordnung der Logikgatter 516 und 520 in einem Bereich eines Halbleiterchips, so dass in dem Bereich die Logikgatter 516 und 520 entlang eines ersten Pfades, der parallel zu einer ersten Dimensionsachse verläuft, vermischt sind und die Logikgatter 516 und 520 auch entlang eines zweiten Pfades, der parallel zu einer zweiten Dimensionsachse verläuft, die orthogonal zur ersten Dimensionsachse ist, vermischt sind. Aufgrund der räumlichen Vermischung der kanarischen Logikgatter 516 mit den SRoT-Logikgattern 520 erfahren die kanarischen Logikgatter 516 alle oder mehrere der gleichen Umgebungsbedingungen wie die SRoT-Gatter 520. Daher kann eine Canary-Schaltung, die aus den Canary-Logikgattern 516 gebildet wird, die Umgebungsbedingungen des SRoT-Motors 143 genau erfassen und schnell einen Hinweis auf einen durch die Umgebungsbedingungen ausgelösten Sicherheitsangriff geben, der den SRoT-Motor 143 betrifft.As with reference number 514 in 5 As shown, the canary logic gates 516 may be spatially intermingled with the SRoT logic gates 520 in accordance with example implementations. In this context, “spatial mixing” of logic gates 516 and 520 refers to the arrangement of logic gates 516 and 520 in an area of a semiconductor chip such that in the area, logic gates 516 and 520 are along a first path that is parallel to a first dimensional axis runs, are mixed and the logic gates 516 and 520 are also mixed along a second path that runs parallel to a second dimensional axis that is orthogonal to the first dimensional axis. Due to the spatial mixing of the canary logic gates 516 with the SRoT logic gates 520, the canary logic gates 516 experience all or more of the same environmental conditions as the SRoT gates 520. Therefore, a canary circuit formed from the canary logic gates 516 can Accurately detect environmental conditions of the SRoT engine 143 and quickly provide an indication of a security attack triggered by the environmental conditions that affects the SRoT engine 143.

In 6 ist ein Beispiel für einen Halbleiterchipbereich 600 gemäß einer Beispielimplementierung dargestellt. In Übereinstimmung mit einigen Implementierungen entspricht der Halbleiterchipbereich 600 einem Bereich eines Halbleiterchips 157 (1), in dem das SRoT-Modul 143 teilweise oder vollständig hergestellt ist. Es wird darauf hingewiesen, dass das SRoT-Modul 143 auch in einem oder mehreren anderen Bereichen des Halbleiterchips 157 hergestellt werden kann.In 6 An example of a semiconductor chip area 600 is shown according to an example implementation. In accordance with some implementations, the semiconductor chip region 600 corresponds to a region of a semiconductor chip 157 ( 1 ), in which the SRoT module 143 is partially or completely manufactured. It is noted that the SRoT module 143 can also be manufactured in one or more other areas of the semiconductor chip 157.

Wie in 6 dargestellt, erstreckt sich der Halbleiterchipbereich 600 seitlich über einen Halbleiterchip entlang der X- und Y-Abmessungen, die jeweils einer X-Achse 602 und einer Y-Achse 601 entsprechen. Der Halbleiterchip hat eine Z-Dicke, die einer Z-Achse 603 entspricht. Die Z-Achse 603 erstreckt sich in einer Richtung, die mit der Oberflächennormalen des Wafers, aus dem der Chip stammt, ausgerichtet ist.As in 6 As shown, the semiconductor chip region 600 extends laterally across a semiconductor chip along the X and Y dimensions, which correspond to an X-axis 602 and a Y-axis 601, respectively. The semiconductor chip has a Z thickness that corresponds to a Z axis 603. The Z axis 603 extends in a direction that is aligned with the surface normal of the wafer from which the chip comes.

Bei dem in 6 dargestellten Beispiel erfolgt die räumliche Vermischung sowohl entlang der X- als auch der Y-Dimension. Genauer gesagt werden in der Region 600 SRoT-Logikgatter 520 (z. B. SRoT-Logikgatter 520-1, 520-2, 520-3 und 520-4) und Kanarienvogel-Logikgatter 516 (z. B. Kanarienvogel-Logikgatter 516-1, 516-3 und 516-3) entlang eines ersten Pfades 650, der parallel zur Y-Achse 601 verläuft, vermischt. Ebenfalls im Bereich 604 werden SRoT-Logikgatter 520 (z. B. SRoT-Logikgatter 520-3, 520-5 und 520-6) und Canary-Logikgatter 516 (z. B. Canary-Logikgatter 516-1, 516-2, 516-4 und 516-5) entlang eines zweiten Pfades 654 zusammengeführt, der parallel zur X-Achse 602 (die orthogonal zur Y-Achse 601 verläuft) verläuft.At the in 6 In the example shown, the spatial mixing occurs along both the X and Y dimensions. More specifically, in the region 600, SRoT logic gates 520 (e.g. SRoT logic gates 520-1, 520-2, 520-3 and 520-4) and canary logic gates 516 (e.g. canary logic gates 516- 1, 516-3 and 516-3) along a first path 650 which runs parallel to the Y-axis 601. Also in area 604 are SRoT logic gates 520 (e.g. SRoT logic gates 520-3, 520-5 and 520-6) and canary logic gates 516 (e.g. canary logic gates 516-1, 516-2, 516-4 and 516-5) along a second path 654 together guided, which runs parallel to the X-axis 602 (which runs orthogonally to the Y-axis 601).

Bei dieser Beispielimplementierung können die kanarischen Logikgatter 516 und die SRoT-Logikgatter 520 durch die Verwendung eines Layout-Design-Tools, das zur Platzierung der Transistoren, Metallverbindungen und anderer Merkmale des Halbleiterchips verwendet wird, räumlich vermischt werden. Beispielsweise können Benutzereingaben in das Layout-Entwurfswerkzeug die Grenzen eines ersten X-Y-Fensters für die kanarischen Logikgatter 516 und ferner die Grenzen eines zweiten X-Y-Fensters für die SRoT-Logikgatter 520 festlegen, das sich zumindest teilweise mit dem ersten X-Y-Fenster überlappt. Beispielsweise kann das erste X-Y-Fenster für eine Zelle angegeben werden, die einer Canary-Schaltung entspricht, und das zweite X-Y-Fenster kann für eine Zelle angegeben werden, die einer SRoT-Engine entspricht. Das Layout-Entwurfswerkzeug kann die Transistoren, Verbindungen und anderen Merkmale der Canary-Schaltung und der SRoT-Engine auf dem Halbleiterchip entsprechend dem ersten und dem zweiten X-Y-Fenster gemäß den Platzierungsregeln platzieren und eine Datei mit Daten erzeugen, die das Layout beschreiben.In this example implementation, the canary logic gates 516 and the SRoT logic gates 520 may be spatially mixed through the use of a layout design tool used to place the transistors, metal interconnects, and other features of the semiconductor chip. For example, user input to the layout design tool may set the boundaries of a first X-Y window for the canary logic gates 516 and further the boundaries of a second X-Y window for the SRoT logic gates 520 that at least partially overlaps with the first X-Y window. For example, the first X-Y window may be specified for a cell corresponding to a canary circuit and the second X-Y window may be specified for a cell corresponding to an SRoT engine. The layout design tool can place the transistors, interconnects and other features of the canary circuit and the SRoT engine on the semiconductor chip according to the first and second X-Y windows according to the placement rules and generate a file with data describing the layout.

Ein weiteres Beispiel: Gemäß einigen Implementierungen können Benutzereingaben an ein Layout-Entwurfswerkzeug übermittelt werden, um bestimmte Positionen für die kanarischen Logikgatter 516 und die SRoT-Logikgatter 520 in einer Weise zu spezifizieren, die die Gatter 516 und 520 entlang einer oder mehrerer Dimensionen des Halbleiterchips räumlich zusammenführt. Als weiteres Beispiel kann in Übereinstimmung mit einigen Implementierungen eine Benutzereingabe an ein Layout-Entwurfswerkzeug gegeben werden, um spezifische Positionen für Transistoren der kanarischen Logikgatter 516 und SRoT-Logikgatter 520 in einer Weise zu spezifizieren, die die Transistoren (und daher die Gatter 516 und 520) entlang einer oder mehrerer Dimensionen des Halbleiterchips räumlich zusammenführt.As another example, in accordance with some implementations, user input may be provided to a layout design tool to specify specific positions for the canary logic gates 516 and the SRoT logic gates 520 in a manner that spatially converges the gates 516 and 520 along one or more dimensions of the semiconductor chip. As another example, in accordance with some implementations, user input may be provided to a layout design tool to specify specific positions for transistors of the canary logic gates 516 and SRoT logic gates 520 in a manner that spatially converges the transistors (and therefore the gates 516 and 520) along one or more dimensions of the semiconductor chip.

In Übereinstimmung mit weiteren Implementierungen kann sich die räumliche Vermischung der kanarischen Logikgatter 516 und SRoT-Gatter 520 entlang der Z-Achse 603 erstrecken.In accordance with other implementations, the spatial mixing of the canary logic gates 516 and SRoT gates 520 may extend along the Z axis 603.

Ein weiteres Beispiel: In einigen Ausführungsformen können Komponenten einer Kanarienschaltung mit Komponenten eines Sicherheitsverarbeitungskerns räumlich vermischt sein. Wie in 7 gezeigt, kann der Sicherheitsverarbeitungskern 142 gemäß einigen Implementierungen Verarbeitungskern-Logikelemente 724 enthalten, und wie in 7 dargestellt, kann ein Logikelement 724 ein oder mehrere Logikgatter 740 (hier „Verarbeitungskerngatter 740“ genannt) enthalten, die kombinatorische Logikgatter sein können. Bei einem Logikelement 724 des Verarbeitungskerns kann es sich beispielsweise um ein Flip-Flop, ein Register, einen Zähler, einen Zeitgeber, eine Verzögerungsschaltung, eine Vergleichsschaltung, eine Schaltung zur Implementierung eines Zustands einer Zustandsmaschine oder allgemein um eine Gruppe von Logikgattern handeln, die eine Funktion für den Sicherheitsverarbeitungskern 142 ausführen. Gemäß einem Ausführungsbeispiel kann ein bestimmtes Logikelement 724 des Verarbeitungskerns ganz oder teilweise eine arithmetische Logikeinheit, eine Steuereinheit, einen Cache, ein Register, eine Ausführungseinheit, eine Befehlsabrufeinheit, eine Speicherverwaltungseinheit oder eine andere Komponente der Sicherheitsverarbeitungseinheit 142 bilden.Another example: In some embodiments, components of a canary circuit may be spatially intermingled with components of a security processing core. As in 7 As shown, security processing core 142 may include processing core logic elements 724, according to some implementations, and as shown in 7 As shown, a logic element 724 may include one or more logic gates 740 (herein referred to as “processing core gates 740”), which may be combinatorial logic gates. A logic element 724 of the processing core may be, for example, a flip-flop, a register, a counter, a timer, a delay circuit, a comparison circuit, a circuit for implementing a state of a state machine, or generally a group of logic gates that have a Execute function for security processing core 142. According to one embodiment, a particular logic element 724 of the processing core may form, in whole or in part, an arithmetic logic unit, a control unit, a cache, a register, an execution unit, an instruction fetch unit, a memory management unit, or another component of the security processing unit 142.

Wie in 7 dargestellt, kann der Sicherheitsverarbeitungskern 142 ferner kanäre Logikelemente 512 enthalten, und jedes kanäre Logikelement 512 kann ein oder mehrere kanäre Logikgatter 516 enthalten. Wie mit der Referenznummer 714 in 7 dargestellt, können die Canary-Logikgatter 516 in Übereinstimmung mit Beispielimplementierungen räumlich mit den Logikgattern 724 des Verarbeitungskerns vermischt sein. Aufgrund der räumlichen Vermischung der kanarischen Logikgatter 516 mit den Logikgattern des Verarbeitungskerns 724 erfahren die kanarischen Logikgatter 516 alle oder mehrere der gleichen Umgebungsbedingungen wie die Logikgatter des Verarbeitungskerns 724. Daher kann eine Canary-Schaltung, die aus den Canary-Logikgattern 516 gebildet wird, die Umgebungsbedingungen des Sicherheitsverarbeitungskerns 142 genau erfassen und schnell einen Hinweis auf einen durch die Umgebungsbedingungen ausgelösten Sicherheitsangriff liefern, der den Sicherheitsverarbeitungskern 142 betrifft.As in 7 , the security processing core 142 may further include canary logic elements 512, and each canary logic element 512 may include one or more canary logic gates 516. As indicated by reference number 714 in 7 As shown, the canary logic gates 516 may be spatially intermixed with the logic gates 724 of the processing core, in accordance with example implementations. Due to the spatial intermixing of the canary logic gates 516 with the logic gates of the processing core 724, the canary logic gates 516 experience all or more of the same environmental conditions as the logic gates of the processing core 724. Therefore, a canary circuit formed from the canary logic gates 516 may accurately sense the environmental conditions of the security processing core 142 and quickly provide an indication of a security attack triggered by the environmental conditions affecting the security processing core 142.

In 8 ist ein Beispiel für einen Halbleiterchipbereich 800 gemäß einer Beispielimplementierung dargestellt. In Übereinstimmung mit einigen Implementierungen entspricht der Halbleiterchipbereich 600 einem Bereich eines Halbleiterchips 157 (1), in dem der Sicherheitsverarbeitungskern 142 teilweise oder vollständig hergestellt ist. Es wird darauf hingewiesen, dass der Sicherheitsverarbeitungskern 142 auch in einem oder mehreren anderen Bereichen des Halbleiterchips 157 hergestellt werden kann.In 8th An example of a semiconductor chip area 800 is shown according to an example implementation. In accordance with some implementations, the semiconductor chip region 600 corresponds to a region of a semiconductor chip 157 ( 1 ), in which the security processing core 142 is partially or completely manufactured. It is noted that the security processing core 142 may also be fabricated in one or more other areas of the semiconductor chip 157.

Wie in 8 gezeigt, erstreckt sich der Halbleiterchipbereich 800 seitlich über einen Halbleiterchip in einer X-Dimension und einer Y-Dimension, die einer X-Achse 802 bzw. einer Y-Achse 801 entsprechen. Der Halbleiterchip hat eine Z-Dicke, die sich entlang einer Z-Achse 803 erstreckt. In Übereinstimmung mit Beispielimplementierungen kann die räumliche Vermischung der kanarischen Logikgatter 516 und der Logikgatter des Sicherheitsverarbeitungskerns 724 entlang der X- und Y-Dimensionen erfolgen. In Übereinstimmung mit einigen Implementierungen kann sich die räumliche Vermischung entlang der Z-Dimension erstrecken. Die räumliche Vermischung kann mit einem Layout-Entwurfswerkzeug hergestellt werden, wie hier in der Diskussion über die räumliche Vermischung von Canary-Logikgattern und SRoT-Logikgattern beschrieben.As in 8th As shown, the semiconductor chip region 800 extends laterally across a semiconductor chip in an X dimension and a Y dimension, which correspond to an X axis 802 and a Y axis 801, respectively. The semiconductor chip has a Z thickness that extends along a Z axis 803. In accordance with example implementations, the spatial mixing of the canary logic gates 516 and the security processing logic gates tung core 724 along the X and Y dimensions. In accordance with some implementations, the spatial mixing may extend along the Z dimension. Spatial mixing can be accomplished using a layout design tool, as described here in the discussion of spatial mixing of canary logic gates and SRoT logic gates.

Wie in 9 gezeigt, kann die Kanary-Schaltung 134 in Übereinstimmung mit einigen Implementierungen eine Kette 908 von kryptografischen Verarbeitungsstufen 912 enthalten. In Übereinstimmung mit Beispielimplementierungen kann jede Stufe 912 einer Instanz eines kryptografischen Chiffrierblocks oder einer Transformation entsprechen. Wie in 9 dargestellt, kann die Stufe 912 in Übereinstimmung mit einigen Implementierungen beispielsweise einer AES-Verschlüsselung (Advanced Encryption System) oder einer Transformation und einer bestimmten AES-Iteration entsprechen. Gemäß Beispielimplementierungen kann eine bestimmte Stufe 912 durch einen Satz kombinatorischer Logik oder einen logischen Kegel implementiert werden. Im Allgemeinen wird gemäß AES eine Anzahl von AES-Transformationsiterationen durchgeführt, die von der Größe des verwendeten kryptografischen Schlüssels abhängen.As in 9 shown, the kanary circuit 134 may include a chain 908 of cryptographic processing stages 912 in accordance with some implementations. Consistent with example implementations, each stage 912 may correspond to an instance of a cryptographic cipher block or transformation. As in 9 As shown, in accordance with some implementations, stage 912 may correspond to, for example, an Advanced Encryption System (AES) encryption or a transformation and a particular AES iteration. According to example implementations, a particular stage 912 may be implemented by a set of combinatorial logic or a logic cone. In general, according to AES, a number of AES transformation iterations are performed, which depend on the size of the cryptographic key used.

In Übereinstimmung mit Beispielimplementierungen führt die Canary-Schaltung 134 eine Anzahl von AES-Transformationsiterationen (über entsprechende Stufen 912) in einem einzigen Zyklus eines Taktsignals 921 durch. Genauer gesagt kann das Taktsignal 921 in Übereinstimmung mit einigen Implementierungen das gleiche Taktsignal sein, das die Operationen des Sicherheitsverarbeitungskerns 142 (2) und/oder der SRoT-Engine 143 (2) taktet. Die Canary-Schaltung 134 erzeugt in Übereinstimmung mit Beispielimplementierungen den Ausgang 916 für jeden Zyklus des Taktsignals 921. Anders ausgedrückt, in Übereinstimmung mit Beispielimplementierungen empfängt die Kette 908 in einem einzigen Taktzyklus eine Eingabe oder einen Eingabevektor 904 und führt mehrere AES-Transformationsiterationen (über entsprechende Stufen 912) durch, um eine Ausgabe 916 zu erzeugen.In accordance with example implementations, the canary circuit 134 performs a number of AES transform iterations (via corresponding stages 912) in a single cycle of a clock signal 921. More specifically, in accordance with some implementations, the clock signal 921 may be the same clock signal that controls the operations of the security processing core 142 ( 2 ) and/or the SRoT engine 143 ( 2 ) clocks. The canary circuit 134, in accordance with example implementations, produces the output 916 for each cycle of the clock signal 921. In other words, in accordance with example implementations, the chain 908 receives an input or an input vector 904 in a single clock cycle and performs multiple AES transform iterations (via corresponding ones Steps 912) to produce an output 916.

Gemäß Beispielimplementierungen erzeugt die Kette 908 ein Ausgangssignal 916, das einem erwarteten Ausgangssignal 920 entspricht, wenn die Canary-Schaltung 134 ordnungsgemäß funktioniert und keine Fehlfunktion aufweist (z. B. Fehlfunktion aufgrund einer umweltbedingten Bedingung). Andernfalls stimmt die Ausgabe 916 nicht mit der erwarteten Ausgabe 920 überein, und diese Nichtübereinstimmung veranlasst die Canary-Schaltung 134, einen Hinweis auf eine erkannte Manipulationsaktivität zu geben (z. B. die Erkennung eines umweltbedingten Sicherheitsangriffs anzuzeigen).According to example implementations, when the canary circuit 134 is functioning properly and is not malfunctioning (e.g., malfunctioning due to an environmental condition), chain 908 produces an output signal 916 that corresponds to an expected output signal 920. Otherwise, the output 916 does not match the expected output 920, and this mismatch causes the canary circuit 134 to provide an indication of detected tampering activity (e.g., indicating detection of an environmental security attack).

Wie in 9 dargestellt, enthält die Steuerlogik 940 der Canary-Schaltung 134 in Übereinstimmung mit einigen Implementierungen einen Komparator 924, der den Ausgang 916 der Kette 908 mit einem erwarteten Ausgang 920 vergleicht. Wenn diese Ausgänge nicht übereinstimmen, liefert der Komparator 924 gemäß Beispielimplementierungen eine Manipulationsanzeige an einen Ausgang 237 der Canary-Schaltung 134 (z. B. setzt der Komparator 924 ein Manipulationsanzeigesignal durch, um die Manipulationserkennungsschaltung 234 (2) über die Erkennung der Manipulationsaktivität zu informieren).As in 9 As shown, in accordance with some implementations, the control logic 940 of the canary circuit 134 includes a comparator 924 that compares the output 916 of the chain 908 with an expected output 920. According to example implementations, if these outputs do not match, comparator 924 provides a tamper indication to an output 237 of canary circuit 134 (e.g., comparator 924 asserts a tamper indication signal to tamper detection circuit 234 ( 2 ) to inform about the detection of the manipulation activity).

Aufgrund der Art der AES-Transformation kann eine einzige logische Wertänderung, die der Transformation entspricht, dazu führen, dass sich mehrere Bits im Ausgang der Transformation ändern. Daher verstärkt die Verwendung der AES-Transformation und insbesondere die Verwendung mehrerer kaskadierter AES-Transformationen den Fehlfunktionsindikator (die Differenz zwischen dem Ausgang 916 und dem erwarteten Ausgang 920) und führt dementsprechend dazu, dass die Canary-Schaltung 134 sehr empfindlich auf einen durch die Umgebungsbedingungen verursachten Sicherheitsangriff reagiert.Due to the nature of the AES transformation, a single logical value change corresponding to the transformation can cause multiple bits in the output of the transformation to change. Therefore, the use of the AES transform, and in particular the use of multiple cascaded AES transforms, amplifies the malfunction indicator (the difference between the output 916 and the expected output 920) and accordingly causes the canary circuit 134 to be very sensitive to environmental conditions responded to the security attack caused.

Gemäß einigen Implementierungen nimmt die Weiterleitung des Eingangsvektors 904 durch alle Transformationen (z. B. AES-Transformationen) aufgrund der Komplexität der Logik (z. B. der AES-Stufen 912) der Canary-Schaltung 134 einen erheblichen Teil (z. B. 80 bis 90 Prozent oder einen höheren Prozentsatz) des Taktzyklus in Anspruch. In Übereinstimmung mit Implementierungsbeispielen kann die Anzahl der AES-Stufen 912 der Kette 908 so eingestellt werden, dass die Kette 908 die Timing-Spezifikationen während eines einzelnen Taktzyklus kaum erfüllt. Beispielsweise kann unter Berücksichtigung von Fertigungsschwankungen die Anzahl der AES-Stufen 912 für das voraussichtlich langsamste Silizium so gewählt werden, dass der Ausgang 916 am Ende des Taktzyklus bereitgestellt wird. Gemäß Ausführungsbeispielen ist die Canary-Schaltung 134 absichtlich so ausgelegt, dass sie die erste, wenn nicht sogar eine der ersten Schaltungen des Sicherheitsprozessors 130 ist, die im Falle eines durch die Umgebungsbedingungen verursachten Sicherheitsangriffs eine Fehlfunktion aufweist (z. B. entspricht die Ausgabe 916 nicht der erwarteten Ausgabe 920).According to some implementations, due to the complexity of the logic (e.g. AES stages 912) of the canary circuit 134, the propagation of the input vector 904 through all transformations (e.g. AES transformations) takes a significant portion (e.g. 80 to 90 percent or a higher percentage) of the clock cycle. In accordance with implementation examples, the number of AES stages 912 of chain 908 may be adjusted such that chain 908 barely meets the timing specifications during a single clock cycle. For example, taking manufacturing variations into account, the number of AES stages 912 for the expected slowest silicon can be chosen so that the output 916 is provided at the end of the clock cycle. According to embodiments, canary circuit 134 is intentionally designed to be the first, if not one of the first, circuits of security processor 130 to malfunction in the event of a security attack caused by environmental conditions (e.g., output corresponds to 916 not the expected edition 920).

Die Steuerlogik 940 ist in Übereinstimmung mit Beispielimplementierungen so aufgebaut, dass sie den Ausgang 916 für jeden Zyklus des Taktsignals 921 abtastet. Beispielsweise kann die Steuerlogik 940 in Übereinstimmung mit Beispielimplementierungen den Eingangsvektor 904 an die Kette 908 in Reaktion auf bestimmte Flanken (z. B. positiv verlaufende oder ansteigende Flanken) des Taktsignals 921 liefern, und der Komparator 924 kann den Ausgang 916 bei bestimmten Flanken (z. B. ansteigenden Flanken) des Taktsignals 921 abtasten. Daher beginnen gemäß einigen Implementierungen die Transformationen zu Beginn der Taktzyklen, und das Ergebnis der Transformationen wird am Ende der Taktzyklen abgetastet.The control logic 940 is configured, in accordance with example implementations, to sample the output 916 for each cycle of the clock signal 921. For example, the control logic 940 may, in accordance with example implementations, apply the input vector 904 to the chain 908 in response to certain edges (e.g., positive going or rising edges) of the clock signal 921, and the comparator 924 may sample the output 916 on certain edges (e.g., rising edges) of the clock signal 921. Therefore, according to some implementations, the transformations begin at the beginning of the clock cycles, and the result of the transformations is sampled at the end of the clock cycles.

Um die Logikgatter der kanarischen Schaltung 134 für jeden Taktzyklus aufzufrischen, so dass die Logikgatter während des Taktzyklus übergehen (und nicht statisch bleiben), liefert die Steuerlogik 940 verschiedene Eingangsvektoren 904 an die Kette 908 in abwechselnden Taktzyklen. Auf diese Weise kann die Steuerlogik 940, wie in 9 dargestellt, in Übereinstimmung mit einigen Implementierungen einen bestimmten Kandidaten-Eingangsvektor 946 als Eingangsvektor 904 für den Taktzyklus A auswählen. Der Kandidaten-Eingangsvektor 946 hat einen entsprechenden erwarteten Ausgang 948, den die Steuerlogik 940 mit dem Ausgang 916 am Ende des Taktzyklus A vergleicht. Für den nächstfolgenden Taktzyklus B kann die Steuerlogik 940 einen anderen Kandidaten-Eingangsvektor 946 als Eingangsvektor 904 für den Taktzyklus B auswählen. Dieser andere Kandidaten-Eingangsvektor 946 hat einen entsprechenden Ausgang 948, den die Steuerlogik 940 am Ende des Taktzyklus B mit dem Ausgang 916 vergleicht.To refresh the logic gates of the canary circuit 134 for each clock cycle so that the logic gates transition during the clock cycle (rather than remain static), the control logic 940 provides different input vectors 904 to the chain 908 in alternating clock cycles. In this way, the control logic 940 can, as shown in 9 , in accordance with some implementations, control logic 940 may select a particular candidate input vector 946 as input vector 904 for clock cycle A. Candidate input vector 946 has a corresponding expected output 948 that control logic 940 compares to output 916 at the end of clock cycle A. For the next succeeding clock cycle B, control logic 940 may select a different candidate input vector 946 as input vector 904 for clock cycle B. This different candidate input vector 946 has a corresponding output 948 that control logic 940 compares to output 916 at the end of clock cycle B.

In Übereinstimmung mit einigen Implementierungen kann die Steuerlogik 940 abwechselnd zwei verschiedene Eingangsvektoren an die Kette 908 für jeweils abwechselnde Taktzyklen liefern. In Übereinstimmung mit weiteren Implementierungen kann die Steuerlogik 940 zwischen mehr als zwei Eingangsvektoren abwechseln. In Übereinstimmung mit weiteren Implementierungen kann der Kette 908 für jeden Taktzyklus derselbe Eingangsvektor zugeführt werden.In accordance with some implementations, control logic 940 may alternately provide two different input vectors to chain 908 for alternate clock cycles. In accordance with other implementations, control logic 940 may alternate between more than two input vectors. In accordance with other implementations, chain 908 may be provided with the same input vector for each clock cycle.

Gemäß 10 beinhaltet ein Prozess 1000 in Übereinstimmung mit Beispielimplementierungen das Erzeugen (Block 1004) eines Ausgabewerts durch eine Kanarienschaltung eines Halbleiterpakets. Das Halbleiterpaket enthält eine Hardware-Root-of-Trust-Engine für ein elektronisches System. In Übereinstimmung mit Beispielimplementierungen kann das Halbleiterpaket mit einem Management-Controller, wie dem BMC 129 (1), verbunden sein. In Übereinstimmung mit einigen Implementierungen kann das Halbleiterpaket einen Sicherheitsprozessor 130 (1 und 2) enthalten, und das elektronische System kann eine Computerplattform 100 (1) sein. Die Canary-Schaltung kann eine Logik enthalten, z. B. eine Kette von Stufen, die kryptographischen AES-Chiffre-Transformationen entsprechen, und die Anzahl der Stufen kann so abgestimmt werden, dass die Canary-Schaltung eine hohe Empfindlichkeit gegenüber einem durch die Umgebungsbedingungen bedingten Sicherheitsangriff aufweist. Der Prozess 1000 umfasst den Vergleich (Block 1008) des Ausgangswerts mit einem erwarteten Wert durch die Canary-Schaltung. In Übereinstimmung mit Beispielimplementierungen kann der Vergleich in jedem Taktzyklus durchgeführt werden. Darüber hinaus kann die Logik der Canary-Schaltung gemäß Beispielimplementierungen in abwechselnden Taktzyklen mit unterschiedlichen Eingangswerten versorgt werden, um die Logikgatter für jeden Taktzyklus aufzufrischen. Der Prozess 1000 beinhaltet, dass das Halbleiterpaket in Reaktion auf ein Ergebnis des Vergleichs eine Reaktion des Halbleiterpakets auf eine Rücksetzanforderung reguliert (Block 1012). Die Rücksetzanforderung kann ein Zustand (z. B. ein Zustand, der einer logischen Null entspricht) eines elektrischen Signals sein, gemäß Beispielimplementierungen. Die Rücksetzanforderung kann außerhalb des Halbleitergehäuses erzeugt werden, kann innerhalb des Halbleitergehäuses erzeugt werden, kann von einer Schaltung erzeugt werden und kann als Reaktion auf die Ausführung von maschinenlesbaren Anweisungen erzeugt werden. In Übereinstimmung mit Implementierungsbeispielen umfasst die Regulierung der Reaktion des Halbleitergehäuses auf eine Rücksetzanforderung die Regulierung einer Rücksetzhaltezeit.According to 10 In accordance with example implementations, a process 1000 includes generating (block 1004) an output value by a canary circuit of a semiconductor package. The semiconductor package contains a hardware root-of-trust engine for an electronic system. In accordance with example implementations, the semiconductor package can be connected to a management controller, such as the BMC 129 ( 1 ), be connected. In accordance with some implementations, the semiconductor package may include a security processor 130 ( 1 and 2 ), and the electronic system may include a computer platform 100 ( 1 ) be. The canary circuit can contain logic, e.g. B. a chain of stages corresponding to AES cryptographic cipher transformations, and the number of stages can be tuned so that the canary circuit has high sensitivity to a security attack caused by environmental conditions. The process 1000 includes comparing (block 1008) the output value with an expected value by the canary circuit. Consistent with example implementations, the comparison can be performed every clock cycle. Additionally, according to example implementations, the canary circuit logic may be provided with different input values in alternating clock cycles to refresh the logic gates for each clock cycle. The process 1000 includes the semiconductor package regulating a response of the semiconductor package to a reset request in response to a result of the comparison (block 1012). The reset request may be a state (e.g., a state corresponding to a logic zero) of an electrical signal, according to example implementations. The reset request may be generated outside of the semiconductor package, may be generated within the semiconductor package, may be generated by circuitry, and may be generated in response to the execution of machine-readable instructions. In accordance with implementation examples, regulating the response of the semiconductor package to a reset request includes regulating a reset hold time.

Gemäß 11 enthält ein Baseboard-Management-Controller 1100 in Übereinstimmung mit Beispielimplementierungen einen Management-Prozessor 1104 und eine sichere Enklave 1108, die von dem Management-Prozessor 1104 getrennt ist. In Übereinstimmung mit einigen Implementierungen kann der Baseboard-Management-Controller 1100 Verwaltungsdienste und Sicherheitsdienste für einen Host bereitstellen. In Übereinstimmung mit Beispielimplementierungen kann der Verwaltungsprozessor 1104 ein Verarbeitungskern 154 (1) sein, der Verwaltungsstack-Firmware ausführt, um Verwaltungsdienste für einen Host bereitzustellen. Die sichere Enklave 1108 hat eine zugehörige kryptografische Grenze und umfasst einen Sicherheitsverarbeitungskern 1112, eine Root-of-Trust-Engine 1116, eine Canary-Schaltung 1118 und einen Controller 1120. Die Canary-Schaltung 1118 kann eine Logik enthalten, wie z. B. eine Kette von Stufen, die kryptografischen Chiffriertransformationen (z. B. AES-Transformationen) entsprechen, und die Anzahl der Stufen kann so abgestimmt werden, dass die Canary-Schaltung 1118 eine hohe Empfindlichkeit gegenüber einem durch Umgebungsbedingungen verursachten Sicherheitsangriff aufweist. Die Root-of-Trust-Engine 1116 validiert maschinenlesbare Anweisungen, die vom Sicherheitsverarbeitungskern 1112 ausgeführt werden sollen. Die Root-of-Trust-Engine 1116 enthält Logikgatter 1150, und die Canary-Schaltung 1118 enthält Logikgatter 1154, die räumlich mit den Logikgattern 1150 vermischt sind. Die Canary-Schaltung 118 erzeugt einen Ausgangswert und vergleicht den Ausgangswert mit einem erwarteten Wert, um eine Manipulationsanzeige zu liefern. Der Controller 1120 führt als Reaktion auf die Manipulationsanzeige eine Maßnahme durch. In Übereinstimmung mit einigen Implementierungen kann die Durchführung der Reaktionsmaßnahme die Regulierung einer Reset-Haltezeit beinhalten.According to 11 In accordance with example implementations, a baseboard management controller 1100 includes a management processor 1104 and a secure enclave 1108 that is separate from the management processor 1104. In accordance with some implementations, the baseboard management controller 1100 may provide management services and security services for a host. In accordance with example implementations, management processor 1104 may be a processing core 154 ( 1 ) that runs management stack firmware to provide management services for a host. The secure enclave 1108 has an associated cryptographic boundary and includes a security processing core 1112, a root of trust engine 1116, a canary circuit 1118, and a controller 1120. The canary circuit 1118 may include logic such as: B. a chain of stages corresponding to cryptographic cipher transformations (e.g. AES transforms), and the number of stages can be tuned so that the canary circuit 1118 has a high sensitivity to a security attack caused by environmental conditions. The root of trust engine 1116 validates machine-readable instructions to be executed by the security processing core 1112. The root of trust engine 1116 includes logic gates 1150, and the canary circuit 1118 includes logic gates 1154 that are spatially interconnected with the logic gates 1150 are mixed. The canary circuit 118 generates an output value and compares the output value with an expected value to provide a tamper indication. The controller 1120 takes an action in response to the tamper indication. In accordance with some implementations, performing the response action may include regulating a reset hold time.

Wie in 12 gezeigt, enthält eine Computerplattform 1200 gemäß Beispielimplementierungen einen Hauptverarbeitungskern 1204 und einen Sicherheitsprozessor 1202. Der Haupt-CPU-Verarbeitungskern 102 (1) und die sichere Enklave 140 (1) sind Beispiele für den Hauptverarbeitungskern 1204 und den Sicherheitsprozessor 1202 gemäß einigen Implementierungen. Der Sicherheitsprozessor 1202 umfasst einen Sicherheitsverarbeitungskern 1208, eine Root-of-Trust-Engine 1216, eine Canary-Schaltung 1218 und einen Reset-Regler 1212. Der erste Firmware-Befehlsteil ist Teil einer Vertrauenskette, und die Vertrauenskette umfasst einen zweiten Firmware-Befehlsteil, der vom Hauptverarbeitungskern 1204 auszuführen ist. In Übereinstimmung mit Beispielimplementierungen kann der Sicherheitsprozessor 1202 ein Management-Controller sein, wie z. B. ein BMC 129 (1), der Managementdienste und Sicherheitsdienste für einen Host 101 bereitstellt. Die Canary-Schaltung 1218 kann eine Logik enthalten, wie z. B. eine Kette von Stufen, die kryptografischen Chiffriertransformationen (z. B. AES-Transformationen) entsprechen, und die Anzahl der Stufen kann so abgestimmt werden, dass die Canary-Schaltung 1218 eine hohe Empfindlichkeit gegenüber einem durch Umgebungsbedingungen verursachten Sicherheitsangriff aufweist. Die Root-of-Trust-Engine 1216 umfasst eine erste Mehrzahl von Logikgattern 1250 zur Validierung eines ersten Firmware-Befehlsteils, der vom Sicherheitsverarbeitungskern 1208 auszuführen ist. Die Canary-Schaltung 1218 umfasst eine zweite Vielzahl von Logikgattern 1254, um einen Ausgabewert zu erzeugen und den Ausgabewert mit einem erwarteten Wert zu vergleichen, um eine Manipulationsanzeige bereitzustellen. Die Logikgatter 1254 sind räumlich mit den Logikgattern 1250 vermischt. Der Reset-Regler 1212 regelt eine Reset-Haltezeit des Sicherheitsprozessors 1202 als Reaktion auf die Manipulationsanzeige.As in 12 As shown, a computing platform 1200, according to example implementations, includes a main processing core 1204 and a security processor 1202. The main CPU processing core 102 ( 1 ) and the safe enclave 140 ( 1 ) are examples of the main processing core 1204 and the security processor 1202 according to some implementations. The security processor 1202 includes a security processing core 1208, a root of trust engine 1216, a canary circuit 1218 and a reset controller 1212. The first firmware command part is part of a trust chain, and the trust chain includes a second firmware command part, to be executed by the main processing core 1204. Consistent with example implementations, security processor 1202 may be a management controller, such as: B. a BMC 129 ( 1 ), which provides management services and security services for a host 101. The canary circuit 1218 may contain logic such as: B. a chain of stages corresponding to cryptographic cipher transformations (e.g. AES transforms), and the number of stages can be tuned so that the canary circuit 1218 has a high sensitivity to a security attack caused by environmental conditions. The root of trust engine 1216 includes a first plurality of logic gates 1250 for validating a first firmware instruction portion to be executed by the security processing core 1208. The canary circuit 1218 includes a second plurality of logic gates 1254 to generate an output value and compare the output value to an expected value to provide a tamper indication. The logic gates 1254 are spatially mixed with the logic gates 1250. The reset controller 1212 regulates a reset hold time of the security processor 1202 in response to the tamper indication.

In Übereinstimmung mit Beispielimplementierungen umfasst die Erzeugung des Ausgabewerts die Bereitstellung einer Eingabe für eine Kette seriell gekoppelter Stufen, um die Kette zu veranlassen, den Ausgabewert bereitzustellen. Jede Stufe der Kette ist mit einer kryptografischen Transformation verbunden. Ein besonderer Vorteil besteht darin, dass die Canary-Schaltung die Umgebungsbedingungen der zu schützenden Komponente genau erfasst, um durch die Umgebungsbedingungen bedingte Sicherheitsangriffe schnell zu erkennen und darauf zu reagieren.In accordance with example implementations, generating the output value includes providing an input to a chain of serially coupled stages to cause the chain to provide the output value. Each stage of the chain is associated with a cryptographic transformation. A particular advantage is that the canary circuit accurately detects the environmental conditions of the component to be protected in order to quickly detect and respond to security attacks caused by the environmental conditions.

Gemäß Implementierungen umfasst die Erzeugung der Ausgabe die Bereitstellung einer Eingabe für eine Kette seriell gekoppelter AES-Blockchiffre-Transformationsstufen, um die Kette zu veranlassen, den Ausgabewert bereitzustellen. Ein besonderer Vorteil ist, dass die Canary-Schaltung die Umgebungsbedingungen der zu schützenden Komponente genau erfasst, um umweltbedingte Sicherheitsangriffe schnell zu erkennen und darauf zu reagieren.According to implementations, generating the output includes providing an input to a chain of serially coupled AES block cipher transformation stages to cause the chain to provide the output value. A particular advantage is that the canary circuit accurately records the environmental conditions of the component to be protected in order to quickly detect and respond to environmental security attacks.

Gemäß Ausführungsbeispielen umfasst der Prozess die Bereitstellung eines Taktsignals für einen Verarbeitungskern des Halbleitergehäuses. Das Taktsignal hat einen Takt, und die Erzeugung des Ausgabewerts umfasst die Durchführung der Erzeugung innerhalb einer Zeit, die kleiner als der Takt ist. Ein besonderer Vorteil ist, dass die Canary-Schaltung die Umgebungsbedingungen des zu schützenden Bauteils genau erfasst, um umweltbedingte Sicherheitsangriffe schnell zu erkennen und darauf zu reagieren.According to embodiments, the process includes providing a clock signal to a processing core of the semiconductor package. The clock signal has a clock, and generating the output value includes performing the generation within a time less than the clock. A particular advantage is that the canary circuit accurately records the environmental conditions of the component to be protected in order to quickly detect and respond to environmental security attacks.

In Übereinstimmung mit Beispielimplementierungen umfasst das Erzeugen der Ausgabe das Bereitstellen einer Eingabe für die Logik der Kanarienschaltung und das Verwenden der Logik zum Erzeugen der Ausgabe für jeden Zyklus einer Vielzahl von Zyklen eines Taktsignals. Das Erzeugen der Ausgabe umfasst das Variieren der Eingabe über die Vielzahl von Zyklen und das Variieren des erwarteten Wertes über die Vielzahl von Zyklen entsprechend der Variation der Eingabe. Ein besonderer Vorteil ist, dass die Canary-Schaltung die Umgebungsbedingungen der zu schützenden Komponente genau erfasst, um umweltbedingte Sicherheitsangriffe schnell zu erkennen und darauf zu reagieren.In accordance with example implementations, generating the output includes providing an input to the logic of the canary circuit and using the logic to generate the output for each cycle of a plurality of cycles of a clock signal. Generating the output includes varying the input over the plurality of cycles and varying the expected value over the plurality of cycles according to the variation in the input. A particular advantage is that the canary circuit accurately senses the environmental conditions of the component being protected to quickly detect and respond to environmental security attacks.

In Übereinstimmung mit Beispielimplementierungen umfasst der Prozess ferner, als Reaktion auf die Rücksetzanforderung, das Versetzen der Hardware-Root-of-Trust-Engine in den Rücksetzzustand. Die Regelung der Reaktion des Halbleitergehäuses auf das Rücksetzsignal umfasst die Regelung einer Verzögerung zwischen einem ersten Zeitpunkt, zu dem die Hardware-Root-of-Trust-Engine in den Reset versetzt wird, und einem zweiten Zeitpunkt, zu dem die Hardware-Root-of-Trust-Engine aus dem Reset freigegeben wird. Ein besonderer Vorteil ist, dass die Canary-Schaltung die Umgebungsbedingungen der zu schützenden Komponente genau erfasst, um umweltbedingte Sicherheitsangriffe schnell zu erkennen und darauf zu reagieren.Consistent with example implementations, the process further includes, in response to the reset request, placing the hardware root of trust engine into the reset state. Controlling the response of the semiconductor package to the reset signal includes controlling a delay between a first time at which the hardware root of trust engine is reset and a second time at which the hardware root of -Trust engine is released from the reset. A particular advantage is that the canary circuit accurately records the environmental conditions of the component to be protected in order to quickly detect and respond to environmental security attacks.

In Übereinstimmung mit Beispielimplementierungen umfasst die Erzeugung des Ausgabewerts die Bereitstellung eines Eingangs für Logikgatter der Canary-Schaltung. Die Logikgatter der Canary-Schaltung sind räumlich mit den Logikgattern der Hardware-Root-of-Trust-Engine vermischt. Die Logikgatter der Canary-Schaltung werden verwendet, um die Ausgabe zu erzeugen. Ein besonderer Vorteil besteht darin, dass die Canary-Schaltung die Umgebungsbedingungen der zu schützenden Komponente genau erfasst, um umweltbedingte Sicherheitsangriffe schnell zu erkennen und darauf zu reagieren.Consistent with example implementations, generating the output value involves providing an input to logic gates of the canary circuit. The logic gates of the canary circuit are spatially intermixed with the logic gates of the hardware root of trust engine. The logic gates of the canary circuit are used to generate the output. A particular advantage is that the canary circuit accurately senses the environmental conditions of the component being protected to quickly detect and respond to environmental security attacks.

Gemäß Ausführungsbeispielen umfasst die Erzeugung des Ausgabewerts die Bereitstellung eines Eingangs für die Logikgatter der kanarischen Schaltung. Die Logikgatter der kanarischen Schaltung sind räumlich mit den Logikgattern eines Sicherheitsverarbeitungskerns des Halbleitergehäuses vermischt. Die Logikgatter der Canary-Schaltung werden zur Erzeugung des Ausgangs verwendet. Ein besonderer Vorteil besteht darin, dass die Canary-Schaltung die Umgebungsbedingungen des zu schützenden Bauteils genau erfasst, um durch die Umgebungsbedingungen bedingte Sicherheitsangriffe schnell zu erkennen und darauf zu reagieren.According to embodiments, generating the output value includes providing an input to the logic gates of the canary circuit. The logic gates of the canary circuit are spatially mixed with the logic gates of a security processing core of the semiconductor package. The logic gates of the canary circuit are used to generate the output. A particular advantage is that the canary circuit accurately records the environmental conditions of the component to be protected in order to quickly detect and respond to security attacks caused by the environmental conditions.

Gemäß Ausführungsbeispielen umfasst der Prozess einen Verarbeitungskern eines Sicherheitsprozessors des Halbleitergehäuses, der maschinenlesbare Anweisungen ausführt, um einen Sicherheitsdienst für das elektronische System bereitzustellen. Der Canary-Schaltkreis versagt aufgrund eines umweltbedingten Sicherheitsangriffs auf das Halbleiterpaket. Die Fehlfunktion beinhaltet, dass der Vergleich ein Ergebnis liefert, das bedeutet, dass der Ausgangswert nicht dem erwarteten Wert entspricht. Die Regelung der Reaktion des Halbleiterpakets auf das Rücksetzsignal umfasst die Erhöhung einer Rücksetz-Haltezeit für das Halbleiterpaket in Abhängigkeit von dem Ergebnis des Vergleichs. Ein besonderer Vorteil besteht darin, dass die Canary-Schaltung die Umgebungsbedingungen des zu schützenden Bauteils genau erfasst, um durch die Umgebungsbedingungen bedingte Sicherheitsangriffe schnell zu erkennen und darauf zu reagieren.According to embodiments, the process includes a processing core of a security processor of the semiconductor package executing machine-readable instructions to provide a security service for the electronic system. The canary circuit fails due to an environmental security attack on the semiconductor package. The malfunction includes that the comparison produces a result that means that the output value does not match the expected value. Controlling the response of the semiconductor package to the reset signal includes increasing a reset hold time for the semiconductor package depending on the result of the comparison. A particular advantage is that the canary circuit accurately senses the environmental conditions of the device to be protected in order to quickly detect and respond to environmental security attacks.

Obwohl die vorliegende Offenbarung in Bezug auf eine begrenzte Anzahl von Implementierungen beschrieben wurde, werden Fachleute, die über die Vorteile dieser Offenbarung verfügen, zahlreiche Modifikationen und Variationen davon schätzen. Es ist beabsichtigt, dass die beigefügten Ansprüche alle derartigen Modifikationen und Variationen abdecken.Although the present disclosure has been described with respect to a limited number of implementations, those skilled in the art having the benefit of this disclosure will appreciate numerous modifications and variations thereto. It is intended that the appended claims cover all such modifications and variations.

Claims (20)

Ein Verfahren, das Folgendes umfasst: Erzeugen eines Ausgabewerts durch eine Canary-Schaltung eines Halbleiterpakets, wobei das Halbleiterpaket eine Hardware-Root-of-Trust-Engine für ein elektronisches System umfasst; Vergleichen des Ausgangswerts mit einem erwarteten Wert durch die Kanarienschaltung; und als Reaktion auf ein Ergebnis des Vergleichs die Halbleiterbaugruppe eine Reaktion der Halbleiterbaugruppe auf eine Rücksetzanforderung reguliert.A method comprising: generating an output value by a canary circuit of a semiconductor package, the semiconductor package comprising a hardware root of trust engine for an electronic system; comparing, by the canary circuit, the output value to an expected value; and in response to a result of the comparison, the semiconductor package regulates a response of the semiconductor package to a reset request. Das Verfahren nach Anspruch 1, wobei das Erzeugen des Ausgabewerts umfasst: Bereitstellen einer Eingabe an eine Kette von seriell gekoppelten Stufen, um die Kette zu veranlassen, den Ausgabewert bereitzustellen, wobei jede Stufe der Kette mit einer kryptographischen Transformation verbunden ist.The procedure according to Claim 1 , wherein generating the output value comprises: providing an input to a chain of serially coupled stages to cause the chain to provide the output value, each stage of the chain being associated with a cryptographic transformation. Das Verfahren nach Anspruch 1, wobei das Erzeugen der Ausgabe umfasst: Bereitstellung einer Eingabe für eine Kette seriell gekoppelter Advanced Encryption Standard (AES)-Blockchiffre-Transformationsstufen, um die Kette zu veranlassen, den Ausgabewert bereitzustellen.The procedure according to Claim 1 , wherein generating the output comprises: providing an input to a chain of serially coupled Advanced Encryption Standard (AES) block cipher transformation stages to cause the chain to provide the output value. Das Verfahren nach Anspruch 1, das ferner die Bereitstellung eines Taktsignals für einen Verarbeitungskern des Halbleitergehäuses umfasst, wobei: das Taktsignal hat eine Taktperiode; und die Erzeugung des Ausgabewerts die Durchführung der Erzeugung innerhalb einer Zeitspanne umfasst, die kürzer als die Taktperiode ist.The procedure according to Claim 1 further comprising providing a clock signal to a processing core of the semiconductor package, wherein: the clock signal has a clock period; and generating the output value comprises performing the generation within a time period shorter than the clock period. Das Verfahren nach Anspruch 1, wobei das Erzeugen der Ausgabe umfasst: Bereitstellung eines Eingangs für die Logik der Kanarienvogelschaltung; Verwendung der Logik zur Erzeugung der Ausgabe für jeden Zyklus einer Vielzahl von Zyklen eines Taktsignals; Variieren der Eingabe über die Vielzahl von Zyklen; und Variieren des erwarteten Wertes über die Vielzahl von Zyklen entsprechend der Variation der Eingabe.The procedure according to Claim 1 , wherein generating the output includes: providing an input to the canary circuit logic; using the logic to generate the output for each cycle of a plurality of cycles of a clock signal; varying the input over the plurality of cycles; and varying the expected value over the plurality of cycles according to the variation of the input. Das Verfahren nach Anspruch 1, das ferner umfasst: als Reaktion auf die Reset-Anforderung die Hardware-Root-of-Trust-Engine in den Reset-Zustand versetzen, wobei das Regulieren der Reaktion des Halbleiterpakets auf das Rücksetzsignal das Regulieren einer Verzögerung zwischen einem ersten Zeitpunkt, zu dem die Hardware-Root-of-Trust-Engine in den Reset versetzt wird, und einem zweiten Zeitpunkt, zu dem die Hardware-Root-of-Trust-Engine aus dem Reset freigegeben wird, umfasst.The procedure according to Claim 1 , further comprising: in response to the reset request, placing the hardware root of trust engine in the reset state, wherein regulating the response of the semiconductor package to the reset signal comprises regulating a delay between a first time at which the hardware root of trust engine is placed in the reset and a second time point at which the hardware root of trust engine is released from the reset. Das Verfahren nach Anspruch 1, wobei das Erzeugen des Ausgabewerts umfasst: Bereitstellen eines Eingangs für Logikgatter der Canary-Schaltung, wobei die Logikgatter der Canary-Schaltung räumlich mit Logikgattern der Hardware-Root-of-Trust-Maschine vermischt sind; und mit Hilfe der Logikgatter der Kanarienvogelschaltung die Ausgabe zu erzeugen.The procedure according to Claim 1 , wherein generating the output value comprises: providing an input to logic gates of the canary circuit, wherein the logic gates of the canary circuit are spatially intermixed with logic gates of the hardware root of trust machine; and generating the output using the logic gates of the canary circuit. Das Verfahren nach Anspruch 1, wobei das Erzeugen des Ausgabewerts umfasst: Bereitstellen eines Eingangs für Logikgatter der kanarischen Schaltung, wobei die Logikgatter der kanarischen Schaltung räumlich mit Logikgattern eines Sicherheitsverarbeitungskerns des Halbleitergehäuses vermischt sind; und mit Hilfe der Logikgatter der Kanarienvogelschaltung die Ausgabe zu erzeugen.The procedure according to Claim 1 , wherein generating the output value comprises: providing an input to logic gates of the canary circuit, wherein the logic gates of the canary circuit are spatially intermixed with logic gates of a security processing core of the semiconductor package; and generating the output using the logic gates of the canary circuit. Das Verfahren nach Anspruch 1, das ferner umfasst: einen Verarbeitungskern eines Sicherheitsprozessors des Halbleitergehäuses, der maschinenlesbare Anweisungen ausführt, um einen Sicherheitsdienst für das elektronische System bereitzustellen; und der Canary-Schaltkreis aufgrund eines auf Umgebungsbedingungen basierenden Sicherheitsangriffs auf das Halbleiterpaket eine Fehlfunktion aufweist, wobei die Fehlfunktion darin besteht, dass der Vergleich ein Ergebnis liefert, das darstellt, dass der Ausgangswert nicht dem erwarteten Wert entspricht, wobei das Regulieren der Reaktion des Halbleitergehäuses auf das Rücksetzsignal das Erhöhen einer Rücksetz-Haltezeit für das Halbleitergehäuse als Reaktion auf das Ergebnis umfasst.The procedure according to Claim 1 , further comprising: a processing core of a security processor of the semiconductor package that executes machine-readable instructions to provide a security service for the electronic system; and the canary circuit malfunctions due to an environmental-based security attack on the semiconductor package, the malfunction being that the comparison produces a result representing that the output value does not match the expected value, wherein regulating the response of the semiconductor package to the reset signal comprises increasing a reset hold time for the semiconductor package in response to the result. Eine Basisplatinen-Verwaltungssteuerung, die Folgendes umfasst: einen Verwaltungsprozessor; und eine sichere Enklave, die von dem Verwaltungsprozessor getrennt ist, wobei die sichere Enklave eine zugehörige kryptografische Grenze hat und Folgendes umfasst: einen Sicherheitsverarbeitungskern; eine Root-of-Trust-Engine zur Validierung von maschinenlesbaren Anweisungen, die von dem Sicherheitsverarbeitungskern ausgeführt werden sollen, wobei die Root-of-Trust-Engine eine erste Vielzahl von Logikgattern umfasst; eine Canary-Schaltung, die eine zweite Vielzahl von Logikgattern umfasst, die räumlich mit der ersten Vielzahl von Logikgattern vermischt sind, wobei die Canary-Schaltung einen Ausgangswert erzeugt und den Ausgangswert mit einem erwarteten Wert vergleicht, um eine Manipulationsanzeige bereitzustellen; und einen Controller, der als Reaktion auf eine Manipulationsanzeige eine entsprechende Aktion durchführt.A baseboard management controller that includes: a management processor; and a secure enclave separate from the management processor, the secure enclave having an associated cryptographic boundary and comprising: a security processing core; a root of trust engine for validating machine readable instructions to be executed by the security processing core, the root of trust engine comprising a first plurality of logic gates; a canary circuit comprising a second plurality of logic gates spatially intermingled with the first plurality of logic gates, the canary circuit generating an output value and comparing the output value with an expected value to provide a tamper indication; and a controller that takes an appropriate action in response to a tampering indication. Die Basisplatinen-Verwaltungssteuerung nach Anspruch 10, wobei die Steuerung einen Rücksetzungsregler umfasst und der Rücksetzungsregler eine Rücksetzungs-Haltezeit der sicheren Enklave als Reaktion auf die Manipulationsanzeige reguliert.The base board management control after Claim 10 , wherein the controller includes a reset controller, and the reset controller regulates a reset hold time of the secure enclave in response to the tamper indication. Die Basisplatinen-Verwaltungssteuerung nach Anspruch 10, wobei der Sicherheitsverarbeitungskern eine dritte Vielzahl von Logikgattern umfasst, wobei die Basisplatinen-Verwaltung ferner umfasst: eine zusätzliche Canary-Schaltung, die eine vierte Vielzahl von Logikgattern umfasst, wobei die vierte Vielzahl von Logikgattern räumlich mit der dritten Vielzahl von Logikgattern vermischt ist, und die vierte Vielzahl von Logikgattern, um einen zusätzlichen Ausgangswert zu erzeugen und den zusätzlichen Ausgangswert mit einem anderen erwarteten Wert zu vergleichen, um eine Manipulationsanzeige bereitzustellen, wobei der Controller eine Korrekturmaßnahme als Reaktion auf die von der zusätzlichen Canary-Schaltung gelieferte Manipulationsanzeige durchführt.The base board management control according to Claim 10 , wherein the security processing core comprises a third plurality of logic gates, the base board management further comprising: an additional canary circuit comprising a fourth plurality of logic gates, the fourth plurality of logic gates spatially intermixed with the third plurality of logic gates, and the fourth plurality of logic gates to generate an additional output value and compare the additional output value to another expected value to provide a tamper indication, the controller performing a corrective action in response to the tamper indication provided by the additional canary circuit. Die Basisboard-Verwaltungssteuerung nach Anspruch 10, wobei: der Sicherheitsprozessor einen Halbleiterchip mit einer zugehörigen ersten Abmessung, die einer ersten Achse entspricht, und einer zugehörigen zweiten Abmessung, die einer zweiten Achse entspricht, umfasst, wobei die zweite Achse orthogonal zu der ersten Achse ist; die Logikgatter der ersten Vielzahl entlang eines ersten Pfades parallel zur ersten Achse zusammengeführt werden; und die Logikgatter der zweiten Vielzahl entlang eines zweiten Pfades parallel zur zweiten Achse zusammengeführt werden.The base board management control according to Claim 10 wherein: the security processor comprises a semiconductor chip having a respective first dimension corresponding to a first axis and a respective second dimension corresponding to a second axis, the second axis being orthogonal to the first axis; the logic gates of the first plurality are merged along a first path parallel to the first axis; and the logic gates of the second plurality are merged along a second path parallel to the second axis. Die Basisplatten-Verwaltungssteuerung nach Anspruch 13, wobei der Halbleiterchip einer dritten Achse zugeordnet ist, die dritte Achse orthogonal zu der ersten Achse ist, die dritte Achse orthogonal zu der zweiten Achse ist und die dritte Achse einer Dickenabmessung des Halbleiterchips entspricht.The base plate management control according to Claim 13 , wherein the semiconductor chip is associated with a third axis, the third axis is orthogonal to the first axis, the third axis is orthogonal to the second axis, and the third axis corresponds to a thickness dimension of the semiconductor chip. Eine Computerplattform, bestehend aus: einen Hauptverarbeitungskern; und einen Sicherheitsprozessor mit: einen Sicherheitsverarbeitungskern; eine Root-of-Trust-Maschine, wobei die Root-of-Trust-Maschine eine erste Vielzahl von Logikgattern umfasst, um einen ersten Firmware-Befehlsabschnitt zu validieren, der von dem Sicherheitsverarbeitungskern ausgeführt werden soll, wobei der erste Firmware-Befehlsabschnitt Teil einer Vertrauenskette ist und die Vertrauenskette einen zweiten Firmware-Befehlsabschnitt umfasst, der von dem Hauptverarbeitungskern ausgeführt werden soll; und eine Kanarienschaltung, die eine zweite Vielzahl von Logikgattern umfasst, um einen Ausgangswert zu erzeugen und den Ausgangswert mit einem erwarteten Wert zu vergleichen, um eine Manipulationsanzeige bereitzustellen, wobei Logikgatter der zweiten Vielzahl von Logikgattern räumlich mit Logikgattern der ersten Vielzahl von Logikgattern vermischt sind; und einen Rücksetzregler, um eine Rücksetz-Haltezeit des Sicherheitsprozessors als Reaktion auf die Manipulationsanzeige zu regulieren.A computer platform comprising: a main processing core; and a security processor comprising: a security processing core; a root of trust engine, the root of trust engine comprising a first plurality of logic gates to validate a first firmware instruction portion executed by the security processor. processing core, wherein the first firmware instruction portion is part of a trust chain, the trust chain comprising a second firmware instruction portion to be executed by the main processing core; and a canary circuit comprising a second plurality of logic gates to generate an output value and compare the output value to an expected value to provide a tamper indication, wherein logic gates of the second plurality of logic gates are spatially intermixed with logic gates of the first plurality of logic gates; and a reset controller to regulate a reset hold time of the security processor in response to the tamper indication. Die Computerplattform nach Anspruch 15, wobei die Root-of-Trust-Maschine einen Rücksetzeingang umfasst, und der Rücksetzregler ferner: eine Rücksetzanforderung erhalten; als Reaktion auf die Rücksetzanforderung ein Signal an den Rücksetzeingang liefern, um die Root-of-Trust-Maschine in den Rücksetzzustand zu versetzen; und als Reaktion auf die Manipulationsanzeige die Rücksetz-Haltezeit relativiert, um eine Zeit zu regulieren, die die Root-of-Trust-Engine im Reset gehalten wird, bevor sie aus dem Reset freigegeben wird.The computer platform after Claim 15 , wherein the root of trust machine includes a reset input, and the reset controller further: receives a reset request; in response to the reset request, provide a signal to the reset input to place the root of trust machine into the reset state; and in response to the tamper indication, relativizes the reset hold time to regulate a time that the root of trust engine is held in reset before being released from reset. Die Computerplattform nach Anspruch 15, wobei die Kanarienschaltung umfasst: eine Kette von seriell gekoppelten kryptographischen Verarbeitungsstufen, wobei die Kette eine Eingabe empfängt und den Ausgabewert in Reaktion auf den Eingabevektor bereitstellt.The computer platform according to Claim 15 , wherein the canary circuit comprises: a chain of serially coupled cryptographic processing stages, the chain receiving an input and providing the output value in response to the input vector. Die Computerplattform nach Anspruch 17, wobei die Canary-Schaltung die Ausgabe für jeden Zyklus eines Taktsignals erzeugt und die Canary-Schaltung ferner umfasst: einen Controller, der den Eingang in abwechselnden Zyklen des Taktsignals verändert.The computer platform according to Claim 17 , wherein the canary circuit generates the output for each cycle of a clock signal, and the canary circuit further comprises: a controller that changes the input in alternating cycles of the clock signal. Die Computerplattform nach Anspruch 17, wobei jede Stufe eine Logik zur Durchführung einer AES-Chiffrierblocktransformation (Advanced Encryption Standard) umfasst.The computer platform according to Claim 17 , where each stage includes logic to perform an Advanced Encryption Standard (AES) cipher block transformation. Die Computerplattform nach Anspruch 16, wobei der Hauptverarbeitungskern eine Host-Instanz bereitstellt und die Computerplattform ferner einen Verwaltungscontroller umfasst, um einen Verwaltungsdienst für die Host-Instanz bereitzustellen, wobei der Baseboard-Verwaltungscontroller den Sicherheitsprozessor umfasst.The computer platform according to Claim 16 , wherein the main processing core provides a host instance, and the computing platform further comprises a management controller to provide a management service for the host instance, the baseboard management controller comprising the security processor.
DE102023110485.3A 2022-09-30 2023-04-25 DETECTING AND RESPOND TO ENVIRONMENTAL SECURITY ATTACKS ON SEMICONDUCTOR PACKAGING Pending DE102023110485A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202263412005P 2022-09-30 2022-09-30
US63/412,005 2022-09-30

Publications (1)

Publication Number Publication Date
DE102023110485A1 true DE102023110485A1 (en) 2024-04-04

Family

ID=90246637

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102023110485.3A Pending DE102023110485A1 (en) 2022-09-30 2023-04-25 DETECTING AND RESPOND TO ENVIRONMENTAL SECURITY ATTACKS ON SEMICONDUCTOR PACKAGING

Country Status (1)

Country Link
DE (1) DE102023110485A1 (en)

Similar Documents

Publication Publication Date Title
US20210266183A1 (en) Dynamic certificate management as part of a distributed authentication system
US11256797B2 (en) Remote attestation for multi-core processor
DE102012212471B3 (en) Apparatus for realizing physical degradation / tamper detection of a digital IC by means of a (digital) PUF and distinguishing between a degradation due to physical manipulation and aging processes
DE112016006003T5 (en) Trustworthy startup of secure enclaves in virtual environments
DE102022108380A1 (en) MANAGE THE STORAGE OF SECRETS IN MEMORIES OF BASEBOARD MANAGEMENT CONTROLLER
EP3646224B1 (en) Secure key storage for multi-core processor
DE102021109189B4 (en) Perform verification check in response to change in base register of page table
DE102010054614A1 (en) Intrusion into a secured computing environment using multiple authenticated code modules
DE112018006401T5 (en) TRANSPARENTLY ASSIGNED FLASH MEMORY SECURITY
DE102022108625A1 (en) MULTIPLE PHYSICAL REQUEST INTERFACES FOR SECURITY PROCESSORS
CN113568799A (en) Simulation of physical security devices
DE102014002302B4 (en) System and method for determining the operational robustness of a system on a chip
US20230246827A1 (en) Managing use of management controller secrets based on firmware ownership history
DE102021107211B4 (en) Storage Module Authentication Extension
DE112019007230T5 (en) Multi-mode protected storage
DE102023110485A1 (en) DETECTING AND RESPOND TO ENVIRONMENTAL SECURITY ATTACKS ON SEMICONDUCTOR PACKAGING
Gross et al. Fpganeedle: Precise remote fault attacks from fpga to cpu
DE102023110486A1 (en) RESPONSE TO RESETS RULES IN RESPONSE TO THE DETECTION OF TAMPERING ACTIVITIES
Nath et al. ArtiFact: Architecture and CAD flow for efficient formal verification of SoC security policies
DE102021108965A1 (en) PASSWORD-BASED ACCESS CONTROL FOR PROGRAMMABLE LOGIC COMPONENTS
US20240111862A1 (en) Detecting and responding to environmental condition-induced security attacks on semiconductor packages
DE102014208848A1 (en) Method for monitoring an electronic security module
US20240111909A1 (en) Governing responses to resets responsive to tampering activity detection
Noubir et al. Towards malicious exploitation of energy management mechanisms
CN117807644A (en) Managing responses to resets in response to tamper activity detection