DE102015002191A1 - Sicherheits-Hypervisor-Funktion - Google Patents

Sicherheits-Hypervisor-Funktion Download PDF

Info

Publication number
DE102015002191A1
DE102015002191A1 DE102015002191.5A DE102015002191A DE102015002191A1 DE 102015002191 A1 DE102015002191 A1 DE 102015002191A1 DE 102015002191 A DE102015002191 A DE 102015002191A DE 102015002191 A1 DE102015002191 A1 DE 102015002191A1
Authority
DE
Germany
Prior art keywords
security
bus
cpu
mpu
security code
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
DE102015002191.5A
Other languages
English (en)
Inventor
Simon Brewerton
Glenn Ashley Farrall
Richard Knight
Neil S. Hastie
Frank Hellwig
Antonio Vilela
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102015002191A1 publication Critical patent/DE102015002191A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

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

Abstract

Die Erfindung bezieht sich auf Systeme und Verfahren zum Definieren einer Prozessor-Sicherheitsprivilegierungsstufe für das Steuern eines verteilten Speicherzugriff-Schutzsystems. Genauer gesagt weist eine Sicherheits-Hypervisor-Funktion für das Zugreifen auf einen Bus in einem Computerverarbeitungssystem ein Modul, wie etwa eine Computerverarbeitungseinheit (CPU; Computer Processing Unit) oder einen direkten Speicherzugriff (DMA, Direct Memory Access), für das Zugreifen auf einen Systemspeicher sowie eine Speichereinheit für das Speichern eines Sicherheitscodes, wie etwa ein Prozessorstatuswort (PSW) oder ein Konfigurationsregister (DMA (REG)), auf. Das Modul ordnet den Sicherheitscode einer Verarbeitungstransaktion zu und der Sicherheitscode ist bei dem Zugriff auf den Bus durch das Modul sichtbar.

Description

  • Die Erfindung bezieht sich auf Verfahren und Systeme für Sicherheitsfunktionen für Mikrocontroller. Genauer gesagt bezieht sich die Erfindung auf Verfahren und Systeme zum Definieren einer Prozessor-Sicherheitsprivilegierungsstufe für das Steuern eines verteilten Speicherzugriff-Schutzsystems.
  • Moderne elektronische Steuergeräte (ECUs, electronic control units) für den Automobilbereich integrieren weiterhin eine ständig steigende Anzahl von Funktionalität. Dieser Trend wird auf der einen Seite von der Technologieskalierung, die einen hohen Grad an Integration ermöglicht, als auch von der in hohem Maße kostengesteuerten Natur der Automobilindustrie vorangetrieben, die die Reduzierung der Gesamtanzahl an ECUs pro Auto erzwingt. Die Elektronik spielt eine zunehmende Rolle bei der Bereitstellung von hochentwickelten Fahrassistenzfunktionen und insbesondere bei der Verhinderung von Gefährdungen, was die Anzahl an tödlichen Verletzungen reduzieren wird.
  • Die Integration von Funktionen innerhalb eines ECU konzentriert sich hauptsächlich um einen sicheren Mikrocontroller, der durch die Unterbringung von kritischen Erfassungs-, Berechnungs- und Steuerfunktionen eine zentrale Rolle spielt. Der Sicherheitsstandard ISO 26262 bietet eine Möglichkeit, die Kritikalität der an einer Sicherheitsanwendung beteiligten Software näher zu bestimmen. In einem ersten Schritt durch eine Gefährdungs- und Risikoanalyse hindurch wird jede Funktion eingestuft. Dies führt zu einem Automotive Safety Integrity Level (ASIL) bzw. Automobil-Sicherheits-Integritätslevel für jedes Sicherheitsziel. Als Folge davon gibt es einen komplexen Satz von heterogenen Softwarekomponenten, die miteinander interagieren, um die geplante Funktionalität und Integrität bereitzustellen.
  • Die Privilegierungsstufen, die in herkömmlichen eingebetteten bzw. integrierten Prozessoren zu finden sind, sind nicht mehr länger ausreichend, um die Softwarekapselungsanforderungen zu erfüllen, die zu dem Sicherheitsstandard ISO 26262 gehören. Außerdem sollten die Softwarekapselungsanforderungen nicht auf die Ausführung von Software innerhalb einer CPU beschränkt sein, sondern sie sollten alle Ressourcen innerhalb eines Mikrocontrollers ansprechen. Das Nichtvorhandensein der geeigneten Hardware- und Software-Infrastruktur für die Unterstützung dieser Softwarekapselungsanforderungen erfordert den Aufbau von ziemlich komplexen Virtualisierungsschichten auf der Softwareebene, was wiederum eine unglaublich komplexe Softwarearchitektur erfordert und einen beträchtlichen Teil der CPU-Leistung verbraucht. Als Folge davon machen es diese Nachteile schwierig, den Grad an Integration zu erreichen, der von dem Standard ISO 26262 erwartet wird, und sie können ein limitierender Faktor für die Verwendung der möglichen Softwareintegrationsfähigkeiten von modernen CPUs sein.
  • Einige herkömmliche Mikrocontroller haben versucht, virtuelle Schichten in Software zu implementieren, so dass der Zugriff auf jegliche Ressource von einer vertrauenswürdigen Softwareschicht kontrolliert bzw. gesteuert wird, bevor dieser zu den dedizierten Hardware-Ressourcen gesendet wird. Aber eine solche Software ist sehr von der Hardware-Plattform abhängig und erzeugt einen großen System-Engpass, da die Anzahl an Software-Tasks (Software-Aufgaben) zunimmt.
  • Deshalb besteht ein Bedarf an einem System und einem Verfahren für eine Sicherheits-Hypervisor-Funktion, die sowohl in der Hardware als auch in der Software aktiviert ist. Genauer gesagt besteht ein Bedarf an einer neuen Privilegierungsschicht, die für jede Task (Aufgabe) spezifiziert werden kann, die in einem Mikrocontroller ausgeführt wird.
  • Die Erfindung löst diese bzw. weitere Aufgaben durch die Gegenstände der unabhängigen Ansprüche. Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
  • In Übereinstimmung mit einem Aspekt der Erfindung weist ein System für eine Sicherheits-Hypervisor-Funktion für das Zugreifen auf einen Bus in einem Computerverarbeitungssystem (Computer Processing System) ein Modul für das Zugreifen auf einen Systemspeicher sowie eine Speichereinheit für das Speichern eines Sicherheitscodes auf. Das Modul ordnet den Sicherheitscode einer Verarbeitungstransaktion zu und der Sicherheitscode ist bei dem Zugriff auf den Bus durch das Modul sichtbar.
  • In einer Ausführungsform weist ein System für eine Sicherheits-Hypervisor-Funktion in einem Computersystem eine CPU-Speicherschutzeinheit (CPU-MPU (Memory Protection Unit)) für das Schützen des Zugriffs auf die CPU und auf lokale Speicher, eine Bus-Speicherschutzeinheit (Bus-MPU) für das Schützen des Zugriffs auf einen Prozessorbus und eine Register-Speicherschutzeinheit (Register-MPU) für das Schützen des Zugriffs auf ein oder mehrere Peripheriegeräte in dem System auf, wobei eine Sicherheitsprivilegierungsstufe von der CPU-MPU, der Bus-MPU und der Register-MPU verwendet wird, um den Zugriff auf die jeweiligen Einrichtungen zu bestimmen. In einer Ausführungsform befindet sich die Sicherheitsprivilegierungsstufe in dem Prozessorstatuswort und kann entweder ein Sicherheitsbit oder ein Sicherheitscode sein. Die Sicherheitsprivilegierungsstufe kann auch konfiguriert werden, wenn das System entworfen wird, und kann von dem Betriebssystem dynamisch zugeordnet werden. Die Sicherheitsprivilegierungsstufe beschränkt den Zugriff auf Transaktionen, die auf dem Chip ausgeführt werden.
  • In Übereinstimmung mit einem anderen Aspekt der Erfindung umfasst ein Verfahren zum Durchführen einer Sicherheits-Hypervisor-Funktion in einem Computersystem die Schritte des Konfigurierens von statischen Attributen für eine Software-Task, des Zuordnens der Task zu einer der CPUs und des Konfigurierens jeder Bus-Speicherschutzeinheit und jedes Registerschutzes, die von der Task benötigt werden. In einer Ausführungsform umfasst das Verfahren des Weiteren die Schritte des Zuweisens einer neuen Prozessor-Sicherheitsprivilegierungsstufe zu der Task, des Verwendens der statischen Attribute während der Laufzeit, um Hardware-Ressourcen einzustellen, und des Definierens des internen Datenflusses.
  • Gemäß einem Aspekt wird ein System bereitgestellt für eine Sicherheits-Hypervisor-Funktion für das Zugreifen auf einen Bus in einem Computerverarbeitungssystem, wobei das System Folgendes aufweist:
    ein Modul für das Zugreifen auf einen Systemspeicher; und
    eine Speichereinheit für das Speichern eines Sicherheitscodes; wobei das Modul den Sicherheitscode einer Verarbeitungstransaktion zuordnet und wobei der Sicherheitscode beim Zugriff auf den Bus durch das Modul sichtbar ist.
  • Vorteilhaft ist das Modul eine Computerverarbeitungseinheit (CPU; Computer Processing Unit).
  • Vorteilhaft ist das Modul ein direkter Speicherzugriff (DMA, Direct Memory Access).
  • Vorteilhaft weist das System des Weiteren ein Prozessorstatuswort (PSW) für das Speichern des Sicherheitscodes für die CPU auf.
  • Vorteilhaft wird der Sicherheitscode einer Task unter Verwendung des PSW zugeordnet.
  • Vorteilhaft weist das System des Weiteren ein Konfigurationsregister für das Speichern des Sicherheitscodes für den DMA auf.
  • Vorteilhaft wird der Sicherheitscode einer DMA-Kanal-Transaktion zugeordnet.
  • Gemäß einem Aspekt wird ein System bereitgestellt für eine Sicherheits-Hypervisor-Funktion, wobei das System Folgendes aufweist:
    eine CPU-Speicherschutzeinheit (CPU-MPU (Memory Protection Unit)) für das Schützen des Zugriffs auf die CPU und auf lokale Speicher;
    eine Bus-Speicherschutzeinheit (Bus-MPU) für das Schützen des Zugriffs auf einen Prozessorbus; und
    eine Register-Speicherschutzeinheit (Register-MPU) für das Schützen des Zugriffs auf ein oder mehrere Peripheriegeräte) in dem System, wobei eine Sicherheitsprivilegierungsstufe von der CPU-MPU, der Bus-MPU und der Register-MPU verwendet wird, um den Zugriff auf die jeweiligen Einrichtungen zu bestimmen.
  • Vorteilhaft befindet sich die Sicherheitsprivilegierungsstufe in dem Prozessorstatuswort.
  • Vorteilhaft ist die Sicherheitsprivilegierungsstufe ein Sicherheitsbit.
  • Vorteilhaft ist die Sicherheitsprivilegierungsstufe ein Sicherheitscode.
  • Vorteilhaft wird die Sicherheitsprivilegierungsstufe zur Designzeit des Systems konfiguriert.
  • Vorteilhaft ordnet das Betriebssystem die Sicherheitsprivilegierungsstufe den CPU-Hardwarestrukturen dynamisch zu.
  • Gemäß einem Aspekt wird ein Verfahren bereitgestellt für eine Sicherheits-Hypervisor-Funktion für das Bereitstellen einer Sicherheitsprivilegierungsstufe in einem verteilten Speicherzugriff-Schutzsystem, wobei das System eine Vielzahl von CPUs aufweist, wobei das Verfahren die folgenden Schritte umfasst:
    Konfigurieren von statischen Attributen für eine Software-Task;
    Zuordnen der Task zu einer der CPUs; und
    Konfigurieren jeder Bus-Speicherschutzeinheit und jedes Registerschutzes, die von der Task benötigt werden.
  • Vorteilhaft wird die Sicherheitsprivilegierungsstufe zur Designzeit konfiguriert.
  • Vorteilhaft weist das Verfahren des Weiteren die folgenden Schritte auf:
    Zuweisen einer neuen Prozessor-Sicherheitsprivilegierungsstufe zu der Task;
    Verwenden der statischen Attribute während der Laufzeit, um Hardware-Ressourcen einzustellen; und
    Definieren des internen Datenflusses.
  • Vorteilhaft umfasst das Verfahren des Weiteren den Schritt, dass das Betriebssystem die Sicherheitsprivilegierungsstufe dynamisch Hardwarestrukturen der CPU zuordnet.
  • Vorteilhaft umfasst das Verfahren des Weiteren den Schritt des Propagierens (Verbreitens) der Sicherheitsprivilegierungsstufe zu den auf dem Chip ausgeführten Transaktionen initiiert durch die Task-Lade/Speicher-Befehle.
  • Vorteilhaft umfasst das Verfahren des Weiteren den Schritt des Verwendens der Sicherheitsprivilegierungsstufe für das Blockieren von auf dem Chip ausgeführten Transaktionen.
  • Weitere Merkmale, Aspekte und Vorteile der vorliegenden Erfindung werden aus der folgenden ausführlichen Beschreibung der Erfindung, die unter Bezugnahme auf die beigefügten Zeichnungen vorgenommen wird, deutlich werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die beigefügten Zeichnungen sind enthalten, um ein weiteres Verständnis der vorliegenden Erfindung bereitzustellen, und sie sind in die vorliegende Patentspezifikation integriert und bilden einen Teil davon. Die Zeichnungen veranschaulichen Ausführungsformen der vorliegenden Erfindung, und zusammen mit der Beschreibung dienen sie dazu, die Prinzipien der Erfindung zu erläutern. Andere Ausführungsformen der vorliegenden Erfindung und viele der beabsichtigten Vorteile der vorliegenden Erfindung werden ohne weiteres klar werden, wenn sie durch Bezugnahme auf die folgende ausführliche Beschreibung besser verstanden werden.
  • 1 zeigt ein exemplarisches schematisches Diagramm einer Sicherheits-Hypervisor-Funktion in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung.
  • 2 ist ein Ablaufdiagramm, das ein Verfahren zum Durchführen einer Sicherheits-Hypervisor-Funktion in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung zeigt.
  • 3 ist ein Ablaufdiagramm, das ein Verfahren zum Durchführen einer Sicherheits-Hypervisor-Funktion in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung zeigt.
  • 4 ist ein Ablaufdiagramm, das ein Verfahren zum Durchführen einer Sicherheits-Hypervisor-Funktion in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung zeigt.
  • 5 ist ein exemplarisches schematisches Diagramm einer anderen Ausführungsform einer Sicherheits-Hypervisor-Funktion für einen direkten Speicherzugriff (DMA, Direct Memory Access).
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • In der nachfolgenden ausführlichen Beschreibung wird Bezug auf die beigefügten Zeichnungen genommen, die einen Teil davon bilden und in denen durch Veranschaulichung spezifische Ausführungsformen gezeigt sind, in denen die Erfindung praktiziert werden kann. Es soll klar sein, dass andere Ausführungsformen verwendet werden können und dass strukturelle oder andere Änderungen vorgenommen werden können, ohne dass von dem Schutzumfang der vorliegenden Erfindung abgewichen wird. Die nachfolgende ausführliche Beschreibung soll daher nicht in einem beschränkenden Sinne betrachtet werden, und der Schutzumfang der vorliegenden Erfindung ist durch die angehängten Ansprüche definiert.
  • 1 ist ein exemplarisches schematisches Diagramm einer Hardware- und Software-gestützten Sicherheits-Hypervisor-Funktion 100 in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung. Die vorliegende Erfindung stellt ein verteiltes Speicherzugriff-Schutzsystem bereit, das von einer neuen Prozessor-Sicherheitsprivilegierungsstufe gesteuert wird. Die Sicherheits-Hypervisor-Funktion 100 umfasst eine CPU 102, lokale Programmspeicher 104, lokale Datenspeicher 106, einen Prozessorbus 108, einen Peripheriegerätebus 110 und eine Vielzahl von Peripheriegeräten 112.
  • Die CPU 102 weist des Weiteren ein Prozessorstatuswort (PSW) 120 auf. In einer Ausführungsform enthält das PSW 120 die statischen Task-Eigenschaften, die für eine Laufzeitausführung relevant sind. Typischerweise können sowohl Informationen, die die Benutzer-/Supervisor-Privilegierungsstufen betreffen, als auch die Speicherschutzkonfiguration in dem PSW gefunden werden. In einer Ausführungsform der vorliegenden Erfindung ist das PSW um ein neues Informationsfeld 122 erweitert, das eine Sicherheitsprivilegierungsstufe enthält. In einer Ausführungsform kann die Sicherheitsprivilegierungsstufe ein Sicherheitsbit sein. In einer anderen Ausführungsform kann die Sicherheitsprivilegierungsstufe ein Code sein, der Sicherheitseigenschaften identifiziert, die von dem Rest der CPU-Architektur unterstützt werden.
  • Die vorliegende Erfindung sieht drei verschiedene Arten von Speicherschutzeinheiten vor: 1) auf der CPU-Ebene (CPU-MPU) 124, 2) auf der Busebene (Bus-MPU) 126 und 3) auf der Registerebene (Register-MPU) 128. Die CPU-MPU 124 wird direkt von der CPU auf der Basis der CPU-MPU-Eigenschaften auf der Task-Ebene in dem PSW 120 gehandhabt bzw. gesteuert, um die Zugriffe auf die eng miteinander gekoppelten Speicher zu überwachen. Wenn eine Task Zugriffe auf einen Bus durchführt, dann wird eine Codierung der Sicherheitsprivilegierungsstufe (je nach der Implementierung können die nativen Informationen gesendet werden) als eine neue Eigenschaft der Bustransaktion gesendet. Dies kann erreicht werden, indem das Busprotokoll erweitert wird oder indem einige Seitenbandinformationen mit einer Zeitsteuerung, die mit der Busprotokollphase konform ist, dort hinzugefügt werden, wo die Informationen verwendet werden.
  • An dem Ziel prüft die Bus-MPU 126 oder die Register-MPU 128 die Konformität der Sicherheitsprivilegierungsstufencodierung mit ihrer privaten Konfiguration. Die private Konfiguration ist der spezielle Sicherheitscode oder die spezielle Sicherheitskennung für das Zugreifen auf die bestimmte Einrichtung. Eine mögliche Codierung kann wie folgt erzielt werden: in einem Multi-Master-Bussystem hat jeder Master eine eindeutige statische Kennung. Die Sicherheitsprivilegierungsstufe könnte verwendet werden, um eine alternative Kennung auszuwählen. Dann würde an einem Ziel die private Konfiguration der Bus- oder Register-MPU aus der Fähigkeit bestehen, eine oder mehrere Master-Kennungen) konfigurieren zu können, der bzw. denen Zugriff auf die geschützten Ressourcen gewährt werden wird. Auf der MPU-Ebene kann die Schutzgranularität jedes von Nur-Lese-(Read-Only)-Attributen, Nur-Schreib-(Write-Only)-Attributen oder Lese-/Schreib-(Read/Write)-Attributen oder einer Untergruppe davon in Abhängigkeit von den Bedürfnissen der Architektur spezifizieren.
  • Wie in 1 zu sehen ist, wird die Sicherheitsprivilegierungsstufe auch verwendet, wenn eine Software, die auf der CPU läuft, ihre eigenen Register konfigurieren muss. In einer anderen Ausführungsform kann die vorliegende Erfindung die neue Sicherheitsprivilegierungsstufe als eine neue Schutzschicht für den Schutz ihrer eigenen kritischen Register in Abhängigkeit von dem Supervisor-Modus verwenden.
  • In einer anderen Ausführungsform sind die Register-MPU 128 und die Bus-MPU 126 unabhängig von dem Betriebssystem, um potentielle systematische bzw. systemabhängige Fehler zu erfassen, die während der Konfiguration des Systems entstehen können, was typischerweise ein extrem komplexer Prozess ist, oder die der Betriebssystemsoftware selbst inhärent sind. In solchen Situationen kontrolliert bzw. steuert das Betriebssystem die CPU-MPU 124, wobei alle anderen MPUs unabhängig von dem Betriebssystem konfiguriert werden. Eine Betriebssystem-Funktionsstörung während einer CPU-MPU-Rekonfiguration könnte es ermöglichen, dass eine Software in Standardqualität heimlich, still und leise sicherheitsbezogene Ressourcen korrumpiert bzw. beschädigt. So könnte zum Beispiel eine QM-Software aufgrund von einigen nicht spezifizierten Eingaben nicht richtig funktionieren und willkürlich versuchen, auf einen sicherheitsrelevanten Speicherbereich zuzugreifen. In diesem Fall würde die unabhängige Bus-MPU-Konfiguration erkennen, dass die Task nicht die vorgesehene Sicherheitsprivilegierungsstufe propagiert, und würde den Zugriff verweigern. Infolgedessen ermöglicht es die Kombination aus der Sicherheitsprivilegierungsstufe und ihrer Handhabung durch die Hardwareeinheiten der vorliegenden Erfindung, vorteilhafterweise einen chipinternen Hypervisor aufzubauen, der die neuen Forderungen im Hinblick auf die Rückwirkungsfreiheit auf den Software- und Hardwareebenen erfüllt.
  • 2 ist ein Ablaufdiagramm, das ein Verfahren 200 zum Durchführen einer Sicherheits-Hypervisor-Funktion in einem verteilten Speicherzugriff-Schutzsystem zeigt. Aus Gründen der Klarheit wird das Verfahren 200 zum Durchführen einer Sicherheits-Hypervisor-Funktion in dem Kontext des Systems 100 beschrieben. Aber in alternativen Ausführungsformen können auch andere Konfigurationen verwendet werden. Darüber hinaus können andere Ausführungsformen die hier beschriebenen Schritte in anderen Reihenfolgen durchführen und/oder können andere Ausführungsformen zusätzliche und/oder andere Schritte als die hier beschriebenen durchführen. Im Schritt 202 wird die statische Konfiguration der Software-Task durchgeführt. Diese statische Software-Task-Konfiguration wird unten unter Bezugnahme auf 3 noch genauer beschrieben werden. Dann werden die Tasks im Schritt 204 verschiedenen CPUs zugeordnet. Diese Zuordnung wird unten noch ausführlicher unter Bezugnahme auf 3 beschrieben werden. Schließlich wird im Schritt 206 auf der Basis der Informationen von der statischen Konfiguration und der Task-Zuordnung jede Bus-Speicherschutzeinheit (MPU) und jeder Registerschutz konfiguriert.
  • 3 ist ein Ablaufdiagramm, das ein Verfahren 300 für eine statische Konfiguration einer Software-Task zeigt. Die statische Software-Task-Konfiguration ist der erste Schritt bei der Durchführung einer Sicherheits-Hypervisor-Funktion. Im Schritt 302 werden statische Attribute für jede Task bereitgestellt. In einer bevorzugten Ausführungsform weist das Betriebssystem jeder Task diese Attribute zu. Im Schritt 304 wird jeder Task eine neue Prozessor-Sicherheitsprivilegierungsstufe zugewiesen. Während dieser Phase wird jeder Task auch das Benutzer-/Supervisor-Attribut zusätzlich zu der neuen Prozessor-Sicherheitsprivilegierungsstufe gegeben. Im Schritt 306 werden die statischen Attribute während der Laufzeit verwendet, um Hardware-Ressourcen einzustellen. Schließlich werden im Schritt 308 alle Informationen über die Speicher- und Codebereiche, die von jeder Task verwendet werden, definiert.
  • 4 ist ein Ablaufdiagramm, das ein Verfahren für die CPU-Zuordnung für die unterschiedlichen Tasks zeigt. Im Schritt 402 werden Speicherbereiche und Peripheriegeräte, auf die von jeder CPU für eine bestimmte Task zugegriffen werden können muss, identifiziert. Im Schritt 404 werden diese Informationen verwendet, um alle internen Datenflüsse zu definieren.
  • Infolgedessen sieht die Sicherheits-Hypervisor-Funktion der vorliegenden Erfindung vorteilhafterweise eine neue Prozessorarchitekturverbesserung durch eine neue Prozessor-Sicherheitsprivilegierungsstufe vor, um höhere Schutzniveaus zu unterstützen, um so eine Störungsfreiheit zwischen heterogenen Softwarekomponenten mit unterschiedlichen Sicherheits-Integritätsleveln zu garantieren. Diese Prozessor-Sicherheitsprivilegierungsstufe ist unabhängig von der traditionellen Task-Kennung, die typischerweise in CPU-Architekturen zu finden ist. Die Task-ID kann zum Beispiel von dem Betriebssystem dort verwendet werden, wo die Sicherheitsprivilegierungsstufe nicht von dem Betriebssystem verwendet wird, da sie die Überwachung des Betriebssystems selbst ermöglicht (innerhalb eines vorhandenen Funktionsumfangs). Mit anderen Worten, die vorliegende Erfindung ermöglicht vorteilhafterweise auch eine unabhängige Überwachung der dynamischen Betriebssystem-Speicherschutz-Zuordnung und gewährleistet daher auch die angestrebte Rückwirkungsfreiheit auf der Hardwareebene.
  • Darüber hinaus stellt die vorliegende Erfindung vorteilhafterweise ein skalierbares Konzept bereit, das eine kostengünstige Implementierung durch die Skalierbarkeit der Sicherheitsprivilegierungsstufe, bei der die Schutzniveaus konfiguriert werden können, ermöglicht. Die Sicherheitsprivilegierungsstufe kann zum Beispiel so spezifiziert werden, dass sie zwischen einer ASIL-Software oder einer Nicht-ASIL-Software oder zwischen einer ASIL-D-Software oder einer anderen Software unterscheidet. Andere Implementierungen des Konzepts können es ermöglichen, dass eine ASIL-D-, ASIL-C-, ASIL-A- und QM-Software durch die Verwendung von mehr Hardware-Ressourcen identifiziert werden können.
  • Obwohl die obige Beschreibung und die damit in Beziehung stehenden Figuren ein Sicherheits-Hypervisor-System in dem Kontext einer CPU beschreiben, wird es einem Fachmann auf dem Gebiet klar sein, dass die vorliegende Erfindung auch auf andere Computersystemmodule verallgemeinert werden kann, die als ein Master auf einen gegebenen Bus zugreifen können. Mit anderen Worten, ein allgemeines System für eine Sicherheits-Hypervisor-Funktion für das Zugreifen auf einen Bus in einem Computersystem weist ein Modul für das Zugreifen auf einen Systemspeicher sowie eine Speichereinheit für das Speichern eines Sicherheitscodes auf, wobei das Modul den Sicherheitscode der Verarbeitungstransaktion zuordnet und wobei der Sicherheitscode beim Zugriff auf den Bus durch das Modul sichtbar ist. Infolgedessen kann das Modul in einer anderen Ausführungsform der vorliegenden Erfindung einen direkten Speicherzugriff bzw. Direct Memory Access (DMA) und ein Konfigurationsregister für das Speichern des Sicherheitscodes für den DMA aufweisen. In einer Ausführungsform kann der Sicherheitscode einer DMA-Kanal-Transaktion zugeordnet werden.
  • 5 ist ein exemplarisches schematisches Diagramm einer anderen Ausführungsform der vorliegenden Erfindung 500, die einen direkten Speicherzugriff (DMA, Direct Memory Access) und ein Konfigurationsregister für das Speichern des Sicherheitscodes für den DMA aufweist. Die DMA-Sicherheits-Hypervisor-Funktion 500 weist einen DMA 502, einen SPB-Bus 510, eine SRI 512, ein SRAM 514 und eine SRI-MPU 516 auf. Der DMA 502 weist des Weiteren mindestens eine Move Engine (ME) 520, einen HW-Partitionsmanager 522 und ein HW-Trigger-Priorisierungs- und -Dispatch(Abfertigung, Auswahl)-Modul 524 auf. Eine ME 520 wird (entsprechend Prioritätsparametern, etc. ...) dynamisch zugeordnet, um einen gegebenen DMA-Kanal zu verarbeiten, der mit einem gegebenen HW-Trigger assoziiert ist. Der HW-Partitionsmanager 522 ermöglicht und steuert, welche ID von einer DMA Move Engine 520 für einen gegebenen DMA-Kanal während einer Bustransaktion verwendet werden wird. Eine Transaktion im SPB 510 und in der SRI 512 wird von einer ID identifiziert, und jede Move Engine 520 hat eine eindeutige ID. Die SRI-Speicherschutzeinheit (SRI-MPU) ist so konfiguriert, dass nur vorgegebene DMA-Kanäle in den SRAM-Bereich 0 schreiben können und dass nur andere vorgegebene DMA-Kanäle in den SRAM-Bereich 1 schreiben können. Andere Master oder eine andere Software können bzw. kann nur aus dem Bereich 1 und dem Bereich 2 auslesen.
  • Obwohl hier spezifische Ausführungsformen veranschaulicht und beschrieben worden sind, wird es den Durchschnittsfachleuten auf dem Gebiet klar sein, dass eine Ersetzung durch eine Vielfalt von alternativen und/oder äquivalenten Implementierungen für die gezeigten und beschriebenen spezifischen Ausführungsformen vorgenommen werden kann, ohne dass von dem Schutzumfang der vorliegenden Erfindung abgewichen wird. Die vorliegende Patentanmeldung soll alle Anpassungen oder Variationen der spezifischen Ausführungsformen, die hier erörtert worden sind, abdecken. Deshalb soll die vorliegende Erfindung nur durch die Ansprüche und deren Äquivalente beschränkt sein.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • Sicherheitsstandard ISO 26262 [0003]
    • Sicherheitsstandard ISO 26262 [0004]
    • Standard ISO 26262 [0004]

Claims (10)

  1. System für eine Sicherheits-Hypervisor-Funktion für das Zugreifen auf einen Bus in einem Computerverarbeitungssystem, wobei das System Folgendes aufweist: ein Modul für das Zugreifen auf einen Systemspeicher; und eine Speichereinheit für das Speichern eines Sicherheitscodes; wobei das Modul den Sicherheitscode einer Verarbeitungstransaktion zuordnet und wobei der Sicherheitscode beim Zugriff auf den Bus durch das Modul sichtbar ist.
  2. System nach Anspruch 1, wobei das Modul eine Computerverarbeitungseinheit (CPU; Computer Processing Unit) ist.
  3. System nach Anspruch 1, wobei das Modul ein direkter Speicherzugriff (DMA, Direct Memory Access) ist.
  4. System nach Anspruch 1, das des Weiteren ein Prozessorstatuswort (PSW) für das Speichern des Sicherheitscodes für die CPU aufweist.
  5. System nach Anspruch 4, wobei der Sicherheitscode einer Task unter Verwendung des PSW zugeordnet wird.
  6. System nach Anspruch 1, das des Weiteren ein Konfigurationsregister für das Speichern des Sicherheitscodes für den DMA aufweist.
  7. System nach Anspruch 6, wobei der Sicherheitscode einer DMA-Kanal-Transaktion zugeordnet wird.
  8. System für eine Sicherheits-Hypervisor-Funktion, wobei das System Folgendes aufweist: eine CPU-Speicherschutzeinheit (CPU-MPU (Memory Protection Unit)) für das Schützen des Zugriffs auf die CPU und auf lokale Speicher; eine Bus-Speicherschutzeinheit (Bus-MPU) für das Schützen des Zugriffs auf einen Prozessorbus; und eine Register-Speicherschutzeinheit (Register-MPU) für das Schützen des Zugriffs auf ein oder mehrere Peripheriegeräte) in dem System, wobei eine Sicherheitsprivilegierungsstufe von der CPU-MPU, der Bus-MPU und der Register-MPU verwendet wird, um den Zugriff auf die jeweiligen Einrichtungen zu bestimmen.
  9. Verfahren für eine Sicherheits-Hypervisor-Funktion für das Bereitstellen einer Sicherheitsprivilegierungsstufe in einem verteilten Speicherzugriff-Schutzsystem, wobei das System eine Vielzahl von CPUs aufweist, wobei das Verfahren die folgenden Schritte umfasst: Konfigurieren von statischen Attributen für eine Software-Task; Zuordnen der Task zu einer der CPUs; und Konfigurieren jeder Bus-Speicherschutzeinheit und jedes Registerschutzes, die von der Task benötigt werden.
  10. Verfahren nach Anspruch 9, wobei die Sicherheitsprivilegierungsstufe zur Designzeit konfiguriert wird.
DE102015002191.5A 2014-02-21 2015-02-19 Sicherheits-Hypervisor-Funktion Pending DE102015002191A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201461942801P 2014-02-21 2014-02-21
US61/942,801 2014-02-21
US14/206,033 2014-03-12
US14/206,033 US9836318B2 (en) 2014-02-21 2014-03-12 Safety hypervisor function

Publications (1)

Publication Number Publication Date
DE102015002191A1 true DE102015002191A1 (de) 2015-08-27

Family

ID=53782544

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015002191.5A Pending DE102015002191A1 (de) 2014-02-21 2015-02-19 Sicherheits-Hypervisor-Funktion

Country Status (3)

Country Link
US (2) US9836318B2 (de)
CN (1) CN104866762B (de)
DE (1) DE102015002191A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019101671A1 (de) * 2017-11-21 2019-05-31 Audi Ag Ein-chip-system für ein fahrzeug

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015518605A (ja) 2012-04-09 2015-07-02 ダナ ベルジャン エヌ.ブイ. 安全アプリケーションのための機能アーキテクチャパターン
US9363087B2 (en) * 2014-10-02 2016-06-07 Microsoft Technology Licensing, Inc. End-to-end security for hardware running verified software
DE102015210539A1 (de) * 2015-06-09 2016-12-15 Robert Bosch Gmbh Speicherschutzeinheit, Speicherverwaltungseinheit und Mikrocontroller
US10552368B2 (en) 2015-09-30 2020-02-04 Hitachi Automotive Systems, Ltd. In-vehicle control device
US9984009B2 (en) * 2016-01-28 2018-05-29 Silicon Laboratories Inc. Dynamic containerized system memory protection for low-energy MCUs
US10482289B2 (en) * 2017-08-24 2019-11-19 Qualcomm Incorporated Computing device to provide access control to a hardware resource
US11656905B2 (en) * 2019-08-09 2023-05-23 Arm Limited Delegation control based on program privilege level and page privilege level
CN114902223A (zh) * 2020-01-14 2022-08-12 华为技术有限公司 安全隔离方法、装置以及计算机系统
KR20220125897A (ko) * 2021-03-05 2022-09-15 삼성전자주식회사 시스템 온 칩 및 시스템 온 칩에 포함된 연결 버스
US12013931B2 (en) * 2021-12-14 2024-06-18 Texas Instruments Incorporated Method and system for freedom from interference (FFI)
GB2624257A (en) * 2022-11-08 2024-05-15 Cirrus Logic Int Semiconductor Ltd Systems and methods for access protection of system peripherals

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3858182A (en) * 1972-10-10 1974-12-31 Digital Equipment Corp Computer program protection means
US4589066A (en) * 1984-05-31 1986-05-13 General Electric Company Fault tolerant, frame synchronization for multiple processor systems
US5237609A (en) * 1989-03-31 1993-08-17 Mitsubishi Denki Kabushiki Kaisha Portable secure semiconductor memory device
KR100505106B1 (ko) * 2002-05-29 2005-07-29 삼성전자주식회사 강화된 보안 기능을 갖춘 스마트 카드
CN1203402C (zh) 2003-02-21 2005-05-25 中国航天科技集团公司第九研究院七七一研究所 一种16位微处理器的系统结构
US7434264B2 (en) * 2003-03-07 2008-10-07 Freescale Semiconductor, Inc. Data processing system with peripheral access protection and method therefor
JP2005050208A (ja) 2003-07-30 2005-02-24 Matsushita Electric Ind Co Ltd マルチタスクシステムにおけるメモリ管理方式およびタスク制御装置
US7882317B2 (en) * 2004-12-06 2011-02-01 Microsoft Corporation Process isolation using protection domains
JP2008524740A (ja) * 2004-12-21 2008-07-10 エヌエックスピー ビー ヴィ 装置のセキュリティを改良した集積回路
CA2551433C (en) * 2005-06-30 2012-10-02 Hitachi, Ltd. Sending device, receiving device, communication control device, communication system, and communication control method
JP2009523280A (ja) * 2006-01-13 2009-06-18 フリースケール セミコンダクター インコーポレイテッド プロテクションシステム及びその動作方法
US8595487B2 (en) * 2006-11-01 2013-11-26 Vmware, Inc. Virtualization hardware for device driver isolation
CN101535956A (zh) * 2006-11-02 2009-09-16 日本电气株式会社 多处理器系统、多处理器系统中的系统构成方法及其程序
US8479173B2 (en) * 2008-07-09 2013-07-02 International Business Machines Corporation Efficient and self-balancing verification of multi-threaded microprocessors
US8307353B2 (en) * 2008-08-12 2012-11-06 Oracle America, Inc. Cross-domain inlining in a system virtual machine
US8904064B2 (en) * 2008-10-24 2014-12-02 International Business Machines Corporation Managing an out-of-order asynchronous heterogeneous remote direct memory access (RDMA) message queue
US8738932B2 (en) * 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
US8381004B2 (en) * 2010-05-26 2013-02-19 International Business Machines Corporation Optimizing energy consumption and application performance in a multi-core multi-threaded processor system
JP5813554B2 (ja) * 2012-03-30 2015-11-17 ルネサスエレクトロニクス株式会社 半導体装置
US9170956B2 (en) * 2013-02-07 2015-10-27 Texas Instruments Incorporated System and method for virtual hardware memory protection
US9530000B2 (en) * 2013-06-14 2016-12-27 Microsoft Technology Licensing, Llc Secure privilege level execution and access protection
US9117080B2 (en) * 2013-07-05 2015-08-25 Bitdefender IPR Management Ltd. Process evaluation for malware detection in virtual machines

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Sicherheitsstandard ISO 26262
Standard ISO 26262

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019101671A1 (de) * 2017-11-21 2019-05-31 Audi Ag Ein-chip-system für ein fahrzeug
US11244082B2 (en) 2017-11-21 2022-02-08 Audi Ag One-chip system for a vehicle

Also Published As

Publication number Publication date
US20150242233A1 (en) 2015-08-27
US10592270B2 (en) 2020-03-17
CN104866762A (zh) 2015-08-26
US9836318B2 (en) 2017-12-05
CN104866762B (zh) 2018-12-18
US20180039508A1 (en) 2018-02-08

Similar Documents

Publication Publication Date Title
DE102015002191A1 (de) Sicherheits-Hypervisor-Funktion
DE102013104328B4 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE102013022405B3 (de) Schutz globaler Register in einem Multithreaded-Prozessor
DE3856030T2 (de) Vorrichtung und Verfahren zur Durchführung von änderbarer Betriebsmittelaufteilung in einem Datenverarbeitungssystem mit zentralen Datenverarbeitungseinheiten mit verschiedenen Betriebssystemen
DE112011102115B4 (de) Transparente Steigerung von Energieeinsparungen in einer Energieverbrauchs-Steuerungsumgebung
DE112012005209T5 (de) Brückenfunktion zwischen Virtual Machine Monitor und Bare-Metal-Bootvorgang
DE112007001714T5 (de) Virtualisieren von Leistungszählern
DE112007002201T5 (de) Quality-of-Service-Implementierung für Plattformressourcen
DE102018209205A1 (de) Datenspeicher mit intelligentem Speicher oder Ladeverfahren und -vorrichtung
WO2013110736A1 (de) Speichercontroller zur bereitstellung mehrerer definierter bereiche eines massenspeichermediums als unabhängige massenspeicher an einen master-betriebssystem - kern zur exklusiven bereitstellung an virutelle maschinen
DE112011101929T5 (de) Aktivieren der Steuerung eines Hypervisor in einer Cloud-Datenverarbeitungsumgebung
DE102014002181B4 (de) Chip und Verfahren zum Betreiben eines Chips
DE102016203808A1 (de) Verringern der Bevorrechtigung virtueller Maschinen in einer virtualisierten Umgebung
DE112014002754T5 (de) Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus
DE102016220639A1 (de) Speicherschutzeinheit und Verfahren zum Schützen eines Speicheradressraumes
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
DE102021127324A1 (de) Planung von aufträgen auf grafischen verarbeitungseinheiten
DE112016007336T5 (de) Informationsverarbeitungsvorrichtung, Vorrichtungszuweisungsverfahren undVorrichtungszuweisungsprogramm
DE112016005868T5 (de) Starten von Anwendungsprozessoren einer virtuellen Maschine
DE102022129936A1 (de) Techniken zur Erweiterung des Systemspeichers durch Nutzung des verfügbaren Gerätespeichers
DE102018114322A1 (de) Architektur und Dienste zur Unterstützung der rekonfigurierbaren Synchronisation in einem Multiprozessorsystem
DE112011100854B4 (de) Schnelle Datenfernübertragung und Fernberechnung zwischen Prozessoren
DE112017008307T5 (de) Systeme und verfahren zur effizienten unterbrechung von virtuellen maschinen
DE102015210539A1 (de) Speicherschutzeinheit, Speicherverwaltungseinheit und Mikrocontroller
DE102013016114B3 (de) Bussystem und Verfahren für geschützte Speicherzugriffe

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: VIERING, JENTSCHURA & PARTNER MBB PATENT- UND , DE

R016 Response to examination communication