DE102020115708A1 - Schutz von ressourcen - Google Patents

Schutz von ressourcen Download PDF

Info

Publication number
DE102020115708A1
DE102020115708A1 DE102020115708.8A DE102020115708A DE102020115708A1 DE 102020115708 A1 DE102020115708 A1 DE 102020115708A1 DE 102020115708 A DE102020115708 A DE 102020115708A DE 102020115708 A1 DE102020115708 A1 DE 102020115708A1
Authority
DE
Germany
Prior art keywords
tamper
master
proof
resource
state
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
DE102020115708.8A
Other languages
English (en)
Inventor
Albrecht Mayer
Glenn Ashley Farall
Frank Hellwig
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102020115708A1 publication Critical patent/DE102020115708A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

Ein Ein-Chip-System (SoC, System on Chip), das Folgendes aufweist: mehrere Prozessorkerne (110-0, 110-1, 110-2, 110-3, 110-cs), einschließlich eines manipulationssicheren Masters (CSM), der dafür ausgelegt ist, Manipulationssicherheitssoftware auszuführen, und eines nicht manipulationssicheren Masters (M), der dafür ausgelegt ist, nicht für die Manipulationssicherheit relevante Software auszuführen; eine Ressource (120), die dafür ausgelegt ist, vom manipulationssicheren Master (CSM) und nicht manipulationssicheren Master (M) gemeinsam genutzt zu werden; und einen Zustandsautomaten (130), der dafür ausgelegt ist, die Ressource (120) zu schützen, indem nur der manipulationssichere Master (CSM) die Erlaubnis erhält, die Ressource (120) in einen bestimmten Zustand des Zustandsautomaten (130) zu überführen, und indem nur der nicht manipulationssichere Master (M) die Erlaubnis erhält, die Ressource (120) in einen anderen bestimmten Zustand des Zustandsautomaten (130) zu überführen.

Description

  • HINTERGRUND
  • Ein Ein-Chip-System (SoC, System-on-Chip) weist Ressourcen auf, auf die von Prozessorkernen zugegriffen werden kann. Das SoC kann eine Mikrosteuerung sein. Die Prozessorkerne können Zentraleinheiten (CPU, Central Processing Unit) sein. Die Ressourcen können Speicher, konfigurierbare Adressbereiche innerhalb eines Speichers, Peripherievorrichtungen oder Peripherie-Unterfunktionen (z.B. Taktsteuerungssystem) beinhalten. Damit das SoC betriebs- und manipulationssicher ist, müssen der Zugriff auf und die Kontrolle über seine Ressourcen betriebs- und manipulationssicher sein.
  • Unterschiedliche Hardware und Software können unterschiedliche Betriebs- und Manipulationssicherheitseigenschaften und -risiken haben. Manipulationssichere Software, die auf manipulationssicherer und geschützter Hardware läuft, ist normalerweise manipulationssicher, aber nicht betriebssicher. Betriebssichere Software, die auf betriebssicherer Hardware (z.B. Lockstep-CPU) läuft, ist betriebssicher, könnte aber bösartig sein. Alle andere Software könnte bösartig sein, wenn das SoC kompromittiert ist. Der Schutz der SoC-Ressourcen sollte im Hinblick auf die betriebssicheren, manipulationssicheren und bösartigen Eigenschaften von Software, die auf dem SoC läuft, betriebs- und manipulationssicher sein.
  • Figurenliste
    • 1 zeigt ein Ein-Chip-System (SoC) gemäß Aspekten der Offenbarung.
    • 2 zeigt ein Diagramm eines Zustandsautomaten gemäß Aspekten der Offenbarung.
    • 3 zeigt eine Hardware-Implementierung eines Zustandsautomaten gemäß Aspekten der Offenbarung.
    • 4A zeigt ein Bitfeld eines Ressourcenschutzregisters gemäß Aspekten der Offenbarung.
    • 4B zeigt eine Tabelle mit Bitfelddefinitionen des Ressourcenschutzregisters von 4A gemäß Aspekten der Offenbarung.
    • 5A zeigt ein Flussdiagramm eines Ressourcenschutzverfahrens gemäß Aspekten der Offenbarung.
    • 5B zeigt ein Flussdiagramm eines weiteren Ressourcenschutzverfahrens gemäß Aspekten der Offenbarung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die vorliegende Offenbarung dient dem betriebs- und manipulationssicheren Schutz von Ressourcen auf einem Ein-Chip-System (SoC).
  • Der Ressourcenschutz umfasst beispielsweise zwei Schutzebenen. Eine erste Ebene definiert, welcher Busmaster (betriebssicherer oder manipulationssicherer Busmaster) eine Konfiguration eines Ressourcenschutzes ändern darf. Eine zweite Ebene ist der Schutz der Ressource selbst durch Kontrolle von Interaktionen zwischen dem betriebssicheren und dem manipulationssicheren Busmaster. Es kann eine oder mehrere weitere Schutzebenen geben, die nicht Gegenstand dieser Offenbarung sind.
  • Der Schutzmechanismus wird von einem Zustandsautomaten gesteuert, wobei bestimmte Zustandsübergänge nur von einem betriebssicheren Busmaster und andere Übergänge nur von einem manipulationssicheren Busmaster durchgeführt werden können. Der Zustandsautomat stellt sicher, dass sich jede der geschützten Ressourcen während der Konfiguration in einem betriebs- und manipulationssicheren Zustand befindet, und die Ressource kann nicht mehr verändert werden, während ein manipulationssicherer Busmaster die Konfiguration prüft. In dieser Beschreibung wird ein Busmaster allgemein einfacher als Master bezeichnet.
  • 1 zeigt ein SoC 100 gemäß Aspekten der Offenbarung.
  • Ein SOC stellt eine integrierte Schaltung dar, welche alle Komponenten eines Computers oder anderen elektronischen Systems integriert. Diese Komponenten beinhalten in der Regel, aber nicht immer, eine Zentraleinheit (CPU), Speicher, Ein-/Ausgabeports und Sekundärspeicher, alles auf einem einzigen Substrat oder Chip. Das SoC kann je nach Anwendung Funktionen zur Verarbeitung von digitalen, analogen, Mischsignalen und oft auch Hochfrequenzsignalen umfassen.
  • Das SoC 100 umfasst mehrere Prozessorkerne 110, eine Ressource 120, einen Zustandsautomaten 130, einen Bus/Interconnect 140, mehrere Schnittstellen 150, einen globalen Speicher 160, ein optionales Schutzregister 170 und einen optionalen Seitenbandsignalpfad 180.
  • Die mehreren Prozessorkerne 110 in diesem Beispiel sind CPUs und beinhalten den Prozessorkern 110-0 (CPU0), den Prozessorkern 110-1 (CPU1), den Prozessorkern 110-2 (CPU2), den Prozessorkern 110-3 (CPU3) und den Prozessorkern 110-cs (CPUcs). Ein Prozessorkern 110 könnte alternativ ein Basisbandprozessor für ein Mobiltelefon sein. Jeder der mehreren Prozessorkerne 110 ist über eine entsprechende Master-Schnittstelle 150 (150-0, 150-1, 150-2, 150-3 und 150-cs) mit dem Bus 140 gekoppelt. Der Speicher 160, die Ressource 120, der Zustandsautomat 130 und das optionale Schutzregister 170 sind über eine Slave-Schnittstelle 150-2 mit dem Bus 140 gekoppelt.
  • Der Prozessorkern 110-cs ist als manipulationssicherer Master zugewiesen, der für die Ausführung von Manipulationssicherheitssoftware ausgelegt ist. In der gesamten Offenbarung bedeutet „cs“ Cybersicherheit. Der manipulationssichere Master 110-cs kann z.B. ein Hardware-Sicherheitsmodul (HSM) sein. Der Prozessorkern 110-0 in diesem Beispiel ist als nicht manipulationssicherer Master zugewiesen, der für die Ausführung von nicht für die Manipulationssicherheit relevanter Software ausgelegt ist. Dieser nicht manipulationssichere Master 110-0 kann als betriebssicherer Master zugewiesen sein, der dafür ausgelegt ist, Betriebssicherheitssoftware auszuführen. In der gesamten Beschreibung wird der nicht manipulationssichere Master 110-0 als betriebssicherer Master beschrieben, es versteht sich jedoch, dass die Offenbarung in dieser Hinsicht nicht unbedingt beschränkt ist.
  • Die Ressource 120 ist dafür ausgelegt, vom manipulationssicheren Master 110-cs und nicht manipulationssicheren Master 110-0 gemeinsam genutzt zu werden. Die gemeinsam genutzte Ressource 120 kann ein Register, ein Speicher, ein Zustand, ein Eingangssignal, ein Ausgangssignal usw. sein. Alternativ dazu kann die Ressource 120 ein Taktsystem sein, das sowohl unter dem Gesichtspunkt der Betriebssicherheit als auch unter dem Gesichtspunkt der Manipulationssicherheit ordnungsgemäß konfiguriert sein sollte.
  • Die Ressource 120 ist in diesem Beispiel eine Bus-Speicherschutzeinheit (MPU). Die Bus-MPU weist einen Satz von Registern auf, die dafür ausgelegt sind, den Zugriff auf den Speicher 160 zu steuern, z.B. durch Beschränkung des Schreibzugriffs auf bestimmte Bereiche des Speichers 160. Der Speicher 160 kann z.B. ein Direktzugriffsspeicher (RAM, Random Access Memory) sein, jedoch ist die Offenbarung in dieser Hinsicht nicht beschränkt.
  • Der Zustandsautomat 130 ist dafür ausgelegt, die Ressource 120 zu schützen, indem nur der manipulationssichere Master 110-cs die Erlaubnis erhält, die Ressource 120 in einen bestimmten Zustand des Zustandsautomaten 130 zu überführen, und indem nur der betriebssichere Master 110-0 die Erlaubnis erhält, die Ressource 120 in einen anderen bestimmten Zustand des Zustandsautomaten 130 zu überführen. Dies wird weiter unten ausführlicher beschrieben.
  • Der manipulationssichere Master 110-cs oder der betriebssichere Master 110-0 kann dafür ausgelegt sein, sich bei der Ressource 120 als der jeweilige manipulationssichere Master oder betriebssichere Master durch eine Master-Kennung zu identifizieren, die Teil einer Bustransaktion ist und mit einer konfigurierbaren oder hartcodierten Referenz-Master-Kennung, die an der Ressource 120 gespeichert ist, verglichen werden kann. Das optionale Schutzregister 170 ist dafür ausgelegt, diese konfigurierbare oder hartcodierte Referenz-Master-Identifikation zu speichern, die schreibgeschützt sein kann. Die Ressource 120 benötigt keine lokalen Informationen darüber, welcher Master der manipulationssichere Master 110-cs ist; das Verhindern der Verfolgung von Aktivitäten des manipulationssicheren Masters wird dadurch vereinfacht. Das Schutzregister 170 kann jederzeit von jedem Master gelesen werden. Ein Schreiben in das Schutzregister 170 durch einen anderen Master als den betriebssicheren Master 110-0 oder den manipulationssicheren Master 110-cs kann einen Alarm auslösen. Auch kann ein Schreibversuch in das Schutzregister 170 des betriebssicheren Masters 110-0 oder des manipulationssicheren Masters 110-cs, der einen nicht gültigen Zustandsautomatenübergang darstellt, stillschweigend ignoriert werden. Es ist einzusehen, dass der betriebssichere Master 110-0 auch mit einem zweiten Schutzregister definiert sein kann.
  • Alternativ zur Bus 140-Route kann der manipulationssichere Master 110-cs dafür ausgelegt sein, seine Kennung als manipulationssicherer Master 110-cs als Teil der Bus-Transaktion mittels eines Seitenbandsignals über einen Seitenbandsignalpfad 180 an das Ressourcenschutzregister 170 zu übertragen. Da das Seitenbandsignal hartcodiert ist, besteht die Gewissheit, dass dieses Signal vom manipulationssicheren Master 110-cs stammt. Das Schutzregister 170 erlaubt die Definition eines manipulationssicheren Masters 110-cs und/oder eines betriebssicheren Masters 110-0 und kann Steuerbits für bis zu vier Zustandsautomaten 130 aufweisen.
  • Der manipulationssichere Master 110-cs in dem gezeigten Beispiel wird durch das Seitenbandsignal definiert, indem er Teil einer Bus-Transaktion ist. Alternativ könnte der manipulationssichere Master 110-cs in ähnlicher Weise wie der Betriebssicherheits-Master 110-0 mit einem zweiten Schutzregister 170 definiert sein.
  • Nur der manipulationssichere Master 110-cs oder der betriebssichere Master 110-0, der daran identifizierbar ist, dass eine Master-Kennung mit der Referenz-Master-Kennung übereinstimmt, verfügt über die Berechtigung, die Referenz-Master-Kennung zu ändern, um einen anderen der mehreren Prozessorkerne 110 als manipulationssicheren Master bzw. betriebssicheren Master zu identifizieren.
  • Der manipulationssichere Master 110-cs kann optional mehrere virtuelle Maschinen 110-cs-vm umfassen. Diese virtuellen Maschinen 110-cs-vm können eine virtuelle Maschine, die als manipulationssicherer Master 110-cs-vmcs zugewiesen ist, der dafür ausgelegt ist Manipulationssicherheitssoftware auszuführen, und optional eine betriebssichere virtuelle Maschine 110-cs-vm0, die dafür ausgelegt ist, betriebssichere Software auszuführen, beinhalten. Die betriebssichere virtuelle Maschine 110-cs-vm0 kann als betriebssicherer Master zugewiesen werden, der dafür ausgelegt ist, betriebssichere Software auszuführen.
  • Dass der manipulationssichere Master und/oder der betriebssichere Master eine virtuelle Maschine sind, ist ähnlich wie ein Prozessorkern zu sein wie oben beschrieben. Die Ressource 120 kann dafür ausgelegt sein, von der manipulationssicheren virtuellen Maschine 110-cs-vcms und der betriebssicheren virtuellen Maschine 110-0-vm0 gemeinsam genutzt zu werden. Der Zustandsautomat 130 kann dafür ausgelegt sein, die Ressource 120 zu schützen, indem nur die manipulationssichere virtuelle Maschine 110-cs-vcms die Erlaubnis erhält, die Ressource 120 in einen bestimmten Zustand des Zustandsautomaten 130 zu überführen, und indem nur die betriebssichere virtuelle Maschine 110-cs-vm0 die Erlaubnis erhält, die Ressource 120 in einen anderen bestimmten Zustand des Zustandsautomaten 130 zu überführen. Die manipulationssichere virtuelle Maschine ist anhand einer Kennung einer manipulationssicheren virtuellen Maschine identifizierbar, die Teil einer Bustransaktion ist und mit einer konfigurierbaren oder hartcodierten Referenz-Kennung, die an der Ressource 120 gespeichert ist, verglichen werden kann.
  • Das SoC kann mehrere Ressourcen 120 (nicht gezeigt) und mehrere Zustandsautomaten 130 (nicht gezeigt) umfassen. Jede der Ressourcen 120 kann ihren eigenen Zustandsautomaten 130 aufweisen.
  • 2 zeigt ein Diagramm eines Zustandsautomaten 200 gemäß Aspekten der Offenbarung.
  • Das Diagramm des Zustandsautomaten 200 entspricht dem Zustandsautomaten 130 von 1. Das Diagramm des Zustandsautomaten 200 veranschaulicht den Ressourcenschutz einer bestimmten Ressource 120. In diesem Beispiel hat das Diagramm des Zustandsautomaten 200 sieben Zustände - Initialisierungszustand 210, Ausführungszustand 220, Konfigurationszustand 230, Ausführungssperrzustand 240, manipulationssicherer Ausführungszustand 250, manipulationssicherer Konfigurationszustand 260 und manipulationssicherer Prüfzustand 270.
  • Die Grundfunktion des Zustandsautomaten 130 besteht darin, dass alle Konfigurationen vom betriebssicheren Master M (110-0) durchgeführt werden. Dies gilt nicht nur für die Ressource 120 selbst, sondern auch für die Steuerung eines Schutzmechanismus der Ressource 120. Die einzige Ausnahme bilden rein manipulationssichere Ressourcen, bei denen alle Operationen durch den manipulationssicheren Master CSM (Cyber Security Master; 110-cs) abgewickelt werden können, sobald sichergestellt ist, dass der manipulationssichere Master CSM (110-cs) nicht unbeabsichtigt auf betriebssichere Ressourcen einwirken kann.
  • Kritische Operationen, wie z.B. Konfigurationen, können nur in bestimmten Zuständen durchgeführt werden, die sich von einem normalen Betriebszustand unterscheiden. Diese kritischen Zustände können nur durch Übergänge erreicht werden, die nur von einem autorisierten Master durchgeführt werden können, wie z.B. dem manipulationssicheren Master CSM (110-cs) oder dem betriebssicheren Master M (110-0). Jeder der Zustandsübergänge kann nur von einem einzigen Master durchgeführt werden, der entweder der betriebssichere Master M oder der manipulationssichere Master CSM ist. Die einzige Ausnahme ist der Übergang aus dem Initialisierungszustand 210 in den Ausführungssperrzustand 240, der entweder vom manipulationssicheren Master CSM (110-cs) oder vom betriebssicheren Master M (110-0) durchgeführt werden kann.
  • Ein grundlegendes Konzept für eine gemeinsam genutzte, betriebs- und manipulationssichere Ressource 120 ist, dass die Konfiguration vom betriebssicheren Master M (110-0) durchgeführt und dann vom manipulationssicheren Master CSM (110-cs) überprüft wird, bevor die Ressource 120 aktiv wird. Dieses Konzept spiegelt sich in der rechten Seite des Diagramms des Zustandsautomaten 200 wider, das den manipulationssicheren Ausführungszustand 250, den manipulationssicheren Konfigurationszustand 260 und den manipulationssicheren Prüfzustand 270 zeigt.
  • Grundsätzlich kann der betriebssichere Master M (110-0) dem manipulationssicheren Master CSM (110-cs) unter dem Gesichtspunkt der Betriebssicherheit nicht vertrauen, und der manipulationssichere Master CSM (110-cs) kann dem betriebssicheren Master M (110-0) unter dem Gesichtspunkt der Manipulationssicherheit nicht vertrauen. So wird für eine gemeinsam genutzte Ressource 120 eine Umkonfiguration durch den betriebssicheren Master M (110-0) durchgeführt, und der manipulationssichere Master CSM (110-cs) überwacht.
  • Es folgen ausführlichere Erläuterungen zu Zuständen und Übergängen des Zustandsautomaten 130 unter Bezugnahme auf das Diagramm des Zustandsautomaten 200 von 2.
  • Die Zustände und Übergänge des Zustandsautomaten 130 ermöglichen den Betrieb und die Konfiguration der Ressource 120 in betriebs- und manipulationssicherer Art und Weise. Nach dem Zurücksetzen befinden sich alle Ressourcen 120 im Initialisierungszustand 210, in dem sie ohne jede Einschränkung konfigurierbar sind. Dieser Initialisierungszustand 210 wird nur in der anfänglichen Startphase unter der Annahme verwendet, dass nur vertrauenswürdige betriebs- und manipulationssichere Software läuft.
  • Eine rein betriebssichere Ressource darf nicht durch den nicht betriebssicheren manipulationssicheren Master CSM (110-cs) konfiguriert werden. Die gemeinsam genutzte Ressource 120 wird durch den betriebssicheren Master M (110-0) konfiguriert, da das Ergebnis ein einfacheres Systemdesign ist. Das normal arbeitende SoC 100 kann mit jedem Ansatz behandelt werden. Zwei kritische Fälle sind jedoch, wenn sich der manipulationssichere Master CSM (110-cs) in nicht betriebssicherer Weise verhält und wenn der betriebssichere Master bösartig ist. Beide Fälle werden durch die rechte Seite des Diagramms des Zustandsautomaten 220A mit dem manipulationssicheren Ausführungszustand 250, dem manipulationssicheren Konfigurationszustand 260 und dem manipulationssicheren Prüfzustand 270 angesprochen.
  • Initialisierungszustand 210:
  • Der Initialisierungszustand 210 tritt nach einer Rücksetzung ein. Für die Ressource 120 ist dieser Zustand ähnlich wie der Konfigurationszustand 230. Der Unterschied zwischen dem Initialisierungszustand 210 und dem Konfigurationszustand 230 besteht darin, dass im Initialisierungszustand 210 noch ein Zustandsübergang in den manipulationssicheren Ausführungszustand 250 oder den Ausführungssperrzustand 240 möglich ist.
  • Ausführungssperrzustand 240:
  • Der Ausführungssperrzustand 240 ist ein betriebs- und manipulationssicherer Sperrzustand aller Ressourcen 120. Eine Anwendung konfiguriert alle zu verwendenden Ressourcen 120 und löst dann ein Signal „init_done“ als Signal für die abgeschlossene Initialisierung aus. Das Signal init_done überführt alle Ressourcen 120, die sich noch im Initialisierungszustand 210 befinden, über einen zentralen Mechanismus in den Ausführungssperrzustand 240. Dies ist ein komfortabler Weg, um alle Ressourcen 120, einschließlich derjenigen, die nicht benötigt werden, zwangsweise in einen betriebs- und manipulationssicheren Ausführungssperrzustand 240 zu versetzen. Ressourcenkonfigurationen können dann vor einer nächsten Rücksetzung nicht mehr geändert werden.
  • Ausführungszustand 220 und Konfigurationszustand 230:
  • Der Ausführungszustand 220 ist der normale Betriebszustand der Ressource 120. Ein typischer Ansatz ist, dass in der anfänglichen Startphase im Initialisierungszustand 210 nur der betriebssichere Master M (110-0) eingestellt wird und dieser spezielle betriebssichere Master M (110-0) später im Konfigurationszustand 230 die Ressourcenkonfiguration steuert. Der Wechsel aus dem Ausführungszustand 220 in den Konfigurationszustand 230 erfüllt primär einen Betriebssicherheitsaspekt, dass kritische Ressourcen nicht durch einen einzigen, unbeabsichtigten Schreibvorgang durch Software verändert werden dürfen. Bei Verwendung des Zustandsautomaten 130 ist eine zusätzliche Voraussetzung, dass der betriebssichere Master M (110-0) den Übergang der Ressource 120 aus dem Ausführungszustand 220 in den Konfigurationszustand 230 lokal steuert, da, weil nur eine einzelne Ressource 120 betroffen ist, ein allgemeiner Zeitüberlaufmechanismus wie bei einer globalen Steuerung der Ressourcenzustände nicht erforderlich ist.
  • Manipulationssicherer Ausführungszustand 250, manipulationssicherer Konfigurationszustand 260 und manipulationssicherer Prüfzustand 270:
  • Während dieser Zustände interagiert der betriebssichere Master M (110-0) mit dem manipulationssicheren Master CSM (110-cs), da die Ressourcen 120 zwischen Betriebssicherheit und Manipulationssicherheit geteilt werden. Dies ist auf der rechten Seite von 2 dargestellt, die der linken Seite ähnlich ist. Genauer sind der manipulationssichere Ausführungszustand 250 und der manipulationssichere Konfigurationszustand 260 dem Ausführungszustand 220 bzw. dem Konfigurationszustand 230 ähnlich. Die Unterschiede sind ein zusätzlicher manipulationssicherer Prüfzustand 270 und dass einige der Übergänge auf der rechten Seite von einem anderen Master, d.h. dem Manipulationssicherheits-Master CSM (110-cs) statt dem betriebssicheren Master M (110-0), gesteuert werden. Im Hinblick auf die Betriebssicherheit kritische Übergänge werden durch den betriebssicheren Master M (110-0) gesteuert und für die Manipulationssicherheit kritische Übergänge werden durch den manipulationssicheren Master CSM (110-cs) gesteuert.
  • In diesen Zuständen kann der manipulationssichere Master CSM (110-cs) durch ein Seitenbandsignal definiert werden, oder es gibt zwei Schutzregister, eines zur Definition des Betriebsicherheits-Masters M (110-0) und das andere zur Definition des manipulationssicheren Masters CSM (110-cs).
  • Manipulationssicherer Ausführungszustand 250 zu manipulationssicherem Konfigurationszustand 260:
  • Der Zustandsautomat 200 ist dafür ausgelegt, nur dem betriebssicheren Master M (110-0) zu erlauben, die Ressource 120 aus dem manipulationssicheren Ausführungszustand 250 in den manipulationssicheren Konfigurationszustand 260 zu überführen, da die Konfiguration für die Betriebssicherheit relevant ist. Dies wird dadurch erreicht, dass der betriebssichere Master M (110-0) die Ausführungskonfigurationszustandsbits im Schutzregister 170 speichert.
  • Der manipulationssichere Konfigurationszustand 260 ist ein manipulations- und betriebssicherer Zustand. Wenn der betriebssichere Master M (110-0) bösartig ist, kann ohnehin keine Betriebssicherheit garantiert werden. Während des manipulationssicheren Konfigurationszustandes 260 darf nur der betriebssichere Master M (110-0) die Ressource 120 umkonfigurieren. Die neue Konfiguration wird nicht sofort wirksam, da davon ausgegangen wird, dass diese Ressource 120 kritisch ist. Eine kritische Ressource ist z.B. das Taktsystem. Der manipulationssichere Master CSM (110-cs) hat die Möglichkeit, die neue Konfiguration während des unten besprochenen manipulationssicheren Prüfzustands 270 zu prüfen.
  • Der manipulationssichere Konfigurationszustand 260 umfasst, neue Konfigurationsdaten in Schattenregister (nicht gezeigt) zu schreiben, um zu verhindern, dass eine unzulässige Konfiguration aktiv wird, bevor sie vom manipulationssicheren Master CSM (110-cs) geprüft wurde.
  • Manipulationssicherer Konfigurationszustand 260 zu manipulationssicherem Prüfzustand 270:
  • Der Zustandsautomat 200 ist dafür ausgelegt, nur dem manipulationssicheren Master CSM (110-cs) zu erlauben, die Ressource 120 aus einem manipulationssicheren Konfigurationszustand 260 in einen manipulationssicheren Prüfzustand 270 zu überführen. Während des manipulationssicheren Prüfzustands 270 kann die neue Konfiguration nicht mehr geändert werden, ist aber möglicherweise noch nicht aktiv. Dies ermöglicht es dem manipulationssicheren Master CSM (110-cs), die neue Konfiguration zu prüfen, bevor die neue Konfiguration durch den Übergang aus dem manipulationssicheren Prüfzustand 270 in den manipulationssicheren Ausführungszustand 250 aktiviert wird. Diese Prüfung wird vom manipulationssicheren Master CSM (110-cs) durchgeführt, kann aber alternativ auch vom betriebssicheren Master 110-0 oder einem anderen Master 110 durchgeführt werden.
  • Der manipulationssichere Konfigurationszustand 260 und der manipulationssichere Prüfzustand 270 garantieren, dass eine mögliche bösartige Konfiguration der Ressource 120 die Fähigkeit eines manipulationssicheren Masters CSM (110-cs), einen Angriff zu erkennen und zu reagieren, nicht beeinträchtigt.
  • Manipulationssicherer Prüfzustand 270 zu manipulationssicherem Ausführungszustand:
  • Der Zustandsautomat 200 ist dafür ausgelegt, nur dem manipulationssicheren Master CSM (110-cs) zu erlauben, die Ressource 120 aus dem manipulationssicheren Prüfzustand 270 in einen manipulationssicheren Ausführungszustand 250 zu überführen, während dessen die Ressource 120 normal in manipulationssicherer Art und Weise mit der geprüften Konfiguration betrieben wird.
  • Dieser Übergang 120 aus dem manipulationssicheren Prüfzustand 270 in den manipulationssicheren Ausführungszustand 250 aktiviert das Übergangssignal „c2r“, Konfigurieren zum Ausführen, das eine parallele Übertragung aus den Schattenregistern in die eigentlichen Steuerregister auslöst. Das Übergangssignal c2r ist für einen Taktzyklus während des Übergangs aus dem Konfigurationszustand 230 in den Ausführungszustand 220 oder aus dem Manipulationssicherheits-Prüfzustand 270 in den manipulationssicheren Ausführungszustand 250 aktiv. Die Schattenregister sind möglicherweise kein einzelnes Register, sondern mehrere Register, die vorzugsweise nicht einzeln beschrieben werden können. Wenn die Register einzeln beschrieben werden könnten, gäbe es eine Zeitspanne, in der ein Teil der Register die alte Konfiguration und ein anderer Teil eine neue Konfiguration aufweist.
  • Ein optionales Cybersicherheits-Schutzsignal („csprot“) ist ein zentral gesteuertes Signal, das eine Ressource 120 mit starken Anforderungen an die Manipulationssicherheit in einen betriebs- und manipulationssicheren Zustand versetzt. Eine solche Ressource 120 kann z.B. eine Bus-MPU sein wie oben erwähnt. Wenn die Hardware einen Angriff erkennt, z. B. eine Taktstörung oder einen Spannungsangriff, erzeugt die Hardware (z. B. eine Ereignisverwaltungseinheit) das Cybersicherheits-Schutzsignal, um die Ressource 120 direkt in den manipulationssicheren Konfigurationszustand 260 zu überführen.
  • 3 zeigt eine Hardware-Implementierung eines Zustandsautomaten 300 gemäß Aspekten der Offenbarung.
  • Die Hardware-Implementierung des Zustandsautomaten 300 umfasst Tag-Identifikationsfilter (TIF) 310.M, TIF 310.Rx, Schutzregister 320, Zustandsautomatenzustand 330, einen Umrichter, Schreibfreigabegatter 340, Schreibfreigabegatter 350, TIF 360, TIF 370, Zugriffsfreigaberegister 380 und Ressource 390.
  • Das TIF 310.M filtert aus einem Zugriffsfreigabesignal eine Kennung des manipulationssicheren Masters CSM (110-cs), der eine Ressource 120 umkonfigurieren kann. Das TIF 310.Rx filtert aus dem Zugriffssignal Steuerbits für Zustandsautomaten 130.
  • Das Schutzregister 320 ist äquivalent zum Schutzregister 170 von 1. In diesem Beispiel besteht das Schutzregister 320 aus zwei Teilen, PROT.M zum Speichern der Kennung des manipulationssicheren Masters CSM (110-cs) und PROT.Rx zum Speichern der Steuerbits. Das Register 320 in diesem Beispiel ist ein einzelnes Register, kann aber alternativ mehrere Register umfassen.
  • Das Diagramm des Zustandsautomaten 330 ist äquivalent zum Zustandsautomaten 130 von 1. Wie oben erörtert, schützt der Zustandsautomat 330 eine Ressource, indem er steuert, ob Zustandsübergänge nur von einem betriebssicheren Master, nur von einem manipulationssicheren Master oder von beiden durchgeführt werden können. Der Zustandsautomat 330 kann mit Flip-Flops implementiert sein und umfasst Register.
  • Der Zustandsautomat 330 wird mit zwei Ausgangssignalen gezeigt - dem Signal config_state und dem Signal cs_config_state. Das Signal config_state ist aktiv und aktiviert das Schreibgatter 340 während des Konfigurationszustands 230, des manipulationssicheren Konfigurationszustands 260 und des Initialisierungszustands 210. Das Signal cs_config_state ist spezifisch für die Cybersicherheit und erzwingt einen manipulationssicheren Zustand für Ressourcen mit hohen Anforderungen an die Manipulationssicherheit, wie z.B. den manipulationssicheren Master CSM (110-cs) oder eine Bus-MPU; dieses Signal verhindert z.B. über den Umrichter und das Schreibfreigabegatter 350 den Ressourcenzugriff während der Umkonfiguration.
  • Das Zugriffsfreigaberegister 380 enthält z.B. 32 Bits. Jedes Bit repräsentiert einen Master, so dass eine beliebige Kombination von Mastern konfiguriert werden kann. Das Zugriffsfreigaberegister 380 kann während eines manipulationssicheren Prüfzustands 270 deaktiviert sein. Und wenn der Zustandsautomat 330 dem betriebssicheren Master M (110-0) erlaubt, die Ressource 390 aus dem manipulationssicheren Ausführungszustand 250 in den manipulationssicheren Konfigurationszustand 260 zu überführen, aktiviert der betriebssichere Master M (110-0) das Zugriffsfreigaberegister 380 und benachrichtigt den manipulationssicheren Master CSM (110-cs). Der Schreibzugriff auf das Zugriffsfreigaberegister 380 kann durch das TIF 370 auf einen bestimmten Master beschränkt werden. Auch das Zugriffsfreigaberegister 380 selbst ist ein Schutz für eine Peripherievorrichtung oder einen Speicherbereich.
  • Die Ressource 390 ist äquivalent zur Ressource 120 von 1. Die Ressource 390 kann z.B. ein Direktzugriffsspeicher (RAM, Random Access Memory) sein. Der Zugriff auf die Ressource 390 kann durch ACCEN 380 und TIF 360 auf einen bestimmten Master oder eine Gruppe von Mastern beschränkt werden.
  • 4A zeigt Bitfelder 400A des Ressourcenschutzregisters 170 gemäß Aspekten der Offenbarung. 4B zeigt eine Tabelle mit Bitfelddefinitionen 400B des Ressourcenschutzregisters 170 von 4A gemäß Aspekten der Offenbarung.
  • Der obere Teil der Bitfelder 400 A des Ressourcenschutzregisters 170 definiert einen Master-Prozessorkern 110 mit den folgenden Bitfeldern: VM (drei Bits für eine virtuelle Maschine (VM)), VME (ein Bit für die Aktivierung der VM), PRS (drei Bits für einen Schutzsatz, „PRotection Set“), PRSE (ein Bit für die Aktivierung des PRS), TAG_ID (sechs Bits für die Tag-Identifikation, die den Master identifiziert), MEN (ein Bit, das anzeigt, dass die Master-Einstellung aktiviert ist; ist dieses nicht gesetzt, dann ist jeder Master aktiviert, wie z.B. während des Initialisierungszustands 210) und M_P (ein Bit, das 1 sein muss, wenn das Schutzregister 170 beschrieben wird).
  • Der untere Teil der Bitfelder 400A des Ressourcenschutzregisters 170 definiert den Schutz (R0_P, R1_P, R2_P, R3_P, R4_P) für die vier Ressourcen 120 (R0, R1, R2, R3). Es gibt vier Zustandskontrollfelder (x = 0...3), mit vier Bits für jede Zustandskontrolle. Diese Zustandskontrollfelder erlauben verschiedene Zustandsautomaten 130 für verschiedene Ressourcen 120, die einen gemeinsamen Master haben. Für jedes Zustandskontrollfeld (R0, R1, R2, R3) wird der Zustand mit drei Bits identifiziert. Es gibt sieben Zustände: 0 (000, Initialisierungszustand), 1 (001, Ausführungszustand), 2 (010, Konfigurationszustand), 4 (100, Ausführungssperrzustand), 5 (101, manipulationssicherer Ausführungszustand), 6 (110, manipulationssicherer Konfigurationszustand) und 7 (111, manipulationssicherer Prüfzustand). Der jeweilige Schutz wird mit einem Schutzbit (R0_P, R1_P, R2_P, R3_P) identifiziert, das in diesem Beispiel zum Lesen auf 0 und zum Schreiben auf 1 gesetzt wird.
  • Tabelle 4B in 4B umfasst die Felder, Bits, Typen und Beschreibungen des in 4A gezeigten Ressourcenschutzregisters 170. Der Kürze halber wird diese Information hier nicht wiederholt.
  • 5A zeigt ein Flussdiagramm eines Ressourcenschutzverfahrens 500B gemäß Aspekten der Offenbarung.
  • In Schritt 510A wird ein Prozessorkern von mehreren Prozessorkernen 110 als manipulationssicherer Master 110-cs zugewiesen, der dafür ausgelegt ist, Manipulationssicherheitssoftware auszuführen.
  • In Schritt 520A wird ein anderer Prozessorkern der mehreren Prozessorkerne 110 als betriebssicherer Master 110-0 zugewiesen, der dafür ausgelegt ist, betriebssichere Software auszuführen. Dieser betriebssichere Master 110-0 kann ein betriebssicherer Master sein, der dafür ausgelegt ist, betriebssichere Software auszuführen.
  • In Schritt 530A schützt ein Zustandsautomat 130 eine Ressource 120, die dafür ausgelegt ist, vom manipulationssicheren Master 110-cs und dem betriebssicheren Master 110-0 gemeinsam genutzt zu werden, indem nur der manipulationssichere Master 110-cs die Erlaubnis erhält, die Ressource 120 in einen bestimmten Zustand des Zustandsautomaten 130 zu überführen, und indem nur der betriebssichere Master 110-0 die Erlaubnis erhält, die Ressource 120 in einen anderen bestimmten Zustand des Zustandsautomaten 130 zu überführen.
  • 5B zeigt ein Flussdiagramm eines weiteren Ressourcenschutzverfahrens 500B gemäß Aspekten der Offenbarung.
  • In Schritt 510B wird eine virtuelle Maschine von mehreren virtuellen Maschinen 110-cs-vm eines Masters eines Prozessorkerns von mehreren Prozessorkernen 110 als manipulationssichere virtuelle Maschine 110-cs-vmcs zugewiesen, die dafür ausgelegt ist, Manipulationssicherheitssoftware auszuführen.
  • In Schritt 520B wird eine andere virtuelle Maschine der mehreren virtuellen Maschinen 100-cs-vm als betriebssichere virtuelle Maschine 110-cs-vm0 zugewiesen, die dafür ausgelegt ist, betriebssichere Software auszuführen. Dieser betriebssichere Master 110-cs-vm0 kann ein betriebssicherer Master sein, der dafür ausgelegt ist, betriebssichere Software auszuführen.
  • In Schritt 530C schützt ein Zustandsautomat 130 eine Ressource 120, die dafür ausgelegt ist, von der manipulationssicheren virtuellen Maschine 110-cs-vmcs und der betriebssicheren virtuellen Maschine 110-cs-vm0 gemeinsam genutzt zu werden, indem nur die manipulationssichere virtuelle Maschine 110-cs-vcms die Erlaubnis erhält, die Ressource 120 in einen bestimmten Zustand des Zustandsautomaten 130 zu überführen, und indem nur die betriebssichere virtuelle Maschine 110-cs-vm0 die Erlaubnis erhält, die Ressource 120 in einen anderen bestimmten Zustand des Zustandsautomaten 130 zu überführen.
  • Die Verfahren dieser Offenbarung können auch in den folgenden Beispielen beschrieben werden.
  • Beispiel 1. Ein-Chip-System (SoC, System on Chip), umfassend: mehrere Prozessorkerne einschließlich eines manipulationssicheren Masters, der dafür ausgelegt ist, Manipulationssicherheitssoftware auszuführen, und eines nicht manipulationssicheren Masters, der dafür ausgelegt ist, nicht für die Manipulationssicherheit relevante Software auszuführen; eine Ressource, die dafür ausgelegt ist, vom manipulationssicheren Master und nicht manipulationssicheren Master gemeinsam genutzt zu werden; und einen Zustandsautomaten, der dafür ausgelegt ist, die Ressource zu schützen, indem nur der manipulationssichere Master die Erlaubnis erhält, die Ressource in einen bestimmten Zustand des Zustandsautomaten zu überführen, und indem nur der nicht manipulationssichere Master die Erlaubnis erhält, die Ressource in einen anderen bestimmten Zustand des Zustandsautomaten zu überführen.
  • Beispiel 2. SoC von Beispiel 1, wobei der nicht manipulationssichere Master ein betriebssicherer Master ist, der dafür ausgelegt ist, Betriebssicherheitssoftware auszuführen.
  • Beispiel 3. SoC einer beliebigen Kombination der Beispiele 1-2, wobei der manipulationssichere Master dafür ausgelegt ist, sich selbst im Rahmen einer Bustransaktion als manipulationssicherer Master bei der Ressource zu identifizieren.
  • Beispiel 4. SoC einer beliebigen Kombination der Beispiele 1-3, wobei der manipulationssichere Master oder der nicht manipulationssichere Master anhand einer Master-Kennung identifizierbar ist, die Teil der Bustransaktion ist und mit einer konfigurierbaren oder hartcodierten Referenz-Master-Kennung, die an der Ressource gespeichert ist, verglichen werden kann.
  • Beispiel 5. SoC einer beliebigen Kombination der Beispiele 1-4, wobei die konfigurierbare Referenz-Master-Kennung schreibgeschützt ist.
  • Beispiel 6. SoC einer beliebigen Kombination der Beispiele 1-5, wobei nur der manipulationssichere Master oder der nicht manipulationssichere Master, der daran identifizierbar ist, dass die Master-Kennung mit der Referenz-Master-Kennung übereinstimmt, über die Berechtigung verfügt, die Referenz-Master-Kennung zu ändern, um einen anderen der mehreren Prozessorkerne als manipulationssicheren Master bzw. nicht manipulationssicheren Master zu identifizieren.
  • Beispiel 7. SoC einer beliebigen Kombination der Beispiele 1-6, wobei der manipulationssichere Master dafür ausgelegt ist, seine Kennung als manipulationssicherer Master im Rahmen der Bustransaktion mittels eines Seitenbandsignals an das Ressourcenschutzregister zu übertragen.
  • Beispiel 8. SoC einer beliebigen Kombination der Beispiele 1-7, wobei die Ressource ein Register ist.
  • Beispiel 9. SoC einer beliebigen Kombination der Beispiele 1-8, ferner umfassend: mehrere Ressourcen; und mehrere Zustandsautomaten, die jeweils einer bestimmten der mehreren Ressourcen entsprechen.
  • Beispiel 10. SoC einer beliebigen Kombination der Beispiele 1-9, wobei der Zustandsautomat dafür ausgelegt ist, nur dem nicht manipulationssicheren Master zu erlauben, die Ressource aus einem Ausführungszustand in einen Konfigurationszustand zu überführen, während dessen nur der nicht manipulationssichere Master über die Erlaubnis verfügt, die Ressource umzukonfigurieren.
  • Beispiel 11. SoC einer beliebigen Kombination der Beispiele 1-10, wobei die Umkonfiguration umfasst, neue Konfigurationsdaten in Schattenregister zu schreiben, um zu verhindern, dass eine unzulässige Konfiguration aktiv wird, bevor sie vom manipulationssicheren Master geprüft wurde.
  • Beispiel 12. SoC einer beliebigen Kombination der Beispiele 1-11, wobei der Zustandsautomat dafür ausgelegt ist, nur dem manipulationssicheren Master zu erlauben, die Ressource aus einem Konfigurationszustand in einen Prüfzustand zu überführen, während dessen eine Konfiguration der Ressource oder der Schattenregister der Ressource nicht geändert werden kann und geprüft wird.
  • Beispiel 13. SoC einer beliebigen Kombination der Beispiele 1-12, wobei der Zustandsautomat dafür ausgelegt ist, nur dem manipulationssicheren Master zu erlauben, die Ressource aus dem Prüfzustand in einen Ausführungszustand zu überführen, während dessen die Ressource normal in manipulationssicherer Art und Weise mit der geprüften Konfiguration betrieben wird.
  • Beispiel 14. SoC einer beliebigen Kombination der Beispiele 1-13, wobei die Ressource eine Bus-Speicherschutzeinheit (MPU, Memory Protection Unit) ist, die dafür ausgelegt ist, den Zugriff auf einen Speicher zu kontrollieren.
  • Beispiel 15. Ein-Chip-System (SoC, System on Chip), umfassend: mehrere Prozessorkerne einschließlich eines Masters, der mehrere virtuelle Maschinen einschließlich einer manipulationssicheren virtuellen Maschine, die dafür ausgelegt ist, Manipulationssicherheitssoftware auszuführen, und einer nicht manipulationssicheren virtuellen Maschine, die dafür ausgelegt ist, nicht für die Manipulationssicherheit relevante Software auszuführen, umfasst; eine Ressource, die dafür ausgelegt ist, von der manipulationssicheren virtuellen Maschine und der nicht manipulationssicheren virtuellen Maschine gemeinsam genutzt zu werden; und einen Zustandsautomaten, der dafür ausgelegt ist, die Ressource zu schützen, indem nur die manipulationssichere virtuelle Maschine die Erlaubnis erhält, die Ressource in einen bestimmten Zustand des Zustandsautomaten zu überführen, und indem nur die nicht manipulationssichere virtuelle Maschine die Erlaubnis erhält, die Ressource in einen anderen bestimmten Zustand des Zustandsautomaten zu überführen.
  • Beispiel 16. SoC von Beispiel 15, wobei die manipulationssichere virtuelle Maschine anhand einer Kennung einer manipulationssicheren virtuellen Maschine identifizierbar ist, die Teil einer Bustransaktion ist und mit einer konfigurierbaren oder hartcodierten Referenz-Kennung, die an der Ressource gespeichert ist, verglichen werden kann.
  • Beispiel 17. SoC einer beliebigen Kombination der Beispiele 15-16, wobei die manipulationssichere virtuelle Maschine dafür ausgelegt ist, sich selbst im Rahmen einer Bustransaktion als manipulationssichere virtuelle Maschine bei der Ressource zu identifizieren.
  • Beispiel 18. Ein-Chip-System (SoC, System on Chip), umfassend: mehrere Prozessorkerne einschließlich eines manipulationssicheren Masters, der dafür ausgelegt ist, Manipulationssicherheitssoftware auszuführen; und einen Zustandsautomaten, der dafür ausgelegt ist, die Ressource zu schützen, indem nur der manipulationssichere Master die Erlaubnis erhält, die Ressource in einen bestimmten Zustand des Zustandsautomaten zu überführen.
  • Beispiel 19. SoC von Beispiel 18, wobei der manipulationssichere Master ein Hardware-Sicherheitsmodul (HSM, Hardware Security Module) ist.
  • Beispiel 20. Ressourcenschutzverfahren, umfassend: einen Prozessorkern von mehreren Prozessorkernen als manipulationssicheren Master zuzuweisen, der dafür ausgelegt ist, Manipulationssicherheitssoftware auszuführen; einen anderen Prozessorkern der mehreren Prozessorkerne als nicht manipulationssicheren Master zuzuweisen, der dafür ausgelegt ist, nicht für die Manipulationssicherheit relevante Software auszuführen; und einen Zustandsautomaten, der eine Ressource, die dafür ausgelegt ist, vom manipulationssicheren Master und vom nicht manipulationssicheren Master gemeinsam genutzt zu werden, schützt, indem nur der manipulationssichere Master die Erlaubnis erhält, die Ressource in einen bestimmten Zustand des Zustandsautomaten zu überführen, und indem nur der nicht manipulationssichere Master die Erlaubnis erhält, die Ressource in einen anderen bestimmten Zustand des Zustandsautomaten zu überführen.
  • Beispiel 21. Ressourcenschutzverfahren von Beispiel 20, wobei der nicht manipulationssichere Master ein betriebssicherer Master ist, der dafür ausgelegt ist, Betriebssicherheitssoftware auszuführen.
  • Beispiel 22. Ressourcenschutzverfahren einer beliebigen Kombination der Beispiele 20-21, ferner umfassend: dass der manipulationssichere Master sich selbst im Rahmen einer Bustransaktion als manipulationssicherer Master bei der Ressource identifiziert.
  • Beispiel 23. Ressourcenschutzverfahren einer beliebigen Kombination der Beispiele 20-22, wobei: der manipulationssichere Master oder der nicht manipulationssichere Master durch eine Master-Kennung identifizierbar sind, die Teil der Bus-Transaktion ist, und das Verfahren ferner umfasst, die Master-Kennung mit einer konfigurierbaren oder hartkodierten Referenz-Master-Kennung, die an der Ressource gespeichert ist, zu vergleichen.
  • Beispiel 24. Ressourcenschutzverfahren einer beliebigen Kombination der Beispiele 20-23, ferner umfassend: die konfigurierbare Referenz-Master-Kennung gegen Überschreiben zu schützen.
  • Beispiel 25. Ressourcenschutzverfahren einer beliebigen Kombination der Beispiele 20-24, ferner umfassend: nur dem manipulationssicheren Master oder dem nicht manipulationssicheren Master, der daran identifizierbar ist, dass die Master-Kennung mit der Referenz-Master-Kennung übereinstimmt, die Berechtigung zu erteilen, die Referenz-Master-Kennung zu ändern, um einen anderen der mehreren Prozessorkerne als manipulationssicheren Master bzw. nicht manipulationssicheren Master zu identifizieren.
  • Beispiel 26. Ressourcenschutzverfahren einer beliebigen Kombination der Beispiele 20-26, ferner umfassend: dass der manipulationssichere Master seine Kennung als manipulationssicherer Master im Rahmen der Bustransaktion mittels eines Seitenbandsignals an das Schutzregister der Ressource überträgt.
  • Beispiel 27. Ressourcenschutzverfahren einer beliebigen Kombination der Beispiele 20-26, wobei die Ressource ein Register ist.
  • Beispiel 28. Ressourcenschutzverfahren einer beliebigen Kombination der Beispiele 20-27, ferner umfassend: dass mehrere Zustandsautomaten mehrere jeweilige Ressourcen schützen.
  • Beispiel 29. Ressourcenschutzverfahren einer beliebigen Kombination der Beispiele 20-28, ferner umfassend: dass der Zustandsautomat nur dem nicht manipulationssicheren Master erlaubt, die Ressource aus einem Ausführungszustand in einen Konfigurationszustand zu überführen, während dessen nur der nicht manipulationssichere Master die Erlaubnis hat, die Ressource umzukonfigurieren.
  • Beispiel 30. Ressourcenschutzverfahren einer beliebigen Kombination der Beispiele 20-29, wobei die Umkonfiguration umfasst: neue Konfigurationsdaten in Schattenregister zu schreiben, um zu verhindern, dass eine unzulässige Konfiguration aktiv wird, bevor sie vom manipulationssicheren Master geprüft wurde.
  • Beispiel 31. Ressourcenschutzverfahren einer beliebigen Kombination der Beispiele 20-30, ferner umfassend: dass der Zustandsautomat nur dem manipulationssicheren Master zu erlaubt, die Ressource aus einem Konfigurationszustand in einen Prüfzustand zu überführen, während dessen eine Konfiguration der Ressource oder der Schattenregister der Ressource nicht geändert werden kann und geprüft wird.
  • Beispiel 32. Ressourcenschutzverfahren einer beliebigen Kombination der Beispiele 20-31, ferner umfassend: dass der Zustandsautomat nur dem manipulationssicheren Master zu erlaubt, die Ressource aus dem Prüfzustand in einen Ausführungszustand zu überführen, während dessen die Ressource normal in manipulationssicherer Art und Weise mit der geprüften Konfiguration betrieben wird.
  • Beispiel 33. Ressourcenschutzverfahren einer beliebigen Kombination der Beispiele 20-32, ferner umfassend: den Zugriff auf einen Speicher durch eine Bus-Speicherschutzeinheit (MPU, Memory Protection Unit) zu schützen, bei der es sich um die Ressource handelt.
  • Beispiel 34. Ressourcenschutzverfahren, umfassend: eine virtuellen Maschine von mehreren virtuellen Maschinen eines Masters eines Prozessorkerns von mehreren Prozessorkernen als manipulationssichere virtuelle Maschine zuzuweisen, die dafür ausgelegt ist, Manipulationssicherheitssoftware auszuführen; eine andere virtuelle Maschine der mehreren virtuellen Maschinen als nicht manipulationssicheren virtuelle Maschine zuzuweisen, die dafür ausgelegt ist, nicht für die Manipulationssicherheit relevante Software auszuführen; und einen Zustandsautomaten, der eine Ressource, die dafür ausgelegt ist, von der manipulationssicheren virtuellen Maschine und der nicht manipulationssicheren virtuellen Maschine gemeinsam genutzt zu werden, schützt, indem nur die manipulationssichere virtuelle Maschine die Erlaubnis erhält, die Ressource in einen bestimmten Zustand des Zustandsautomaten zu überführen, und indem nur die nicht manipulationssichere virtuelle Maschine die Erlaubnis erhält, die Ressource in einen anderen bestimmten Zustand des Zustandsautomaten zu überführen.
  • Beispiel 35. Ressourcenschutzverfahren von Beispiel 34, wobei: die manipulationssichere virtuelle Maschine anhand einer Kennung einer manipulationssicheren virtuellen Maschine identifizierbar ist, die Teil einer Bustransaktion ist, und wobei das Verfahren ferner umfasst, die Kennung der manipulationssicheren virtuellen Maschine mit einer konfigurierbaren oder hartcodierten Referenz-Kennung, die an der Ressource gespeichert ist, zu vergleichen.
  • Beispiel 36. Ressourcenschutzverfahren einer beliebigen Kombination der Beispiele 34-35, wobei die manipulationssichere virtuelle Maschine dafür ausgelegt ist, sich selbst im Rahmen einer Bustransaktion als manipulationssichere virtuelle Maschine bei der Ressource zu identifizieren.
  • Beispiel 37. Ressourcenschutzverfahren, umfassend: einen Prozessorkern von mehreren Prozessorkernen als manipulationssicheren Master zuzuweisen, der dafür ausgelegt ist, Manipulationssicherheitssoftware auszuführen; und einen Zustandsautomaten, der eine Ressource schützt, indem nur der manipulationssichere Master die Erlaubnis erhält, die Ressource in einen bestimmten Zustand des Zustandsautomaten zu überführen.
  • Beispiel 38. Ressourcenschutzverfahren von Beispiel 37, wobei der manipulationssichere Master ein Hardware-Sicherheitsmodul (HSM, Hardware Security Module) ist. Auch wenn das Vorstehende im Zusammenhang mit beispielhaften Ausführungsformen beschrieben wurde, versteht es sich, dass der Ausdruck „beispielhaft“ lediglich als Beispiel und nicht als beste oder optimale Ausführungsform gemeint ist. Entsprechend soll sich die Offenbarung auch auf Alternativen, Modifikationen und Äquivalente erstrecken, die in den Schutzbereich der Offenbarung fallen können.
  • Obwohl hier spezifische Ausführungsformen veranschaulicht und beschrieben wurden, ist für den Durchschnittsfachmann erkennbar, dass vielfältige alternative und/oder äquivalente Implementierungen die dargestellten und beschriebenen spezifischen Ausführungsformen ersetzen können, ohne vom Schutzbereich der vorliegenden Offenbarung abzuweichen. Die vorliegende Offenbarung soll jegliche Anpassungen oder Varianten der hier besprochenen spezifischen Ausführungsformen abdecken.

Claims (15)

  1. Ein-Chip-System (SoC, System on Chip) (100), umfassend: mehrere Prozessorkerne (110-0, 110-1, 110-2, 110-3, 110-cs) einschließlich eines manipulationssicheren Masters (CSM), der dafür ausgelegt ist, Manipulationssicherheitssoftware auszuführen, und eines nicht manipulationssicheren Masters (M), der dafür ausgelegt ist, nicht für die Manipulationssicherheit relevante Software auszuführen; eine Ressource (120), die dafür ausgelegt ist, vom manipulationssicheren Master (CSM) und nicht manipulationssicheren Master (M) gemeinsam genutzt zu werden; und einen Zustandsautomaten (130), der dafür ausgelegt ist, die Ressource(120) zu schützen, indem nur der manipulationssichere Master (CSM) die Erlaubnis erhält, die Ressource (120) in einen bestimmten Zustand des Zustandsautomaten (130) zu überführen, und indem nur der nicht manipulationssichere Master (M) die Erlaubnis erhält, die Ressource (120) in einen anderen bestimmten Zustand des Zustandsautomaten (130) zu überführen.
  2. SoC (100) nach Anspruch 1, wobei der nicht manipulationssichere Master (M) ein betriebssicherer Master ist, der dafür ausgelegt ist, Betriebssicherheitssoftware auszuführen.
  3. SoC (100) nach einem der Ansprüche 1 oder 2, wobei der manipulationssichere Master (CSM) dafür ausgelegt ist, sich selbst im Rahmen einer Bustransaktion als manipulationssicherer Master (CSM) bei der Ressource (120) zu identifizieren.
  4. SoC (100) nach einem der Ansprüche 1 bis 3, wobei der manipulationssichere Master (CSM) oder der nicht manipulationssichere Master (M) anhand einer Master-Kennung identifizierbar sind, die Teil der Bustransaktion ist und mit einer konfigurierbaren oder hartcodierten Referenz-Master-Kennung, die an der Ressource (120) gespeichert ist, verglichen werden kann; wobei wahlweise die konfigurierbare Referenz-Master-Kennung schreibgeschützt ist; wobei ferner wahlweise nur der manipulationssichere Master (CSM) oder der nicht manipulationssichere Master (M), der daran identifizierbar ist, dass die Master-Kennung mit der Referenz-Master-Kennung übereinstimmt, über die Berechtigung verfügt, die Referenz-Master-Kennung zu ändern, um einen anderen der mehreren Prozessorkerne (110-0, 110-1, 110-2, 110-3, 110-cs) als manipulationssicheren Master (CSM) bzw. nicht manipulationssicheren Master (M) zu identifizieren.
  5. SoC (100) nach einem der Ansprüche 3 oder 4, wobei der manipulationssichere Master (CSM) dafür ausgelegt ist, seine Kennung als manipulationssicherer Master (CSM) im Rahmen der Bustransaktion mittels eines Seitenbandsignals an das Schutzregister der Ressource (120) zu übertragen.
  6. SoC (100) nach einem der Ansprüche 1 bis 5, wobei die Ressource (120) ein Register ist.
  7. SoC (100) nach einem der Ansprüche 1 bis 6, ferner umfassend: mehrere Ressourcen (120); und mehrere Zustandsautomaten (130), die jeweils einer bestimmten der mehreren Ressourcen (120) entsprechen.
  8. SoC (100) nach einem der Ansprüche 1 bis 7, wobei der Zustandsautomat (130) dafür ausgelegt ist, nur dem nicht manipulationssicheren Master (M) zu erlauben, die Ressource (120) aus einem Ausführungszustand in einen Konfigurationszustand zu überführen, während dessen nur der nicht manipulationssichere Master (M) über die Erlaubnis verfügt, die Ressource (120) umzukonfigurieren; wobei wahlweise die Umkonfiguration umfasst, neue Konfigurationsdaten in Schattenregister zu schreiben, um zu verhindern, dass eine unzulässige Konfiguration aktiv wird, bevor sie vom manipulationssicheren Master (CSM) geprüft wurde.
  9. SoC (100) nach einem der Ansprüche 1 bis 8, wobei der Zustandsautomat (130) dafür ausgelegt ist, nur dem manipulationssicheren Master (CSM) zu erlauben, die Ressource (120) aus einem Konfigurationszustand in einen Prüfzustand zu überführen, während dessen eine Konfiguration der Ressource (120) oder der Schattenregister der Ressource (120) nicht geändert werden kann und geprüft wird; wobei wahlweise der Zustandsautomat (130) dafür ausgelegt ist, nur dem manipulationssicheren Master (CSM) zu erlauben, die Ressource (120) aus dem Prüfzustand in einen Ausführungszustand zu überführen, während dessen die Ressource (120) normal in manipulationssicherer Art und Weise mit der geprüften Konfiguration betrieben wird.
  10. SoC (100) nach einem der Ansprüche 1 bis 9, wobei die Ressource (120) eine Bus-Speicherschutzeinheit (MPU, Memory Protection Unit) ist, die dafür ausgelegt ist, den Zugriff auf einen Speicher zu kontrollieren.
  11. Ein-Chip-System (SoC, System on Chip) (100), umfassend: mehrere Prozessorkerne (110-0, 110-1, 110-2, 110-3, 110-cs) einschließlich eines Masters, der mehrere virtuelle Maschinen einschließlich einer manipulationssicheren virtuellen Maschine, die dafür ausgelegt ist, Manipulationssicherheitssoftware auszuführen, und einer nicht manipulationssicheren virtuellen Maschine, die dafür ausgelegt ist, nicht für die Manipulationssicherheit relevante Software auszuführen, umfasst; eine Ressource (120), die dafür ausgelegt ist, von der manipulationssicheren virtuellen Maschine und der nicht manipulationssicheren virtuellen Maschine gemeinsam genutzt zu werden; und einen Zustandsautomaten (130), der dafür ausgelegt ist, die Ressource (120) zu schützen, indem nur die manipulationssichere virtuelle Maschine die Erlaubnis erhält, die Ressource (120) in einen bestimmten Zustand des Zustandsautomaten (130) zu überführen, und indem nur die nicht manipulationssichere virtuelle Maschine die Erlaubnis erhält, die Ressource (120) in einen anderen bestimmten Zustand des Zustandsautomaten (130) zu überführen.
  12. SoC (100) nach Anspruch 11, wobei die manipulationssichere virtuelle Maschine anhand einer Kennung einer manipulationssicheren virtuellen Maschine identifizierbar ist, die Teil einer Bustransaktion ist und mit einer konfigurierbaren oder hartcodierten Referenz-Kennung, die an der Ressource (120) gespeichert ist, verglichen werden kann.
  13. SoC (100) nach einem der Ansprüche 11 oder 12, wobei die manipulationssichere virtuelle Maschine dafür ausgelegt ist, sich selbst im Rahmen einer Bustransaktion als manipulationssichere virtuelle Maschine bei der Ressource (120) zu identifizieren.
  14. Ein-Chip-System (SoC, System on Chip) (100), umfassend: mehrere Prozessorkerne (110-0, 110-1, 110-2, 110-3, 110-cs) einschließlich eines manipulationssicheren Masters (CSM), der dafür ausgelegt ist, Manipulationssicherheitssoftware auszuführen; und einen Zustandsautomaten (130), der dafür ausgelegt ist, die Ressource (120) zu schützen, indem nur der manipulationssichere Master (CSM) die Erlaubnis erhält, die Ressource (120) in einen bestimmten Zustand des Zustandsautomaten (130) zu überführen.
  15. SoC (100) nach Anspruch 14, wobei der manipulationssichere Master (CSM) ein Hardware-Sicherheitsmodul (HSM, Hardware Security Module) ist.
DE102020115708.8A 2019-06-14 2020-06-15 Schutz von ressourcen Pending DE102020115708A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/441,227 2019-06-14
US16/441,227 US11288404B2 (en) 2019-06-14 2019-06-14 Resource protection

Publications (1)

Publication Number Publication Date
DE102020115708A1 true DE102020115708A1 (de) 2020-12-17

Family

ID=73547242

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020115708.8A Pending DE102020115708A1 (de) 2019-06-14 2020-06-15 Schutz von ressourcen

Country Status (3)

Country Link
US (1) US11288404B2 (de)
JP (1) JP7512097B2 (de)
DE (1) DE102020115708A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7306964B2 (ja) * 2019-11-05 2023-07-11 ルネサスエレクトロニクス株式会社 仮想化システムおよび動作管理方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2402785B (en) 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Processor switching between secure and non-secure modes
US7444668B2 (en) * 2003-05-29 2008-10-28 Freescale Semiconductor, Inc. Method and apparatus for determining access permission
US8185952B2 (en) 2007-01-03 2012-05-22 Texas Instruments Incorporated Static and dynamic firewalls
WO2009018481A1 (en) * 2007-07-31 2009-02-05 Viasat, Inc. Multi-level key manager
US20090204823A1 (en) 2008-02-07 2009-08-13 Analog Devices, Inc. Method and apparatus for controlling system access during protected modes of operation
US9076001B1 (en) * 2012-02-06 2015-07-07 Marvell International Ltd. Method and apparatus for implementing a secure content pipeline
KR102017828B1 (ko) 2012-10-19 2019-09-03 삼성전자 주식회사 보안 관리 유닛, 상기 보안 관리 유닛을 포함하는 호스트 컨트롤러 인터페이스, 상기 호스트 컨트롤러 인터페이스의 동작 방법, 및 상기 호스트 컨트롤러 인터페이스를 포함하는 장치들
US9268970B2 (en) * 2014-03-20 2016-02-23 Analog Devices, Inc. System and method for security-aware master
DE102014222181A1 (de) 2014-10-30 2016-05-04 Robert Bosch Gmbh Verfahren zum Betreiben eines Steuergeräts
US10938856B2 (en) 2018-03-30 2021-03-02 Intel Corporation Systems and methods for security protocol execution in a hierarchical state machine-driven execution plan

Also Published As

Publication number Publication date
US11288404B2 (en) 2022-03-29
US20200394339A1 (en) 2020-12-17
JP7512097B2 (ja) 2024-07-08
JP2020205050A (ja) 2020-12-24

Similar Documents

Publication Publication Date Title
DE10195999B3 (de) Computersystem mit einer in einem Chipsatz enthaltenen Speichersteuereinrichtung zum Kontrollieren von Zugriffen auf einen isolierten Speicher für eine isolierte Ausführung
DE10394383B4 (de) Verfahren und Vorrichtung zum Laden eines vertrauenswürdigen Betriebssystems
DE69533587T2 (de) Gesicherte rechnerarchitektur
DE102015103220B4 (de) System, umfassend ein Master-Sicherheitsprüfungsregister, Verfahren, Nichtflüchtiges Medium und maschinenlesbare Anweisungen
DE60306952T2 (de) Zuordnung von virtuellen zu physischen speicheradressen in einem system mit einem sicheren bereich und einem nicht sicheren bereich
EP2962207B1 (de) Verfahren und schaltungsanordnung für kontrollierte zugriffe auf slave-einheiten in einem ein-chip-system
DE102020125599A1 (de) Vertrauenswürdige lokale speicherverwaltung in einer virtualisierten gpu
DE102013022299B3 (de) Schutz globaler Register in einem Multithreaded-Prozessor
DE102009017496B4 (de) Speicherzugriff in einem System mit Speicherschutz
DE102014002181B4 (de) Chip und Verfahren zum Betreiben eines Chips
DE10196440B4 (de) Steuern des Zugriffs auf mehrere isolierte Speicher in einer isolierten Ausführungsumgebung
DE112007001321T5 (de) Ausführung eines Sichere-Umgebungs-Initialisierungsbefehls in einem Punkt-zu-Punkt-Verbindungssystem
DE4104781A1 (de) Speicherzugriffsverfahren und -vorrichtung
DE102018127330A1 (de) System-on-Chip und Verfahren zum Betreiben eines System-on-Chip
DE102016220639A1 (de) Speicherschutzeinheit und Verfahren zum Schützen eines Speicheradressraumes
DE102018132970A1 (de) Verfahren und Vorrichtung zur Isolation von sensiblem nichtvertrauenswürdigem Programmcode auf mobilen Endgeräten
DE102014019531A1 (de) Verfahren zum Betrieb einer Steuerungskomponente für ein Luftfahrzeug sowie Steuerungskomponente
DE112007002085T5 (de) Zugriffssteuerung für Speicherraum in Mikroprozessorsystemen
DE102022108625A1 (de) Mehrere physische anforderungsschnittstellen für sicherheitsprozessoren
WO2021122734A1 (de) Verfahren und vorrichtung zum betreiben einer recheneinrichtung
EP3655876B1 (de) Ein-chip-system, verfahren zum betrieb eines ein-chip-systems und kraftfahrzeug
DE102020115708A1 (de) Schutz von ressourcen
DE102014002302B4 (de) System und Verfahren zum Bestimmen der operativen Robustheit eines Systems auf einem Chip
EP3036676B1 (de) Verfahren zur absicherung einer integrierten schaltung gegen unberechtigte zugriffe
DE112017003659T5 (de) Kontextbasiertes schutzsystem