DE102013108020A1 - Authentifizierungsschema zum Aktivieren eines Spezial-Privileg-Modus in einem gesicherten elektronischen Steuergerät - Google Patents

Authentifizierungsschema zum Aktivieren eines Spezial-Privileg-Modus in einem gesicherten elektronischen Steuergerät Download PDF

Info

Publication number
DE102013108020A1
DE102013108020A1 DE102013108020.0A DE102013108020A DE102013108020A1 DE 102013108020 A1 DE102013108020 A1 DE 102013108020A1 DE 102013108020 A DE102013108020 A DE 102013108020A DE 102013108020 A1 DE102013108020 A1 DE 102013108020A1
Authority
DE
Germany
Prior art keywords
controller
ticket
information
file
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.)
Withdrawn
Application number
DE102013108020.0A
Other languages
English (en)
Inventor
Ansaf I. Alrabady
Kevin M. Baltes
Thomas M. Forest
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.)
GM Global Technology Operations LLC
Original Assignee
GM Global Technology Operations LLC
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 GM Global Technology Operations LLC filed Critical GM Global Technology Operations LLC
Publication of DE102013108020A1 publication Critical patent/DE102013108020A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
    • 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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (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)
  • Stored Programmes (AREA)

Abstract

Ein System und ein Verfahren zum Umgehen eines Sicherheitscodes, um es zu gestatten, eine Entwicklungssoftware auf ein Steuergerät aus der Produktion zu installieren, ohne die Software zu authentifizieren. Das Verfahren beinhaltet das Anfordern einer Information von dem Steuergerät und das Erzeugen eines Informationstickets in dem Steuergerät in Antwort auf die Anfrage, die das Steuergerät identifiziert. Der Informationsticket wird an einen sicheren Server gesendet, der ein Authentifizierungsticket erzeugt, welcher das Steuergerät von dem Informationsticket identifiziert und einen Sicherheitscode für das Ticket erzeugt. Das Authentifizierungsticket wird dem Steuergerät bereitgestellt und, wenn der Sicherheitscode von dem Steuergerät verifiziert wurde, gestattet dem Steuergerät, dass die Entwicklungssoftware installiert wird.

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Diese Erfindung bezieht sich allgemein auf ein System und ein Verfahren zum Umgehen einer Authentisierungsforderung, die notwendig ist, um Software-Files auf einem Steuergerät zu installieren, und insbesondere auf ein System und ein Verfahren zum Umgehen einer Signatur, die erforderlich ist, um neue Software auf einem elektronischen Steuergerät (ECU) auf einem Fahrzeug für Softwareentwicklungszwecke zu installieren.
  • 2. Diskussion des Standes der Technik
  • Die meisten modernen Fahrzeuge beinhalten elektronische Steuereinheiten (ECUs), oder Steuergeräte, die den Betrieb der Fahrzeugsysteme, beispielsweise des Antriebsstrangs, des Klimasteuersystems, des Infotainment-Systems, der Body-Systeme, der Chassis-Systeme und dergleichen steuern. Diese Steuergeräte benötigen eine besondere Software, um die Steuerfunktionen durchzuführen. Mit der zunehmenden Zahl und Komplexität dieser Steuergeräte und der wachsenden Furcht, die von Entwicklern von Schadsoftware ausgeht, ist es wichtiger denn je, die Herkunftsquelle und den Inhalt von binären Files, die in Automobilsteuergeräte geladen werden, zu authentifizieren. Die Konsequenzen von der Verwendung von Software, die nicht einwandfrei autorisiert wurde oder die – schlimmer noch – schadhaft entworfen wurde, in einem Fahrzeugsteuergerät, beinhaltet das unbeabsichtigte Verhalten des Fahrzeugs oder seiner Systeme, den Verlust von Antidiebstahl-Eigenschaften auf dem Fahrzeug, das potentielle Herumpfuschen an Komponenten wie beispielsweise dem Kilometerzähler und der Verlust von anderen Fahrzeugmerkmalen und Funktionen.
  • Eine bekannte digitale Codiertechnik wird als asymmetrische Schlüsselkryptographie bezeichnet, die digitale Signaturen zum Authentifizieren von Files, die in Steuergeräte programmiert sind, verwendet. Wie von Fachleuten gut verstanden ist, verwendet die asymmetrische Schlüsselkryptographie ein Paar von mathematisch miteinander in Beziehung stehenden Schlüsseln, die als öffentlicher Schlüssel und als privater Schlüssel bekannt sind, um eine Botschaft zu verschlüsseln und zu entschlüsseln. Um eine digitale Signatur zu generieren, verwendet ein Signierer seinen privaten Schlüssel, der nur ihm selbst bekannt ist, um eine Botschaft zu verschlüsseln. Die digitale Signatur kann dann von einer anderen Partei später unter Verwendung des öffentlichen Schlüssels, der mit dem privaten Schlüssel des Signierers gepaart ist, entschlüsselt werden.
  • Flashing ist ein gut bekanntes Verfahren zum Hochladen von Software, Kalibrier-Files und anderen Anwendungen in den Flash-Speicher einer ECU eines Fahrzeugs oder eines anderen programmierbaren Gerätes. Ein Bootloader ist ein embedded Softwareprogramm, das auf die ECU geladen ist, das ein Interface zwischen der ECU und einem Programmierwerkzeug oder Gerät bereitstellt, welches die Software flashprogrammiert. Der Bootloader verwendet typischerweise asymmetrische Schlüsselkryptographie und speichert einen öffentlichen Schlüssel, der verwendet werden muss, um die digitale Signatur zu dekodieren, die von dem Programmierwerkzeug übermittelt wird, bevor der ECU gestattet wird, die Software oder die Kalibrierung auszuführen.
  • Beim Entwickeln und Testen neuer Versionen von Software- und Kalibrier-Files ist es gewöhnlicherweise wünschenswert, ein Steuergerät aus der Produktion zu verwenden, das bereits mit existierenden Files flashprogrammiert wurde, da dies eine kostengünstigere Alternative dazu darstellt, ein spezielles Steuergerät für reine Entwicklungszwecke bereitzustellen. Beim Installieren von Entwicklungsoftwarefiles in einem Steuergerät aus der Produktion muss das File korrekt signiert oder auf andere Art und Weise authentifiziert worden sein, bevor die ECU es erlauben wird, dass das File installiert wird. Das Erfordernis, einen autorisierten Benutzer Entwicklungssoftware-Files und Kalibrier-Files zu signieren, erfordert einen signifikanten Aufwand, Zeit und Ressourcen. Wenn es jedoch relativ leicht ist, Entwicklung-Software-Files auf eine ECU zu installieren, was das Umgehen der Signaturforderung zum Authentifizieren eines Files für einen autorisierten Benutzer beinhaltet, wird es jedoch leichter für einen Hacker, die ECU in eine Konfiguration zu versetzen, die keine Signatur erfordert. Dies würde wünschenswert sein, um eine sichere Prozedur bereitzustellen, wobei ein Steuergerät aus der Produktion, das dazu verwendet worden ist, Entwicklungssoftware zu testen nicht dazu zu benötigen, um eine Signatur auf die Software flash zu programmieren. Es wäre jedoch immer noch sicher genug, um potentielle Hacker daran zu hindern, diese gleiche Operation auszuführen.
  • Wenn eine große Anzahl von Steuergeräten aus der Produktion für ein bestimmtes Modul auf einem Fahrzeug existiert und ein Verfahren entwickelt wäre, um die Entwicklungssoftware auf eines dieser Steuergeräte für Test- und Entwicklungszwecke flash zu programmieren, wenn genau diese Technik jemals außerhalb einer sicheren Entwicklungsumgebung zugelassen worden wäre, dann wären all die Steuergeräte aus der Produktion gegenüber diesem Risiko verwundbar. Demzufolge muss das Verfahren zum Installieren eines Steuergeräts, um eine Entwicklungssoftware zu akzeptieren, welche nicht für ein bestimmtes Steuergerät signiert wurde, sicher genug sein, um einen potentiellen Hacker daran zu hindern, Zugang zu diesem Steuergerät zu erlangen, und darüber hinaus auch noch sicher genug sein, wobei wenn der potentielle Hacker keinen Zugang zu dieser Technik für dieses Steuergerät erlangt hat, dass die Technik nicht für all die anderen Steuergeräte derselben Art verwendbar wäre.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Im Einklang mit den Lehren der vorliegenden Erfindung werden ein System und ein Verfahren zum Umgehen eines Sicherheitscodes offenbart, um es zu gestatten, dass eine Entwicklungssoftware auf einem sicheren Steuergerät aus der Produktion installiert werden kann, ohne die Software authentifiziert haben zu müssen. Das Verfahren beinhaltet das Anfordern einer Information von dem Steuergerät und das Erschaffen eines Informationstickets in dem Steuergerät in Antwort auf die Anfrage, die das Steuergerät identifiziert. Das Informationsticket wird an einen sicheren Server geschickt, der ein Authentifizierungsticket erzeugt, das das Steuergerät von dem Informationsticket identifiziert und einen Sicherheitscode für das Ticket erzeugt. Das Authentifizierungsticket wird dem Steuergerät bereitgestellt und, wenn der Sicherheitscode von dem Steuergerät verifiziert wird, ermöglicht das Steuergerät, dass die Entwicklungssoftware installiert wird, egal ob sie korrekt signiert oder nicht signiert ist.
  • Weitere Merkmale der vorliegenden Erfindung werden aus der folgenden Beschreibung und den beigefügten Patentansprüchen in Verbindung mit den beigefügten Figuren deutlich.
  • KURZE BESCHREIBUNG DER FIGUREN
  • 1 ist ein schematisches Blockdiagramm, das ein Verfahren zum Verifizieren einer digitalen Signatur zeigt;
  • 2 ist ein Blockdiagramm für ein Verfahren zum Signieren und Verifizieren eines elektronischen Inhalts unter Verwendung einer digitalen Signatur, welches die Lieferung von Inhalt- und Signatur-Files von einer Programmierquelle zum Ausführen eines Steuergerätes beinhaltet;
  • 3 ist ein schematisches Diagramm, das zeigt, wie ein elektronischer Inhalt und eine digitale Signatur physikalisch an ein Steuergerät in einem Fahrzeug geliefert werden;
  • 4 ist ein Blockdiagramm, das ein Verfahren zum Umgehen eines Sicherheitscodes für ein Steuergerät aus der Produktion zeigt;
  • 5 ist ein Blockdiagramm für ein Speichersegment eines Steuergeräts; und
  • 6 ist ein Flussdiagramm, das ein Verfahren zum sicheren Flashprogrammieren signierter Softwareteile zeigt.
  • DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSBEISPIELE
  • Die folgende Diskussion von Ausführungsformen der Erfindung, die auf ein System und ein Verfahren zum Umgehen eines Sicherheitsauthentifizierungsverfahrens zeigt, welches von einem Steuergerät aus der Produktion verwendet wird, um zu gestatten, dass Entwicklungs-Software-Files in dem Steuergerät installiert werden, ist rein beispielhafter Natur und in keiner Weise dazu gedacht, die Erfindung oder ihre Anwendungen oder Verwendungen einzuschränken. Beispielsweise findet die hier diskutierte Technik zum Umgehen des Sicherheitscodes eine besondere Anwendung bei einer ECU auf einem Fahrzeug. Fachleute können jedoch leicht erkennen, dass die Technik auch eine Anwendung bei anderen Steuergeräten haben wird.
  • 1 ist ein Blockdiagramm 10 eines bekannten Verfahrens zum Verwenden asymmetrischer Schlüsselkryptographie zum Authentifizieren von Files, die in Steuergeräten programmiert werden. Wie Fachleuten gut bekannt ist, verwendet die asymmetrische Schlüsselkryptographie ein Paar von mathematisch miteinander in Beziehung stehenden Schlüsseln, die als privater Schlüssel und öffentlicher Schlüssel bekannt sind, um eine Botschaft zu verschlüsseln und zu entschlüsseln. Um eine digitale Signatur zu erstellen, verwendet ein Signierer seinen privaten Schlüssel, der nur ihm selbst bekannt ist, um eine digitale Botschaft zu verschlüsseln. Die digitale Signatur kann dann später von einer anderen Partei mithilfe des öffentlichen Schlüssels entschlüsselt werden, der mit dem privaten Schlüssel des Signierers gepaart ist, um ein File oder eine Botschaft zu authentifizieren.
  • In einem Signierschritt 12 wird ein Inhalt-File 14 bereitgestellt, wobei das Inhalt-File 14 ein Teil einer Software, ein kalibriertes File oder anderer ”soft-part”-Inhalt sein kann, um in einem Steuergerät verwendet zu werden. Eine Hash-Berechnung wird auf dem Inhalt-File 14 ausgeführt, um einen Hash-Wert 16 des Inhalt-Files 14 zu generieren. Der Hash-Wert 16 wird dann mit dem privaten Schlüssel des Signierers verschlüsselt, um eine digitale Signatur 18 zu erstellen, wobei die digitale Signatur 18 nur für dieses jeweilige Inhalt-File gut ist.
  • Die digitale Signatur 18 und das Inhalt-File 14 werden dann in einem Verifizier-Schritt 20 verwendet, der dann durch den Bootloader in der ECU in der Anwendung, die hierin diskutiert wird, ausgeführt werden würde. Die digitale Signatur 18 wird unter Verwendung des öffentlichen Schlüssels des Signierers entschlüsselt, um einen entschlüsselten Hash-Wert 22 zu generieren. In der Zwischenzeit wird eine Hash-Berechnung auf dem Inhalt-File 14 von dem Verifizierer ausgeführt, um einen berechneten Hash-Wert 24 zu generieren. Im Kasten 26 wird der entschlüsselte Hash-Wert 22 mit dem berechneten Hash-Wert 24 verglichen. Falls der entschlüsselte Hash-Wert 22 mit dem berechneten Hash-Wert 24 übereinstimmt, dann wird im Oval 30 eine Gültigkeitsbestimmung ausgegeben und das Inhalt-File 14 wird verwendet. Falls der entschlüsselte Hash-Wert 22 nicht mit dem berechneten Hash-Wert 24 übereinstimmt, dann wird eine Bestimmung der Ungültigkeit im Oval 30 ausgegeben und das Inhalt-File 14 wird nicht verwendet.
  • 2 ist ein Blockdiagramm 40, das ein Verfahren zum Signieren und Verifizieren eines elektronischen Inhalts mithilfe einer digitalen Signatur, welches die Lieferung von Inhalt- und Signatur-Files von einer Programmierquelle an ein ausführendes Steuergerät beinhaltet. Eine Fileaufbewahrung 42 speichert eine ausführbare Software, ein kalibriertes File oder ein anderes ”soft-part” File, was zusammen als ein Inhalt-File 44 bekannt ist, wobei das Inhalt-File 44 typischerweise ein binäres File ist. Es ist wünschenswert, eine digitale Signatur 46 für das Inhalt-File 44 zu erhalten. Um für das Inhalt-File 44 eine digitale Signatur zu erhalten, wird das Inhalt-File 44 an einen Signier-Server 48 übermittelt. Auf dem Signier-Server 48 wird eine Hash-Berechnung auf dem Inhalt-File 44 ausgeführt, um einen Hash-Wert 52 zu generieren. Der Hash-Wert 52 wird unter Verwendung des privaten Schlüssels des Signier-Servers 48 verschlüsselt, wobei die Verschlüsselung die digitale Signatur 46 generiert. Die digitale Signatur 46 wird dann zurück an die Aufbewahrung 42 übermittelt.
  • An diesem Punkt liegen das Inhalt-File 44 und die digitale Signatur 46 beide in der Aufbewahrung 42. Die Herausforderung ist dann, das Inhalt-File 44 und die digitale Signatur 46 durch die verschiedenen Anwendungssysteme, die von dem Automobilhersteller verwendet werden, zu übermitteln, und das Inhalt-File 44 auf einem Steuergerät in einem Fahrzeug zu installieren und zu validieren. Im Allgemeinen wird ein Automobilhersteller zumindest zwei Organisationen oder Abteilungen haben, die für das Installieren von Software und Kalibrier-Files auf Steuergeräten in Fahrzeugen verantwortlich sind, nämlich die Produktion und der Service. Die 2 zeigt eine Herstellungsdatenbank 56, die von der Produktionsabteilung des Automobilherstellers zum Verwalten elektronischer Files, welche als ”Teile” in der Produktion von Fahrzeugen verwendet werden. Die 2 zeigt analog dazu eine Service-Datenbank 62, die von der Serviceabteilung des Automobilherstellers zum Verwalten elektronischer Files, die als ”Service-Teile” in Fahrzeugen installiert sind, an welchen in einer Service-Werkstatt gearbeitet wird. Wie in der 2 ersichtlich ist, erhalten sowohl die Produktionsdatenbank 56 als auch die Service-Datenbank 62 Kopien des Inhalt-Files 44 und der digitalen Signatur 46, welche für die jeweiligen Funktionen der Produktionsabteilung und der Service-Abteilung verwendet werden.
  • Um das Inhalt-File 44 tatsächlich auf ein Steuergerät in einem Fahrzeug zu installieren, wird ein Programmierwerkzeug 68 verwendet. Wie gezeigt, erhält das Programmierwerkzeug 68 ebenfalls eine Kopie des Inhalt-Files 44 und die digitale Signatur 46. Das bedeutet, dass die Produktionsabteilung das Inhalt-File 44 und die digitale Signatur 46 von der Produktionsdatenbank 56 an das Programmierwerkzeug 68 für die Installation auf einem neu produzierten Fahrzeug bereitstellen kann, oder, dass die Service-Abteilung das Inhalt-File 44 und die digitale Signatur 46 von der Service-Datenbank 62 an das Programmierwerkzeug 68 für die Installation auf einem zu wartenden Fahrzeug bereitstellen kann.
  • Der nächste Schritt für das Programmierwerkzeug 68 ist es, das Inhalt-File 44 an ein Steuergerät in einem Fahrzeug zu installieren. Die ECU 74 ist in diesem Beispiel das Steuergerät, das das Inhalt-File 44 tatsächlich verwenden wird. Nachfolgend findet eine kurze Diskussion der Architektur der ECU 74 statt. Die Software auf der ECU 74 besteht aus einem Bootloader, einer ausführbaren Software und einem oder mehreren Kalibrier-Files. Zu Diskussionszwecken wird angenommen, dass die ECU 74 eine einzelne Central Processing Unit (CPU) aufweist. In tatsächlichen Fahrzeugen könnte die ECU 74 mehrere CPUs aufweisen und jede dieser CPUs würde einen Bootloader, eine ausführbare Software und eines oder mehrere Kalibrier-Files aufweisen.
  • Der Bootloader in der ECU 74 ist für das Validieren und Installieren neuer ausführbarer Software und Kalibrier-Files verantwortlich. Die in diesem Absatz beschriebenen Funktionen werden demnach von dem Bootloader in der ECU 74 ausgeführt. Das Programmierwerkzeug 68 übermittelt das Inhalt-File 44 und die digitale Signatur 46 an die ECU 74. Die digitale Signatur 46 wird von dem Bootloader unter Verwendung eines in der Ablage 42 liegenden öffentlichen Schlüssels entschlüsselt, um einen entschlüsselten Hash-Wert 78 zu generieren. Der öffentliche Signierschlüssel kann in der ECU 74 vorhanden sein oder an die ECU 74 in Verbindung mit dem Inhalt-File 44 und der digitalen Signatur 46 geliefert werden. In der Zwischenzeit wird eine Hash-Berechnung auf dem Inhalt-File 44 von dem Bootloader ausgeführt, um einen berechneten Hash-Wert 84 zu generieren. Im Kasten 80 wird der entschlüsselte Hash-Wert 78 mit dem berechneten Hash-Wert 84 verglichen. Falls der entschlüsselte Hash-Wert 78 mit dem berechneten Hash-Wert 84 übereinstimmt, dann wird eine Gültigkeitsbestimmung 88 erlassen, und das Inhalt-File 44 wird verwendet. Falls das zu verwendende Inhalt-File 44 eine ausführbare Software ist, installiert der Bootloader diese als neue ausführbare Softaware auf der ECU 74. Falls das zu verwendende Inhalt-File 44 ein Kalibrier-File ist, verwendet die ECU 74 diese als eine von einem oder mehreren Kalibrier-Files. Falls der entschlüsselte Hash-Wert 78 nicht mit dem berechneten Hash-Wert 84 übereinstimmt, dann wird eine Bestimmung 86 auf Ungültigkeit erlassen und das Inhalt-File 44 wird nicht auf der ECU 74 verwendet.
  • Die 3 ist ein schematisches Diagramm, das zeigt, wie elektronische Inhalt-Files und digitale Signatur-Files physikalisch an ein Steuergerät eines Fahrzeugs geliefert werden. Ein Fahrzeug 36 beinhaltet die in 2 gezeigte und oben diskutierte ECU 74. Die ECU 74 kann den Motor, das Getriebe, das Chassis, den Body, das Infotainment oder ein anderes System auf dem Fahrzeug 36 steuern. Das Inhalt-File 44 und die digitale Signatur 46 werden an eine zentrale Datenbank geliefert, die hier als die Produktions-Datenbank 56 gezeigt ist. Der Transfer des Inhalt-Files 44 und der digitalen Signatur 46 an die Produktions-Datenbank 56 kann über ein Firmennetzwerk stattfinden. Die Produktions-Datenbank 56 stellt das Inhalt-File 44 und die digitale Signatur 46 dem Programmierwerkzeug 68 zur Verfügung, wobei dieser Transfer durch Anfügen des Programmierwerkzeugs 68 an einen Computer, der Zugang zu der Datenbank 56 hat, erreicht werden kann. Das Programmierwerkzeug 68 kommuniziert mit der ECU 74 über eine Verbindung 38, die drahtgebunden oder drahtlos sein kann. Mit der hergestellten Verbindung 38 können das Inhalt-File 44 und die digitale Signatur 46 von dem Programmierwerkzeug 68 auf die ECU 74 runtergeladen werden, wobei der Bootloader die oben diskutierten Sicherheitsverifikationsfunktionen ausführen kann.
  • Die vorliegende Erfindung schlägt eine Technik zum Gestatten an ein Steuergerät aus der Produktion vor, das bereits mit existierenden Files flashprogrammiert wurde, mit Entwicklungssoftware und Kalibierfiles zum Testen, Verifizieren, Analysieren etc. ohne dass dabei die Entwicklungssoftwarefiles und/Kalibrierfiles mit einer Signatur oder einem anderen Validiercode signiert oder anderweitig authentifiziert werden müssen, um das Steuergerät aus der Produktion für die Produktentwicklung leichter und billiger und besser zu verwenden. Wie unten diskutiert werden wird, wird das Verfahren so durchgeführt, dass nur ein einzelner bestimmter Steuergerätschritt eingerichtet werden wird, um mit der Entwicklungssoftware ohne Signatur flashprogrammiert zu werden, und nicht alle Steuergeräte von diesem bestimmten Steuergerätetyp.
  • 4 ist ein Flussdiagramm 90, wobei der zeitliche Fortschritt von oben nach unten ein Verfahren für die oben allgemein vorgestellte Technik veranschaulicht und einen Kasten 92 beinhaltet, der ein sicheres Steuergerät aus der Fahrzeugproduktion, d. h. ein Steuergerät, das nur designierte Software akzeptiert, oder ein Steuergerät allgemein veranschaulicht, wobei der Kasten 94 einen Ingenieur oder Techniker darstellt, der die Verwendung des Steuergeräts 92 aus der Produktion wünscht, um für Entwicklungszwecke eine Produktentwicklung durchzuführen, wobei der Ingenieur 94 ein Programmierwerkzeug der oben bezeichneten Art verwenden würde, um Zugang zu dem Steuergerät 92 zu erlangen und einen Server 96, der eine bekannte, vertrauenswürdige und abgekoppelte Datenbank oder ein ”Backend” für die jeweilige Organisation darstellt, die dazu in der Lage ist, Authentifizierung, Autorisierung und Zugang für Dienstleistungen (AAA) für die jeweilige Anwendung zu gewähren.
  • Sobald der Ingenieur 94 es wünscht, das Steuergerät 92 zu verwenden, d. h. in das Steuergerät nicht signierte Software und/oder Kalibrier Files hinein zu programmieren, wird der Ingenieur 94 über das Programmierwerkzeug eine Anfrage für eine Steuergeräteinformation auf der Leitung 98 senden, um das Signatur-Validierungserfordernis auszusetzen oder zu umgehen oder den Signaturschlüssel, der dazu verwendet wird, die digitalen Signaturen zu verifizieren, zu ersetzen. Sobald das Steuergerät 92 die Anfrage auf der Leitung 98 hält, wird es dazu übergehen, ein Steuergeräteinformationsticket, welches auf der Leitung 100 bereitgestellt wird, zu erzeugen. Dieses Ticket wird an den Ingenieur 94 über das Programmierwerkzeug auf der Leitung 102 übergeführt. Das Informationsticket ist eine Nachricht, welche jede eindeutige Information beinhalten kann, die dieses spezielle Steuergerät identifizieren kann, beispielsweise eine Modul ID-Nummer, eine Komponentenseriennummer oder eine Rückverfolgungsnummer aus der Produktion und wie unten im Detail diskutiert werden wird möglicherweise eine Anfrage oder ein anderes Erfordernis, dass anerkannt oder beantwortet werden muss, um den und das Steuergerät 92 zu befriedigen, um das Signier-Erfordernis zu überschreiben oder zu umgehen.
  • Der Ingenieur 94 loggt sich dann auf dem Server 96, der von der Linie 104 dargestellt wird, ein, um von dem Server 96 das Steuergeräteinformationsticket validiert und genehmigt zu bekommen, wobei der Ingenieur 94 und der Server 96 die notwendige Information austauschen, so dass der Server 96 weiß, dass der Ingenieur 94 ein autorisierter Benutzer auf dem Server 96 ist. Der Server 96 wird an einen sicheren entfernten Ort abgelegen zu dem Ort an dem der Ingenieur 94 angeordnet sein und das Steuergerät 92, wobei der Ingenieur 94 zu dem Server 96 auf jede geeignete Art und Weise, beispielsweise durch ein Keyboard auf einem PC, einem Touch-Screen etc. Zugang erlangt, und wobei die Verbindung zu dem Server 96 durch jede geeignete sichere Verbindung, beispielsweise eine drahtlose, sichere Telefonleitung etc. erfolgen kann. Sobald der Ingenieur 94 sich auf dem Server 96 eingeloggt hat, übermittelt der Ingenieur 94 dann über den gleichen Prozess, den er beim Einloggen gemacht hat, das Steuergerätinformationsticket an den Server 96 auf der Leitung 106. Basierend auf der von dem Steuergeräteinformationsticket bereitgestellten Informationen erzeugt der Server 96 ein Authentifizierungsticket, dargestellt mit der Linie 108, wobei das Authentifizierungsticket von dem Server 96 signiert wird und als ein File-Header mit einer spezifischen Modul-ID sein kann. Es wird angemerkt, dass der Server 96 das Format des File-Headers kennen muss.
  • 5 ist eine Darstellung eines Authentifizierungstickets 120 der oben erwähnten Art, die es dem Steuergerät 92 gestattet, zu validieren, dass der Ingenieur 94 ein autorisierter Benutzer ist. Der Server 96 erzeugt das Ticket 120, das die Steuergeräteinformation im der Sektion 122 beinhaltet, die das Steuergerät 92 identifiziert und die Antwort auf die Anfrage beinhaltet, so dass das Authentifizierungsticket 120 nur für ein einzelnes spezifisches Steuergerät 92 gültig ist. In der Sektion 124 kann das Authentifizierungsticket 120 einen Parameter beinhalten, der den Zweck beschreibt, warum der Ingenieur 94, das Steuergerät 92 aktualisieren möchte, beispielsweise das Umgehen der Signaturvalidierung für die Softwarefiles und/oder den Kalibrierteil, das Entsperren des Steuergeräts 92, das Ersetzen eines Signaturvalidierungsschlüssels, das Aktualisieren spezieller Parameter etc. In der Sektion 126 kann das Authentifizierungsticket 120 einen Validierungscode beinhalten, der die Lebensdauer des Tickets 120 definiert, beispielsweise den Einmalgebrauch, einen Fahrzyklus etc. In der Sektion 128 kann das Ticket 120 eine designierte Information, beispielsweise eines Signaturwerts eine Signierer ID etc. beinhalten.
  • Der Server 96 sendet dann das Authentifizierungsticket 120 an den Ingenieur 94 auf der Leitung 110 durch eine Verbindung, die bereits bestanden hat, und der Ingenieur 94 sendet dann das Authentifizierungsticket 120 an das Steuergerät 92 durch das Programmierwerkzeug auf der Leitung 112, wo es von dem Steuergerät 92 dargestellt mit der Linie 114 verarbeitet wird. Die Information in dem Authentifizierungsticket 120 wird von dem Steuergerät 92 verarbeitet, um einzurichten, dass das Authentifizierungsticket gültig ist und es setzt die geeigneten Flags oder liefert das geeignete Befähigungsschema, d. h. es wird dem Ingenieur 94 gestattet, nun die unsignierten Entwicklung-Software-Files und/oder Kalibrier-Files auf dem Steuergerät 92 zu installieren. Das Authentifizierungsticket 120, das von dem Server 96 erzeugt wurde, benachrichtigt das Steuergerät 92, welche Art von Information es benötigt, um zu wissen, um das Ticket zu verifizieren, um das Steuergerät 92 zu aktualisieren. Das Steuergerät 92 schaut auf das Authentifizierungsticket 120 und bestimmt, ob es die geeignete Signatur oder den geeigneten Code und die ID-Information besitzt, die speziell für dieses Steuergerät 92 benötigt wird.
  • Wie oben erwähnt, kann das Steuergeräteinformationsticket, dass von dem Steuergerät 92 erzeugt wurde, eine Art von Abfrage oder anderen Code, welcher in dem Authentifizierungsticket 120 beinhaltet wird, beinhalten, welches von dem Server 96 erzeugt wurde, so dass, wenn der Ingenieur 94 das Authentifizierungsticket 120 zurück an das Steuergerät 92 sendet, eine bestimmter Abfrage oder Code beinhaltet werden muss, so dass das Steuergerät 92 weiß, dass dies nicht ein vorhergehendes Authentifizierungsticket für eine andersartige Programmieroperation ist. Demzufolge muss der Ingenieur 94 jedes Mal, wenn er das Steuergerät 92 aus einem Produktionsbetrieb in einen Entwicklungsbetrieb umschalten möchte, ein neues Authentifizierungsticket bekommen, indem er zuerst das Steuergeräteinformationsticket von dem Steuergerät 92 erhält. Der Server 92 verwendet die Information in dem Steuergeräteinformationsticket, um das Authentifizierungsticket 120 zu erzeugen mit einem korrekten Code, der es gestattet, dass der Steuergerät 92 weiß, dass es korrekt validiert wurde und dass der Ingenieur 94 ein autorisierter Benutzer ist. Demzufolge muss die Information, die identifiziert, dass das Steuergerät, eine Zufallszahl oder eine andere Abfrageidentifikation und/oder beide nämlich die Steuergeräteidentifizierungsnummer und eine Zufallszahl benötigt werden. Der Vorteil, die Steuergeräte-ID für das Authentifizierungsticket 120 zu erhalten, liegt darin, dass der Ingenieur 94 nur zu dem Server 96 einmal gehen muss, um das Authentifizierungsticket für dieses spezielle Steuergerät zu erhalten. Wenn das Steuergerät 92 jedoch in den Produktionsbetrieb zurück geschaltet wird, würde das Authentifizierungsticket ohne die Abfrage dazu missbraucht werden können, das Steuergerät 92 zurück in den Produktionsbetrieb zu schalten.
  • Das oben erwähnte Verfahren zum Überschreiben des Signier-Erfordernis für Flash-Entwicklung-Software-Files und/oder Kalibrier-Teile kann eine Signatur oder ein Authentifizierungsumgehungsflag in dem Steuergerät 92 setzen, um es zu gestatten, dass das Entwicklung-Software-File in dem Steuergerät 92 flashprogrammiert werden kann. Alternativ dazu kann das oben erwähnte Verfahren zum Überschreiben der Signier-Erfordernisse dazu verwendet werden, um andere Zwecke als die Flash-Programmierung von Entwicklungssoftware-Files und/oder Kalibrier-Teilen auf einem Steuergerät aus der Produktion verwendet zu werden. Unter der Annahme, dass das Signaturumgehungsflag gesetzt worden ist, schlägt die vorliegende Erfindung ebenfalls ein Verfahren für einen Prozess vor, wie das Entwicklung-Software-File und/oder ein Kalibrier-Teil in dem Steuergerät 92 dann flashprogrammiert werden wird. Es wird angemerkt, dass das Signatur-Umgehungsflag, wie oben erwähnt, nicht notwendigerweise ein Flag zum Umgehen einer Signaturerfordernisses sein muss, sondern es kann auch ein Flag sein, dass gesetzt wird, um andere Authentifizierungserfordernisse zu umgehen.
  • 6 ist ein Flussdiagramm 130, das ein Verfahren zum Gestatten zeigt, wie Softwarefiles und/oder Kalibrier Files, die in das Steuergerät 92 flashprogrammiert werden sollen, sowohl für die Situation, bei der ein Umgehungsflag gesetzt wurde oder eben nicht. Der in dem Flussdiagramm 130 gezeigte Algorithmus kann dazu verwendet werden, sowohl ein Softwarefile oder ein Kalibrier-File Flash zu programmieren, wobei das Flashprogrammieren eines Softwarefiles oder eines Kalibrier-Files voneinander unabhängig wäre. In diesem Kontext bestimmt der Algorithmus zuerst, ob das File, das flashprogrammiert werden soll, ein Softwarefile oder ein Kalibrier-File ist im Kasten 132 und geht dann basierend auf dieser Bestimmung zu der Entscheidungsraute 134 über, um zu bestimmen, ob das Software Fileumgehungsflag oder das Kalibrier File-Umgehungsflag gesetzt wurde oder nicht. Wenn das Umgehungsflag für das Software File oder das Kalibrier File nicht gesetzt wurde, muss das Flash-Programmieren des Softwarefiles oder des Kalibrier-Files unter Verwendung einer Signaturverifikation, wie oben erwähnt, validiert werden. Analog dazu muss dann das Software-File oder das Kalibrier-File, nicht wie oben erwähnt, validiert werden, wenn das Umgehungsflag gesetzt wurde.
  • Wenn das Umgehungsflag nicht gesetzt wurde, geht der Algorithmus zu der Entscheidungsraute 136 über, um eine Reihe von Vorkontrollen auszuführen, um zu bestimmen, ob das Software File oder das Kalibrier File das geeignete Format, beispielsweise eine bestimmte Header-Format-Identifikation, eine Signaturversion, eine Schlüsselidentifikation, einen Speicheradressbereich etc. aufweist, jede geeignete Vorkontrolle für ein bestimmtes Softwarefile, Kalibrier File, ein Steuergerät etc. kann dazu in dem Vorkontrollverfahren verwendet werden. Geeignete aber nicht beschränkende Ausführungsbeispiele beinhalten einen Modul-ID-Check, der identifiziert, welche Art von File an das Steuergerät übergeben werden soll, d. h., ob es sich um ein Kalibrierfile oder eine Software handelt, einen Steuergerätecheck, um zu bestimmen, ob die Kompatibilitätsadressbereiche, die innerhalb der zugehörigen Bereiche programmiert werden, mit bekannten Bereichen für das Kalibrier-File oder das Softwarefile zusammengehören, ob ein Schlüssel, der verwendet werden soll, um die Signatur des Softwarefiles oder Kalibrier-Files, welches installiert werden soll, mit dem Schlüssel in dem Steuergerät kompatibel ist, zu berechnen, einen Sicherheitsgrad des Schlüssels, der verwendet wird, um die Signatur des Softwarefiles oder Kalibrier-Files, welches programmiert werden soll, kompatibel ist, mit dem Schlüsselsicherheitsgrad, der in dem Steuergerät abgelegt ist, zu berechnen, den Sicherheitsgrad des Softwarefiles oder Kalibrierfiles, welches programmiert werden soll, welches kompatibel mit dem Sicherheitsgrad im Steuergerät ist, die Kompatibilitäts-ID korrekt ist, die bestimmt, ob das Softwarefile oder das Kalibrierfile, das flashprogrammiert werden soll, kompatibel mit der Boot-Software in dem Steuergerät ist, ob der Zielname innerhalb des Files, das an das Steuergerät bereitgestellt wird, mit dem Steuergerät übereinstimmt, wobei beispielsweise falsche Files an das falsche Steuergerät gesendet werden können, das Ablaufdatum des Files, das flashprogrammiert werden soll, etc.
  • Wenn das Softwarefile oder das Kalibrierfile usw. in dem Vorkontrollschritt in der Entscheidungsraute 136 nicht die zugehörigen Vorkontrollidentifikationen enthalten, dann geht der Algorithmus zum Kasten 138 fort und berichtet einen Fehler und verbleibt im Boot-Modus und das File wird nicht flashprogrammiert. Wenn das Softwarefile oder das Kalibrier File den Vorkontrollschritt in der Entscheidungsraute 136 besteht, geht der Algorithmus zum Kasten 140 fort, wo das Software-File oder Kalibrier-File in dem Speicher abgelegt wird, wobei es authentifiziert und validiert wird. Der Flash-Programmierprozess wird für jedes einzelne File ausgeführt und beinhaltet das Löschen von Software oder Kalibrier File Anwesenheitsmustern, dass Löschen von Flash-Speichersegmenten, dass Schreiben des Files auf den Flash-Speicher etc., was von Fachleuten gut verstanden ist. Die Files, die installiert werden sollen, können in den Speicher flashprogrammiert werden, bevor sie validiert werden, aufgrund von RAM-Speicher-Begrenzungen in dem Steuergerät für das Abarbeiten von Signaturen, Prüfsummen etc., wie oben erwähnt. Demzufolge Flash-programmiert der Bootloader die Software oder Kalibrier Files auf den nichtflüchtigen Speicher und verwendet die flashprogrammierte Software oder Kalibrier Files nur dann, wenn bestimmt wird, dass sie autorisiert sind, wobei im anderen Fall diese Software der Kalibrier Files gelöscht werden. Die Vorhandenseinsmuster sind gut bekannte digitale Nachrichten, die ein Softwarefile oder ein Kalibrier File verifizieren. Insbesondere kann der Bootloader bestimmen, dass die Software und/oder Kalibrier Files vorhanden sind und gültig sind, indem das Vorhandensein von spezifischen digitalen Mustern überprüft wird, welche als Vorhandenseinsmuster innerhalb der Software- und/oder Kalibrier-File-Speicherblöcke bekannt sind. Die Vorhandenseinsmuster können an jeden geeigneten Platz in der Speichersektion bereitgestellt werden, mit der Software oder Kalibrier File assoziiert sind, und diese befinden sich typischerweise an dem Ende der Speichersektion.
  • Sobald das Flash-Programmierverfahren ausgeführt wird bestimmt der Algorithmus, ob ein Prüfsummenverfahren ausgeführt werden sollte oder umgangen werden sollte in der Entscheidungsraute 142. Wie von Fachleuten gut verstanden wird, ist ein Prüfsummenverfahren ein Verfahren auf einem sehr hohen Validierungsgrad, um zu versichern, dass das Flash-Programmieren nicht korrumpiert war und alles, was flashprogrammiert werden sollte, wirklich Flash-programmiert wurde. Wie aus dem Stand der Technik gut bekannt ist, verwenden einige flashprogrammier-Verfahren ein Prüfsummenverfahren zum Validieren, wohingegen andere Flashprogrammierverfahren dies nicht verwenden. Wenn der Prüfsummenvalidierprozess nicht umgangen worden ist, bestimmt der Algorithmus, ob der Prüfsummenvalidiertprozess anzeigt, dass das Flashprogrammieren authentifiziert war und wenn nicht, geht er zu dem Kasten 138 fort, um einen Fehler zu melden und im Boot-Modus zu verbleiben. Wenn der Prüfsummenprozess umgangen wurde in der Entscheidungsraute 142, oder in der Entscheidungsraute 146 gültig war, dann validiert der Algorithmus die Signatur über den Flashprogrammierten Speicher, wie oben erwähnt, im Kasten 144, um zu bestimmen, ob die installierte Softwarefiles oder Kalibrier Files authentifiziert und gültig sind. Der Algorithmus bestimmt, ob die Signatur gültig ist in der Entscheidungsraute 148 und wenn dies nicht der Fall ist geht er zu dem Kasten 138 über, um den Fehler zu berichten und im Boot-Betrieb zu verbleiben. Im anderen Fall schreibt der Algorithmus das Software File oder das Kalibrier File Vorhandenseinsmuster, berichtet, dass die Flash-Programmierung erfolgreich war und verlässt den Boot-Betrieb, wenn all die Vorhandenseinsmuster im Kasten 150 gültig sind.
  • Wenn das Umgehungsflag in der Entscheidungsraute 134 gesetzt wird, was bedeutet, dass das Softwarefile oder das Kalibrier File, welches flashprogrammiert werden soll, nicht durch ihre Signatur oder an einen anderen Sicherheitscode validiert werden muss, vollführt der Algorithmus immer noch das Vorkontrollverfahren in der Entscheidungsraute 152, wie oben erwähnt und wenn das Vorkontrollverfahren nicht funktioniert geht der Algorithmus zu dem Kasten 138 über, um den Fehler zu berichten und in dem Boot-Betrieb zu verbleiben. Es wird angemerkt, dass das Vorkontrollverfahren verschiedenartig sein kann, basierend darauf, ob das Umgehungsflag gesetzt oder nicht gesetzt wird, wobei das Vorkontrollverfahren wahrscheinlich weniger robust wäre, wenn das Umgehungsflag gesetzt wird. Demzufolge, wenn einige Vorkontrolloperationen ausgeführt werden, die nicht Teil des Vorkontrolletests sind, wenn das Vorkontrollflag gesetzt wird nicht befriedigt werden, wird der Algorithmus immer noch zu dem Kasten 154 übergehen, um die Software Flash zu programmieren.
  • Wenn das Vorkontrollverfahren in der Entscheidungsraute 152 durchgelaufen ist, löscht der Algorithmus die Vorhandenseinsmuster und Speichersegmente in dem Kasten 154 in der gleichen Art und Weise, wie es im Kasten 140 erfolgte, bestimmt, ob in der Entscheidungsraute 156 in der gleichen Art und Weise wie in der Entscheidungsraute 142 umgangen werden sollte, und bestimmt, ob die Prüfsumme in der Entscheidungsraute 160 gültig ist, in der gleichen Art und Weise, wie in der Entscheidungsraute 156 vollzogen wurde. Im vorliegenden Fall, wo dass Umgehungsflag gesetzt wurde, geht der Algorithmus immer noch dazu über, ein Verfahren auszuführen, um zu bestimmen, ob die Signatur im Kasten 158 gültig ist und berichtet, ob die Signatur gültig ist an die Signaturgültigkeitsentscheidungsraute 148. Mit anderen Worten auch wenn das Umgehungsflag gesetzt ist, versucht der Algorithmus immer noch, die Signatur zu authentifizieren und berichtet, dass diese gültig ist, obgleich er nicht weiß ob dies wirklich der Fall ist. Der Algorithmus berechnet, ob die Signatur gültig ist, wobei er in dem Entwicklungsumgehungsbetrieb hauptsächlich aus Zeitgründen, den der Signaturvalidierungsprozess ein bestimmten Zeitbetrag beansprucht, fügt in dem Entwicklungsprozess repliziert werden muss.
  • Wie von Fachleuten gut verstanden wird, können verschiedene oder einige Schritte und Verfahren, die hier erörtert wurden, um die Erfindung zu beschreiben, von einem Computer, einem Prozessor oder einer anderen elektronischen Recheneinheit ausgeführt werden, die mithilfe elektrischer Phänomene Daten manipuliert und/oder transformiert. Diese Computer und elektrischen Geräte können verschiedene flüchtige und/oder nicht flüchtige Speicher inklusive einem festen computerlesbaren Medium mit einem darauf befindlichen ausführbaren Programm beinhalten, das verschiedene Codes oder ausführbare Instruktionen beinhaltet, die von dem Computer oder Prozessor ausgeführt werden, wobei der Speicher und/oder das computerlesbare Medium alle Formen und Arten von einem Speicher und anderen computerlesbaren Medien beinhalten kann.
  • Die vorhergehende Diskussion zeigt und beschreibt rein exemplarische Ausführungsbeispiele der vorliegenden Erfindung. Ein Fachmann kann leicht aus der Diskussion und den beigefügten Figuren und Patentansprüchen erkennen, dass zahlreiche Änderungen, Modifikationen und Variationen gemacht werden können, ohne dabei den Geist und den Bereich der Erfindung zu verlassen, wie er mit den folgenden Patentansprüchen definiert ist.

Claims (10)

  1. Ein Verfahren zum Einrichten eines Privilege-Modus in einem sicheren Steuergerät, wobei das Verfahren umfasst: – Anfordern einer Information von dem Steuergerät; – Erzeugen eines Informationstickets in dem Steuergerät, welches das Steuergerät in Antwort auf die Anfrage identifiziert; – Senden des Steuergerätinformationstickets an einen sicheren Server; – Erzeugen eines Authentifizierungstickets in dem sicheren Server, das das Steuergerät identifiziert und einen Sicherheitscode für das Authentifizierungsticket erzeugt; – Übergeben des Authentifizierungstickets an das Steuergerät; und – Verarbeiten des Authentifizierungstickets in dem Steuergerät, um den Sicherheitscode zu verifizieren und einen Zugang zu dem Steuergerät zu gewährleisten.
  2. Verfahren nach Anspruch 1, wobei das Anfordern einer Information von dem Steuergerät und das Senden des Steuerinformationstickets an den Server und das Senden des Authentifizierungstickets an das Steuergerät von einer Person ausgeführt werden.
  3. Verfahren nach Anspruch 1, wobei das Authentifizierungsticket eine eindeutige Identifizierungsinformation über das Steuergerät, den Zweck für den Zugang an das Steuergerät, eine Gültigkeitsdauer für das Authentifizierungsticket und den Sicherheitscode umfasst.
  4. Verfahren nach Anspruch 1, wobei das Erzeugen eines Informationstickets in dem Steuergerät das Erzeugen eines Informationstickets beinhaltet, welches eine Identifizierungsnummer des Steuergeräts beinhaltet.
  5. Verfahren nach Anspruch 4, wobei das Erzeugen eines Informationstickets in dem Steuergerät das Bereitstellen einer Abfrage an das Informationsticket beinhaltet, die beantwortet werden muss, bevor das Steuergerät einen Zugang zu dem Steuergerät erlauben wird.
  6. Verfahren Anspruch 5, wobei das Erzeugen einer Authentifizierungstickets das Erzeugen eines Authentifizierungstickets beinhaltet, dass eine Antwort auf die Anfrage enthält.
  7. Verfahren Anspruch 1, wobei der Sicherheitscode eine Signatur beinhaltet, die mit einer asymmetrischen Schlüsselkryptographie verbunden ist, welche einen öffentlichen Schlüssel und einen privaten Schlüssel verwendet.
  8. Verfahren nach Anspruch 1, wobei der Privilege-Modus dazu verwendet wird, um es zu gestatten, dass das Steuergerät Entwicklungssoftware-Files auf das Steuergerät installiert.
  9. Verfahren nach Anspruch 1, wobei das Steuergerät eine elektronische Steuergeräteeinheit (ECU) auf einem Fahrzeug ist.
  10. Ein System zum Einrichten eines Privilege-Modus in einem sicheren Steuergerät, wobei das System umfasst: – Mittel zum Anfordern einer Information von dem Steuergerät; – Mittel zum Erzeugen eines Informationstickets in dem Steuergerät, welches das Steuergerät in Antwort auf die Anfrage identifiziert; – Mittel zum Senden des Steuergeräteinformationstickets an einen sicheren Server; – Mittel zum Erzeugen eines Authentifizierungstickets in dem sicheren Server, welcher das Steuergerät identifiziert und einen Sicherheitscode für das Authentifizierungsticket erzeugt; – Mittel zum Übergeben des Authentifizierungstickets an das Steuergerät; und – Mittel zum Verarbeiten der Authentifizierungstickets in dem Steuergerät, um den Sicherheitscode zu verifizieren und einen privilegierten Zugang an das Steuergerät zu gestatten.
DE102013108020.0A 2012-09-12 2013-07-26 Authentifizierungsschema zum Aktivieren eines Spezial-Privileg-Modus in einem gesicherten elektronischen Steuergerät Withdrawn DE102013108020A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/612,139 US20140075517A1 (en) 2012-09-12 2012-09-12 Authorization scheme to enable special privilege mode in a secure electronic control unit
US13/612,139 2012-09-12

Publications (1)

Publication Number Publication Date
DE102013108020A1 true DE102013108020A1 (de) 2014-03-13

Family

ID=50153434

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013108020.0A Withdrawn DE102013108020A1 (de) 2012-09-12 2013-07-26 Authentifizierungsschema zum Aktivieren eines Spezial-Privileg-Modus in einem gesicherten elektronischen Steuergerät

Country Status (3)

Country Link
US (1) US20140075517A1 (de)
CN (1) CN103677892A (de)
DE (1) DE102013108020A1 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577892A (zh) 2013-10-30 2014-02-12 河海大学 一种智能配电***递进式调度方法
US9616828B2 (en) * 2014-01-06 2017-04-11 Argus Cyber Security Ltd. Global automotive safety system
EP3113057B1 (de) * 2014-02-28 2020-07-01 Hitachi Automotive Systems, Ltd. Authentifizierungssystem und bordsteuerungsvorrichtung eines fahrzeuges
US9430220B2 (en) 2014-07-22 2016-08-30 GM Global Technology Operations LLC Method, medium, and apparatus for re-programming flash memory of a computing device
US9854442B2 (en) * 2014-11-17 2017-12-26 GM Global Technology Operations LLC Electronic control unit network security
JP6197000B2 (ja) * 2015-07-03 2017-09-13 Kddi株式会社 システム、車両及びソフトウェア配布処理方法
CN105117665B (zh) * 2015-07-16 2017-10-31 福建联迪商用设备有限公司 一种终端产品模式与开发模式安全切换的方法及***
JP6561811B2 (ja) * 2015-12-09 2019-08-21 株式会社オートネットワーク技術研究所 車載通信装置、車載通信システム及び車両特定処理禁止方法
CN105847240B (zh) * 2016-03-17 2019-05-14 西安法士特汽车传动有限公司 一种车载控制器集成标定***登陆方法
US11146401B2 (en) * 2016-08-10 2021-10-12 Ford Global Technologies, Llc Software authentication before software update
US10642970B2 (en) 2017-12-12 2020-05-05 John Almeida Virus immune computer system and method
US10614254B2 (en) 2017-12-12 2020-04-07 John Almeida Virus immune computer system and method
US10346608B2 (en) 2017-12-12 2019-07-09 John Almeida Virus immune computer system and method
US10592697B1 (en) 2017-12-12 2020-03-17 John Almeida Virus immune computer system and method
US10430178B2 (en) 2018-02-19 2019-10-01 GM Global Technology Operations LLC Automated delivery and installation of over the air updates in vehicles
US10705817B2 (en) * 2018-03-19 2020-07-07 Toyota Jidosha Kabushiki Kaisha Conflict determination and mitigation for vehicular applications
DE102021129670A1 (de) * 2021-11-15 2023-05-17 Bayerische Motoren Werke Aktiengesellschaft Verfahren, Fahrzeugkomponente und Computerprogramm zum Einräumen einer Berechtigung zum Ausführen eines Computerprogramms durch eine Fahrzeugkomponente eines Fahrzeugs

Also Published As

Publication number Publication date
US20140075517A1 (en) 2014-03-13
CN103677892A (zh) 2014-03-26

Similar Documents

Publication Publication Date Title
DE102013108020A1 (de) Authentifizierungsschema zum Aktivieren eines Spezial-Privileg-Modus in einem gesicherten elektronischen Steuergerät
DE102013108022A1 (de) Verfahren zum Aktivieren des Entwicklungsmodus eines gesicherten elektronischen Steuergeräts
DE102013108021A1 (de) Verfahren zum selektiven Software-Rollback
DE102012109619A1 (de) Verfahren zum Bereitstellen einer digitalen Signatur zum Sichern einer Flash-Programmierfunktion
EP3447667B1 (de) Kryptographische sicherung für eine verteilte datenspeicherung
DE102012110559A1 (de) Verfahren und Vorrichtung zum sicheren Herunterladen einer Firmware unter Verwendung eines Diagnoselinkconnectors (DLC) und dem Onstar-System
DE102012110499B9 (de) Sicherheitszugangsverfahren für elektronische Automobil-Steuergeräte
DE102013105042A1 (de) Sicheres Flashprogrammieren eines sekundären Prozessors
DE102015209116A1 (de) Verfahren und Aktualisierungsgateway zum Aktualisieren eines eingebetteten Steuergerätes
DE102015209108A1 (de) Verfahren und Entscheidungsgateway zum Autorisieren einer Funktion eines eingebetteten Steuergerätes
DE102014114607A1 (de) Programmierung von Fahrzeugmodulen mit Remotevorrichtungen und zugehörige Methoden und Systeme
DE102013205051A1 (de) Aktualisieren eines digitalen Geräte-Zertifikats eines Automatisierungsgeräts
DE102012109617A1 (de) Verfahren zum Ersetzen eines öffentlichen Schlüssels eines Bootloaders
WO2010031698A2 (de) Verfahren zur speicherung von daten, computerprogrammprodukt, id-token und computersystem
DE102012109615A1 (de) Verwendung eines Manifest zur Präsenzaufzeichnung von gültiger Software und Kalibrierung
DE102017208503A1 (de) Verfahren, Computerlesbares Medium, System und Fahrzeug umfassend das System zum Bereitstellen eines Datensatzes eines Fahrzeugs an einen Dritten
EP3654222B1 (de) Fahrzeug, netzwerkkomponente, verfahren, computerprogramm und vorrichtung zum generieren einer kennung für einen ausrüstungszustand eines fahrzeugs
DE112021005478T5 (de) Verfahren zum schutz eines edge-gerät-vertrauenswerts
EP3777088A1 (de) Verfahren und system zum steuern einer freigabe einer ressource
EP2885907B1 (de) Verfahren zur installation von sicherheitsrelevanten anwendungen in einem sicherheitselement eines endgerät
DE102014210282A1 (de) Erzeugen eines kryptographischen Schlüssels
DE102018217431A1 (de) Sicherer Schlüsseltausch auf einem Gerät, insbesondere einem eingebetteten Gerät
EP3767513B1 (de) Verfahren zur sicheren durchführung einer fernsignatur sowie sicherheitssystem
EP3268888B1 (de) Vorrichtung, system, verfahren und computerprogrammprodukt zum anpassen einer nutzung eines geräts
EP3311551B1 (de) Verfahren, haupteinheit, und fahrzeug zum einbringen von anwendungen in die haupteinheit eines fahrzeugs

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee