DE102019220461A1 - Verfahren und Vorrichtung zum Betreiben einer Recheneinrichtung - Google Patents

Verfahren und Vorrichtung zum Betreiben einer Recheneinrichtung Download PDF

Info

Publication number
DE102019220461A1
DE102019220461A1 DE102019220461.9A DE102019220461A DE102019220461A1 DE 102019220461 A1 DE102019220461 A1 DE 102019220461A1 DE 102019220461 A DE102019220461 A DE 102019220461A DE 102019220461 A1 DE102019220461 A1 DE 102019220461A1
Authority
DE
Germany
Prior art keywords
zone
computing
memory
supervisor
preferred embodiments
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
DE102019220461.9A
Other languages
English (en)
Inventor
Manuel Jauss
Razvan Florin Aguridan
Roland Steffen
Mustafa Kartal
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102019220461.9A priority Critical patent/DE102019220461A1/de
Priority to CN202080087688.5A priority patent/CN114787806A/zh
Priority to JP2022537899A priority patent/JP7392157B2/ja
Priority to PCT/EP2020/086404 priority patent/WO2021122734A1/de
Priority to EP20833782.4A priority patent/EP4078415A1/de
Priority to US17/785,163 priority patent/US20230021594A1/en
Publication of DE102019220461A1 publication Critical patent/DE102019220461A1/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • 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/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • 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/2105Dual mode as a secondary aspect
    • 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/2113Multi-level security, e.g. mandatory access control

Landscapes

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

Abstract

Verfahren zum Betreiben einer wenigstens einen Rechenkern aufweisenden Recheneinrichtung, insbesondere für ein eingebettetes System und/oder ein Steuergerät, insbesondere für ein Fahrzeug, insbesondere Kraftfahrzeug, wobei das Verfahren die folgenden Schritte aufweist: Zuordnen von einem oder mehreren durch die Recheneinrichtung ausführbaren Anwendungsprogrammen zu einer von wenigstens zwei Zonen, wobei die Zonen Ressourcen der Recheneinrichtung charakterisieren, die für eine Ausführung eines betreffenden Anwendungsprogramms nutzbar sind, optional Ausführen wenigstens eines der Anwendungsprogramme in Abhängigkeit der ihm zugeordneten Zone, wobei das Verfahren weiter aufweist: Verwenden eines Supervisors zum Zuweisen von Rechenzeitressourcen für unterschiedliche Anwendungsprogramme und/oder Instanzen von Anwendungsprogrammen, wobei der Supervisor und/oder eine dem Supervisor entsprechende Funktionalität zumindest teilweise mittels einer Supervisor-Instanz realisiert ist, die von den wenigstens zwei Zonen unabhängig ist.

Description

  • Stand der Technik
  • Die Offenbarung betrifft ein Verfahren zum Betreiben einer wenigstens einen Rechenkern aufweisenden Recheneinrichtung.
  • Die Offenbarung betrifft ferner eine Vorrichtung zur Ausführung eines derartigen Verfahrens.
  • Offenbarung der Erfindung
  • Bevorzugte Ausführungsformen beziehen sich auf ein Verfahren zum Betreiben einer wenigstens einen Rechenkern aufweisenden Recheneinrichtung, insbesondere für ein eingebettetes System und/oder ein Steuergerät, insbesondere für ein Fahrzeug, insbesondere Kraftfahrzeug, wobei das Verfahren die folgenden Schritte aufweist: Zuordnen von einem oder mehreren durch die Recheneinrichtung ausführbaren Anwendungsprogrammen zu einer von wenigstens zwei Zonen, wobei die Zonen Ressourcen der Recheneinrichtung charakterisieren, die für eine Ausführung eines betreffenden Anwendungsprogramms nutzbar sind, wobei das Verfahren weiter aufweist: Verwenden eines Supervisors zum Zuweisen von Rechenzeitressourcen für unterschiedliche Anwendungsprogramme und/oder Instanzen von Anwendungsprogrammen, wobei der Supervisor und/oder eine dem Supervisor entsprechende Funktionalität zumindest teilweise mittels einer Supervisor-Instanz realisiert ist, die von den wenigstens zwei Zonen unabhängig ist.
  • Dies ermöglicht vorteilhaft eine Steigerung der Sicherheit des Betriebs der Recheneinrichtung, ohne die betriebliche Flexibilität bei der Ausführung von Anwendungsprogrammen zu beeinträchtigen.
  • Bei weiteren bevorzugten Ausführungsformen charakterisiert bzw. repräsentiert bzw. bildet die Supervisor-Instanz eine, insbesondere besonders, vertrauenswürdige Instanz der Recheneinrichtung, bevorzugt einen sog. on-chip Trust Anchor (TA). Der TA repräsentiert gemäß weiteren bevorzugten Ausführungsformen die Instanz der Recheneinrichtung mit einer bzw. der maximalen Vertrauensstufe, welche gemäß weiteren bevorzugten Ausführungsformen z.B. als „Vertrauenswurzel“ (Root-of-Trust) eines Vertrauensmodells nutzbar ist.
  • Optional kann bei weiteren bevorzugten Ausführungsformen auch ein Ausführen wenigstens eines der Anwendungsprogramme in Abhängigkeit der ihm zugeordneten Zone erfolgen.
  • Besonders bevorzugt ist das Verfahren gemäß den Ausführungsformen ausgebildet als computerimplementiertes Verfahren.
  • Bei weiteren bevorzugten Ausführungsformen können zwei Zonen oder auch mehr als zwei Zonen vorgesehen sein.
  • Bei weiteren bevorzugten Ausführungsformen können die Ressourcen der Recheneinrichtung, die durch die Zonen charakterisierbar sind, wenigstens eines der folgende Elemente aufweisen: a) Speicher, b) Ausführungszeit bzw. Rechenzeit, wobei insbesondere die die Ressourcen Speicher umfassen.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die Recheneinrichtung mehrere Rechenkerne aufweist, wobei das Verfahren weiter aufweist: a) Zuordnen mindestens eines Rechenkerns zu genau einer Zone, und/oder b) Zuordnen mindestens eines Rechenkerns zu mehr als einer Zone, insbesondere zu zwei Zonen, c) Verwenden wenigstens eines Rechenkerns als Supervisor-Instanz, insbesondere Verwenden des wenigstens einen Rechenkerns als dedizierte Supervisor-Instanz, d) Verwenden wenigstens eines Hardware-Sicherheitsmoduls und/oder Trusted-Platform-Moduls, TPM, als Supervisor-Instanz.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Steuern, insbesondere Begrenzen, von wenigstens einem der folgenden Elemente: a) Leserechte auf der Recheneinrichtung zugeordneten Speicher, b) Schreibrechte auf der Recheneinrichtung zugeordneten Speicher, c) Ausführungsrechte auf der Recheneinrichtung zugeordneten Speicher, in Abhängigkeit wenigstens einer Zone.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: zumindest zeitweises Verwenden wenigstens einer Speicherschutzeinrichtung zum Steuern der Leserechte und/oder der Schreibrechte und/oder der Ausführungsrechte.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Bereitstellen wenigstens einer dedizierten Speicherschutzeinrichtung für wenigstens einen Rechenkern, wobei insbesondere für mehrere, vorzugsweise alle, Rechenkerne jeweils eine dedizierte Speicherschutzeinrichtung bereitgestellt wird.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Bereitstellen einer, insbesondere gemeinsamen, Speicherschutzeinrichtung für mehrere Rechenkerne.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass wenigstens ein Rechenkern zumindest zeitweise eine erste Betriebsart einnimmt, wobei insbesondere der wenigstens eine Rechenkern in der ersten Betriebsart Konfigurationsdaten, die einen Betrieb wenigstens einer Speicherschutzeinrichtung steuern, vorgibt und/oder schreibt, wobei insbesondere der wenigstens eine Rechenkern zumindest zeitweise eine zweite Betriebsart einnimmt, in der er die Konfigurationsdaten für die wenigstens eine Speicherschutzeinrichtung nicht schreiben und/oder ändern kann.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass der wenigstens eine Rechenkern die erste Betriebsart ereignisgesteuert, insbesondere in Abhängigkeit wenigstens einer Unterbrechungsanforderung (englisch: interrupt request), einnimmt.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Bereitstellen mehrerer Sätze von Konfigurationsdaten für die wenigstens eine Speicherschutzeinrichtung, wobei insbesondere wenigstens ein erster Satz der mehreren Sätze von Konfigurationsdaten einer ersten Zone der wenigstens zwei Zonen und wenigstens ein zweiter Satz der mehreren Sätze von Konfigurationsdaten einer zweiten Zone der wenigstens zwei Zonen zugeordnet wird.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Bereitstellen einer ersten Instanz des Anwendungsprogramms und einer zweiten Instanz des Anwendungsprogramms, Zuordnen der ersten Instanz des Anwendungsprogramms zu einer ersten Zone der wenigstens zwei Zonen, Zuordnen der zweiten Instanz des Anwendungsprogramms zu einer zweiten Zone der wenigstens zwei Zonen.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Trennen von Bereichen eines der Recheneinrichtung zugeordneten Speichers in Abhängigkeit der wenigstens zwei Zonen, wobei der der Recheneinrichtung zugeordnete Speicher wenigstens eines der folgenden Elemente aufweist: a) Pufferspeicher, insbesondere in Form von Arbeitsspeicher, b) Stapelspeicher, c) Datenspeicher, d) Programmspeicher, e) Registerspeicher, f) OTP (one time programmable, einmalig programmierbarer) Speicher, wobei für das Trennen wenigstens eine Speicherschutzeinrichtung verwendet wird.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Austauschen von ersten Daten zwischen verschiedenen Zonen über einen Pufferspeicher, insbesondere Arbeitsspeicher, wobei insbesondere das Austauschen der ersten Daten zwischen der ersten Zone und der zweiten Zone folgende Schritte aufweist: Kopieren der ersten Daten in einen der ersten Zone zugeordneten ersten Pufferspeicherbereich, Überprüfen der kopierten ersten Daten, und, insbesondere in Abhängigkeit der Überprüfung, Kopieren der ersten Daten aus dem der ersten Zone zugeordneten ersten Pufferspeicherbereich in einen der zweiten Zone zugeordneten zweiten Pufferspeicherbereich.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Trennen von Rechenzeitressourcen für unterschiedliche Anwendungsprogramme und/oder Instanzen von Anwendungsprogrammen, insbesondere Zuweisen von Rechenzeitressourcen für unterschiedliche Anwendungsprogramme und/oder Instanzen von Anwendungsprogrammen, in Abhängigkeit der wenigstens zwei Zonen.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: a) Verwenden eines Betriebssystems für eingebettete Systeme, insbesondere eines Lightweight Embedded Operating System, zum Zuweisen von Rechenzeitressourcen für unterschiedliche Anwendungsprogramme und/oder Instanzen von Anwendungsprogrammen, wobei insbesondere jeweils einem Rechenkern der Recheneinrichtung ein Betriebssystem zugeordnet ist, und/oder b) Verwenden des Supervisors, wobei der Supervisor insbesondere ausgebildet ist als Supervisor für eingebettete Systeme, insbesondere eines Lightweight Embedded Supervisor, wobei insbesondere jeweils einem Rechenkern der Recheneinrichtung ein Supervisor zugeordnet ist.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Betriebssystem und/oder der Supervisor eine Zuweisung von Rechenzeitressourcen, vorzugsweise nur, für vordefinierte Tasks, insbesondere unter Verwendung einer statischen Taskliste, ausführen.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Betriebssystem und/oder der Supervisor eine Zuweisung von Rechenzeitressourcen in Abhängigkeit von a) wiederholten, insbesondere periodisch wiederholten, Unterbrechungsanforderungen und/oder b) ereignisgesteuerten Unterbrechungsanforderungen ausführt, wobei insbesondere Tasks von wenigstens einer Unterbrechungsroutine aus aktiviert werden.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass bei dem Eintreten in eine Unterbrechungsroutine Konfigurationsdaten für wenigstens eine Speicherschutzeinrichtung bzw. die wenigstens eine Speicherschutzeinrichtung, insbesondere hardwaregesteuert, verändert werden.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Überwachen, insbesondere mittels des Betriebssystems und/oder des Supervisors, wenigstens eines der folgenden Elemente, insbesondere auf eine potentielle Kompromittierung: a) erste Zone, b) ein der ersten Zone zugeordnetes Anwendungsprogramm c) eine der ersten Zone zugeordnete Instanz eines Anwendungsprogramms, wobei insbesondere das Überwachen umfasst: Auswerten eines Stapelspeichers und/oder Auswerten eines Programmzählers, wobei vorzugsweise das Auswerten des Stapelspeichers und/oder Auswerten des Programmzählers vor einer Aktivierung des Anwendungsprogramms und/oder der Instanz des Anwendungsprogramms erfolgt. Bei weiteren bevorzugten Ausführungsformen wird eine Überwachungsroutine des Supervisors in einem vertrauenswürdigen Betriebsmodus (z.B. einem „Supervisor Mode“), insbesondere von einer vertrauenswürdigen Instanz wie z.B. der Supervisor-Instanz, exekutiert bzw. ausgeführt.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Einleiten einer Fehlerreaktion, insbesondere dann, wenn das Überwachen auf eine potentielle Kompromittierung schließen lässt, wobei die Fehlerreaktion wenigstens eines der folgenden Elemente aufweist: a) Versetzen der ersten Zone und/oder des der ersten Zone zugeordneten Rechenkerns in einen sicheren Zustand, insbesondere mittels Deaktivieren des der ersten Zone zugeordneten Rechenkerns und/oder Resetieren (Ausführen eines Reset, Zurücksetzen) des der ersten Zone zugeordneten Rechenkerns und/oder Versetzen in einen Fehlermodus, b) Erzeugen eines Fehlereintrags und/oder c) Weiterleiten eines bzw. des Fehlereintrags an ein Angriffserkennungssystem, insbesondere Intrusion Detection System (IDS). Bei weiteren bevorzugten Ausführungsformen kann das IDS z.B. intern oder extern bezüglich der Recheneinrichtung angeordnet sein.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die Recheneinrichtung zumindest zeitweise einen Kaltstart ausführt, wobei insbesondere während des Kaltstarts Daten und/oder Programmcode aus einem nichtflüchtigen Speicher geladen werden, und wobei die Recheneinrichtung zumindest zeitweise einen Warmstart ausführt, wobei insbesondere während des Warmstarts Daten und/oder Programmcode aus einem zumindest zeitweise bestromten, flüchtigen Speicher geladen werden, wobei insbesondere während des Kaltstarts wenigstens eine Speicherschutzeinrichtung konfiguriert wird, und/oder wobei insbesondere während des Warmstarts die wenigstens eine Speicherschutzeinrichtung konfiguriert wird.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass ausschließlich derjenige Rechenkern, dem eine dedizierte Speicherschutzeinrichtung bereitgestellt worden ist, diese dedizierte Speicherschutzeinrichtung konfiguriert.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Prüfen einer Integrität und/oder Authentizität von Konfigurationsdaten, die einen Betrieb wenigstens einer Speicherschutzeinrichtung steuern, bzw. der Konfigurationsdaten, insbesondere mittels wenigstens einem der folgenden Elemente: a) Verifizieren eines für die Konfiguration der wenigstens einer Speicherschutzeinrichtung verwendbaren Programmcodes, b) Verifizieren der Konfigurationsdaten, c) Persistieren eines bzw. des für die Konfiguration der wenigstens einer Speicherschutzeinrichtung verwendbaren Programmcodes, d) Persistieren der Konfigurationsdaten.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: zumindest zeitweises Ausführen eines Secure-Boot-Verfahrens und/oder zumindest zeitweises Ausführen eines Verfahrens zur Manipulationserkennung während der Laufzeit, insbesondere durch wenigstens einen Rechenkern.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Steuern eines Zugriffs eines Anwendungsprogramms auf wenigstens eines der folgenden Elemente in Abhängigkeit wenigstens einer Zone: a) interne Schnittstelle, insbesondere Software-Schnittstelle, der Recheneinrichtung, b) interne und/oder externe Hardwareschnittstelle der Recheneinrichtung, c) Hardware-Sicherheitsmodul und/oder Kryptografiemodul zur Ausführung kryptografischer Funktionen, d) Peripheriegeräte der Recheneinrichtung, insbesondere Spezialfunktionsregister wenigstens eines Peripheriegeräts, e) interne Schnittstellen eines Zielsystems für die Recheneinrichtung, insbesondere eines Steuergeräts, f) externe Schnittstellen eines Zielsystems für die Recheneinrichtung, insbesondere eines Steuergeräts, g) Adressierungselemente für Kommunikationsprotokolle, insbesondere auf wenigstens einer Schicht des ISO/OSI-Schichtenmodells.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter wenigstens eines der folgenden Elemente aufweist: a) Einführen wenigstens einer zusätzlichen, insbesondere nicht bereits existierenden, Zone, b) Verschieben von Funktionalitäten von einem ersten Rechenkern zu wenigstens einem weiteren Rechenkern der Recheneinrichtung, c) Ausführen einer Kommunikation zwischen wenigstens zwei Zonen unter Verwendung eines, insbesondere in die Recheneinrichtung integrierten, Arbeitsspeichers, d) Definieren wenigstens einer vertrauenswürdigen Zone und, optional, Überwachen wenigstens einer weiteren, insbesondere nicht vertrauenswürdigen, Zone, durch wenigstens ein der vertrauenswürdigen Zone zugeordnetes Anwendungsprogramm. Bei weiteren bevorzugten Ausführungsformen kann das Überwachen der wenigstens einen weiteren, insbesondere nicht vertrauenswürdigen, Zone, z.B. durch ein Programm, z.B. eine Unterbrechungsroutine (ISR, englisch: interrupt service routine), bevorzugt in einem Überwachungsmodus, der auch als „Supervisor Mode“ bezeichnet werden kann, ausgeführt werden.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: a) Bereitstellen eines primären Supervisor-Proxy mittels der Supervisor-Instanz, b) Bereitstellen wenigstens eines sekundären Supervisor-Proxy, wobei insbesondere der wenigstens eine sekundäre Supervisor-Proxy wenigstens einem Rechenkern und/oder der wenigstens einen Zone zugeordnet ist.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: a) Bereitstellen einer ersten Anzahl von Funktionalitäten für den Supervisor, b) Zuordnen, insbesondere dynamisch, wenigstens einer Supervisor-Funktionalität der ersten Anzahl von Funktionalitäten zu dem primären Supervisor-Proxy und/oder dem wenigstens einen sekundären Supervisor-Proxy, wobei insbesondere das Zuordnen in Abhängigkeit wenigstens eines der folgenden Elemente ausgeführt wird: A) Betriebsgröße der Recheneinrichtung, B) Betriebsart der Recheneinrichtung, C) Anwendungsfall der Recheneinrichtung.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die erste Anzahl von Funktionalitäten und/oder die wenigstens eine Supervisor-Funktionalität wenigstens eines der folgenden Elemente aufweist: a) Überwachung wenigstens einer Zone, insbesondere auf eine potentielle Kompromittierung, b) Detektion einer Kompromittierung wenigstens einer Zone, c) Überwachung wenigstens eines mit wenigstens einer Zone assoziierten Stapelspeichers, d) Überwachung wenigstens eines mit wenigstens einer Zone assoziierten Programmzählers, wobei die Überwachung insbesondere vor einer Aktivierung eines Tasks der betreffenden Zone ausgeführt wird, e) Erkennung einer Kompromittierung, insbesondere vor eine Ausführung von ausführbarem Programmcode, f) Verwendung wenigstens eines, insbesondere kryptographischen, Verfahrens, insbesondere zur Authentizitätsverifikation und/oder Integritätsverifikation, insbesondere für eine bzw. die Überwachung eines bzw. des Stapelspeichers und/oder eine bzw. die Überwachung eines bzw. des Programmzählers, wobei das kryptographische Verfahren wenigstens eines der folgenden Elemente aufweist: f1) Hashwertbildung, f2) Bildung eines Message Authentication Code, MAC.
  • Weitere bevorzugten Ausführungsformen beziehen sich auf eine Vorrichtung zur Ausführung des Verfahrens gemäß den Ausführungsformen.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die Vorrichtung wenigstens eines der folgenden Elemente aufweist: a) eine wenigstens einen Rechenkern aufweisende Recheneinrichtung, b) eine Speichereinrichtung, c) einen Datenbus, d) eine Speicherschutzeinrichtung, e) ein Hardware-Sicherheitsmodul und/oder ein Trusted-Platform-Modul, TPM.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die Vorrichtung ausgebildet ist als ein Mikrocontroller, insbesondere als ein einziger Mikrocontroller bzw. als ein Ein-Chip-System (englisch: SoC, system-on-chip), insbesondere als ein einziges SoC.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die Vorrichtung ein, insbesondere gemeinsames, Halbleitersubstrat aufweist, wobei wenigstens eines der folgenden Elemente auf dem, insbesondere gemeinsamen, Halbleitersubstrat angeordnet sind: a) die wenigstens einen Rechenkern aufweisende Recheneinrichtung, b) die Speichereinrichtung, c) der Datenbus, d) die Speicherschutzeinrichtung, d) das Hardware-Sicherheitsmodul und/oder ein Trusted-Platform-Modul, TPM.
  • Weitere bevorzugte Ausführungsformen beziehen sich auf ein computerlesbares Speichermedium, umfassend Befehle, insbesondere in Form eines Computerprogramms, die bei der Ausführung durch einen Computer diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.
  • Weitere bevorzugte Ausführungsformen beziehen sich auf ein Computerprogramm, umfassend Befehle, die bei der Ausführung des Programms durch einen Computer diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.
  • Weitere bevorzugte Ausführungsformen beziehen sich auf ein Datenträgersignal, das das Computerprogramm gemäß den Ausführungsformen überträgt.
  • Weitere bevorzugte Ausführungsformen beziehen sich auf eine Verwendung des Verfahrens gemäß den Ausführungsformen und/oder der Vorrichtung gemäß den Ausführungsformen und/oder des Computerprogramms gemäß den Ausführungsformen für wenigstens eines der folgenden Elemente: a) Bereitstellen von Vertrauensgrenzen in der Recheneinrichtung, insbesondere auch innerhalb eines Rechenkerns der Recheneinrichtung, b) Verringerung einer Angriffsoberfläche für Angriffe auf die Recheneinrichtung und/oder eine ihrer Komponenten, c) Limitierung von Zugriffsrechten auf Speicher, d) Limitierung von Zugriffsrechten auf Peripherie, e) Limitierung von Zugriffsrechten auf Rechenressourcen, e) Minimierung eines Einflusses einer korrumpierten Komponente, f) Betreiben eines Steuergeräts, insbesondere für ein Fahrzeug, insbesondere Kraftfahrzeug, g) Betreiben eines eingebetteten Systems, insbesondere eines Internet-of-Things, loT, -Systems, h) Betreiben eines anwendungsspezifischen integrierten Schaltkreises, ASIC, i) Detektion einer korrumpierten Zone, j) Einleiten einer Fehlerreaktion, insbesondere im Falle einer detektierten Kompromittierung.
  • Bei weiteren bevorzugten Ausführungsformen kann das Verfahren und/oder die Vorrichtung gemäß den Ausführungsformen in einem Steuergerät, z.B. einem Steuergerät für ein Kraftfahrzeug, insbesondere einem Steuergerät für eine Brennkraftmaschine eines Kraftfahrzeugs, verwendet werden, z.B. für wenigstens einen der folgenden Anwendungsfälle: a) Steuern eines Betriebs bzw. Betriebszustandsübergangs des Steuergeräts, b) Freigeben bzw. Nichtfreigeben einer oder mehrerer Funktionen des Steuergeräts und/oder einer anderen Komponente und/oder z.B. des Kraftfahrzeugs, c) Wechseln in einen Fehlermodus und/oder Notlauf, d) Vornehmen eines Fehlerspeichereintrags, e) Signalisierung eines Betriebszustands an eine externe Einheit und/oder einen Benutzer, f) Ansteuern eines Stellglieds.
  • Weitere bevorzugte Ausführungsformen beziehen sich auf eine Verwendung des Verfahrens gemäß den Ausführungsformen und/oder der Vorrichtung gemäß den Ausführungsformen und/oder des Computerprogramms gemäß den Ausführungsformen zur Überprüfung wenigstens eines Teilbereichs der Speichereinrichtung auf Änderungen bzw. Manipulationen, insbesondere vor oder während oder nach einem Wechsel der Speichereinrichtung und/oder einer auf die Speichereinrichtung zugreifenden Recheneinrichtung von einem ersten Betriebszustand in einen zweiten Betriebszustand, und zur Steuerung eines Betriebs z.B. eines Steuergeräts einer Brennkraftmaschine eines Kraftfahrzeugs in Abhängigkeit der Überprüfung.
  • Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen der Erfindung, die in den Figuren der Zeichnung dargestellt sind. Dabei bilden alle beschriebenen oder dargestellten Merkmale für sich oder in beliebiger Kombination den Gegenstand der Erfindung, unabhängig von ihrer Zusammenfassung in den Ansprüchen oder deren Rückbeziehung sowie unabhängig von ihrer Formulierung bzw. Darstellung in der Beschreibung bzw. in der Zeichnung.
  • In der Zeichnung zeigt:
    • 1 schematisch ein vereinfachtes Blockdiagramm einer Recheneinrichtung gemäß bevorzugten Ausführungsformen,
    • 2A schematisch ein vereinfachtes Flussdiagramm eines Verfahrens gemäß weiteren bevorzugten Ausführungsformen,
    • 2B bis 2W jeweils schematisch ein vereinfachtes Flussdiagramm eines Verfahrens gemäß weiteren bevorzugten Ausführungsformen,
    • 3 schematisch ein vereinfachtes Blockdiagramm einer Recheneinrichtung gemäß weiteren bevorzugten Ausführungsformen,
    • 4,
    • 5 jeweils schematisch ein vereinfachtes Blockdiagramm von Aspekten gemäß weiteren bevorzugten Ausführungsformen,
    • 6, 7 jeweils schematisch Aspekte von Unterbrechungsroutinen gemäß weiteren bevorzugten Ausführungsformen,
    • 8 schematisch ein Ablaufdiagramm gemäß weiteren bevorzugten Ausführungsformen,
    • 9 Aspekte einer Unterbrechungsroutine gemäß weiteren bevorzugten Ausführungsformen,
    • 10,
    • 11 jeweils schematisch ein vereinfachtes Blockdiagramm von Aspekten gemäß weiteren bevorzugten Ausführungsformen,
    • 12A,
    • 12B jeweils schematisch Aspekte von Unterbrechungsroutinen gemäß weiteren bevorzugten Ausführungsformen,
    • 13 schematisch ein vereinfachtes Blockdiagramm von Aspekten gemäß weiteren bevorzugten Ausführungsformen,
    • 14 schematisch ein Ablaufdiagramm gemäß weiteren bevorzugten Ausführungsformen,
    • 15
    • bis 19 jeweils schematisch ein vereinfachtes Blockdiagramm von Aspekten gemäß weiteren bevorzugten Ausführungsformen,
    • 20,
    • 21 jeweils schematisch ein Ablaufdiagramm gemäß weiteren bevorzugten Ausführungsformen,
    • 22 schematisch ein vereinfachtes Blockdiagramm einer Vorrichtung gemäß weiteren bevorzugten Ausführungsformen,
    • 23 schematisch ein vereinfachtes Blockdiagramm von Konfigurationsdaten gemäß weiteren bevorzugten Ausführungsformen, und
    • 24 schematisch ein vereinfachtes Blockdiagramm gemäß weiteren bevorzugten Ausführungsformen.
  • 1 zeigt schematisch ein vereinfachtes Blockdiagramm einer Recheneinrichtung 100 gemäß bevorzugten Ausführungsformen. Die Recheneinrichtung 100 weist wenigstens einen Rechenkern, vorliegend beispielhaft vier Rechenkerne 102a, 102b, 102c, 102n, auf, und kann insbesondere z.B. für ein eingebettetes System und/oder ein Steuergerät, insbesondere für ein Fahrzeug, insbesondere Kraftfahrzeug, verwendet werden.
  • Bevorzugte Ausführungsformen beziehen sich auf ein Verfahren zum Betreiben der Recheneinrichtung 100, das die folgenden Schritte aufweist, vgl. das Flussdiagramm der 2A: Zuordnen 200 von einem oder mehreren durch die Recheneinrichtung 100 (1) ausführbaren Anwendungsprogrammen AP1, AP2 zu einer von wenigstens zwei Zonen Z1, Z2 wobei die Zonen Z1, Z2 Ressourcen der Recheneinrichtung 100 charakterisieren, die für eine Ausführung eines betreffenden Anwendungsprogramms AP1, AP2 nutzbar sind, optional Ausführen 210 wenigstens eines der Anwendungsprogramme AP1, AP2 in Abhängigkeit der ihm zugeordneten Zone Z1, Z2, wobei das Verfahren weiter aufweist: Verwenden 212 eines Supervisors SV zum Zuweisen von Rechenzeitressourcen für unterschiedliche Anwendungsprogramme und/oder Instanzen von Anwendungsprogrammen, wobei der Supervisor SV und/oder eine dem Supervisor SV entsprechende Funktionalität zumindest teilweise mittels einer Supervisor-Instanz SVI (1) realisiert ist, die von den wenigstens zwei Zonen Z1, Z2 unabhängig ist. Dies ermöglicht vorteilhaft eine Steigerung der Sicherheit des Betriebs der Recheneinrichtung 100, ohne die betriebliche Flexibilität bei der Ausführung von Anwendungsprogrammen AP1, AP2 zu beeinträchtigen.
  • Bei weiteren bevorzugten Ausführungsformen können dadurch z.B. Vertrauensgrenzen (englisch: Trust Boundaries) definiert werden, z.B. zwischen vertrauenswürdigen und nicht-vertrauenswürdigen Instanzen/ Einheiten/Domänen. Auf diese Weise können beispielsweise erste Anwendungsprogramme für die Recheneinrichtung einer nicht vertrauenswürdigen ersten Zone (englisch: non-trustworthy zone, NTZ) und zweite Anwendungsprogramme für die Recheneinrichtung einer vertrauenswürdigen zweiten Zone (englisch: trustworthy zone, TZ) zugeordnet werden.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die Recheneinrichtung 100 (1) mehrere (z.B. wie beispielhaft in 1 abgebildet vier) Rechenkerne 102a, 102b, 102c, 102n aufweist, wobei das Verfahren weiter aufweist, vgl. 2B: a) Zuordnen 220 mindestens eines Rechenkerns zu genau einer Zone, und/oder b) Zuordnen 222 mindestens eines Rechenkerns zu mehr als einer Zone, insbesondere zu zwei Zonen, c) Verwenden 224 wenigstens eines Rechenkerns als Supervisor-Instanz SVI, insbesondere Verwenden des wenigstens einen Rechenkerns als dedizierte Supervisor-Instanz SVI, d) Verwenden 225 wenigstens eines Hardware-Sicherheitsmoduls HSM und/oder Trusted-Platform-Moduls, TPM, als Supervisor-Instanz SVI.
  • Bei weiteren bevorzugten Ausführungsformen wird beispielsweise der erste Rechenkern 102a einer ersten Zone Z1 zugeordnet, die z.B. eine nicht-vertrauenswürdige Zone darstellen kann, und der zweite Rechenkern 102b wird einer zweiten Zone Z2 zugeordnet, die z.B. eine vertrauenswürdige Zone darstellen kann.
  • Bei weiteren bevorzugten Ausführungsformen wird beispielsweise der dritte Rechenkern 102c sowohl der ersten Zone Z1 als auch der zweiten Zone Z2 zugeordnet, s. 1. Vergleichbares kann bei weiteren bevorzugten Ausführungsformen auch für den vierten Rechenkern 102n der Recheneinrichtung 100 gelten.
  • Bei weiteren bevorzugten Ausführungsformen kann die Recheneinrichtung 100 gemäß 1 auch über weitere, in 1 nicht im Einzelnen aufgeführte Komponenten wie z.B. ein oder mehrere Speichereinrichtungen und/oder Peripheriekomponenten verfügen, die in 1 der Übersichtlichkeit halber zusammen mittels des gestrichelten Rechtecks 103 angedeutet sind. Bezugszeichen 104 symbolisiert ein oder mehrere Datenschnittstellen.
  • Bei weiteren bevorzugten Ausführungsformen kann die Supervisor-Instanz SVI z.B. durch einen (dedizierten) Rechenkern und/oder ein Hardware-Sicherheitsmodul HSM und/oder ein Trusted-Platform-Modul TPM gebildet sein bzw. kann die Funktionalität der Supervisor-Instanz SVI mittels wenigstens einem dieser Elemente realisiert werden.
  • 3 zeigt schematisch ein vereinfachtes Blockdiagramm einer Recheneinrichtung 100a gemäß weiteren bevorzugten Ausführungsformen, die - vergleichbar zu der Recheneinrichtung 100 gemäß 1 - vier Rechenkerne 102a, 102b, 102c, 102n aufweist. Ebenfalls in 3 gezeigt ist ein Arbeitsspeicher (RAM) 1030, ein nichtflüchtiger Speicher 1032 (z.B. Flash-Speicher, insbesondere Flash-EEPROM), sowie optional vorhandene Spezialfunktionsregister 1034 der Recheneinrichtung 100a, wie sie z.B. zur Steuerung eines Betriebs von Peripheriekomponenten hiervon nutzbar sind. Die Komponenten 102a, 102b, .., 1034 sind untereinander über ein Bussystem 101 miteinander verbunden.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren zum Betreiben der Recheneinrichtung 100 (1), 100a (3) weiter aufweist, vgl. 2C: Steuern 230, insbesondere Begrenzen, von wenigstens einem der folgenden Elemente: a) Leserechte auf der Recheneinrichtung 100, 100a zugeordneten Speicher 1030, 1032, b) Schreibrechte auf der Recheneinrichtung zugeordneten Speicher 1030, 1032, c) Ausführungsrechte („Exekutionsrechte“) auf der Recheneinrichtung zugeordneten Speicher 1030, 1032, in Abhängigkeit wenigstens einer Zone Z1, Z2. Dadurch ist vorteilhaft sichergestellt, dass nur solche Anwendungsprogramme AP1, AP2 (1) Zugriff auf den bzw. die genannten Speicher 1030, 1032 erhalten, die einer entsprechenden Zone Z1, Z2 zugeordnet sind. Beispielsweise kann damit bei weiteren bevorzugten Ausführungsformen verhindert werden, dass ein Anwendungsprogramm einer nicht vertrauenswürdigen Zone auf den bzw. die Speicher 1030, 1032 zugreift (insbesondere z.B. Zugriff auf den der vertrauenswürdigen Zone zugeordneten Speicherbereich 1030, 1032 durch die nicht- vertrauenswürdigen Zone), was ggf. ein Risiko bezüglich einer möglichen Manipulation des Speicherinhalts durch das Anwendungsprogramm der nicht vertrauenswürdigen Zone darstellt.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist, vgl. 2C: zumindest zeitweises Verwenden 232 wenigstens einer Speicherschutzeinrichtung M1, M2, M3, M4, M5_1, M5_2, M5_3, M5_4, M5_5, M5_6, M5_7, M5_8 (3) zum Steuern der Leserechte und/oder der Schreibrechte und/oder der Ausführungsrechte.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist, vgl. 2D: Bereitstellen 231 wenigstens einer dedizierten Speicherschutzeinrichtung M1 für wenigstens einen Rechenkern 102a, wobei insbesondere für mehrere, vorzugsweise alle, Rechenkerne 102a, 102b, 102c, 102n jeweils eine dedizierte Speicherschutzeinrichtung M1, M2, M3, M4 bereitgestellt wird. Bei weiteren bevorzugten Ausführungsformen kann sodann die jeweilige (dedizierte) Speicherschutzeinrichtung M1, M2, M3, M4 verwendet werden, vgl. Schritt 232' aus 2D, um das genannte Steuern 230, insbesondere Begrenzen, der genannten Zugriffsrechte, insbesondere Leserechte und/oder Schreibrechte und/oder der Ausführungsrechte, auszuführen.
  • Bei weiteren bevorzugten Ausführungsformen kann der Verwendung 232' ( 2D) eine optionale Konfiguration 231a der Speicherschutzeinrichtung(en) vorangehen.
  • Bei weiteren bevorzugten Ausführungsformen, vgl. 2E, ist vorgesehen, dass wenigstens ein Rechenkern 102a zumindest zeitweise eine erste Betriebsart einnimmt, vgl. Schritt 240, wobei insbesondere der wenigstens eine Rechenkern 102a in der ersten Betriebsart Konfigurationsdaten 1036 (3), die einen Betrieb wenigstens einer Speicherschutzeinrichtung M1, M2, .., M5_8 steuern, vorgibt und/oder schreibt 242, wobei insbesondere der wenigstens eine Rechenkern 102a zumindest zeitweise eine zweite Betriebsart einnimmt 243, in der er die Konfigurationsdaten für die wenigstens eine Speicherschutzeinrichtung M1, M2, .., M5_8 nicht schreiben und/oder ändern kann.
  • Bei weiteren bevorzugten Ausführungsformen kann die erste Betriebsart auch als „Supervisor Mode“ bzw. Überwachungsmodus bezeichnet werden. Bevorzugt kann der „Supervisor Mode“ bzw. Überwachungsmodus somit einen privilegierten Zustand darstellen, in dem der betreffende Rechenkern 102a eine Konfiguration der wenigstens einen Speicherschutzeinrichtung M1, M2, .., M5_8 vornehmen kann.
  • Bei weiteren bevorzugten Ausführungsformen können die Konfigurationsdaten für die wenigstens eine Speicherschutzeinrichtung M1, M2, .., M5_8 z.B. in Form von Spezialfunktionsregistern (englisch: special function register, SFR), insbesondere Konfigurationsregistern 1036 vorgesehen sein, die ggf. ebenfalls zumindest zeitweise, vorzugsweise unter Steuerung einer entsprechenden Speicherschutzeinrichtung M5_6, über das Bussystem 101 zugänglich sind.
  • Mit anderen Worten können bei weiteren bevorzugten Ausführungsformen für die Konfigurationsdaten der wenigstens einen Speicherschutzeinrichtung M1, M2, .., M5_8 z.B. Spezialfunktionsregister (SFR), insbesondere Konfigurationsregister 1036, vorgesehen sein.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, vgl. 2E, dass der wenigstens eine Rechenkern 102a die erste Betriebsart ereignisgesteuert, insbesondere in Abhängigkeit wenigstens einer Unterbrechungsanforderung (englisch: interrupt request), einnimmt 240.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist, vgl. 2F: Bereitstellen 250 mehrerer Sätze von Konfigurationsdaten KD für die wenigstens eine Speicherschutzeinrichtung M1, M2, .., M5_8, wobei insbesondere wenigstens ein erster Satz der mehreren Sätze von Konfigurationsdaten KD einer ersten Zone Z1 der wenigstens zwei Zonen und wenigstens ein zweiter Satz der mehreren Sätze von Konfigurationsdaten KD einer zweiten Zone Z2 der wenigstens zwei Zonen zugeordnet wird, vgl. Schritt 252.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass wenigstens ein Rechenkern 102a im Rahmen dedizierter Systemzustände, bspw. bei einem Startzyklus, und/oder bei bestimmten Ereignissen, bspw. bei dem Eintreten in eine Unterbrechungsroutine (englisch: Interrupt Service Routine, ISR), eine bestimmte Betriebsart wie z.B. den Supervisor Mode, einnimmt, was beispielsweise hardwaregesteuert erfolgen kann.
  • Bei weiteren bevorzugten Ausführungsformen ist wenigstens eine weitere, nichtprivilegierte Betriebsart für einen oder mehrere, vorzugsweise alle, Rechenkerne vorgesehen („nicht-privilegierter Modus“), die bei weiteren bevorzugten Ausführungsformen auch als „User Mode“ („Benutzermodus“) bezeichnet werden kann. In dem User Mode sind die Konfigurationsdaten KD, 1036 für die wenigstens eine Speicherschutzeinrichtung M1, M2, .., M5_8 vorzugsweise nicht beschreibbar. Mit anderen Worten kann bei weiteren bevorzugten Ausführungsformen ein Rechenkern, der sich gerade in dem User Mode befindet, nicht die Konfigurationsdaten KD, 1036 für die wenigstens eine Speicherschutzeinrichtung M1, M2, .., M5_8 schreiben bzw. ändern, wohingegen ein Rechenkern, der sich gerade in dem Supervisor Mode befindet, die Konfigurationsdaten KD, 1036 für die wenigstens eine Speicherschutzeinrichtung M1, M2, .., M5_8 schreiben bzw. ändern kann.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die Anwendungsprogramme AP1, AP2 in einem nicht-privilegierten Modus, z.B. dem User Mode, ausgeführt bzw. exekutiert werden.
  • Bei weiteren bevorzugten Ausführungsformen können z.B. auch drei Betriebsarten bzw. Betriebszustände bzw. Modi vorgesehen werden, z.B.: erstens ein Supervisor Mode, zweitens ein „User Mode 1“, insbesondere für nicht-vertrauenswürdige Zone(n), drittens ein „User Mode 2“, insbesondere für vertrauenswürdige Zone(n).
  • Bei weiteren bevorzugten Ausführungsformen können z.B. in dem User Mode 1 die statischen Konfigurationsdaten KD2 aktiv sein, und es läuft z.B. ein erstes Anwendungsprogramm AP1.
  • Bei weiteren bevorzugten Ausführungsformen können z.B. in dem User Mode 2 die statischen Konfigurationsdaten KD3 aktiv sein, und es läuft z.B. ein zweites Anwendungsprogramm AP2.
  • Bei weiteren bevorzugten Ausführungsformen sind in dem Supervisor Mode z.B. die statischen Konfigurationsdaten KD1 aktiv, wobei der Supervisor Mode z.B. (optional lediglich) zum Umschalten zwischen den statischen Konfigurationsdaten KD2 und den statischen Konfigurationsdaten KD3 dient.
  • Bei weiteren bevorzugten Ausführungsformen können die User Modes 1 und 2 nicht zwischen den statischen Konfigurationsdaten KD1, KD2, KD3, KD4 umschalten.
  • Bei weiteren bevorzugten Ausführungsformen können z.B. auch (lediglich) zwei Modes (z.B. Supervisor Mode und User Mode) vorgesehen sein. Bei weiteren bevorzugten Ausführungsformen kann demnach z.B. der Supervisor Mode der vertrauenswürdigen Zone zugeordnet sein und z.B. die Umschaltung zwischen den Konfigurationsdaten KD1 und den Konfigurationsdaten KD2 vornehmen sowie ggf. z.B. das zweite Anwendungsprogramm AP2 ausführen.
  • Bei weiteren bevorzugten Ausführungsformen werden für unterschiedliche Betriebsarten bzw. Betriebszustände (z.B. privilegierter und nicht-privilegierter Modus bzw. Supervisor Mode, User Mode) für die jeweilige Betriebsart spezifische Lese-, und/oder Schreib- und/oder Exekutionsrechte (Ausführungsrechte), z.B. auf den bzw. die Speicher 1030, 1032 vergeben, was bei weiteren bevorzugten Ausführungsformen z.B. durch die Vorsehung unterschiedlicher Sets von Konfigurationsdaten KD („Konfigurationsdatensets“) realisierbar ist.
  • Bei weiteren bevorzugten Ausführungsformen werden für unterschiedliche Kombinationen von Betriebsart(en) mit jeweiligen Anwendungsprogrammen betriebsartspezifische und/oder anwendungsspezifische Lese-, und/oder Schreib- und/oder Exekutionsrechte vergeben, was bei weiteren bevorzugten Ausführungsformen z.B. ebenfalls durch die Vorsehung unterschiedlicher Sets von Konfigurationsdaten KD („Konfigurationsdatensets“) realisierbar ist. Beispielsweise können somit z.B. für den User Mode für unterschiedliche Anwendungsprogramme AP1, AP2 (1) jeweils an das betreffende Anwendungsprogramm AP1, AP2 angepasste Lese-, und/oder Schreib- und/oder Exekutionsrechte vergeben werden.
  • Bei weiteren bevorzugten Ausführungsformen weisen eine oder mehrere, vorzugsweise alle der beispielhaft genannten, Speicherschutzeinrichtungen M1, M2, .., M5_8 mehrere Konfigurationsdatensets auf, welche bei weiteren bevorzugten Ausführungsformen bevorzugt effizient unterschiedlichen Modi und Anwendungsprogrammen AP1, AP2 zugewiesen werden können.
  • Bei weiteren bevorzugten Ausführungsformen kann, z.B. bei einem Wechsel zwischen privilegierten oder nicht-privilegierten Modi (z.B. Wechsel von Supervisor Mode zu User Mode oder umgekehrt) oder zwischen Anwendungsprogrammen, insbesondere in einem nicht-privilegierten Modus, effizient, insbesondere hardwaregesteuert, zwischen den Konfigurationsdatensets für die betreffenden Modi bzw. Betriebsarten umgeschaltet werden.
  • Bei weiteren bevorzugten Ausführungsformen weist die Recheneinrichtung 100, 100a (3) exemplarisch die nachfolgend beispielhaft genannten Konfigurationsmöglichkeiten auf: a) ein, insbesondere statisches (nicht veränderbares), Konfigurationsdatenset für wenigstens eine zentrale Speicherschutzeinrichtung bzw. wenigstens eine dem Bussystem 101 (3) zugeordnete Speicherschutzeinrichtung M5_1, .., M5_8, b) jeweils vier, insbesondere statische, Konfigurationsdatensets für die dedizierten Speicherschutzeinrichtungen M1, M2, M3, M4, wobei diese jeweils vier Konfigurationsdatensets für die dedizierten Speicherschutzeinrichtungen bei weiteren bevorzugten Ausführungsformen z.B. ein statisches Konfigurationsdatenset für den Supervisor Mode und z.B. drei statische Konfigurationsdatensets für Anwendungsprogramme AP1, AP2, also z.B. für den User Mode aufweisen. 23 zeigt schematisch beispielhafte Konfigurationsdaten KD' mit insgesamt vier Konfigurationsdatensets KD1, KD2, KD3, KD4.
  • Bei weiteren bevorzugten Ausführungsformen definieren die Konfigurationsdaten z.B. auf welche Speicheradressen eine Komponente der Recheneinrichtung, z.B. ein Rechenkern, lesend und/oder schreibend und/oder ausführend zugreifen darf. Die Speicherschutzeinrichtung kann bei weiteren bevorzugten Ausführungsformen dazu ausgebildet sein, aktuell von dem betreffenden Rechenkern ausgeführte Zugriffe (Lesen und/oder Schreiben und/oder Ausführen) mit dem Inhalt der Konfigurationsdaten zu vergleichen, und beispielsweise bei Übereinstimmung die betreffenden Zugriffe zu erlauben bzw. zu verbieten oder umgekehrt.
  • Bei weiteren bevorzugten Ausführungsformen können die genannten, bevorzugt statischen, Konfigurationsdatensets für die dedizierten Speicherschutzeinrichtungen M1, M2, M3, M4 z.B. für den User Mode mit den Zonen Z1, Z2 gemäß den Ausführungsformen korrelieren.
  • Bei weiteren bevorzugten Ausführungsformen, insbesondere im Falle einer sog. „Inter-Core-Zonen-Separation“, werden auf einem bestimmten Rechenkern 102a (1) ausschließlich Anwendungsprogramme einer bestimmten Zone Z2 (z.B. mit der gleichen Vertrauensstufe) ausgeführt. Bei weiteren bevorzugten Ausführungsformen werden, insbesondere im Falle einer dedizierten Speicherschutzeinrichtung M1 (3) für einen solchen Rechenkern 102a, z.B. nur zwei, insbesondere statische, Konfigurationsdatensets verwendet, z.B. eines für den Supervisor Mode, und eines für Anwendungsprogramme im User Mode. Ggf. verbleibende, bislang ungenutzte Konfigurationsdatensets für Anwendungsprogramme insbesondere im User Mode können bei weiteren bevorzugten Ausführungsformen z.B. so konfiguriert werden, dass diese einen generellen Lese-, Schreib- und Exekutionszugriff auf den kompletten Speicher 1030, 1032 unterbinden, wodurch die Sicherheit weiter gesteigert wird.
  • Bei weiteren bevorzugten Ausführungsformen, insbesondere im Falle einer sog. „Intra-Core-Zonen-Separation“ werden auf einem bestimmten Rechenkern 102c (1) Anwendungsprogramme zweier Zonen Z1, Z2, mit z.B. jeweils unterschiedlicher Vertrauensstufe, ausgeführt. Bevorzugt kommen hier zwei unterschiedliche statische Konfigurationsdatensets für die Anwendungsprogramme der ersten Zone Z1 und die Anwendungsprogramme der zweiten Zone Z2, insbesondere für den User Mode, zum Einsatz, sowie bevorzugt ein weiteres statisches Konfigurationsdatenset für eine weitere Betriebsart, z.B. den Supervisor Mode. Bei weiteren bevorzugten Ausführungsformen ist der Rechenkern 102c dazu ausgebildet, in der Betriebsart des Supervisor Mode eine Umschaltung zwischen den beiden statischen Konfigurationsdatensets für die beiden Zonen Z1, Z2 zu übernehmen. Bei weiteren bevorzugten Ausführungsformen kann der Rechenkern 102c somit in dem Supervisor Mode ein für die erste Zone Z1 passendes Konfigurationsdatenset in seiner dedizierten Speicherschutzeinrichtung aktivieren, wenn z.B. ein der ersten Zone Z1 zugeordnetes Anwendungsprogramm AP1 ausgeführt werden soll, und z.B. ein für die zweite Zone Z2 passendes Konfigurationsdatenset in seiner dedizierten Speicherschutzeinrichtung aktivieren, wenn z.B. ein der zweiten Zone Z2 zugeordnetes Anwendungsprogramm AP2 ausgeführt werden soll. Ggf. verbleibende, bislang ungenutzte Konfigurationsdatensets für Anwendungsprogramme insbesondere im User Mode (vorliegend ein Konfigurationsdatenset, bei der beispielhaft genannten Gesamtzahl von 4 Stück) können bei weiteren bevorzugten Ausführungsformen z.B. so konfiguriert werden, dass diese einen generellen Lese-, Schreib- und Exekutionszugriff auf den kompletten Speicher 1030, 1032 unterbinden, wodurch die Sicherheit weiter gesteigert wird.
  • Bei weiteren bevorzugten Ausführungsformen, vgl. 2G, ist vorgesehen, dass das Verfahren weiter aufweist: Bereitstellen 260 einer ersten Instanz AP1_I1 des Anwendungsprogramms AP1 und einer zweiten Instanz AP1_I2 des Anwendungsprogramms AP1, Zuordnen 262 der ersten Instanz AP1_I1 des Anwendungsprogramms AP1 zu einer ersten Zone Z1 der wenigstens zwei Zonen, Zuordnen 263 der zweiten Instanz AP1_I2 des Anwendungsprogramms AP1 zu einer zweiten Zone Z2 der wenigstens zwei Zonen. Dadurch können vorteilhaft Anwendungsfälle abgedeckt werden, bei denen sich eine Anwendung bzw. ein Anwendungsprogramm AP1 über mehrere Zonen Z1, Z2 „erstreckt“. Somit kann bei weiteren bevorzugten Ausführungsformen für dieses Anwendungsprogramm AP1 pro Zone jeweils eine Instanz AP1_I1, AP1_I2 existieren, wobei eine derartige Instanz bei weiteren bevorzugten Ausführungsformen auch als Proxy bezeichnet werden kann.
  • Bei weiteren bevorzugten Ausführungsformen kann ein derartiger Proxy AP1_I2 für die betreffende weitere Zone Z2 relevante (Teil-)Funktionalitäten abdecken.
  • Bei weiteren bevorzugten Ausführungsformen kann ein Proxy auch ggf. mehrere Sub-Komponenten umfassen.
  • Bei weiteren bevorzugten Ausführungsformen kann die Recheneinrichtung 100, 100a z.B. das folgende Szenario ausführen: Soll ein erstes Anwendungsprogramm AP1 Daten aus einer, z.B. nicht-vertrauenswürdigen ersten, Zone Z1 empfangen - bspw. Remote Service Requests („Dienstanfragen aus der Ferne“) aus dem Internet - und diese Daten entsprechend innerhalb der vertrauenswürdigen Zone Z2 prozessieren oder weiterleiten - bspw. zur Ausführung des entsprechenden Diensts („Remote Service“) - so erfolgt innerhalb der ersten Zone Z1 durch den Z1-Proxy AP1_I1 des Anwendungsprogramms AP1 das Empfangen der Daten, wobei der korrespondierende Z2-Proxy AP1_I2 z.B. folgende Schritte ausführt: eine Daten-Verifikation der von dem Z2-Proxy AP1_I2, insbesondere defaultmäßig, nicht-vertrauenswürdig eingestuften Daten sowie - im Falle einer erfolgreichen Daten-Verifikation - die Prozessierung oder Weiterleitung der nun (nach Daten-Verifikation) als vertrauenswürdig eingestuften Daten innerhalb der zweiten Zone Z2.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist, vgl. 2H: Trennen 270 von Bereichen eines der Recheneinrichtung 100, 100a zugeordneten Speichers 1030, 1032 in Abhängigkeit der wenigstens zwei Zonen Z1, Z2, wobei der der Recheneinrichtung 100, 100a zugeordnete Speicher wenigstens eines der folgenden Elemente aufweist: a) Pufferspeicher, insbesondere in Form von Arbeitsspeicher, b) Stapelspeicher, c) Datenspeicher, d) Programmspeicher, e) Registerspeicher, wobei für das Trennen 270 wenigstens eine Speicherschutzeinrichtung verwendet wird, vgl. den optionalen Schritt 272.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist, vgl. 2I: Austauschen 280 von ersten Daten zwischen verschiedenen Zonen über einen Pufferspeicher, insbesondere Arbeitsspeicher, wobei insbesondere das Austauschen der ersten Daten zwischen der ersten Zone Z1 und der zweiten Zone Z2 folgende Schritte aufweist: Kopieren 282 der ersten Daten in einen der ersten Zone zugeordneten ersten Pufferspeicherbereich, Überprüfen 283 der kopierten ersten Daten, und, insbesondere in Abhängigkeit der Überprüfung, Kopieren 283 der ersten Daten aus dem der ersten Zone Z1 zugeordneten ersten Pufferspeicherbereich in einen der zweiten Zone Z2 zugeordneten zweiten Pufferspeicherbereich.
  • 4 zeigt schematisch ein vereinfachtes Blockdiagramm von Aspekten der Recheneinrichtung 100, 100a gemäß weiteren bevorzugten Ausführungsformen. Abgebildet sind die beiden Rechenkerne 102a, 102b, die wie vorstehend bereits beschrieben den jeweiligen Zonen Z1, Z2 zugeordnet sind. Ein Bereich 1030a des Arbeitsspeichers 1030 (3) ist vorliegend als Pufferspeicher bzw. „geteilter Arbeitsspeicher“, insbesondere zum Datenaustausch zwischen verschiedenen Zonen Z1, Z2 bzw. den betreffenden Rechenkernen 102a, 102b bzw. darauf ausführbaren (Instanzen von) Anwendungsprogrammen nutzbar, wobei ein erster Teilbereich TB1 der ersten Zone Z1 bzw. dem zweiten Rechenkern 102b und ein zweiter Teilbereich TB2 der zweiten Zone Z2 bzw. dem ersten Rechenkern 102a zugeordnet ist.
  • Ebenfalls abgebildet in 4 sind mehrere Proxies PXY, wobei z.B. eine erste Anzahl von Proxies Z1-Proxy 1, Z1-Proxy 2, .., Z1-Proxy n der ersten Zone Z1, vorliegend also dem Rechenkern 102b, zugeordnet ist, und wobei z.B. eine zweite Anzahl von Proxies Z2-Proxy 1, Z2-Proxy 2, .., Z2-Proxy n der zweiten Zone Z2, vorliegend also dem Rechenkern 102a, zugeordnet ist. Mit dem Bezugszeichen SSE sind vorliegend mehrere Speicherschutzeinrichtungen bzw. funktionale Komponenten hiervon bezeichnet, die in 4 symbolisch eine entsprechende Trennung der Teilbereiche TB1, TB2 bzw. der Zonen Z1, Z2 voneinander bzw. untereinander entsprechend dem Prinzip gemäß bevorzugten Ausführungsformen andeuten.
  • Bei weiteren bevorzugten Ausführungsformen kann wenigstens einer der Teilbereiche TB1, TB2 seinerseits in unterschiedliche Bereiche TB1a, TB1b bzw. TB2a, TB2b unterteilt sein, wobei z.B, der Bereich TB1a einem nicht-vertrauenswürdigen Bereich des ersten Teilbereichs TB1, der Bereich TB1b einem vertrauenswürdigen Bereich des ersten Teilbereichs TB1, der Bereich TB2a einem vertrauenswürdigen Bereich des zweiten Teilbereichs TB2, und der Bereich TB2b einem nicht-vertrauenswürdigen Bereich des zweiten Teilbereichs TB2 entspricht. Bei weiteren bevorzugten Ausführungsformen kann eine Separation der Teilbereiche TB1, TB2 bzw. der unterschiedlichen Bereiche TB1a, TB1b bzw. TB2a, TB2b mittels wenigstens einer Speicherschutzeinrichtung vorgesehen sein.
  • Bei weiteren bevorzugten Ausführungsformen, vgl. 2J, ist vorgesehen, dass das Verfahren weiter aufweist: Trennen 290 von Rechenzeitressourcen für unterschiedliche Anwendungsprogramme AP1, AP2 und/oder Instanzen von Anwendungsprogrammen, insbesondere Zuweisen von Rechenzeitressourcen für unterschiedliche Anwendungsprogramme und/oder Instanzen von Anwendungsprogrammen, in Abhängigkeit der wenigstens zwei Zonen Z1, Z2.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Verwenden 292 eines Betriebssystems BS für eingebettete Systeme, insbesondere eines Lightweight Embedded Operating System BS, zum Zuweisen von Rechenzeitressourcen für unterschiedliche Anwendungsprogramme AP1, AP2 und/oder Instanzen AP1_I1, AP2_I2 von Anwendungsprogrammen, wobei insbesondere jeweils einem Rechenkern der Recheneinrichtung 100, 100a ein Betriebssystem BS zugeordnet ist, s. 4.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren alternativ oder ergänzend zu dem Schritt 292 gemäß 2J weiter aufweist: Verwenden 294 eines Supervisors SV für eingebettete Systeme, vgl. 5, insbesondere eines Lightweight Embedded Supervisor SV, zum Zuweisen von Rechenzeitressourcen für unterschiedliche Anwendungsprogramme und/oder Instanzen von Anwendungsprogrammen, wobei insbesondere jeweils einem Rechenkern 102c (5) der Recheneinrichtung ein Supervisor SV zugeordnet ist.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Betriebssystem BS und/oder der Supervisor SV eine Zuweisung von Rechenzeitressourcen, vorzugsweise nur, für vordefinierte Tasks (Anwendungsprogramme und/oder Instanzen von Anwendungsprogrammen und/oder Teile hiervon), insbesondere unter Verwendung einer statischen (nicht veränderbaren) Taskliste, ausführt bzw. ausführen. Mit anderen Worten ist bei weiteren bevorzugten Ausführungsformen ausschließlich ein Scheduling von vordefinierten Tasks möglich, was die Sicherheit weiter steigert.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Betriebssystem BS (4) und/oder der Supervisor SV (5) eine Zuweisung von Rechenzeitressourcen in Abhängigkeit von a) wiederholten, insbesondere periodisch wiederholten, Unterbrechungsanforderungen (interrupt requests, z.B. von Zeitgeber-Interrupts) und/oder b) ereignisgesteuerten Unterbrechungsanforderungen ausführt, wobei insbesondere Tasks von wenigstens einer Unterbrechungsroutine (interrupt service routine, ISR, ein Computerprogramm, das bei dem Auftreten einer Unterbrechungsanforderung ausgeführt wird) aus aktiviert werden.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass bei dem Eintreten in eine Unterbrechungsroutine Konfigurationsdaten für wenigstens eine Speicherschutzeinrichtung M1, M2, .., SSE, insbesondere hardwaregesteuert, verändert werden.
  • Bei weiteren bevorzugten Ausführungsformen kann das Lightweight Embedded OS BS (4) respektive der Lightweight Embedded Supervisor SV (5) z.B. zyklisch oder Ereignis-basiert auszuführende (Proxy-)Funktionalitäten (Tasks) koordinieren und/oder orchestrieren („Scheduling“).
  • Bei weiteren bevorzugten Ausführungsformen weist das Lightweight Embedded OS BS sowie der Lightweight Embedded Supervisor insbesondere wenigstens eine der nachstehenden Eigenschaften auf:
    1. a) Minimierung von Angriffsoberfläche durch Reduktion von Komplexität (Code-Umfang, Funktionalität, Flexibilität etc.) auf notwendiges Minium
    2. b) Scheduling von ausschließlich vordefinierten Tasks (statische Task-Liste, keine dynamische Taskliste möglich), Scheduling basiert z.B. auf ISR mit z.B. zyklischen Interrupt Requests (IRQ), bspw. timer IRQ und/oder event (Ereignis)-basierte IRQs - bspw. Rx (Empfangs-) IRQ, Tx (Sende-) IRQ, SW (Software-) IRQ etc., Tasks werden von ISR aus aktiviert,
    3. c) Bei Eintreten in ISR erfolgt bevorzugt eine hardwaregesteuerte Umschaltung in den Supervisor Mode: z.B. Umschaltung auf statisches Konfigurationsdatenset für den Supervisor Mode, bevorzugt ist eine Umschaltung zwischen statischen Konfigurationsdatensets (z.B. für User Modes) ausschließlich in Supervisor Mode möglich,
    4. d) weiter bevorzugt erfolgt vor der Aktivierung eines Tasks eine Umschaltung von dem Supervisor Mode zu dem User Mode, wobei insbesondere eine Ausführung von Tasks (z.B. Teile von (Instanzen von) Anwendungsprogrammen) im User Mode erfolgt, wobei weiter insbesondere keine Umschaltung zwischen (statischen) Konfigurationsdatensets in dem User Mode bzw. in Tasks möglich ist.
    5. e) Vorteilhaft ist bei weiteren bevorzugten Ausführungsformen bereits implizit durch eine statische (und ggf. insbesondere auch integre und authentische) Konfiguration der Speicherschutzeinrichtung(en), z.B. während eines Startzyklus, ermöglicht, dass keine dynamische Rekonfiguration von Speicherschutzeinrichtungen mittels einer für den Supervisor Mode vorgesehenen Unterbrechungsroutine (ISR) erfolgen kann (z.B. von Lightweight Embedded OS BS / Supervisor SV).
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist, vgl. 2K: Überwachen 300, insbesondere mittels des Betriebssystems BS (4) und/oder des Supervisors SV (5), wenigstens eines der folgenden Elemente, insbesondere auf eine potentielle Kompromittierung: a) erste Zone Z1, b) ein der ersten Zone Z1 zugeordnetes Anwendungsprogramm AP1, c) eine der ersten Zone Z1 zugeordnete Instanz AP1_I1 eines Anwendungsprogramms AP1, wobei insbesondere das Überwachen 300 umfasst: Auswerten 302 (2K) eines Stapelspeichers („stack“) und/oder Auswerten 304 eines Programmzählers („program counter“, PC), wobei vorzugsweise das Auswerten 302 des Stapelspeichers und/oder das Auswerten 304 des Programmzählers vor einer Aktivierung des Anwendungsprogramms und/oder der Instanz des Anwendungsprogramms erfolgt.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist, vgl. 2L: Überwachen 300, s.o. zu 2K, und Einleiten 305 einer Fehlerreaktion, insbesondere dann, wenn das Überwachen 300 auf eine potentielle Kompromittierung schließen lässt.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die Fehlerreaktion bzw. das Einleiten 305 der Fehlerreaktion wenigstens eines der folgenden Elemente aufweist, vgl. 2M: a) Versetzen der ersten Zone Z1 und/oder des der ersten Zone Z1 zugeordneten Rechenkerns 102b (1) in einen sicheren Zustand, insbesondere mittels Deaktivieren 305a des der ersten Zone Z1 zugeordneten Rechenkerns 102b und/oder Resetieren 305b des der ersten Zone Z1 zugeordneten Rechenkerns 102b und/oder Versetzen 305c in einen Fehlermodus, b) Erzeugen 305d eines Fehlereintrags FE und/oder c) Weiterleiten 305e eines bzw. des Fehlereintrags an ein Angriffserkennungssystem, insbesondere Intrusion Detection System. Bei weiteren bevorzugten Ausführungsformen kann das IDS z.B. intern und/oder extern bezüglich der Recheneinrichtung 100, 100a angeordnet sein.
  • Bei weiteren bevorzugten Ausführungsformen kann das IDS z.B. auch eine verteilte Implementierung aufweisen, wobei z.B. erste Teilfunktionalitäten (wie z.B. IDS Sensoren und ggf. ein IDS Master) auf einer bzw. der Recheneinrichtung bzw. wenigstens einem Rechenkern der Recheneinrichtung implementiert sind bzw. ausgeführt werden, und wobei insbesondere andere Teile bzw. weitere Teilfunktionalität(en) optional in einer anderen Vorrichtung, z.B. einem Backend, implementiert sind. Bei weiteren bevorzugten Ausführungsformen kann das Backend z.B. auch dazu ausgebildet sein, wenigstens einen der folgenden Aspekte zu implementieren: a) tiefgehende Experten-Analyse, b) künstliche Intelligenz (KI), c) Machine Learning (ML), etc..
  • Bei weiteren bevorzugten Ausführungsformen, vgl. 2N, ist vorgesehen, dass die Recheneinrichtung 100, 100a zumindest zeitweise einen Kaltstart 310 ausführt, wobei insbesondere während des Kaltstarts 310 Daten und/oder Programmcode aus einem nichtflüchtigen Speicher 1032 (3) geladen werden, und wobei die Recheneinrichtung 100, 100a zumindest zeitweise einen Warmstart 312 (2N) ausführt, wobei insbesondere während des Warmstarts 312 Daten und/oder Programmcode aus einem zumindest zeitweise bestromten, flüchtigen Speicher 1030 (3) geladen werden, wobei insbesondere während des Kaltstarts 310 (2N) wenigstens eine Speicherschutzeinrichtung bzw. die wenigstens eine Speicherschutzeinrichtung konfiguriert wird, vgl. Schritt 311 aus 2N, und/oder wobei insbesondere (auch) während des Warmstarts 312 die wenigstens eine Speicherschutzeinrichtung konfiguriert wird, vgl. Schritt 313 aus 2N.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass ausschließlich derjenige Rechenkern 102a, 102b, 102c, 102n, dem eine dedizierte Speicherschutzeinrichtung M1, M2, M3, M4 bereitgestellt worden ist (vgl. Schritt 231 aus 2D), diese dedizierte Speicherschutzeinrichtung M1, M2, M3, M4 konfiguriert (Schritt 231a aus 2D).
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist, vgl. 2O (Ziffer „2“, Buchstabe „O“): Zuweisen 212a von Rechenzeitressourcen für unterschiedliche Anwendungsprogramme und/oder Zuweisen 212b von Rechenzeitressourcen für Instanzen von Anwendungsprogrammen, wobei der Supervisor SV und/oder eine dem Supervisor SV entsprechende Funktionalität zumindest teilweise mittels der Supervisor-Instanz SVI (1) realisiert ist.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist, vgl. 2P: Prüfen 320 einer Integrität und/oder Authentizität von Konfigurationsdaten KD, die einen Betrieb wenigstens einer Speicherschutzeinrichtung steuern, insbesondere mittels wenigstens einem der folgenden Elemente: a) Verifizieren 322 eines für die Konfiguration der wenigstens einer Speicherschutzeinrichtung verwendbaren Programmcodes, b) Verifizieren 324 der Konfigurationsdaten, c) Persistieren 326 eines bzw. des für die Konfiguration der wenigstens einen Speicherschutzeinrichtung verwendbaren Programmcodes, d) Persistieren 328 der Konfigurationsdaten.
  • Bei weiteren bevorzugten Ausführungsformen kann das Persistieren 326, 328 z.B. ein Vorsehen des für die Konfiguration der wenigstens einen Speicherschutzeinrichtung verwendbaren Programmcodes bzw. der Konfigurationsdaten in einem Festwertspeicher, z.B. einem ROM oder einem OTP (one time programmable, einmalig programmierbarer Speicher), aufweisen.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist, vgl. 2Q: zumindest zeitweises Ausführen 330 eines Secure-Boot-Verfahrens und/oder zumindest zeitweises Ausführen 332 eines Verfahrens zur Manipulationserkennung während der Laufzeit (RTMD, runtime manipulation detection), insbesondere durch wenigstens einen Rechenkern der Recheneinrichtung 100, 100a. Die Verfahren 330, 332 können beispielsweise das Vergleichen eines tatsächlich vorhandenen Speicherinhalts wenigstens eines Teils des Speichers 1030, 1032 mit einem vorgebbaren Referenz-Speicherinhalt aufweisen, wobei das Vergleichen beispielsweise auch eine Hashwert-Bildung und/oder Nutzung von CMAC (cipher-based message authentication code)-Verfahren und/oder Nutzung von Signaturen bzw. signierten Hashwerten aufweisen kann.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist, vgl. 2R: Steuern 340 eines Zugriffs eines Anwendungsprogramms AP1, AP2 auf wenigstens eines der folgenden Elemente in Abhängigkeit wenigstens einer Zone Z1, Z2: a) interne Schnittstelle, insbesondere Software-Schnittstelle, der Recheneinrichtung, b) interne und/oder externe Hardwareschnittstelle der Recheneinrichtung, c) Hardware-Sicherheitsmodul und/oder Kryptografiemodul zur Ausführung kryptografischer Funktionen, d) Peripheriegeräte der Recheneinrichtung, insbesondere Spezialfunktionsregister wenigstens eines Peripheriegeräts, e) interne Schnittstellen eines Zielsystems für die Recheneinrichtung, insbesondere eines Steuergeräts, f) externe Schnittstellen eines Zielsystems für die Recheneinrichtung, insbesondere eines Steuergeräts, g) Adressierungselemente für Kommunikationsprotokolle, insbesondere auf wenigstens einer Schicht des ISO/OSI-Schichtenmodells. Der optionale Schritt 342 gemäß 2R deutet beispielhaft eine (weitere) Ausführung des betreffenden Anwendungsprogramms in der ihm zugeordneten Zone an.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter wenigstens eines der folgenden Elemente aufweist, vgl. 2S: a) Einführen 350 wenigstens eines zusätzlichen, insbesondere nicht bereits existierenden, Zone, b) Verschieben 352 von Funktionalitäten von einem ersten Rechenkern 102a zu wenigstens einem weiteren Rechenkern 102b der Recheneinrichtung 100, 100a, c) Ausführen 354 einer Kommunikation zwischen wenigstens zwei Zonen unter Verwendung eines, insbesondere in die Recheneinrichtung integrierten, Arbeitsspeichers, d) Definieren 360, vgl. 2T, wenigstens einer vertrauenswürdigen Zone und, optional, Überwachen 362 wenigstens einer weiteren, insbesondere nicht vertrauenswürdigen, Zone, durch wenigstens ein der vertrauenswürdigen Zone zugeordnetes Anwendungsprogramm.
  • Nachfolgend sind unter Bezugnahme auf die 6 bis 21 weitere bevorzugte Ausführungsformen, Aspekte und Vorteile des Prinzips gemäß den Ausführungsformen beschrieben, die - gemäß weiteren bevorzugten Ausführungsformen - jeweils einzeln für sich oder in Kombination miteinander mit wenigstens einer der vorstehend beschriebenen Ausführungsformen kombinierbar sind.
  • 6 zeigt schematisch Aspekte einer Unterbrechungsroutine ISR1 gemäß weiteren bevorzugten Ausführungsformen, wie sie z.B. zumindest zeitweise durch wenigstens einen Rechenkern 102a, 102b, .. der Recheneinrichtung 100, 100a ausführbar sind. Das Blitzsymbol IRQ in 6 symbolisiert eine auftretende Unterbrechungsanforderung (interrupt request), wie sie z.B. zyklisch (z.B. vorgebbar durch Zeitgeberbaustein (Timer)) und/oder ereignisgesteuert (z.B. Eintreffen einer Nachricht an einer Kommunikationsschnittstelle) erzeugt werden kann. Bei weiteren bevorzugten Ausführungsformen wird daraufhin die Unterbrechungsroutine ISR1 ausgeführt, die wenigstens eines der folgenden Elemente aufweist: e1) zumindest zeitweises Speichern eines Kontexts des durch die Unterbrechungsanforderung IRQ unterbrochenen Tasks bzw. Programms, z.B. auf dem Stapelspeicher (kann z.B. in einem vorgebbaren Bereich des RAM 1030 definiert sein), e2) Identifizieren eines nachfolgend auszuführenden Tasks, e3) Umschalten von einer aktuellen Betriebsart, z.B. Supervisor Mode, zu einer anderen Betriebsart, z.B. User Mode, e4) Wiederherstellen des Tasks für die identifizierte Zone.
  • Bei weiteren bevorzugten Ausführungsformen kann die Unterbrechungsroutine ISR1 gemäß 6 beispielhaft durch das Betriebssystem BS (4), insbesondere bei einer Inter-Core-Zonen-Separation, verwendet werden.
  • 7 zeigt schematisch Aspekte einer Unterbrechungsroutine ISR2 gemäß weiteren bevorzugten Ausführungsformen, wie sie z.B. zumindest zeitweise durch wenigstens einen Rechenkern 102a, 102b, .. der Recheneinrichtung 100, 100a ausführbar sind.
  • Das Blitzsymbol IRQ' in 7 symbolisiert eine auftretende Unterbrechungsanforderung (interrupt request), wie sie z.B. zyklisch (z.B. vorgebbar durch Zeitgeberbaustein (Timer)) und/oder ereignisgesteuert (z.B.
  • Eintreffen einer Nachricht an einer Kommunikationsschnittstelle) erzeugt werden kann. Bei weiteren bevorzugten Ausführungsformen wird daraufhin die Unterbrechungsroutine ISR2 ausgeführt, die wenigstens eines der folgenden Elemente aufweist: e1') zumindest zeitweises Speichern eines Kontexts des durch die Unterbrechungsanforderung IRQ' unterbrochenen Tasks bzw. Programms, z.B. auf dem Stapelspeicher, optional: e5) Ausführen einer Auswertung z.B. des Stapelspeichers (vgl. z.B. Schritt 302 aus 2K) und/oder des Programmzählers (vgl. z.B. Schritt 304 aus 2K), e6) Identifizieren eines nachfolgend auszuführenden Tasks, e7) Umschalten des Kontexts zu einer identifizierten Zone (z.B. aus dem vorangehenden Schritt e6), wobei die identifizierte Zone mit dem identifizierten nachfolgend auszuführenden Task assoziiert ist) (alternativ kann die Umschaltung bei weiteren bevorzugten Ausführungsformen z.B. auch adressbasiert erfolgen, z.B. mittels CAN ID, VLAN ID, MAC-Adresse o.Ä.), e8) Umschalten von einer aktuellen Betriebsart, z.B. Supervisor Mode, zu einer anderen Betriebsart, z.B. User Mode, e9) Wiederherstellen eines Kontexts für den nachfolgenden Task.
  • Bei weiteren bevorzugten Ausführungsformen kann die Unterbrechungsroutine ISR2 gemäß 7 beispielhaft durch den Supervisor SV (5), insbesondere bei einer Intra-Core-Zonen-Separation, verwendet werden.
  • 8 zeigt schematisch ein Ablaufdiagramm gemäß weiteren bevorzugten Ausführungsformen, wobei das Bezugszeichen 310' beispielhaft Aspekte eines Kaltstarts der Recheneinrichtung 100, 100a bezeichnet, und wobei das Bezugszeichen 312' beispielhaft Aspekte eines Warmstarts der Recheneinrichtung 100, 100a bezeichnet. Bei dem Kaltstart 310' ist z.B. ein Prüfmuster für eine Verifizierung des Inhalts des RAM 1030 (3) nicht verfügbar. Bei dem Warmstart 312' ist z.B. ein Prüfmuster für eine Verifizierung des Inhalts des RAM 1030 (3) verfügbar.
  • Bei weiteren bevorzugten Ausführungsformen kann im Rahmen eines mindestens einmalig zu durchlaufenden Kaltstarts ein Prüfmuster respektive Pattern in den insbesondere in einem Power-Down-Mode versorgten flüchtigen Speicher geschrieben werden. Aufgrund der genannten Versorgung wird somit das genannten Prüfmuster bzw. Pattern in dem an sich flüchtigen Speicher erhalten. Dieses (RAM) Pattern wird bei weiteren bevorzugten Ausführungsformen bei wenigstens einem, insbesondere jedem, Startzyklus von einer System State Machine (Zustandsautomat, der bei weiteren bevorzugten Ausführungsformen z.B. zur Steuerung von Systemzuständen nutzbar ist) geprüft, und insbesondere kann in Abhängigkeit von der Existenz des Prüfmusters ein Kaltstart (z.B. wenn (RAM) Pattern nicht vorhanden ist) oder ein Warmstart (z.B. wenn das (RAM) Pattern vorhanden ist) durchgeführt werden.
  • Bei weiteren bevorzugten Ausführungsformen wird somit eine Integrität und Authentizität der im Power-Down-Mode versorgten flüchtigen Speicher bzw. ihrer darin enthaltenen bzw. liegenden Daten und Funktionalitäten (z.B. Rechenkern 102c und/oder Konfigurationsdaten der Speicherschutzeinrichtung, insbesondere für die erste und/oder zweite Zone und/oder ein Programmcode) im Rahmen des mindestens einmalig zwingend zu durchlaufenden, vorhergehenden Kaltstarts (Secure Boot und/ oder Starten aus OTP-Speicher - s.o.) sichergestellt.
  • Bei weiteren bevorzugten Ausführungsformen impliziert somit eine invalide Manipulation der im Power-Down-Mode im versorgten flüchtigen Speicher liegenden Daten und Funktionalitäten sowie des RAM Patterns eine zumindest zeitweise Versorgungsunterbrechung und damit eine Löschung des im Power-Down-Mode versorgten flüchtigen Speichers (RAM Pattern etc.). Bei weiteren bevorzugten Ausführungsformen würde die System State Machine demgemäß im Rahmen des Startzyklus aufgrund des fehlenden RAM Patterns, insbesondere automatisch, einen Kaltstart (Secure Boot und/ oder Starten aus OTP - s.o.) anstoßen, womit die Integrität und Authentizität der im Power-Down-Mode versorgten flüchtigen Speicher bzw. ihrer Daten und Funktionalitäten vor deren Nutzung oder Ausführung gewährleistet ist.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass bei der Existenz des Prüfmusters z.B. im Rahmen eines Warmstarts ausgewählte zeitkritische SW-Instanzen nicht vor deren Ausführung geprüft werden (also z.B. insbesondere kein Secure Boot), sondern ggf. erst zur Laufzeit/ nach deren Ausführung. Hierdurch wird vorteilhaft eine Startup Zeit für zeitkritische SW-Instanzen beim Warmstart beschleunigt. Die Integrität und Authentizität während des Warmstarts wird somit bei weiteren bevorzugten Ausführungsformen vorteilhaft auch ohne explizite Prüfung während des Warmstarts implizit durch die Verfügbarkeit des Prüfmusters (und damit Prüfung während des vorherigen Kaltstarts) sichergestellt. Zeitunkritische Komponenten können bei weiteren bevorzugten Ausführungsformen auch während des Warmstarts explizit vor deren Exekution (z.B. mittels eines Secure Boot-Prozesses) geprüft werden.
  • Block 102a_1 symbolisiert beispielhaft den ersten Rechenkern 102a der Recheneinrichtung (3) als „root of trust“, also vergleichbar zu einer Hardware-Sicherheitsreferenz analog zu einem TPM (trusted platform module) oder einem Hardware-Sicherheitsmodul (HSM), Block 102a_2 repräsentiert einen Boot-Manager (Systemprogramm, das ein Laden und/oder Ausführen von weiteren System- und oder Anwendungsprogrammen steuert) assoziiert mit dem Rechenkern 102a. Block 102a_3 repräsentiert eine Ausführung von Programmcode assoziiert mit Zone Z2 und Rechenkern 102a. Block 110 repräsentiert ein Hardware-Sicherheitsmodul. Block 111 repräsentiert einen Boot-Manager assoziiert mit dem Rechenkern 102c. Block 112 repräsentiert eine Ausführung von Programmcode assoziiert mit den Zonen Z1, Z2 und Rechenkern 102c (der beispielhaft und wie vorstehend bereits mehrfach beschrieben beiden Zonen Z1, Z2 zugeordnet ist). Block 113 repräsentiert einen Boot-Manager assoziiert mit dem Rechenkern 102b. Block 114 repräsentiert eine Ausführung von Programmcode assoziiert mit der Zone Z1 und mit dem Rechenkern 102b. Block 115 repräsentiert einen Boot-Manager assoziiert mit dem Rechenkern 102n. Block 116 repräsentiert eine Ausführung von Programmcode assoziiert mit den Zonen Z1, Z2 und Rechenkern 102n.
  • Pfeil a1 symbolisiert einen Bootvorgang (Hochfahren der Recheneinrichtung 100a z.B. aus einem vollständig deaktivierten Zustand). Pfeil a2 symbolisiert eine Konfiguration wenigstens einer Speicherschutzeinrichtung, insbesondere einer zentralen bzw. dem Bussystem 101 (3) zugeordneten Speicherschutzeinrichtung M5_1, M5_2, .., M5_8. Pfeil a3 symbolisiert einen Start des Bootmanagers für den Rechenkern 102c, vgl. auch Block 111.
  • Pfeil a4 symbolisiert eine Konfiguration wenigstens einer dedizierten Speicherschutzeinrichtung M3 (3) für den Rechenkern 102c. Pfeil a5 symbolisiert den Start einer Ausführung 112 von Programmcode durch den Rechenkern 102c. Pfeil a6 symbolisiert eine optionale Verifikation des Rechenkerns 102c, z.B. in Form einer RTMD.
  • Pfeil a7 symbolisiert ebenfalls eine optionale Verifikation des Rechenkerns 102c, im Kontext eines Kaltstarts 310'. Bei weiteren bevorzugten Ausführungsformen kann die optionale Verifikation a7 mittels kryptographischer Verfahren, z.B. basierend auf CMACs und/oder signierten Hashwerten, ausgeführt werden. Pfeil a8 symbolisiert einen Start des Bootmanagers für den Rechenkern 102c, ähnlich zu Pfeil a3, vgl. auch Block 111. Pfeil a9 symbolisiert, insbesondere ähnlich zu Pfeil a4, die Konfiguration der wenigstens einen dedizierten Speicherschutzeinrichtung M3 (3) für den Rechenkern 102c. Pfeil a10 symbolisiert den Start einer Ausführung 112 von Programmcode durch den Rechenkern 102c, ähnlich zu Pfeil a5.
  • Pfeil a11 symbolisiert eine optionale Verifikation mehrerer, vorzugsweise aller, Rechenkerne 102a, 102b, .., 102n. Pfeil a12 symbolisiert einen Start des Bootmanagers für den Rechenkern 102n, vgl. auch Block 115. Pfeil a13 symbolisiert die Konfiguration wenigstens einer dedizierten Speicherschutzeinrichtung für den Rechenkern 102n. Pfeil a14 symbolisiert den Start einer Ausführung 116 von Programmcode durch den Rechenkern 102n.
  • Pfeil a15 symbolisiert einen Start des Bootmanagers für den Rechenkern 102b. Pfeil a16 symbolisiert die Konfiguration wenigstens einer dedizierten Speicherschutzeinrichtung für den Rechenkern 102b. Pfeil a17 symbolisiert den Start einer Ausführung 114 von Programmcode durch den Rechenkern 102b.
  • Pfeil a18 symbolisiert einen Start des Bootmanagers für den Rechenkern 102a. Pfeil a19 symbolisiert die Konfiguration wenigstens einer dedizierten Speicherschutzeinrichtung für den Rechenkern 102a. Pfeil a20 symbolisiert den Start einer Ausführung 102a_3 von Programmcode durch den Rechenkern 102a.
  • 9 zeigt schematisch Aspekte einer Unterbrechungsroutine ISR3 gemäß weiteren bevorzugten Ausführungsformen, wie sie z.B. zumindest zeitweise durch wenigstens einen Rechenkern 102a, 102b, .. der Recheneinrichtung 100, 100a ausführbar sind. Das Blitzsymbol IRQ'' in 9 symbolisiert eine auftretende Unterbrechungsanforderung (interrupt request), wie sie z.B. zyklisch (z.B. vorgebbar durch Zeitgeberbaustein (Timer)) und/oder softwarebasiert (z.B. aufgerufen durch ein Anwendungsprogramm) erzeugt werden kann. Bei weiteren bevorzugten Ausführungsformen wird daraufhin die Unterbrechungsroutine ISR3 ausgeführt, die wenigstens eines der folgenden Elemente aufweist: e1') zumindest zeitweises Speichern eines Kontexts des durch die Unterbrechungsanforderung IRQ'' unterbrochenen Tasks bzw. Programms, optional: e5') Ausführen einer Auswertung z.B. des Stapelspeichers (vgl. z.B. Schritt 302 aus 2K) und/oder des Programmzählers (vgl. z.B. Schritt 304 aus 2K), e10) Umschalten des Kontexts zu einem nächsten Task (z.B. in Abhängigkeit einer vorzugsweise statischen Taskliste), e11) Umschalten von einer aktuellen Betriebsart, z.B. Supervisor Mode, zu einer anderen Betriebsart, z.B. User Mode, e12) Wiederherstellen des Tasks für die identifizierte Zone.
  • 10 zeigt schematisch einen Rechenkern 102a gemäß weiteren bevorzugten Ausführungsformen, dem ein Betriebssystem BS und/oder Supervisor SV (ähnlich 5, nicht in 10 gezeigt) zugeordnet ist, und der selbst zwei Zonen Z1, Z2 zugeordnet ist. Der Rechenkern 102a kann z.B. für einen Netzwerkswitch verwendet werden, z.B. um Ethernet-Datenpakete zu senden und/oder zu empfangen. Entsprechende Instanzen von Anwendungsprogrammen sind mit den Bezugszeichen AP3_I1 (Empfangen von Ethernetpaketen, Ausführung in der Zone Z1), AP3_I2 (Empfangen von Ethernetpaketen, Ausführung in der Zone Z2), AP4_I1 (Senden von Ethernetpaketen, Ausführung in der Zone Z1), AP4_I2 (Senden von Ethernetpaketen, Ausführung in der Zone Z2) gekennzeichnet. Ein weiteres Anwendungsprogramm, das z.B. Managementaufgaben für den Netzwerkswitch ausführt, läuft nur in der als vertrauenswürdig definierten zweiten Zone Z2, nicht jedoch in der als nicht vertrauenswürdig definierten ersten Zone Z1. Dem Rechenkern 102a ist ein RAM 1030 zugeordnet, das bei weiteren bevorzugten Ausführungsformen z.B. vergleichbar zu 5 aufgeteilt sein kann. Optional ist eine Switching-Engine (z.B. Koppelnetz) vorgesehen und/oder ein TCAM (ternary content-adressable memory)-Modul.
  • 11 zeigt schematisch zwei Rechenkerne 102a, 102b gemäß weiteren bevorzugten Ausführungsformen, wobei der erste Rechenkern 102a einer ersten Zone Z1 und wobei der zweite Rechenkern 102b einer zweiten Zone Z2 zugeordnet ist. Beiden Rechenkernen 102a, 102b ist jeweils ein Betriebssystem BS zugeordnet.
  • Erste Instanzen von verschiedenen Anwendungsprogrammen, die in 11 der Übersichtlichkeit halber zusammen mit dem Bezugszeichen I1 bezeichnet sind, sind der ersten Zone Z1 und damit dem ersten Rechenkern 102a zugeordnet. Bei weiteren bevorzugten Ausführungsformen weisen die verschiedenen Anwendungsprogramme beispielsweise wenigstens eines der folgenden Elemente auf: a) Programme zur Ausführung einer Untersuchung von Datenpaketen, insbesondere zur deep packet inspection, DPI, b) Programme zur Diagnose, c) Programme zur Ausführung von Updates, insbesondere mittels FOTA (firmware over the air)-Techniken (beispielsweise mittels der Datenschnittstelle 1008, 22), d) Programme zur Angriffserkennung und Angriffsabwehr (Intrusion Detection and Prevention). Bei weiteren bevorzugten Ausführungsformen sind dem zweiten Rechenkern 102b und der zweiten Zone Z2 entsprechende zweite Instanzen I2 der vorstehend in Bezug auf die erste Zone Z1 beschriebenen Anwendungsprogramme zugeordnet. Wenigstens eine Speicherschutzeinrichtung SSE ist gemäß weiteren bevorzugten Ausführungsformen verwendbar zum Steuern der Leserechte und/oder Schreibrechte und/oder Ausführungsrechte entsprechender Anwendungsprogramme bzw. Instanzen der verschiedenen Zonen. Durch die vorstehend beispielhaft unter Bezugnahme auf 11 beschriebene Konfiguration kann effizient ein besonders sicheres System zur Untersuchung von Datenpaketen bzw. zur Angriffserkennung und Angriffsabwehr, beispielsweise für elektronische Steuergeräte und/oder eingebettete Systeme und/oder loT- Systeme und dergleichen bereitgestellt werden, wobei durch die Zuordnung von den Instanzen I1, I2 der Anwendungsprogramme zu den Zonen Z1, Z2 besonders vorteilhaft beispielsweise jeweils Kontexte für die Ausführung (Exekution) mit unterschiedlichen Vertrauensstufen bereitgestellt werden können.
  • 12A zeigt schematisch Aspekte einer Unterbrechungsroutine ISR4 gemäß weiteren bevorzugten Ausführungsformen, wie sie z.B. zumindest zeitweise durch wenigstens einen Rechenkern 102a, 102b, .. der Recheneinrichtung 100, 100a ausführbar sind. Das Blitzsymbol Rx in 12A symbolisiert eine auftretende Unterbrechungsanforderung (interrupt request), wie sie z.B. ereignisgesteuert, vorliegend beispielhaft bei dem Empfang einer Nachricht, z.B. einer CAN (Controller Area Network)-Nachricht, erzeugt werden kann. Bei weiteren bevorzugten Ausführungsformen wird daraufhin die Unterbrechungsroutine ISR4 ausgeführt, die wenigstens eines der folgenden Elemente aufweist: e20) zumindest zeitweises Speichern eines Kontexts des durch die Unterbrechungsanforderung Rx unterbrochenen Tasks, insbesondere eines Sendetasks („Tx task“), beispielsweise zum Aussenden von Nachrichten, bzw. Programms, optional: e21) Ausführen einer Auswertung z.B. des Stapelspeichers (vgl. z.B. Schritt 302 aus 2K) und/oder des Programmzählers (vgl. z.B. Schritt 304 aus 2K), e22) Ermitteln einer Zone, mit der ein empfangener Datenrahmen (z.B. der genannten empfangenen CAN-Nachricht) assoziiert ist, e23) Umschalten des Kontexts zu der in Schritt e22 ermittelten Zone, e24) Umschalten von einer aktuellen Betriebsart, z.B. Supervisor Mode, zu einer anderen Betriebsart, z.B. User Mode, e25) Aufrufen einer Behandlungsroutine für den Nachrichtenempfang („Receive (Rx) handler“), also beispielsweise eines Anwendungsprogramms bzw. eines Teils eines Anwendungsprogramms, dass die empfangene Nachricht verarbeitet, e26) Wiederherstellen des Tasks (z.B. Sendetasks) für die identifizierte Zone.
  • Bei weiteren bevorzugten Ausführungsformen werden Sendetasks, also Aufgaben bzw. Anwendungsprogramme bzw. Teile von Anwendungsprogrammen zum Aussenden von Nachrichten, geplant („scheduling“).
  • Bei weiteren bevorzugten Ausführungsformen werden Unterbrechungsanforderungen, die den Empfang einer Nachricht charakterisieren, („Rx IRQ“, receive interrupt request), mit einer höheren Priorität bearbeitet als andere Unterbrechungsanforderungen, die beispielsweise von Zeitgebern (Timer) und/oder Anwendungsprogrammen bzw. Software allgemein ausgelöst werden.
  • Bei weiteren bevorzugten Ausführungsformen werden gleichzeitig oder innerhalb eines vorgebbaren ersten Zeitbereichs eingehende Unterbrechungsanforderungen priorisiert, beispielsweise in Abhängigkeit der Quelle der Unterbrechungsanforderung (eingehende Nachricht, Zeitgeber, Software) und/oder in Abhängigkeit von einem oder mehreren anderen bzw. weiteren Kriterien. Bei weiteren bevorzugten Ausführungsformen kann eine derartige Priorisierung beispielsweise durch eine Steuereinrichtung für Unterbrechungsanforderungen (englisch: interrupt controller) ausgeführt werden.
  • Bei weiteren bevorzugten Ausführungsformen kann das Umschalten des Kontexts, vergleiche beispielsweise Schritt e23 von 12A, ausschließlich in einer vorgebbaren Betriebsart, insbesondere in dem Supervisor Mode, erfolgen.
  • Die vorstehend beispielhaft unter Bezugnahme auf 12A beschriebenen Aspekte können bei weiteren bevorzugten Ausführungsformen beispielsweise dazu genutzt werden, die Verarbeitung von eingehenden Nachrichten für einen lightweight Supervisor, insbesondere einen CAN lightweight Supervisor, zumindest zeitweise zu steuern.
  • 12B zeigt schematisch Aspekte einer Unterbrechungsroutine ISR5 gemäß weiteren bevorzugten Ausführungsformen, wie sie z.B. zumindest zeitweise durch wenigstens einen Rechenkern 102a, 102b, .. der Recheneinrichtung 100, 100a ausführbar sind. Das Blitzsymbol TIM_SW in 12B symbolisiert eine auftretende Unterbrechungsanforderung (interrupt request), wie sie z.B. durch einen Zeitgeber oder ein Anwendungsprogramm bzw. allgemein Software, erzeugt werden kann. Bei weiteren bevorzugten Ausführungsformen wird daraufhin die Unterbrechungsroutine ISR5 ausgeführt, die wenigstens eines der folgenden Elemente aufweist: e30) zumindest zeitweises Speichern eines Kontexts des durch die Unterbrechungsanforderung Rx unterbrochenen Tasks, insbesondere eines Sendetasks („Tx task“), beispielsweise zum Aussenden von Nachrichten, bzw. Programms, optional: e31) Ausführen einer Auswertung z.B. des Stapelspeichers (vgl. z.B. Schritt 302 aus 2K) und/oder des Programmzählers (vgl. z.B. Schritt 304 aus 2K), e32) Umschalten des Kontexts zu einem nächsten Sendetask (z.B. gemäß einer insbesondere statischen Taskliste), e33) Umschalten von einer aktuellen Betriebsart, z.B. Supervisor Mode, zu einer anderen Betriebsart, z.B. User Mode, e34) Wiederherstellen des Tasks (z.B. Sendetasks) für die identifizierte Zone.
  • Die vorstehend beispielhaft unter Bezugnahme auf 12A beschriebenen weiteren Aspekte gelten bei weiteren bevorzugten Ausführungsformen für die Unterbrechungsroutine ISR5 gemäß 12B in entsprechender Weise.
  • 13 zeigt schematisch ein vereinfachtes Blockdiagramm von Aspekten einer Recheneinrichtung 100b gemäß weiteren bevorzugten Ausführungsformen. Die Recheneinrichtung 100b weist vorliegend beispielhaft vier Rechenkerne K1, K2, K3, K4 auf, von denen der erste Rechenkern K1 zur Verarbeitung von Kommunikationsnachrichten, insbesondere CAN-Nachrichten, ausgebildet ist. Daher kann bei weiteren bevorzugten Ausführungsformen der erste Rechenkern K1 gemäß 13 auch als „CAN-Core“ bezeichnet werden. Die weiteren Rechenkerne K2, K3 sind zur Ausführung von (gegebenenfalls unterschiedlichen Instanzen von) Anwendungsprogrammen vorgesehen und können bei weiteren bevorzugten Ausführungsformen daher auch als „Anwendungskerne“ bzw. englisch „Application Cores“ K2, K3 bezeichnet werden. Der vierte Rechenkern K4 gemäß 13 ist zur Verarbeitung von Ethernet-Kommunikationsnachrichten ausgebildet und kann daher bei weiteren bevorzugten Ausführungsformen auch als Ethernet-Kern bzw. ETH-Kern bzw. englisch als „ETH Core“ K4 bezeichnet werden. Dem ersten Rechenkern K1 ist ein erster Supervisor SV1, insbesondere ein CAN lightweight Supervisor, zugeordnet, und den vierten Rechenkern K4 ist ein zweiter Supervisor SV2, insbesondere ein ETH (Ethernet) lightweight Supervisor, zugeordnet.
  • Bei weiteren bevorzugten Ausführungsformen ist der erste Rechenkern K1 zwei Zonen Z1, Z2 zugeordnet. Bei weiteren bevorzugten Ausführungsformen ist auch der vierte Rechenkern K4 zwei Zonen Z1, Z2 zugeordnet.
  • Bei weiteren bevorzugten Ausführungsformen ist dem ersten Rechenkern K1 ein Anwendungsprogramm zum Senden und/oder Empfangen von CAN-Nachrichten zugeordnet, wobei das Bezugszeichen I1 in 13 eine erste Instanz dieses Anwendungsprogramms bezeichnet, welche erste Instanz I1 der ersten Zone Z1 zugeordnet und zum Empfangen von CAN-Nachrichten ausgebildet ist. Das Bezugszeichen I2 bezeichnet demgegenüber eine zweite Instanz dieses Anwendungsprogramms, welche der zweiten Zone Z2 zugeordnet und zum Empfangen von CAN-Nachrichten ausgebildet ist. Die Bezugszeichen I3, I4 bezeichnen entsprechende Instanzen zum Senden bzw. Empfangen von CAN-Nachrichten, die jeweils ebenfalls einer der beiden Zonen Z1, Z2 zugeordnet sind.
  • Bei weiteren bevorzugten Ausführungsformen können die vorstehend beispielhaft unter Bezugnahme auf die 12A, 12B beschriebenen Unterbrechungsanforderungen Rx, TIM_SW durch den ersten Rechenkern K1 bearbeitet werden, beispielsweise durch Ausführen einer entsprechenden Unterbrechungsroutine ISR4 (12A) bzw. ISR5 (12B).
  • Bei weiteren bevorzugten Ausführungsformen ist dem vierten Rechenkern K4 ein Anwendungsprogramm zum Senden und/oder Empfangen von Ethernet-Nachrichten zugeordnet, wobei das Bezugszeichen I1' in 13 eine erste Instanz dieses Anwendungsprogramms bezeichnet, welche erste Instanz I1' der ersten Zone Z1 zugeordnet und zum Empfangen von Ethernet-Nachrichten ausgebildet ist. Das Bezugszeichen I2' bezeichnet demgegenüber eine zweite Instanz dieses Anwendungsprogramms, welche der zweiten Zone Z2 zugeordnet und zum Empfangen von Ethernet-Nachrichten ausgebildet ist. Die Bezugszeichen I3', I4' bezeichnen entsprechende Instanzen zum Senden bzw. Empfangen von Ethernet-Nachrichten, die jeweils ebenfalls einer der beiden Zonen Z1, Z2 zugeordnet sind.
  • Bei weiteren bevorzugten Ausführungsformen wird eine Trennung der beiden Zonen Z1, Z2 innerhalb der Rechenkerne K1, K4 jeweils unter Verwendung mindestens einer Speicherschutzeinrichtung SSE1, SSE4 bewerkstelligt.
  • Wie vorstehend bereits erwähnt sind die beiden Anwendungskerne K2, K3 zur Ausführung von Anwendungsprogrammen ausgebildet, die bzw. deren einzelne Instanzen in 13 als Rechtecke innerhalb der betreffenden Anwendungskerne K2, K3 angedeutet, aus Gründen der Übersichtlichkeit jedoch nicht näher bezeichnet sind. Bei weiteren bevorzugten Ausführungsformen ist der zweite Rechenkern K2 der zweiten Zone Z2 zugeordnet, und der dritte Rechenkern K3 ist der ersten Zone Z1 zugeordnet.
  • Bei weiteren bevorzugten Ausführungsformen weist die Recheneinrichtung 100b einen flüchtigen Speicher, insbesondere einen Arbeitsspeicher (RAM) 1030b auf, der beispielsweise vergleichbar zu der Darstellung gemäß 4, in unterschiedliche Bereiche aufgeteilt ist, welche jeweils unterschiedlichen Rechenkernen K1, K2, K3, K4 bzw. deren Zonen Z1, Z2 zugeordnet sind.
  • Beispielsweise ist ein erster Bereich B1 des Arbeitsspeichers 1030b der Recheneinrichtung 100b gemäß 13 dem ersten Rechenkern K1 zugeordnet, wobei ein erster Teilbereich B1_1 der ersten Zone Z1 und ein zweiter Teilbereich B1_2 der zweiten Zone Z2 zugeordnet ist. Eine vergleichbare Aufteilung in entsprechende Bereiche bzw. Teilbereiche B4, B4_1, B4_2 ist bei weiteren bevorzugten Ausführungsformen auch für den vierten Rechenkern K4 möglich.
  • Weitere Bereiche B2, B3 des Arbeitsspeichers 1030b sind bei weiteren bevorzugten Ausführungsformen beispielsweise den Anwendungskernen K2, K3 zuordenbar. Bei weiteren bevorzugten Ausführungsformen ist beispielsweise der Bereich B2 weiter aufteilbar in einen vertrauenswürdigen Bereich B2' und in einen nicht-vertrauenswürdigen Bereich B2". Vergleichbares kann bei weiteren bevorzugten Ausführungsformen auch für den dritten Anwendungskern K3 gelten, vergleiche die Bezugszeichen B3', B3".
  • Bei weiteren bevorzugten Ausführungsformen können ein oder mehrere weitere Speicherschutzeinrichtungen, die in 13 kollektiv mit dem Bezugszeichen SSE' bezeichnet sind, vorgesehen sein, um eine jeweilige Trennung gemäß bevorzugten Ausführungsformen hinsichtlich beispielsweise Leserechten und/oder Schreibrechte und/oder Ausführungsrechte zu realisieren.
  • Bei weiteren bevorzugten Ausführungsformen kann die Recheneinrichtung 100b gemäß 13 beispielsweise die Funktionalität eines Gateway bereitstellen, also eines Netz Kopplungselements, das beispielsweise einen CAN-Bus (vgl. den CAN Core K1) mit einem Ethernet-Netzwerk (vgl. den ETH Core K4) koppeln kann. Bei weiteren bevorzugten Ausführungsformen kann beispielsweise der erste Rechenkern K1 die Funktion einer sogenannten highspeed routing engine für CAN-Nachrichten übernehmen, und/oder der vierte Rechenkern K4 die Funktion einer sogenannten highspeed engine für Ethernet-Nachrichten.
  • 14 zeigt schematisch ein Ablaufdiagramm gemäß weiteren bevorzugten Ausführungsformen, das beispielhaft die Verarbeitung von Unterbrechungsanforderungen, zum Beispiel bei einem Empfang von Nachrichten, insbesondere CAN- Nachrichten, veranschaulicht.
  • Der Block ISR6 repräsentiert beispielhaft eine Unterbrechungsroutine, die beispielsweise bei wenigstens einer der folgenden Unterbrechungsanforderungen ausführbar ist: a) Empfang einer Nachricht („Rx“), b) Signalisierung eines Zeitgebers („Timer“), c) mittels Software erzeugte Unterbrechungsanforderung („SW“). Der Block T_RX_Z1 repräsentiert beispielhaft einen Task (z.B. Teil bzw. Instanz eines Anwendungsprogramms), der der Zone Z1 zugeordnet ist und bei Empfang („Rx“) einer Nachricht ausgeführt wird, vergleichbar zu der Instanz I1 des ersten Rechenkerns K1 der Recheneinrichtung 100b gemäß 13. Der Block T_RX_Z2 repräsentiert beispielhaft einen Task, der der Zone Z2 zugeordnet ist und bei Empfang einer Nachricht ausgeführt wird, vergleichbar zu der Instanz I2 des ersten Rechenkerns K1 der Recheneinrichtung 100b gemäß 13. Der Block T_TX_Z1 repräsentiert beispielhaft einen Task, der der Zone Z1 zugeordnet ist und beim Senden einer Nachricht ausgeführt wird, vergleichbar zu der Instanz I3 des ersten Rechenkerns K1 der Recheneinrichtung 100b gemäß 13. Der Block T_TX_Z2 repräsentiert beispielhaft einen Task, der der Zone Z2 zugeordnet ist und beim Senden einer Nachricht ausgeführt wird, vergleichbar zu der Instanz I4 des ersten Rechenkerns K1 der Recheneinrichtung 100b gemäß 13.
  • Der Pfeil a30 repräsentiert eine Unterbrechungsanforderung, ausgelöst durch den Empfang einer (CAN-)Nachricht, die insbesondere die Abarbeitung einer momentan laufenden Aufgabe, vergleiche den Sendetask T_TX_Z2, unterbricht, vergleiche Pfeil a30'. Infolgedessen wird bei weiteren bevorzugten Ausführungsformen durch die Unterbrechungsroutine ISR6 der Empfängertask T_RX_Z1 aufgerufen, vergleiche Pfeil a31. Nach der Ausführung des Empfängertasks T_RX_Z1 verzweigt diese, bevorzugt mittels einer Software-Unterbrechungsanforderung (Software-Interrupt) a32, wiederum zu der Unterbrechungsroutine ISR6, die sodann den zuvor unterbrochenen Sendetask T_TX_Z2 fortsetzt, vergleiche Pfeil a33. Bei dem Auftreten a34 einer durch einen Zeitgeber erzeugten Unterbrechungsanforderung (Timer IRQ) ruft die Unterbrechungsroutine ISR6 den Sendetask T_TX_Z1 auf, vgl. Pfeil a35, was zur Unterbrechung a34' des zuvor ablaufenden Sendetasks T_TX_Z2 führt.
  • Aus dem Diagramm gemäß 14 sowie den vorangehenden Beschreibungen ist deutlich ersichtlich, wie unterschiedliche, durch eine Recheneinrichtung gemäß den Ausführungsformen ausführbare, Programmteile (Tasks), die gemäß dem Prinzip gemäß den Ausführungsformen unterschiedlichen Zonen Z1, Z2, .. (mehr als zwei Zonen sind gemäß weiteren bevorzugten Ausführungsformen ebenfalls möglich) zugeordnet werden können, ausgeführt werden können bzw. wie deren Ausführung beispielsweise durch eine Unterbrechungsroutine ISR6, die beispielsweise Bestandteil eines Betriebssystems BS und/oder Supervisors SV sein kann, steuerbar ist.
  • 15 zeigt schematisch ein vereinfachtes Blockdiagramm von Aspekten gemäß weiteren bevorzugten Ausführungsformen, wobei vorliegend beispielhaft ein Anwendungsfall abgebildet ist, der einen beispielhaften Zonenübergang ZT, also das Übertragen von Daten aus einer ersten Zone gemäß bevorzugten Ausführungsformen in eine zweite Zone gemäß bevorzugten Ausführungsformen, zum Gegenstand hat.
  • Der erste Rechenkern K1 gemäß 15 entspricht dabei dem vorstehend unter Bezugnahme auf 13 bereits beschriebenen CAN-Core K1, und die weiteren Rechenkerne K2, K3 aus 15 entsprechen den Anwendungskernen K2, K3 gemäß 13. Vergleichbares gilt auch für die Bereiche B1, B2, B3 des Arbeitsspeichers 1030b bzw. ihre Teilbereiche.
  • Der Pfeil A1 repräsentiert den Empfang einer CAN-Nachricht, der eine Bearbeitung durch die Instanz I1 eines entsprechenden Anwendungsprogramms des ersten Rechenkerns K1 auslöst. Die Instanz 11, die der ersten Zone Z1 zugeordnet ist, überträgt Daten der empfangenen CAN-Nachricht bzw. daraus abgeleitete Daten über den Arbeitsspeicher, vergleiche den Pfeil A2, an eine Instanz I5 eines Anwendungsprogramms zur Verarbeitung solcher Daten, die der ersten Zone Z1 zugeordnet ist und durch den dritten Rechenkern K3 ausführbar ist, vergleiche den Pfeil A3. Bezugszeichen I6 aus 15 bezeichnet eine Instanz eines Anwendungsprogramms zur Untersuchung von Datenpaketen, insbesondere deep packet inspection, DPI, die die empfangenen Daten näher untersucht und sodann in den Teilbereich B3" des Arbeitsspeichers 1030b schreibt, vergleiche Pfeil A5. Sodann liest die weitere Instanz I6' des DPI-Anwendungsprogramms, die auf dem zweiten Rechenkern K2 ausgeführt wird und die der zweiten Zone Z2 zugeordnet ist, die Daten aus dem Teilbereich B3", was dem vorstehend bereits erwähnten Zonenübergang ZT entspricht, vergleiche Pfeil A6.
  • Bei weiteren bevorzugten Ausführungsformen wird eine, insbesondere tiefgehende (im Sinne einer DPI), Payload-Analyse z.B. durch die Instanz I6' („Z2-DPI-Proxy“, also der zweiten Zone Z2 zugeordneter Proxy zur Ausführung von DPI-Verfahren) ausgeführt, wobei die Instanz I6 („Z1-DPI-Proxy“, also der ersten Zone Z1 zugeordneter Proxy zur Ausführung von DPI-Verfahren) bevorzugt für das Kopieren der Daten in B3" zuständig ist.
  • Nach einer optionalen weiteren Verarbeitung der Daten durch den zweiten Rechenkern K2, vergleiche den Pfeil A7, werden die Daten bzw. daraus abgeleitete Daten von einer Instanz I5' in den Speicherbereich B1_2 des Arbeitsspeichers 1030b geschrieben, vergleiche Pfeil A8, aus dem die Instanz 14, die beispielsweise zum Senden von CAN-Nachrichten ausgebildet und der zweiten Zone Z2 zugeordnet ist, und die von dem CAN-Core K1 ausführbar ist, die Daten entnimmt und beispielsweise wieder auf den CAN-Bus aussendet, vergleiche den Pfeil A10.
  • Das vorstehend beispielhaft unter Bezugnahme auf 15 beschriebene Szenario kann für wenigstens einen der folgenden Anwendungsfälle verwendet werden: a) Diagnose unter Verwendung von CAN-Nachrichten, b) DPI angewandt auf CAN-Nachrichten, c) Bildung eines Proxy, z.B. eines Proxy für ein Kommunikations- und/oder Diagnoseprotokoll oder dergleichen, d) Routing von z.B. einem ersten CAN-Bus zu z.B. einem zweiten CAN-Bus, insbesondere unter Einbeziehung von Anwendungsprogrammen (dies ermöglicht beispielhaft eine Verarbeitung der zu routenden CAN-Nachrichten, insbesondere einer Analyse und/oder Modifikation).
  • 16 zeigt schematisch ein vereinfachtes Blockdiagramm von Aspekten gemäß weiteren bevorzugten Ausführungsformen, in Anlehnung an die Darstellungen von 13 und 15, wobei vorliegend beispielhaft ein Anwendungsfall abgebildet ist, der einen beispielhaften Zonenübergang ZT', also das Übertragen von Daten aus einer ersten Zone gemäß bevorzugten Ausführungsformen in eine zweite Zone gemäß bevorzugten Ausführungsformen, zum Gegenstand hat. Im Unterschied zu dem Szenario gemäß 15 erfolgt der Zonenübergang ZT' bei dem Szenario gemäß 16 ausgehend von dem Ethernet-Kern K4 zu dem CAN-Kern K1, gemäß den Pfeilen A11 bis A20.
  • Aus 16 ist zu erkennen, dass nach dem Empfang A11 der Ethernet-Nachricht entsprechende Daten in dem Speicherbereich B3' gespeichert werden (Pfeil A12), von wo sie durch den der ersten Zone Z1 zugeordneten Anwendungskern K3 eingelesen werden (Pfeil A13), verarbeitet werden (Pfeil A14) und die entsprechend verarbeiteten Daten sodann in den weiteren Speicherbereich B3" geschrieben werden (Pfeil A15).
  • Sodann werden diese Daten durch den der zweiten Zone Z2 zugeordneten Anwendungskern K2 eingelesen, vergleiche Pfeil A16, verarbeitet, vergleiche Pfeil A17, und in den weiteren Speicherbereich B1_2 geschrieben, vergleiche Pfeil A18. Sodann werden die Daten von dem CAN-Core K1 aus dem weiteren Speicherbereich B1_2 eingelesen (Pfeil A19), durch die Instanz I4 (Teil eines Anwendungsprogramms zum Aussenden von CAN-Nachrichten) verarbeitet und auf dem CAN-Bus (nicht gezeigt) ausgesendet, vergleiche Pfeil A20.
  • 17 zeigt beispielhaft eine zu 16 vergleichbare Konfiguration, bei der eine eingehende Ethernet-Nachricht durch den Rechenkern K4 empfangen (A21), in dem Arbeitsspeicher 1030b zwischengespeichert (A22) und mittels einer Instanz I3 des ersten Rechenkerns K1 gelesen (A23) und auf einen CAN-Bus gesendet (A24) wird.
  • 18 zeigt schematisch ein vereinfachtes Blockdiagramm von Aspekten gemäß weiteren bevorzugten Ausführungsformen, in Anlehnung an die Darstellungen von 13 und 15, wobei vorliegend beispielhaft ein Anwendungsfall abgebildet ist, bei dem ein Hardware-Sicherheitsmodul HSM verwendet wird. Das Hardware-Sicherheitsmodul HSM ist vorliegend beispielhaft in die Recheneinrichtung (nicht in 18 bezeichnet, vgl. z.B. Bezugszeichen 100 aus 1) integriert, die u.a. auch den zweiten Rechenkern K2' aufweist, und zur Ausführung von kryptografischen Funktionen ausgebildet. Bei weiteren bevorzugten Ausführungsformen können die kryptografischen Funktionen beispielsweise das Speichern von (geheimen) Schlüsseln und/oder das Bilden von Hashwerten und/oder Signaturen und dergleichen aufweisen.
  • Bei weiteren bevorzugten Ausführungsformen stellt das Hardware-Sicherheitsmodul HSM ein eigenständiges („on-chip“-) Modul dar, das bevorzugt auf demselben Halbleitersubstrat bzw. Die (Chip) wie die Recheneinrichtung angeordnet ist. Bevorzugt weise das Hardware-Sicherheitsmodul HSM einen eigenen Rechenkern (nicht gezeigt) sowie ggf. einen eigenen Speicher usw. auf.
  • Bei weiteren bevorzugten Ausführungsformen ist ein Krypto-Stack KS vorgesehen, der zur Kommunikation zwischen den Rechenkernen der Recheneinrichtung und dem Hardware-Sicherheitsmodul HSM nutzbar ist. Dieser Krypto-Stack KS ist, bei weiteren bevorzugten Ausführungsformen, insbesondere aus Security-Gründen, lediglich auf dem Rechenkern K2' realisiert, da der Rechenkern K2' vorliegend beispielhaft den einzigen Rechenkern der Recheneinrichtung darstellt, der ausschließlich der vertrauenswürdigen Zone Z2 zugeordnet ist. Damit kann der Rechenkern K2' bei weiteren bevorzugten Ausführungsformen als „most secure core“, also als sicherster Rechenkern, angesehen werden. Die Pfeile A31, A32, A33, A34, A35, A36 repräsentieren beispielhaft die folgenden Schritte: Empfangen (A31) einer Ethernet-Nachricht, Speichern (A32) der empfangenen Nachricht in dem Bereich B3', Laden (A33) dieser Nachricht durch ein Anwendungsprogramm des dritten Rechenkerns K3, Verarbeiten (A34) der geladenen Nachricht durch den dritten Rechenkern K3, Schreiben (A35) der bei der Verarbeitung erhaltenen Daten in den Speicherbereich B3", Laden (A36) der geschriebenen Daten aus dem Speicherbereich B3" durch ein Anwendungsprogramm, das auf dem zweiten Rechenkern K2 ausführbar ist.
  • Bei weiteren bevorzugten Ausführungsformen verarbeitet der zweite Rechenkern K2 die geladenen Daten, insbesondere auch unter Verwendung des Hardware-Sicherheitsmodul HSM, vgl. den Pfeil A37. Die Verarbeitung A37 kann beispielsweise eine Verschlüsselung von Daten umfassen. Sodann werden die verarbeiteten Daten A38 in dem Speicherbereich B1_2 geschrieben (A38). Danach werden die Daten durch die Instanz des CAN-Cores K1 aus dem Speicherbereich B1_2 geladen (A39) und auf den CAN-Bus gesendet.
  • 19 zeigt schematisch ein vereinfachtes Blockdiagramm von Aspekten gemäß weiteren bevorzugten Ausführungsformen, in Anlehnung an die Darstellung von 18, wobei vorliegend beispielhaft ein Anwendungsfall abgebildet ist, bei dem z.B. ein Firmware-Update, insbesondere vom FOTA (firmware over the air)-Typ, ausführbar ist. Beispielhaft kann bei bevorzugten Ausführungsformen ein Empfangen von Daten über eine Ethernet-Verbindung erfolgen, beispielsweise mittels des vierten Rechenkerns K4, vergleiche Pfeil A41. Eine Instanz I1' eines Empfangsprogramms schreibt die empfangenen Daten in einen Speicherbereich B3", vgl. Pfeil A42. Instanzen von Anwendungsprogrammen auf dem Anwendungs-Rechenkern K3 Laden die Daten aus dem Speicherbereich B3" (A43) und verarbeiten diese (A44). Eine weitere Instanz 17, bei der es sich beispielsweise um einen ersten FOTA-Proxy I7 handelt, extrahiert die für den FOTA-Prozess erforderlichen Daten aus dem verarbeiteten Daten und schreibt (A45) die extrahierten Daten in den beispielsweise (insbesondere aus der Perspektive der zweiten Zone Z2) als nicht-vertrauenswürdig angesehenen Speicherbereich B3". Eine Instanz I8 eines Anwendungsprogramms, bei der es sich beispielsweise um einen zweiten FOTA-Proxy handelt, und die auf dem Rechenkern K2" ausführbar ist, lädt (Pfeil A46) die Daten aus dem Speicherbereich B3". Optional kann dann durch den Rechenkern K2" ein kryptografisches Verfahren auf den geladenen Daten ausgeführt werden, beispielsweise eine CMAC-Bildung, die vorteilhaft das Hardware-Sicherheitsmodul HSM nutzt, vergleiche den Pfeil A47. Bei weiteren bevorzugten Ausführungsformen können optional verarbeitete Daten bzw. CMAC-Werte in einem externen Speicher gespeichert werden, vgl. Pfeil A48. Eine derartige Speicherung wird bei weiteren bevorzugten Ausführungsformen durch den FOTA-Proxy I8 gesteuert.
  • Bei weiteren bevorzugten Ausführungsformen weist die zweite Zone Z2 nur Leserechte, aber insbesondere keine Schreibrechte und/oder Exekutionsrechte, auf den Speicherbereich B3" auf. Dies kann bei weiteren bevorzugten Ausführungsformen in entsprechender Weise z.B. auch bei den vorstehend beispielhaft unter Bezugnahme auf 4, 5 beschriebenen Konfigurationen gelten.
  • Bei weiteren bevorzugten Ausführungsformen können in dem externen Speicher 1033 beispielsweise auch komplette Speicherabbilder („ECU image“) 1033a für wenigstens einen Rechenkern bzw. die gesamte Recheneinrichtung und/oder ein entsprechendes Steuergerät zeitweise abgelegt werden.
  • Bei weiteren bevorzugten Ausführungsformen kann ein durch den zweiten Rechenkern K2" ausführbares Anwendungsprogramm bzw. eine entsprechende Instanz hiervon beispielsweise den Inhalt von in dem externen Speicher 1033 gespeicherten Daten prüfen bzw. validieren werden.
  • Bei weiteren bevorzugten Ausführungsformen kann, beispielsweise nach erfolgreicher Validierung der in dem externen Speicher 1033 enthaltene Daten, ein entsprechendes Speicherabbild 1033a an ein oder mehrere externe Geräte (nicht gezeigt) verteilt werden, vergleiche die Pfeile A49, A50, A51, A52, die unter anderem ein, beispielsweise blockweises, Kopieren des Speicherabbilds 1033a aus dem externen Speicher 1033a in den Speicherbereich B1_2 des Arbeitsspeichers 1030b (A50) und von dort zu der Instanz I4 (z.B. CAN-Sendetask) zum Gegenstand haben.
  • Bei weiteren bevorzugten Ausführungsformen kann die Validierung bevorzugt basierend auf digitalen Signaturen und/oder signierten Hashwerten ausgeführt werden. Z.B. kann bei weiteren bevorzugten Ausführungsformen zu jedem ECUimage ein signierter Hashwert existieren. Bei weiteren bevorzugten Ausführungsformen kann eine Signaturverifikation bevorzugt über das Hardware-Sicherheitsmodul HSM ausgeführt werden.
  • Bei weiteren bevorzugten Ausführungsformen kann beispielsweise auch während des Verteilens bzw. Kopierens des Speicherabbilds 1033a ein, vorzugsweise wiederum blockweises, Überprüfen eines CMAC-Werts und/oder eines anderen Werts, der eine Überprüfung der Integrität und/oder Authentizität der betreffenden Blöcke ermöglicht, erfolgen, beispielsweise gesteuert durch entsprechende Instanzen von Anwendungsprogrammen, die zum Beispiel auf dem zweiten Rechenkern K2" ablaufen, optional unterstützt durch das Hardware-Sicherheitsmodul HSM.
  • Bei weiteren bevorzugten Ausführungsformen kann eine Bildung und Verifikation von z.B. CMAC-Werten insbesondere als ergänzender Integritäts- und Authentizitätsschutz, z.B. zur Signaturverifikation fungieren. Bei weiteren bevorzugten Ausführungsformen kann z.B. ein einzelnes bzw. jedes einzelne Datenpaket aus dem Buffer B3" mit einem CMAC-Wert oder einem trunkierten („truncated“) CMAC-Wert versehen werden. Diese(s) wird bzw. werden bei weiteren bevorzugten Ausführungsformen z.B. vor einer Übertragung in den Buffer B1_2 verifiziert, wodurch insbesondere sichergestellt wird, dass ausschließlich Datenpakete in den Buffer B1_2 gelangen, die integer und authentisch sind. Bei weiteren bevorzugten Ausführungsformen ist eine Bufferweise CMAC-Generierung und -Verifikation optional. Die 20, 21 zeigen schematisch Ablaufdiagramme gemäß weiteren bevorzugten Ausführungsformen, die beispielhaft die Verarbeitung von Unterbrechungsanforderungen, zum Beispiel bei einem Empfang von Nachrichten, insbesondere CAN- Nachrichten, veranschaulichen.
  • Der Block ISR7 repräsentiert beispielhaft eine Unterbrechungsroutine, die beispielsweise bei Unterbrechungsanforderungen ausführbar ist, die den Empfang einer Nachricht („Rx“) signalisieren („Rx ISR“).
  • Der Block ISR8 repräsentiert beispielhaft eine Unterbrechungsroutine, die beispielsweise bei wenigstens einer der folgenden Unterbrechungsanforderungen ausführbar ist: a) Signalisierung eines Zeitgebers („Timer“), b) mittels Software erzeugte Unterbrechungsanforderung („SW ISR“).
  • Der Block RX_H_Z1 repräsentiert beispielhaft einen Empfangshandler (z.B. Teil bzw. Instanz eines Anwendungsprogramms, das den Empfang einer Nachricht steuert), der der Zone Z1 zugeordnet ist und bei Empfang („Rx“) einer Nachricht ausgeführt wird, vergleichbar zu der Instanz I1 des ersten Rechenkerns K1 der Recheneinrichtung 100b gemäß 13.
  • Der Block RX_H_Z2 repräsentiert beispielhaft einen Empfangshandler (z.B. Teil bzw. Instanz eines Anwendungsprogramms, das den Empfang einer Nachricht steuert), der der Zone Z2 zugeordnet ist und bei Empfang („Rx“) einer Nachricht ausgeführt wird, vergleichbar zu der Instanz I2 des ersten Rechenkerns K1 der Recheneinrichtung 100b gemäß 13.
  • Der Block T_TX_Z1' repräsentiert beispielhaft einen Task, der der Zone Z1 zugeordnet ist und beim Senden einer Nachricht ausgeführt wird, vergleichbar zu der Instanz I3 des ersten Rechenkerns K1 der Recheneinrichtung 100b gemäß 13. Der Block T_TX_Z2' repräsentiert beispielhaft einen Task, der der Zone Z2 zugeordnet ist und beim Senden einer Nachricht ausgeführt wird, vergleichbar zu der Instanz I4 des ersten Rechenkerns K1 der Recheneinrichtung 100b gemäß 13.
  • Der Pfeil a40 repräsentiert eine Unterbrechungsanforderung, ausgelöst durch den Empfang einer (CAN-)Nachricht, die insbesondere die Abarbeitung einer momentan laufenden Aufgabe, vergleiche den Sendetask T_TX_Z2', unterbricht, vergleiche Pfeil a40'. Infolgedessen wird bei weiteren bevorzugten Ausführungsformen durch die Unterbrechungsroutine ISR7 der Empfangshandler RX_H_Z1 aufgerufen, vergleiche Pfeil a41. Nach der Ausführung des Empfangshandlers RX_H_Z1 kehrt dieser zu der Unterbrechungsroutine ISR7 zurück (z.B. bevorzugt durch eine mittels Software erzeugte Unterbrechungsanforderung), Pfeil a42.
  • Gemäß dem Beispiel nach 20 wird sodann der Sendetask T_TX_Z1' ausgeführt, vergleiche Pfeil a43. Dies kann bei weiteren bevorzugten Ausführungsformen den besonderen Vorteil aufweisen, dass durch den Task RX_H_Z1 ohnehin bereits die statische Konfiguration (z.B. entsprechendes Konfigurationsdatenset) der Speicherschutzeinrichtung für die erste Zone Z1 aktiv ist, die bevorzugt auch für den Sendetask T_TX_Z1' gilt. Hierdurch kann insbesondere aus Performance-Sicht ein Umschalten der betreffenden statischen Konfiguration der Speicherschutzeinrichtung vor der Ausführung der Sendetask T_TX_Z1' gespart werden.
  • Bei dem Auftreten a44 einer durch einen Zeitgeber erzeugten Unterbrechungsanforderung (Timer IRQ) ruft die Unterbrechungsroutine ISR7 den Sendetask T_TX_Z2' auf, vgl. Pfeil a45, was zur Unterbrechung a44' des zuvor ablaufenden Sendetasks T_TX_Z1' führt. Bevorzugt erfolgt vor der Ausführung des Sendetasks T_TX_Z2' ein Umschalten auf die statische Konfiguration (z.B. entsprechendes Konfigurationsdatenset) der Zone Z2. Danach kehrt der Ablauf, z.B. mittels eines Software-Interrupts a46, zu der Unterbrechungsroutine ISR7 zurück, woraufhin der Sendetask T_TX_Z1' fortgesetzt wird, vgl. Pfeil a47.
  • Bei weiteren bevorzugten Ausführungsformen kann die Unterbrechungsroutine ISR7 gemäß 20, 21 z.B. eine zu der Konfiguration ISR4 gemäß 12A vergleichbare bzw. identische Konfiguration aufweisen.
  • Nachfolgend sind weitere bevorzugte Ausführungsformen, Aspekte und Vorteile des Prinzips gemäß den Ausführungsformen beschrieben, die - gemäß weiteren bevorzugten Ausführungsformen - jeweils einzeln für sich oder in Kombination miteinander mit wenigstens einer der vorstehend beschriebenen Ausführungsformen kombinierbar sind.
  • Bei weiteren bevorzugten Ausführungsformen kann als eine Maßnahme zur Limitierung einer Angriffsoberfläche auf die Recheneinrichtung eine Limitierung der Zugriffsrechte auf Speicher 1030a z.B. gemäß 4, 5 genutzt werden, wodurch eine zonenweise Speicher-Separation, z.B. unter Nutzung von Mechanismen an sich bekannter Speicherschutzeinrichtungen ermöglicht ist. Besonders bevorzugt kann bei weiteren Ausführungsformen eine zonenweise Speicher-Separation bei den nachstehend beispielhaft genannten Speicherformen erfolgen: Buffer (Pufferspeicher), zum Beispiel in Form eines vertrauenswürdigen Pufferspeichers (Trusted Buffer (z.B. in einem Shared RAM 1030) und/oder in Form eines nicht vertrauenswürdigen Pufferspeichers (Non-Trusted Buffer (z.B. in dem Shared RAM 1030), Stack (Stapelspeicher), DatenSpeicher (bspw. Daten-Flash, EEPROM etc.), Programm-Speicher (bspw. Programm-Flash, ROM etc.), SFRs (Spezialfunktionsregister).
  • Bei weiteren bevorzugten Ausführungsformen kann ein Austausch von Daten zwischen verschiedenen Zonen („Intra- und/oder Inter-Zonen-Datenaustausch“) beispielsweise über in einem Shared RAM (geteilten Arbeitsspeicher, vgl. Bezugszeichen 1030a aus 4) liegende Buffer realisiert werden.
  • Bei weiteren bevorzugten Ausführungsformen kann pro Instanz I1, I2, I3 („Proxy“) eines Anwendungsprogramms und pro Zone beispielsweise mindestens jeweils ein Trusted- und Non-Trusted Buffer (abhängig vom Anwendungsfall können ggf. Buffer entfallen) vorgesehen sein, vergleiche beispielsweise die Teilbereiche TB1a, TB1b aus 4.
  • Bei weiteren bevorzugten Ausführungsformen erfolgt ein Datenaustausch innerhalb einer Zone respektive die Intra-Zonen-Kommunikation, insbesondere ausschließlich, via Trusted Buffer TB2a (4) dieser Zone.
  • Bei weiteren bevorzugten Ausführungsformen erfolgt ein Datenaustausch zwischen Zonen respektive die Inter-Zonen-Kommunikation bevorzugt über im Shared RAM 1030a liegende Non-Trusted Buffer TB1a. Sollen bspw. bei weiteren bevorzugten Ausführungsformen Daten von Zone Z1 nach Zone Z2 transferiert werden, so werden diese bevorzugt zunächst von einem Z1-Proxy in den zugehörigen Z1-Non-Trusted Buffer kopiert, vom zugehörigen Z2-Proxy inhaltlich bzgl. deren Gültigkeit verifiziert und für den Fall valider respektive inhaltlich korrekter, vertrauenswürdiger Daten, vom Z2-Proxy in den Z2-Trusted Buffer kopiert. Der Kopiervorgang nach erfolgreicher Daten-Verifikation von Z1-Non-Trusted-Buffer nach Z2-Trusted-Buffer wird bei weiteren bevorzugten Ausführungsformen als Zonen-Transition bezeichnet. Die verifizierten, vertrauenswürdigen und im Z2-Trusted-Buffer befindlichen Daten können bei weiteren bevorzugten Ausführungsformen innerhalb von Z2 entsprechend prozessiert oder weitergeleitet werden, d.h. die Daten-Verifikation erfolgt bei weiteren bevorzugten Ausführungsformen vor der Zonen-Transition und ggf. Daten-Nutzung.
  • Eine weitere Maßnahme zur Limitierung der Angriffsoberfläche der Recheneinrichtung gemäß den Ausführungsformen ist die Limitierung der Zugriffsrechte auf Laufzeit gemäß weiteren bevorzugten Ausführungsformen, die bei weiteren bevorzugten Ausführungsformen z.B. unter Steuerung eines entsprechenden Betriebssystems BS bzw. Supervisors SV erfolgen kann.
  • Bei weiteren bevorzugten Ausführungsformen kann für das vorstehend beispielhaft beschriebene Lightweight Embedded Betriebssystem BS z.B. gemäß 4 als Basis z.B. ein AUTomotive Open System ARchitecture (AUTOSAR) BS fungieren, welches bei weiteren bevorzugten Ausführungsformen bezüglich seiner Komplexität auf ein Minimum reduziert wird (bspw. via Konfiguration etc.).
  • Bei weiteren bevorzugten Ausführungsformen kann selbst im Falle einer von einem kompromittierten Rechenkern 102a (3) ausgehenden Eskalation von Privilegien - bspw. Missbrauch von Supervisor Mode in dem Lightweight Embedded OS ISR - keine invalide Zonen-Transition bzw. invalider Zugriff von Z1 auf Z2-Speicher oder -Laufzeit erfolgen - Begründung: Statische und stark reduzierte Funktionalität des Lightweight Embedded BS, bei weiteren bevorzugten Ausführungsformen speziell Teilfunktionalitäten im Supervisor Mode, ermöglichen somit keinen Missbrauch von Privilegien im Supervisor Mode.
  • Bei weiteren bevorzugten Ausführungsformen kann eine in dem Supervisor Mode laufende ISR (Unterbrechungsroutine) lediglich zwischen den statischen Konfigurationsdatensets für die dedizierte Speicherschutzeinrichtung für den betreffenden Rechenkern umschalten → identische statische Konfigurationsdatensets für Supervisor Mode und User Mode des Rechenkerns erlauben bei weiteren bevorzugten Ausführungsformen lediglich Zugriff auf Speicher und/oder Laufzeit, die einer betreffenden Zone, zum Beispiel der ersten Zone Z1, zugeordnet sind.
  • Bei weiteren bevorzugten Ausführungsformen kann eine in dem Supervisor Mode laufende ISR keine dynamische Rekonfiguration der Speicherschutzeinrichtung(en) vornehmen, dies ist insbesondere implizit erreichbar durch eine statische, integre und authentische Konfiguration der Speicherschutzeinrichtung(en) während eines Startzyklus, beispielsweise während eines Kaltstarts und/oder während eines Warmstarts.
  • Bei weiteren bevorzugten Ausführungsformen kann eine in dem User Mode laufende Task, die beispielsweise der ersten Zone Z1 zugeordnet ist, nicht zwischen statischen Konfigurationsdatensets der für einen bestimmten Rechenkern dedizierten Speicherschutzeinrichtung umschalten, denn bei weiteren bevorzugten Ausführungsformen ist diese Umschaltung ausschließlich in dem Supervisor Mode möglich.
  • Bei weiteren bevorzugten Ausführungsformen kann eine in dem User Mode laufende Task, die beispielsweise der ersten Zone Z1 zugeordnet ist, keine dynamische Rekonfiguration der Speicherschutzeinrichtung(en) vornehmen, was vorteilhaft wiederum implizit erreichbar ist durch eine bei weiteren bevorzugten Ausführungsformen vorgesehene statische, integre und authentische Konfiguration der Speicherschutzeinrichtung(en) während des Startzyklus, also beispielsweise während eines Kaltstarts und/oder während eines Warmstarts.
  • Bei weiteren bevorzugten Ausführungsformen kann ein Supervisor SV, insbesondere Lightweight Embedded Supervisor, gegenüber dem Betriebssystem BS, insbesondere dem Lightweight Embedded Betriebssystem, über ergänzende Überwachungsfunktionalitäten verfügen. Bevorzugt werden im Falle einer Intra-Core-Zonen-Separation (5) auf einem dedizierten Rechenkern 102c Tasks PXY zweier Zonen Z1 und Z2 mit unterschiedlicher Vertrauensstufen ausgeführt, wobei hier bevorzugt zwei unterschiedliche statische Konfigurationsdatensets für Z1-Tasks (der ersten Zone Z1 zugeordnete Tasks bzw. Instanzen) und Z2-Tasks im User Mode verwendet werden, sowie ggf. ein weiteres statisches Konfigurationsdatenset für den Supervisor Mode, welcher z.B. die Umschaltung zwischen den beiden statischen Konfigurationsdatensets für die Z1-Tasks und die Z2-Tasks steuert. Bei weiteren bevorzugten Ausführungsformen kann ein gegebenenfalls verbleibendes, ungenutztes statisches Konfigurationsdatenset für Tasks im User Mode so konfiguriert werden (beispielsweise während eines Kaltstarts und/oder Warmstarts), dass dieses z.B. einen generellen Lese-, Schreib- und Exekutionszugriff auf den kompletten Speicher unterbindet, wodurch die Sicherheit weiter gesteigert wird.
  • Bei weiteren bevorzugten Ausführungsformen kann vorgesehen sein, dass der Supervisor Mode, insbesondere im Kontext einer Intra-Core-Zonen-Separation, eine Überwachung einer nicht-vertrauenswürdigen Zone Z1 steuert, vgl. z.B. den Ablauf gemäß 2M.
  • Bei weiteren bevorzugten Ausführungsformen können z.B. 3 oder mehr Zonen Z1, Z2, Z3 (nicht gezeigt) vorgesehen sein, wobei die erste Zone Z1 z.B. eine - hoch-vertrauenswürdige/ -vertrauliche Zone ist, wobei die zweite Zone Z2 z.B. eine vertrauenswürdige Zone ist, und wobei die dritte Zone Z3 z.B. eine nichtvertrauenswürdige Zone ist.
  • Bei weiteren bevorzugten Ausführungsformen kann die Recheneinrichtung z.B. einen Mikrocontroller aufweisen bzw. durch einen Mikrocontroller mit einen entsprechenden Anzahl von Rechenkernen gebildet sein.
  • Untersuchungen der Erfinder zufolge erhöht sich im Kontext hochvernetzter, moderner Fahrzeuge insbesondere aufgrund der mannigfaltigen externen Schnittstellen massiv die Angriffsoberfläche auf Recheneinrichtungen z.B. von Steuergeräten und/oder eingebetteten Systemen. Speziell das Risiko eines sogenannten Remote-Angriffes, d.h. eine Kompromittierung bspw. via Internet ohne physikalischen Zugriff auf das Fahrzeug bzw. die Recheneinrichtung, ist gegeben. Das Prinzip gemäß den bevorzugten Ausführungsformen kann vorteilhaft zur effizienten Mitigation derartiger Remote-Angriffe und/oder anderer Angriffe auf eine Recheneinrichtung verwendet werden.
  • Weitere bevorzugten Ausführungsformen beziehen sich auf eine Vorrichtung 1000 zur Ausführung des Verfahrens gemäß den Ausführungsformen, vgl. das schematische Blockdiagramm gemäß 22. Die Vorrichtung 1000 weist eine Recheneinrichtung 1002 mit wenigstens einem Rechenkern 1002a auf, wobei dem Rechenkern 1002a optional wenigstens eine Speicherschutzeinrichtung 1002a' zugeordnet werden kann.
  • Die Vorrichtung 1000 weist weiter eine Speichereinrichtung 1004 auf, die bevorzugt über einen flüchtigen Speicher 1004a, z.B. Arbeitsspeicher (RAM), verfügt, und/oder über einen nichtflüchtigen Speicher 1004b, z.B. ein Flash-EEPROM und/oder ein ROM und/oder einen OTP-Speicher. Bevorzugt ist in dem ROM 1004b ein Computerprogramm PRG abgelegt, das Befehle aufweist, die bei der Ausführung des Programms PRG durch einen Computer 1002 diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.
  • Bei weiteren bevorzugten Ausführungsformen sind auch Konfigurationsdaten CFG für den Betrieb der Vorrichtung 1000 in dem ROM 1004b abgelegt. Diese Konfigurationsdaten CFG können z.B. auch ein oder mehrere Konfigurationsdaten(sets) KD, KD', KD1, KD2, KD3, KD4 für (die) wenigstens eine Speicherschutzeinrichtung 1002a' aufweisen.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die Vorrichtung 1000 wenigstens einen Datenbus 1006 aufweist, der einen Datenaustausch zwischen der Recheneinrichtung 1002 und der Speichereinrichtung 1004 ermöglicht.
  • Weitere bevorzugte Ausführungsformen beziehen sich auf ein computerlesbares Speichermedium SM, umfassend Befehle, insbesondere in Form eines Computerprogramms PRG, die bei der Ausführung durch einen Computer 1002 diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.
  • Weitere bevorzugte Ausführungsformen beziehen sich auf ein Datenträgersignal DS, das das Computerprogramm PRG gemäß den Ausführungsformen überträgt. Bevorzugt kann die Vorrichtung 1000 eine, vorzugsweise bidirektionale, Datenschnittstelle 1008 aufweisen zum Empfang des Datenträgersignals DS.
  • Bei weiteren bevorzugten Ausführungsformen kann die Recheneinrichtung 1002 auch eine Konfiguration gemäß der Recheneinrichtung 100, 100a, wie vorstehend beispielhaft unter Bezugnahme u.a. auf 1, 3 beschrieben, aufweisen. Insbesondere ist es bei weiteren bevorzugten Ausführungsformen auch möglich, dass der bzw. ein Rechenkern 1002a der Vorrichtung 1000 nach 22 zumindest zeitweise zumindest manche Schritte des Verfahrens gemäß den Ausführungsformen ausführt. Insoweit kann die Vorrichtung 1000 beispielhaft auch als mögliches Zielsystem für die Recheneinrichtung 100, 100a gemäß den Ausführungsformen aufgefasst werden.
  • Bei weiteren bevorzugten Ausführungsformen weist die Vorrichtung 1000 auch ein Hardware-Sicherheitsmodul HSM' bzw. Kryptografiemodul HSM', z.B. zur Ausführung kryptografischer Funktionen, auf. Bei weiteren bevorzugten Ausführungsformen kann das Hardware-Sicherheitsmodul HSM' als Supervisor-Instanz SVI verwendet werden.
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die Vorrichtung 1000 ausgebildet ist als ein Mikrocontroller (englisch: Microcontroller bzw. Microcontroller Unit (MCU)), insbesondere als ein einziger Mikrocontroller (single MCU) bzw. als ein Ein-Chip-System (englisch: SoC, system-on-chip), insbesondere als ein einziges SoC (single-SoC).
  • Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die Vorrichtung 1000 ein, insbesondere gemeinsames, Halbleitersubstrat 1001 (englisch: die) aufweist, wobei wenigstens eines der folgenden Elemente auf dem, insbesondere gemeinsamen, Halbleitersubstrat 1001 angeordnet ist: a) die wenigstens einen Rechenkern aufweisende Recheneinrichtung 1002, b) die Speichereinrichtung 1004, c) der Datenbus 1006, d) die wenigstens eine Speicherschutzeinrichtung 1002a, d) das (optionale) Hardware-Sicherheitsmodul HSM'.
  • Das Prinzip gemäß bevorzugten Ausführungsformen ermöglicht somit vorteilhaft die Bereitstellung eines single-MCU Systems 1 bzw. single-SoC Systems 1, bei gleichzeitiger Separation in zwei oder mehr Zonen Z1, Z2.
  • Bei weiteren bevorzugten Ausführungsformen kann ein Austausch von Daten zwischen den verschiedenen Zonen („Intra- und/oder Inter-Zonen-Datenaustausch“) beispielsweise über in einem Shared RAM (geteilten Arbeitsspeicher, vgl. Bezugszeichen 1030a aus 4) liegende Buffer realisiert werden, wobei das Shared RAM vorteilhaft ebenfalls auf demselben gemeinsamen Halbleitersubtrat 1001 angeordnet ist, wie die Recheneinrichtung 1002 bzw. ihr(e) Rechenkern(e) 1002a und bevorzugt die weiteren Komponenten 1006, HSM', 1002a des single-SoC Systems 1. Hierdurch ist vorteilhaft ein hochperformanter (da MCU-intern bzw. SoC-intern) und sicherer (da MCU-intern bzw. SoC-intern) Kommunikationskanal zwischen den verschiedenen Zonen Z1, Z2 gegeben, der gemäß weiteren bevorzugten Ausführungsformen auch effizient skalierbar ist (z.B. mehrere Buffer bei ggf. weiteren (zusätzlichen) Zonen).
  • Vorteilhaft ermöglichen bevorzugte Ausführungsformen die „Anordnung“ unterschiedlicher Zonen Z1, Z2, z.B. vertrauenswürdiger (TZ) und nichtvertrauenswürdiger (NTZ) Zonen, und/oder eine Datenverarbeitung bezüglich der Daten der unterschiedlichen Zonen Z1, Z2 auf demselben, bevorzugt single-, MCU- bzw. SoC-System 1.
  • Bei weiteren bevorzugten Ausführungsformen kann das Verfahren und/oder die Vorrichtung 100, 100a, 1000 gemäß den Ausführungsformen in einem Steuergerät, z.B. einem Steuergerät für ein Kraftfahrzeug, insbesondere einem Steuergerät für eine Brennkraftmaschine eines Kraftfahrzeugs, verwendet werden, z.B. für wenigstens einen der folgenden Anwendungsfälle: a) Steuern eines Betriebs bzw. Betriebszustandsübergangs des Steuergeräts, b) Freigeben bzw. Nichtfreigeben einer oder mehrerer Funktionen des Steuergeräts und/oder einer anderen Komponente und/oder z.B. des Kraftfahrzeugs, c) Wechseln in einen Fehlermodus und/oder Notlauf, d) Vornehmen eines Fehlerspeichereintrags, e) Signalisierung eines Betriebszustands an eine externe Einheit und/oder einen Benutzer, f) Ansteuern eines Stellglieds.
  • Weitere bevorzugte Ausführungsformen beziehen sich auf eine Verwendung des Verfahrens gemäß den Ausführungsformen und/oder der Vorrichtung 100, 100a, 1000 gemäß den Ausführungsformen und/oder des Computerprogramms PRG gemäß den Ausführungsformen zur Überprüfung wenigstens eines Teilbereichs der Speichereinrichtung 1030, 1032, 1004 auf Änderungen bzw. Manipulationen, insbesondere vor oder während oder nach einem Wechsel der Speichereinrichtung und/oder einer auf die Speichereinrichtung zugreifenden Recheneinrichtung 100, 100a, 1002 von einem ersten Betriebszustand in einen zweiten Betriebszustand, und zur Steuerung eines Betriebs z.B. eines Steuergeräts einer Brennkraftmaschine eines Kraftfahrzeugs in Abhängigkeit der Überprüfung.
  • Weitere bevorzugte Ausführungsformen, vgl. 2U, beziehen sich auf eine Verwendung des Verfahrens gemäß den Ausführungsformen und/oder der Vorrichtung gemäß den Ausführungsformen und/oder des Computerprogramms gemäß den Ausführungsformen für wenigstens eines der folgenden Elemente: a) Bereitstellen 370 von Vertrauensgrenzen („Trust Boundaries“) in der Recheneinrichtung 100, 100a (1), insbesondere auch innerhalb eines Rechenkerns 102c der Recheneinrichtung, b) Verringerung 371 (2U) einer Angriffsoberfläche für Angriffe auf die Recheneinrichtung und/oder eine ihrer Komponenten, c) Limitierung 372 von Zugriffsrechten auf Speicher 1030, 1032, d) Limitierung 373 von Zugriffsrechten auf Peripherie 1034 (3), e) Limitierung 374 (2U) von Zugriffsrechten auf Rechenressourcen (z.B. charakterisierbar durch Rechenzeit, Angabe eines Rechenkerns), e) Minimierung 375 eines Einflusses einer korrumpierten Komponente, f) Betreiben 376 eines Steuergeräts, insbesondere für ein Fahrzeug, insbesondere Kraftfahrzeug, g) Betreiben 377 eines eingebetteten Systems, insbesondere eines Internet-of-Things, loT, -Systems, h) Betreiben 378 eines anwendungsspezifischen integrierten Schaltkreises, ASIC.
  • Bei weiteren bevorzugten Ausführungsformen, vgl. 2V, weist das Verfahren weiter auf: a) Bereitstellen 380 eines primären Supervisor-Proxy SVI-pri mittels der Supervisor-Instanz SVI, b) Bereitstellen 382 wenigstens eines sekundären Supervisor-Proxy SVI-sek-1, SVI-sek-2, wobei insbesondere der wenigstens eine sekundäre Supervisor-Proxy SVI-sek-1, SVI-sek-2 wenigstens einem Rechenkern 102a, 102b, 102c, ..., 102n; K1, K2, K3, K4 und/oder der wenigstens einen Zone Z1, Z2 zugeordnet ist (beispielhafte Details s.u. zu 24).
  • Weiter bevorzugt kann der primäre Supervisor-Proxy SVI-pri mittels des on-chip Trust Anchor (TA) realisiert und/oder implementiert werden.
  • Bei weiteren bevorzugten Ausführungsformen, vgl. 2W, weist das Verfahren weiter auf: a) Bereitstellen 385 einer ersten Anzahl von Funktionalitäten FUN-1 für den Supervisor SV, b) Zuordnen 386, insbesondere dynamisch, wenigstens einer Supervisor-Funktionalität SF-1 der ersten Anzahl von Funktionalitäten FUN-1 zu dem primären Supervisor-Proxy SVI-pri und/oder dem wenigstens einen sekundären Supervisor-Proxy SVI-sek-1, wobei insbesondere das Zuordnen 386 in Abhängigkeit wenigstens eines der folgenden Elemente ausgeführt wird: A) Betriebsgröße der Recheneinrichtung 100; 100a; 100b, B) Betriebsart der Recheneinrichtung 100; 100a; 100b, C) Anwendungsfall der Recheneinrichtung 100; 100a; 100b.
  • 24 zeigt schematisch ein vereinfachtes Blockdiagramm einer Recheneinrichtung 100c gemäß weiteren bevorzugten Ausführungsformen. Die Recheneinrichtung 100c weist ein oder mehrere Rechenkerne auf, die vorliegend kollektiv mit dem Bezugszeichen KX bezeichnet sind. Den Rechenkernen KX sind zwei Zonen Z1, Z2 zugeordnet, denen wie vorstehend bereits mehrfach beispielhaft beschrieben zumindest zeitweise ein oder mehrere Proxies Z1-Proxy 1, .., Z1-Proxy n, Z2-Proxy 1, .., Z2-Proxy n zugeordnet sein können.
  • Bei der Recheneinrichtung 100c ist gemäß weiteren bevorzugten Ausführungsformen eine Supervisor-Instanz SVI vorgesehen, die von den wenigstens zwei Zonen Z1, Z2 unabhängig ist. Optional können der Supervisor-Instanz SVI auch ein oder mehrere („eigene“) Zonen Z3, Z4 zugeordnet sein, wobei die Zonen Z3, Z4 ebenfalls bevorzugt von den wenigstens zwei Zonen Z1, Z2 unabhängig sind. Den zwei Zonen Z3, Z4 sind beispielhaft zumindest zeitweise ein oder mehrere Proxies Z3-Proxy 1, .., Z3-Proxy n, Z4-Proxy 1, .., Z4-Proxy n zugeordnet, wobei gemäß weiteren bevorzugten Ausführungsformen die Anzahl der Proxies je Zone Z3, Z4 (optional auch Z1, Z2) auch unterschiedlich sein kann.
  • Bevorzugt kann z.B. wenigstens ein (dedizierter) Rechenkern der Recheneinrichtung 100c als Supervisor-Instanz SVI verwendet werden. Alternativ oder ergänzend kann bei weiteren bevorzugten Ausführungsformen wenigstens ein Hardware-Sicherheitsmodul HSM und/oder ein Trusted-Platform-Modul TPM, als Supervisor-Instanz SVI verwendet werden.
  • Ein Datenaustausch DE zwischen der Supervisor-Instanz SVI und den Rechenkernen KX kann bei weiteren bevorzugten Ausführungsformen z.B. unter Verwendung von einem oder mehreren Speicherbereichen erfolgen, insbesondere unter Verwendung von Registerspeichern wie z.B. einem oder mehreren Registerspeichern für besondere Funktionen (englisch: special function register(s)). Beispielsweise ist bei weiteren bevorzugten Ausführungsformen ein erster Registerspeicher bzw. eine erste Gruppe SFR1 von Registerspeichern vorgesehen, um Daten von der Supervisor-Instanz SVI zu den Kernen KX („Host-Kerne“) zu übertragen. Beispielsweise ist bei weiteren bevorzugten Ausführungsformen ein zweiter Registerspeicher bzw. eine zweite Gruppe SFR2 von Registerspeichern vorgesehen, um Daten von den Kernen KX zu der Supervisor-Instanz SVI zu übertragen.
  • Beispielsweise ist bei weiteren bevorzugten Ausführungsformen ein Arbeitsspeicher SR („shared RAM“) für gemeinsamen Zugriff durch den primären Supervisor-Proxy SVI-pri und den sekundären Supervisor-Proxy SVI-sek-1 vorgesehen.
  • Der bzw. die Registerspeicher SFR2 sind bevorzugt Host-seitig (also durch wenigstens einen der Rechenkerne KX) les- und/oder schreibbar, jedoch bevorzugt aus Perspektive der Supervisor-Instanz SVI lediglich lesbar. Bei weiteren bevorzugten Ausführungsformen resultiert ein Host-seitiges Schreiben des SFR2 (also Beschreiben des bzw. der Registerspeicher SFR2 durch wenigstens einen der Rechenkerne KX) z.B. in einer Unterbrechungsanforderung IRQ auf der Seite der Supervisor-Instanz SVI.
  • Der bzw. die Registerspeicher SFR1 sind bevorzugt Supervisor-Instanz-seitig les- und/oder schreibbar, aus Perspektive der Rechenkerne KX jedoch lediglich lesbar. Weiter bevorzugt resultiert ein Supervisor-Instanz-seitiges Schreiben des Registerspeichers SFR1 in einer Unterbrechungsanforderung IRQ auf der Host-Seite KX.
  • Bei weiteren bevorzugten Ausführungsformen kann bzw. können optional zur Generierung einer Unterbrechungsanforderung IRQ auf Host-Seite KX Host-seitig auch der bzw. die Registerspeicher SFR1 gepollt, insbesondere zyklisch abgefragt, werden.
  • Der gemäß weiteren bevorzugten Ausführungsformen für beide Seiten, insbesondere bidirektional, les- und schreibbare Shared RAM SR kann bei Bedarf gemäß weiteren bevorzugten Ausführungsformen dem ergänzenden Daten- bzw. Parameter-Austausch zwischen den beiden Supervisor-Proxies SVI-pri, SVI-sek-1 dienen.
  • Bei weiteren bevorzugten Ausführungsformen kann das shared RAM SR auch unterteilt werden in Bereiche („Sub-Bereiche“), die: a) bidirektional les- und schreibbar sind, und/oder b) (insbesondere nur) vom Trust-Anchor TA schreibbar und vom Host KX lesbar sind, und/oder c) (insbesondere nur) vom Host KX schreibbar und vom Trust Anchor TA lesbar sind.
  • Bei weiteren bevorzugten Ausführungsformen kann das shared RAM SR optional in je einen Hauptbereich pro Rechenkern (gemäß weiteren bevorzugten Ausführungsformen zumindest für manche von mehreren Rechenkernen) aufgeteilt werden. Bei weiteren bevorzugten Ausführungsformen kann in diesem Hauptbereich bzw. in diesen Hauptbereichen dann z.B. wenigstens einer, vorzugsweise mehrere bzw. alle drei, der vorstehenden genannten drei Sub-Bereiche a), b), c) vorgesehen sein. Der bzw. die Hauptbereich(e) sind gemäß weiteren bevorzugten Ausführungsformen ebenfalls mittels einer jeweiligen Speicherschutzeinrichtung (MPU) voneinander separiert, so dass z.B. ein erster Rechenkern nicht in den Austauschbereich eines zweiten Rechenkerns (z.B. zum Datenaustausch zwischen dem zweiten Rechenkern mit dem Trust Anchor TA, SVI) schreiben kann.
  • Bei weiteren bevorzugten Ausführungsformen können Daten zwischen den Kernen KX und der Supervisor-Instanz SVI z.B. programmgesteuert und/oder ereignisgesteuert (z.B. mittels Unterbrechungsanforderungen IRQ) übertragen werden.
  • Bei weiteren bevorzugten Ausführungsformen können ein oder mehrere Speicherschutzeinrichtungen MPU' vorgesehen sein, um unterschiedliche Ressourcenbereiche, insbesondere Speicherbereiche, der verschiedenen Komponenten der Recheneinrichtung 100c untereinander zu trennen.
  • Bei weiteren bevorzugten Ausführungsformen charakterisiert bzw. repräsentiert bzw. bildet die Supervisor-Instanz SVI eine, insbesondere besonders, vertrauenswürdige Instanz der Recheneinrichtung 100c, bevorzugt einen sog. on-chip Trust- Anchor (TA). Der TA repräsentiert gemäß weiteren bevorzugten Ausführungsformen die Instanz der Recheneinrichtung 100c mit der maximalen Vertrauensstufe, welche gemäß weiteren bevorzugten Ausführungsformen z.B. als „Vertrauenswurzel“ (Root-of-Trust) eines Vertrauensmodells nutzbar ist.
  • Als TA kann gemäß weiteren bevorzugten Ausführungsformen wie schon erwähnt ein dedizierter Rechenkern oder bevorzugt, sofern verfügbar, ein dediziertes Security-/ Kryptographie-Modul, bspw. Hardware Security Module (HSM), Trusted Platform Module (TPM) etc., fungieren.
  • Gemäß weiteren bevorzugten Ausführungsformen kann damit ein sog. „Trust-Anchor (TA)-enforced secure Zone Supervision“-Ansatz realisiert werden, wobei gemäß 24 beispielhaft jeweils ein sekundärer Supervisor-Proxy SVI-sek-1 auf dem bzw. den zu überwachenden Rechenkernen KX und ein primärer Supervisor-Proxy SVI-pri auf dem überwachenden TA SVI, im dargestellten Beispiel in Form eines HSM, vorgesehen ist.
  • Gemäß weiteren bevorzugten Ausführungsformen verfügt der TA SVI über, bevorzugt uneingeschränkten, Zugriff auf flüchtigen Speicher 1004a (22) wie RAM, nichtflüchtigen Speicher 1004b wie Read Only Memory (ROM) oder Flash, One-Time-Pro-grammable(OTP)-Speicher und Special Function Register SFR1, SFR2 (25), insbesondere auch auf ggf. vorhandene Special Function Register der Recheneinrichtung 100c.
  • Das Prinzip gemäß bevorzugten Ausführungsformen lässt sich gemäß weiteren bevorzugten Ausführungsformen z.B. zur Konfiguration und/oder Überwachung von, insbesondere nicht-vertrauenswürdigen und vertrauenswürdigen, (Host-)Zonen Z1 und Z2 sowohl für die vorstehend bereits beschriebene Intra- als auch Inter-Core-Zonen-Separation verwenden.
  • Gemäß weiteren bevorzugten Ausführungsformen können z.B. die nachstehend beispielhaft genannten Supervisor-Funktionalitäten, insbesondere je nach Anwendungsfall, weiter insbesondere beliebig, zwischen dem „Host-Proxy“ SVI-sek-1 dem primären Supervisor-Proxy SVI-pri verschoben werden, wobei insbesondere eine Erhöhung der auf der Seite des primären Supervisor-Proxy SVI-pri realisierten Supervisor-Funktionalitäten in einer, insbesondere signifikanten, Verbesserung der Security resultiert:
    1. 1. Überwachung von Zone Z1 (und optional Zone Z2) auf potenzielle Kompromittierungen und/oder Detektion potenzieller Kompromittierungen von Zone Z1 (und/oder Zone Z2) - kann bevorzugt z.B. erfolgen durch Überwachung von Stack (Stapelspeicher) und/oder Program Counter (Programmzähler) der Zone Z1- (und/oder der Zone Z2), insbesondere vor einer Taskaktivierung eines der jeweiligen Zone Z1, Z2 zugeordneten Tasks, Erkennung von Kompromittierung vor Code-Exekution, die Überwachung kann gemäß weiteren bevorzugten Ausführungsformen optional via kryptographischer Integritäts- und/oder Authentizitätsverifikationen, bspw. Hash, Message Authentication Code (MAC) etc., z.B. von Stack und/oder Program Counter von Host-Z1- (und Host-Z2) erfolgen.
    2. 2. Im Falle einer detektierten Kompromittierung erfolgt gemäß weiteren bevorzugten Ausführungsformen eine Einleitung von wenigstens einer Ersatzreaktion bzw. Fehlerreaktion. Dies kann z.B. erfolgen durch
      • o Versetzung der Zone Z1 (und/oder Zone Z2) in einen sicheren, insbesondere integren Zustand (z.B. via Power-off/on-Reset) oder in einen Fehlermodus,
      • o Generierung eines Log (bzw. Logfile bzw. Fehlerspeicher)-Eintrages. Bei weiteren bevorzugten Ausführungsformen erfolgt zumindest zeitweise eine sichere und/oder verschlüsselte Ablage von Log-Einträgen, insbesondere in einem optionalen dedizierten und exklusiven Speicher SL bevorzugt der Supervisor-Instanz SVI (vgl. 24)
  • Bei weiteren bevorzugten Ausführungsformen ist wenigstens eines der folgenden Elemente vorgesehen: a) Aufbau von authentischem und/oder verschlüsseltem Kommunikationskanal zur Weiterleitung z.B. von Log-Einträgen an wenigstens eine externe Instanz (nicht gezeigt), z.B. ein Intrusion Detection System (IDS), b) Koordination und/oder Orchestrierung (z.B. aufweisend ein Scheduling (Ressourcenplanung)) insbesondere zyklisch oder ereignisbasiert auszuführender Tasks der Zonen Z1, Z2, c) sichere Ablage und/oder Prozessierung einer vorzugsweise statischen Host-Task-Liste in dem dediziertem und exklusiven TA-Speicher SL (24), d) Umschaltung zwischen statischen Konfigurationsdatensätzen („MPU-Sets“), z.B. in Host-MPU-SFRs für Zone Z1 und/oder Zone Z2 Tasks.
  • Bei weiteren bevorzugten Ausführungsformen kann die Supervisor-Funktionalität vollständig auf den TA SVI (24) verlagert werden, wobei insbesondere der privilegierte Modus (Supervisor Mode) den (nicht die Supervisor-Funktionalität realisierenden) Rechenkernen ganz oder zumindest teilweise entzogen werden kann.
  • Bevorzugte Ausführungsformen ermöglichen zumindest zeitweise und/oder teilweise wenigstens manche der nachfolgenden Effekte:
    1. 1. Minimierung der Host-seitigen Supervisor-Funktionalitäten, Reduktion der Angriffsoberfläche (bspw. ausgehend von eine korrumpierten (Host-) Zone Z1),
    2. 2. Auslagerung von Supervision von (Host-) Zone(n) Z1 und/oder (optional) Z2 auf eine insbesondere diesen Zonen Z1, Z2 gegenüber autarke (unabhängige) TA-Instanz SVI, Entkopplung von (Host-)Zonen von deren Überwachung, 3. Simple, sichere und performante kryptographische Erweiterung der Supervision, da z.B. Supervision und kryptographische Primitiven auf gleicher Instanz (TA SVI bzw. HSM) realisiert, kryptographische Integritäts- und/oder Authentizitätsverifikationen von Stack und Program Counter (z.B. der Zonen Z1, Z2), verschlüsselte Ablage von Log-Einträgen in sicherem dedizierten und exklusiven TA-Speicher SL, Aufbau von authentischem und/oder verschlüsseltem Kommunikationskanal z.B. zur Weiterleitung von Log-Einträgen an eine externe Instanz, bspw. ein IDS, 4. Sichere Ablage der statischen Host-Task-Liste in TA-Speicher SL (Integritäts- und/oder Authentizitätsschutz), 5. Zentralisierung von Funktionalität zur Umschaltung von statischen MPU-Sets in Host-MPU-SFRs in TA-seitigem Supervisor-Proxy, Entzug von Funktionalität zur Umschaltung auf Host-Seite, Selbst bei invalider Host-seitiger Eskalation von Privilegien keine Umschaltung möglich.
  • Sofern gemäß weiteren bevorzugten Ausführungsformen der TA SVI eine, insbesondere dedizierte, Memory Protection Unit (MPU) aufweist kann gemäß weiteren bevorzugten Ausführungsformen eine Einführung ergänzender Vertrauensgrenzen respektive Zonen Z3, Z4 auf dem TA SVI erfolgen. Die TAseitigen Zonen Z3, Z4 können bevorzugt mit entsprechend höheren Vertrauensstufen als die Host-seitigen Zonen Z1, Z2 korrelieren. Das beispielhaft in 24 visualisierte exemplarische Vertrauensmodell basiert auf nachstehender Zonen-Architektur in absteigenden Vertrauensstufen:
    • o TA-seitig: Zone Z4 (z.B. maximale Vertrauensstufe)
    • o TA-seitig: Zone Z3
    • o Host-seitig: Zone Z2
    • o Host-seitig: Zone Z1 (z.B. minimale Vertrauensstufe)
  • Bei weiteren bevorzugten Ausführungsformen kann eine integre und/oder authentische Host-MPU-Konfiguration z.B. im Rahmen eines Secure-Boot Mechanismus ebenfalls durch den TA SVI ausgeführt bzw. zumindest zeitweise gesteuert werden.

Claims (25)

  1. Verfahren zum Betreiben einer wenigstens einen Rechenkern (102a, 102b, 102c, ..., 102n; K1, K2, K3, K4; KX) aufweisenden Recheneinrichtung (100; 100a; 100b; 100c), insbesondere für ein eingebettetes System und/oder ein Steuergerät, insbesondere für ein Fahrzeug, insbesondere Kraftfahrzeug, wobei das Verfahren die folgenden Schritte aufweist: Zuordnen (200) von einem oder mehreren durch die Recheneinrichtung (100; 100a; 100b; 100c) ausführbaren Anwendungsprogrammen (AP1, AP2) zu einer von wenigstens zwei Zonen (Z1, Z2), wobei die Zonen (Z1, Z2) Ressourcen der Recheneinrichtung (100; 100a; 100b; 100c) charakterisieren, die für eine Ausführung eines betreffenden Anwendungsprogramms (AP1, AP2) nutzbar sind, optional Ausführen (210) wenigstens eines der Anwendungsprogramme (AP1, AP2) in Abhängigkeit der ihm zugeordneten Zone (Z1, Z2), wobei das Verfahren weiter aufweist: Verwenden (212; 294) eines Supervisors (SV) zum Zuweisen (212a) von Rechenzeitressourcen für unterschiedliche Anwendungsprogramme und/oder Instanzen von Anwendungsprogrammen, wobei der Supervisor (SV) und/oder eine dem Supervisor (SV) entsprechende Funktionalität zumindest teilweise mittels einer Supervisor-Instanz (SVI) realisiert ist, die von den wenigstens zwei Zonen (Z1, Z2) unabhängig ist.
  2. Verfahren nach Anspruch 1, wobei die Recheneinrichtung (100; 100a; 100b; 100c) mehrere Rechenkerne (102a, 102b, 102c, ..., 102n; K1, K2, K3, K4) aufweist, wobei das Verfahren weiter aufweist: a) Zuordnen (220) mindestens eines Rechenkerns (102a, 102b) zu genau einer Zone, und/oder b) Zuordnen (222) mindestens eines Rechenkerns (102a, 102b) zu mehr als einer Zone, insbesondere zu zwei Zonen (Z1, Z2), c) Verwenden (224) wenigstens eines Rechenkerns als Supervisor-Instanz (SVI), insbesondere Verwenden des wenigstens einen Rechenkerns als dedizierte Supervisor-Instanz (SVI), d) Verwenden (225) wenigstens eines Hardware-Sicherheitsmoduls (HSM) und/oder Trusted-Platform-Moduls, TPM, als Supervisor-Instanz (SVI).
  3. Verfahren nach wenigstens einem der vorstehenden Ansprüche, weiter aufweisend: Steuern (230), insbesondere Begrenzen, von wenigstens einem der folgenden Elemente: a) Leserechte auf der Recheneinrichtung (100; 100a; 100b; 100c) zugeordneten Speicher (1030, 1032), b) Schreibrechte auf der Recheneinrichtung (100; 100a; 100b; 100c) zugeordneten Speicher (1030, 1032), c) Ausführungsrechte auf der Recheneinrichtung (100; 100a; 100b; 100c) zugeordneten Speicher (1030, 1032), in Abhängigkeit wenigstens einer Zone (Z1, Z2), insbesondere weiter aufweisend: zumindest zeitweises Verwenden (232; 232') wenigstens einer Speicherschutzeinrichtung (M1, M2, M3, M4, M5_1, M5_2, M5_3, M5_4, M5_5, M5_6, M5_7, M5_8) zum Steuern der Leserechte und/oder der Schreibrechte und/oder der Ausführungsrechte, insbesondere weiter aufweisend: Bereitstellen (231) wenigstens einer dedizierten Speicherschutzeinrichtung (M1) für wenigstens einen Rechenkern (102a), wobei insbesondere für mehrere, vorzugsweise alle, Rechenkerne (102a) jeweils eine dedizierte Speicherschutzeinrichtung bereitgestellt wird.
  4. Verfahren nach wenigstens einem der vorstehenden Ansprüche, wobei wenigstens ein Rechenkern (102a) zumindest zeitweise eine erste Betriebsart einnimmt (240), wobei insbesondere der wenigstens eine Rechenkern (102a) in der ersten Betriebsart Konfigurationsdaten (1036), die einen Betrieb wenigstens einer Speicherschutzeinrichtung steuern, vorgibt und/oder schreibt (242), wobei insbesondere der wenigstens eine Rechenkern (102a) zumindest zeitweise eine zweite Betriebsart einnimmt (243), in der er die Konfigurationsdaten (1036) für die wenigstens eine Speicherschutzeinrichtung nicht schreiben und/oder ändern kann, wobei insbesondere der wenigstens eine Rechenkern (102a) die erste Betriebsart ereignisgesteuert, insbesondere in Abhängigkeit wenigstens einer Unterbrechungsanforderung, einnimmt (240).
  5. Verfahren nach wenigstens einem der vorstehenden Ansprüche , weiter aufweisend wenigstens eines der folgenden Elemente: a) Bereitstellen (250) mehrerer Sätze von Konfigurationsdaten (KD) für die wenigstens eine Speicherschutzeinrichtung (M1, M2, M3, M4, M5_1, M5_2, M5_3, M5_4, M5_5, M5_6, M5_7, M5_8), wobei insbesondere wenigstens ein erster Satz der mehreren Sätze von Konfigurationsdaten (KD) einer ersten Zone (Z1) der wenigstens zwei Zonen (Z1, Z2) und wenigstens ein zweiter Satz der mehreren Sätze von Konfigurationsdaten (KD) einer zweiten Zone (Z2) der wenigstens zwei Zonen (Z1, Z2) zugeordnet (252) wird, b) Bereitstellen (260) einer ersten Instanz (AP1_I1) des Anwendungsprogramms (AP1) und einer zweiten Instanz (AP1_I2) des Anwendungsprogramms (AP1), Zuordnen (262) der ersten Instanz (AP1_I1) des Anwendungsprogramms (AP1) zu einer ersten Zone (Z1) der wenigstens zwei Zonen, Zuordnen (263) der zweiten Instanz (AP1_I2) des Anwendungsprogramms (AP1) zu einer zweiten Zone (Z2) der wenigstens zwei Zonen, c) Trennen (270) von Bereichen eines der Recheneinrichtung (100) zugeordneten Speichers in Abhängigkeit der wenigstens zwei Zonen (Z1, Z2), wobei der der Recheneinrichtung (100) zugeordnete Speicher wenigstens eines der folgenden Elemente aufweist: a) Pufferspeicher, insbesondere in Form von Arbeitsspeicher, b) Stapelspeicher, c) Datenspeicher, d) Programmspeicher, e) Registerspeicher, wobei für das Trennen (270) wenigstens eine Speicherschutzeinrichtung (M1, M2, M3, M4, M5_1, M5_2, M5_3, M5_4, M5_5, M5_6, M5_7, M5_8) verwendet (272) wird. d) Austauschen (280) von ersten Daten zwischen verschiedenen Zonen (Z1, Z2) über einen Pufferspeicher, insbesondere Arbeitsspeicher, wobei insbesondere das Austauschen der ersten Daten zwischen der ersten Zone (Z1) und der zweiten Zone (Z2) folgende Schritte aufweist: d1) Kopieren (282) der ersten Daten in einen der ersten Zone (Z1) zugeordneten ersten Pufferspeicherbereich, d2) Überprüfen (283) der kopierten ersten Daten, und, insbesondere in Abhängigkeit der Überprüfung (283), d3) Kopieren (284) der ersten Daten aus dem der ersten Zone (Z1) zugeordneten ersten Pufferspeicherbereich in einen der zweiten Zone (Z2) zugeordneten zweiten Pufferspeicherbereich, e) Trennen (290) von Rechenzeitressourcen für unterschiedliche Anwendungsprogramme und/oder Instanzen von Anwendungsprogrammen, insbesondere Zuweisen von Rechenzeitressourcen für unterschiedliche Anwendungsprogramme und/oder Instanzen von Anwendungsprogrammen, in Abhängigkeit der wenigstens zwei Zonen (Z1, Z2).
  6. Verfahren nach wenigstens einem der vorstehenden Ansprüche, weiter aufweisend: a) Verwenden (292) eines Betriebssystems (BS) für eingebettete Systeme, insbesondere eines Lightweight Embedded Operating System, zum Zuweisen von Rechenzeitressourcen für unterschiedliche Anwendungsprogramme und/oder Instanzen von Anwendungsprogrammen, wobei insbesondere jeweils einem Rechenkern (102a, 102b) der Recheneinrichtung (100) ein Betriebssystem (BS) zugeordnet ist, und/oder b) Verwenden (294) des Supervisors (SV), wobei der Supervisor (SV) insbesondere ausgebildet ist als Supervisor (SV) für eingebettete Systeme, insbesondere als Lightweight Embedded Supervisor, , wobei insbesondere jeweils einem Rechenkern (102a, 102b) der Recheneinrichtung (100) ein Supervisor (SV) zugeordnet ist.
  7. Verfahren nach Anspruch 6, wobei das Betriebssystem (BS) und/oder der Supervisor (SV) eine Zuweisung von Rechenzeitressourcen, vorzugsweise nur, für vordefinierte Tasks, insbesondere unter Verwendung einer statischen Taskliste, ausführen.
  8. Verfahren nach Anspruch 6, wobei das Betriebssystem (BS) und/oder der Supervisor (SV) eine Zuweisung von Rechenzeitressourcen in Abhängigkeit von a) wiederholten, insbesondere periodisch wiederholten, Unterbrechungsanforderungen und/oder b) ereignisgesteuerten Unterbrechungsanforderungen ausführt, wobei insbesondere Tasks von wenigstens einer Unterbrechungsroutine aus aktiviert werden.
  9. Verfahren nach wenigstens einem der vorstehenden Ansprüche , weiter aufweisend: Überwachen (300), insbesondere mittels eines oder des Betriebssystems (BS) und/oder des Supervisors (SV), wenigstens eines der folgenden Elemente, insbesondere auf eine potentielle Kompromittierung: a) erste Zone (Z1), b) ein der ersten Zone (Z1) zugeordnetes Anwendungsprogramm c) eine der ersten Zone (Z1) zugeordnete Instanz (AP1_I1) eines Anwendungsprogramms (AP1), wobei insbesondere das Überwachen (300) umfasst: Auswerten (302) eines Stapelspeichers und/oder Auswerten (304) eines Programmzählers, wobei vorzugsweise das Auswerten (302) des Stapelspeichers und/oder Auswerten (304) des Programmzählers vor einer Aktivierung des Anwendungsprogramms (AP1) und/oder der Instanz (AP1_I1) des Anwendungsprogramms (AP1) erfolgt.
  10. Verfahren nach Anspruch 9, weiter aufweisend: Einleiten (305) einer Fehlerreaktion, insbesondere dann, wenn das Überwachen (300) auf eine potentielle Kompromittierung schließen lässt, wobei die Fehlerreaktion (305) wenigstens eines der folgenden Elemente aufweist: a) Versetzen der ersten Zone (Z1) und/oder des der ersten Zone (Z1) zugeordneten Rechenkerns in einen sicheren Zustand, insbesondere mittels Deaktivieren (305a) des der ersten Zone (Z1) zugeordneten Rechenkerns und/oder Resetieren (305b) des der ersten Zone (Z1) zugeordneten Rechenkerns und/oder Versetzen (305c) in einen Fehlermodus, b) Erzeugen (305d) eines Fehlereintrags (FE) und/oder c) Weiterleiten 305e eines bzw. des Fehlereintrags an ein Angriffserkennungssystem, insbesondere Intrusion Detection System.
  11. Verfahren nach wenigstens einem der vorstehenden Ansprüche, wobei die Recheneinrichtung (100) zumindest zeitweise einen Kaltstart (310) ausführt, wobei insbesondere während des Kaltstarts (310) Daten und/oder Programmcode aus einem nichtflüchtigen Speicher (1032) geladen werden, und wobei die Recheneinrichtung (100) zumindest zeitweise einen Warmstart (312) ausführt, wobei insbesondere während des Warmstarts (312) Daten und/oder Programmcode aus einem zumindest zeitweise bestromten, flüchtigen Speicher (1030) geladen werden, wobei insbesondere während des Kaltstarts (310) wenigstens eine Speicherschutzeinrichtung (M1, M2, M3, M4, M5_1, M5_2, M5_3, M5_4, M5_5, M5_6, M5_7, M5_8) bzw. die wenigstens eine Speicherschutzeinrichtung (M1, M2, M3, M4, M5_1, M5_2, M5_3, M5_4, M5_5, M5_6, M5_7, M5_8) konfiguriert (311) wird, und/oder wobei insbesondere während des Warmstarts (312) die wenigstens eine Speicherschutzeinrichtung (M1, M2, M3, M4, M5_1, M5_2, M5_3, M5_4, M5_5, M5_6, M5_7, M5_8) konfiguriert (313) wird.
  12. Verfahren nach wenigstens einem der vorstehenden Ansprüche, weiter aufweisend: Steuern (340) eines Zugriffs eines Anwendungsprogramms (AP1) auf wenigstens eines der folgenden Elemente in Abhängigkeit wenigstens einer Zone (Z1): a) interne Schnittstelle, insbesondere Software-Schnittstelle, der Recheneinrichtung (100), b) interne und/oder externe Hardwareschnittstelle der Recheneinrichtung (100), c) Hardware-Sicherheitsmodul (HSM) und/oder Kryptografiemodul zur Ausführung kryptografischer Funktionen, d) Peripheriegeräte der Recheneinrichtung (100), insbesondere Spezialfunktionsregister wenigstens eines Peripheriegeräts, e) interne Schnittstellen eines Zielsystems für die Recheneinrichtung (100), insbesondere eines Steuergeräts, f) externe Schnittstellen eines Zielsystems für die Recheneinrichtung (100), insbesondere eines Steuergeräts, g) Adressierungselemente für Kommunikationsprotokolle, insbesondere auf wenigstens einer Schicht des I SO/OSI-Schichtenmodells.
  13. Verfahren nach wenigstens einem der vorstehenden Ansprüche, weiter aufweisend wenigstens eines der folgenden Elemente: a) Einführen (350) wenigstens einer zusätzlichen, insbesondere nicht bereits existierenden, Zone, b) Verschieben (352) von Funktionalitäten von einem ersten Rechenkern (102a) zu wenigstens einem weiteren Rechenkern (102b) der Recheneinrichtung, c) Ausführen (354) einer Kommunikation zwischen wenigstens zwei Zonen (Z1, Z2) unter Verwendung eines, insbesondere in die Recheneinrichtung (100) integrierten, Arbeitsspeichers (1030), d) Definieren (360) wenigstens einer vertrauenswürdigen Zone (Z2) und, optional, Überwachen (362) wenigstens einer weiteren, insbesondere nicht vertrauenswürdigen, Zone (Z1), durch wenigstens ein der vertrauenswürdigen Zone (Z2) zugeordnetes Anwendungsprogramm.
  14. Verfahren nach wenigstens einem der vorstehenden Ansprüche, weiter aufweisend: a) Bereitstellen (380) eines primären Supervisor-Proxy (SVI-pri) mittels der Supervisor-Instanz (SVI), b) Bereitstellen (382) wenigstens eines sekundären Supervisor-Proxy (SVI-sek-1, SVI-sek-2), wobei insbesondere der wenigstens eine sekundäre Supervisor-Proxy (SVI-sek-1, SVI-sek-2) wenigstens einem Rechenkern (102a, 102b, 102c, ..., 102n; K1, K2, K3, K4) und/oder der wenigstens einen Zone (Z1, Z2) zugeordnet ist.
  15. Verfahren nach Anspruch 14, weiter aufweisend: a) Bereitstellen (385) einer ersten Anzahl von Funktionalitäten (FUN-1) für den Supervisor (SV), b) Zuordnen (386), insbesondere dynamisch, wenigstens einer Supervisor-Funktionalität (SF-1) der ersten Anzahl von Funktionalitäten (FUN-1) zu dem primären Supervisor-Proxy (SVI-pri) und/oder dem wenigstens einen sekundären Supervisor-Proxy (SVI-sek-1), wobei insbesondere das Zuordnen (386) in Abhängigkeit wenigstens eines der folgenden Elemente ausgeführt wird: A) Betriebsgröße der Recheneinrichtung (100; 100a; 100b; 100c), B) Betriebsart der Recheneinrichtung (100; 100a; 100b; 100c), C) Anwendungsfall der Recheneinrichtung (100; 100a; 100b; 100c).
  16. Verfahren nach Anspruch 15, wobei die erste Anzahl von Funktionalitäten (FUN-1) und/oder die wenigstens eine Supervisor-Funktionalität (SF-1) wenigstens eines der folgenden Elemente aufweist: a) Überwachung wenigstens einer Zone (Z1, Z2), insbesondere auf eine potentielle Kompromittierung, b) Detektion einer Kompromittierung wenigstens einer Zone (Z1, Z2), c) Überwachung wenigstens eines mit wenigstens einer Zone (Z1, Z2) assoziierten Stapelspeichers, d) Überwachung wenigstens eines mit wenigstens einer Zone (Z1, Z2) assoziierten Programmzählers, wobei die Überwachung insbesondere vor einer Aktivierung eines Tasks der betreffenden Zone (Z1, Z2) ausgeführt wird, e) Erkennung einer Kompromittierung, insbesondere vor eine Ausführung von ausführbarem Programmcode, f) Verwendung wenigstens eines, insbesondere kryptographischen, Verfahrens, insbesondere zur Authentizitätsverifikation und/oder Integritätsverifikation, insbesondere für eine bzw. die Überwachung eines bzw. des Stapelspeichers und/oder eine bzw. die Überwachung eines bzw. des Programmzählers, wobei das kryptographische Verfahren wenigstens eines der folgenden Elemente aufweist: f1) Hashwertbildung, f2) Bildung eines Message Authentication Code, MAC.
  17. Vorrichtung (100; 100a; 100b; 1000) zur Ausführung des Verfahrens nach wenigstens einem der vorstehenden Ansprüche.
  18. Vorrichtung (100; 100a; 100b; 1000) nach Anspruch 17, aufweisend wenigstens eines der folgenden Elemente: a) eine wenigstens einen Rechenkern (1002a) aufweisende Recheneinrichtung (1002), b) eine Speichereinrichtung (1004), c) einen Datenbus (1006), d) eine Speicherschutzeinrichtung (1002a'), d) ein Hardware-Sicherheitsmodul (HSM; HSM') und/oder Trusted-Platform-Modul, TPM.
  19. Vorrichtung (100; 100a; 100b; 1000) nach wenigstens einem der Ansprüche 17 bis 18, wobei die Vorrichtung (100; 100a; 100b; 1000) ausgebildet ist als ein, insbesondere als ein einziger bzw. einziges, Mikrocontroller bzw. Ein-Chip-System (1).
  20. Vorrichtung (100; 100a; 100b; 1000) nach wenigstens einem der Ansprüche 17 bis 19, wobei die Vorrichtung (100; 100a; 100b; 1000) ein, insbesondere gemeinsames, Halbleitersubstrat (1001) aufweist, wobei wenigstens eines der folgenden Elemente auf dem, insbesondere gemeinsamen, Halbleitersubstrat (1001) angeordnet ist: a) die wenigstens einen Rechenkern (1002a) aufweisende Recheneinrichtung (1002), b) die Speichereinrichtung (1004), c) der Datenbus (1006), d) die Speicherschutzeinrichtung (1002a'), d) das Hardware-Sicherheitsmodul (HSM; HSM') und/oder Trusted-Platform-Modul, TPM.
  21. Mikrocontroller-System (1) oder Ein-Chip-System (1) zur Ausführung des Verfahrens nach wenigstens einem der Ansprüche 1 bis 16, wobei das System (1) eine, insbesondere eine einzige, Vorrichtung (1000) nach wenigstens einem der Ansprüche 17 bis 20 aufweist.
  22. Computerlesbares Speichermedium (SM), umfassend Befehle (PRG), die bei der Ausführung durch einen Computer (1002a) diesen veranlassen, das Verfahren nach wenigstens einem der Ansprüche 1 bis 16 auszuführen.
  23. Computerprogramm (PRG), umfassend Befehle, die bei der Ausführung des Programms durch einen Computer (1002a) diesen veranlassen, das Verfahren nach wenigstens einem der Ansprüche 1 bis 16 auszuführen.
  24. Datenträgersignal (DS), das das Computerprogramm (PRG) nach Anspruch 23 überträgt.
  25. Verwendung des Verfahrens nach wenigstens einem der Ansprüche 1 bis 16 und/oder der Vorrichtung (100; 100a; 100b; 1000) nach wenigstens einem der Ansprüche 17 bis 20 und/oder des Systems (1) nach Anspruch 21 und/oder des Computerprogramms (PRG) nach Anspruch 23 für wenigstens eines der folgenden Elemente: a) Bereitstellen (370) von Vertrauensgrenzen in der Recheneinrichtung (100), insbesondere auch innerhalb eines Rechenkerns (102a) der Recheneinrichtung (100), b) Verringerung (371) einer Angriffsoberfläche für Angriffe auf die Recheneinrichtung (100) und/oder eine ihrer Komponenten, c) Limitierung (372) von Zugriffsrechten auf Speicher, d) Limitierung (373) von Zugriffsrechten auf Peripherie, e) Limitierung (374) von Zugriffsrechten auf Rechenressourcen, e) Minimierung (375) eines Einflusses einer korrumpierten Komponente, f) Betreiben (376) eines Steuergeräts, insbesondere für ein Fahrzeug, insbesondere Kraftfahrzeug, g) Betreiben (377) eines eingebetteten Systems, insbesondere eines Internet-of-Things, loT, -Systems, h) Betreiben (378) eines anwendungsspezifischen integrierten Schaltkreises, ASIC, i) Detektion einer korrumpierten Zone, j) Einleiten einer Fehlerreaktion, insbesondere im Falle einer detektierten Kompromittierung.
DE102019220461.9A 2019-12-20 2019-12-20 Verfahren und Vorrichtung zum Betreiben einer Recheneinrichtung Pending DE102019220461A1 (de)

Priority Applications (6)

Application Number Priority Date Filing Date Title
DE102019220461.9A DE102019220461A1 (de) 2019-12-20 2019-12-20 Verfahren und Vorrichtung zum Betreiben einer Recheneinrichtung
CN202080087688.5A CN114787806A (zh) 2019-12-20 2020-12-16 用于运行计算装置的方法和设备
JP2022537899A JP7392157B2 (ja) 2019-12-20 2020-12-16 コンピューティングデバイスの動作方法及び動作装置
PCT/EP2020/086404 WO2021122734A1 (de) 2019-12-20 2020-12-16 Verfahren und vorrichtung zum betreiben einer recheneinrichtung
EP20833782.4A EP4078415A1 (de) 2019-12-20 2020-12-16 Verfahren und vorrichtung zum betreiben einer recheneinrichtung
US17/785,163 US20230021594A1 (en) 2019-12-20 2020-12-16 Method and device for operating a computing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019220461.9A DE102019220461A1 (de) 2019-12-20 2019-12-20 Verfahren und Vorrichtung zum Betreiben einer Recheneinrichtung

Publications (1)

Publication Number Publication Date
DE102019220461A1 true DE102019220461A1 (de) 2021-06-24

Family

ID=74106017

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019220461.9A Pending DE102019220461A1 (de) 2019-12-20 2019-12-20 Verfahren und Vorrichtung zum Betreiben einer Recheneinrichtung

Country Status (6)

Country Link
US (1) US20230021594A1 (de)
EP (1) EP4078415A1 (de)
JP (1) JP7392157B2 (de)
CN (1) CN114787806A (de)
DE (1) DE102019220461A1 (de)
WO (1) WO2021122734A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021104153A1 (de) 2021-02-22 2022-08-25 Bayerische Motoren Werke Aktiengesellschaft Steuervorrichtung, telematiksteuergerät und verfahren
WO2024028134A1 (de) * 2022-08-01 2024-02-08 Robert Bosch Gmbh Verfahren und vorrichtung zum verarbeiten von mit einem hardware-sicherheitsmodul assoziierten daten

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030084196A1 (en) * 2001-11-01 2003-05-01 Chang Cheng Tsung Message passing method for computer system
JP2015067107A (ja) 2013-09-30 2015-04-13 日立オートモティブシステムズ株式会社 車両用制御装置
DE102014201682A1 (de) * 2014-01-30 2015-07-30 Robert Bosch Gmbh Verfahren zur Koexistenz von Software mit verschiedenen Sicherheitsstufen in einem Multicore-Prozessorsystem
WO2017056725A1 (ja) 2015-09-30 2017-04-06 日立オートモティブシステムズ株式会社 車載制御装置
JP6761793B2 (ja) 2017-10-13 2020-09-30 日立オートモティブシステムズ株式会社 車両用制御装置
JP6973120B2 (ja) 2018-01-26 2021-11-24 住友電気工業株式会社 なりすまし検出装置、検出方法、およびコンピュータプログラム
DE102022204716A1 (de) * 2022-05-13 2023-11-16 Robert Bosch Gesellschaft mit beschränkter Haftung Rechnersystem zur bereitstellung einer mehrzahl von funktionen für eine vorrichtung, insbesondere für ein fahrzeug, mittels separation einer mehrzahl von zonen

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
Agesen, O. et al: The Evolution of an x86 Virtual Machine MonitorACM SIGOPS Operating Systems Review, December 2010 <https://doi.org/10.1145/1899928.1899930> *
Eivind Næss et al.: Configurable Middleware-Level Intrusion Detection for Embedded Systems. In: Proceedings of the 25th IEEE International Conference on Distributed Computing Systems Workshops (ICDCSW’05), 2005. *
Gansel, S. et al.: Towards Virtualization Concepts for NovelAutomotive HMI Systems. In: IESS 2013. IFIP Advances in Information and Communication Technology, vol 403. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-38853-8_18 *
Heiser, G.: The Role of Virtualization in Embedded Systems. In: Proceedings of the First Workshop on Isolation and Integration in Embedded Systems (IIES’08) April 1, 2008, Glasgow, UK *
VMWare White Paper: Understanding Full Virtualization, Paravirtualization, and Hardware Assist. Revision 20070911.March 2011, 2008.<https://www.vmware.com/techpapers/2007/understanding-full-virtualization-paravirtualizat-1008.html> *
Xiaosheng Wang et al.: A Trusted Computing Architecture of Embedded System Based on Improved TPM. In: MATEC Web of Conferences 139, 00151 (2017). DOI: 10.1051/matecconf/201713900151 *
Zhonghua Gu et al.: A State-of-the-Art Survey on Real-Time Issues in Embedded Systems Virtualization. In: Journal ofSoftware Engineering and Applications, 2012, 5, 277-290http://dx.doi.org/10.4236/isea.2012.54033 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021104153A1 (de) 2021-02-22 2022-08-25 Bayerische Motoren Werke Aktiengesellschaft Steuervorrichtung, telematiksteuergerät und verfahren
WO2024028134A1 (de) * 2022-08-01 2024-02-08 Robert Bosch Gmbh Verfahren und vorrichtung zum verarbeiten von mit einem hardware-sicherheitsmodul assoziierten daten

Also Published As

Publication number Publication date
EP4078415A1 (de) 2022-10-26
JP7392157B2 (ja) 2023-12-05
JP2023508913A (ja) 2023-03-06
US20230021594A1 (en) 2023-01-26
WO2021122734A1 (de) 2021-06-24
CN114787806A (zh) 2022-07-22

Similar Documents

Publication Publication Date Title
DE102019216462A1 (de) Verfahren und Vorrichtung zum Betreiben einer Recheneinrichtung
DE112015004555B4 (de) Verarbeiten eines Gast-Ereignisses in einem von einem Hypervisor gesteuerten System
EP3437012B1 (de) Verfahren, prozessor und gerät zur integritätsprüfung von nutzerdaten
DE112018007217B4 (de) Sicherheitseinrichtung mit einer Angriffs-Detektionseinrichtung und einer Sicherheitsrisikozustand-Bestimmungseinrichtung und eingebettete Einrichtung hierfür
DE102012105068A1 (de) Beschleunigungseinrichtung mit Unterstützung für virtuelle Maschinen
DE102019220461A1 (de) Verfahren und Vorrichtung zum Betreiben einer Recheneinrichtung
DE102023202297A1 (de) Wahrung der vertraulichkeit von mandanten in einer cloud-umgebung beim einsatz von sicherheitsdiensten
EP3928463A1 (de) Verfahren für das konfigurieren eines sicherheitsmoduls mit mindestens einem abgeleiteten schlüssel
EP3655876B1 (de) Ein-chip-system, verfahren zum betrieb eines ein-chip-systems und kraftfahrzeug
DE102018214301B4 (de) Vorrichtung und System mit einem Vertrauensanker
DE602004002241T2 (de) Schutz eines auf ausführungwartenden Programms in einem Speicher für einen Mikroprozessor
EP3819804A1 (de) Integritätsüberprüfung eines registerinhalts
EP4154139B1 (de) Erweiterte integritätsüberwachung eines containerabbildes
DE102021110768B3 (de) Forensik-Modul und eingebettetes System
EP4290397A1 (de) Verfahren und system zur bereitstellung von steuerungsanwendungen
EP3690690B1 (de) Verfahren zum prüfen einer validität von daten und computerimplementierte vorrichtung zum verarbeiten von daten
EP4170490A1 (de) Priorisieren eines zugriffs von einer containerinstanz auf eine datei in einer dateisystemressource
WO2023156175A1 (de) Containerlaufzeitumgebung mit verteilten überwachungsaufgaben und minimalen privilegien
WO2023036672A1 (de) Ausführen von privilegierten operationen in einem container
DE102020103314A1 (de) Verfahren zum Aktualisieren von Software und Knoten eines Netzwerkes
WO2023094181A1 (de) Verfahren und vorrichtung zur autorisierung einer einen zugang anfragenden applikation
WO2024088790A1 (de) Verfahren und system zur umgebungs-abhängigen sicherheitsbezogenen anomalieerkennung für eine containerinstanz
DE102022207910A1 (de) Verfahren und Vorrichtung zum Verarbeiten von mit einem Hardware-Sicherheitsmodul assoziierten Daten
EP4187423A1 (de) Durchsetzung von integritätsbedingungen einer ersten container-basierten anwendung
EP1105798A1 (de) Verfahren, anordnung sowie ein satz mehrerer anordnungen zum schutz mehrerer programme und/oder mehrerer dateien vor einem unbefugten zugriff durch einen prozess

Legal Events

Date Code Title Description
R163 Identified publications notified