DE102018211139A1 - Steuergerät sowie Verfahren zu dessen Betrieb - Google Patents

Steuergerät sowie Verfahren zu dessen Betrieb Download PDF

Info

Publication number
DE102018211139A1
DE102018211139A1 DE102018211139.1A DE102018211139A DE102018211139A1 DE 102018211139 A1 DE102018211139 A1 DE 102018211139A1 DE 102018211139 A DE102018211139 A DE 102018211139A DE 102018211139 A1 DE102018211139 A1 DE 102018211139A1
Authority
DE
Germany
Prior art keywords
public key
memory area
control device
target application
digital signature
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
DE102018211139.1A
Other languages
English (en)
Inventor
Nils Boecher
Andreas Wenda
Andreas Rausch
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 DE102018211139.1A priority Critical patent/DE102018211139A1/de
Publication of DE102018211139A1 publication Critical patent/DE102018211139A1/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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements

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)
  • Stored Programmes (AREA)

Abstract

Steuergerät, gekennzeichnet durch folgende Merkmale:
- das Steuergerät umfasst einen programmierbaren Speicher,
- der programmierbare Speicher umfasst einen ersten Speicherbereich (10), einen zweiten Speicherbereich (20) mit einem Bootloader (21) und einen dritten Speicherbereich (30) mit einer Zielapplikation (31),
- der erste Speicherbereich (10) enthält einen ersten öffentlichen Schlüssel (12),
- der zweite Speicherbereich (20) enthält eine erste digitale Signatur (22) und einen vom ersten öffentlichen Schlüssel (12) verschiedenen zweiten öffentlichen Schlüssel (23),
- der dritte Speicherbereich (30) enthält eine zweite digitale Signatur (32),
- das Steuergerät ist dazu eingerichtet, anhand des ersten öffentlichen Schlüssels (12) und der ersten digitalen Signatur (22) den Bootloader (21) zu authentifizieren und
- der Bootloader (21) ist dazu eingerichtet, anhand des zweiten öffentlichen Schlüssels (23) und der zweiten digitalen Signatur (32) die Zielapplikation (31) zu authentifizieren.
Bereitgestellt wird ferner ein Verfahren zum Betrieb eines Steuergerätes.

Description

  • Die vorliegende Erfindung betrifft ein Steuergerät, insbesondere ein Motorsteuergerät und ein Verfahren zu dessen Betrieb.
  • Stand der Technik
  • In der Steuerungs- und Regelungstechnik wird als eingebettetes System (embedded system) jedweder elektronische Rechner oder Computer bezeichnet, der in einen technischen Kontext eingebunden und in diesem Sinne „eingebettet“ ist. Dabei übernimmt der Rechner Überwachungs-, Steuer- oder Regelfunktionen oder ist für eine Form der Daten- bzw. Signalverarbeitung zuständig, beispielsweise das Ver- bzw. Entschlüsseln, Codieren bzw. Decodieren oder Filtern.
  • Eingebettete Systeme nach dem Stand der Technik finden Anwendung in einer Vielzahl von Anwendungsbereichen und Geräten, beispielsweise in kraftfahrzeugtechnischen Steuergeräten (electronic control units, ECUs), Medizintechnik, Luft- und Raumfahrt, Haushaltsgeräten, Unterhaltungselektronik, Netzwerkgeräten oder Mobiltelefonen.
  • Zum Schutz vor Softwaremanipulationen ist in verschiedenen Produktplattformen die Applikation an das Gerät angepasst und irreversibel geschützt. Im Falle eines Motorsteuergerätes beispielsweise wird mitunter ein abgegrenzter Speicherblock und der darin enthaltene öffentliche Schlüssel mit Metadaten wie einer eindeutigen Kennung des Hauptprozessors (central processing unit, CPU) oder einer Seriennummer des Gerätes gesichert. Hierzu dienen etwa sogenannte Fuse-Bits des verwendeten Mikrocontrollers, die - einmal ähnlich einer „Schmelzsicherung“ (fuse) werksseitig konfiguriert - softwaremäßig nicht verändert werden können. Im Rahmen der Serienfertigung dient dieser fachsprachlich als „Fusen“ bezeichnete Verfahrensschritt zur Finalisierung des Steuergerätes, nachdem letzteres mit einer vorgesehenen Basissoftware (firmware) und Anwendungssoftware programmiert wurde. Auf diese Weise kann insbesondere eine unerlaubte Leistungssteigerung von Kfz-Motoren (chip tuning) durch nachträgliche Änderung der werksseitig festgelegten Steuerparameter unterbunden werden.
  • DE 10 2012 110 559 A1 offenbart ein Verfahren zum Authentifizieren eines Stücks von Firmware, welche auf einen Controller heruntergeladen werden soll. Das Verfahren beinhaltet das Signieren der Firmware oder eines ersten Teils der Firmware mit einem ersten privaten Schlüssel in einer ersten vertrauenswürdigen Quelle und das Signieren der Firmware oder eines zweiten Teils der Firmware mit einem zweiten privaten Schlüssel in einer zweiten vertrauenswürdigen Quelle. Das Verfahren beinhaltet ferner das Validieren der signierten Firmware oder des ersten Teils der Firmware unter Verwendung eines ersten öffentlichen Schlüssels in dem Controller und das Validieren der Firmware oder des zweiten Teils der Firmware unter Verwendung eines zweiten öffentlichen Schlüssels in dem Controller. Das Verfahren beinhaltet ferner das Authentifizieren der Firmware, falls die Firmware oder der erste Teil der Firmware von dem ersten öffentlichen Schlüssel in dem Controller validiert wird und die Firmware oder der zweite Teil der Firmware von dem zweiten öffentlichen Schlüssel in dem Controller validiert wird.
  • DE 10 2012 109 619 A1 offenbart ein Verfahren zum Bereitstellen digitaler Signaturen zum Authentifizieren der Quelle und des Inhalts von binären Files, welche in eingebettete Steuergeräte von Automobilen flashprogrammiert werden. Ein Teil eines elektronischen Inhalts wird auf einem Signier-Server durch das Erzeugen eines Hash-Werts und dem Verschlüsseln mit dem privaten Schlüssel des Signierers digital signiert. Das Inhalt-File und die digitalen Signatur-Files werden dann unter Verwendung eines von mehreren alternativen Ansätzen an ein Programmierwerkzeug geliefert, welches wiederum die Inhalt- und Signatur-Files auf das Steuergerat, auf dem der Inhalt ausgeführt werden wird, lädt. Das Steuergerät verifiziert den Inhalt durch Entschlüsseln des Signatur-Files, um den Hash-Wert wiederherzustellen und den entschlüsselten Hash-Wert mit einem Hash-Wert, der aus dem Inhalt selbst berechnet wurde, zu vergleichen.
  • DE 10 2014 208 385 A1 offenbart Verfahren zum sicheren Laden von Softwareobjekten in eine elektronische Steuereinheit. Die Verfahren enthalten das Empfangen eines ersten Softwareobjektes mit einem Zertifikat des öffentlichen Schlüssels einer zweiten Ebene, einer ersten Verschlüsselungs-Signatur und einem ersten Satz Software. Sobald das erste Softwareobjekt empfangen wird, Validieren des Zertifikats des öffentlichen Schlüssels der zweiten Ebene mit dem öffentlichen Root-Schlüssel, der ersten Verschlüsselungssignatur mit dem Zertifikat des öffentlichen Schlüssels der zweiten Ebene und des ersten Satzes Software mit der ersten Verschlüsselungssignatur. Wenn der erste Satz Software gültig ist, dann werden das Zertifikat des öffentlichen Schlüssels der zweiten Ebene und der erste Satz Software in dem nichtflüchtigen Speicher gespeichert. Sobald gespeichert, wird ein konsekutives Softwareobjekt mit nur einer konsekutiven Verschlüsselungs-Signatur und einem konsekutiven Satz Software von der Programmierquelle empfangen. Die konsekutive Verschlüsselungs-Signatur wird mit dem gespeicherten Zertifikat des öffentlichen Schlüssels der zweiten Ebene validiert und der konsekutive Satz Software wird mit der konsekutiven Verschlüsselungs-Signatur validiert.
  • DE 10 2012 109 617 A1 offenbart ein System und Verfahren zum Schreiben eines neuen öffentlichen Schlüssels oder eines öffentlichen Ersatzschlüssels in einen Bootloader, der in einem Speichersegment in dem Speicher einer ECU eines Fahrzeugs abgespeichert ist, ohne dass der gesamte Bootloader neu geschrieben werden muss. Das Verfahren beinhaltet das Definieren einer Schlüsseltabelle in dem Bootloader-Speichersegment, welches eine Zahl von vakanten Speicherplätzen beinhaltet, die verfügbar sind, um öffentliche Ersatzschlüssel, wenn diese benötigt werden, zu speichern. Die Schlüsseltabelle ist eine separate Sektion auf dem Bootloader-Speichersegment, so dass die Schlüssel-Tabellen-Speicherplätze nicht von dem Bootloader-Code verwendet werden.
  • Offenbarung der Erfindung
  • Die Erfindung stellt ein Steuergerät, insbesondere ein Motorsteuergerät, sowie ein Verfahren zu dessen Betrieb gemäß den unabhängigen Ansprüchen bereit.
  • Der erfindungsgemäße Ansatz fußt auf der Erkenntnis, dass die Neuprogrammierung (flashing) eines Steuergerätes mit einer aktualisierten Softwareversion - selbst bei deren erwiesener Kompatibilität mit der Hardwareplattform - bei herkömmlichen Steuergeräten oft nur möglich ist, wenn diese Software mit demselben privaten Schlüssel signiert wurde wie die zuvor auf dem Steuergerät gespeicherte Software. Diese Einschränkung ist dem Umstand geschuldet, dass der im Steuergerät hinterlegte und zur Authentifizierung der Software erforderliche öffentliche Schlüssel nach werksseitiger Finalisierung des Steuergerätes zumeist nicht mehr geändert werden kann. Der beschriebene Sachverhalt spielt insbesondere in der kommerziell bedeutsamen Nachserienversorgung (aftermarket) eine wichtige Rolle: Sollen beispielsweise einmal programmierte, jedoch mangels Nachfrage nicht eingesetzte Steuergeräte einem anderen Zweck zugeführt oder ausgediente Geräte wiederaufbereitet werden, so ist dies nach dem Stand der Technik ohne den privaten Schlüssel des Erstausrüsters (original equipment manufacturer, OEM) schwerlich zu bewerkstelligen. Dies führt dazu, dass konventionelle Steuergeräte in den beschriebenen Szenarien für eine Neuprogrammierung insbesondere mit Zielapplikationen eines anderen Herausgebers nicht mehr nutzbar sind und in der Regel nur noch als obsolet entsorgt werden können.
  • Ein Kerngedanke des vorliegend offenbarten Ansatzes besteht somit darin, eine Separation der Ziel-Applikation zum jeweiligen Steuergerät herzustellen. Im Gegensatz zu dem durch DE 10 2014 208 385 A1 verkörperten nächstliegenden Stand der Technik, welcher von einer gemeinsamen Quelle von Firmware und Anwendungssoftware des Steuergerätes ausgeht, können auf diese Weise Softwarekomponenten verschiedener Herausgeber auf demselben Steuergerät zum Einsatz kommen, die ihre Komponenten marktüblich mit unterschiedlichen privaten Schlüsseln signieren. Ähnlich herkömmlichen Steuergeräten kommt hierbei vorzugsweise ein sogenannter Urlader (bootloader) zum Einsatz, welcher einen dem Steuergerät zugeordneten ersten öffentlichen Schlüssel manipulationssicher verwaltet. Erfindungsgemäß kommt dem Bootloader jedoch eine erweiterte Funktion zu, da er zudem zweite öffentliche Schlüssel der auf dem Steuergerät installierten Softwareapplikationen verwaltet, signiert ablegt, schützt und die Gültigkeit dieser zweiten öffentlichen Schlüssel verifiziert. Diese gegen Überschreiben ungeschützten zweiten öffentlichen Schlüssel können - im Gegensatz zum irreversibel geschützten, dem Steuergerät und dessen Bootloader dauerhaft zugeordneten ersten öffentlichen Schlüssel - auch nach der Finalisierung des Steuergerätes noch ausgetauscht werden, um bestehende Zielapplikationen zu aktualisieren oder gänzlich zu ersetzen.
  • Ein Vorzug dieser nachfolgend beschriebenen Lösung liegt somit in der erfindungsgemäß eröffneten Möglichkeit, Steuergeräte, die mit einem öffentlichen Schlüssel für ihre jeweilige Zielapplikation geschützt sind, neu zu programmieren. Durch diese Fähigkeit wiederum wird ein Austausch der Zielapplikation im Steuergerät auch ohne den privaten Schlüssel des Erstausrüsters in beliebigen Werkstätten ermöglicht. Statt der Zielapplikation wird hierzu erfindungsgemäß der zweite öffentliche Schlüssel der Zielapplikation mit dem ersten privaten Schlüssel des Steuergerätes signiert. Diese lediglich zweistufige Architektur verleiht dem Steuergerät somit eine besondere Flexibilität, ohne jedoch die Komplexität seiner Hardware oder Software übermäßig zu erhöhen.
  • Durch die in den abhängigen Ansprüchen aufgeführten Maßnahmen sind vorteilhafte Weiterbildungen und Verbesserungen des im unabhängigen Anspruch angegebenen Grundgedankens möglich. So kann der Speicher des Steuergerätes in einen ersten Speicherbereich mit Sicherheitsanwendungen, einen zweiten Speicherbereich mit dem Bootloader, einer Vektortabelle und mehreren öffentlichen Schlüsseln sowie einen dritten Speicherbereich mit ebenso vielen Zielapplikationen unterteilt sein. Diese Konfiguration erlaubt es dem Bootloader, den Schlüsseln anhand der Vektortabelle wahlweise eine der Zielapplikationen und Signaturen zuzuordnen, sodass das Steuergerät mit einer Vielzahl von Zielapplikationen unterschiedlicher Erstausrüster programmiert werden mag.
  • Ferner kann das Steuergerät dazu vorkonfiguriert sein, einen ersten öffentlichen Schlüssel samt erster digitaler Signatur von einem externen Trustcenter abzurufen und zumindest diesen ersten öffentlichen Schlüssel zum Schutz des Steuergerätes vor unerlaubter Manipulation unveränderlich im ersten Speicherbereich abzulegen, indem der erste Speicherbereich nach dem Ablegen gegen ein Überschreiben geschützt wird. Auf diese Weise kann ein unabhängiger Zertifizierungsdienstleister oder eine anderweitige vertrauenswürdige Instanz den zur Aktualisierung des Steuergerätes benötigten ersten privaten Schlüssel verwalten.
  • Ferner kann der Bootloader dazu eingerichtet sein, über das Trustcenter mehrmalig die Zielapplikation, den zweiten öffentlichen Schlüssel und die zweite digitale Signatur abzurufen, den im zweiten Speicherbereich abgelegten zweiten öffentlichen Schlüssel durch den abgerufenen zweiten öffentlichen Schlüssel, die im dritten Speicherbereich abgelegte zweite digitale Signatur durch die abgerufene zweite digitale Signatur und die im dritten Speicherbereich hinterlegte Zielapplikation durch die abgerufene Zielapplikation zu ersetzen. Auf diese Weise kann die Zielapplikation gleichsam beliebig oft ersetzt oder um weitere Applikationen ergänzt werden.
  • Ferner kann vorgesehen sein, dass die Vektortabelle nach dem Ersetzen der Zielapplikation neu aufgebaut wird. So können Zielapplikationen unterschiedlicher Anbieter unabhängig voneinander aktualisiert werden, ohne die Funktionsfähigkeit der übrigen Applikationen zu beeinträchtigen.
  • Ferner kann vorgesehen sein, dass der zweite öffentliche Schlüssel und die Vektortabelle innerhalb des zweiten Speicherbereiches vor Schreibzugriffen der Zielapplikationen geschützt sind. Dieses Vorgehen erhöht die Manipulationssicherheit.
  • Ferner kann der Bootloader dazu eingerichtet sein, die ersten öffentlichen Schlüssel der Zielapplikationen anhand des ersten öffentlichen Schlüssels des Steuergerätes zu authentifizieren. Auf diesem Wege entsteht eine lückenlose Vertrauenskette (chain of trust), die ihren Ursprung in der vom Hersteller bescheinigten Identität der Gerätehardware findet.
  • Ferner kann vorgesehen sein, dass der erste Speicherbereich ein erstes digitales Zertifikat, welches den ersten öffentlichen Schlüssel umfasst, und der zweite Speicherbereich ein zweites digitales Zertifikat speichert, welches den zweiten öffentlichen Schlüssel umfasst. Da digitale Zertifikate insbesondere die zu ihrer Prüfung erforderlichen Daten enthalten, können Authentizität und Integrität auf diese Weise durch standardisierte kryptografische Verfahren geprüft werden.
  • Der erste Speicherbereich mag hierbei die Gestalt eines Hardware-Sicherheitsmodules (Hardware security module, HSM) annehmen, welches für eine effiziente Ausführung der Sicherheitsanwendungen bürgt und insbesondere Bootloader und ersten öffentlichen Schlüssel gegen Seitenkanal- und sonstige physische Angriffe schützt.
  • Ferner mag das Steuergerät als Motorsteuergerät ausgebildet sein. Auf diese Weise kann etwa ein Fahrzeug gegen unerlaubte Leistungssteigerungen geschützt werden.
  • Ferner kann ein Verfahren zum Betrieb eines Steuergerätes mit folgenden Merkmalen vorgesehen sein: Anhand von Metadaten des Steuergerätes wird ein asymmetrisches Schlüsselpaar aus dem ersten öffentlichen Schlüssel und einem ersten privaten Schlüssel generiert, die Metadaten und der erste private Schlüssel werden in eine Datenbank außerhalb des Steuergerätes eingetragen und der erste öffentliche Schlüssel wird unveränderlich in einem ersten Speicherbereich des Steuergerätes abgelegt. Dabei können eine für das Steuergerät vorgesehene Zielapplikation mit einer zweiten digitalen Signatur versehen, das Steuergerät mit der Zielapplikation und einem zu der Zielapplikation gehörigen zweiten öffentlichen Schlüssel programmiert werden, der Zielapplikation zugehörige digitale Zertifikate, welche den zweiten öffentlichen Schlüssel umfassen, mit einem zum Steuergerät zugehörigen ersten privaten Schlüssel signiert werden, sodass eine dritte digitale Signatur gebildet wird, und zumindest die digitalen Zertifikate nach dem Signieren zusammen mit der dritten digitalen Signatur in einem zweiten Speicherbereich des Steuergerätes abgelegt werden. Dieses Vorgehen erschließt die vorteilhafte Ersteinrichtung des oben beschriebenen Steuergerätes und ermöglicht dessen einfache Aktualisierung.
  • Ferner kann vorgesehen sein, dass die digitalen Zertifikate nach dem Signieren in einem Trustcenter hinterlegt werden. Auf diese Weise kann ein unabhängiger Zertifizierungsdienstleister oder eine anderweitige vertrauenswürdige Instanz nicht nur die öffentlichen Schlüssel, sondern auch die zu deren Prüfung erforderlichen Daten verwalten.
  • Ferner kann vorgesehen sein, dass das Steuergerät durch eine In-System-Programmierung (in-circuit programming) mit dem Bootloader programmiert wird. Der zu programmierende Schaltkreis muss auf diese Weise nicht mehr aus dem Steuergerät entfernt werden. Letzteres wird so weniger mechanisch belastet und der gesamte Programmiervorgang ist schneller.
  • Schließlich kann vorgesehen sein, dass die Zielapplikation vor einer Ausführung durch den Bootloader in genau zwei Schritten authentifiziert wird. Somit wird gegenüber bekannten Verfahren ein Schritt eingespart.
  • Figurenliste
  • Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Es zeigen:
    • 1 einen ersten erfindungsgemäßen Speicheraufbau eines Steuergerätes.
    • 2 einen zweiten erfindungsgemäßen Speicheraufbau des Steuergerätes.
    • 3 die Erstellung und Ablage eines asymmetrischen Schlüsselpaares für das Steuergerät.
    • 4 das Softwareupdate einer neuen Zielapplikation mit neuem zweiten öffentlichen Schlüssel.
    • 5 den Ablaufplan eines exemplarischen Betriebsverfahrens.
  • Ausführungsformen der Erfindung
  • 1 veranschaulicht schematisch den programmierbaren Speicher eines Steuergerätes gemäß einer Ausführungsform der Erfindung, der einen ersten Speicherbereich 10, einen zweiten Speicherbereich 20 sowie einen dritten Speicherbereich 30 umfasst. Der für Sicherheitsanwendungen 11 des Steuergerätes vorgesehene erste Speicherbereich 10 speichert einen dem Steuergerät öffentlich zugeordneten ersten Schlüssel 12. Der zweite Speicherbereich 20 enthält den erfindungsgemäß ausgebildeten Bootloader 21 des Steuergerätes, die dem Steuergerät und dessen Bootloader 21 zugeordnete erste digitale Signatur 22, einen gesicherten Bereich, in welchem wiederum ein den Zielapplikationen 31 des Steuergerätes öffentlich zugeordneter zweiter Schlüssel 23 hinterlegt ist, sowie eine Index-Vektortabelle 24, welche die Zugehörigkeit der jeweils verwendeten Zielapplikation 31 zum jeweiligen zweiten öffentlichen Schlüssel 23 definiert. Die Zielapplikation 31 selbst trägt ihrerseits eine zweite digitale Signatur 32.
  • Es versteht sich, dass die Zielapplikation 31 darüber hinaus eine konventionelle Befehlsvektortabelle (instruction vector table, IVT) oder anderweitige, hier im Einzelnen nicht aufgeführte Datenstrukturen umfassen mag, ohne den Rahmen der Erfindung zu verlassen.
  • Im Zuge des Bootvorganges des Steuergerätes erfolgt zunächst eine Authentifizierung des Bootloaders. Dazu wird ein Streuwert (hash) - zum Beispiel eine Prüfsumme (checksum) - des Bootloaders 21 bestimmt. Zudem wird die dem Bootloader zugeordnete erste digitale Signatur 22 mit dem zugehörigen, unveränderlich hinterlegten ersten öffentlichen Schlüssel 12 entschlüsselt. Sodann wird geprüft, ob der in der ersten digitalen Signatur 22 angegebene Wert dem wie beschrieben gewonnenen Hashwert des Bootloaders 21 entspricht. Ist dies der Fall, so wurde der Bootloader erfolgreich authentifiziert.
  • Für eine durch den erfolgreich authentifizierten Bootloader 21 vorgenommene Authentifizierung der Zielapplikation 31 sind dann lediglich zwei Authentifizierungsschritte durch den Bootloader 21 nötig , nämlich eine erste Authentifizierung des der gemäß der Vektortabelle 24 ausgewählten Zielapplikation 31 zugeordneten zweiten öffentlichen Schlüssels 23 mittels des ersten öffentlichen Schlüssels 12 und eine zweite Authentifizierung der per Vektortabelle 24 ausgewählten Zielapplikation 31 mittels des zugehörigen authentifizierten zweiten öffentlichen Schlüssels 23.
  • Dies ist im Folgenden näher erläutert.
  • Im Falle einer erfolgreichen Authentifizierung des Bootloaders bestimmt die Vektortabelle 24 darüber, welche Zielapplikation 31 im Rahmen des Bootvorganges ausgeführt werden soll. Hierzu wird der im zweiten Speicherbereich 20 hinterlegte zweite öffentliche Schlüssel 23 verwendet und das weitere Validierungsverfahren in Form einer - dem Fachmann als solche hinlänglich bekannten - Signaturüberprüfung eingeleitet, in deren Rahmen der Bootloader 21 anhand des ersten öffentlichen Schlüssels 12 den zweiten öffentlichen Schlüssel 23 authentifiziert. Im Falle des oftmals eingesetzten RSA-Verfahrens würde hierzu beispielsweise anhand des öffentlichen Schlüssels (e, N) der modulare Exponent m ≡ ce mod N der Signatur c berechnet und mit der Zielapplikation bzw. deren Streuwert verglichen. Mit dem solchermaßen authentifizierten zweiten öffentlichen Schlüssel 23 wird die Zielapplikation 31 schließlich anhand ihres Hashwertes authentifiziert.
  • 2 beschreibt die Speicherbelegung einer Variante des Steuergerätes, die wahlweise eine von vorliegend zwei Zielapplikationen 31 verschiedener Herausgeber mit entsprechend unterschiedlichen zweiten digitalen Signaturen 32 auszuführen vermag, die gemeinsam im dritten Speicherbereich 30 vorgehalten werden. Der Bootloader 21 verwaltet im zweiten Speicherbereich 20 entsprechend zwei verschiedene zweite öffentliche Schlüssel 23, welche er anhand der folgenden Index-Vektortabelle 24 jeweils eindeutig einer der beiden Zielapplikationen 31 zuordnen kann. Der Begriff „Zielapplikationen“ ist hierbei wie auch in den nachfolgenden Ausführungen stets in einem weiten Sinne zu deuten und umfasst neben reiner Anwendungssoftware beispielsweise unterschiedliche, möglicherweise verschiedenen Betriebssystem-Distributionen zugehörige Betriebssystemkerne (kernels).
  • Eine Zusammenschau der 3 und 4 mit dem Programmablaufplan 51 der 5 verdeutlicht schematisch einen typischen Produktlebenszyklus des Steuergerätes.
  • Die gemäß 3 erfolgende erstmalige Initialisierung eines Steuergerätes 40 sieht die Erstellung (Prozess 52 - 5) eines gerätespezifischen Schlüsselpaares nach dem bekannten Prinzip eines asymmetrischen Kryptosystems oder Public-Key-Verschlüsselungsverfahrens vor. Ein derartiges „asymmetrisches“ Schlüsselpaar besteht aus einem sogenannten privaten und einem öffentlichen Schlüssel, bei welchem es sich vorliegend um den ersten Schlüssel 12 im Sinne der obigen Ausführungen handelt. Beide Schlüssel des Paares werden anhand eines gegebenen Sicherheitsparameters wie einer Zufallszahl üblicherweise mittels einer mathematisch praktisch unumkehrbaren sogenannten Einwegfunktion erzeugt. Das Steuergerät 40 wurde zu diesem Zeitpunkt vorliegend bereits mit dem Softwarecode des Bootloader 21 und ggf. der Sicherheitsanwendungen 11 programmiert. Auch dieser Schritt kann nach einem konventionellen Verfahren wie der sogenannten In-System-Programmierung erfolgen.
  • Das Steuergerät 40 stellt nun eine Anfrage an ein Trustcenter 80 und fordert letzteres auf, das besagte Schlüsselpaar zu generieren. Hierzu werden Metadaten wie eine eindeutige Kennung des Hauptprozessors (central processing unit, CPU) sowie der zur Erzeugung der ersten digitalen Signatur 22 genutzte Hashwert des Bootloaders 21 herangezogen. Das Trustcenter 80 seinerseits generiert sodann das Schlüsselpaar und aus dem dabei erzeugten ersten privaten Schlüssel und dem Hashwert des Bootloaders die erste digitale Signatur 22, trägt die übermittelten Metadaten sowie den erzeugten ersten privaten Schlüssel des Steuergerätes 40 in eine gesicherte Datenbank 90 ein (Prozess 53 - 5) und übergibt dem Steuergerät 40 die erste digitale Signatur 22 und den zugehörigen öffentlichen ersten Schlüssel 12. Letzterer wird schließlich in einem weiteren Bereich des Steuergerätes 40 irreversibel geschützt, z.B. durch Brennen (fusen) des ersten öffentlichen Schlüssels 12 in den ersten Speicherbereich 10 (Prozess 54 - 5).
  • Es sei bemerkt, dass die hier nicht im Einzelnen erörterten Übertragungswege der Daten innerhalb einer Fertigungsumgebung verlaufen und daher gegen Manipulationen geschützt sind.
  • Zum Zwecke eines in 4 exemplarisch dargestellten Software-Updates mit einer neuen Zielapplikation 31 signiert ein Software-Verantwortlicher die aktualisierte Zielapplikation 31 zunächst mit einem zweiten privaten Schlüssel (Prozess 55 - 5), und fügt sie mit der entsprechenden zweiten digitalen Signatur 32 in einem - vorzugsweise der Belegung des dritten Speicherbereiches 30 angepassten - Containerformat zusammen. Die resultierende Containerdatei, also die bereits mit der zweiten digitalen Signatur 32 versehene Zielapplikation 31, und der zugehörige öffentliche zweite Schlüssel 23 werden in einer weiteren Datenbank oder einem anderweitigen Speicher 95 hinterlegt. Die auch hier nicht im Einzelnen erörterten Übertragungswege der Daten verlaufen abermals innerhalb der Fertigungsumgebung und sind daher ebenfalls gegen Manipulationen geschützt.
  • Das in 4 mit dem Bezugszeichen 50 gekennzeichnete Steuergerät stellt nun eine weitere Anfrage an das Trustcenter 80, um eine Neuinstallation der Zielapplikation 31 mit deren neuem zweiten öffentlichen Schlüssel 23 einzuleiten. Der Speicher 95 stellt dem Steuergerät 50 zu diesem Zweck die - in dieser Phase bereits die zweite digitale Signatur 32 tragende - neue Version der Zielapplikation 31 bereit, mit welcher das Steuergerät 50 programmiert wird (Prozess 56 - 5). Zudem übergibt der Speicher 95 dem Trustcenter 80 die zur Zielapplikation 31 zugehörigen digitalen Zertifikat, welche insbesondere den zweiten öffentlichen Schlüssel 23 umfassen. Diese werden mit dem zum Steuergerät 50 zugehörigen ersten privaten Schlüssel aus der Datenbank 90 signiert (Prozess 57 - 5). Zudem wird gegebenenfalls die Vektortabelle 24 im zweiten Speicherbereich 20 anhand des aktualisierten Codeblocks der Zielapplikation 31 durch Eintragung von dessen Adressbereich und etwaigen architekturbedingten Statusregistern neu aufgebaut. Schließlich werden die signierten Zertifikate und die Vektortabelle 24 im dem Bootloader 21 vorbehaltenen zweiten Speicherbereich 20 des Steuergerätes 50 ersetzt (Prozess 58 - 5). Die eigentliche Installation der Zielapplikation 31 durch den Bootloader 21 kann, wie es auch bisher geschah, durch Beschreiben des dritten Speicherbereiches 30 mit dem aktualisierten Codeblock der Zielapplikation 31 erfolgen und - etwa im Rahmen einer fortlaufenden Pflege und Wartung der Software - beliebig oft wiederholt werden. Es versteht sich, dass die neue Zielapplikation hierbei die bereits installierte Zielapplikation 31 auch ergänzen kann und nicht zwingend ersetzen muss.
  • 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
    • DE 102012110559 A1 [0005]
    • DE 102012109619 A1 [0006]
    • DE 102014208385 A1 [0007, 0011]
    • DE 102012109617 A1 [0008]

Claims (14)

  1. Steuergerät (40, 50), gekennzeichnet durch folgende Merkmale: - das Steuergerät (40, 50) umfasst einen programmierbaren Speicher, - der programmierbare Speicher umfasst einen ersten Speicherbereich (10), einen zweiten Speicherbereich (20) mit einem Bootloader (21) und einen dritten Speicherbereich (30) mit einer Zielapplikation (31), - der erste Speicherbereich (10) enthält einen ersten öffentlichen Schlüssel (12), - der zweite Speicherbereich (20) enthält eine erste digitale Signatur (22) und einen vom ersten öffentlichen Schlüssel (12) verschiedenen zweiten öffentlichen Schlüssel (23), - der dritte Speicherbereich (30) enthält eine zweite digitale Signatur (32), - das Steuergerät (40, 50) ist dazu eingerichtet, anhand des ersten öffentlichen Schlüssels (12) und der ersten digitalen Signatur (22) den Bootloader (21) zu authentifizieren und - der Bootloader (21) ist dazu eingerichtet, anhand des zweiten öffentlichen Schlüssels (23) und der zweiten digitalen Signatur (32) die Zielapplikation (31) zu authentifizieren.
  2. Steuergerät (40, 50) nach Anspruch 1, gekennzeichnet durch folgende Merkmale: - der zweite Speicherbereich (20) enthält eine Vektortabelle (24) und mehrere zweite öffentliche Schlüssel (23), - der dritte Speicherbereich (30) enthält mehrere Zielapplikationen (31) und mehrere zweite digitale Signaturen (32) und - der Bootloader (21) ist dazu eingerichtet, den zweiten öffentlichen Schlüsseln (23) anhand der Vektortabelle (24) die Zielapplikationen (31) und zweiten digitalen Signaturen (32) zuzuordnen.
  3. Steuergerät (40, 50) nach Anspruch 2, gekennzeichnet durch folgendes Merkmal: - das Steuergerät (40, 50) ist dazu eingerichtet, einmalig den ersten öffentlichen Schlüssel (12) und die erste digitale Signatur (22) von einem Trustcenter (80) abzurufen und den ersten öffentlichen Schlüssel (12) unveränderlich im ersten Speicherbereich (10) abzulegen, indem der erste Speicherbereich (10) nach dem Ablegen gegen ein Überschreiben geschützt wird.
  4. Steuergerät (40, 50) nach Anspruch 3, gekennzeichnet durch folgendes Merkmal: - der Bootloader (21) ist dazu eingerichtet, über das Trustcenter (80) mehrmalig die Zielapplikation (31), den zweiten öffentlichen Schlüssel (23) und die zweite digitale Signatur (32) abzurufen, den im zweiten Speicherbereich (20) abgelegten zweiten öffentlichen Schlüssel (23) durch den abgerufenen zweiten öffentlichen Schlüssel (23), die im dritten Speicherbereich (30) abgelegte zweite digitale Signatur (32) durch die abgerufene zweite digitale Signatur (32) und die im dritten Speicherbereich (30) hinterlegte Zielapplikation (31) durch die abgerufene Zielapplikation (31) zu ersetzen oder zu ergänzen.
  5. Steuergerät (40, 50) nach Anspruch 4, gekennzeichnet durch folgendes Merkmal: - der Bootloader (21) ist dazu eingerichtet, nach dem Ersetzen die Vektortabelle (24) neu aufzubauen.
  6. Steuergerät (40, 50) nach einem der Ansprüche 2 bis 5, gekennzeichnet durch folgendes Merkmal: - der zweite öffentliche Schlüssel (23) und die Vektortabelle (24) sind innerhalb des zweiten Speicherbereiches (20) vor Schreibzugriffen der Zielapplikationen (31) geschützt.
  7. Steuergerät (40, 50) nach einem der Ansprüche 1 bis 6, gekennzeichnet durch folgendes Merkmal: - der Bootloader (21) ist dazu eingerichtet, anhand des ersten öffentlichen Schlüssels (12) den zweiten öffentlichen Schlüssel (23) zu authentifizieren.
  8. Steuergerät (40, 50) nach einem der Ansprüche 1 bis 7, gekennzeichnet durch folgende Merkmale: - der erste Speicherbereich (10) enthält ein erstes digitales Zertifikat, welches den ersten öffentlichen Schlüssel (12) umfasst und - der zweite Speicherbereich (20) enthält ein zweites digitales Zertifikat, welches den zweiten öffentlichen Schlüssel (23) umfasst.
  9. Steuergerät (40, 50) nach einem der Ansprüche 1 bis 8, gekennzeichnet durch folgendes Merkmal: - das Steuergerät (40, 50) weist ein Hardwaresicherheitsmodul auf, welches den ersten Speicherbereich (10) umfasst.
  10. Motorsteuergerät nach einem der Ansprüche 1 bis 9.
  11. Verfahren (51) zum Betrieb eines Steuergerätes (40, 50), gekennzeichnet durch folgende Merkmale: - anhand von Metadaten des Steuergerätes (40, 50) wird ein asymmetrisches Schlüsselpaar aus einem ersten öffentlichen Schlüssel (12) und einem dazu komplementären ersten privaten Schlüssel generiert (52), - die Metadaten und der erste private Schlüssel werden in eine Datenbank (90) außerhalb des Steuergerätes (40, 50) eingetragen (53), - der erste öffentliche Schlüssel (12) wird unveränderlich in einem ersten Speicherbereich (10) des Steuergerätes (40, 50) abgelegt (54), - eine für das Steuergerät (40, 50) vorgesehene Zielapplikation (31) wird mittels eines zweiten privaten Schlüssels, der vom ersten privaten Schlüssel verschieden ist, mit einer zweiten digitalen Signatur (32) versehen (55), - das Steuergerät (40, 50) wird mit der Zielapplikation (31) und einem zum zweiten privaten Schlüssel komplementären zweiten öffentlichen Schlüssel (23) programmiert (56), - der Zielapplikation (31) zugehörige digitale Zertifikate, welche den zweiten öffentlichen Schlüssel (23) umfassen, werden mit dem zum Steuergerät (40, 50) zugehörigen ersten privaten Schlüssel signiert (57), so dass eine dritte digitale Signatur gebildet wird und - zumindest die digitalen Zertifikate werden nach dem Signieren zusammen mit der dritten digitalen Signatur in einem zweiten Speicherbereich (20) des Steuergerätes (40, 50) abgelegt (58).
  12. Verfahren (51) nach Anspruch 11, gekennzeichnet durch folgendes Merkmal: - die digitalen Zertifikate werden nach dem Signieren (57) ferner in einem Trustcenter (80) hinterlegt.
  13. Verfahren (51) nach Anspruch 11 oder 12, gekennzeichnet durch folgendes Merkmal: - das Steuergerät (40, 50) wird durch eine In-System-Programmierung mit dem Bootloader (21) programmiert.
  14. Verfahren (51) nach einem der Ansprüche 11 bis 13, gekennzeichnet durch folgendes Merkmal: - die Zielapplikation (31) wird vor einer Ausführung durch den Bootloader (21) in genau zwei Schritten authentifiziert.
DE102018211139.1A 2018-07-05 2018-07-05 Steuergerät sowie Verfahren zu dessen Betrieb Pending DE102018211139A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102018211139.1A DE102018211139A1 (de) 2018-07-05 2018-07-05 Steuergerät sowie Verfahren zu dessen Betrieb

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102018211139.1A DE102018211139A1 (de) 2018-07-05 2018-07-05 Steuergerät sowie Verfahren zu dessen Betrieb

Publications (1)

Publication Number Publication Date
DE102018211139A1 true DE102018211139A1 (de) 2020-01-09

Family

ID=68943689

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018211139.1A Pending DE102018211139A1 (de) 2018-07-05 2018-07-05 Steuergerät sowie Verfahren zu dessen Betrieb

Country Status (1)

Country Link
DE (1) DE102018211139A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113051630A (zh) * 2021-03-31 2021-06-29 联想(北京)有限公司 一种控制方法及电子设备
US20210406379A1 (en) * 2018-11-07 2021-12-30 Security Platform Inc. Secure boot device and process

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012109619A1 (de) 2011-10-28 2013-05-02 Gm Global Technology Operations, Llc Verfahren zum Bereitstellen einer digitalen Signatur zum Sichern einer Flash-Programmierfunktion
DE102012109617A1 (de) 2011-10-28 2013-05-02 Gm Global Technology Operations, Llc Verfahren zum Ersetzen eines öffentlichen Schlüssels eines Bootloaders
DE102012110559A1 (de) 2011-12-15 2013-06-20 Gm Global Technology Operations, Llc Verfahren und Vorrichtung zum sicheren Herunterladen einer Firmware unter Verwendung eines Diagnoselinkconnectors (DLC) und dem Onstar-System
DE102014208385A1 (de) 2013-05-29 2014-12-04 Gm Global Technology Operations, Llc Verfahren zum Verbessern der sicheren Flash-Programmierung

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012109619A1 (de) 2011-10-28 2013-05-02 Gm Global Technology Operations, Llc Verfahren zum Bereitstellen einer digitalen Signatur zum Sichern einer Flash-Programmierfunktion
DE102012109617A1 (de) 2011-10-28 2013-05-02 Gm Global Technology Operations, Llc Verfahren zum Ersetzen eines öffentlichen Schlüssels eines Bootloaders
DE102012110559A1 (de) 2011-12-15 2013-06-20 Gm Global Technology Operations, Llc Verfahren und Vorrichtung zum sicheren Herunterladen einer Firmware unter Verwendung eines Diagnoselinkconnectors (DLC) und dem Onstar-System
DE102014208385A1 (de) 2013-05-29 2014-12-04 Gm Global Technology Operations, Llc Verfahren zum Verbessern der sicheren Flash-Programmierung

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210406379A1 (en) * 2018-11-07 2021-12-30 Security Platform Inc. Secure boot device and process
US11899795B2 (en) * 2018-11-07 2024-02-13 Security Platform Inc. Secure boot device and process
CN113051630A (zh) * 2021-03-31 2021-06-29 联想(北京)有限公司 一种控制方法及电子设备

Similar Documents

Publication Publication Date Title
DE10008974B4 (de) Signaturverfahren
DE10008973B4 (de) Autorisierungsverfahren mit Zertifikat
DE102013108021A1 (de) Verfahren zum selektiven Software-Rollback
EP2515499B1 (de) Verfahren zum Erzeugen eines kryptographischen Schlüssels für ein geschütztes digitales Datenobjekt auf Basis von aktuellen Komponenten eines Rechners
DE102012110559A1 (de) Verfahren und Vorrichtung zum sicheren Herunterladen einer Firmware unter Verwendung eines Diagnoselinkconnectors (DLC) und dem Onstar-System
DE102012215729A1 (de) System und Verfahren zum Authentisieren mehrerer Dateien unter Verwendung einer getrennten digitalen Signatur
DE102016119697A1 (de) Fahrzeugsystem und Authentifizierungsverfahren
DE102012109619A1 (de) Verfahren zum Bereitstellen einer digitalen Signatur zum Sichern einer Flash-Programmierfunktion
DE102015209116A1 (de) Verfahren und Aktualisierungsgateway zum Aktualisieren eines eingebetteten Steuergerätes
DE102013108022A1 (de) Verfahren zum Aktivieren des Entwicklungsmodus eines gesicherten elektronischen Steuergeräts
DE102013105042A1 (de) Sicheres Flashprogrammieren eines sekundären Prozessors
DE102009013384A1 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
DE102012109615B4 (de) Verwendung eines Manifests zur Präsenzaufzeichnung von gültiger Software und Kalibrierung
DE102015209108A1 (de) Verfahren und Entscheidungsgateway zum Autorisieren einer Funktion eines eingebetteten Steuergerätes
DE102016221108A1 (de) Verfahren zum Aktualisieren einer Software eines Steuergeräts eines Fahrzeugs
EP2494526A1 (de) Verfahren zum betreiben eines tachographen und tachograph
EP3696699B1 (de) Sichere und flexible firmwareaktualisierung in elektronischen geräten
DE602004009639T2 (de) Verfahren oder Vorrichtung zur Authentifizierung digitaler Daten mittels eines Authentifizierungs-Plugins
DE102013213314A1 (de) Hinterlegen mindestens eines berechenbaren Integritätsmesswertes in einem Speicherbereich eines Speichers
DE102018211139A1 (de) Steuergerät sowie Verfahren zu dessen Betrieb
WO2017102295A1 (de) Verfahren und sicherheitsmodul zum bereitstellen einer sicherheitsfunktion für ein gerät
EP3811260B1 (de) Kryptografiemodul und betriebsverfahren hierfür
DE102012224194A1 (de) Steuersystem für ein Kraftfahrzeug
WO2022008201A1 (de) Verfahren zur erweiterten validierung eines containerabbilds
DE102010004786A1 (de) Verfahren zum rechnergestützten Bereitstellen einer Entwicklungsumgebung zur Implementierung von Sicherheitsanwendungen in einer Fahrzeug-Architektur