-
Die vorliegende Erfindung betrifft ein Verfahren zum Starten einer Speichereinheit einer Recheneinheit sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.
-
Hintergrund der Erfindung
-
Recheneinheiten wie etwa Steuergeräte, Mikroprozessoren oder Mikrocontroller in (Kraft-) Fahrzeugen können eine Prozessoreinheit mit einem oder mehreren Prozessorkernen sowie eine Vielzahl von Speichereinheiten aufweisen, z.B. lokale Speicher wie Cache-Speicher, Register oder RAM-Speicher, sowie ferner z.B. globale Speicher wie Flash-, NOR-Flash, RAM-Speicher usw. Die Speichereinheiten und Prozessorkerne können über ein Kommunikationssystem in datenübertragender Verbindung stehen, z.B. über ein Bussystem (Crossbar) oder Direktverbindungen (NoC, Network on Chip).
-
Beim Starten bzw. Hochfahren derartiger Recheneinheiten ist es von Bedeutung, einen Schutz der Speichereinheiten gewährleisten zu können, so dass es nicht zu Angriffen, Manipulationen oder anderen unberechtigten Zugriffen auf die Speichereinheiten kommen kann, bevor etwaige Schutzmechanischem initialisiert sind.
-
Offenbarung der Erfindung
-
Erfindungsgemäß werden ein Verfahren zum Starten einer Speichereinheit einer Recheneinheit sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
-
Die Recheneinheit umfasst die Speichereinheit und wenigstens einen Prozessorkern, wobei der wenigstens eine Prozessorkern und die Speichereinheit jeweils mittels eines Kommunikationssystems datenübertragend verbunden sind, z.B. über ein Bussystem (Crossbar) oder Direktverbindungen (NoC, Network on Chip). Über das Kommunikationssystem wird ein Datenaustausch zwischen den Prozessorkernen und der Speichereinheit ermöglicht. Es versteht sich, dass die Recheneinheit ferner noch weitere Komponenten aufweisen kann, z.B. weitere Speichereinheiten, Peripheriegeräte usw., welche zweckmäßigerweise an das Kommunikationssystem angebunden sein können.
-
Eine untergeordnete bzw. lokale Speicherschutzeinheit (engl.: „Memory Protection Unit“, MPU) ist zwischen die Speichereinheit und das Kommunikationssystem geschaltet. Diese Speicherschutzeinheit ist insbesondere direkt mit der Speichereinheit verbunden und ist zweckmäßigerweise vorgesehen, um fehlerhafte Zugriffe auf die Speichereinheit detektieren zu können. Ferner kann die Speicherschutzeinheit zum (Zugriffs-) Schutz der Speichereinheit vorgesehen sein, insbesondere um Zugriffe bzw. Zugriffsanforderungen von den Prozessorkernen oder weiteren Komponenten der Recheneinheit auf die Speichereinheit zu überwachen und zu überprüfen und nötigenfalls zu unterbinden.
-
Eine übergeordnete bzw. globale Speicherschutzeinheit (MPU) ist mit dem Kommunikationssystem verbunden. Diese übergeordnete Speicherschutzeinheit ist insbesondere als eine separate, eigenständige Komponente der Recheneinheit an das Kommunikationssystem angebunden. Insbesondere steht die übergeordnete Speicherschutzeinheit mit der Speichereinheit und der untergeordneten Speicherschutzeinheit indirekt über das Kommunikationssystem in Verbindung. Die übergeordnete Speicherschutzeinheit kann insbesondere vorgesehen sein, um die untergeordnete Speicherschutzeinheit und gegebenenfalls weitere untergeordnete Speicherschutzeinheit zu überwachen bzw. zu überprüfen.
-
Speicherschutzeinheiten (MPU) und deren Funktionsweisen sind an sich bekannt und werden beispielsweise in der
US 8 949 551 B2 erläutert.
-
Die Erfindung stellt nun eine Möglichkeit bereit, um einen Schutz der Speichereinheit zu gewährleisten, während die Speichereinheit und ferner insbesondere die einzelnen Speicherschutzeinheiten bzw. die gesamte Recheneinheit gestartet bzw. hochgefahren werden.
-
Im Zuge des Startens der Speichereinheit erfolgt zunächst ein Initialisieren bzw. Starten der übergeordneten Speicherschutzeinheit. Die übergeordnete Speicherschutzeinheit wird somit als erste, am Schutz der Speichereinheit beteiligte Komponente der Recheneinheit gestartet.
-
Nach dem Initialisieren der übergeordneten Speicherschutzeinheit erfolgt ein Sperren der übergeordneten Speicherschutzeinheit. Nach dem Sperren ist es insbesondere nur speziellen, autorisierten Hardware- und/oder Software-Komponenten der Recheneinheit erlaubt, auf die gesperrte übergeordnete Speicherschutzeinheit zuzugreifen. Beispielsweise kann das Sperren erfolgen, indem die übergeordnete Speicherschutzeinheit nur vorbestimmten, als sicher erachteten Modulen zugewiesen wird, z.B. nur als sicher erachteten Prozessorkernen. Zweckmäßigerweise können dann nur diese sicheren Module auf die übergeordnete Speicherschutzeinheit zugreifen und Zugriffe von anderen Modulen können verhindert werden. Die übergeordnete Speicherschutzeinheit kann dann als gesperrt betrachtet werden. Zweckmäßigerweise erfolgt der (Zugriffs-) Schutz in der Recheneinheit nun zunächst durch die gesperrte, übergeordnete Speicherschutzeinheit, bis die restlichen Komponenten der Recheneinheit initialisiert sind.
-
Nach dem Sperren der übergeordneten Speicherschutzeinheit erfolgt ein Verifizieren bzw. Überprüfen der übergeordneten Speichereinheit. Zweckmäßigerweise können ein Status, ein Zustand, Einstellungen usw. der übergeordneten Speichereinheit überprüft werden. Insbesondere wird im Zuge dessen überprüft, ob es zu einem Angriff oder einer unerlaubten Veränderung der übergeordneten Speichereinheit gekommen ist. Sofern dies nicht der Fall ist und der korrekte Zustand der übergeordneten Speicherschutzeinheit verifiziert werden kann, kann der Startvorgang der Recheneinheit fortgesetzt werden. Falls im Zuge der Überprüfung der korrekte Zustand der übergeordneten Speicherschutzeinheit jedoch nicht verifiziert werden kann, was auf einen potentiellen Angriff auf die übergeordnete Speichereinheit hindeutet, kann zweckmäßigerweise eine vorgegebene Schutzmaßnahme durchgeführt werden, beispielsweise kann die Recheneinheit in einen sicheren Zustand überführt werden.
-
Nach dem Verifizieren der übergeordneten Speichereinheit erfolgt ein Initialisieren bzw. Starten der untergeordneten Speicherschutzeinheit. Die initialisierte untergeordnete Speicherschutzeinheit kann nun durch die bereits initialisierte, gesperrte und verifizierte übergeordnete Speicherschutzeinheit überwacht werden, um die untergeordneten Speicherschutzeinheit vor unerlaubten Zugriffen zu schützen.
-
Nach dem Initialisieren der untergeordneten Speicherschutzeinheit erfolgt ein Initialisieren bzw. Starten der Speichereinheit. Mit der über- und der untergeordneten Speicherschutzeinheit sind dabei besonders zweckmäßig bereits diejenigen Komponenten der Recheneinheit in Kraft, welche zum Schutz der Speichereinheit vorgesehen sind.
-
Die vorliegende Erfindung ermöglicht es, die Speichereinheit und insbesondere die gesamte Recheneinheit auf sicherere, geschützte Weise starten zu können und die Gefahr von Angriffen, Manipulation bzw. unerlaubten Zugriffen auf die Speichereinheit während des Startens zu reduzieren oder minimieren. Durch das Verfahren können insbesondere eine funktionale Sicherheit bzw. eine Betriebssicherheit (engl. „safety“) gewährleistet werden, also insbesondere ein korrekter Betrieb der Recheneinheit, sowie ferner insbesondere eine informationstechnische Sicherheit bzw. Informationssicherheit (engl. „security“), also ein Zugriffsschutz, so dass nicht unberechtigt auf Daten bzw. Informationen der Recheneinheit zugegriffen werden kann. Ausfallsicherheit, Störungsfreiheit und Integrität können erhöht werden.
-
Besonders zweckmäßig können durch den speziellen Ablauf der einzelnen Verfahrensschritte Angriffspunkte für unerlaubte Zugriffe möglichst minimiert werden.
-
Dadurch, dass zunächst mit der übergeordneten Speicherschutzeinheit eine hohe oder höchste Speicherschutzinstanz in der Recheneinheit initialisiert wird, kann durch diese übergeordnete, globale Speichereinheit der (Zugriffs-) Schutz während des restlichen Startprozesses erfolgen. Da ferner die Speichereinheit als letzte Einheit erst dann initialisiert wird, wenn bereits sämtliche Schutzinstanzen in der Recheneinheit aktiviert sind, kann verhindert werden, dass unerlaubte Zugriffe auf die Speichereinheit erfolgen, ohne dass diese erkannt werden können.
-
Der Erfindung liegt somit die Erkenntnis zugrunde, jede Speichereinheit, Peripherieeinheit usw. erst dann zu initialisieren, wenn eine zugehörige Speicherschutzstufe bzw. Speicherschutzeinheit initialisiert ist. Um eine Manipulation einer derartigen zuvor initialisierten Speicherschutzeinheit zu verhindern, werden zweckmäßigerweise hierarchisch übergeordnete Speicherschutzeinheiten jeweils zuerst initialisiert. Die Initialisierung der einzelnen Speicherschutzeinheiten erfolgt somit besonders zweckmäßig gemäß ihrer Hierarchiereihenfolge. Sofern die übergeordnete Speicherschutzeinheit, welche insbesondere die höchste Hierarchieebene darstellt, verifiziert wurde, bevor untergeordnete Speicherschutzeinheiten initialisiert wurden, kann insbesondere davon ausgegangen werden, dass diese untergeordneten Speicherschutzeinheiten korrekt initialisiert wurden. Eine zusätzliche Verifikation aller Speicherschutzeinheiten wird daher insbesondere nicht benötigt.
-
Auf herkömmliche Weise können Speichereinheiten oftmals initialisiert werden, bevor entsprechende Speicherschutzeinheiten initialisiert werden. In derartigen Fällen ist es oftmals nötig, als letzten Schritt des Startens eine Verifizierung bzw. Überprüfung der Speichereinheit bzw. des Inhalts der Speichereinheit durchzuführen, um zu verifizieren, dass der Speicherinhalt im Zuge des Startprozesses nicht unerlaubt verändert wurde. So kann beispielsweise auf herkömmliche Weise oftmals zu Beginn die Speichereinheit selbst initialisiert werden, bevor die untergeordnete Speicherschutzeinheit und die übergeordnete Speicherschutzeinheit initialisiert werden. In einem derartigen Fall erfolgt ferner eine Verifizierung der übergeordneten Speicherschutzeinheit, der untergeordneten Speicherschutzeinheit und der Speichereinheit. Ferner kann auf herkömmliche Weise oftmals auch zunächst die untergeordnete Speicherschutzeinheit initialisiert werden, bevor die Speichereinheit und die übergeordnete Speicherschutzeinheit initialisiert werden. Auch in einem derartigen Fall erfolgt ferner eine Verifizierung der übergeordneten Speicherschutzeinheit, der untergeordneten Speicherschutzeinheit und der Speichereinheit. Ferner besteht beispielsweise die Gefahr, dass in dem Zeitfenster, während die Speichereinheit initialisiert ist, aber noch kein Speicherschutz aktiv ist, der Inhalt der Speichereinheit ungeschützt gelesen werden kann, weswegen zusätzliche Gegenmaßnahmen zum Gewährleisten der Informationssicherheit („security“) notwendig sein können.
-
Im Gegensatz dazu wird im Rahmen der Erfindung nur eine Verifizierung der hieratisch zuerst initialisierten, übergeordneten Speicherschutzeinheit durchgeführt. Eine Verifizierung bzw. Überprüfung weiterer Einheiten, insbesondere der untergeordneten Speicherschutzeinheit und der Speichereinheit, ist insbesondere nicht notwendig, da durch die zu Beginn initialisierte, gesperrte und verifizierte übergeordnete, globale Speicherschutzeinheit unerlaubte Zugriffe zuverlässig erkannt und unterbunden werden können. Somit können Rechen- und Zeitaufwand eingespart werden, so dass das Starten der Speichereinheit bzw. das Hochfahren der Recheneinheit ressourcenschonend, effizient und aufwandsarm erfolgen kann.
-
Durch Verifizieren der übergeordneten Speicherschutzeinheit kann ferner ein Angriffsszenario verhindert werden, bei welchem ein Angreifer der Prozessoreinheit bzw. einer sicheren Applikation den Zugriff auf die Top-Level MPU bzw. die hierarchisch höchste Speicherschutzeinheit entzieht. In einem derartigen Fall kann eine Aufforderung der Prozessoreinheit zur Initialisierung der übergeordneten Speicherschutzeinheit ignoriert werden und der Angreifer kann die übergeordnete Speicherschutzeinheit manipulieren. Auch eine Aufforderung der Prozessoreinheit zur Initialisierung der untergeordneten Speicherschutzeinheit kann ignoriert werden und der Angreifer kann auch die untergeordnete Speicherschutzeinheit manipulieren. Der Angreifer kann dann Einstellungen der übergeordneten Speicherschutzeinheit derart ändern, dass diese Einstellungen Werten entsprechen, welche die Prozessoreinheit erwartet. Überprüft die Prozessoreinheit dann die Einstellungen der übergeordneten Speicherschutzeinheit, sind diese wie erwartet und die Prozessoreinheit erkennt keine Manipulation, obwohl die Einstellungen aller Speicherschutzeinheiten korrumpiert wurden. Durch das sofortige Verifizieren der übergeordneten Speicherschutzeinheit nach deren Initialisierung und Sperrung können derartige Angriffe und Manipulationen zweckmäßigerweise verhindert werden.
-
Die übergeordnete Speicherschutzeinheit kann beispielsweise einmalig beschreibbar sein. Nach einem einmaligen Zugriff auf die übergeordnete Speicherschutzeinheit ist diese automatisch gesperrt. Ferner kann die übergeordnete Speicherschutzeinheit beispielsweise auch mehrfach beschreibbar sein. In diesem Fall kann die übergeordnete Speicherschutzeinheit z.B. einem Modul zugewiesen werden, welches mehrfach auf die übergeordnete Speicherschutzeinheit zugreifen darf. Die übergeordnete Speicherschutzeinheit kann durch das zugewiesene Modul manuell gesperrt werden. Beispielsweise kann diese Zuweisung auch nachträglich noch verändert werden. In diesem Fall ist es besonders von Bedeutung, die Verifikation der übergeordneten Speicherschutzeinheit vorzunehmen, bevor weitere Speicherschutzeinheiten initialisiert werden, um Manipulation und Angriffe erkennen oder verhindern zu können.
-
Es versteht sich, dass zwischen den einzelnen erfindungsgemäßen Schritten jeweils noch weitere Prozesse oder Schritte im Zuge des Startens der Recheneinheit erfolgen können, z.B. können jeweils noch weitere Komponenten der Recheneinheit initialisiert bzw. gestartet werden. Durch die zu Beginn initialisierte und gesperrte übergeordnete, globale Speicherschutzeinheit kann auch während derartiger weiterer Prozesse ein (Zugriffs-) Schutz durch die übergeordnete Speicherschutzeinheit erfolgen.
-
Ferner versteht sich, dass die Recheneinheit noch weitere Speichereinheiten aufweisen kann, welche jeweils mit dem Kommunikationssystem datenübertragend verbunden sind. Insbesondere kann für einzelne oder alle dieser weiteren Speichereinheiten jeweils eine individuelle, untergeordnete bzw. lokale Speicherschutzeinheit vorgesehen sein, welche zwischen die jeweilige Speichereinheit und das Kommunikationssystem geschaltet ist. Zweckmäßigerweise kann zum Starten der einzelnen Speichereinheiten bzw. der Recheneinheit wie obig erläutert zunächst die übergeordnete Speicherschutzeinheit initialisiert und gesperrt werden, bevor die ein Initialisieren der einzelnen untergeordneten Speicherschutzeinheiten und ein Initialisieren der einzelnen Speichereinheit erfolgt. Beispielsweise können die einzelnen untergeordneten Speicherschutz- und Speichereinheiten in einer vorgegebenen Reihenfolge oder auch gemäß zugewiesenen Prioritäten erfolgen. Anschließend erfolgt die Verifizierung der übergeordneten Speichereinheit. Eine Verifizierung der weiteren untergeordneten Speicherschutz- und Speichereinheiten ist insbesondere nicht notwendig.
-
Vorteilhafterweise ist die übergeordnete Speicherschutzeinheit nach deren Initialisierung und Sperre selbstgeschützt. Insbesondere ist die gesperrte übergeordnete Speicherschutzeinheit von sich heraus gegen Angriffe und unberechtigte Zugriffe geschützt. Zweckmäßigerweise kann die übergeordnete Speicherschutzeinheit Zugriffe bzw. Zugriffsanforderungen an sie selbst überwachen. Insbesondere eignet sich die übergeordnete Speicherschutzeinheit daher besonders, um während des Hochfahrens der Recheneinheit weitere Komponenten zu überwachen.
-
Vorzugsweise kann die Sperre der übergeordneten Speicherschutzeinheit nur durch einen Neustart oder einen Reset der Recheneinheit aufgehoben werden. Die übergeordnete Speicherschutzeinheit kann somit nur einmal pro Betriebszyklus der Recheneinheit initialisiert werden. Zweckmäßigerweise kann somit erreicht werden, dass keine Komponente im laufenden Betrieb der Recheneinheit unberechtigt einen Neustart der übergeordneten Speicherschutzeinheit erzwingen kann. Somit kann beispielsweise unterbunden werden, dass die übergeordnete Speicherschutzeinheit während des regulären Betriebs der Recheneinheit neu gestartet oder neu initialisiert wird, wodurch eine Sicherheitslücke und eine potentielle Angriffsfläche geschaffen werden könnte.
-
Bevorzugt dürfen nur vorgegebene bzw. spezielle Software- und/oder Hardware-Komponenten der Recheneinheit, insbesondere nur vorgegebene (Software-) Anwendungen, auf die gesperrte übergeordnete Speicherschutzeinheit zugreifen. Insbesondere ist es nur als sicher erachteten Komponenten erlaubt, auf die übergeordnete Speicherschutzeinheit zuzugreifen. Sämtliche anderen Zugriffsanforderungen werden von der übergeordneten Speicherschutzeinheit zweckmäßigerweise abgeblockt. Besonders zweckmäßig kann es nur Kernelanwendungen erlaubt sein, auf die gesperrte übergeordnete Speicherschutzeinheit zugreifen.
-
Vorzugsweise überwacht die initialisierte untergeordnete Speicherschutzeinheit Zugriffe bzw. Zugriffsanforderungen auf die Speichereinheit. Zweckmäßigerweise kann die untergeordnete Speicherschutzeinheit entsprechende angeforderte Zugriffe zulassen oder zurückweisen. Ferner ist es auch denkbar, dass jeweils eine untergeordnete Speicherschutzeinheit zwischen einzelne oder alle Prozessorkerne und das Kommunikationssystem geschaltet ist. Durch derartige Speicherschutzeinheit können Zugriffsanforderungen von Prozessorkernen an die Speichereinheit bereits überprüft und gegebenenfalls blockiert werden, bevor diese an das Kommunikationssystem weitergeleitet werden.
-
Bevorzugt überwacht die initialisierte und gesperrte übergeordnete Speicherschutzeinheit nach ihrer Verifizierung die untergeordnete Speicherschutzeinheit. Insbesondere kann die übergeordnete Speicherschutzeinheit angeforderte Zugriffe auf die untergeordnete Speicherschutzeinheit überwachen und entsprechend zulassen oder zurückweisen. Ferner kann die übergeordnete Speicherschutzeinheit auf entsprechende Weise weitere untergeordnete Speicherschutzeinheit in der Recheneinheit überwachen.
-
Vorteilhafterweise ist die Speichereinheit als eine globale Speichereinheit ausgebildet, auf welche insbesondere alle Prozessorkerne oder beispielsweise auch unsichere Module mit Direct Memory Access, z.B. Flexray-Module, Ethernet-Module usw., zugreifen können, oder als eine lokale Speichereinheit, auf welche insbesondere nur ein spezieller Prozessorkern zugreifen kann. Beispielsweise kann die Speichereinheit als Cache-Speicher, Register, RAM-, Flash-, NOR-Flash, RAM-Speicher usw. ausgebildet sein.
-
Vorteilhafterweise ist die Speichereinheit als eine Peripherieeinheit ausgebildet, welche beispielsweise nicht direkt mit dem Kommunikationssystem bzw. mit der untergeordneten Speicherschutzeinheit verbunden ist, sondern z.B. über einen Peripherie-Anschluss, z.B. einen USB-Anschluss, oder ein weiteres Kommunikationssystem, z.B. ein weiteres Bussystem.
-
Besonders bevorzugt eignet sich das Verfahren zur Anwendung im Fahrzeugbereich. Die Recheneinheit kann insbesondere als ein Steuergerät bzw. als ein Mikrocontroller oder Mikroprozessor in einem (Kraft-) Fahrzeug ausgebildet sein. Zugriffe auf die Speichereinheit können beispielsweise im Zuge sicherheitskritischer Funktionen erfolgen, welche zum sicheren Betrieb und zur Steuerung des Fahrzeugs ausgeführt werden, beispielsweise im Zuge einer Motorsteuerung oder im Zuge von Fahrassistenzfunktionen usw. Durch das Verfahren können insbesondere eine funktionale Sicherheit bzw. Betriebssicherheit (engl. „safety“) sowie eine informationstechnische Sicherheit bzw. Informationssicherheit (engl. „security“) in dem Fahrzeug gewährleistet werden. Ausfallsicherheit und Integrität der Recheneinheit und des Fahrzeugs können durch das vorliegende Verfahren erhöht werden.
-
Insbesondere können durch die Erfindung Sicherheitsanforderungen im (Kraft-) Fahrzeugbereich erfüllt werden, wie sie beispielsweise in der Norm ISO 26262 oder insbesondere von dem sog. „Automotive Safety Integrity Level“ (ASIL), eine von der ISO 26262 spezifizierte Sicherheitsanforderungsstufe für sicherheitsrelevante Systeme in Kraftfahrzeugen, vorgegeben werden. Besonders zweckmäßig können durch die Erfindung die Anforderungen gemäß ASIL-D erfüllt werden, der höchsten und strengsten Stufe von Sicherheitsmaßnahmen, die in der Norm ISO 26262 definiert sind.
-
Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät eines Kraftfahrzeugs, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
-
Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Schließlich ist ein maschinenlesbares Speichermedium vorgesehen mit einem darauf gespeicherten Computerprogramm wie oben beschrieben. Geeignete Speichermedien bzw. Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich. Ein solcher Download kann dabei drahtgebunden bzw. kabelgebunden oder drahtlos (z.B. über ein WLAN-Netz, eine 3G-, 4G-, 5G- oder 6G-Verbindung, etc.) erfolgen.
-
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
-
Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
-
Figurenliste
-
- 1 zeigt schematisch eine bevorzugte Ausgestaltung einer erfindungsgemäßen Recheneinheit, die dazu eingerichtet ist, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen.
- 2 zeigt schematisch eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens als ein Blockdiagramm.
-
Ausführungsform(en) der Erfindung
-
In 1 eine bevorzugte Ausgestaltung einer erfindungsgemäßen Recheneinheit schematisch dargestellt und mit 100 bezeichnet.
-
Die Recheneinheit 100 kann beispielsweise in einem (Kraft-) Fahrzeug verwendet werden und beispielsweise als ein Steuergerät, Mikrocontroller oder Mikroprozessor ausgebildet sein.
-
Die Recheneinheit 100 weist eine Prozessoreinheit 110 mit einer Vielzahl von Prozessorkernen 111, 112 auf. Obgleich in 1 beispielhaft zwei Prozessorkerne dargestellt sind, versteht sich, dass die Prozessoreinheit 110 auch mehr als zwei Prozessorkerne oder auch nur einen Prozessorkern aufweisen kann.
-
Die Prozessorkerne 111, 112 sind jeweils mit einem Kommunikationssystem 120 datenübertragend verbunden, beispielsweise ein Bussystem oder ein Crossbarschalter. Ferner umfasst die Recheneinheit 100 eine Speichereinheit 130, welche ebenfalls mit dem Kommunikationssystem 120 datenübertragend verbunden ist. Über das Kommunikationssystem 120 wird ein Datenaustausch zwischen den Prozessorkernen 111, 112 und der Speichereinheit 130 ermöglicht.
-
Die Speichereinheit 130 kann beispielsweise als eine lokale Speichereinheit ausgebildet sein, z.B. als ein Cache-Speicher, auf den nur ein vorbestimmter Prozessorkern zugreifen kann, z.B. der Prozessorkern 112. Ferner kann die Speichereinheit 130 beispielsweise auch als eine globale Speichereinheit ausgebildet sein, auf welche alle Prozessorkerne 111, 112 zugreifen können, z.B. als ein Flash- oder RAM-Speicher usw.
-
Beispielsweise können Zugriffe auf die Speichereinheit 130 im Zuge sicherheitskritischer Funktionen erfolgen, welche zum sicheren Betrieb und zur Steuerung des Fahrzeugs ausgeführt werden, beispielsweise im Zuge einer Motorsteuerung oder im Zuge von Fahrassistenzfunktionen usw.
-
Die Recheneinheit 100 umfasst ferner eine untergeordnete, lokale Speicherschutzeinheit 140, welche zwischen die Speichereinheit 130 und das Kommunikationssystem 120 geschaltet ist. Im regulären Betrieb der Recheneinheit 100 überwacht die untergeordnete Speicherschutzeinheit 140 Zugriffsanforderungen auf die Speichereinheit 130 und kann entsprechend angeforderte Zugriffe erlauben oder zurückweisen.
-
Beispielsweise kann auch zwischen den Prozessorkern 112 und das Kommunikationssystem 120 eine untergeordnete Speicherschutzeinheit 160 geschaltet sein, welche im regulären Betrieb der Recheneinheit 100 von dem Prozessorkern 112 ausgehende Zugriffsanforderungen an die Speichereinheit 130 überwacht. Diese untergeordnete Speicherschutzeinheit 160 kann entsprechende Zugriffsanforderungen erlauben und über das Kommunikationssystem 120 an die Speichereinheit 130 weiterleiten lassen oder blockieren, so dass diese blockierten Anforderungen nicht in das Kommunikationssystem 120 gelangen. Es versteht sich, dass eine weitere derartige untergeordnete Speicherschutzeinheit auch zwischen den Prozessorkern 111 und das Kommunikationssystem 120 geschaltet sein kann.
-
Ferner umfasst die Recheneinheit 100 eine übergeordnete, globale Speicherschutzeinheit 150 als eine separate Einheit, welche mit dem Kommunikationssystem 120 verbunden ist. Im regulären Betrieb der Recheneinheit 100 überwacht diese übergeordnete Speicherschutzeinheit 150 die untergeordneten Speicherschutzeinheiten 140, 160.
-
Es versteht sich, dass die Recheneinheit 100 ferner noch weitere Komponenten umfassen kann, beispielsweise weitere Speichereinheiten, Peripherieanschlüsse usw. Insbesondere kann für mehrere oder alle weiteren Speichereinheiten jeweils eine weitere untergeordnete Speicherschutzeinheit vorgesehen sein, die zwischen die jeweilige Speichereinheit und das Kommunikationssystem 120 geschaltet ist.
-
Es ist von Bedeutung, dass im Zuge des Startens der Speichereinheit 130 bzw. des Hochfahrens der gesamten Recheneinheit 100 Angriffe, Manipulationen oder unerlaubte Zugriffe auf die Speichereinheit 130 zumindest erkannt oder auch verhindert werden können. Im Zuge des Startprozesses können sich potentielle Angriffspunkte auftun, solange noch nicht alle Komponenten der Recheneinheit 100 gestartet und ein ausreichender Speicherschutz vollständig in Kraft ist.
-
Um die Speichereinheit 130 und ferner die gesamte Recheneinheit 100 auf sicherere, geschützte Weise starten zu können, ist die Recheneinheit 100, insbesondere programmtechnisch, dazu eingerichtet, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen, welche in 2 schematisch als ein Blockdiagramm dargestellt ist und nachfolgend erläutert wird.
-
In einem Schritt 201 wird mit dem Hochfahren der Recheneinheit 100 begonnen. In Schritt 202 erfolgt ein Initialisieren bzw. Starten der übergeordneten Speicherschutzeinheit 150. In Schritt 203 wird die initialisierte, übergeordnete Speicherschutzeinheit 150 gesperrt. Beispielsweise kann das Sperren erfolgen, indem die übergeordnete Speicherschutzeinheit 150 nur vorbestimmten, als sicher erachteten Modulen zugewiesen wird. Beispielsweise kann die übergeordnete Speicherschutzeinheit 150 nur der als sicher erachteten Prozessoreinheit 110 derart zugewiesen werden, dass nur die Prozessoreinheit 110 auf die übergeordnete Speicherschutzeinheit 150 zugreifen kann und dass Zugriffe von anderen Modulen auf die übergeordnete Speicherschutzeinheit 150 verhindert werden.
-
Diese Sperre der übergeordneten Speicherschutzeinheit 150 kann nur durch einen Neustart oder einen Reset der Recheneinheit 100 aufgehoben werden. Ferner dürfen nur vorgegebene bzw. spezielle Software- und/oder Hardware-Komponenten der Recheneinheit auf die gesperrte übergeordnete Speicherschutzeinheit 150 zugreifen, beispielsweise nur vorgegebene (Software-) Anwendungen, beispielsweise nur Kernelanwendungen. Die gesperrte, übergeordnete Speicherschutzeinheit 150 ist selbstgeschützt und nur autorisierte, als sicher erachtete Komponenten dürfen auf die übergeordnete Speicherschutzeinheit 150 zugreifen. Somit wird die übergeordnete Speicherschutzeinheit 150 als erste, am Schutz der Speichereinheit 130 beteiligte Komponente der Recheneinheit gestartet.
-
In Schritt 204 erfolgt ein Verifizieren bzw. Überprüfen der übergeordneten Speichereinheit 150. Im Zuge dessen kann sichergestellt werden, dass es zu keinem Angriff und keiner unerlaubten Veränderung der übergeordneten Speichereinheit 150 gekommen ist.
-
Sofern in Schritt 204 der korrekte Zustand der übergeordneten Speicherschutzeinheit 150 nicht verifiziert werden kann und ein potentieller Angriff festgestellt wird, wird in Schritt 205 eine Schutzmaßnahme durchgeführt. Beispielsweise kann die Recheneinheit 100 im Zuge dessen in einen sicheren Betriebsmodus überführt werden.
-
Wenn in Schritt 204 der korrekte Zustand der übergeordneten Speicherschutzeinheit 150 hingegen verifiziert werden kann, wird das reguläre Hochfahren der Recheneinheit 100 fortgesetzt.
-
In diesem Fall erfolgt in einem Schritt 206 ein Initialisieren bzw. Starten der untergeordneten Speicherschutzeinheit 140. Die untergeordnete Speicherschutzeinheit 140 kann nun durch die bereits initialisierte übergeordnete Speicherschutzeinheit 150 überwacht und vor unerlaubten Zugriffen geschützt werden.
-
In einem Schritt 207 erfolgt ein Initialisieren der Speichereinheit 130. Da die untergeordnete und die übergeordnete Speicherschutzeinheit 140, 150 bereits aktiviert sind, ist die Initialisierung der Speichereinheit 130 selbst geschützt. Ferner kann die initialisierte Speichereinheit 130 fortan durch diese beiden Einheiten 140, 150zuverlässig überwacht und vor unerlaubten Zugriffen geschützt werden.
-
In einem Schritt 208 können weitere Komponenten der Recheneinheit 100 gestartet bzw. initialisiert werden, beispielsweise die weitere untergeordnete Speicherschutzeinheit 160. Ferner können beispielsweise weitere untergeordnete Speicherschutzeinheit und weitere Speichereinheiten initialisiert werden.
-
In Schritt 209 ist das Hochfahren erfolgreich abgeschlossen und es wird mit dem regulären Betrieb der Recheneinheit 100 begonnen.
-
Durch das vorliegende Verfahren können eine funktionale Sicherheit bzw. eine Betriebssicherheit (engl. „safety“) sowie eine informationstechnische Sicherheit bzw. Informationssicherheit (engl. „security“) der Recheneinheit 100 gewährleistet werden. Ausfallsicherheit, Störungsfreiheit und Integrität der Recheneinheit 100 sowie des Fahrzeugs können erhöht werden.
-
Ferner können Sicherheitsanforderungen im (Kraft-) Fahrzeugbereich erfüllt werden, beispielsweise Anforderungen gemäß dem sog. „Automotive Safety Integrity Level“ (ASIL), eine von der Norm ISO 26262 spezifizierte Sicherheitsanforderungsstufe für sicherheitsrelevante Systeme in Kraftfahrzeugen. Besonders zweckmäßig können durch das vorliegende Verfahren die Anforderungen gemäß der höchsten und strengsten Stufe ASIL-D erfüllt werden.
-
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 Patentliteratur
-
-
Zitierte Nicht-Patentliteratur
-