DE102019127856A1 - Verfahren zum sicheren Booten eines Steuergeräts und Steuergerät - Google Patents

Verfahren zum sicheren Booten eines Steuergeräts und Steuergerät Download PDF

Info

Publication number
DE102019127856A1
DE102019127856A1 DE102019127856.2A DE102019127856A DE102019127856A1 DE 102019127856 A1 DE102019127856 A1 DE 102019127856A1 DE 102019127856 A DE102019127856 A DE 102019127856A DE 102019127856 A1 DE102019127856 A1 DE 102019127856A1
Authority
DE
Germany
Prior art keywords
hsm
value
integrity
flag
software
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
DE102019127856.2A
Other languages
English (en)
Inventor
Michael Pernpeintner
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.)
AVL Software and Functions GmbH
Original Assignee
AVL Software and Functions 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 AVL Software and Functions GmbH filed Critical AVL Software and Functions GmbH
Priority to DE102019127856.2A priority Critical patent/DE102019127856A1/de
Publication of DE102019127856A1 publication Critical patent/DE102019127856A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot

Landscapes

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

Abstract

Verfahren zum sicheren Booten eines Steuergeräts, umfassend ein Hardware-Sicherheitsmodul (HSM) und einen Host, umfassend die Verfahrensschritte:
a. Anlegen einer Spannung an das Steuergerät und zumindest partielles Booten des HSM;
b. Überprüfen, ob ein dem HSM zugeordneter Flag auf einen ersten Wert oder einen zweiten Wert gesetzt ist;
c. Falls das Flag auf den zweiten Wert gesetzt ist, Durchführen einer Integritäts- und Authentifizierungsüberprüfung einer dem Steuergerät zugeordneten Software; und falls das Flag auf den ersten Wert gesetzt ist, Vervollständigen des Bootens des HSM durch Übermitteln einer Aufforderung von dem HSM an den Host zum Booten des Host;
d. falls die Integritäts- und Authentifizierungsüberprüfung positiv ist, setzen des Flag auf den ersten Wert und Rebooten des HSM;
e. Erneutes überprüfen, ob das Flag auf den ersten Wert oder den zweiten Wert gesetzt ist, wobei falls nun erkannt wird, dass das Flag auf den ersten Wert gesetzt ist, Vervollständigen des Bootens des HSM durch Übermitteln einer Aufforderung von dem HSM an den Host zum Booten des Host.

Description

  • Die Erfindung betrifft ein Verfahren zum sicheren und schnellen Booten eines Steuergeräts sowie einem Steuergerät, wobei das Steuergerät ein Hardware-Sicherheitsmodul und einen Host umfasst.
  • Es sind aus dem Stand der Technik dabei verschiedene Arten bekannt, ein Verfahren bereitzustellen, mittels welchen die Sicherheit und/oder die Geschwindigkeit beim Boot-Vorgang des Steuergeräts erhöht werden soll.
  • Bekannt sind dabei insbesondere sequentielle Boot-Vorgänge oder parallele Boot-Vorgänge, die jedoch im Hinblick auf die Sicherheit Schwachstellen aufweisen können.
  • Es ist demnach die Aufgabe der vorliegenden Erfindung, ein Verfahren zum sicheren und schnellen Booten eines Steuergeräts bereitzustellen, welche insbesondere während des Boot-Vorgangs nahezu keine Manipulation erlaubt und dennoch sehr schnell ein Booten des Steuergeräts erlaubt.
  • Diese Aufgabe wird gelöst durch ein Verfahren gemäß Anspruch 1 und ein Steuergerät gemäß Anspruch 10.
  • Kerngedanke der Erfindung ist es, ein Verfahren zum sicheren Booten eines Steuergeräts, umfassend ein Hardware-Sicherheitsmodul (HSM) und einen Host, bereitzustellen, umfassend die Verfahrensschritte:
    1. a. Anlegen einer Spannung an das Steuergerät und zumindest partielles Booten des HSM;
    2. b. Überprüfen, ob ein dem HSM zugeordnetes Flag auf einen ersten Wert oder einen zweiten Wert gesetzt ist;
    3. c. Falls das Flag auf den zweiten Wert gesetzt ist, Durchführen einer Integritäts- und Authentifizierungsüberprüfung einer dem Steuergerät zugeordneten Software; und falls das Flag auf den ersten Wert gesetzt ist, Vervollständigen des Bootens des HSM durch Übermitteln einer Aufforderung von dem HSM an den Host zum Booten des Host;
    4. d. falls die Integritäts- und Authentifizierungsüberprüfung positiv ist, setzen des Flag auf den ersten Wert und Rebooten des HSM;
    5. e. Erneutes überprüfen, ob das Flag auf den ersten Wert oder den zweiten Wert gesetzt ist, wobei falls nun erkannt wird, dass das Flag auf den ersten Wert gesetzt ist, Vervollständigen des Bootens des HSM durch Übermitteln einer Aufforderung von dem HSM an den Host zum Booten des Host.
  • Dabei ist ein partielles Booten des HSM insbesondere dahingehend zu verstehen, dass zumindest das Übermitteln einer Aufforderung von dem HSM an den Host zum Booten des Host nicht ausgeführt wird. Diese Übermittlung der Aufforderung wird erst dann durchgeführt, wenn erkannt wurde, beispielsweise durch das HSM, bevorzugter durch eine Recheneinheit des HSM, dass das Flag auf einen ersten Wert gesetzt ist.
  • Unter dem Flag ist eine Bitstruktur zu verstehen, wobei die Bitstruktur mindestens ein Bit umfasst. Unter einem ersten Wert und einem zweiten Wert des Flag kann beispielsweise die Werte „true“ und „false“ oder „1‟ und „0“ verstanden werden. Der erste Wert bezieht sich dabei auf den Wert, den das Flag zum Booten des Host benötigt. Ebenso denkbar ist es, das Flag mit als n-Bit auszubilden, wobei n gleich 8 bevorzugt ist. Bei jedem erneuten Setzen des Flag wird ein Bit-Shift durchgeführt, und das zu setzende Bit wird rechts in dem n-Bit abgespeichert. So kann eine Überprüfung der zuletzt gesetzten Bits im Flag durchgeführt werden. Weiter bevorzugt ist es auch denkbar, dass ein Timestamp bzw. Zeitstempel hinterlegt wird, welcher angibt, wann eine Überprüfung des Flag positiv oder negativ war. Dies kann insbesondere zur Entscheidungsfindung dienen, ob das Steuergerät eventuell freigegeben wird oder nicht. Besonders bevorzugt wird zu jedem gesetzten Bit ein Zeitstempel hinterlegt oder zumindest eindeutig oder eineindeutig zugeordnet.
  • Falls das Flag auf den zweiten Wert gesetzt ist, ist dies ein Indikator dafür, dass die Software manipuliert sein kann. Durch eine negativ ausgefallene Integritäts- und Authentifizierungsüberprüfung wird eben durch das Flag auf den zweiten Wert gesetzt und ein Booten des Host verhindert.
  • Insbesondere wird durch die Integritäts- und Authentifizierungsüberprüfung überprüft, ob die Software integer ist und ob die Quelle authentifiziert ist. Ebenso kann überprüft werden, ob eine neue Software vorhanden ist.
  • Insbesondere gibt das Flag darüber eine Auskunft, ob die vorhergehende Integritäts- und Authentifizierungsüberprüfung positiv oder negativ ausgefallen ist. Ist die Integritäts- und Authentifizierungsüberprüfung negativ ausgefallen, so ist es wahrscheinlich, dass die geprüfte Software nicht mit der Software übereinstimmt, welche vorhanden sein sollte; das heißt, die Software könnte manipuliert sein.
  • Unter rebooten des HSM ist hierbei zu verstehen, dass das HSM zunächst partiell gebootet wird, so wie im Verfahrensschritt a. dargestellt, und abhängig von dem gesetzten Flag weiter entschieden wird.
  • Gemäß einer besonders bevorzugten Ausführungsform ist es vorgesehen, dass nach dem Überprüfen und dem Feststellen, dass das Flag auf den ersten Wert gesetzt ist und vor oder während dem Übermitteln der Aufforderung von dem HSM an den Host zum Booten des Host das Flag auf den zweiten Wert gesetzt wird.
  • Dies bedeutet insbesondere, dass während oder nachdem die Aufforderung an den Host zum Booten des Host übermittelt wird, das zuvor gesetzte Flag, welcher erfindungsgemäß für die Übermittelung der Aufforderung auf den ersten Wert gesetzt sein muss, nun wieder auf den zweiten Wert gesetzt wird.
  • Weiter insbesondere bedeutet dies, dass während des Boot-Vorgangs des Host keine Manipulation von außen möglich ist, da das Flag nun auf den zweiten Wert gesetzt ist. Angenommen, eine Veränderung der Software würde während des Boot-Vorgangs versucht, so wäre durch das Flag, welches nun den zweiten Wert aufweist, erfindungsgemäß eine Integritäts- und Authentifizierungsüberprüfung notwendig. Dadurch, dass die Software manipuliert worden ist, fällt die Integritäts- und Authentifizierungsüberprüfung negativ aus und das System wird für den Angreifer nicht freigegeben.
  • Gemäß einer weiteren bevorzugten Ausführungsform ist es vorgesehen, dass falls im Verfahrensschritt d. die Integritäts- und Authentifizierungsüberprüfung negativ ist, das Steuergerät in einen vordefinierten Zustand gebracht wird und das HSM rebootet wird.
  • Unter einem vordefinierten Zustand ist Vielfältiges zu verstehen und kann dabei natürlich auch von der Art des Steuergeräts abhängig sein, da Steuergeräte in verschiedenen Sicherheitsklassen vorgesehen sein können und dementsprechend eine unterschiedliche Behandlung bei Angriffen und Veränderungen auf die Software bedürfen. Beispielsweise ist der Antriebsstrang eines Fahrzeugs sicherheitstechnisch anders zu bewerten als die Medieneinheit des Fahrzeugs. Natürlich sind hier auch andere Beispiele denkbar, aus verschiedenen Bereichen, in denen Steuergeräte oder allgemein eingebettete Systeme vorgesehen sind.
  • Das Rebooten des HSM ist einhergehend mit Verfahrensschritt a. ohne Anlegen einer Spannung, da bereits eine Spannung angelegt ist, so dass das HSM nun wiederum partiell gebootet wird und nun wiederum das dem HSM zugeordnete Flag überprüft wird, ob das Flag auf den ersten Wert oder zweiten Wert gesetzt ist.
  • Es ist ebenso denkbar, dass ein Zähler im HSM vorgesehen ist, welcher nach jeder negativ ausgefallenen Integritäts- und Authentifizierungsüberprüfung inkrementiert wird und bei einer vorgegebenen Zählerzahl das Verfahren unterbrochen wird, um ein weiteres Booten bzw. Rebooten des HSM zu verhindern, um Gefahren weiter zu minimieren. Ebenso ist es denkbar, dass der Zähler zurückgesetzt wird, wenn ein Booten des Host erkannt wird. Diese Erkennung kann beispielsweise durch das HSM erkannt werden, wenn die Aufforderung zum Booten des Host an den Host übermittelt wird oder worden ist.
  • Gemäß einer weiteren bevorzugten Ausführungsform ist es vorgesehen, dass sich nach dem Booten des Host das Steuergerät in einem normalen Betriebszustand befindet, wobei während des normalen Betriebszustands eine zyklische Integritäts- und Authentifizierungsüberprüfung der Software im HSM durchgeführt wird, wobei bei einer negativen Integritäts- und Authentifizierungsüberprüfung der Software das Flag auf den zweiten Wert gesetzt wird und bei einer positiven Integritäts- und Authentifizierungsüberprüfung das Flag auf den ersten Wert gesetzt wird.
  • Unter einem „normalen Betriebszustand“ ist zu verstehen, dass das Steuergerät im normalen Arbeitsmodus ist und entsprechend seiner hinterlegten Software und abhängig von übergeordneten und nebengeordneten Steuergeräten arbeitet.
  • Unter einer „zyklischen“ Integritäts- und Authentifizierungsüberprüfung ist eine wiederkehrende Integritäts- und Authentifizierungsüberprüfung zu verstehen, welche beispielsweise nach Ablauf einer vorgegebenen Zeitdauer und/oder nach Erkennen bestimmter Parameter durchgeführt wird.
  • Gemäß einer weiterführenden Ausführungsform wird nach der negativen zyklischen Integritäts- und Authentifizierungsüberprüfung der Software eine erneute Integritäts- und Authentifizierungsüberprüfung der Software durchgeführt, wobei nach jeder negativen Integritäts- und Authentifizierungsüberprüfung der Software ein Zähler inkrementiert wird und bei einer vorgegebenen Zählerzahl das Steuergerät in einen definierten Zustand gebracht wird.
  • Der Zähler kann dabei durch Erkennen einer positiven Integritäts- und Authentifizierungsüberprüfung zurückgesetzt werden, beispielsweise durch das HSM.
  • Dadurch, dass mehrere Male hintereinander eine negative Integritäts- und Authentifizierungsüberprüfung vorliegt, ist davon auszugehen, dass die Software manipuliert ist.
  • Es ist dabei natürlich auch ratsam, die vorgegebene Zählerzahl nicht zu hoch zu wählen, denn je länger eine schadhafte Software vorliegt, desto größer könnte der Schaden sein. Es ist dabei bevorzugt, dass die Zählerzahl 2 oder 3 beträgt.
  • Gemäß einer weiteren bevorzugten Ausführungsform wird nach der positiven Integritäts- und Authentifizierungsüberprüfung eine erneute Integritäts- und Authentifizierungsüberprüfung der Software durchgeführt.
  • Eine erneute Integritäts- und Authentifizierungsüberprüfung wird bevorzugt nach einer vorgegebenen Zeitdauer durchgeführt.
  • Durch eine zyklische Integritäts- und Authentifizierungsüberprüfung während des normalen Betriebszustands bzw. während der Laufzeit wird abhängig vom Ausgang der Integritäts- und Authentifizierungsüberprüfung das Flag entweder auf den ersten Wert oder den zweiten Wert gesetzt, wodurch bei einer Beendigung des normalen Betriebszustands darauf geschlossen werden kann, ob ein Fehler der Software vorliegt oder nicht.
  • Angenommen, das Flag ist auf den ersten Wert gesetzt und der normale Betriebszustand wird beendet, beispielsweise durch Ausschalten, so wird beim nächsten Boot-Vorgang des HSM erkannt, dass die Software korrekt hinterlegt ist, wodurch sofort mit dem Boot-Vorgang des Host weiter verfahren werden kann.
  • Weiter angenommen, das Flag ist auf den zweiten Wert gesetzt und der normale Betriebszustand wird beendet, so wird beim nächsten Boot-Vorgang des HSM erkannt, dass die Integritäts- und Authentifizierungsüberprüfung negativ ausgefallen ist und die Überprüfung der Software fehlgeschlagen ist. Ein Booten des Host wird erfindungsgemäß zunächst verhindert und das Verfahren entsprechend durchlaufen.
  • Gemäß einer weiteren bevorzugten Ausführungsform kann während des normalen Betriebszustands ein außerordentlicher Betriebszustand auftreten oder erkannt werden, welcher durch ein Softwareupdate hervorgerufen wird, wobei eine weitere Integritäts- und Authentifizierungsüberprüfung des Softwareupdates durchgeführt wird, wobei nach einer positiven Integritäts- und Authentifizierungsüberprüfung das Softwareupdate installiert wird, und wobei bevorzugt eine Integritäts- und Authentifizierungsüberprüfung der geupdateten Software durchgeführt wird und bei positiver Integritäts- und Authentifizierungsüberprüfung das Flag auf den ersten Wert gesetzt wird und das HSM rebootet wird; und wobei nach einer negativen Integritäts- und Authentifizierungsüberprüfung des Softwareupdates das Softwareupdate nicht installiert wird und das Steuergerät in einen vordefinierten Zustand gebracht wird und das HSM rebootet wird.
  • Unter dem außerordentlichen Betriebszustand, welcher durch ein Softwareupdate hervorgerufen wird, wird verstanden, dass das Steuergerät bzw. das HSM eine Aufforderung zum Updaten der Software erhält, so dass dies nicht dem normalen Betriebszustand bzw. der Betriebslaufzeit entsprechen kann.
  • Eine Aufforderung, die vorhandene Software zu updaten, könnte natürlich auch einen Manipulationsversuch an der Software bedeuten. Es ist daher vorgesehen, eine Integritäts- und Authentifizierungsüberprüfung des Softwareupdates durchzuführen, um eine Manipulation ausschließen zu können.
  • Wird festgestellt, dass das Softwareupdate den Vorgaben entspricht, also dass eine positive Integritäts- und Authentifizierungsüberprüfung vorliegt, so kann davon ausgegangen werden, dass kein Manipulationsversuch versucht wurde. Das Softwareupdate kann demnach installiert werden, erneut überprüft werden und bei positiver Überprüfung das Flag auf den ersten Wert gesetzt und das HSM rebootet werden.
  • Sollte die Integritäts- und Authentifizierungsüberprüfung negativ ausfallen, so wird ein Manipulationsversuch angenommen und dementsprechend das Softwareupdate nicht installiert. Das Steuergerät wird in einen vordefinierten Zustand gebracht und das HSM rebootet.
  • Vorzugsweise ist vorgesehen, dass während des normalen Betriebszustands bzw. der Betriebslaufzeit kein Update der Software installiert werden wird. Ein Update der Software ist einhergehend mit Änderungen, welche die Laufzeit beeinflussen, so dass von einem Update während der Laufzeit abzusehen ist.
  • Gemäß einer besonders bevorzugten Ausführungsform wird die Integritäts- und Authentifizierungsüberprüfung der Software durchgeführt durch Bildung eines Hashwertes der Software mittels des HSM und einem Vergleich mit einem originalen Hashwert der Software, welcher verschlüsselt bereitgestellt ist und mittels des HSM entschlüsselt wird, wobei die Integritäts- und Authentifizierungsüberprüfung positiv ist, wenn der Hashwert mit dem originalen Hashwert übereinstimmt.
  • Der originale Hashwert der Software ist in einem Bereich der Software hinterlegt und wird seitens des OEM-Anbieters oder dergleichen verschlüsselt mit der Software übertragen. Ein Entschlüsseln kann dabei beispielsweise durch asymmetrische Kryptosysteme durchgeführt werden, also beispielsweise mittels private key und public key, welche in der Software und dem HSM hinterlegt sind. Daher kann zunächst lediglich das HSM auf den originalen Hashwert zugreifen und diesen verwenden.
  • Ebenso kann das HSM einen Hashwert der Software bilden und diesen gebildeten Hashwert mit dem originalen Hashwert vergleichen. Stimmen der gebildete Hashwert und der originale Hashwert überein, so liegt eine positive Integritäts- und Authentifizierungsüberprüfung vor.
  • Gemäß einer weiteren bevorzugten Ausführungsform werden der Hashwert und der originale Hashwert in einem Hardware Trust Anchor hinterlegt. Der Hardware Trust Anchor kann dabei insbesondere ein Speicherbereich des HSM sein oder auch ein TPM (Trusted Platform Module), so dass diese Werte nicht manipuliert werden können.
  • Ebenso vorzugsweise kann vorgesehen sein, dass bei einem Softwareupdate, das tatsächlich installiert wird, die neuen Hashwerte des originalen Hashwerts und des neuen gebildeten Hashwerts die vorhergehenden Hashwerte ersetzen.
  • Ebenso ist erfindungsgemäß ein Steuergerät vorgesehen, welches vorgesehen und geeignet ist zum Durchführen des erfindungsgemäßen Verfahrens, umfassend einen Spannungsanschluss, ein HSM und einen Host, wobei das HSM einen Speicher mit einem darin hinterlegten Flag und eine Recheneinheit umfasst, und wobei der Host mindestens einen Mikrocontroller umfasst, wobei der HSM und der Host miteinander signaltechnisch verbunden sind.
  • Weiter bevorzugt ist der Speicher des HSM als Hardware Trust Anchor ausgebildet zum Speichern des originalen Hashwerts und des gebildeten Hashwerts. Ein Vergleich des originalen Hashwerts und des gebildeten Hashwerts kann vorzugsweise durch die Recheneinheit des HSM durchgeführt werden, wobei auch andere Recheneinheiten, beispielsweise übergeordnete oder nebengeordnete außerhalb des Steuergeräts, diesen Vergleich durchführen können. Die Berechnung wird jedoch besonders bevorzugt im HSM durchgeführt. Weiter vorzugsweise werden der Hashwert bzw. die Hashwerte im HSM abgespeichert.
  • Weitere vorteilhafte Ausführungsformen ergeben sich aus den Unteransprüchen.
  • Weitere Ziele, Vorteile und Zweckmäßigkeiten der vorliegenden Erfindung sind der nachfolgenden von der Beschreibung in Verbindung mit der Zeichnung zu entnehmen. Hierbei zeigen:
    • 1 Verfahren gemäß einer besonders bevorzugten Ausführungsform;
    • 2 zeigt einen Ausschnitt des Verfahrens gemäß einer bevorzugten Ausführungsform;
    • 3 Steuergerät gemäß einer bevorzugten Ausführungsform.
  • In den Figuren sind gleiche Bauteile jeweils mit den entsprechenden Bezugszeichen zu verstehen. Zur besseren Übersichtlichkeit können in machen Figuren Bauteile nicht mit einem Bezugszeichen versehen sein, die jedoch an anderer Stelle bezeichnet worden sind.
  • In der 1 ist ein erfindungsgemäßes Verfahren gemäß einer besonders bevorzugten Ausführungsform zu erkennen.
  • Dabei ist zur besseren Visualisierung insbesondere das Steuergerät 1, insbesondere der Mikrocontroller 1 des Steuergeräts und das darauf befindliche HSM 2 sowie ein Host 3 dargestellt, welche Teile des Steuergeräts bzw. des Mikrocontrollers sind.
  • Die jeweiligen Verfahrensschritte sind in der 1 entweder dem HSM 2 oder dem Host 3 zugeordnet.
  • Das hier gezeigte Verfahren gemäß einer Ausführungsform startet mit einem Schritt S0, wobei eine Spannung 4 an das Steuergerät 1 bzw. den Mikrocontroller 1 des Steuergeräts und insbesondere an das HSM 2 angelegt wird, wodurch das HSM 2 automatisch partiell bootet. Hierbei werden bevorzugt bestimmte Funktionen des HSM 2 freigegeben, beispielsweise Zugriff auf einen Speicher 5 (hier nicht dargestellt) und auf eine Recheneinheit 6 (hier nicht dargestellt). Besonders bevorzugt ist in dem Speicher 5 ein Flag abgespeichert, welches einen ersten Wert oder einen zweiten Wert aufweisen kann.
  • In einem nachfolgenden Schritt S1 wird überprüft, ob das Flag auf den ersten Wert oder den zweiten Wert gesetzt ist, bevorzugt mittels des HSM 2, und bevorzugter mittels der Recheneinheit 6 des HSM 2.
  • Falls das Flag auf den zweiten Wert gesetzt ist, wird mit dem Verfahrensschritt S2 weiter verfahren, in welchem eine Integritäts- und Authentifizierungsüberprüfung der Software durchgeführt wird, beispielsweise durch einen Vergleich des originalen Hashwerts der Software, welcher in der Software hinterlegt ist, mit einem gebildeten Hashwert der Software, welche bevorzugt mittels der Recheneinheit 6 berechnet wird. Ebenso ist es denkbar, dass Signaturen der Software überprüft werden.
  • Falls in einem Schritt S3 festgestellt wird, dass die Integritäts- und Authentifizierungsüberprüfung negativ ist, so wird in einem Schritt S5 das Steuergerät 1 mit dem HSM 2 in einen vordefinierten Zustand überführt und das HSM 2 rebootet, dargestellt im Schritt S6. Rebooten heißt hierbei insbesondere, dass das HSM 2 erneut partiell gebootet wird, wie im Schritt S0 dargestellt.
  • Falls hingegen im Schritt S3 festgestellt wird, dass die Integritäts- und Authentifizierungsüberprüfung positiv ist, so wird in einem nachfolgenden Schritt S4 das Flag auf den ersten Wert gesetzt und mit dem weiteren Schritt S6 fortgefahren, das heißt, rebooten des HSM 2.
  • Es sei hierbei angemerkt, dass die Integritäts- und Authentifizierungsüberprüfung auch außerhalb des HSM 2 durchgeführt werden kann, beispielsweise auf einem übergeordneten oder nebengeordneten Steuergerät. Es sei angemerkt, dass eine Integritäts- und Authentifizierungsüberprüfung nur vor dem Flashen der Software mittels eines anderen Steuergeräts durchgeführt werden kann. Sobald die Software bereits aufgespielt worden ist, kann keine Überprüfung mehr durch ein externes Steuergerät durchgeführt werden.
  • Falls im Schritt S2 jedoch erkannt wird, dass das Flag auf den ersten Wert gesetzt ist, so wird mit einer Vervollständigung des Bootens des HSM 2 durch Übermitteln einer Anforderung von dem HSM 2 an den Host 3 zum Booten des Host 3 in einem Schritt S2' fortgefahren. Im nachfolgenden Schritt S10 wird der Host 3 nun gebootet und in einem Schritt S11 in einen normalen Betriebszustand gebracht, welcher während der Laufzeit das Steuergerät 1 normal arbeiten lässt, dargestellt im Schritt S12.
  • Während des normalen Betriebszustands wird eine zyklische Integritäts- und Authentifizierungsüberprüfung der Software durchgeführt, dargestellt im Schritt S14. Die zyklische Integritäts- und Authentifizierungsüberprüfung wird in der nachfolgenden 2 näher dargestellt.
  • Weiter ist es denkbar, dass während der Laufzeit bzw. im normalen Betriebszustand ein Trigger 7 an das Steuergerät 1 übermittelt wird mit der Aufforderung eines Softwareupdates. Ein derartiger Trigger 7 könnte ein Manipulationsversuch sein, so dass dieser gesondert betrachtet werden muss. Der Host 3 wird aufgrund der Anforderung mittels des Trigger 7 von dem normalen Betriebszustand in einen außerordentlichen Betriebszustand gebracht, dargestellt durch den Verfahrensschritt S15. Nachfolgend wird mit dem Schritt S2 weiterverfahren, mit dem Durchführen einer Integritäts- und Authentifizierungsüberprüfung des Softwareupdates.
  • Verläuft die Integritäts- und Authentifizierungsüberprüfung positiv, so wird das Softwareupdate installiert und dabei vorzugsweise der in der Software hinterlegte originale Hashwert und der gebildete Hashwert der neuen Software in einem Hardware Trust Anchor hinterlegt und besonders bevorzugt die zuvor abgelegten Hashwerte überschrieben.
  • Weiter zurück zum normalen Betriebszustand ist es denkbar, dass der normale Betriebszustand beendet wird und daher das Steuergerät 1 von der Spannungsversorgung 4 getrennt wird (Schritt S16).
  • In der 2 ist der Schritt S14 als Ausschnitt A der 1 genauer dargestellt.
  • In einem Schritt S20 wird vorzugsweise mittels der Recheneinheit 6 der Hashwert der Software gebildet und in einem Schritt S21 geprüft, ob der gebildete Hashwert mit dem originalen Hashwert übereinstimmt.
  • Stimmt der gebildete Hashwert nicht mit dem originalen Hashwert überein, so wird das Flag auf den zweiten Wert gesetzt und mit dem Verfahrensschritt S22 fortgefahren, so dass eine erneute Überprüfung stattfindet. Vorzugsweise wird bei einer negativen Integritäts- und Authentifizierungsüberprüfung, hier dargestellt als Vergleich zwischen Hashwerten, ein Zähler 8 inkrementiert bis zu einem bestimmten Zählwert. Wird dieser Zählwert erreicht, so wird der normale Betriebszustand beendet (Schritt S13). Abhängig von dem vorliegenden Steuergerät wird vorzugsweise in einen vordefinierten sicheren Zustand gewechselt. Es ist ebenso denkbar, dass bereits nach der ersten negativen Integritäts- und Authentifizierungsüberprüfung der normale Betriebszustand beendet wird. Ein Zähler 8 wäre hierbei somit nicht notwendig.
  • Stimmt jedoch der gebildete Hashwert mit dem originalen Hashwert überein, so wird das Flag auf den ersten Wert gesetzt (Schritt S22') und anschließend mit dem Verfahrensschritt S20 weiterverfahren. Es ist auch denkbar, dass an dieser Stelle der (zyklische) Prüfschritt verlassen wird und nach einem Ablauf einer vorgegebenen Zeit und/oder nach Auftreten eines Events oder Triggers erneut durchgeführt wird.
  • In der weiteren 3 ist ein Mikrocontroller 1 gemäß einer bevorzugten Ausführungsform gezeigt. Der Mikrocontroller 1 umfasst: ein Hardware-Sicherheitsmodul 2, umfassend einen Speicher 5 und eine Recheneinheit 6, und einen Host 3, umfassend mindestens einen Mikrocontroller mit weiteren Recheneinheiten 9, und eine Spannungsversorgung 4.
  • In dem, bevorzugt als Hardware Trust Anchor (HTA) ausgebildeten, Speicher 5 ist insbesondere das Flag hinterlegt, in welchem vorzugsweise die originalen Hashwerte und die gebildeten Hashwerte hinterlegt werden können.
  • Sämtliche in den Anmeldungsunterlagen offenbarten Merkmale werden als erfindungswesentlich beansprucht, sofern sie einzeln oder in Kombination gegenüber dem Stand der Technik neu sind.
  • Bezugszeichenliste
  • 1
    Steuergerät/Mikrocontroller
    2
    Hardware-Sicherheitsmodul (HSM)
    3
    Host
    4
    Spannungsversorgung, Spannung
    5
    Speicher
    6
    Recheneinheit
    7
    Trigger
    8
    Zähler
    9
    Recheneinheit

Claims (10)

  1. Verfahren zum sicheren Booten eines Steuergeräts mit einem Mikrocontroller (1), umfassend ein Hardware-Sicherheitsmodul (HSM) (2) und einen Host (3), umfassend die Verfahrensschritte: a. Anlegen einer Spannung an das Steuergerät (1) und zumindest partielles Booten des HSM (2); b. Überprüfen, ob ein dem HSM (2) zugeordneter Flag auf einen ersten Wert oder einen zweiten Wert gesetzt ist; c. Falls das Flag auf den zweiten Wert gesetzt ist, Durchführen einer Integritäts- und Authentifizierungsüberprüfung einer dem Steuergerät (1) zugeordneten Software; und falls das Flag auf den ersten Wert gesetzt ist, Vervollständigen des Bootens des HSM (2) durch Übermitteln einer Aufforderung von dem HSM (2) an den Host (3) zum Booten des Host (3); d. falls die Integritäts- und Authentifizierungsüberprüfung positiv ist, setzen des Flag auf den ersten Wert und Rebooten des HSM (2); e. Erneutes überprüfen, ob das Flag auf den ersten Wert oder den zweiten Wert gesetzt ist, wobei falls nun erkannt wird, dass das Flag auf den ersten Wert gesetzt ist, Vervollständigen des Bootens des HSM (2) durch Übermitteln einer Aufforderung von dem HSM (2) an den Host (3) zum Booten des Host (3).
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass nach dem Überprüfen und dem Feststellen, dass das Flag auf den ersten Wert gesetzt ist und vor oder während dem Übermitteln der Aufforderung von dem HSM (2) an den Host (3) zum Booten des Host (3) das Flag auf den zweiten Wert gesetzt wird.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass falls im Verfahrensschritt d. die Integritäts- und Authentifizierungsüberprüfung negativ ist, das Steuergerät (1) in einen vordefinierten Zustand gebracht wird und das HSM (2) rebootet wird.
  4. Verfahren nach einem der Ansprüche 1-3, dadurch gekennzeichnet, dass nach dem Booten des Host (3) das Steuergerät (1) sich in einem normalen Betriebszustand befindet, wobei während des normalen Betriebszustands eine zyklische Integritäts- und Authentifizierungsüberprüfung der Software im HSM (2) durchgeführt wird, wobei bei einer negativen Integritäts- und Authentifizierungsüberprüfung der Software das Flag auf den zweiten Wert gesetzt wird und bei einer positiven Integritäts- und Authentifizierungsüberprüfung das Flag auf den ersten Wert gesetzt wird.
  5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass nach der negativen Integritäts- und Authentifizierungsüberprüfung der Software eine erneute Integritäts- und Authentifizierungsüberprüfung der Software durchgeführt wird, wobei nach jeder negativen Integritäts- und Authentifizierungsüberprüfung der Software ein Zähler (8) inkrementiert wird und bei einer vorgegebenen Zählerzahl das Steuergerät (1) in einen definierten Zustand gebracht wird.
  6. Verfahren nach Anspruch 4 oder 5, dadurch gekennzeichnet, dass nach der positiven Integritäts- und Authentifizierungsüberprüfung eine erneute Integritäts- und Authentifizierungsüberprüfung der Software durchgeführt wird.
  7. Verfahren nach einem der Ansprüche 4 bis 6, dadurch gekennzeichnet, dass während des normalen Betriebszustands ein außerordentlicher Betriebszustand auftreten kann, welcher durch ein Softwareupdate hervorgerufen wird, wobei eine weitere Integritäts- und Authentifizierungsüberprüfung des Softwareupdates durchgeführt wird, wobei nach einer positiven Integritäts- und Authentifizierungsüberprüfung das Softwareupdate installiert wird, das Flag auf den ersten Wert gesetzt wird und das HSM (2) rebootet wird; und wobei nach einer negativen Integritäts- und Authentifizierungsüberprüfung des Softwareupdates das Softwareupdate nicht installiert wird und das Steuergerät (1) in einen vordefinierten Zustand gebracht wird und das HSM (2) rebootet wird.
  8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass die Integritäts- und Authentifizierungsüberprüfung der Software durchgeführt wird durch Bildung eines Hashwerts der Software mittels des HSM (2) und einem Vergleich mit einem originalen Hashwert der Software, welcher verschlüsselt oder unverschlüsselt bereitgestellt ist und mittels des HSM (2) entschlüsselbar ist, wobei die Integritäts- und Authentifizierungsüberprüfung positiv ist, wenn der Hashwert mit dem originalen Hashwert übereinstimmt.
  9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass der Hashwert und der originale Hashwert in einem Hardware Trust Anchor hinterlegt werden.
  10. Steuergerät (1), welches vorgesehen und geeignet ist zum Durchführen eines Verfahrens nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass das Steuergerät (1) einen Spannungsanschluss, ein HSM (2) und einen Host (3) aufweist, wobei das HSM (2) einen Speicher (5) mit einem darin hinterlegten Flag und eine Recheneinheit (6) umfasst, und wobei der Host (3) mindestens eine Recheneinheit umfasst, wobei der HSM (2) und der Host (3) miteinander signaltechnisch verbunden sind.
DE102019127856.2A 2019-10-16 2019-10-16 Verfahren zum sicheren Booten eines Steuergeräts und Steuergerät Pending DE102019127856A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102019127856.2A DE102019127856A1 (de) 2019-10-16 2019-10-16 Verfahren zum sicheren Booten eines Steuergeräts und Steuergerät

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019127856.2A DE102019127856A1 (de) 2019-10-16 2019-10-16 Verfahren zum sicheren Booten eines Steuergeräts und Steuergerät

Publications (1)

Publication Number Publication Date
DE102019127856A1 true DE102019127856A1 (de) 2021-04-22

Family

ID=75268447

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019127856.2A Pending DE102019127856A1 (de) 2019-10-16 2019-10-16 Verfahren zum sicheren Booten eines Steuergeräts und Steuergerät

Country Status (1)

Country Link
DE (1) DE102019127856A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021212994B3 (de) 2021-11-18 2023-04-20 Continental Automotive Technologies GmbH Verfahren zur Erkennung von auf eine Manipulation hindeutenden Anomalien während eines sicheren Startvorgangs einer softwaregesteuerten Vorrichtung

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805882A (en) * 1996-07-19 1998-09-08 Compaq Computer Corporation Computer system and method for replacing obsolete or corrupt boot code contained within reprogrammable memory with new boot code supplied from an external source through a data port
US6167532A (en) * 1998-02-05 2000-12-26 Compaq Computer Corporation Automatic system recovery
US7549042B2 (en) * 2003-12-16 2009-06-16 Microsoft Corporation Applying custom software image updates to non-volatile storage in a failsafe manner
US8839224B2 (en) * 2006-08-24 2014-09-16 Bby Solutions, Inc. System and method for automatically updating the software of a networked personal audiovisual device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805882A (en) * 1996-07-19 1998-09-08 Compaq Computer Corporation Computer system and method for replacing obsolete or corrupt boot code contained within reprogrammable memory with new boot code supplied from an external source through a data port
US6167532A (en) * 1998-02-05 2000-12-26 Compaq Computer Corporation Automatic system recovery
US7549042B2 (en) * 2003-12-16 2009-06-16 Microsoft Corporation Applying custom software image updates to non-volatile storage in a failsafe manner
US8839224B2 (en) * 2006-08-24 2014-09-16 Bby Solutions, Inc. System and method for automatically updating the software of a networked personal audiovisual device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021212994B3 (de) 2021-11-18 2023-04-20 Continental Automotive Technologies GmbH Verfahren zur Erkennung von auf eine Manipulation hindeutenden Anomalien während eines sicheren Startvorgangs einer softwaregesteuerten Vorrichtung
WO2023088523A1 (de) 2021-11-18 2023-05-25 Continental Automotive Technologies GmbH Verfahren zur erkennung von auf eine manipulation hindeutenden anomalien während eines sicheren startvorgangs einer softwaregesteuerten vorrichtung

Similar Documents

Publication Publication Date Title
DE69923466T2 (de) Vorrichtung zur überprüfung der integrität und berechtigung eines computerprogramms vor seiner ausführung auf einer lokalen plattform
DE102016215914A1 (de) Absichern einer Gerätenutzungsinformation eines Gerätes
DE102013213314A1 (de) Hinterlegen mindestens eines berechenbaren Integritätsmesswertes in einem Speicherbereich eines Speichers
DE102016221108A1 (de) Verfahren zum Aktualisieren einer Software eines Steuergeräts eines Fahrzeugs
DE102010002472A1 (de) Verfahren zum Verifizieren eines Speicherblocks eines nicht-flüchtigen Speichers
DE102020003072B3 (de) Verfahren zur sicheren Nutzung von kryptografischem Material
DE102015115287A1 (de) Verfahren und vorrichtung zum prüfen eines identifikators
EP3811261B1 (de) Kryptografiemodul und betriebsverfahren hierfür
DE102019127856A1 (de) Verfahren zum sicheren Booten eines Steuergeräts und Steuergerät
EP3752911B1 (de) Verfahren zum installieren eines programmcodepakets in ein gerät sowie gerät und kraftfahrzeug
DE102013021231A1 (de) Verfahren zum Betrieb eines Assistenzsystems eines Fahrzeugs und Fahrzeugsteuergerät
WO2015135704A1 (de) Vorrichtung und verfahren zum detektieren einer manipulation an einem programmcode
WO2004114131A1 (de) Verfahren zum nachladen einer software in den bootsektor eines programmierbaren lesespeicher
DE102018211139A1 (de) Steuergerät sowie Verfahren zu dessen Betrieb
DE10131577A1 (de) Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation seines Programms
EP1892639B1 (de) Sichere Programmcodeausführung
EP3074862B1 (de) Verfahren für einen sicheren hochfahrablauf eines elektronischen systems
DE102021212994B3 (de) Verfahren zur Erkennung von auf eine Manipulation hindeutenden Anomalien während eines sicheren Startvorgangs einer softwaregesteuerten Vorrichtung
DE102015218882A1 (de) Verfahren und Vorrichtung zum Prüfen von Berechnungsergebnissen in einem System mit mehreren Recheneinheiten
DE102019003673B3 (de) Seitenkanalsichere Implementierung
DE102022128183B3 (de) Verfahren zum Starten einer Datenverarbeitungseinrichtung, Datenverarbeitungseinrichtung und Kraftfahrzeug
EP4261722A1 (de) Ausgeben einer gemeinsamen, kryptographisch geschützten gerätekonfigurationsinformation
DE102007049151B4 (de) Verfahren zur Durchführung einer automotiven Anwendung
EP3876123A1 (de) Anordnung und betriebsverfahren für einen sicheren hochfahrablauf einer elektronischen einrichtung
DE112015002881T5 (de) Speichervorrichtung, Flash-Speicher-Steuervorrichtung und Programm

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication