DE102014114607B4 - Programming vehicle modules with remote devices and associated methods and systems - Google Patents

Programming vehicle modules with remote devices and associated methods and systems Download PDF

Info

Publication number
DE102014114607B4
DE102014114607B4 DE102014114607.7A DE102014114607A DE102014114607B4 DE 102014114607 B4 DE102014114607 B4 DE 102014114607B4 DE 102014114607 A DE102014114607 A DE 102014114607A DE 102014114607 B4 DE102014114607 B4 DE 102014114607B4
Authority
DE
Germany
Prior art keywords
module
programming
update
vehicle
gateway
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.)
Active
Application number
DE102014114607.7A
Other languages
German (de)
Other versions
DE102014114607A1 (en
Inventor
Jonathan Schwarz
Douglas Martin
William Mazzara
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 DE102014114607A1 publication Critical patent/DE102014114607A1/en
Application granted granted Critical
Publication of DE102014114607B4 publication Critical patent/DE102014114607B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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

Abstract

Ein Fahrzeug (102), umfassend:- ein erstes Modul,- ein Gateway-Modul (112), das kommunikativ an das erste Modul gekoppelt ist, und- ein Aktualisierungsmodul (110), das kommunikativ an das Gateway-Modul (112) gekoppelt ist, um dem Gateway-Modul (112) Autorisierungsinformationen und Programmierungsdaten bereitzustellen, wobei das Gateway-Modul (112) konfiguriert ist, um zu überprüfen, dass die Programmierung des ersten Moduls zumindest zum Teil auf den Autorisierungsinformationen basierend autorisiert ist, und dem ersten Modul nach Überprüfung, dass die Programmierung autorisiert ist, die Programmierungsdaten bereitzustellen, wobei das Gateway-Modul (112) konfiguriert ist, um:- die Autorisierungsinformationen mithilfe von Sitzungsinformationen zu entschlüsseln, um einen entschlüsselten Schlüssel zu erhalten, und- zu überprüfen, dass die Programmierung autorisiert ist, wenn der entschlüsselte Schlüssel einem gespeicherten Schlüssel entspricht, wobei das Aktualisierungsmodul (110) dem Gateway-Modul (112) eine Programmierungsanfrage bereitstellt, wobei das Gateway-Modul (112) konfiguriert ist, um die Sitzungsinformationen als Antwort auf die Programmierungsanfrage vom Aktualisierungsmodul (110) zu erzeugen, und wobei das Gateway-Modul (112) konfiguriert ist, um die Sitzungsinformationen basierend auf dem gespeicherten Schlüssel und einer Uhrzeit in Beziehung mit der Programmierungsanfrage dynamisch zu erzeugen.A vehicle (102) comprising: - a first module, - a gateway module (112) communicatively coupled to the first module, and - an update module (110) communicatively coupled to the gateway module (112). to provide authorization information and programming data to the gateway module (112), the gateway module (112) configured to verify that programming of the first module is authorized based at least in part on the authorization information, and the first module after verifying that the programming is authorized to provide the programming data, the gateway module (112) being configured to: - decrypt the authorization information using session information to obtain a decrypted key, and - verifying that the programming is authorized when the decrypted key corresponds to a stored key, the update module (110) the gate way module (112) providing a programming request, wherein the gateway module (112) is configured to generate the session information in response to the programming request from the update module (110), and wherein the gateway module (112) is configured to dynamically generate the session information based on the stored key and a time related to the programming request.

Description

TECHNISCHES GEBIETTECHNICAL AREA

Die hier beschriebenen Ausführungsformen des Gegenstands betreffen im Allgemeinen Fahrzeugsysteme und genauer gesagt Systeme und Methoden zur sicheren Programmierung eines Moduls innerhalb eines Fahrzeugs mithilfe von Programmierungsinformationen von einer Remotevorrichtung aus.The subject matter embodiments described herein relate generally to vehicle systems, and more particularly to systems and methods for securely programming a module within a vehicle using programming information from a remote device.

HINTERGRUND:BACKGROUND:

In den letzten Jahren haben technologische Fortschritte zu bedeutenden Änderungen des Designs von Kraftfahrzeugen geführt. Moderne Fahrzeuge umfassen eine Vielzahl von elektronischen Komponenten, wie z. B. Motorsteuerungen (ECU), Systeme zur Traktionskontrolle, Lenkhilfesysteme, Bremssysteme, Systeme zur Klimaregelung, Navigationssysteme, Infotainmentsysteme und Ähnliches. Des Weiteren sind moderne Fahrzeuge oft in der Lage, Kommunikationen von/zu externen Komponenten zu unterstützen, z. B. über externe Kommunikationsnetzwerke (z. B. Mobiltelefonnetzwerke, drahtlose Netzwerke, Personal Area Network, oder Ähnliches) oder eine physikalische Schnittstelle (z. B. eine Busschnittstelle oder Ähnliches).In recent years, advances in technology have resulted in significant changes in automotive design. Modern vehicles include a variety of electronic components such. E.g. engine control units (ECU), traction control systems, power steering systems, braking systems, climate control systems, navigation systems, infotainment systems and the like. Furthermore, modern vehicles are often able to support communications from/to external components, e.g. B. via external communication networks (e.g. cellular phone networks, wireless networks, personal area network, or the like) or a physical interface (e.g. a bus interface or the like).

Während der Lebenszeit eines Fahrzeugs könnte es wünschenswert sein, eine oder mehrere der Elektronikkomponenten eines Fahrzeugs neu zu programmieren oder anderweitig zu aktualisieren, um neue Funktionen und/oder Funktionalitäten zu unterstützen oder anderweitig bereitzustellen oder um mögliche Probleme mit bestehenden Funktionen und/oder Funktionalitäten zu beheben. Es zu gestatten, dass Fahrzeuge aktualisiert oder anderweitig neu programmiert werden durch eine externe Komponente, stellt zahlreiche Risiken für die Internetsicherheit dar. Demzufolge wird empfohlen, Systeme und Methoden für die sichere Programmierung der Elektronikkomponenten des Fahrzeugs bereitzustellen, um die Anfälligkeit oder Empfindlichkeit gegenüber Cyberangriffen zu reduzieren. Ferner werden andere wünschenswerte Merkmale und Kennzeichen der vorliegenden Erfindung aus der nachstehenden ausführlichen Beschreibung und den beiliegenden Ansprüchen hervorgehen, wenn sie in Verbindung mit den beiliegenden Zeichnungen und dem vorstehenden technischen Gebiet und dem Hintergrund gesehen werden.During the lifetime of a vehicle, it may be desirable to reprogram or otherwise update one or more of a vehicle's electronic components to support or otherwise provide new features and/or functionality or to address potential issues with existing features and/or functionality . Allowing vehicles to be updated or otherwise reprogrammed by an external component poses numerous cybersecurity risks. Accordingly, it is recommended to provide systems and methods for securely programming the vehicle's electronic components to reduce vulnerability or sensitivity to cyberattacks to reduce. Further, other desirable features and characteristics of the present invention will become apparent from the following detailed description and appended claims when viewed in conjunction with the accompanying drawings and the foregoing technical field and background.

Die US 7 418 596 B1 offenbart eine sichere, effiziente und wechselseitig authentifizierte kryptografische Schlüsselverteilung. Die US 2013 / 0 318 357 A1 offenbart ein System und Verfahren zur sicheren SoftwareAktualisierung. Die US 2013 / 0 079 950 A1 offenbart ein System und Verfahren zur Nachrüstung von Fahrzeugen. Die US 8 543 805 B2 offenbart Systeme und Verfahren für Split-Proxying von SSL über WAN-Geräte. Die US 7 869 906 B2 offenbart eine drahtlose Gateway-Vorrichtung und Verfahren zur Überbrückung von Daten zwischen fahrzeugbasierten und externen Datennetzen.The U.S. 7,418,596 B1 discloses a secure, efficient, and mutually authenticated cryptographic key distribution. The U.S. 2013/0 318 357 A1 discloses a system and method for secure software updating. The U.S. 2013/0 079 950 A1 discloses a system and method for retrofitting vehicles. The U.S. 8,543,805 B2 discloses systems and methods for split proxying of SSL over WAN devices. The U.S. 7,869,906 B2 discloses a wireless gateway device and method for bridging data between in-vehicle and external data networks.

Die Aufgabe die vorliegenden Erfindung könnte lauten ein verbessertes Fahrzeug, ein verbessertes Verfahren und ein verbessertes Fahrzeugsystem bereitzustellen.The object of the present invention could be to provide an improved vehicle, an improved method and an improved vehicle system.

KURZDARSTELLUNGEXECUTIVE SUMMARY

In einem oder mehreren Ausführungsbeispielen wird eine Vorrichtung für ein Fahrzeug gemäß Anspruch 1 bereitgestellt.In one or more embodiments, an apparatus for a vehicle according to claim 1 is provided.

In einer weiteren Ausführungsform wird eine Methode zur Programmierung eines Fahrzeugmoduls gemäß Anspruch 3 bereitgestellt, welches kommunikativ an das Gateway-Modul gekoppelt ist.In a further embodiment, a method for programming a vehicle module according to claim 3 is provided, which is communicatively coupled to the gateway module.

Gemäß anderer der unterschiedlichen Ausführungsbeispiele wird ein Fahrzeugsystem gemäß Anspruch 6 bereitgestellt.According to another of the different exemplary embodiments, a vehicle system according to claim 6 is provided.

Figurenlistecharacter list

Die Ausführungsbeispiele werden nachstehend in Verbindung mit den folgenden Zeichnungsfiguren beschrieben, wobei die gleichen Zahlen die gleichen Elemente bezeichnen, und wobei:

  • 1 ein Blockdiagramm eines Beispiel-Fahrzeugkommunikationssystems ist, gemäß einer oder mehreren Ausführungsformen;
  • 2 ein Blockdiagramm eines Beispiels eines Elektronikgerätes für den Gebrauch im Fahrzeugkommunikationssystem von 1 gemäß einer oder mehreren Ausführungsformen ist;
  • 3 ein Flussdiagramm ist, das ein Beispiel eines Programmierungsprozesses abbildet, der für die Anwendung durch das Fahrzeugkommunikationssystem von 1 geeignet ist, gemäß einer oder mehreren Ausführungsformen; und
  • 4 ein Diagramm ist, das eine Reihe von Kommunikationen innerhalb des Fahrzeugkommunikationssystem von 1 abbildet gemäß einem Ausführungsbeispiel des Programmierungsprozesses von 3. 3.
The exemplary embodiments are described below in connection with the following drawing figures, in which the same numbers denote the same elements, and in which:
  • 1 Figure 12 is a block diagram of an example vehicle communication system, according to one or more embodiments;
  • 2 12 is a block diagram of an example of an electronic device for use in the vehicle communication system of FIG 1 according to one or more embodiments;
  • 3 12 is a flow chart depicting an example of a programming process suitable for use by the vehicle communication system of FIG 1 is suitable, according to one or more embodiments; and
  • 4 Fig. 12 is a diagram showing a series of communications within the vehicle communication system of Fig 1 12 depicts according to one embodiment of the programming process of FIG 3 . 3.

AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION

Die nachstehende ausführliche Beschreibung ist rein beispielhafter Art und nicht dazu gedacht, die Ausführungsformen des Gegenstandes oder die Anwendung und Verwendungen solcher Ausführungsformen einzuschränken. Der hier verwendete Begriff „beispielhaft“ bedeutet „als Beispiel, als Exempel oder zur Veranschaulichung dienend“. Eine hier als beispielhaft beschriebene Implementierung ist anderen Implementierungen gegenüber nicht notwendigerweise als bevorzugt oder vorteilhafter zu betrachten. Außerdem ist keine Einschränkung auf irgendeine der in dem zuvor erwähnten technischen Gebiet, dem Hintergrund, der Kurzfassung oder der folgenden detaillierten Beschreibung ausgedrückten oder implizierten Lehre beabsichtigt.The following detailed description is merely exemplary in nature and is not intended to describe the subject matter embodiments or the application and uses of such limit embodiments. As used herein, the term "exemplary" means "serving as an example, exemplification, or illustration." Any implementation described herein as exemplary is not necessarily to be construed as preferred or advantageous over other implementations. Furthermore, there is no intention to be bound by any teachings expressed or implied in the aforementioned technical field, background, summary or the following detailed description.

Die Ausführungsformen des hier beschriebenen Gegenstands betreffen die Programmierung eines Moduls in einem Fahrzeug, z. B. einem Pkw, unter Verwendung von Programmierungsinformationen von einer Remotevorrichtung. Wie nachstehend genauer beschrieben, wird eine Programmierungsaktualisierung für eine Anwendung auf einem zu programmierenden Fahrzeugmodul (alternativ hier als Zielanwendung eines Zielmoduls beschrieben) durch ein anderes Modul im Fahrzeug erhalten, das über ein Gateway-Modul an das Fahrzeugmodul gekoppelt ist. In dieser Hinsicht ist das Modul, das die Programmierungsaktualisierung erhält, kommunikativ an das Gateway-Modul über ein Kommunikationsnetzwerk gekoppelt, das anders als das Kommunikationsnetzwerk ist, an dem das Zielmodul gekoppelt ist. Zwecks Erklärung, aber ohne Einschränkung, kann das Modul, das die Programmierungsaktualisierung erhält, auch als Aktualisierungsmodul bezeichnet werden. Die Programmierungsaktualisierung umfasst einen Programmierungsdatenteil, welcher eine Datei oder ein anderes logisches Datensegment sein kann, das eine Reihe ausführbare Anweisungen umfasst (z. B. Code, Skript oder Ähnliches), welche in der Lage sind, vom Zielmodul gelesen und ausgeführt zu werden, um die Zielanwendung und deren Ausführung zu ändern, modifizieren, aktualisieren oder anderweitig zu beeinflussen. In anderen Worten, die Zielanwendung wird, basierend zumindest zum Teil auf den Programmierungsdaten, als Antwort auf eine Reihe Anweisungen der Programmierungsdaten, die vom Zielmodul ausgeführt werden, aktualisiert.The embodiments of the subject matter described herein relate to programming a module in a vehicle, e.g. a car, using programming information from a remote device. As described in more detail below, a programming update for an application on a vehicle module to be programmed (alternatively described herein as a target application of a target module) is obtained by another module in the vehicle that is coupled to the vehicle module via a gateway module. In this regard, the module that receives the programming update is communicatively coupled to the gateway module over a communication network that is different than the communication network to which the target module is coupled. For purposes of explanation but without limitation, the module that receives the programming update may also be referred to as an update module. The programming update includes a programming data portion, which may be a file or other logical data segment that includes a set of executable instructions (e.g., code, script, or the like) capable of being read and executed by the target module to change, modify, update or otherwise affect the Target Application and its execution. In other words, the target application is updated based at least in part on the programming data in response to a series of instructions in the programming data being executed by the target module.

In Ausführungsbeispielen befragt das Aktualisierungsmodul, dass das Gateway-Modul eine Programmierungssitzung mit dem Zielmodul aktiviert, nachdem es die Programmierungsaktualisierung erhalten hat. Das Gateway-Modul speichert oder verwaltet anderweitig einen oder mehrere Schlüssel, die mit dem Fahrzeug in Beziehung stehen, und das Gateway-Modul erzeugt als Antwort auf die ursprüngliche Programmierungsanfrage dynamisch Sitzungsinformationen mithilfe eines oder mehreren der gespeicherten Schlüssel, und stellt die Sitzungsinformationen dem Aktualisierungsmodul bereit. Die Sitzungsinformationen werden verwendet, um zu authentifizieren, dass die Programmierungssitzung von einem zuverlässigen Gateway-Modul angefordert wird, und die Sitzungsinformationen können hier alternativ als Sitzungsauthentifizierung bezeichnet werden. Nach Erhalt der Sitzungsauthentifizierungsinformationen fordert das Aktualisierungsmodul eine Autorisierung der Programmierungssitzung von einer Remotevorrichtung an, durch Bereitstellung der Sitzungsauthentifizierungsinformationen. Die Remotevorrichtung hat Zugriff auf einen oder mehrere Schlüssel, die mit dem Fahrzeug in Beziehung stehen, und verwendet diese Schlüssel, um zu prüfen, bestätigen oder anderweitig zu authentifizieren, dass die vom Aktualisierungsmodul eines bestimmten Fahrzeugs angeforderte Programmierungssitzung ein zuverlässiges Gateway-Modul in diesem Fahrzeug umfasst. Je nach Ausführungsform kann die Remotevorrichtung kommunikativ an das Aktualisierungsmodul im Fahrzeug über das Kommunikationsnetzwerk oder über eine an das Aktualisierungsmodul gekoppelte Eingabeschnittstelle gekoppelt werden (z. B. durch Einstecken der Remotevorrichtung in die Eingabeschnittstelle).In exemplary embodiments, the update module requests that the gateway module activate a programming session with the target module after receiving the programming update. The gateway module stores or otherwise manages one or more keys associated with the vehicle, and the gateway module dynamically generates session information using one or more of the stored keys in response to the original programming request and provides the session information to the update module . The session information is used to authenticate that the programming session is requested by a trusted gateway module, and the session information may alternatively be referred to herein as session authentication. Upon receiving the session authentication information, the update module requests authorization of the programming session from a remote device by providing the session authentication information. The remote device has access to one or more keys associated with the vehicle and uses those keys to verify, confirm, or otherwise authenticate that the programming session requested by a particular vehicle's update module is a reliable gateway module in that vehicle includes. Depending on the embodiment, the remote device may be communicatively coupled to the in-vehicle update module via the communication network or via an input interface coupled to the update module (e.g., by plugging the remote device into the input interface).

Nach der Authentifizierung der Sitzungsinformationen bestimmt die Remotevorrichtung ebenfalls, ob die Programmierung eines bestimmten Zielmoduls im Fahrzeug basierend auf einem oder mehreren Kriterien autorisiert ist. Die Remotevorrichtung kann zum Beispiel Programmierungsanforderungen in Beziehung mit einem bestimmten Fahrzeug, Zielmodul und/oder Aktualisierungsmodul überwachen und die Menge oder Frequenz der Programmierungssitzungen beschränken, die für das jeweilige Fahrzeug, Zielmodul und/oder Aktualisierungsmodul zugelassen sind. Wenn in dieser Hinsicht die Anzahl der Programmierungsanforderungen einen zulässigen Grenzwert von Programmierungsanforderungen übertrifft, autorisiert die Remotevorrichtung die Programmierungssitzung nicht und stellt keine Antwort auf die Programmierungsanfrage bereit, welche anderenfalls die Programmierungssitzung zulassen würde. Wenn die Remotevorrichtung im Gegenzug bestimmt, dass die Programmierungssitzung autorisiert ist, erzeugt die Remotevorrichtung eine Autorisierungsmitteilung (oder Nachricht) und stellt die Autorisierungsmitteilung dem Aktualisierungsmodul bereit, welches wiederum die Autorisierungsmitteilung an das Gateway-Modul überträgt. Die Autorisierungsmitteilung umfasst Autorisierungsinformationen, die vom Gateway-Modul verwendet werden, um zu überprüfen, bestätigen oder anderweitig zu authentifizieren, dass die Autorisierung von einer zuverlässigen Remotevorrichtung bereitgestellt wurde und dementsprechend können die Autorisierungsinformationen alternativ hier als Autorisierungsauthentifizierungsinformationen bezeichnet werden. Nachdem das Gateway-Modul die Autorisierungsinformationen geprüft, bestätigt oder anderweitig authentifiziert hat, gestattet oder ermöglicht das Gateway-Modul anderweitig, dass die Programmierungsdaten für die Programmierungsaktualisierung vom Aktualisierungsmodul an das Zielmodul über das Gateway-Modul bereitgestellt werden, womit das Aktualisierungsmodul die Zielanwendung auf dem Zielmodul programmieren oder anderweitig aktualisieren kann. In dieser Hinsicht verhindert in Abwesenheit einer authentifizierten Autorisierung von einer zuverlässigen Remotevorrichtung das Gateway-Modul standardmäßig das Aktualisierungsmodul dabei, Programmierungsdaten an das Zielmodul zu kommunizieren oder das Zielmodul anderweitig dazu zu bringen, in einen Programmierungsmodus überzugehen.After authenticating the session information, the remote device also determines whether programming of a particular target module in the vehicle is authorized based on one or more criteria. For example, the remote device may monitor programming requests related to a particular vehicle, target module, and/or update module and limit the amount or frequency of programming sessions allowed for the particular vehicle, target module, and/or update module. In this regard, if the number of programming requests exceeds an allowable limit of programming requests, the remote device does not authorize the programming session and does not provide a response to the programming request that would otherwise allow the programming session. In turn, if the remote device determines that the programming session is authorized, the remote device generates an authorization message (or message) and provides the authorization message to the update module, which in turn transmits the authorization message to the gateway module. The authorization message includes authorization information used by the gateway module to verify, confirm, or otherwise authenticate that the authorization was provided by a trusted remote device, and accordingly the authorization information may alternatively be referred to herein as authorization authentication information. After the gateway module verifies, confirms, or otherwise authenticates the authorization information, the gateway module permits or otherwise enables the programmer Programming update data is provided from the update module to the target module via the gateway module, allowing the update module to program or otherwise update the target application on the target module. In this regard, in the absence of authenticated authorization from a trusted remote device, the gateway module by default prevents the update module from communicating programming data to the target module or otherwise causing the target module to enter a programming mode.

In einem oder mehreren Ausführungsbeispielen erzeugt die Remotevorrichtung die Autorisierungsinformationen durch Verschlüsselung von einem oder mehreren mit dem Fahrzeug in Beziehung stehenden Schlüsseln mithilfe von Sitzungsauthentifizierungsinformationen, wobei das Gateway-Modul zur Authentifizierung der Programmierungsautorisierung als von einer zuverlässigen Remotevorrichtung bereitgestellt die Sitzungsauthentifizierungsinformationen verwendet, die es zuvor erzeugt hat, um die Autorisierungsauthentifizierungsinformationen zu entschlüsseln, was zu einem oder mehreren verschlüsselten Schlüsseln führt. Wenn die verschlüsselten Schlüssel denen mit dem Fahrzeug in Beziehung stehenden gespeicherten Schlüssen entsprechen, welche vom Gateway-Modul verwaltet werden, prüft das Gateway-Modul, dass die Programmierung des Zielmoduls von einer zuverlässigen Remotevorrichtung autorisiert wurde.In one or more embodiments, the remote device generates the authorization information by encrypting one or more vehicle-related keys using session authentication information, and the gateway module uses the session authentication information it previously generated to authenticate the programming authorization as provided by a trusted remote device has to decrypt the authorization authentication information, resulting in one or more encrypted keys. If the encrypted keys match the stored keys associated with the vehicle managed by the gateway module, the gateway module verifies that the programming of the target module has been authorized by a trusted remote device.

Nun mit Bezug auf 1, in einem oder mehreren Ausführungsbeispielen umfasst ein Fahrzeugkommunikationssystem 100 ein Fahrzeug 102, das in der Lage ist, mit einer Remotevorrichtung 104 über ein Kommunikationsnetzwerk 106 zu kommunizieren, welches extern zum Fahrzeug 102 ist, z. B. einem Mobiltelefonnetzwerk, einem Satellitennetzwerk, einem drahtlosen Netzwerk, einem Weitverkehrsnetzwerk oder Ähnliches. In der abgebildeten Ausführungsform umfasst das Fahrzeug 102 ein Aktualisierungsmodul 110, welches zur Kommunikation über das Netzwerk 106 und zum Download oder anderweitigen Empfang von der Remotevorrichtung 104 über das Netzwerk 106 programmiert ist und Aktualisierungen programmiert, die anschließend verwendet werden, um ein anderes Modul 114 im Fahrzeug 102 zu aktualisieren. In Ausführungsbeispielen umfasst das Fahrzeug 102 ein Gateway-Modul 112, das kommunikativ an das Aktualisierungsmodul 110 gekoppelt ist und authentifiziert, dass Versuche, das Zielmodule 114 im Fahrzeug 102 zu programmieren, von der Remotevorrichtung 104 autorisiert sind. In dieser Hinsicht vermeidet oder beschränkt das Gateway-Modul 112, wenn das Gateway-Modul scheitert, die Programmierung des Zielmoduls 114 als durch die Remotevorrichtung autorisiert zu authentifizieren, die Programmierung dieses Zielmoduls 114. Wie nachstehend im Zusammenhang mit 3 genauer beschrieben, werden die vom Gateway-Modul 112 verwendeten Informationen zur Authentifizierung, dass die zu autorisierende Programmierungsaktualisierung selektiv von der Remotevorrichtung 104 basierend auf der Menge oder Frequenz (oder Rate) der Programmierungsversuche für das Zielmodul 114 und/oder anderen Faktoren, die auf einer potentiellen Cyberattacke oder sonstiger Anfälligkeit hinweisen, bereitgestellt. Demnach ist die Remotevorrichtung 104 auch in der Lage, die Programmierung des Zielmoduls 114 zu vermeiden oder anderweitig zu beschränken.Now with reference to 1 , In one or more embodiments, a vehicle communication system 100 includes a vehicle 102 capable of communicating with a remote device 104 via a communication network 106 that is external to the vehicle 102, e.g. a cellular network, a satellite network, a wireless network, a wide area network or the like. In the depicted embodiment, the vehicle 102 includes an update module 110 programmed to communicate over the network 106 and download or otherwise receive from the remote device 104 over the network 106 and programs updates that are then used to update another module 114 in the Vehicle 102 to update. In exemplary embodiments, the vehicle 102 includes a gateway module 112 communicatively coupled to the update module 110 and authenticates that attempts to program the target module 114 in the vehicle 102 are authorized by the remote device 104 . In this regard, if the gateway module fails to authenticate the programming of the target module 114 as authorized by the remote device, the gateway module 112 avoids or restricts the programming of that target module 114. As discussed below in connection with FIG 3 More specifically, the information used by the gateway module 112 to authenticate that the programming update to be authorized is selectively provided by the remote device 104 based on the amount or frequency (or rate) of programming attempts for the target module 114 and/or other factors based on a potential cyber attack or other vulnerability. Accordingly, the remote device 104 is also able to avoid or otherwise restrict the programming of the target module 114 .

Immer noch mit Bezug auf 1, in einem oder mehreren Ausführungsbeispielen ist das Fahrzeug 102 ein Kraftfahrzeug und kann je nach Ausführungsform ein beliebiges einer Vielfalt von unterschiedlichen Kraftfahrzeugen sein, z. B. eine Limousine, ein Kombi, ein LKW oder ein Geländewagen und kann ein Zweiradantrieb- (2WD) (z. B. Hinterachsantrieb oder Vorderachsantrieb), Vierradantrieb-(4WD) oder Allradantrieb-Fahrzeug (AWD) sein. Das Fahrzeug 102 kann auch einen beliebigen oder eine Kombination von unterschiedlichen Motoren umfassen, darunter einen mit Benzin oder Diesel angetriebenen Verbrennungsmotor, einen FFV-Motor (z. B. mit einer Mischung von Benzin und Alkohol), einen mit Gasmischung (z. B. Wasserstoff und Erdgas) angetriebenen Motor, einen Verbrennungs/elektrischen Hybridmotor und einen elektrischen Motor. In alternativen Ausführungsformen kann das Fahrzeug 102 ein Plug-in-Hybridfahrzeug, ein vollständig elektrisches Fahrzeug, ein Brennstoffzellenfahrzeug (FCV) oder ein anderes geeignetes Fahrzeug mit alternativem Treibstoff sein.Still referring to 1 , In one or more embodiments, the vehicle 102 is a motor vehicle and may be any of a variety of different motor vehicles depending on the embodiment, e.g. a sedan, station wagon, truck, or SUV, and may be a two-wheel drive (2WD) (e.g., rear-wheel drive or front-wheel drive), four-wheel drive (4WD), or all-wheel drive (AWD) vehicle. The vehicle 102 may also include any one or a combination of different engines, including a gasoline or diesel internal combustion engine, an FFV engine (e.g., using a mixture of gasoline and alcohol), a gaseous mixture (e.g., hydrogen and natural gas) powered engine, a combustion/electric hybrid engine and an electric motor. In alternative embodiments, the vehicle 102 may be a plug-in hybrid vehicle, an all-electric vehicle, a fuel cell vehicle (FCV), or other suitable alternative fuel vehicle.

Die Remotevorrichtung 104 ist im Allgemeinen ein Computersystem oder eine andere Kombination von Ablauflogik, Schaltkreis, Hardware und/oder sonstigen Komponenten, die an das Netzwerk 106 gekoppelt und in der Lage sind, Programmierungsaktualisierungen an das Fahrzeug 102 zu senden und die Prozesse, Aufgaben, Operationen und/oder hier beschriebenen Funktionen zu unterstützen. Zum Beispiel kann in der abgebildeten Ausführungsform der 1 das ferne Gerät 104 ein Computerserver sein, der ein Verarbeitungssystem und ein Datenspeicherelement (oder Speicher) umfasst, das in der Lage ist, Programmierungsanweisungen zu speichern, die, wenn vom Verarbeitungssystem gelesen und ausgeführt, bewirken, dass der Server eine Programmierungsaktualisierung für ein Zielmodul 114 im Fahrzeug 102 erzeugt und die Programmierungsaktualisierung auf das Aktualisierungsmodul 110 überträgt. Dementsprechend wird die Remotevorrichtung 104 hier zur Erklärung alternativ als ein Server bezeichnet. In manchen Ausführungsformen kann der Server 104 an eine Datenbank 105 gekoppelt sein, die ausführbaren Code oder Anweisungen speichert oder verwaltet, die unterschiedlichen Programmierungsaktualisierungen entsprechen, die zusammen mit Authentifizierungsinformationen vom Server 104 erzeugbar sind, die die nachstehend im Zusammenhang mit den 3-4 genauer beschriebenen Programmierungsprozesse unterstützen.The remote device 104 is generally a computer system or other combination of logic, circuitry, hardware, and/or other components coupled to the network 106 and capable of sending programming updates to the vehicle 102 and the processes, tasks, operations and/or support features described herein. For example, in the illustrated embodiment, the 1 remote device 104 may be a computer server that includes a processing system and a data storage element (or memory) capable of storing programming instructions that, when read and executed by the processing system, cause the server to perform a programming update for a target module 114 generated in the vehicle 102 and transmits the programming update to the update module 110 . Accordingly, the remote device 104 is alternatively referred to herein as a server for explanation. In some embodiments, the server 104 can be coupled to a database 105 that stores or manages executable code or instructions corresponding to various programming updates that can be generated by server 104 along with authentication information that is described below in connection with 3-4 support the programming processes described in more detail.

Immer noch mit Bezug auf 1, verkörpert das Aktualisierungsmodul 110 im Allgemeinen das Gerät oder die Komponente innerhalb des Fahrzeugs 102, die kommunikativ an das externe Kommunikationsnetzwerk 106 gekoppelt ist und für die Unterstützung von Kommunikationen mit dem Server 104 zwecks des Empfangs von Programmierungsaktualisierungen für ein oder mehrere Zielmodule 114 innerhalb des Fahrzeugs 102 konfiguriert ist. Gemäß einer oder mehreren Ausführungsformen ist das Aktualisierungsmodul 110 eine Haupteinheit, die im Armaturenbrett, Instrumententafel, Mittelkonsole oder einer weiteren geeigneten Position innerhalb des Fahrzeugs 102 integriert ist. In der dargestellten Ausführungsform ist die Aktualisierungsmaschine 120 im Allgemeinen ein Softwaremodul oder eine andere Komponente, die vom Aktualisierungsmodul 110 erzeugt, ausgeführt oder anderweitig implementiert wird, um die hier beschriebenen Programmierungsprozesse zu erleichtern.Still referring to 1 , the update module 110 generally embodies the device or component within the vehicle 102 that is communicatively coupled to the external communications network 106 and for supporting communications with the server 104 to receive programming updates for one or more target modules 114 within the vehicle 102 is configured. According to one or more embodiments, the update module 110 is a main unit that is integrated into the dashboard, instrument panel, center console, or other suitable location within the vehicle 102 . In the illustrated embodiment, update engine 120 is generally a software module or other component that is created, executed, or otherwise implemented by update module 110 to facilitate the programming processes described herein.

In Ausführungsbeispielen ist das Aktualisierungsmodul 110 an mindestens ein Fahrzeugkommunikationsnetzwerk 111 gekoppelt und stellt eine Schnittstelle zwischen dem externen Kommunikationsnetzwerk 106 und dem Fahrzeugkommunikationsnetzwerk 111 zur Verfügung. Je nach der Ausführungsform kann das Fahrzeugkommunikationsnetzwerk 111 ein lokales Netzwerk (LAN) oder ein Ethernet-Netzwerk, ein drahtloses Netzwerk (z. B. ein Bluetooth-Netzwerk, ein IEEE 802.11-Netzwerk oder Ähnliches), ein Controller Area Network (CAN) oder Ähnliches sein. Das Gateway-Modul 112 ist im Allgemeinen das Gerät oder die Komponente innerhalb des Fahrzeugs 102, welches kommunikativ an das Aktualisierungsmodul 110 über ein erstes Fahrzeugkommunikationsnetzwerk 111 gekoppelt und konfiguriert ist, um die Programmierung des Zielmoduls 114 innerhalb des Fahrzeugs 102 durch Überprüfung oder anderweitiger Authentifizierung von Programmierungsaktualisierungen, die vom Aktualisierungsmodul 110 empfangen werden und vom Server 104 autorisiert sind, zu regulieren oder anderweitig zu kontrollieren. In dieser Hinsicht funktioniert das Gateway-Modul 112 wie ein Gateway zwischen dem ersten Fahrzeugkommunikationsnetzwerk 111, über welches das Aktualisierungsmodul 110 kommuniziert und dem zweiten Fahrzeugkommunikationsnetzwerk 113, an dem das Zielmodul 114 kommunikativ gekoppelt ist. Zum Beispiel: In einer Ausführungsform ist das erste Fahrzeugkommunikationsnetzwerk 111 ein Ethernet-Netzwerk und das zweite Fahrzeugkommunikationsnetzwerk 113 ein CAN, wobei das Gateway-Modul 112 ein Gateway zwischen dem Ethernet-Netzwerk und dem CAN bereitstellt.In exemplary embodiments, the update module 110 is coupled to at least one vehicle communication network 111 and provides an interface between the external communication network 106 and the vehicle communication network 111 . Depending on the embodiment, the vehicle communication network 111 may be a local area network (LAN) or an Ethernet network, a wireless network (e.g., a Bluetooth network, an IEEE 802.11 network, or the like), a controller area network (CAN), or be similar. The gateway module 112 is generally the device or component within the vehicle 102 communicatively coupled to the update module 110 via a first vehicle communication network 111 and configured to allow programming of the target module 114 within the vehicle 102 by verification or otherwise authenticating Programming updates received by update module 110 and authorized by server 104 to regulate or otherwise control. In this regard, the gateway module 112 functions as a gateway between the first vehicle communication network 111 over which the update module 110 communicates and the second vehicle communication network 113 to which the target module 114 is communicatively coupled. For example: In one embodiment, the first vehicle communication network 111 is an Ethernet network and the second vehicle communication network 113 is a CAN, with the gateway module 112 providing a gateway between the Ethernet network and the CAN.

In der dargestellten Ausführungsform von 1 Die Authentifizierungsmaschine 122 ist im Allgemeinen ein Softwaremodul oder eine andere Komponente, die erzeugt, ausgeführt oder anderweitig vom Gateway-Modul 112 implementiert wird, um von der Aktualisierungsmaschine 120 eine Anfrage für eine Programmierungssitzung zu erhalten, dynamische Sitzungsauthentifizierungsinformationen zu erzeugen und Sitzungsauthentifizierungsinformationen für die Aktualisierungsmaschine 120 bereitzustellen, in Antwort auf die Anfrage, und zu prüfen, dass die Autorisierungsauthentifizierungsinformationen vom Aktualisierungsmodul 110 den vom Gateway-Modul 112 gespeicherten Authentifizierungsinformationen entsprechen, basierend zumindest zum Teil auf den Sitzungsauthentifizierungsinformationen. Nach der Prüfung oder anderweitigen Authentifizierung, dass die Autorisierungsinformationen von einer zuverlässigen Remotevorrichtung 104 stammen, gestattet es die Authentifizierungsmaschine 122 der Programmierungsaktualisierung, bei dem Zielmodul 114 durchgeführt zu werden, zum Beispiel durch Weiterleiten von Befehlen, um einen Programmierungsmodus einzuleiten, und Weiterleiten von entsprechenden Programmierungsdaten vom Aktualisierungsmodul 110 an das Zielmodul 114.In the illustrated embodiment of 1 The authentication engine 122 is generally a software module or other component that is created, executed or otherwise implemented by the gateway module 112 to receive a request for a programming session from the update engine 120, to generate dynamic session authentication information and session authentication information for the update engine 120 provide, in response to the request, and verify that the authorization authentication information from update module 110 matches the authentication information stored by gateway module 112 based at least in part on the session authentication information. After verifying or otherwise authenticating that the authorization information originates from a trusted remote device 104, the authentication engine 122 allows the programming update to be performed at the target module 114, for example by forwarding commands to initiate a programming mode and forwarding appropriate programming data from update module 110 to target module 114.

Immer noch mit Bezug auf 1, ist ein Zielmodul 114 im Allgemeinen eine Art von Hardware, Komponente, Gerät oder Modul, die an das Fahrzeugkommunikationsnetzwerk 113 gekoppelt und in der Lage ist, vom Aktualisierungsmodul 110, z. B. einer Motorsteuerung, einem Traktionskontrollsystem (oder Traktionskontrolle), einer Servolenkung (oder Servolenkungskontrolle), einem Bremssystem (oder Bremskontrolle), einem Klimaregelungssystem (oder Klimakontrolle), einem Navigationssystem (oder Navigationskontrolle) einem Infotainment-System oder Ähnliches programmiert zu werden. In der dargestellten Ausführungsform von 1 ist die Zielanwendung 124 im Allgemeinen ein Softwaremodul oder eine andere Komponente, die erzeugt, ausgeführt oder anderweitig von oder auf einem jeweiligen Zielmodul 114 implementiert wird, um die Funktionen und/oder Funktionalitäten des jeweiligen Zielmoduls 114 zu kontrollieren, verwalten oder anderweitig zu regulieren. Wenn das Zielmodul 114 zum Beispiel ein Bremssystem ist, kann die Zielanwendung 124 die Anwendung sein, die die Antiblockierfunktionalität des Bremssystems steuert.Still referring to 1 , a target module 114 is generally a type of hardware, component, device or module that is coupled to the vehicle communication network 113 and capable of being read by the update module 110, e.g. B. an engine control, a traction control system (or traction control), a power steering (or power steering control), a braking system (or brake control), a climate control system (or climate control), a navigation system (or navigation control) an infotainment system or similar. In the illustrated embodiment of 1 the target application 124 is generally a software module or other component that is created, executed, or otherwise implemented by or on a respective target module 114 to control, manage, or otherwise regulate the functions and/or functionality of the respective target module 114. For example, if the target module 114 is a braking system, the target application 124 may be the application that controls the anti-lock functionality of the braking system.

In Ausführungsbeispielen umfasst eine vom Aktualisierungsmodul 110 und/oder der Aktualisierungsmaschine 120 des Servers 104 erhaltene Programmierungsaktualisierung eine Reihe ausführbarer Anweisungen (d. h. Code, Skript oder Ähnliches), welche in der Lage sind, vom Zielmodul 114 (oder einer Komponente davon) gelesen und ausgeführt zu werden, um den Betrieb seiner Zielanwendung 124 zu ändern. Zum Beispiel kann der bestehende Code oder Anweisungen für die Implementierung der Zielanwendung 124 geändert werden (z. B. durch Hinzufügen oder Einbeziehen eines neuen Codes oder Anweisungen, Löschen oder Überschreiben von zumindest einem Teil des bestehenden Codes oder der Anweisungen und Ähnliches) und/oder die Parameter, Einstellungen und/oder anderen Konfigurationsinformationen, auf denen der Code oder die Anweisungen der jeweiligen Zielanwendung 124 Bezug haben, können geändert werden (z. B. durch Ändern oder Überschreiben von bestehenden Konfigurationsinformationen, Hinzufügen oder Einbeziehen neuer Konfigurationsinformationen, auf denen bestehender und/oder neuer Code oder Anweisungen Bezug haben, und Ähnliches). Das Ändern des zugrundeliegenden Codes und/oder der Konfigurationsinformationen, auf denen eine Anwendung 124 basiert, beeinflusst den darauffolgenden Betrieb der jeweiligen Anwendung 124, was wiederum den darauffolgenden Betrieb des zugehörigen Zielmoduls 114 beeinflusst. In dieser Weise können Programmierungsaktualisierungen vom Server 104 auf ein Zielmodul 114 angewendet werden, um bestehende Funktionen und/oder Funktionalitäten des Zielmoduls 114 zu ändern oder neue Funktionen und/oder Funktionalitäten für das Zielmodul 114 bereitzustellen.In exemplary embodiments, a programming update received from update module 110 and/or update engine 120 of server 104 includes a series of executables any instructions (ie, code, script, or the like) capable of being read and executed by the target module 114 (or a component thereof) to alter the operation of its target application 124. For example, the existing code or instructions for the implementation of the target application 124 may be modified (e.g., by adding or including new code or instructions, deleting or overwriting at least a portion of the existing code or instructions, and the like) and/or the parameters, settings, and/or other configuration information referenced by the code or instructions of the respective Target Application 124 may be modified (e.g., by changing or overwriting existing configuration information, adding or incorporating new configuration information to which existing and /or new code or instructions related, and similar). Changing the underlying code and/or configuration information on which an application 124 is based affects the subsequent operation of the respective application 124, which in turn affects the subsequent operation of the associated target module 114. In this manner, programming updates from the server 104 may be applied to a target module 114 to change existing features and/or functionality of the target module 114 or to provide new features and/or functionality to the target module 114 .

Es versteht sich, dass 1 zwecks der Erklärung eine vereinfachte Darstellung eines Fahrzeugkommunikationssystems 100 ist und nicht die Absicht hat, den Umfang oder die Anwendbarkeit des hier beschriebenen Gegenstandes in irgendeiner Weise zu beschränken. In dieser Hinsicht können praktische Ausführungsformen des Fahrzeugs 102 eine Vielfalt von potentiellen Zielmodulen 114 und/oder eine Vielfalt von Fahrzeugkommunikationsnetzwerken 111, 113 umfassen, um eine Vielfalt von Funktionen und/oder Funktionalitäten für das Fahrzeug 102 zu unterstützen oder anderweitig bereitzustellen. Des Weiteren kann in alternativen Ausführungsformen die Remotevorrichtung 104 ein externes Gerät sein, das kommunikativ an das Aktualisierungsmodul 110 gekoppelt ist, über eine Eingabeschnittstelle zum Aktualisierungsmodul 110, wie genauer im Kontext von 2 beschrieben, und in solchen Ausführungsformen des Fahrzeugkommunikationssystems 100 könnte das externe Kommunikationsnetzwerk 106 und/oder die Datenbank 105 nicht vorhanden sein. Des Weiteren können, auch wenn 1 das Aktualisierungsmodul 110 und das Gateway-Modul 112 als separat und verschieden darstellt, manche alternative Ausführungsformen, Funktionen und/oder Funktionalitäten des Aktualisierungsmoduls 110 in das Gateway-Modul 112 integriert oder anderweitig davon implementiert werden.It goes without saying that 1 1 is a simplified representation of a vehicle communication system 100 for purposes of explanation and is not intended to limit the scope or applicability of the subject matter described herein in any way. In this regard, practical embodiments of the vehicle 102 may include a variety of potential target modules 114 and/or a variety of vehicle communication networks 111, 113 to support or otherwise provide a variety of functions and/or functionality for the vehicle 102. Furthermore, in alternative embodiments, remote device 104 may be an external device communicatively coupled to update module 110 via an input interface to update module 110, as detailed in the context of FIG 2 described, and in such embodiments of the vehicle communication system 100, the external communication network 106 and/or the database 105 might not be present. Furthermore, even if 1 Illustrating update module 110 and gateway module 112 as separate and distinct, some alternative embodiments, features, and/or functionality of update module 110 may be incorporated into or otherwise implemented by gateway module 112 .

2 ein Blockdiagramm eines Beispiels eines Elektronikgerätes 200, das für den Gebrauch im Fahrzeugkommunikationssystem 100 von 1 geeignet ist. Zum Beispiel kann der Server 104 und/oder eines oder mehrere Module 110, 112, 114 eine Instanz des Elektronikgerätes 200 sein. Das dargestellte Elektronikgerät 200 umfasst, ohne Einschränkung, ein Steuermodul 202, ein Datenspeicherelement (oder Speicher) 204, ein oder mehrere Kommunikationsmodule 206 und eines oder mehrere Eingabeschnittstellen 208. Es versteht sich, dass 2 eine vereinfachte Darstellung eines Elektronikgerätes 200 zwecks der Erklärung ist und nicht die Absicht hat, den Umfang oder die Anwendbarkeit des hier beschriebenen Gegenstandes in irgendeiner Weise zu beschränken. 2 FIG. 10 is a block diagram of an example of an electronic device 200 suitable for use in the vehicle communication system 100 of FIG 1 suitable is. For example, the server 104 and/or one or more modules 110, 112, 114 can be an instance of the electronic device 200. The illustrated electronic device 200 includes, without limitation, a control module 202, a data storage element (or memory) 204, one or more communication modules 206, and one or more input interfaces 208. It is understood that 2 Figure 1 is a simplified representation of an electronic device 200 for purposes of explanation and is not intended to limit the scope or applicability of the subject matter described herein in any way.

Das Steuermodul 202 verkörpert im Allgemeinen Hardware, Schaltkreis Ablauflogik und/oder andere Komponenten des Elektronikgerätes 200, konfiguriert zur Unterstützung des Betriebs des Elektronikgerätes 200 und der unterschiedlichen Aufgaben, Betriebe, Funktionen und/oder hier beschriebenen Prozesse. Je nach der Ausführungsform kann das Steuermodul 202 mit einem Allzweckprozessor, einem Mikroprozessor, einem Kontroller, einem Mikrokontroller, einer Zustandsmaschine, einem inhaltsadressierbaren Speicher, einem anwendungsspezifischen integrierten Schaltkreis, einem vor Ort programmierbaren Gate-Array, einem geeigneten programmierbaren logischen Bauteil, diskreter Gate- oder Transistor-Logik, diskreten Hardwarekomponenten oder einer beliebigen Kombination davon, die auf die hier beschriebenen Funktionen ausgerichtet ist, implementiert werden. Gleichermaßen kann der Speicher 204 je nach der Ausführungsform eine beliebige Sorte von Arbeitsspeicher (R_AM), Nurlesespeicher (ROM), Flash-Speicher, Register, Festplatten, Wechselplatten, magnetischen oder optischen Massenspeicher, kurz- oder langfristigen Speichermedien und/oder anderen nicht transitorischen rechnerlesbaren Mitteln, die in der Lage sind, Programmierungsanweisungen für die Ausführung durch das Steuermodul 202 aufzunehmen, umfassen. Die rechnerausführbaren Programmierungsanweisungen, wenn vom Steuermodul 202 gelesen und ausgeführt, sorgen dafür, dass das Steuermodul 202 die unterschiedlichen Aufgaben, Operationen, Funktionen und hier beschriebenen Prozesse ausführt oder anderweitig unterstützt.The control module 202 generally embodies hardware, circuitry, processing logic, and/or other components of the electronic device 200 configured to support the operation of the electronic device 200 and the various tasks, operations, functions, and/or processes described herein. Depending on the embodiment, the control module 202 may include a general purpose processor, a microprocessor, a controller, a microcontroller, a state machine, a content addressable memory, an application specific integrated circuit, a field programmable gate array, an appropriate programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof directed to the functions described herein. Likewise, memory 204 may be any type of random access memory (R_AM), read only memory (ROM), flash memory, registers, hard drives, removable disks, magnetic or optical mass storage, short or long-term storage media, and/or other non-transitory computer-readable media, depending on the embodiment means capable of receiving programming instructions for execution by the control module 202. The computer-executable programming instructions, when read and executed by the control module 202, cause the control module 202 to perform or otherwise support the various tasks, operations, functions, and processes described herein.

Zum Beispiel mit Bezug auf 1 und immer noch mit Bezug auf 2, wenn das Aktualisierungsmodul 110 ein Beispiel des Elektronikgerätes 200 ist, kann der Speicher 204 ausführbaren Code, Skript und/oder Anweisungen für die Aktualisierungsmaschine 120 speichern, wenn vom Steuermodul 202 gelesen und ausgeführt, was dazu führt, dass das Steuermodul 202 die konfigurierte Aktualisierungsmaschine 120 erzeugt, um die unterschiedlichen Aufgaben, Operationen, Funktionen und hier beschriebenen Prozesse auszuführen. In ähnlicher Weise, wenn das Gateway-Modul 112 eine Instanz des Elektronikgerätes 200 ist, kann der Speicher 204 ausführbaren Code, Skript und/oder Anweisungen speichern, die, wenn vom Steuermodul 202 gelesen und ausgeführt, dazu führen, dass das Steuermodul 202 die Authentifizierungsmaschine 122 generiert. In ähnlicher Weise, wenn ein Zielmodul 114 als Beispiel des Elektronikgerätes 200 verwendet wird, speichert der Speicher 204 ausführbaren Code, Skript und/oder Anweisungen für die jeweilige Anwendung 124, 126, die generiert, ausgeführt oder anderweitig vom jeweiligen Zielmodul 114 implementiert wird. Des Weiteren kann der Speicher 204 verschiedene Parameter, Einstellungen und/oder andere Konfigurationsinformationen speichern, auf die sich der Code oder die Anweisungen der Zielanwendung 124 bezieht, um die gewünschten Funktionen und/oder Funktionalität für das Zielmodul 114 bereitzustellen. Wie nachstehend im Zusammenhang mit den 3-4 genauer beschrieben, führt nach der Authentifizierung, Prüfung oder anderweitiger Genehmigung der Programmierung oder Aktualisierung eines Zielmoduls 114 das Steuermodul 202 dieses Zielmoduls 114 eine Reihe Anweisungen aus, die in den Programmierungsdaten enthalten sind, welche vom Aktualisierungsmodul 110 und/oder der Aktualisierungsmaschine 120 empfangen wurden, um den Code und/oder Konfigurationsinformationen für die jeweilige Zielanwendung 124, die im Speicher 204 verwaltet werden, zu ändern, überschreiben oder anderweitig zu aktualisieren, wodurch die Zielanwendung 124 des Zielmoduls 114 aktualisiert wird.For example with reference to 1 and still with reference to 2 When the update module 110 is an example of the electronic device 200, the memory 204 may contain executable code, script, and/or instructions for the update module save engine 120 when read and executed by control module 202, resulting in control module 202 creating configured update engine 120 to perform the various tasks, operations, functions, and processes described herein. Similarly, when gateway module 112 is an instance of electronic device 200, memory 204 may store executable code, script, and/or instructions that, when read and executed by control module 202, result in control module 202 launching the authentication engine 122 generated. Similarly, when a target module 114 is used as an example of the electronic device 200, the memory 204 stores executable code, script, and/or instructions for the respective application 124, 126 that is generated, executed, or otherwise implemented by the respective target module 114. Furthermore, the memory 204 may store various parameters, settings, and/or other configuration information referenced by the code or instructions of the target application 124 to provide the desired functions and/or functionality for the target module 114 . As below in connection with the 3-4 More specifically, after a target module 114 has authenticated, verified, or otherwise approved programming or an update, that target module 114's control module 202 executes a series of instructions contained in the programming data received from the update module 110 and/or the update engine 120. to change, overwrite, or otherwise update the code and/or configuration information for the respective target application 124 maintained in memory 204, thereby updating the target application 124 of the target module 114.

Erneut mit Bezug auf 2, verkörpert/n das/die Kommunikationsmodul(e) 206 im Allgemeinen Hardware, Schaltkreis, Logik, Firmware und/oder andere Komponenten des Elektronikgerätes 200, die zur Unterstützung von Kommunikationen zu/vom Elektronikgerät 200 über ein oder mehrere Kommunikationsnetzwerke konfiguriert ist. Zum Beispiel, erneut mit Bezug auf 1 und immer noch mit Bezug auf FIG. wenn das Aktualisierungsmodul 110 eine Instanz des Elektronikgerätes 200 ist, kann das Elektronikgerät 200 eine erste Instanz eines Kommunikationsmoduls 206 umfassen, die Kommunikationen über das externe Kommunikationsnetzwerk 106, wie z. B. ein oder mehrere Sendeempfängermodule (d. h. ein Mobiltelefon-Sendeempfänger) unterstützt, und eine zweite Instanz eines Kommunikationsmoduls 206, die Kommunikationen über das erste Fahrzeugkommunikationsnetzwerk 111, wie z. B. einen Netzwerkadapter (d. h. einen Ethernet-Adapter, einen 802.11-Adapter, einen Bluetooth-Adapter oder Ähnliches) unterstützt. In ähnlicher Weise, wenn das Gateway-Modul 112 als Instanz des Elektronikgerätes 200 eingesetzt wird, kann eine erste Instanz eines Kommunikationsmoduls 206 innerhalb des Elektronikgerätes 200 als erster Netzwerkadapter eingesetzt werden (d. h. ein Ethernet-Adapter, ein 802.11-Adapter, ein Bluetooth-Adapter oder Ähnliches), der Kommunikationen über das erste Fahrzeugkommunikationsnetzwerk 111 unterstützt, und eine zweite Instanz eines Kommunikationsmoduls 206 innerhalb des Elektronikgerätes 200 kann als zweiter Netzwerkadapter (z. B. eine CAN-Schnittstelle, oder Ähnliches) eingesetzt werden, welcher Kommunikationen über das zweite Fahrzeugkommunikationsnetzwerk 113 unterstützt.Referring again to 2 , communication module(s) 206 generally embodies hardware, circuitry, logic, firmware, and/or other components of electronic device 200 configured to support communications to/from electronic device 200 over one or more communication networks. For example, again with reference to 1 and still referring to FIG. when the update module 110 is an instance of the electronic device 200, the electronic device 200 may include a first instance of a communication module 206 that facilitates communications over the external communication network 106, e.g. B. supports one or more transceiver modules (ie, a cellular phone transceiver), and a second instance of a communication module 206 that supports communications over the first vehicle communication network 111, such as. B. a network adapter (ie an Ethernet adapter, an 802.11 adapter, a Bluetooth adapter or similar) supports. Similarly, when the gateway module 112 is deployed as an instance of the electronic device 200, a first instance of a communication module 206 can be deployed within the electronic device 200 as the first network adapter (ie, an Ethernet adapter, an 802.11 adapter, a Bluetooth adapter or similar) that supports communications over the first vehicle communications network 111, and a second instance of a communications module 206 within electronic device 200 may be deployed as a second network adapter (e.g., a CAN interface, or similar) that supports communications over the second vehicle communications network 113 supported.

Immer noch mit Bezug auf 2 verkörpern die Eingangsschnittstellen 208 im Allgemeinen Hardware, Schaltkreis und/oder andere Komponenten, die eine physikalische Schnittstelle zu/vom Elektronikgerät 200 bereitstellen, um Eingabe und/oder Ausgabe von einem Benutzer oder einer anderen externen Hardwarekomponente zu erhalten. Zum Beispiel kann die Eingabeschnittstelle 208 einen oder mehrere Knöpfe, Tasten, Bedienfelder (oder Touchscreens), Computermäuse, Sensoren, Wandler oder andere geeignete Vorrichtungen umfassen, die für die Eingabe durch den Benutzer geeignet sind. In manchen Ausführungsformen kann die Eingabeschnittstelle 208 auch einen oder mehrere Anschlüsse oder Schlitze umfassen, z. B. einen universellen seriellen Bus (USB)-Anschluss, einen Speicherkartenschlitz oder Ähnliches. In dieser Hinsicht, auch wenn der Gegenstand hier im Kontext des Aktualisierungsmoduls 110, welches Programmierungsaktualisierungen vom Server 104 über das Netzwerk 106 erhält, beschreibbar ist, kann in alternativen Ausführungsformen das Aktualisierungsmodul 110 Programmierungsaktualisierungen von einer externen Remotevorrichtung erhalten, die in eine an das Aktualisierungsmodul 110 gekoppelte Eingabeschnittstelle eingesteckt wird. Zum Beispiel, erneut mit Bezug auf 1, wenn das Aktualisierungsmodul 110 als eine Instanz des Elektronikgerätes 200 eingesetzt wird, kann das Aktualisierungsmodul 110 Programmierungsaktualisierungen von einer externen Festplatte, einer externen Speicherkarte oder einem anderen externen Gerät erhalten, das in eine an das Aktualisierungsmodul 110 gekoppelte Eingabeschnittstelle 208 eingesteckt wird.Still referring to 2 Input interfaces 208 generally embody hardware, circuitry, and/or other components that provide a physical interface to/from electronic device 200 to receive input and/or output from a user or other external hardware component. For example, input interface 208 may include one or more knobs, buttons, control panels (or touch screens), computer mice, sensors, transducers, or other suitable devices responsive to user input. In some embodiments, the input interface 208 may also include one or more ports or slots, e.g. a universal serial bus (USB) port, a memory card slot, or the like. In this regard, while subject matter may be described herein in the context of updater module 110 receiving programming updates from server 104 via network 106, in alternative embodiments updater module 110 may receive programming updates from a remote external device that is configured in a manner sent to updater module 110 coupled input interface is plugged in. For example, again with reference to 1 When the update module 110 is deployed as an instance of the electronic device 200, the update module 110 may receive programming updates from an external hard drive, external memory card, or other external device that is plugged into an input interface 208 coupled to the update module 110.

3 zeigt ein Ausführungsbeispiel eines Programmierungsprozesses 300 für die Programmierung oder anderweitiger Aktualisierung eines Zielmoduls in einem Fahrzeug. Die unterschiedlichen Aufgaben, die im Zusammenhang mit dem dargestellten Prozess 300 durchgeführt werden, können von Hardware, entsprechend konfiguriertem analogem Schaltkreis, von vom Verarbeitungsschaltkreis ausgeführter Software, von vom Verarbeitungsschaltkreis ausgeführter Firmware oder einer Kombination davon durchgeführt werden. Zur Veranschaulichung kann die folgende Beschreibung auf Elemente Bezug nehmen, die in Zusammenhang mit 1-2 erwähnt wurden. In der Praxis können Teile des Programmierungsprozesses 300 durch unterschiedliche Elemente des Fahrzeugkommunikationssystems 100 durchgeführt werden, z. B. durch den Server 104, das Aktualisierungsmodul 110, das Gateway-Modul 112, das Zielmodul 114, 116, das Steuermodul 202, dem Speicher 204, das Kommunikationsmodul 206 und/oder der Eingabeschnittstelle 208. Es ist darauf hinzuweisen, dass praktische Ausführungsformen des Programmierungsprozesses 300 eine Vielzahl von zusätzlichen oder alternativen Aufgaben umfassen können, wobei die Aufgaben nicht in der dargestellten Reihenfolge und/oder die Aufgaben nicht gleichzeitig durchgeführt werden müssen und/oder der Programmierungsprozess 300 in ein umfangreicheres Verfahren oder Prozess einbeziehbar ist, wobei zusätzliche Funktionalitäten hier nicht detailgetreu beschrieben werden. Des Weiteren werden eine oder mehrere der dargestellten Aufgaben, beschrieben im Kontext von 3, bei einer praktischen Ausführungsform des Programmierungsprozesses 300 ausgelassen, sofern die beabsichtigte allgemeine Funktionalität intakt bleibt. 3 FIG. 3 shows one embodiment of a programming process 300 for programming or otherwise updating a target module in a vehicle. The various tasks associated with the illustrated process 300 may be performed by hardware, appropriately configured analog circuitry, software executed by the processing circuitry, firmware executed by the processing circuitry, or a combination nation of it to be carried out. For purposes of illustration, the following description may refer to elements associated with 1-2 were mentioned. In practice, parts of the programming process 300 may be performed by different elements of the vehicle communication system 100, e.g. B. by the server 104, the update module 110, the gateway module 112, the target module 114, 116, the control module 202, the memory 204, the communication module 206 and / or the input interface 208. It should be noted that practical embodiments of the Programming process 300 may include a variety of additional or alternative tasks, where the tasks do not have to be performed in the order presented and/or the tasks need not be performed concurrently, and/or programming process 300 is capable of being incorporated into a larger method or process, with additional functionalities not being disclosed here be described in detail. Furthermore, one or more of the tasks presented, described in the context of 3 , are omitted in a practical embodiment of the programming process 300 as long as the intended general functionality remains intact.

Bei Ausführungsbeispielen beginnt der Programmierungsprozess 300 mit dem Empfang oder dem anderweitigen Erhalt einer Programmierungsaktualisierung für ein bestimmtes Zielmodul in einem Fahrzeug bei 302. Zum Beispiel befragt das Aktualisierungsmodul 110 gemäß einer oder mehreren Ausführungsformen regelmäßig den Server 104 über das Netzwerk 106 nach Programmierungsaktualisierungen, die für eines der Zielmodule 114 im Fahrzeug 102 zutreffen. In anderen Ausführungsformen kann ein Benutzer eine Eingabeschnittstelle 208 des Aktualisierungsmoduls 110 bedienen, um nach Aktualisierungen für die Fahrzeugmodule 114, 116 zu suchen, was wiederum dazu führt, dass das Aktualisierungsmodul 110 eine Anfrage nach Programmierungsaktualisierungen an den Server 104 überträgt. In noch anderen Ausführungsformen kann ein Benutzer eine Eingabeschnittstelle 208 eines Zielmoduls 114 im Fahrzeug 102 bedienen, um nach Aktualisierungen für die Anwendung 124 auf diesem Zielmodul 114 zu suchen, was wiederum dazu führt, dass das Zielmodul 114 eine Anfrage nach Programmierungsaktualisierungen an das Aktualisierungsmodul 110 überträgt.In exemplary embodiments, programming process 300 begins with receiving or otherwise obtaining a programming update for a particular target module in a vehicle at 302 of the target modules 114 in the vehicle 102 apply. In other embodiments, a user may operate an input interface 208 of the update module 110 to check for updates to the vehicle modules 114, 116, which in turn results in the update module 110 transmitting a request to the server 104 for programming updates. In still other embodiments, a user may operate an input interface 208 of a target module 114 in the vehicle 102 to check for updates to the application 124 on that target module 114, which in turn results in the target module 114 transmitting a request for programming updates to the update module 110 .

Gemäß einer oder mehreren Ausführungsformen erzeugt die Aktualisierungsmaschine 120 auf dem Aktualisierungsmodul 110 eine Befragungsanfrage, um eine Programmierungsaktualisierung vom Server 104 zu erhalten, die Identifizierungsinformationen (d. h. eine Fahrgestellnummer oder Ähnliches) umfasst, welche vom Aktualisierungsmodul 110 gespeichert oder anderweitig verwaltet werden (z. B. im Speicher 204), was wiederum vom Server 104 verwendet wird, um das jeweilige Modell für das Fahrzeug 102 und/oder aktuelle Versionierungsinformationen für die Zielanwendungen 124 der Zielmodule 114 im Fahrzeug 102 zu bestimmen. Mit Hilfe der Identifizierungsinformationen kann der Server 104 befragen oder anderweitig auf die Datenbank 105 zugreifen, um zu bestimmen, ob Programmierungsaktualisierungen vorliegen, die für das Fahrzeug 102 gelten (z. B. mit einem mit dem Zielmodul 114 an Bord des Fahrzeugs 102 in Beziehung stehenden Programmierungsaktualisierungen). Als Reaktion auf die Identifizierung einer Aktualisierung für eines der Zielmodule 114 im Fahrzeug 102 erzeugt der Server 104 eine Programmierungsaktualisierung für das Fahrzeug 102 und überträgt oder stellt diese Programmierungsaktualisierung der Aktualisierungsmaschine 120 auf dem Aktualisierungsmodul 110 über das Netzwerk 106 anderweitig zur Verfügung. Die vom Server 104 erzeugte Programmierungsaktualisierung umfasst einen Programmierungsdatenteil, und um den Programmierungsdatenteil zu erzeugen, kann der Server 104 die Identifizierungsinformationen für das Fahrzeug 102 verwenden, um zu befragen oder anderweitig auf die Datenbank 105 zuzugreifen, um eine Reihe Anweisungen in Beziehung mit der Programmaktualisierung für das Zielmodul 114 zu erhalten und diese Reihe Anweisungen im Programmierungsdatenteil einzuschließen.According to one or more embodiments, update engine 120 generates a polling request on update module 110 to obtain a programming update from server 104 that includes identifying information (i.e., a VIN or the like) that update module 110 stores or otherwise maintains (e.g., in memory 204), which in turn is used by the server 104 to determine the particular model for the vehicle 102 and/or current versioning information for the target applications 124 of the target modules 114 in the vehicle 102. Using the identifying information, the server 104 may query or otherwise access the database 105 to determine if there are any programming updates applicable to the vehicle 102 (e.g., one related to the target module 114 onboard the vehicle 102 programming updates). In response to identifying an update for one of the target modules 114 in the vehicle 102 , the server 104 generates a programming update for the vehicle 102 and transmits or otherwise makes that programming update available to the update engine 120 on the update module 110 via the network 106 . The programming update generated by the server 104 includes a portion of programming data, and to generate the portion of programming data, the server 104 may use the identifying information for the vehicle 102 to query or otherwise access the database 105 to provide a set of instructions related to the program update for to get the target module 114 and to include this series of instructions in the programming data part.

Es ist zu beachten, dass in anderen Ausführungsformen das Aktualisierungsmodul 110 den Server 104 nicht regelmäßig nach Programmierungsaktualisierungen befragt, sondern der Server 104 automatisch Programmierungsaktualisierungen entweder regelmäßig oder, sobald neue Programmierungsaktualisierungen zur Verfügung stehen, zum Aktualisierungsmodul 110 befördert. Zum Beispiel kann der Server 104 regelmäßig auf die Datenbank 105 zugreifen, um gespeicherte Versionierungsinformationen für die Zielanwendung 124 im Fahrzeug 102 mit aktuellen Versionierungsinformationen zu vergleichen, die mit Programmaktualisierungen für diese Zielanwendung 124 in Beziehung stehen, die von der Datenbank 105 verwaltet werden. Wenn die Versionierungsinformationen andeuten, dass eine Zielanwendung 124 auf einem Zielmodul 114 aktualisiert werden sollte (z. B. weil die aktuellen, mit einer Programmaktualisierung für die Zielanwendung 124 in Beziehung stehenden Versionierungsinformationen, welche von der Datenbank 105 verwaltet werden, andeuten, dass die Programmierungsaktualisierung neuer ist), wird der Server 104 automatisch eine Programmierungsaktualisierung für das Zielmodul 114 erzeugen und die Programmierungsaktualisierung auf das Aktualisierungsmodul 110 befördern oder anderweitig übertragen.It should be noted that in other embodiments, the update module 110 does not periodically poll the server 104 for programming updates, rather the server 104 automatically pushes programming updates to the update module 110 either periodically or as new programming updates become available. For example, server 104 may periodically access database 105 to compare stored versioning information for target application 124 in vehicle 102 with current versioning information related to program updates for that target application 124 maintained by database 105 . If the versioning information indicates that a target application 124 on a target module 114 should be updated (e.g., because the current versioning information related to a program update for the target application 124 maintained by the database 105 indicates that the program update is newer), the server 104 will automatically generate a programming update for the target module 114 and push or otherwise transfer the programming update to the update module 110 .

In einer noch anderen Ausführungsform kann das Aktualisierungsmodul 110 und/oder die Aktualisierungsmaschine 120 die Programmierungsaktualisierung von einem externen Gerät (z. B. einem externen Laufwerk, Speicherkarte, CD oder Ähnliches), verbunden mit einer Eingabeschnittstelle 208 des Aktualisierungsmoduls 110, erhalten. Zum Beispiel kann eine vom Server 104 erzeugte Programmierungsaktualisierung gespeichert oder anderweitig auf einem externen Gerät aufgenommen werden, das an der Eingabeschnittstelle 208 des Aktualisierungsmoduls 110 anschließbar ist. Bei Anschluss eines externen Gerätes an einer Eingabeschnittstelle 208 können die Aktualisierungsmaschine 120 und/oder das Steuermodul 202 über die Eingabeschnittstelle automatisch scannen oder anderweitig Zugriff auf das externe Gerät erhalten, um Programmierungsaktualisierungen für das Zielmodule 114 im Fahrzeug 102 zu erhalten, die sich auf dem externen Gerät befinden.In yet another embodiment, the update module 110 and/or the update engine 120 may receive the programming update from an external device (e.g., an external drive, memory card, CD, or the like) connected to an input interface 208 of the update module 110 . For example, a programming update generated by server 104 may be stored or otherwise included on an external device connectable to input interface 208 of update module 110 . Upon connection of an external device to an input interface 208, the update engine 120 and/or control module 202 may automatically scan or otherwise gain access to the external device via the input interface to obtain programming updates for the target module 114 in the vehicle 102 residing on the external device.

Immer noch mit Bezug auf 3, fährt nach Erhalt der Programmierungsaktualisierung der Programmierungsprozess 300 durch Bestimmung, ob Programmierungskriterien für das Zielmodul bei 304 erfüllt wurden, fort. In dieser Hinsicht kann das Aktualisierungsmodul 110 und/oder die Aktualisierungsmaschine 120 Programmierungskriterien speichern (z. B. im Speicher 204), die begrenzen, in welchen Betriebsmodi sich das Zielmodul 114 und/oder andere Komponenten des Fahrzeugs 102 befinden müssen, bevor die Programmierung des Zielmoduls 114 einleitbar ist. Wenn das Zielmodul 114 zum Beispiel eine ESG, eine Bremskontrolle, eine Steuerkontrolle oder Ähnliches ist, können die Programmierungskriterien es erforderlich machen, dass sich das Zielmodul 114 im Leerlauf befindet und dass das Getriebe im Fahrzeug 102 gesperrt oder anderweitig in der geparkten Position ist, bevor die Programmierung des Zielmoduls 114 einleitbar ist. Wenn im Gegenzug das Zielmodul 114 eine Klimakontrolle (oder Klimakontrollsystem) ist, könnten die Programmierungskriterien es erforderlich machen, dass nur das Klimakontrollsystem im Leerlauf oder deaktivierten Zustand ist (d. h. ausgeschaltet). In dieser Hinsicht erhält oder identifiziert das Aktualisierungsmodul 110 und/oder die Aktualisierungsmaschine 120 den aktuellen Status des Zielmoduls 114 und/oder sonstiger Fahrzeugkomponenten und bestimmt, ob die Programmierungssitzung einleitbar ist, basierend auf den Programmierungskriterien für das beabsichtigte Zielmodul 114 und dem erhaltenen Status des Zielmoduls 114 und/oder anderen Fahrzeugkomponenten. In Ausführungsbeispielen, wenn das Aktualisierungsmodul 110 und/oder die Aktualisierungsmaschine 120 bestimmt, dass die Programmierungssitzung nicht einleitbar ist (z. B. weil der aktuelle Status des Zielmoduls 114 den geltenden Programmierungskriterien nicht gerecht wird), speichert oder verwaltet das Aktualisierungsmodul 110 und/oder die Aktualisierungsmaschine 120 die Programmierungsaktualisierung im Speicher 204 und wiederholt die Schritte des Erhalts des aktuellen Status des Zielmoduls 114 und/oder anderer Fahrzeugkomponenten und des Vergleichs des erhaltenen Status mit den Programmierungskriterien, die dem beabsichtigten Zielmodul 114 zugeordnet sind.Still referring to 3 , upon receipt of the programming update, the programming process 300 continues by determining whether programming criteria for the target module at 304 have been met. In this regard, the update module 110 and/or the update engine 120 may store programming criteria (e.g., in memory 204) that limit what operational modes the target module 114 and/or other components of the vehicle 102 must be in before programming the Target module 114 can be initiated. For example, if the target module 114 is an ESG, brake control, steering control, or the like, the programming criteria may require that the target module 114 be in neutral and that the transmission in the vehicle 102 be locked or otherwise in the parked position before the programming of the target module 114 can be initiated. Conversely, if the target module 114 is a climate control (or climate control system), the programming criteria might require only the climate control system to be in the idle or disabled state (ie, powered off). In this regard, the update module 110 and/or the update engine 120 obtains or identifies the current status of the target module 114 and/or other vehicle components and determines whether the programming session is initiable based on the programming criteria for the intended target module 114 and the obtained status of the target module 114 and/or other vehicle components. In embodiments, if the update module 110 and/or the update engine 120 determines that the programming session is not initiable (e.g., because the current state of the target module 114 does not meet applicable programming criteria), the update module 110 and/or stores or manages the update engine 120 updates the programming in memory 204 and repeats the steps of obtaining the current status of the target module 114 and/or other vehicle components and comparing the obtained status to the programming criteria associated with the intended target module 114 .

Wenn der Programmierungsprozess 300 den aktuellen Status des Zielmoduls bestimmt und/oder andere Fahrzeugkomponenten den Programmierungskriterien für das Zielmodul gerecht werden, wird der Programmierungsprozess 300 durch den Erhalt von Sitzungsauthentifizierungsinformationen vom Gateway-Modul bei 306 fortfahren, bestimmen oder anderweitig identifizieren, ob die Programmierungssitzung authentifiziert und autorisiert ist bei 308, und, wenn die Programmierungssitzung authentifiziert und autorisiert ist, Autorisierungsauthentifizierungsinformationen erhalten, die mithilfe der Sitzungsauthentifizierungsinformationen bei 310 verschlüsselt sind. Wie nachstehend im Zusammenhang mit 4 genauer beschrieben, überträgt oder stellt die Aktualisierungsmaschine 120 anderweitig eine Anfragenachricht oder andere Andeutung der Absicht, das Zielmodul 114 zu programmieren, der Authentifizierungsmaschine 122 über das Netzwerk 111 bereit. Als Antwort auf den Empfang der Anfrage einer Programmierungssitzung erzeugt die Authentifizierungsmaschine 122 dynamisch Sitzungsauthentifizierungsinformationen und überträgt oder stellt die Sitzungsauthentifizierungsinformationen anderweitig der Aktualisierungsmaschine 120 über das Netzwerk 111 bereit. In Ausführungsbeispielen umfassen die Sitzungsauthentifizierungsinformationen einen öffentlichen Schlüssel, der durch die Authentifizierungsmaschine 122 erzeugt wird, basierend zumindest zum Teil auf einem privaten Schlüssel in Beziehung mit dem Fahrzeug 102, welcher vom Gateway-Modul 112 und einer Laufzeit (oder Zeitstempel) in Beziehung mit der Programmierungsanforderung unter Verwendung einer Hashfunktion oder einem anderen kryptografischen Algorithmus, der dem Server 104 bekannt ist, verwaltet wird. In Ausführungsbeispielen speichert oder verwaltet das Gateway-Modul 112 anderweitig (z. B. im Speicher 204) die Sitzungsauthentifizierungsinformationen in Beziehung mit einer Programmierungsanfrage für den Gebrauch bei der Verschlüsselung von Autorisierungsauthentifizierungsinformationen, die nachfolgend vom Aktualisierungsmodul 110 bereitgestellt werden, wie nachstehend genauer beschrieben.If the programming process 300 determines the current status of the target module and/or other vehicle components meet the programming criteria for the target module, the programming process 300 will proceed to 306 by obtaining session authentication information from the gateway module, determine or otherwise identify whether the programming session is authenticated and is authorized at 308, and if the programming session is authenticated and authorized, obtaining authorization authentication information encrypted using the session authentication information at 310. As below in connection with 4 More specifically, update engine 120 transmits or otherwise provides a request message or other indication of intent to program target module 114 to authentication engine 122 over network 111 . In response to receiving the programming session request, authentication engine 122 dynamically generates session authentication information and transmits or otherwise provides the session authentication information to update engine 120 over network 111 . In exemplary embodiments, the session authentication information includes a public key generated by the authentication engine 122 based at least in part on a private key associated with the vehicle 102 obtained from the gateway module 112 and a term (or timestamp) associated with the programming request managed using a hash function or other cryptographic algorithm known to server 104. In embodiments, gateway module 112 otherwise stores or maintains (e.g., in memory 204) the session authentication information associated with a programming request for use in encrypting authorization authentication information subsequently provided by update module 110, as described in more detail below.

Als Antwort auf den Empfang der Sitzungsauthentifizierungsinformationen von der Authentifizierungsmaschine 112 überträgt oder stellt die Aktualisierungsmaschine 120 anderweitig eine Autorisierungsanfragenachricht oder andere Andeutung der Absicht, das Zielmodul 114 zu programmieren, dem Server 104 über das Netzwerk 106 bereit. Die Programmierungsautorisierungsanfrage umfasst die vom Gateway-Modul 112 und/oder der Authentifizierungsmaschine 122 erzeugten Sitzungsauthentifizierungsinformationen und als Antwort auf den Empfang der Programmierungsautorisierungsanfrage bestimmt der Server 104, ob die Programmierung des Zielmoduls 114 autorisiert ist basierend zumindest zum Teil auf Sitzungsauthentifizierungsinformationen. In dieser Hinsicht entschlüsselt der Server 104 die Sitzungsauthentifizierungsinformationen, um zu bestätigen, dass das zuverlässige Gateway-Modul 112 im Fahrzeug 102 die Quelle der Sitzungsauthentifizierungsinformationen ist, zum Beispiel durch Bestätigung, dass der zur Verschlüsselung der Sitzungsauthentifizierungsinformationen verwendete private Schlüssel dem mit dem Fahrzeug 102 in Beziehung stehenden privaten Schlüssel, welcher in der Datenbank 105 gespeichert oder anderweitig verwaltet wird, entspricht.In response to receiving the session authentication information from the authentication engine 112, the update engine 120 transmits or otherwise provides an authorization request message or other indication of intent to program the target module 114. the server 104 over the network 106. The programming authorization request includes session authentication information generated by gateway module 112 and/or authentication engine 122, and in response to receiving the programming authorization request, server 104 determines whether programming of target module 114 is authorized based at least in part on session authentication information. In this regard, the server 104 decrypts the session authentication information to confirm that the trusted gateway module 112 in the vehicle 102 is the source of the session authentication information, for example by confirming that the private key used to encrypt the session authentication information corresponds to the vehicle 102 in Related private key stored in database 105 or otherwise managed.

Nach der Authentifizierung oder anderweitigen Prüfung der Sitzungsauthentifizierungsinformationen bestimmt der Server 104, ob die Programmierung des Zielmoduls 114 autorisiert ist basierend auf einem oder mehreren zusätzlichen Kriterien, wie z. B. eine Frequenz und/oder Anzahl von Programmierungsanfragen, die für das jeweilige Zielmodul 114 erhalten wurden, eine Frequenz und/oder Menge der Programmierungsanfragen, die für das Fahrzeug 102 erhalten wurden, eine Frequenz und/oder Menge der Programmierungsanfragen, die vom jeweiligen Aktualisierungsmodul 110 erhalten wurden, eine Frequenz und/oder Menge der Programmierungsanfragen, die von einem bestimmten Ort auf dem Netzwerk 106 erhalten wurden oder Ähnliches. In dieser Hinsicht kann die Datenbank 105 eine Reihe unterschiedlicher Grenzwerte verwalten, die vom Server 104 verwendet werden, um Programmierungsanfragen zu identifizieren, die möglicherweise bösartig sind, oder um anderweitig auf eine Cyberattacke hinweisen. Zum Beispiel könnte der Server 104 nicht die Programmierung des Zielmoduls 114 autorisieren, wenn die Anzahl der Anfragen, das Zielmodul 114 zu programmieren, über einem bestimmten Zeitraum einen Grenzwert für eine gestattete Anzahl von Programmierungssitzungen für das jeweilige Zielmodul 114 über diesen Zeitraum übertrifft oder wenn die Anzahl der vom Aktualisierungsmodul 110 über einem bestimmten Zeitraum erhaltenen Anfragen einen Grenzwert der gestatteten kumulativen Anzahl von Programmierungssitzungen für ein beliebiges Modul im Fahrzeug 102 über diesen Zeitraum übertrifft. In dieser Hinsicht kann der Server 104 und/oder die Datenbank 105 für jede vom Server 104 erhaltene Programmierungsanfrage Informationen speichern oder anderweitig verwalten, die das Fahrzeug 102 in Beziehung mit der Programmierungsanfrage, das Zielmodul 114 in Beziehung mit der Anfrage, das Aktualisierungsmodul 110 in Beziehung mit der Anfrage, einen Ort auf dem Netzwerk 106 in Beziehung mit der Quelle der Anfrage (z. B. Internetprotokoll (IP) Adresse für das Aktualisierungsmodul 110) und Ähnliches identifizieren.After authenticating or otherwise verifying the session authentication information, server 104 determines whether programming of target module 114 is authorized based on one or more additional criteria, such as: B. a frequency and/or number of programming requests received for the respective target module 114, a frequency and/or amount of programming requests received for the vehicle 102, a frequency and/or amount of programming requests received by the respective update module 110, a frequency and/or amount of programming requests received from a particular location on the network 106, or the like. In this regard, database 105 may maintain a number of different thresholds used by server 104 to identify programming requests that may be malicious or otherwise indicative of a cyberattack. For example, the server 104 could not authorize the programming of the target module 114 if the number of requests to program the target module 114 over a certain period of time exceeds a limit for an allowed number of programming sessions for the respective target module 114 over that period or if the Number of requests received from the update module 110 over a given time period exceeds a limit of the allowed cumulative number of programming sessions for any module in the vehicle 102 over that time period. In this regard, for each programming request received from the server 104, the server 104 and/or database 105 may store or otherwise maintain information relating the vehicle 102 in relation to the programming request, the target module 114 in relation to the request, the update module 110 identify with the request a location on the network 106 in relation to the source of the request (e.g., Internet Protocol (IP) address for the update module 110), and the like.

Wenn der Server 104 die Sitzungsauthentifizierungsinformationen als vom Gateway-Modul 112 erhalten authentifiziert und bestimmt, dass die Programmierungsanfrage autorisiert ist (z. B. weil die Anzahl der erhaltenen Programmierungsanfragen nicht die zutreffenden Grenzwerte übertrifft), erzeugt der Server 104 Autorisierungsauthentifizierungsinformationen, die vom Gateway-Modul 112 verwendet werden, um zu authentifizieren, dass die Programmierung des Zielmoduls 114 durch die zuverlässige Remotevorrichtung 104 autorisiert ist. In Ausführungsbeispielen erzeugt der Server 104 Autorisierungsverschlüsselungsinformationen durch Verschlüsselung eines privaten Schlüssels, der mit dem Fahrzeug 102 in Beziehung steht, indem er den mit den Sitzungsauthentifizierungsinformationen und einer Hashfunktion oder einem anderen kryptografischen Algorithmus, der dem Gateway-Modul 112 bekannt ist, erhaltenen öffentlichen Schlüssel verschlüsselt. Danach überträgt oder stellt der Server 104 die Autorisierungsauthentifizierungsinformationen dem Aktualisierungsmodul 110 und/oder der Aktualisierungsmaschine 120 über das Netzwerk 106 bereit. Wenn im Gegenzug der Server 104 bestimmt, dass die Programmierungsanfrage nicht authentifiziert oder anderweitig unautorisiert ist, stellt der Server 104 dem Aktualisierungsmodul 110 und/oder der Aktualisierungsmaschine 120 keine Autorisierungsauthentifizierungsinformationen bereit, und der Programmierungsprozess 300 verhindert, dass eine unautorisierte Programmierungssitzung mit dem Zielmodul bei 318 eingeleitet wird, wie nachstehend genauer beschrieben.If the server 104 authenticates the session authentication information as received from the gateway module 112 and determines that the programming request is authorized (e.g., because the number of programming requests received does not exceed applicable limits), the server 104 generates authorization authentication information that the gateway module Module 112 may be used to authenticate that the programming of the target module 114 is authorized by the trusted remote device 104. In exemplary embodiments, the server 104 generates authorization encryption information by encrypting a private key associated with the vehicle 102 by encrypting the public key obtained using the session authentication information and a hash function or other cryptographic algorithm known to the gateway module 112 . Thereafter, server 104 transmits or provides the authorization authentication information to update module 110 and/or update engine 120 over network 106 . Conversely, if the server 104 determines that the programming request is unauthenticated or otherwise unauthorized, the server 104 does not provide the update module 110 and/or the update engine 120 with authorization authentication information, and the programming process 300 prevents an unauthorized programming session with the target module from starting at 318 is initiated, as described in more detail below.

Immer noch mit Bezug auf 3, nach Erhalt von Autorisierungsinformationen, fährt der Programmierungsprozess 300 mit der Prüfung oder anderweitigen Authentifizierung fort, dass die Quelle der Autorisierung eine zuverlässige Remotevorrichtung ist, mithilfe der Autorisierungsauthentifizierungsinformationen bei 312. In diese Hinsicht, als Antwort auf den Erhalt der Autorisierungsauthentifizierungsinformationen von der Remotevorrichtung 104 überträgt die Aktualisierungsmaschine 120 die Autorisierungsauthentifizierungsinformationen an die Authentifizierungsmaschine 122 über das Fahrzeugkommunikationsnetzwerk 111. Als Antwort auf den Empfang der Autorisierungsauthentifizierungsinformationen entschlüsselt die Authentifizierungsmaschine 122 die Autorisierungsauthentifizierungsinformationen mithilfe des gespeicherten öffentlichen Schlüssels und/oder anderen Sitzungsauthentifizierungsinformationen, die vorher von der Authentifizierungsmaschine 122 in Beziehung mit der Programmierungsanfrage erzeugt wurden. Wenn ein von den entschlüsselten Autorisierungsauthentifizierungsinformationen erhaltener entschlüsselter privater Schlüssel dem mit dem Fahrzeug 102 in Beziehung stehenden gespeicherten privaten Schlüssel entspricht, bestimmt die Authentifizierungsmaschine 122, dass die Quelle der Programmierungsaktualisierungsautorisierung zuverlässig, geprüft oder anderweitig authentifiziert ist und dass die Programmierungssitzung gestattet oder anderweitig autorisiert ist.Still referring to 3 , Upon receipt of authorization information, the programming process 300 proceeds to verify or otherwise authenticate that the source of the authorization is a reliable remote device using the authorization authentication information at 312. In this regard, in response to receipt of the authorization authentication information from the remote device 104 transmits the update engine 120 the authorization authentication information to the authentication engine 122 via the vehicle communication network 111. In response to receiving the authorization authentication information, the authentication engine 122 decrypts the authorization authentication information using the stored public key and/or other session authentication information previously generated by the authentication engine 122 in relation to the programming request became. If one of the If the decrypted private key obtained from the decrypted authorization authentication information matches the stored private key associated with the vehicle 102, the authentication engine 122 determines that the source of the programming update authorization is reliable, verified, or otherwise authenticated and that the programming session is permitted or otherwise authorized.

Nachdem der Programmierungsprozess 300 bestimmt, dass die Programmierungsaktualisierung durch eine authentifizierte Remotevorrichtung autorisiert ist, wird der Programmierungsprozess 300 durch Übertragen oder anderweitiger Bereitstellung der Programmierungsdaten für die Programmierungsaktualisierung an das Zielmodul über das Gateway-Modul bei 314 und Programmierung des Zielmoduls mithilfe der Programmierungsdaten bei 316 abgeschlossen. In dieser Hinsicht kann die Authentifizierungsmaschine 122 eine Antwort auf die Programmierungsanfrage oder einen anderen Befehl an die Aktualisierungsmaschine 120 bereitstellen, dass die Programmierungssitzung gestattet oder anderweitig autorisiert ist. Danach funktioniert das Gateway-Modul 112 und/oder die Authentifizierungsmaschine 122 wie ein Gateway zwischen dem ersten Fahrzeugkommunikationsnetzwerk 111 und dem zweiten Fahrzeugkommunikationsnetzwerk 113 und leitet oder überträgt Daten vom Aktualisierungsmodul 110 und/oder der Aktualisierungsmaschine 120 an das Zielmodul 114 und/oder der Zielanwendung 124 weiter. In manchen Ausführungsformen kann das Gateway-Modul 112 und/oder die Authentifizierungsmaschine 122 so konfiguriert sein, dass sie einen Timer oder eine ähnliche Funktion verwendet und nur Kommunikationen vom ersten Fahrzeugkommunikationsnetzwerk 111 an das zweite Fahrzeugkommunikationsnetzwerk 113 und/oder das Zielmodul 114 für einen begrenzten Zeitraum weiterleitet. In anderen Worten, die vom Gateway-Modul 112 und/oder der Authentifizierungsmaschine 122 bereitgestellte Gateway-Funktionalität kann nicht auf unbestimmte Zeit offen bleiben.After the programming process 300 determines that the programming update is authorized by an authenticated remote device, the programming process 300 is completed by transmitting or otherwise providing the programming data for the programming update to the target module via the gateway module at 314 and programming the target module using the programming data at 316 . In this regard, authentication engine 122 may provide a response to the programming request or other command to update engine 120 that the programming session is permitted or otherwise authorized. Thereafter, the gateway module 112 and/or the authentication engine 122 functions as a gateway between the first vehicle communication network 111 and the second vehicle communication network 113 and routes or transmits data from the update module 110 and/or the update engine 120 to the target module 114 and/or the target application 124 further. In some embodiments, the gateway module 112 and/or the authentication engine 122 may be configured to use a timer or similar function and only allow communications from the first vehicle communication network 111 to the second vehicle communication network 113 and/or the target module 114 for a limited period of time forwards. In other words, the gateway functionality provided by gateway module 112 and/or authentication engine 122 cannot remain open indefinitely.

Gemäß einer oder mehreren Ausführungsformen, um die Programmierungsaktualisierung zu implementieren, signalisiert oder anderweitig befiehlt die Aktualisierungsmaschine dem Zielmodul 114, in einen Programmierungsmodus überzugehen, und als Antwort auf den Empfang eines Programmierungsmodusbefehls von der Aktualisierungsmaschine 120 geht das Zielmodul 114 in den Programmierungsmodus über. In alternativen Ausführungsformen kann der Benutzer eine Eingabeschnittstelle 208 des Zielmoduls 114 bedienen, damit das Zielmodul 114 in den Programmierungsmodus übergeht (z. B. als Teil einer Prüfung auf Aktualisierungen). Nach dem Befehl an das Zielmodul 114, in den Programmierungsmodus überzugehen, überträgt oder stellt die Aktualisierungsmaschine 120 anderweitig die Programmierungsdaten für die Programmierungsaktualisierung an das Gateway-Modul 112 über das erste Fahrzeugkommunikationsnetzwerk 111 bereit und das Gateway-Modul 112 leitet die Programmierungsdaten automatisch an das Zielmodul 114 weiter über das zweite Fahrzeugkommunikationsnetzwerk 113. Wenn sich das Zielmodul 114 im Programmierungsmodus befindet, wird das Zielmodul 114 konfiguriert, um automatisch die Anweisungsreihe der Programmierungsdatendatei auszuführen oder anderweitig zu implementieren, um die jeweilige Zielanwendung 124 zu ändern, wie oben beschrieben. Zum Beispiel kann ein Zielmodul 114 als Antwort auf den Empfang eines Befehls, in den Programmierungsmodus überzugehen, von der Aktualisierungsmaschine 120 einen Bootmodus (oder Boot-Lademodus) einleiten, um das Steuermodul 202 in einen Zustand zu versetzen, in dem das Steuermodul 202 automatisch die in den Programmierungsdaten enthaltenen Anweisungen bei Empfang der Programmierungsdaten vom Aktualisierungsmodul 110 und/oder der Aktualisierungsmaschine 120 über das Gateway-Modul 112 und das zweite Kommunikationsnetzwerk 113 ausführt.According to one or more embodiments, to implement the programming update, the update engine signals or otherwise commands the target module 114 to transition to a programming mode, and in response to receiving a programming mode command from the update engine 120, the target module 114 transitions to the programming mode. In alternative embodiments, the user may operate an input interface 208 of the target module 114 to cause the target module 114 to enter programming mode (e.g., as part of a check for updates). Upon commanding the target module 114 to enter the programming mode, the update engine 120 transmits or otherwise provides the programming data for the programming update to the gateway module 112 via the first vehicle communication network 111, and the gateway module 112 automatically forwards the programming data to the target module 114 continues via the second vehicle communication network 113. When the target module 114 is in programming mode, the target module 114 is configured to automatically execute or otherwise implement the programming data file's instruction set to modify the respective target application 124, as described above. For example, a target module 114 may initiate a boot mode (or boot load mode) in response to receiving a command to enter programming mode from the update engine 120 to place the control module 202 in a state in which the control module 202 automatically executes instructions contained in the programming data upon receipt of the programming data from the update module 110 and/or the update engine 120 via the gateway module 112 and the second communication network 113 .

Immer noch mit Bezug auf 3, als Antwort darauf, dass die Programmierungsaktualisierung nicht authentifiziert ist oder dass die Quelle der Autorisierung nicht authentifiziert ist, verhindert oder beschränkt der Programmierungsprozess 300 die Programmierung des Zielmoduls bei 318. Wenn zum Beispiel der Server 104 bestimmt, dass der private Schlüssel der entschlüsselten Sitzungsauthentifizierungsinformationen nicht dem privaten Schlüssel in Beziehung mit dem Fahrzeug 102 entspricht und/oder dass die Anzahl der Programmierungsanfragen einen zulässigen Grenzwert überschreitet, bestimmt der Server 104, dass die Programmierungssitzung nicht autorisiert ist, und stellt dem Aktualisierungsmodul 110 und/oder der Aktualisierungsmaschine 120 als Antwort auf einer Programmierungsautorisierungsanfrage keine Autorisierungsauthentifizierungsinformationen bereit. In Ausführungsbeispielen bietet das Gateway-Modul 112 standardmäßig keine Gateway-Funktionalität vom ersten Fahrzeugkommunikationsnetzwerk 111 zum zweiten Fahrzeugkommunikationsnetzwerk 113. Demzufolge hindert die fehlende Bereitstellung von Autorisierungsauthentifizierungsinformationen an das Aktualisierungsmodul 110 das Gateway-Modul 112 dabei, die Programmierungsaktualisierung als autorisiert zu authentifizieren und die Gateway-Funktionalität vom ersten Fahrzeugkommunikationsnetzwerk 111 zum zweiten Fahrzeugkommunikationsnetzwerk 113 zu aktivieren, was wiederum verhindert, dass die unautorisierte Programmierungssitzung mit dem Zielmodul 114 eingeleitet wird. In ähnlicher Weise, wenn der von den entschlüsselten Autorisierungsauthentifizierungsinformationen erhaltene private Schlüssel nicht dem gespeicherten privaten Schlüssel in Beziehung mit dem Fahrzeug 102 entspricht, bestimmt das Gateway-Modul 112, dass die Programmierungsautorisierung nicht authentifiziert ist und bietet keine Gateway-Funktionalität vom ersten Fahrzeugkommunikationsnetzwerk 111 zum zweiten Fahrzeugkommunikationsnetzwerk 113 und vermeidet damit, dass unauthentifizierte Programmierungssitzungen und/oder Aktualisierungen mit dem Zielmodul 114 eingeleitet werden.Still referring to 3 , in response to the programming update being unauthenticated or the source of the authorization being unauthenticated, the programming process 300 prevents or restricts the programming of the target module at 318. For example, if the server 104 determines that the private key of the decrypted session authentication information is not corresponds to the private key associated with the vehicle 102 and/or that the number of programming requests exceeds an allowable limit, the server 104 determines that the programming session is unauthorized and provides the update module 110 and/or the update engine 120 in response to a Programming authorization request did not provide authorization authentication information. In exemplary embodiments, the gateway module 112 does not provide gateway functionality from the first vehicle communication network 111 to the second vehicle communication network 113 by default. Accordingly, failure to provide authorization authentication information to the update module 110 prevents the gateway module 112 from authenticating the programming update as authorized and the gateway Activate functionality from the first vehicle communication network 111 to the second vehicle communication network 113, which in turn prevents the unauthorized programming session with the target module 114 is initiated. Similarly, if the private key obtained from the decrypted authorization authentication information does not match the stored private key associated with the vehicle 102, the gateway module 112 determines that the programming authorization is unauthenticated and does not provide gateway functionality from the first vehicle communication network 111 to second vehicle communication network 113, thereby avoiding initiating unauthenticated programming sessions and/or updates with the target module 114.

4 zeigt eine Beispielsequenz 400 von Kommunikationen zwischen den Fahrzeugkommunikationssystemen 100 gemäß einer beispielhaften Ausführungsform des Programmierungsprozesses 300 von 3. Mit Bezug auf 4 und immer noch mit Bezug auf 1-3 beginnt die dargestellte Sequenz 400 damit, dass das Aktualisierungsmodul 110 eine Programmierungsaktualisierung von einer Remotevorrichtung 104, z. B. einem Server oder einer externen Festplatte (oder CD oder Karte) herunterlädt, empfängt oder anderweitig erhält 402. Nachdem es die Programmierungsaktualisierung erhalten und bestimmt hat, dass die für die Programmierungsaktualisierung zutreffenden Programmierungskriterien erfüllt sind, überträgt 404 das Aktualisierungsmodul 110 und/oder die Aktualisierungsmaschine 120 eine Erstanfrage für eine Programmierungssitzung an die Authentifizierungsmaschine 122 auf dem Gateway-Modul 112 über das erste Kommunikationsnetzwerk 111. Als Antwort darauf erzeugt die Authentifizierungsmaschine 122 dynamisch einen öffentlichen Schlüssel und/oder sonstige Sitzungsauthentifizierungsinformationen basierend zumindest zum Teil auf einem privaten Schlüssel in Beziehung mit dem Fahrzeug 102, welcher vom Gateway-Modul 112 gespeichert wird. Die Authentifizierungsmaschine 122 überträgt 406 die Sitzungsauthentifizierungsinformationen an die Aktualisierungsmaschine 120 als Antwort auf die ursprüngliche Programmierungsanfrage und, als Antwort auf den Empfang der Sitzungsauthentifizierungsinformationen, überträgt die Aktualisierungsmaschine 120 oder stellt anderweitig 408 eine Programmierungsautorisierungsanfrage bereit, die den öffentlichen Schlüssel und/oder Sitzungsauthentifizierungsinformationen für die Remotevorrichtung 104 umfasst. 4 FIG. 4 shows an example sequence 400 of communications between the vehicle communication systems 100 according to an example embodiment of the programming process 300 of FIG 3 . Regarding 4 and still with reference to 1-3 The illustrated sequence 400 begins with the update module 110 receiving a programming update from a remote device 104, e.g. a server or external hard drive (or CD or card), downloads, receives, or otherwise obtains 402. After receiving the programming update and determining that the programming criteria applicable to the programming update are met, the update module 110 transmits 404 and/or the Update engine 120 issues an initial request for a programming session to authentication engine 122 on gateway module 112 over first communications network 111. In response, authentication engine 122 dynamically generates a public key and/or other session authentication information based at least in part on a private key related to the vehicle 102, which is stored by the gateway module 112. The authentication engine 122 transmits 406 the session authentication information to the update engine 120 in response to the original programming request and, in response to receiving the session authentication information, the update engine 120 transmits or otherwise provides 408 a programming authorization request containing the public key and/or session authentication information for the remote device 104 includes.

Nachdem die Remotevorrichtung 104 authentifiziert, dass der öffentliche Schlüssel und/oder Sitzungsauthentifizierungsinformationen vom Gateway-Modul 112 im Fahrzeug 102 erzeugt wurden und überprüft wurde, dass die Programmierungsanfrage keinen der Grenzwerte überschreitet, erzeugt die Remotevorrichtung 104 Autorisierungsauthentifizierungsinformationen mithilfe des öffentlichen Schlüssels und/oder sonstige Sitzungsauthentifizierungsinformationen durch Verschlüsseln eines privaten Schlüssel in Beziehung mit dem Fahrzeug 102 unter Verwendung des öffentlichen Schlüssels und/oder anderer Sitzungsauthentifizierungsinformationen. Danach überträgt oder stellt die Remotevorrichtung 104 anderweitig 410 die Autorisierungsauthentifizierungsinformationen dem Aktualisierungsmodul 110 und/oder der Aktualisierungsmaschine 120 bereit, welche wiederum die Autorisierungsinformationen an das Gateway-Modul 112 und/oder die Authentifizierungsmaschine 122 überträgt 412. Die Authentifizierungsmaschine 122 entschlüsselt die Autorisierungsauthentifizierungsinformationen mithilfe des öffentlichen Schlüssels und/oder anderer Sitzungsauthentifizierungsinformationen und vergleicht die entschlüsselten Autorisierungsauthentifizierungsinformationen mit gespeicherten Authentifizierungsinformationen, um zu authentifizieren, dass die Autorisierung von einer zuverlässigen Quelle stammt. In der dargestellten Ausführungsform bestimmt die Authentifizierungsmaschine 122, nachdem die Authentifizierungsmaschine 122 überprüft, dass ein entschlüsselter privater Schlüssel einem gespeicherten privaten Schlüssel in Beziehung mit dem Fahrzeug 102 entspricht, ob die Programmierungssitzung von einer authentifizierten Remotevorrichtung 104 autorisiert ist und überträgt oder stellt 414 der Aktualisierungsmaschine anderweitig eine Antwortmeldung bereit, die andeutet, dass die Anfrage für die Programmierungssitzung gestattet, autorisiert oder anderweitig erlaubt wurde. Danach überträgt 416 die Aktualisierungsmaschine 120 einen Programmierungsmodusbefehl und die Programmierungsdaten für die Programmierungsaktualisierung an das Gateway-Modul 112 über das erste Fahrzeugkommunikationsnetzwerk 111, und das Gateway-Modul 112 leitet 418 den Programmierungsmodusbefehl und die Programmierungsdaten automatisch über das zweite Fahrzeugkommunikationsnetzwerk 113 an das Zielmodul 114 weiter. Nachdem das Zielmodul 114 in den Programmierungsmodus übergeht und die Programmierungsdaten erhält, führt das Steuermodul 202 des Zielmoduls 114 den Code, Skript und/oder Anweisungen von den Programmierungsdaten aus oder implementiert sie anderweitig, um die gewünschte Aktualisierung bei der Zielanwendung 124 vorzunehmen.After the remote device 104 authenticates that the public key and/or session authentication information was generated by the gateway module 112 in the vehicle 102 and verifies that the programming request does not exceed any of the thresholds, the remote device 104 generates authorization authentication information using the public key and/or other session authentication information by encrypting a private key associated with the vehicle 102 using the public key and/or other session authentication information. Thereafter, the remote device 104 transmits or otherwise provides 410 the authorization authentication information to the update module 110 and/or the update engine 120, which in turn transmits 412 the authorization information to the gateway module 112 and/or the authentication engine 122. The authentication engine 122 decrypts the authorization authentication information using the public key and/or other session authentication information and compares the decrypted authorization authentication information with stored authentication information to authenticate that the authorization came from a reliable source. In the illustrated embodiment, after the authentication engine 122 verifies that a decrypted private key corresponds to a stored private key associated with the vehicle 102, the authentication engine 122 determines whether the programming session is authorized by an authenticated remote device 104 and otherwise transmits or provides 414 the update engine provides a response message indicating that the request for the programming session has been permitted, authorized, or otherwise permitted. Thereafter, the update engine 120 transmits 416 a programming mode command and the programming data for the programming update to the gateway module 112 via the first vehicle communication network 111, and the gateway module 112 automatically forwards 418 the programming mode command and the programming data to the target module 114 via the second vehicle communication network 113 . After the target module 114 enters the programming mode and receives the programming data, the control module 202 of the target module 114 executes or otherwise implements the code, script, and/or instructions from the programming data to perform the desired update on the target application 124.

Ein Vorteil des hier beschriebenen Gegenstands ist, dass von einer Remotevorrichtung erhaltene Programmierungsaktualisierungen nicht implementiert werden, wenn sie nicht durch eine zuverlässige Quelle als autorisiert authentifiziert werden. Demnach können Anwendungen auf Fahrzeugmodulen sicher programmiert oder anderweitig mithilfe von ausführbarem Code, Script und/oder Anweisungen, die über ein externes Netzwerk (z. B. ein Mobiltelefonnetzwerk oder Ähnliches) empfangen werden, aktualisiert werden, ohne dass das Fahrzeug manuell an einem bestimmten Ort (z. B. durch einen Techniker in einem Autohaus) gewartet werden muss.An advantage of the subject matter described herein is that programming updates received from a remote device will not be implemented unless authenticated as authorized by a reliable source. Accordingly, applications on vehicle modules may be securely programmed or otherwise using executable code, script, and/or instructions received over an external network (e.g., a cell phone network or the like). be updated without the vehicle having to be serviced manually at a specific location (e.g. by a technician at a car dealership).

Der Kürze halber können herkömmliche Techniken bezüglich Kommunikationsnetzwerken, Authentifizierung, Softwareaktualisierung, Fahrzeugelektronik und/oder elektrische Systeme und andere funktionelle Aspekte des Gegenstands hier nicht ausführlich beschrieben werden. Des Weiteren kann bestimmte Terminologie hier auch nur als Referenz verwendet werden, und ist daher nicht als einschränkend zu betrachten. Die Begriffe „erstes“, „zweites“ und andere ähnliche numerische Begriffe in Bezug auf Strukturen deuten keine Sequenz oder Reihenfolge an, ausgenommen wenn klar durch den Kontext darauf hingewiesen wird. Des Weiteren bezieht sich die vorangehende Beschreibung ebenfalls auf Elemente oder Knoten oder Funktionen, die miteinander „verbunden“ oder „verkoppelt“ werden. Wie hier verwendet, wenn nicht ausdrücklich anders angegeben, bedeutet „verbunden“, dass ein Element direkt mit einem anderen Element verbunden ist (oder direkt damit kommuniziert), aber nicht unbedingt mechanisch. Ebenfalls, wenn nicht ausdrücklich anders angegeben, bedeutet „gekoppelt“, dass ein Element direkt oder indirekt mit einem anderen Element verbunden ist (oder direkt oder indirekt damit kommuniziert), aber nicht unbedingt mechanisch.For the sake of brevity, conventional techniques related to communication networks, authentication, software updating, vehicle electronics and/or electrical systems, and other functional aspects of the subject matter cannot be described in detail herein. Furthermore, certain terminology may also be used herein for reference only and is therefore not to be considered limiting. The terms "first," "second," and other similar numerical terms relating to structures do not imply a sequence or order, except where clearly indicated by the context. Furthermore, the preceding description also refers to elements or nodes or functions that are “connected” or “coupled” to one another. As used herein, unless expressly stated otherwise, "connected" means that one element is directly connected to (or directly communicates with) another element, but not necessarily mechanically. Also, unless expressly stated otherwise, "coupled" means that one element is directly or indirectly connected to (or directly or indirectly communicates with) another element, but not necessarily mechanically.

Beispiele.examples.

Beispiel 1. Ein Fahrzeug, umfassend:

  • ein erstes Modul
  • ein Gateway-Modul, das kommunikativ an das erste Modul gekoppelt ist, und
  • ein Aktualisierungsmodul, das kommunikativ an das Gateway-Modul gekoppelt ist, um dem Gateway-Modul Autorisierungsinformationen und Programmierungsdaten bereitzustellen, wobei das Gateway-Modul konfiguriert ist, um zu überprüfen, dass die Programmierung des ersten Moduls zumindest zum Teil auf den Autorisierungsinformationen basierend autorisiert ist, und dem ersten Modul nach Überprüfung, dass die Programmierung autorisiert ist, die Programmierungsdaten bereitzustellen.
Example 1. A vehicle comprising:
  • a first module
  • a gateway module communicatively coupled to the first module, and
  • an update module communicatively coupled to the gateway module to provide authorization information and programming data to the gateway module, wherein the gateway module is configured to verify that programming of the first module is authorized based at least in part on the authorization information , and the first module after verifying that programming is authorized to provide the programming data.

Beispiel 2. Das Fahrzeug nach Beispiel 1, wobei das Gateway-Modul konfiguriert ist, um:

  • die Autorisierungsinformationen mithilfe von Sitzungsinformationen zu entschlüsseln, um einen entschlüsselten Schlüssel zu erhalten, und
  • zu überprüfen, dass die Programmierung autorisiert ist, wenn der entschlüsselte Schlüssel einem gespeicherten Schlüssel entspricht.
Example 2. The vehicle of example 1, wherein the gateway module is configured to:
  • decrypt the authorization information using session information to obtain a decrypted key, and
  • verify that programming is authorized if the decrypted key matches a stored key.

Beispiel 3. Das Fahrzeug nach Beispiel 1 oder 2, wobei das Aktualisierungsmodul dem Gateway-Modul eine Programmierungsanfrage bereitstellt, wobei das Gateway-Modul konfiguriert ist, um die Sitzungsinformationen als Antwort auf die Programmierungsanfrage vom Aktualisierungsmodul zu erzeugen.Example 3. The vehicle of example 1 or 2, wherein the update module provides a programming request to the gateway module, wherein the gateway module is configured to generate the session information in response to the programming request from the update module.

Beispiel 4. Das Fahrzeug nach Beispiel 3, wobei das Gateway-Modul konfiguriert ist, um die Sitzungsinformationen basierend zumindest zum Teil auf eine Uhrzeit in Beziehung mit der Programmierungsanfrage dynamisch zu erzeugen.Example 4. The vehicle of example 3, wherein the gateway module is configured to dynamically generate the session information based at least in part on a time of day related to the programming request.

Beispiel 5. Das Fahrzeug nach Beispiel 3, wobei das Aktualisierungsmodul konfiguriert ist, um einer Remotevorrichtung die Sitzungsinformationen bereitzustellen, wobei die Remotevorrichtung die Autorisierungsinformationen durch Verschlüsselung eines Schlüssels in Beziehung mit dem Fahrzeug mithilfe der vom Aktualisierungsmodul bereitgestellten Sitzungsinformationen erzeugt, nachdem festgestellt wurde, dass die Programmierung des ersten Moduls autorisiert ist.Example 5. The vehicle of example 3, wherein the update module is configured to provide the session information to a remote device, the remote device generating the authorization information by encrypting a key associated with the vehicle using the session information provided by the update module after determining that the Programming of the first module is authorized.

Beispiel 6. Das Fahrzeug nach einem der Beispiele 1 - 5, welches ferner ein erstes Kommunikationsnetzwerk und ein zweites Kommunikationsnetzwerk umfasst, wobei das Gateway-Modul zwischen dem ersten Kommunikationsnetzwerk und dem zweiten Kommunikationsnetzwerk gekoppelt ist.Example 6. The vehicle of any of examples 1-5, further comprising a first communication network and a second communication network, wherein the gateway module is coupled between the first communication network and the second communication network.

Beispiel 7. Das Fahrzeug nach Beispiel 6, wobei das Aktualisierungsmodul an das erste Kommunikationsnetzwerk gekoppelt ist und das erste Modul an das zweite Kommunikationsnetzwerk gekoppelt ist.Example 7. The vehicle of example 6, wherein the update module is coupled to the first communication network and the first module is coupled to the second communication network.

Beispiel 8. Das Fahrzeug nach Bespiel 6 oder 7, wobei das erste Kommunikationsnetzwerk ein Ethernet-Netzwerk und das zweite Kommunikationsnetzwerk ein Controller Area Network (CAN) ist.Example 8. The vehicle of example 6 or 7, wherein the first communication network is an Ethernet network and the second communication network is a controller area network (CAN).

Beispiel 9. Das Fahrzeug nach Beispiel 7, wobei das Aktualisierungsmodul kommunikativ über ein externes Kommunikationsnetzwerk an eine Remotevorrichtung gekoppelt ist, um die Autorisierungsinformationen von der Remotevorrichtung zu erhalten, wobei die Remotevorrichtung die Autorisierungsinformationen erzeugt, nachdem festgestellt wurde, dass die Programmierung des ersten Moduls autorisiert ist.Example 9. The vehicle of example 7, wherein the update module is communicatively coupled to a remote device via an external communications network to obtain the authorization information from the remote device, the remote device generating the authorization information after determining that the programming of the first module authorizes is.

Beispiel 10. Das Fahrzeug nach einem der Beispiele 1 - 9, wobei das erste Modul konfiguriert ist, um, basierend zumindest zum Teil auf den Programmierungsdaten, eine Anwendung auf dem ersten Modul zu aktualisieren.Example 10. The vehicle of any of examples 1-9, wherein the first module is configured to update an application on the first module based at least in part on the programming data.

Beispiel 11. Das Fahrzeug nach Beispiel 10, wobei die Programmierungsdaten eine Reihe Anweisungen umfassen, wobei das erste Modul die Anwendung durch Ausführung der Reihe Anweisungen aktualisiert.Example 11. The vehicle of example 10, wherein the programming data includes a series of instructions, the first module updating the application by executing the series of instructions.

Beispiel 12. Ein Verfahren zur Programmierung eines Fahrzeugmoduls, wobei das Verfahren umfasst:

  • Erzeugen, durch ein Gateway-Modul, von Sitzungsinformationen für eine Programmierungsaktualisierung für das kommunikativ an das Gateway-Modul gekoppelte Fahrzeugmodul,
  • Entschlüsseln von Autorisierungsinformationen mithilfe der Sitzungsinformationen, um einen entschlüsselten Schlüssel zu erhalten,
  • Authentifizieren der Programmierungsaktualisierung basierend zumindest zum Teil auf dem entschlüsselten Schlüssel, und
  • Bereitstellen, über das Gateway-Modul, von Programmierungsdaten für die Programmierungsaktualisierung für das Fahrzeugmodul nach Authentifizierung der Programmierungsaktualisierung.
Example 12. A method of programming a vehicle module, the method comprising:
  • generating, by a gateway module, session information for a programming update for the vehicle module communicatively coupled to the gateway module,
  • decrypting authorization information using the session information to obtain a decrypted key,
  • authenticating the programming update based at least in part on the decrypted key, and
  • providing, via the gateway module, programming data for the programming update for the vehicle module after authentication of the programming update.

Beispiel 13. Das Verfahren nach Beispiel 12, das ferner die Aktualisierung des Fahrzeugmoduls basierend zumindest zum Teil auf den Programmierungsdaten nach Bereitstellung der Programmierungsdaten für die Programmierungsaktualisierung für das Fahrzeugmodul umfasst.Example 13. The method of example 12, further comprising updating the vehicle module based at least in part on the programming data after providing the programming data for the programming update to the vehicle module.

Beispiel 14. Das Verfahren nach Beispiel 12 oder 13, wobei die Programmierungsdaten eine Reihe Anweisungen umfassen, wobei die Aktualisierung des Fahrzeugmoduls umfasst, dass das Fahrzeugmodul die Reihe Anweisungen ausführt, um eine Anwendung auf dem Fahrzeugmodul zu aktualisieren.Example 14. The method of example 12 or 13, wherein the programming data comprises a series of instructions, wherein updating the vehicle module comprises the vehicle module executing the series of instructions to update an application on the vehicle module.

Beispiel 15. Das Verfahren nach einem der Beispiele 12 - 14, wobei die Authentifizierung der Programmierungsaktualisierung umfasst:

  • Vergleichen des entschlüsselten Schlüssels mit einem gespeicherten Schlüssel, der mit einem Fahrzeug, das das Fahrzeugmodul enthält, in Beziehung steht, durch das Gateway-Modul, und
  • Authentifizieren der Programmierungsaktualisierung, wenn der entschlüsselte Schlüssel dem gespeicherten Schlüssel entspricht.
Example 15. The method of any of Examples 12-14, wherein the programming update authentication comprises:
  • comparing, by the gateway module, the decrypted key to a stored key associated with a vehicle containing the vehicle module, and
  • Authenticating the programming update if the decrypted key matches the stored key.

Beispiel 16. Das Verfahren nach Beispiel 15, wobei die Erzeugung der Sitzungsinformationen die dynamische Erzeugung eines öffentlichen Schlüssels basierend zumindest zum Teil auf dem gespeicherten Schlüssel umfasst.Example 16. The method of example 15, wherein generating the session information comprises dynamically generating a public key based at least in part on the stored key.

Beispiel 17. Das Verfahren nach Beispiel 15, welches ferner umfasst:

  • Bereitstellen der Sitzungsinformationen für eine Remotevorrichtung, wobei die Remotevorrichtung die Autorisierungsinformationen durch Verschlüsselung des gespeicherten Schlüssels mithilfe der Sitzungsinformationen als Antwort auf die Feststellung, dass die Programmierungsaktualisierung basierend zumindest zum Teil auf den Sitzungsinformationen autorisiert ist, erzeugt, und
  • Erhalten der Autorisierungsinformationen von der Remotevorrichtung.
Example 17. The method of Example 15, further comprising:
  • providing the session information to a remote device, wherein the remote device generates the authorization information by encrypting the stored key using the session information in response to determining that the programming update is authorized based at least in part on the session information, and
  • Obtaining authorization information from the remote device.

Beispiel 18. Das Verfahren nach Beispiel 12, welches ferner umfasst:

  • Bereitstellen der Sitzungsinformationen für eine Remotevorrichtung, wobei die Remotevorrichtung die Autorisierungsinformationen basierend zumindest zum Teil auf den Sitzungsinformationen als Antwort auf die Feststellung, dass die Programmierungsaktualisierung basierend zumindest zum Teil auf den Sitzungsinformationen autorisiert ist, erzeugt, und
  • Erhalten der Autorisierungsinformationen von der Remotevorrichtung.
Example 18. The method of Example 12, further comprising:
  • providing the session information to a remote device, wherein the remote device generates the authorization information based at least in part on the session information in response to determining that the programming update is authorized based at least in part on the session information, and
  • Obtaining authorization information from the remote device.

Beispiel 19. Ein Fahrzeugsystem, umfassend:

  • ein erstes Kommunikationsnetzwerk,
  • ein zweites Kommunikationsnetzwerk,
  • ein an das zweite Kommunikationsnetzwerk gekoppeltes Fahrzeugmodul,
  • ein an das erste Kommunikationsnetzwerk gekoppeltes Aktualisierungsmodul und
  • ein an das erste Kommunikationsnetzwerk und das zweite Kommunikationsnetzwerk gekoppeltes Gateway-Modul, wobei:
    • das Aktualisierungsmodul konfiguriert ist, um Programmierungsdaten für das Fahrzeugmodul zu erhalten, Autorisierungsinformationen von der Remotevorrichtung zu erhalten und die Autorisierungsinformationen und die Programmierungsdaten dem Gateway-Modul über das erste Kommunikationsnetzwerk bereitzustellen,
    • das Gateway-Modul konfiguriert ist, um dem Fahrzeugmodul nach Authentifizierung der Autorisierungsinformationen Programmierungsdaten bereitzustellen, und
    • das Fahrzeugmodul konfiguriert ist, um eine Anwendung am Fahrzeug zu aktualisieren, die zumindest zum Teil auf den Programmierungsdaten nach Erhalt der Programmierungsdaten vom Gateway-Modul basiert.
Example 19. A vehicle system, comprising:
  • a first communication network,
  • a second communication network,
  • a vehicle module coupled to the second communication network,
  • an update module coupled to the first communication network and
  • a gateway module coupled to the first communication network and the second communication network, wherein:
    • the update module is configured to obtain programming data for the vehicle module, obtain authorization information from the remote device, and provide the authorization information and the programming data to the gateway module via the first communication network,
    • the gateway module is configured to provide programming data to the vehicle module upon authentication of the authorization information, and
    • the vehicle module is configured to update an application on the vehicle based at least in part on the programming data upon receipt of the programming data from the gateway module.

Beispiel 20. Das Fahrzeugsystem nach Beispiel 19, wobei:

  • das Aktualisierungsmodul an ein externes Kommunikationsnetzwerk gekoppelt ist, um Sitzungsinformationen an die Remotevorrichtung über das externe Kommunikationsnetzwerk zu übertragen und die Autorisierungsinformationen von der Remotevorrichtung über das externe Kommunikationsnetzwerk zu erhalten, wobei die Remotevorrichtung die Autorisierungsinformationen zumindest zum Teil auf den Sitzungsinformationen basierend als Antwort auf die Feststellung, dass die Programmierung des Fahrzeugmoduls zumindest zum Teil auf den Sitzungsinformationen basiert, erzeugt, und
  • das Gateway-Modul konfiguriert ist, um die Sitzungsinformationen für die Programmierungsdaten zu erzeugen, die Autorisierungsinformationen mithilfe der Sitzungsinformationen zu entschlüsseln, um einen entschlüsselten Schlüssel zu erhalten, und die Programmierungsdaten dem Fahrzeugmodul nach Feststellung, dass der entschlüsselte Schlüssel dem gespeicherten Schlüssel entspricht, bereitzustellen.
Example 20. The vehicle system of example 19, wherein:
  • the update module is coupled to an external communications network to transmit session information to the remote device over the external communications network and to obtain the authorization information from the remote device over the external communications network, wherein the remote device updates the authorization information based at least in part on the session information in response to the determination that the programming of the vehicle module is based at least in part on the session information, generates, and
  • the gateway module is configured to generate the session information for the programming data, to decrypt the authorization information using the session information to obtain a decrypted key, and to provide the programming data to the vehicle module upon determining that the decrypted key matches the stored key.

Claims (6)

Ein Fahrzeug (102), umfassend: - ein erstes Modul, - ein Gateway-Modul (112), das kommunikativ an das erste Modul gekoppelt ist, und - ein Aktualisierungsmodul (110), das kommunikativ an das Gateway-Modul (112) gekoppelt ist, um dem Gateway-Modul (112) Autorisierungsinformationen und Programmierungsdaten bereitzustellen, wobei das Gateway-Modul (112) konfiguriert ist, um zu überprüfen, dass die Programmierung des ersten Moduls zumindest zum Teil auf den Autorisierungsinformationen basierend autorisiert ist, und dem ersten Modul nach Überprüfung, dass die Programmierung autorisiert ist, die Programmierungsdaten bereitzustellen, wobei das Gateway-Modul (112) konfiguriert ist, um: - die Autorisierungsinformationen mithilfe von Sitzungsinformationen zu entschlüsseln, um einen entschlüsselten Schlüssel zu erhalten, und - zu überprüfen, dass die Programmierung autorisiert ist, wenn der entschlüsselte Schlüssel einem gespeicherten Schlüssel entspricht, wobei das Aktualisierungsmodul (110) dem Gateway-Modul (112) eine Programmierungsanfrage bereitstellt, wobei das Gateway-Modul (112) konfiguriert ist, um die Sitzungsinformationen als Antwort auf die Programmierungsanfrage vom Aktualisierungsmodul (110) zu erzeugen, und wobei das Gateway-Modul (112) konfiguriert ist, um die Sitzungsinformationen basierend auf dem gespeicherten Schlüssel und einer Uhrzeit in Beziehung mit der Programmierungsanfrage dynamisch zu erzeugen.A vehicle (102) comprising: - a first module, - a gateway module (112) communicatively coupled to the first module, and - an update module (110) communicatively coupled to the gateway module (112) to provide the gateway module (112) with authorization information and programming data, wherein the gateway module (112) is configured to verify that the programming the first module is authorized based at least in part on the authorization information, and providing the programming data to the first module upon verification that the programming is authorized, the gateway module (112) being configured to: - decrypt the authorization information using session information to obtain a decrypted key, and - verifying that the programming is authorized if the decrypted key corresponds to a stored key, the update module (110) providing the gateway module (112) with a programming request, the gateway module (112) being configured to receive the session information in response to the programming request from the update module (110), and wherein the gateway module (112) is configured to dynamically generate the session information based on the stored key and a time related to the programming request. Fahrzeug (102) nach Anspruch 1, welches ferner ein erstes Kommunikationsnetzwerk (111) und ein zweites Kommunikationsnetzwerk (113) umfasst, wobei das Gateway-Modul (112) zwischen dem ersten Kommunikationsnetzwerk (111) und dem zweiten Kommunikationsnetzwerk gekoppelt (113) ist.vehicle (102) to claim 1 Further comprising a first communication network (111) and a second communication network (113), wherein the gateway module (112) is coupled between the first communication network (111) and the second communication network (113). Ein Verfahren zur Programmierung eines Fahrzeugmoduls (114, 116), wobei das Verfahren umfasst: - Erzeugen, durch ein Gateway-Modul (112), von Sitzungsinformationen für eine Programmierungsaktualisierung für das kommunikativ an das Gateway-Modul (112) gekoppelte Fahrzeugmodul (114, 116) als Antwort auf eine Programmierungsanfrage, - Entschlüsseln von Autorisierungsinformationen mithilfe von Sitzungsinformationen, um einen entschlüsselten Schlüssel zu erhalten, - Authentifizieren der Programmierungsaktualisierung basierend zumindest zum Teil auf dem entschlüsselten Schlüssel, und - Bereitstellen, über das Gateway-Modul (112), von Programmierungsdaten für die Programmierungsaktualisierung an das Fahrzeugmodul (114, 116) nach Authentifizierung der Programmierungsaktualisierung, wobei die Authentifizierung der Programmierungsaktualisierung umfasst: - Vergleichen des entschlüsselten Schlüssels mit einem gespeicherten Schlüssel, der mit einem Fahrzeug, das das Fahrzeugmodul (114, 116) enthält, in Beziehung steht, durch das Gateway-Modul (112), und - Authentifizieren der Programmierungsaktualisierung, wenn der entschlüsselte Schlüssel dem gespeicherten Schlüssel entspricht, wobei die Erzeugung der Sitzungsinformationen die dynamische Erzeugung eines öffentlichen Schlüssels basierend auf dem gespeicherten Schlüssel und einer Uhrzeit in Beziehung mit der Programmierungsanfrage umfasst.A method of programming a vehicle module (114, 116), the method comprising: - generating, by a gateway module (112), session information for a programming update for the vehicle module (114, 116) communicatively coupled to the gateway module (112) in response to a programming request, - Decrypt authorization information using session information to get a decrypted key, - authenticating the programming update based at least in part on the decrypted key, and - providing, via the gateway module (112), programming data for the programming update to the vehicle module (114, 116) after authentication of the programming update, wherein the authentication of the programming update comprises: - comparing, by the gateway module (112), the decrypted key with a stored key associated with a vehicle containing the vehicle module (114, 116), and - authenticating the programming update if the decrypted key matches the stored key, wherein the generation of the session information comprises dynamic generation of a public key based on the stored key and a time related to the programming request. Verfahren nach Anspruch 3, das ferner die Aktualisierung des Fahrzeugmoduls (114, 116) basierend zumindest zum Teil auf den Programmierungsdaten nach Bereitstellung der Programmierungsdaten für die Programmierungsaktualisierung für das Fahrzeugmodul (114, 116) umfasst.procedure after claim 3 The further comprising updating the vehicle module (114, 116) based at least in part on the programming data after providing the programming data for the programming update to the vehicle module (114, 116). Verfahren nach einem der -Ansprüche 3 oder 4, welches ferner umfasst: - Bereitstellen der Sitzungsinformationen für eine Remotevorrichtung (104), wobei die Remotevorrichtung die Autorisierungsinformationen zumindest zum Teil auf den Sitzungsinformationen basierend als Antwort auf die Feststellung, dass die Programmierungsaktualisierung zumindest zum Teil auf den Sitzungsinformationen basierend autorisiert ist, erzeugt, und - Erhalten der Autorisierungsinformationen von der Remotevorrichtung (104).Procedure according to one of - claims 3 or 4 The further comprising: - providing the session information to a remote device (104), the remote device providing the authorization information based at least in part on the session information in response to determining that the programming update is based at least in part on the session information is authorized based, and - obtaining the authorization information from the remote device (104). Ein Fahrzeugsystem, umfassend: - ein erstes Kommunikationsnetzwerk (111), - ein zweites Kommunikationsnetzwerk (113), - ein an das zweite Kommunikationsnetzwerk (113) gekoppeltes Fahrzeugmodul (114, 116), - ein an das erste Kommunikationsnetzwerk (111) gekoppeltes Aktualisierungsmodul (110) und - ein an das erste Kommunikationsnetzwerk (111) und das zweite Kommunikationsnetzwerk (113) gekoppeltes Gateway-Modul (112), wobei: - das Aktualisierungsmodul (110) konfiguriert ist, um Programmierungsdaten für das Fahrzeugmodul (114, 116) zu erhalten, Autorisierungsinformationen von der Remotevorrichtung (104) zu erhalten und die Autorisierungsinformationen und die Programmierungsdaten dem Gateway-Modul über das erste Kommunikationsnetzwerk bereitzustellen, - das Gateway-Modul (112) konfiguriert ist, um dem Fahrzeugmodul (114, 116) nach Authentifizierung der Autorisierungsinformationen Programmierungsdaten bereitzustellen, und - das Fahrzeugmodul (114, 116) konfiguriert ist, um eine Anwendung am Fahrzeug (102) zu aktualisieren, die zumindest zum Teil auf den Programmierungsdaten nach Erhalt der Programmierungsdaten vom Gateway-Modul (112) basiert, wobei das Gateway-Modul (112) konfiguriert ist, um: - die Autorisierungsinformationen mithilfe von Sitzungsinformationen zu entschlüsseln, um einen entschlüsselten Schlüssel zu erhalten, und - zu überprüfen, dass die Programmierung autorisiert ist, wenn der entschlüsselte Schlüssel einem gespeicherten Schlüssel entspricht, wobei das Aktualisierungsmodul dem Gateway-Modul (112) eine Programmierungsanfrage bereitstellt, wobei das Gateway-Modul (112) weiter konfiguriert ist, um die Sitzungsinformationen als Antwort auf die Programmierungsanfrage vom Aktualisierungsmodul (110) zu erzeugen, und wobei das Gateway-Modul (112) konfiguriert ist, um die Sitzungsinformationen basierend auf dem gespeicherten Schlüssel und einer Uhrzeit in Beziehung mit der Programmierungsanfrage dynamisch zu erzeugen.A vehicle system comprising: - a first communication network (111), - a second communication network (113), - a vehicle module (114, 116) coupled to the second communication network (113), - an update module (110) coupled to the first communication network (111) and - a gateway module (112) coupled to the first communication network (111) and the second communication network (113), wherein: - the update module (110) is configured to receive programming data for the vehicle module (114, 116), to receive authorization information from the remote device (104) and to provide the authorization information and the programming data to the gateway module via the first communication network, - the gateway module (112) is configured to provide programming data to the vehicle module (114, 116) after authentication of the authorization information, and - the vehicle module (114, 116) is configured to update an application on the vehicle (102) based at least in part on the programming data upon receipt of the programming data from the gateway module (112), the gateway module (112) is configured to: - decrypt the authorization information using session information to obtain a decrypted key, and - verifying that the programming is authorized if the decrypted key corresponds to a stored key, the update module providing the gateway module (112) with a programming request, the gateway module (112) being further configured to receive the session information in response in response to the programming request from the update module (110), and wherein the gateway module (112) is configured to dynamically generate the session information based on the stored key and a time related to the programming request.
DE102014114607.7A 2013-10-28 2014-10-08 Programming vehicle modules with remote devices and associated methods and systems Active DE102014114607B4 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/064,425 2013-10-28
US14/064,425 US9374355B2 (en) 2013-10-28 2013-10-28 Programming vehicle modules from remote devices and related methods and systems

Publications (2)

Publication Number Publication Date
DE102014114607A1 DE102014114607A1 (en) 2015-04-30
DE102014114607B4 true DE102014114607B4 (en) 2023-03-23

Family

ID=52811845

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014114607.7A Active DE102014114607B4 (en) 2013-10-28 2014-10-08 Programming vehicle modules with remote devices and associated methods and systems

Country Status (3)

Country Link
US (1) US9374355B2 (en)
CN (1) CN104580352B (en)
DE (1) DE102014114607B4 (en)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9650934B2 (en) 2011-11-04 2017-05-16 Honeywell spol.s.r.o. Engine and aftertreatment optimization system
US20130111905A1 (en) 2011-11-04 2013-05-09 Honeywell Spol. S.R.O. Integrated optimization and control of an engine and aftertreatment system
US9923719B2 (en) * 2014-12-09 2018-03-20 Cryptography Research, Inc. Location aware cryptography
US9648023B2 (en) * 2015-01-05 2017-05-09 Movimento Group Vehicle module update, protection and diagnostics
EP3051367B1 (en) 2015-01-28 2020-11-25 Honeywell spol s.r.o. An approach and system for handling constraints for measured disturbances with uncertain preview
EP3056706A1 (en) 2015-02-16 2016-08-17 Honeywell International Inc. An approach for aftertreatment system modeling and model identification
JP6197000B2 (en) * 2015-07-03 2017-09-13 Kddi株式会社 System, vehicle, and software distribution processing method
DE102015112040A1 (en) * 2015-07-23 2017-01-26 Phoenix Contact Gmbh & Co. Kg Method and system for firmware update of a process control device
EP3734375B1 (en) 2015-07-31 2023-04-05 Garrett Transportation I Inc. Quadratic program solver for mpc using variable ordering
US10272779B2 (en) 2015-08-05 2019-04-30 Garrett Transportation I Inc. System and approach for dynamic vehicle speed optimization
JP6502832B2 (en) * 2015-11-13 2019-04-17 株式会社東芝 Inspection apparatus, communication system, mobile unit and inspection method
WO2017099641A1 (en) * 2015-12-07 2017-06-15 Telefonaktiebolaget Lm Ericsson (Publ) Methods and arrangements for authenticating a communication device
CN105653289B (en) * 2016-01-08 2020-06-23 上海创程车联网络科技有限公司 Vehicle-mounted software control management device and application method thereof
CN105480176B (en) * 2016-01-08 2019-09-13 上海创程车联网络科技有限公司 Automobile software management system and its operating method
DE102016200775A1 (en) 2016-01-21 2017-07-27 Robert Bosch Gmbh Method and device for protecting a vehicle against cyber attacks
US10415492B2 (en) 2016-01-29 2019-09-17 Garrett Transportation I Inc. Engine system with inferential sensor
US10232709B2 (en) 2016-02-19 2019-03-19 Xevo Inc. Dynamic application execution for automobile and cloud hybrid environments
CN105978862A (en) * 2016-04-26 2016-09-28 北京经纬恒润科技有限公司 Data processing method and data processing system
US10036338B2 (en) 2016-04-26 2018-07-31 Honeywell International Inc. Condition-based powertrain control system
US10124750B2 (en) 2016-04-26 2018-11-13 Honeywell International Inc. Vehicle security module system
US10126136B2 (en) 2016-06-14 2018-11-13 nuTonomy Inc. Route planning for an autonomous vehicle
US11092446B2 (en) 2016-06-14 2021-08-17 Motional Ad Llc Route planning for an autonomous vehicle
US10309792B2 (en) 2016-06-14 2019-06-04 nuTonomy Inc. Route planning for an autonomous vehicle
US10829116B2 (en) 2016-07-01 2020-11-10 nuTonomy Inc. Affecting functions of a vehicle based on function-related information about its environment
KR102598613B1 (en) * 2016-07-21 2023-11-07 삼성전자주식회사 System and method for providing vehicle information based on personal certification and vehicle certification
US11212109B2 (en) * 2016-08-10 2021-12-28 Kddi Corporation Data provision system, data security device, data provision method, and computer program
US11146401B2 (en) * 2016-08-10 2021-10-12 Ford Global Technologies, Llc Software authentication before software update
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
US10491405B2 (en) * 2016-10-04 2019-11-26 Denso International America, Inc. Cryptographic security verification of incoming messages
US10331129B2 (en) 2016-10-20 2019-06-25 nuTonomy Inc. Identifying a stopping place for an autonomous vehicle
US10857994B2 (en) 2016-10-20 2020-12-08 Motional Ad Llc Identifying a stopping place for an autonomous vehicle
US10681513B2 (en) 2016-10-20 2020-06-09 nuTonomy Inc. Identifying a stopping place for an autonomous vehicle
US10473470B2 (en) 2016-10-20 2019-11-12 nuTonomy Inc. Identifying a stopping place for an autonomous vehicle
EP3548729B1 (en) 2016-11-29 2023-02-22 Garrett Transportation I Inc. An inferential flow sensor
US10705820B2 (en) * 2017-02-02 2020-07-07 Ford Global Technologies, Llc Method and apparatus for secure multi-cycle vehicle software updates
CN107104791B (en) * 2017-03-29 2019-06-28 江苏大学 A kind of in-vehicle network one-time pad communication means hidden based on ECU identity
US10104547B1 (en) * 2017-05-24 2018-10-16 GM Global Technology Operations LLC Automatic wireless communication authentication
US11057213B2 (en) 2017-10-13 2021-07-06 Garrett Transportation I, Inc. Authentication system for electronic control unit on a bus
US10594666B2 (en) 2017-12-19 2020-03-17 Micron Technology, Inc. Secure message including a vehicle private key
US11178133B2 (en) * 2017-12-19 2021-11-16 Micron Technology, Inc. Secure vehicle control unit update
KR102540025B1 (en) * 2018-01-25 2023-06-02 엘지전자 주식회사 Vehicle information inquiry method
CN109062181A (en) * 2018-07-26 2018-12-21 北京车和家信息技术有限公司 The update method and device of vehicle control instruction
US10827326B2 (en) * 2018-10-22 2020-11-03 GM Global Technology Operations LLC User-defined vehicle notification
US11356425B2 (en) 2018-11-30 2022-06-07 Paccar Inc Techniques for improving security of encrypted vehicle software updates
US11449327B2 (en) 2018-11-30 2022-09-20 Paccar Inc Error-resilient over-the-air software updates for vehicles
JP7318230B2 (en) * 2019-02-22 2023-08-01 株式会社デンソー Center equipment, data distribution system and distribution control program
CN109951367B (en) * 2019-03-29 2021-06-04 重庆长安汽车股份有限公司 Encryption method for vehicle control protocol of to-be-opened vehicle platform
CN113346989B (en) * 2020-03-02 2023-02-07 北京新能源汽车股份有限公司 External device access authentication method and device, gateway and electric vehicle
JP7279668B2 (en) * 2020-03-12 2023-05-23 トヨタ自動車株式会社 Automotive controller
CN112399379A (en) * 2020-10-28 2021-02-23 星火科技技术(深圳)有限责任公司 Intelligent Internet of vehicles communication protocol method, device, equipment and storage medium
AU2022316124A1 (en) * 2021-07-21 2024-01-18 Abbott Diabetes Care Inc. Over-the-air programming of sensing devices
US11606446B1 (en) * 2021-09-13 2023-03-14 International Business Machines Corporation Microapplication composition

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7418596B1 (en) 2002-03-26 2008-08-26 Cellco Partnership Secure, efficient, and mutually authenticated cryptographic key distribution
US7869906B2 (en) 2007-01-08 2011-01-11 Ford Global Technologies Wireless gateway apparatus and method of bridging data between vehicle based and external data networks
US20130079950A1 (en) 2011-09-22 2013-03-28 Kia Motors Corporation Vehicle upgrade system and method thereof
US8543805B2 (en) 2010-04-21 2013-09-24 Citrix Systems, Inc. Systems and methods for split proxying of SSL via WAN appliances
US20130318357A1 (en) 2011-02-11 2013-11-28 Siemens Health Care Diagnostics Inc. System and Method for Secure Software Update

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438468B1 (en) 2000-11-28 2002-08-20 Honeywell International Inc. Systems and methods for delivering data updates to an aircraft
US6976167B2 (en) * 2001-06-26 2005-12-13 Intel Corporation Cryptography-based tamper-resistant software design mechanism
US7979177B2 (en) 2007-04-30 2011-07-12 Ford Motor Company System and method for updating vehicle computing platform configuration information
WO2009147734A1 (en) 2008-06-04 2009-12-10 株式会社ルネサステクノロジ Vehicle, maintenance device, maintenance service system, and maintenance service method
US20100082559A1 (en) 2008-09-19 2010-04-01 General Motors Corporation Method of managing a schedule-based software package update
DE102009045711A1 (en) 2008-10-15 2010-04-22 Continental Teves Ag & Co. Ohg Data transmission to a vehicle and loading of the vehicle
US9304005B2 (en) * 2009-12-04 2016-04-05 GM Global Technology Operations LLC Application programming interface (API) for navigation applications that merges incremental updates with existing map database
KR20110092007A (en) 2010-02-08 2011-08-17 주식회사 만도 Software downloading system and method for a vehicle using the same
CN201804238U (en) * 2010-05-27 2011-04-20 金龙联合汽车工业(苏州)有限公司 Vehicle performance remote monitoring system
KR20120062539A (en) 2010-12-06 2012-06-14 현대자동차주식회사 Vehicle information update system and method using wireless access point connected to telematics server
US8688313B2 (en) * 2010-12-23 2014-04-01 Aes Technologies, Llc. Remote vehicle programming system and method
JP5267598B2 (en) 2011-02-25 2013-08-21 トヨタ自動車株式会社 Data rewrite support system and data rewrite support method for vehicle control device
US9126545B2 (en) 2011-02-25 2015-09-08 GM Global Technology Operations LLC Vehicle systems activation methods and applications
JP5479408B2 (en) 2011-07-06 2014-04-23 日立オートモティブシステムズ株式会社 In-vehicle network system
JP5435022B2 (en) * 2011-12-28 2014-03-05 株式会社デンソー In-vehicle system and communication method
JP5950225B2 (en) 2012-01-10 2016-07-13 クラリオン株式会社 Server device, in-vehicle terminal, information communication method, and information distribution system
JP5664562B2 (en) 2012-01-17 2015-02-04 株式会社デンソー Relay device
JP5941315B2 (en) 2012-03-29 2016-06-29 富士通テン株式会社 Vehicle control apparatus and vehicle control system
US8966248B2 (en) 2012-04-06 2015-02-24 GM Global Technology Operations LLC Secure software file transfer systems and methods for vehicle control modules
US9209977B2 (en) 2012-04-11 2015-12-08 General Motors Llc Processing messages received at a vehicle
JP5958535B2 (en) 2012-05-29 2016-08-02 トヨタ自動車株式会社 Authentication system and authentication method
US8948934B2 (en) 2012-09-07 2015-02-03 The Boeing Company Methods and systems for vehicle broadband connection to a data network
KR101480605B1 (en) 2013-04-29 2015-01-09 현대자동차주식회사 Accessing system for vehicle network and method of the same
CN103208312B (en) * 2013-05-02 2015-09-09 哈尔滨工业大学 A kind of method improving storage accuracy of automotive electronic control unit mileage data
US9135756B2 (en) 2013-08-14 2015-09-15 Hti Ip, L.L.C. Providing communications between a vehicle control device and a user device via a head unit

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7418596B1 (en) 2002-03-26 2008-08-26 Cellco Partnership Secure, efficient, and mutually authenticated cryptographic key distribution
US7869906B2 (en) 2007-01-08 2011-01-11 Ford Global Technologies Wireless gateway apparatus and method of bridging data between vehicle based and external data networks
US8543805B2 (en) 2010-04-21 2013-09-24 Citrix Systems, Inc. Systems and methods for split proxying of SSL via WAN appliances
US20130318357A1 (en) 2011-02-11 2013-11-28 Siemens Health Care Diagnostics Inc. System and Method for Secure Software Update
US20130079950A1 (en) 2011-09-22 2013-03-28 Kia Motors Corporation Vehicle upgrade system and method thereof

Also Published As

Publication number Publication date
US9374355B2 (en) 2016-06-21
CN104580352B (en) 2018-04-27
CN104580352A (en) 2015-04-29
DE102014114607A1 (en) 2015-04-30
US20150121071A1 (en) 2015-04-30

Similar Documents

Publication Publication Date Title
DE102014114607B4 (en) Programming vehicle modules with remote devices and associated methods and systems
DE102014114606B4 (en) Programming vehicle modules with remote devices and associated methods and systems
DE112012002836B4 (en) Vehicle-based network system
DE102017113295A1 (en) FIREWALL REMOTE UPGRADE FOR BORENIGEN WEB SERVER TELEMATICS SYSTEM
DE102018101856A1 (en) Security of updates over an air interface
DE102016115545A1 (en) MULTI-STAGE SECURE VEHICLE SOFTWARE UPGRADE
DE102018100015A1 (en) CHANGE VERIFICATION BEFORE SHUT-OFF
DE102020124163A1 (en) VERIFICATION OF VEHICLE DATA
DE102017102539A1 (en) SAFE TUNNELING FOR SAFETY OF ASSOCIATED APPLICATIONS
EP2689553B1 (en) Motor vehicle control unit having a cryptographic device
DE102018111262A1 (en) OPERATING A KEY PENDANT IN A CAR SHARING SYSTEM
DE102017102388A1 (en) RULES OF VEHICLE ACCESS USING CRYPTOGRAPHIC PROCEDURE
DE102016110169A1 (en) Theft prevention for autonomous vehicles
DE102018129843A1 (en) Establishing a secure short-range wireless communication link on a vehicle
DE102017119373A1 (en) UPDATING THE SERVERS OF THE NETWORK ADDRESS OF THE MOBILE DEVICE
DE102018104079A1 (en) SECURE END TO END VEHICLE ECU RELEASE IN A HALF OFFLINE ENVIRONMENT
DE102013108020A1 (en) Authentication scheme for activating a special privilege mode in a secure electronic control unit
DE102008056745A1 (en) Device for controlling a vehicle function and method for updating a control device
DE102017107879A1 (en) Message authentication library
DE102019124914A1 (en) CLOUDED AUTHORIZED VEHICLE CONTROL
WO2019081395A1 (en) Method and device for updating software of a motor vehicle control unit
DE102019100780A1 (en) Automatic feedback system for vehicle software updates
DE102019121164A1 (en) VEHICLE BASED PASSWORD
US11882213B2 (en) Method for key generation upon request by a secure access device, using an electronic control unit of a vehicle
EP3230131B1 (en) Method for controlling the operation of at least one functional component of a motor vehicle and motor vehicle

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0009320000

Ipc: G06F0021100000

R016 Response to examination communication
R082 Change of representative

Representative=s name: SCHWEIGER, MARTIN, DIPL.-ING. UNIV., DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final