DE102015223335A1 - Verfahren zum Betreiben eines Mikrocontrollers - Google Patents

Verfahren zum Betreiben eines Mikrocontrollers Download PDF

Info

Publication number
DE102015223335A1
DE102015223335A1 DE102015223335.9A DE102015223335A DE102015223335A1 DE 102015223335 A1 DE102015223335 A1 DE 102015223335A1 DE 102015223335 A DE102015223335 A DE 102015223335A DE 102015223335 A1 DE102015223335 A1 DE 102015223335A1
Authority
DE
Germany
Prior art keywords
access
memory
protection unit
memory protection
unit
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
DE102015223335.9A
Other languages
English (en)
Inventor
Simon Hufnagel
Jens Gladigau
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 DE102015223335.9A priority Critical patent/DE102015223335A1/de
Priority to US15/775,239 priority patent/US10503666B2/en
Priority to PCT/EP2016/076788 priority patent/WO2017089101A1/de
Priority to KR1020187017200A priority patent/KR20180087299A/ko
Priority to CN201680068646.0A priority patent/CN108369558B/zh
Publication of DE102015223335A1 publication Critical patent/DE102015223335A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Abstract

Die Erfindung betrifft ein Verfahren zum Betreiben eines Mikrocontrollers (101), wobei in einer Speicherschutzeinheit (120) Zugriffsrechte von in dem Mikrocontroller (101) ausgeführten Prozessen (111, 112, 113, 114) auf unterschiedliche Speicherbereiche (131, 132, 133) hinterlegt sind, wobei im Zuge eines Simulationsmodus ein erster Prozess (111) im Namen eines zweiten Prozesses (113) einen Zugriffsversuch auf einen bestimmten Speicherbereich (132) in einer bestimmten Weise durchführt, die Speicherschutzeinheit (120) auf den Zugriffsversuch hin Zugriffsrechte des zweiten Prozesses (113) für den bestimmten Speicherbereich an den ersten Prozess (111) übermittelt. Die Zugriffsrechte werden von dem ersten Prozess (111) ausgelesen und der Simulationsmodus wird beendet. Vorzugsweise wird der Zugriffsversuch daraufhin beendet und es wird von dem ersten Prozess (111) kein Zugriff gemäß diesem Zugriffsversuch durchgeführt.

Description

  • Die vorliegende Erfindung betrifft Verfahren zum Betreiben eines Mikrocontrollers sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.
  • Stand der Technik
  • Mikrocontroller, beispielsweise für eingebettete Systeme, weisen u.a. eine Prozessoreinheit und eine Speichereinheit, wie ROM, RAM, Flash und/oder EEPROM, mit unterschiedlichen Speicherbereichen auf. Die Prozessoreinheit kann einen oder mehrere Prozessorkerne umfassen, in welchen jeweils unterschiedliche Prozesse (Tasks, Programmen, Rechenbefehlen, etc.) ausgeführt werden können. Die ausgeführten Prozesse können auf die unterschiedlichen Speicherbereiche zugreifen.
  • Für den Betrieb von Mikrocontrollern ist ein Zugriffsschutz bzw. Speicherschutz von großer Bedeutung. Mittels eines derartigen Zugriffs- bzw. Speicherschutzes soll verhindert werden, dass ein nicht autorisierter Zugriff auf die Speicherbereiche erfolgt. Ein derartiger Speicherschutz kann beispielsweise durch eine spezielle Hardwarekomponente, die sogenannte Memory Protection Unit (MPU) realisiert werden.
  • Offenbarung der Erfindung
  • Erfindungsgemäß werden ein Verfahren zum Betreiben eines Mikrocontrollers 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.
  • Der Mikrocontroller weist insbesondere eine Prozessoreinheit mit einem oder mehreren Prozessorkernen und eine Speichereinheit (z.B. ROM, RAM, Flash, EEPROM) mit unterschiedlichen Speicherbereichen auf. Von dem Mikrocontroller bzw. von der Prozessoreinheit werden unterschiedliche Prozesse (Tasks, Programme, Rechenbefehle, etc.) ausgeführt. Die Prozesse werden insbesondere mit unterschiedlichen Privilegienniveaus bzw. Hierarchiestufen ausgeführt. Ein Betriebssystem bzw. eine Betriebssoftware (BSW) besitzt insbesondere ein höchstes Privilegienniveau bzw. eine höchste Hierarchiestufe. Weiterhin kann unterschiedliche Anwendungssoftware (ASW) ausgeführt werden, mit jeweils niedrigerem Privilegienniveau als das Betriebssystem.
  • Aus Sicherheitsgründen ist es nicht allen Prozessen erlaubt, in vollem Umfang auf alle Speicherbereiche zuzugreifen. Unterschiedlichen Prozessen sind daher insbesondere unterschiedliche Zugriffsrechte zugewiesen, d.h. unterschiedliche Prozesse dürfen jeweils in unterschiedlichem Umfang ("Wie") auf einzelne Speicherbereiche ("Wo") zugreifen (oder nicht). Zugriffsrechte von Prozessen auf Speicherbereiche können beispielsweise lesend, schreibend und/oder ausführend sein.
  • In einer Speicherschutzeinheit sind Zugriffsrechte (lesend, schreibend, ausführend) von in dem Mikrocontroller ausgeführten Prozessen auf unterschiedliche Speicherbereiche (insbesondere gekennzeichnet durch eine Start- und eine End-Adresse) hinterlegt, d.h. in der Speicherschutzeinheit ist hinterlegt, in welchem Umfang Prozesse auf unterschiedliche Speicherbereiche zugreifen dürfen. Unterschiedliche Prozesse bzw. unterschiedliche Teile der Anwendungssoftware können z.B. durch eine Thread- oder Kontext-ID unterschieden werden.
  • Die Speicherschutzeinheit kann insbesondere als eine Hardwareeinheit ausgebildet sein, insbesondere als eine Memory Protection Unit (MPU). Es ist auch denkbar, dass die Speicherschutzeinheit als ein Prozess bzw. als eine Software-Anwendung ausgeführt wird, insbesondere mit einem höchsten Privilegienniveau.
  • Im Zuge eines Simulationsmodus bzw. Überprüfungsmodus überprüft ein erster Prozess Zugriffsrechte eines zweiten Prozesses auf einen bestimmten Speicherbereich. Der erste Prozess führt zu diesem Zweck im Namen des zweiten Prozesses einen Zugriffsversuch auf einen bestimmten Speicherbereich in einer bestimmten Weise durch. Auf diesen Zugriffsversuch hin übermittelt die Speicherschutzeinheit die Zugriffsrechte des zweiten Prozesses für den bestimmten Speicherbereich an den ersten Prozess. Die Speicherschutzeinheit kann die Zugriffsrechte beispielsweise übermitteln, indem sie selbige in ein geeignetes Prozessorregister eines den ersten Prozess ausführenden Prozessors schreibt.
  • Die Zugriffsrechte werden von dem ersten Prozess ausgelesen und der Simulationsmodus wird beendet. Vorzugsweise wird der Zugriffsversuch daraufhin beendet und es wird von dem ersten Prozess kein Zugriff gemäß diesem Zugriffsversuch durchgeführt. Unter Zugriffsversuch sei in diesem Zusammenhang zu verstehen, dass lediglich versucht wird, auf den Speicherbereich bzw. auf eine bestimmte Adresse im Speicher zuzugreifen, aber dass kein tatsächlicher Zugriff erfolgt.
  • Durch die Erfindung wird eine Möglichkeit bereitgestellt, wie ein höher privilegierter Prozess, insbesondere das Betriebssystem, die Zugriffsrechte eines niedriger privilegierten Prozesses auf einfache und schnelle Weise in Erfahrung bringen kann. Auf herkömmliche Weise würde dies insbesondere in Software geschehen, beispielsweise indem der höher privilegierte Prozess die Zugriffsrechte anhand von Tabellen identifiziert oder entsprechende Einträge der Speicherschutzeinheit ausliest und prüft. Dies ist zumeist mit einem hohen Laufzeit-Overhead verbunden. Im Gegensatz dazu wird durch die Erfindung eine hardwarebasierte Überprüfung von Zugriffsrechten des niedriger privilegierten Prozesses ermöglicht, indem die Speicherschutzeinheit die entsprechenden Zugriffsrechte für eine bestimmte Speicheradresse an den höher privilegierten Prozess übermittelt.
  • Zu diesem Zweck wird von dem ersten Prozess, der insbesondere höher privilegiert ist als der zweite Prozess, eine Simulation eines Speicherzugriffs des zweiten Prozesses durchgeführt. Der erste Prozess simuliert insbesondere, dass der zweite Prozess auf eine bestimmte Adresse im Speicher zugreifen möchte, ohne dass dieser Zugriff tatsächlich erfolgt.
  • Dies kann beispielsweise realisiert werden, indem die Speicherschutzeinheit in den Simulationsmodus umgeschaltet wird und in diesem Modus in spezieller Weise auf Zugriffsversuche reagiert. Alternativ oder zusätzlich kann der erste Prozess den simulierten Zugriffsversuch mittels spezieller Simulationsbefehle durchführen, auf welche die Speicherschutzeinheit anders reagiert als auf herkömmliche Befehle im Zuge herkömmlicher Zugriffsversuche. In beiden Fällen ist die Speicherschutzeinheit insbesondere entsprechend konfiguriert, um im Zuge des Simulationsmodus die Zugriffsrechte des zweiten Prozesses an den ersten Prozess zu übermitteln.
  • Vorteilhafterweise übermittelt die Speicherschutzeinheit die Zugriffsrechte des zweiten Prozesses an den ersten Prozess in Reaktion auf einen Lesezugriff durch den ersten Prozess, indem die Speicherschutzeinheit die Zugriffsrechte in einen lokalen Speicher, in welchen das Ergebnis eines herkömmlichen (nicht simulierten) Lesezugriffs abgelegt würde, insbesondere ein Register, des den ersten Prozess ausführenden Rechenkerns schreibt. Somit wird insbesondere kein zusätzlicher lokaler Speicher für das Übermitteln der Zugriffsrechte in Anspruch genommen.
  • Bevorzugt versucht der erste Prozess als Zugriffsversuch im Namen des zweiten Prozesses lesend auf den bestimmten Speicherbereich zuzugreifen. Insbesondere werden schreibende Zugriffsversuche während des Simulationsmodus nicht erlaubt und lösen insbesondere einen Trap aus. Eine Einschränkung auf Lesezugriffe ist zweckmäßig, da bei Lesezugriffsbefehlen meist ein Datenziel im Prozessor, welcher den ersten Prozess ausführt, angegeben ist, etwa ein Register des Prozessors. In diesem Datenziel wird im Simulationsmodus zweckmäßigerweise nicht das eigentliche Datum der gelesenen Adresse geschrieben, sondern die entsprechenden Zugriffsrechte.
  • Vorzugsweise wird der Simulationsmodus durchgeführt, indem die Speicherschutzeinheit durch einen speziellen Startbefehl in den Simulationsmodus versetzt wird. Insbesondere wird dieser Startbefehl von dem ersten Prozess an die Speicherschutzeinheit übermittelt. Nachdem der erste Prozess die Zugriffsrechte ausgelesen hat, beendet der erste Prozess den Simulationsmodus insbesondere wieder, indem er an die Speicherschutzeinheit einen speziellen Endbefehl übermittelt.
  • Alternativ kann sich die Speicherschutzeinheit nach dem Startbefehl auch für eine definierte Anzahl von Zugriffsversuchen, insbesondere für genau einen Zugriffsversuch, im Simulationsmodus befinden oder der Startbefehl enthält als Parameter die Anzahl von Zugriffsversuchen, die im Simulationsmodus erfolgen sollen. Um eine Unterbindung von Speicherzugriffen eines privilegierten Prozesses durch einen weniger privilegierten Prozess zu verhindern, indem der weniger privilegierte Prozess die Speicherschutzeinheit in den Simulationsmodus versetzt, kann die Möglichkeit zur Umschaltung in den Simulationsmodus auf Prozesse mit einem Mindestprivilegienniveau beschränkt werden.
  • Wenn die Speicherschutzeinheit in den Simulationsmodus versetzt wurde, kann der erste Prozess den Zugriffsversuch mittels regulärer Befehle (z.B. reguläre Lese- bzw. Schreibbefehle) durchführen. Die Speicherschutzeinheit reagiert in diesem Fall jedoch auf spezielle Weise auf diese regulären Befehle. Insbesondere kommuniziert die Speicherschutzeinheit nicht mit anderen Komponenten des Mikrocontrollers über ein entsprechendes Kommunikationssystem (z.B. Bus, Crossbar). Beispielsweise kann die Speicherschutzeinheit durch eine konkreten Befehl, ein Steuerregister, ein Adressbit, eine Thread-ID, eine Software-ID und/oder eine Kontext-ID in den Simulationsmodus versetzt werden bzw. diesen wieder verlassen.
  • Alternativ oder zusätzlich kann der Simulationsmodus bevorzugt durchgeführt werden, indem der Zugriffsversuch mittels eines speziellen Zugriffsbefehls (Simulationsbefehl) durchgeführt wird. In diesem Fall werden von dem ersten Prozess keine regulären Befehle für den Zugriffsversuch verwendet, sondern beispielsweise spezielle Lese- bzw. Schreibbefehle. Die Speicherschutzeinheit reagiert auf diese speziellen Befehle, indem sie nicht mit anderen Komponenten des Mikrocontrollers kommuniziert, sondern dem ersten Prozess die Zugriffsrechte übermittelt. Insbesondere können nur Prozesse mit genügend hohem Privilegienniveau Simulationsbefehle ausführen.
  • Vorteilhafterweise wird der Simulationsmodus durchgeführt, wenn die Speicherschutzeinheit erkennt, dass der zweite Prozess versucht, auf den bestimmten Speicherbereich in einer Weise zuzugreifen, die ihm nicht erlaubt ist (beispielsweise wenn der Prozess schreibend oder ausführend zugreifen möchte, aber nur lesend zugreifen darf). Dieser Zugriff wird insbesondere durch die Speicherschutzeinheit unterbunden und die Speicherschutzeinheit informiert den ersten Prozess beispielsweise mittels eines Traps. Die Speicherschutzeinheit führt daraufhin den Simulationsmodus durch.
  • Der erste Prozess entscheidet darüber, ob der gewünschte Zugriff des zweiten Prozesses gefahrlos ist und durchgeführt werden darf oder ob der Zugriff unterlassen werden soll, beispielsweise weil ein Fehler des zweiten Prozesses oder gar ein Angriff vorliegt. Der erste Prozess trifft diese Entscheidung vorzugsweise basierend auf den Zugriffsrechten des zweiten Prozesses, die mittels des Simulationsmodus ausgelesen wurden.
  • Auf herkömmliche Weise würde der erste Prozess die Zugriffsrechte aufwendig mit hohem Laufzeit-Overhead in Erfahrung bringen, beispielsweise durch Auslesen und Prüfen von Tabellen oder entsprechender Einträge der Speicherschutzeinheit. Durch die Erfindung kann der erste Prozess schnell und aufwandsarm die Zugriffsrechte überprüfen und schnell auf den Zugriffsversuch des zweiten Prozesses reagieren.
  • Vorzugsweise ist die Speicherschutzeinheit als Memory Protection Unit (MPU) ausgebildet. Die Speicherschutzeinheit ist bevorzugt als eine Einheit bzw. ein Modul des Mikrocontrollers ausgebildet und ist insbesondere in den Mikrocontroller integriert. Bevorzugt kann die Speicherschutzeinheit alternativ oder zusätzlich auch eine externe Einheit bzw. ein externes Modul ausgebildet sein, welche mit dem Mikrocontroller verbunden ist, beispielsweis über ein Bus- bzw. Feldbus-System.
  • Vorteilhafterweise besitzt der erste Prozess ein höheres Privilegienniveau als der zweite Prozess. Somit wird verhindert, dass ein niedrig privilegierter Prozess die Zugriffsrechte eines höher privilegierten Prozesses herausfinden kann. Vorzugsweise ist der erste Prozess das Betriebssystem.
  • Der Mikrocontroller ist insbesondere in ein Steuergerät eines Kraftfahrzeugs implementiert, beispielsweise in ein Motorsteuergerät. Somit kann eine verbesserte Sicherheit des entsprechenden Steuergeräts gewährleistet werden und Sicherheitsanforderungen, welche im Kraftfahrzeugbereich gestellt werden, können eingehalten werden. Insbesondere können Sicherheitsanforderungen, wie sie in der ISO-Norm 26262 hinterlegt sind, eingehalten werden.
  • 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 des Verfahrens in Form eines Computerprogramms 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. Geeignete 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.
  • 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.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt schematisch bevorzugte Ausgestaltungen eines Steuergeräts eines Kraftfahrzeugs, die jeweils dazu eingerichtet sind, 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 1a ist ein Steuergerät 100 eines Kraftfahrzeugs, beispielsweise ein Motorsteuergerät, schematisch dargestellt. Das Steuergerät 100 umfasst einen Mikrocontroller 101 mit einer Prozessoreinheit 110, einer als Memory Protection Unit (MPU) ausgebildeten Speicherschutzeinheit 120 und einer beispielsweise als RAM-Speicher ausgebildeten Speichereinheit 130.
  • In der Prozessoreinheit 110 wird eine Vielzahl von Prozessen ausgeführt. In 1a sind beispielsweise vier ausgeführte Prozesse 111, 112, 113 und 114 dargestellt.
  • Prozess 111 sei in diesem Beispiel ein Betriebssystem, welches ein höchstes Privilegienniveau, z.B. Vier, besitzt. Die Prozesse 112, 113 und 114 sind etwa Tasks, die im Zuge einer Motorsteuerung ausgeführt werden. Prozess 112 besitzt beispielsweise ein Privilegienniveau von Drei, Prozess 113 ein Privilegienniveau von Zwei und Prozess 114 besitzt beispielsweise ein Privilegienniveau von Eins.
  • Der RAM-Speicher 130 umfasst eine Vielzahl unterschiedlicher Speicherbereiche. Beispielsweise sind in 1a drei Speicherbereiche 131, 132 und 133 dargestellt.
  • In der MPU 120 sind Zugriffsrechte der einzelnen Prozesse 111 bis 114 hinterlegt. Als Zugriffsrechte sind dabei für jeden der Prozesse 111 bis 114 hinterlegt, ob der jeweilige Prozess lesend, schreibend und/oder ausführend auf einen speziellen Speicherbereich zugreifen darf.
  • In 1b ist eine weitere Ausgestaltung eines Steuergeräts 100 dargestellt. Gleiche oder baugleiche Elemente sind in den 1a und 1b jeweils mit identischen Bezugszeichen versehen. Der Mikrocontroller 101 gemäß 1b umfasst neben dem Prozessorkern 110 einen zweiten Prozessorkern 140. Im Beispiel von 1b werden die Prozesse 111 und 112 von dem Prozessorkern 110 ausgeführt und die Prozesse 113 und 114 von dem Prozessorkern 140. Für jeden der Prozessorkerne 110 und 140 ist dabei jeweils eine eigene MPU 120 vorgesehen. Der RAM-Speicher 130 ist für beide Prozessorkerne 110 und 140 gemeinsam vorgesehen.
  • Das Steuergerät gemäß den 1a und 1b ist jeweils dazu eingerichtet, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen, welches in 2 schematisch als Blockdiagramm dargestellt ist.
  • In Schritt 201 möchte Prozess 113 schreibend auf eine Adresse in dem Speicherbereich 132 zugreifen. Die MPU 120 überprüft daraufhin in Schritt 202 die Zugriffsrechte des Prozesses 113. Beispielsweise besitzt der Prozess 113 ein lesendes Zugriffsrecht auf den Speicherbereich 132. Die MPU 120 lässt den Zugriff daher nicht zu und informiert in Schritt 203 mittels eines Traps den Prozess mit dem höchsten Privilegienniveau, in diesem Fall das Betriebssystem 111.
  • Das Betriebssystem 111 prüft daraufhin, ob der Zugriffsversuch des Prozesses 113 erlaubt ist oder beispielsweise auf einen Angriff oder einen Fehler hindeutet. Zu diesem Zweck überprüft das Betriebssystem 111 die Zugriffsrechte des Prozesses 113. Das Betriebssystem 111 versetzt die MPU 120 dazu in Schritt 204 in einen Simulationsmodus, beispielsweise indem das Betriebssystem 111 einen speziellen Startbefehl an das die MPU 120 übermittelt.
  • In Schritt 205 führt das Betriebssystem im Namen des Prozesses 113 einen lesenden Zugriffsversuch auf den Speicherbereich 132 durch. Die im Simulationsmodus betriebene MPU 120 reagiert auf diesen Zugriffsversuch indem sie in Schritt 206 die Zugriffsrechte des Prozesses 113 in einen lokalen Speicher, insbesondere ein Register, des ausführenden Rechenkerns, in welchen Speicher das Ergebnis des Lesezugriffs abgelegt wird.
  • In Schritt 207 hat das Betriebssystem 111 somit die Zugriffsrechte des Prozesses 113 im lokalen Speicher vorliegen. In Schritt 208 beendet das Betriebssystem 111 den Simulationsmodus, beispielsweise indem es einen Endbefehl an die MPU 120 übermittelt.
  • In Schritt 209 entscheidet das Betriebssystem 111 basierend auf dem ausgelesenen Zugriffsrecht, ob der Zugriffsversuch des Prozesses 113 erlaubt ist oder beispielsweise auf einen Angriff oder einen Fehler hindeutet.
  • Wird der Zugriffsversuch als legitim erkannt, führt das Betriebssystem 111 in Schritt 210 den entsprechenden schreibenden Zugriff beispielsweise selbst durch. Wird der Zugriffsversuch nicht als legitim erkannt, beispielsweise weil ein Fehler des Prozesses 113 vorliegt, führt das Betriebssystem 111 in Schritt 211 entsprechende Maßnahmen durch. Beispielsweise kann das Betriebssystem 111 den Prozess 113 neu starten.
  • 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
    • ISO-Norm 26262 [0026]

Claims (13)

  1. Verfahren zum Betreiben eines Mikrocontrollers (101), wobei in einer Speicherschutzeinheit (120) Zugriffsrechte von in dem Mikrocontroller (101) ausgeführten Prozessen (111, 112, 113, 114) auf unterschiedliche Speicherbereiche (131, 132, 133) hinterlegt sind, wobei im Zuge eines Simulationsmodus: – ein erster Prozess (111) im Namen eines zweiten Prozesses (113) einen Zugriffsversuch auf einen bestimmten Speicherbereich (132) in einer bestimmten Weise durchführt (205), – die Speicherschutzeinheit (120) auf den Zugriffsversuch hin Zugriffsrechte des zweiten Prozesses (113) für den bestimmten Speicherbereich an den ersten Prozess (111) übermittelt (206).
  2. Verfahren nach Anspruch 1, wobei nach dem Übermitteln (206) der Zugriffsrechte von dem ersten Prozess (111) kein Zugriff gemäß dem Zugriffsversuch durchgeführt wird und der Simulationsmodus beendet wird (208).
  3. Verfahren nach Anspruch 1 oder 2, wobei die Speicherschutzeinheit (120) die Zugriffsrechte des zweiten Prozesses (113) an den ersten Prozess (111) in Reaktion auf einen Lesezugriff als Zugriffsversuch übermittelt.
  4. Verfahren nach Anspruch 3, wobei die Speicherschutzeinheit (120) die Zugriffsrechte in einen lokalen Speicher eines den ersten Prozess ausführenden Rechenkerns, welcher lokale Speicher als Ziel des Lesezugriffs vorgegeben ist, schreibt.
  5. Verfahren nach einem der vorstehenden Ansprüche, wobei der Simulationsmodus durchgeführt wird, indem die Speicherschutzeinheit (120) durch einen speziellen Startbefehl in den Simulationsmodus versetzt wird (204).
  6. Verfahren nach einem der vorstehenden Ansprüche, wobei der Simulationsmodus durchgeführt wird, indem der Zugriffsversuch mittels eines speziellen Zugriffsbefehls durchgeführt wird.
  7. Verfahren nach einem der vorstehenden Ansprüche, wobei der Simulationsmodus durchgeführt wird, wenn die Speicherschutzeinheit (120) erkennt, dass der zweite Prozess (113) versucht, auf den bestimmten Speicherbereich (132) in einer Weise zuzugreifen, die ihm nicht erlaubt ist (201, 202), und wenn die Speicherschutzeinheit (120) den ersten Prozess (111) darüber informiert (203).
  8. Verfahren nach Anspruch 7, wobei der erste Prozess (111) basierend auf den ausgelesenen Zugriffsrechten entscheidet, ob der Zugriff des zweiten Prozesses (113) durchgeführt werden darf (209) oder nicht.
  9. Verfahren nach einem der vorstehenden Ansprüche, wobei der erste Prozess (111) ein höheres Privilegienniveau besitzt als der zweite Prozess (113).
  10. Verfahren nach einem der vorstehenden Ansprüche, wobei die Speicherschutzeinheit (120) als eine Einheit des Mikrocontrollers (101) ausgebildet ist und/oder wobei die Speicherschutzeinheit als eine externe Einheit ausgebildet ist, welche mit dem Mikrocontroller (101) verbunden ist.
  11. Recheneinheit (100), die dazu eingerichtet ist, ein Verfahren nach einem der vorstehenden Ansprüche durchzuführen.
  12. Computerprogramm, das eine Recheneinheit (100) dazu veranlasst, ein Verfahren nach einem der Ansprüche 1 bis 10 durchzuführen, wenn es auf der Recheneinheit (100) ausgeführt wird.
  13. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 12.
DE102015223335.9A 2015-11-25 2015-11-25 Verfahren zum Betreiben eines Mikrocontrollers Pending DE102015223335A1 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE102015223335.9A DE102015223335A1 (de) 2015-11-25 2015-11-25 Verfahren zum Betreiben eines Mikrocontrollers
US15/775,239 US10503666B2 (en) 2015-11-25 2016-11-07 Method for operating a microcontroller
PCT/EP2016/076788 WO2017089101A1 (de) 2015-11-25 2016-11-07 Verfahren zum betreiben eines mikrocontrollers
KR1020187017200A KR20180087299A (ko) 2015-11-25 2016-11-07 마이크로컨트롤러를 작동시키기 위한 방법
CN201680068646.0A CN108369558B (zh) 2015-11-25 2016-11-07 用于运行微控制器的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102015223335.9A DE102015223335A1 (de) 2015-11-25 2015-11-25 Verfahren zum Betreiben eines Mikrocontrollers

Publications (1)

Publication Number Publication Date
DE102015223335A1 true DE102015223335A1 (de) 2017-06-01

Family

ID=57288383

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015223335.9A Pending DE102015223335A1 (de) 2015-11-25 2015-11-25 Verfahren zum Betreiben eines Mikrocontrollers

Country Status (5)

Country Link
US (1) US10503666B2 (de)
KR (1) KR20180087299A (de)
CN (1) CN108369558B (de)
DE (1) DE102015223335A1 (de)
WO (1) WO2017089101A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022205137A1 (de) 2022-05-23 2023-11-23 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Überwachen von Zugriffsanfragen für sicherheitskritische Zugriffe in einer Recheneinheit

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5515525A (en) * 1993-09-28 1996-05-07 Bull Hn Information Systems Inc. Emulating the memory functions of a first system on a second system
US5991519A (en) * 1997-10-03 1999-11-23 Atmel Corporation Secure memory having multiple security levels
GB0226875D0 (en) * 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Control of access to a memory by a device
US20060036830A1 (en) * 2004-07-31 2006-02-16 Dinechin Christophe De Method for monitoring access to virtual memory pages
US8881304B2 (en) * 2005-07-25 2014-11-04 Koninklijke Philips N.V. Method of controlled access to content
US7506121B2 (en) * 2005-12-30 2009-03-17 Intel Corporation Method and apparatus for a guest to access a memory mapped device
CN100504897C (zh) * 2006-02-20 2009-06-24 联想(北京)有限公司 一种启动受保护分区的方法
US8800008B2 (en) * 2006-06-01 2014-08-05 Intellectual Ventures Ii Llc Data access control systems and methods
US8380987B2 (en) * 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
US20080263103A1 (en) * 2007-03-02 2008-10-23 Mcgregor Lucas Digital asset management system (DAMS)
JP5308629B2 (ja) * 2007-03-26 2013-10-09 ルネサスエレクトロニクス株式会社 マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス保護方法
KR101396831B1 (ko) * 2007-03-30 2014-05-21 삼성전자주식회사 메모리 접근 제어 방법
CN101226577A (zh) * 2008-01-28 2008-07-23 南京大学 基于可信硬件与虚拟机的微内核操作系统完整性保护方法
JP5225003B2 (ja) * 2008-10-01 2013-07-03 キヤノン株式会社 メモリ保護方法、情報処理装置、メモリ保護プログラム及びメモリ保護プログラムを記録した記録媒体
JP5582971B2 (ja) * 2009-12-15 2014-09-03 キヤノン株式会社 メモリ保護方法および情報処理装置
US8572345B2 (en) * 2011-09-16 2013-10-29 Freescale Semiconductor, Inc. Memory management unit (MMU) having region descriptor globalization controls and method of operation
US8694738B2 (en) * 2011-10-11 2014-04-08 Mcafee, Inc. System and method for critical address space protection in a hypervisor environment
US20140096270A1 (en) * 2012-09-28 2014-04-03 Richard T. Beckwith Secure data containers and data access control
US9720843B2 (en) * 2012-12-28 2017-08-01 Intel Corporation Access type protection of memory reserved for use by processor logic
US9817771B2 (en) * 2013-08-20 2017-11-14 Synopsys, Inc. Guarded memory access in a multi-thread safe system level modeling simulation
CN104657193B (zh) * 2013-11-21 2018-07-20 华为技术有限公司 一种访问物理资源的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ISO-Norm 26262

Also Published As

Publication number Publication date
KR20180087299A (ko) 2018-08-01
CN108369558A (zh) 2018-08-03
US10503666B2 (en) 2019-12-10
US20180322072A1 (en) 2018-11-08
WO2017089101A1 (de) 2017-06-01
CN108369558B (zh) 2022-09-06

Similar Documents

Publication Publication Date Title
DE102013014172B4 (de) Schutz globaler register in einem multithreaded-prozessor
DE202013102179U1 (de) System zu detektieren von durch eine virtuelle Maschine ausgeführtem Schadcode
DE102012109615B4 (de) Verwendung eines Manifests zur Präsenzaufzeichnung von gültiger Software und Kalibrierung
DE102005021064B4 (de) Verfahren und Vorrichtung zum Schutz gegen Buffer Overrun-Attacken
DE102016205289A1 (de) Verfahren, Prozessor und Gerät zur Integritätsprüfung von Nutzerdaten
WO2019072840A1 (de) Vorrichtung zur absicherung von diagnosebefehlen an ein steuergerät und entsprechendes kraftfahrzeug
DE102015216082A1 (de) Verfahren und Speichermodul für sicherheitsgeschützte Schreibvorgänge und/oder Lesevorgänge auf dem Speichermodul
DE102018132970A1 (de) Verfahren und Vorrichtung zur Isolation von sensiblem nichtvertrauenswürdigem Programmcode auf mobilen Endgeräten
DE102010002472A1 (de) Verfahren zum Verifizieren eines Speicherblocks eines nicht-flüchtigen Speichers
DE2801518A1 (de) Datenverarbeitungssystem mit speicher-schutzeinrichtung
EP3811261B1 (de) Kryptografiemodul und betriebsverfahren hierfür
DE102012105093A1 (de) Sicherer Datenspeicher für Fahrzeugnetzwerke
DE102015223335A1 (de) Verfahren zum Betreiben eines Mikrocontrollers
DE602004002241T2 (de) Schutz eines auf ausführungwartenden Programms in einem Speicher für einen Mikroprozessor
WO2015197544A1 (de) Verfahren und schaltkreis zur vermeidung von speicherschutzverletzungen
DE102022119774A1 (de) Verfahren und System zur Durchführung einer sicheren Boot-Prozedur unter Verwendung einer mehrstufigen Sicherheitsverifizierung in einem Mikrocontroller eines Fahrzeugs
DE102015223757A1 (de) Verfahren zum Betreiben eines Mikrocontrollers
DE102020207866A1 (de) Verfahren zum Durchführen einer abgesicherten Startsequenz eines Steuergeräts
DE102021201236A1 (de) Verfahren zum Authentifizieren einer Nachricht einer Recheneinheit, Recheneinheit, Computerprogramm und Fahrzeug
DE102014222181A1 (de) Verfahren zum Betreiben eines Steuergeräts
EP3281106A1 (de) Verwaltung von schnittstellen in einem verteilten system
DE102015112837A1 (de) Vorrichtung und Verfahren zur Verhinderung des Klonens von Code
DE102018217969A1 (de) Recheneinrichtung und Betriebsverfahren hierfür
DE102022201895A1 (de) Mitigation einer manipulation von software eines fahrzeugs
EP3469511B1 (de) Speicherverwaltung eines sicherheitsmoduls

Legal Events

Date Code Title Description
R012 Request for examination validly filed