DE102017202079A1 - System und Verfahren zur sicheren Ausführung von SW-Programmen in einem Fahrzeug - Google Patents

System und Verfahren zur sicheren Ausführung von SW-Programmen in einem Fahrzeug Download PDF

Info

Publication number
DE102017202079A1
DE102017202079A1 DE102017202079.2A DE102017202079A DE102017202079A1 DE 102017202079 A1 DE102017202079 A1 DE 102017202079A1 DE 102017202079 A DE102017202079 A DE 102017202079A DE 102017202079 A1 DE102017202079 A1 DE 102017202079A1
Authority
DE
Germany
Prior art keywords
platform
security
module
vehicle
relevant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102017202079.2A
Other languages
English (en)
Inventor
Dennis Gessner
Christian Kühnel
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.)
Bayerische Motoren Werke AG
Original Assignee
Bayerische Motoren Werke AG
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 Bayerische Motoren Werke AG filed Critical Bayerische Motoren Werke AG
Priority to DE102017202079.2A priority Critical patent/DE102017202079A1/de
Priority to PCT/EP2018/051275 priority patent/WO2018145877A1/de
Publication of DE102017202079A1 publication Critical patent/DE102017202079A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

Es wird ein System (100) zur Bereitstellung einer Anwendung mittels eines SW-Programms (113) in einem Fahrzeug beschrieben. Das System (100) umfasst eine erste HW-Plattform (110) und eine zweite HW-Plattform (120), wobei die zweite HW-Plattform (120) ein oder mehreren Sicherheitsmaßnahmen unterliegt, denen die erste HW-Plattform (110) nicht unterliegt. Das SW-Programm (113) umfasst zumindest ein Basis-Modul (210) und zumindest ein sicherheitsrelevantes Modul (121), wobei das sicherheitsrelevante Modul (121) auf sicherheitsrelevante Daten und/oder auf eine sicherheitsrelevante Funktion (201, 202) zugreift. Das Basis-Modul (210) wird auf der ersten HW-Plattform (110) ausgeführt und das sicherheitsrelevante Modul (121) wird auf der zweiten HW-Plattform (120) ausgeführt.

Description

  • Die Erfindung betrifft ein System für ein Fahrzeug, das es ermöglicht, SW-Programme, insbesondere SW-Programme von Drittanbietern, in sicherer Weise in einem Fahrzeug auszuführen. Des Weiteren betrifft die Erfindung ein Verfahren zur Ausführung von SW-Programmen in einem Fahrzeug.
  • Mit zunehmender Digitalisierung, mit steigender Vernetzung von Fahrzeugen und mit steigender Einbindung von Fahrzeugen in vernetzte Systeme, steigt der Bedarf daran, in flexibler Weise Software (SW) von Drittanbietern zur Bereitstellung von Anwendungen auf eine HW-Plattform eines Fahrzeugs aufspielen zu können. Beispielsweise kann eine in ein Fahrzeug integrierte Parkhaus-, Maut- und/oder Tank-SW eine automatische Einfahrt und Ausfahrt des Fahrzeugs sowie eine automatische Abrechnung von Park-, Maut- oder Tankgebühren ermöglichen. Weitere Beispiele für Anwendungen sind: Automatische Zugangskontrollen (z.B. für Garagensysteme); Anbindung an Home-Automation Dienste; Fahrtenbuch-Systeme; Flottenmanagement-Systeme; Car-Sharing-Systeme; automatische Abrechnung von Fahrdiensten (wie z.B. Taxi- oder Mitfahr-Diensten); etc.
  • Bei der Integration eines SW-Programms (insbesondere bei der Integration einer sogenannten App) auf einer HW-Plattform eines Fahrzeugs muss sichergestellt werden, dass durch das SW-Programm die Sicherheit des Fahrzeugs nicht beeinträchtigt wird. Andererseits kann es erforderlich sein, zumindest Teile des SW-Programms (z.B. Teile mit vertraulichen Informationen, wie z.B. Abrechnungsdaten) vor unzulässigen Zugriffen zu schützen. Diese Anforderungen können zu einem relativ hohen Integrationsaufwand führen.
  • Das vorliegende Dokument befasst sich mit der technischen Aufgabe, ein System und ein Verfahren bereitzustellen, die eine flexible und sichere Integration von SW-Programmen in einem Fahrzeug ermöglichen.
  • Die Aufgabe wird durch die unabhängigen Ansprüche gelöst. Vorteilhafte Ausführungsformen werden u.a. in den abhängigen Ansprüchen beschrieben.
  • Gemäß einem Aspekt wird ein System zur Bereitstellung einer Anwendung mittels eines SW (Software)-Programms in einem Fahrzeug beschrieben. Die Anwendung kann z.B. darauf ausgelegt sein, das Fahrzeug mit einem Server und/oder mit einem elektronischen Gerät (z.B. einem Smartphone) außerhalb des Fahrzeugs zu vernetzten. Des Weiteren kann die Anwendung darauf ausgelegt sein, das Fahrzeug automatisch in eine Dienstleistung einzubinden (z.B. eine Parkdienstleistung, eine Straßennutzungsdienstleistung, eine Car-Sharing-Dienstleistung, etc.). Das SW-Programm kann dabei durch einen Dienstleister für die jeweilige Dienstleistung bereitgestellt werden.
  • Das System umfasst eine erste HW (Hardware)-Plattform und eine zweite HW-Plattform. Dabei können die erste HW-Plattform und die zweite HW-Plattform zur Bereitstellung einer besonders zuverlässigen Isolation zwischen den beiden HW-Plattformen separate Prozessoren umfassen. Beispielsweise kann die erste HW-Plattform Teil eines Steuergeräts, insbesondere einer Head Unit, des Fahrzeugs sein. Andererseits kann die zweite HW-Plattform von dem Steuergerät, insbesondere der Head Unit, des Fahrzeugs, insbesondere von einem Betriebssystem des Steuergeräts des Fahrzeugs, getrennt sein.
  • Alternativ oder ergänzend kann die zweite HW-Plattform einen nicht-flüchtigen Speicher (z.B. zur Speicherung von Daten) und/oder einen flüchtigen Speicher (z.B. für den Betrieb eines SW-Moduls) umfassen, der von der ersten HW-Plattform getrennt ist. Des Weiteren kann der Speicher der zweiten HW-Plattform mittels ein oder mehrerer Sicherheitsmaßnahmen geschützt sein. Dabei kann der Speicher der zweiten HW-Plattform mit ein oder mehreren Sicherheitsmaßnahmen geschützt sein, die nicht zum Schutz der ersten HW-Plattform verwendet werden. Der Speicher (sowohl der „runtime“ Speicher als auch der „storage“ Speicher) der zweiten HW-Plattform können derart durch ein oder mehrere Sicherheitsmaßnahmen geschützt sein, dass der Speicher nicht von außen (bzw. von einer unsicheren Applikation) manipulierbar ist.
  • Die zweite HW-Plattform unterliegt ein oder mehreren Sicherheitsmaßnahmen, denen die erste HW-Plattform nicht unterliegt. Die ein oder mehreren Sicherheitsmaßnahmen können z.B. eine Überprüfung von SW-Code eines SW-Moduls umfassen, das auf der zweiten HW-Plattform ausgeführt wird. Insbesondere kann der SW-Code von einem Hersteller des Fahrzeugs und/oder durch eine von dem Bereitsteller des SW-Programms separate Einheit überprüft werden. So kann gewährleistet werden, dass durch ein SW-Modul auf der zweiten HW-Plattform keine sicherheitsrelevanten Daten freigegeben werden und/oder keine sicherheitsrelevante Funktion (des Fahrzeugs) beeinträchtigt wird. Alternativ oder ergänzend können die ein oder mehreren Sicherheitsmaßnahmen eine Beschränkung von Daten umfassen, die an ein SW-Modul oder von einem SW-Modul übergeben werden können, das auf der zweiten HW-Plattform ausgeführt wird. Es können somit der Fluss von Daten zu der zweiten HW-Plattform hin und/oder von der zweiten HW-Plattform weg beschränkt werden.
  • Das SW-Programm umfasst zumindest ein Basis-Modul und zumindest ein sicherheitsrelevantes Modul. Dabei greift das sicherheitsrelevante Modul auf sicherheitsrelevante Daten und/oder auf eine sicherheitsrelevante Funktion zu. Andererseits greift das Basis-Modul typischerweise nicht oder nur über definierte Schnittstellen auf sicherheitsrelevante Daten und/oder auf eine sicherheitsrelevante Funktion zu. Das SW-Programm kann somit in ein oder mehrere sicherheits-kritische Teile und in ein oder mehrere sicherheits-unkritische Teile ausgeteilt werden.
  • Das Basis-Modul (d.h. die ein oder mehreren sicherheits-unkritischen Teile) kann dann auf der ersten HW-Plattform ausgeführt werden, und das sicherheitsrelevante Modul (d.h. die ein oder mehreren sicherheits-kritischen Teile) kann auf der zweiten HW-Plattform ausgeführt werden.
  • Das System ermöglicht es somit, in zuverlässiger, sicherer und effizienter Weise SW-Programme für Anwendungen in einem Fahrzeug bereitzustellen.
  • Das zumindest eine sicherheitsrelevante Modul (d.h. die ein oder mehreren sicherheits-kritischen Teile) umfasst bevorzugt 20%, 10% oder weniger des SW-Codes des SW-Programms und das zumindest eine Basis-Modul (d.h. die ein oder mehreren sicherheits-unkritischen Teile) umfasst bevorzugt 80%, 90% oder mehr des SW-Codes des SW-Programms. So können die ein oder mehreren Sicherheitsmaßnahmen bezüglich des zweiten HW-Moduls in effizienter Weise umgesetzt werden.
  • Die erste HW-Plattform ist bevorzugt derart ausgelegt, dass ein auf der ersten HW-Plattform ausgeführtes SW-Modul (d.h. ein Basis-Modul) keinen Zugriff oder nur Zugriff über eine definierte Schnittstelle auf eine sicherheitsrelevante Funktion des Fahrzeugs hat. Andererseits ist die zweite HW-Plattform bevorzugt derart ausgelegt, dass ein auf der zweiten HW-Plattform ausgeführtes SW-Modul einen Zugriff auf eine sicherheitsrelevante Funktion des Fahrzeugs hat. So kann in zuverlässiger Weise eine sichere Ausführung von SW-Programmen in einem Fahrzeug ermöglicht werden.
  • Das Basis-Modul kann eingerichtet sein, bei der Ausführung des SW-Programms das sicherheitsrelevante Modul aufzurufen und eine Ausführung des sicherheitsrelevanten Moduls auf der zweiten HW-Plattform zu veranlassen. Dabei können bei der Ausführung des SW-Programms Daten von dem Basis-Modul an das sicherheitsrelevante Modul übergeben werden. Des Weiteren können Daten von dem sicherheitsrelevanten Modul an das Basis-Modul übergeben werden. Dabei kann das sicherheitsrelevante Modul eine standardisierte Schnittstelle aufweisen, über die die Daten an das sicherheitsrelevante Modul oder von dem sicherheitsrelevanten Modul übergeben werden können. So kann eine sichere Ausführung von SW-Programmen von externen SW Anbietern in einem Fahrzeug ermöglicht werden.
  • Gemäß einem weiteren Aspekt wird ein Verfahren zur Ausführung eines SW-Programms in einem Fahrzeug beschrieben. Das Verfahren umfasst das Ausführen eines Basis-Moduls des SW-Programms auf einer ersten HW-Plattform (z.B. auf der Head Unit) des Fahrzeugs. Außerdem umfasst das Verfahren das Aufrufen, aus dem Basis-Modul heraus, eines sicherheitsrelevanten Moduls des SW-Programms, wobei das sicherheitsrelevante Modul auf sicherheitsrelevante Daten und/oder auf eine sicherheitsrelevante Funktion zugreift. Das Verfahren umfasst weiter das Ausführen des sicherheitsrelevanten Moduls auf einer zweiten HW-Plattform des Fahrzeugs, wobei die zweite HW-Plattform ein oder mehreren Sicherheitsmaßnahmen unterliegt, denen die erste HW-Plattform nicht unterliegt.
  • Gemäß einem weiteren Aspekt wird ein Fahrzeug (insbesondere ein Straßenkraftfahrzeug z.B. ein Personenkraftwagen, ein Lastkraftwagen oder ein Motorrad) beschrieben, das das in diesem Dokument beschriebene System umfasst.
  • Es ist zu beachten, dass die in diesem Dokument beschriebenen Verfahren, Vorrichtungen und Systeme sowohl alleine, als auch in Kombination mit anderen in diesem Dokument beschriebenen Verfahren, Vorrichtungen und Systemen verwendet werden können. Des Weiteren können jegliche Aspekte der in diesem Dokument beschriebenen Verfahren, Vorrichtungen und Systemen in vielfältiger Weise miteinander kombiniert werden. Insbesondere können die Merkmale der Ansprüche in vielfältiger Weise miteinander kombiniert werden.
  • Im Weiteren wird die Erfindung anhand von Ausführungsbeispielen näher beschrieben. Dabei zeigen
    • 1 ein beispielhaftes System zur Integration von SW-Programmen;
    • 2 einen beispielhaften Aufbau eines SW-Programms; und
    • 3 ein Ablaufdiagramm eines beispielhaften Verfahrens zur Ausführung eines SW-Programms in einem Fahrzeug.
  • Wie eingangs dargelegt, befasst sich das vorliegende Dokument mit der flexiblen und sicheren Integration von SW-Programmen für unterschiedliche Anwendungen auf einer HW-Plattform eines Fahrzeugs.
  • Ein SW-Programm für eine Anwendung kann z.B. auf einem Smartphone eines Nutzers installiert werden, und das Smartphone kann mit dem Fahrzeug über eine Datenverbindung verbunden werden. Andererseits kann ein SW-Programm direkt auf einem Steuergerät (z.B. der Head Unit) eines Fahrzeugs installiert und ausgeführt werden. Diese beiden Möglichkeiten sind mit Nachteilen verbunden. Beispielsweise kann es für einen Nutzer unerwünscht sein, Software von ggf. unbekannten Anbietern auf einem persönlichen Smartphone zu installieren. Andererseits erfordert die direkt Integration von SW-Programmen auf der Head Unit eines Fahrzeugs typischerweise hohe Integrationsaufwendungen. Dabei ist eine vollständige Kontrolle und/oder Überprüfung der aufgespielten SW aufgrund der hohen Komplexität ggf. nicht möglich. Des Weiteren kann die Sicherheit von Daten aus einem SW Programm innerhalb einer Head Unit ggf. nicht ausreichend gewährleistet werden.
  • Es wird daher vorgeschlagen, in einem Fahrzeug eine vertrauenswürdige Umgebung (d.h. ein sicheres Ökosystem) für Software von Drittanbietern bereitzustellen. Durch die Bereitstellung einer derartigen vertrauenswürdigen Umgebung kann einem externen Anbieter eines SW-Programms gewährleistet werden, dass sicherheitsrelevante Teile des SW-Programms (z.B. kryptographische Schlüssel) vor Zugriff geschützt sind. Des Weiteren kann in effizienter Weise sichergestellt werden, dass ein SW-Programm eines externen Anbieters nicht die Sicherheit des Fahrzeugs beeinträchtigt.
  • 1 zeigt ein Blockdiagramm eines Systems 100 zur Bereitstellung von SW-Programmen in einem Fahrzeug. Das System 100 umfasst eine erste HW-Plattform 110 (z.B. einen ersten Prozessor) auf dem unterschiedliche SW-Programme 111, 112, 113, insbesondere ein SW-Programm 113 eines externen Anbieters, ausgeführt werden können. Die SW-Programme 111, 112, 113 können unter Verwendung eines Betriebssystems 130 ausgeführt werden. Des Weiteren können die SW-Programme 111, 112, 113 auf ein oder mehrere HW-Treiber 131 zugreifen, z.B. um eine Datenkommunikation über eine Kommunikationseinheit 141, 142, 143 zu ermöglichen (z.B. über eine Kommunikationseinheit 141 für ein zellulares Netz (GSM, UMTS, LTE), über eine Kommunikationseinheit 142 für WLAN und/oder über eine Kommunikationseinheit 143 für Bluetooth).
  • Das System 100 umfasst weiter eine zweite HW-Plattform 120 (z.B. einen zweiten Prozessor) zur Ausführung von ein oder mehreren sicherheitsrelevanten SW-Modulen 121, 122 der auf der ersten HW-Plattform 110 implementierten SW-Programme 111, 112, 113. Ein sicherheitsrelevantes SW-Modul 121, 122 kann z.B. sicherheitsrelevante Daten umfassen. Alternativ oder ergänzend kann ein sicherheitsrelevantes SW-Modul 121, 122 einen Zugriff auf eine sicherheitsrelevante Fahrzeug-interne oder Fahrzeug-externe Funktion ermöglichen.
  • Die zweite HW-Plattform 120 kann besonderen ein oder mehreren Sicherheitsmaßnahmen unterliegen. Insbesondere kann durch den Hersteller eines Fahrzeugs eine detaillierte Analyse und Überprüfung der ein oder mehrere SW-Module 121, 122 vorgenommen werden, die auf der zweiten HW-Plattform 120 installiert werden. Des Weiteren können Maßnahmen vorgesehen sein, die einen unbefugten Zugriff auf SW-Module 121, 122 und/oder Daten auf der zweiten HW-Plattform 120 verhindern. Die zweite HW-Plattform 120 kann eine Sicherheitsmaßnahme aufweisen, die der zweiten HW-Plattform 120 einen besonderen Schutz vor Seitenkanalangriffen liefert. Des Weiteren kann durch eine Sicherheitsmaßnahme ein physisches Auslesen eines Speichers der zweiten HW-Plattform 120 unterbunden werden. Mit anderen Worten, die zweite HW-Plattform 120 kann derart durch ein oder mehrere Sicherheitsmaßnahmen geschützt sein, dass die ein oder mehreren Speicher der zweiten HW-Plattform 120 nicht (von außen) ausgelesen werden können. Die zweite HW-Plattform 120 kann insbesondere „tamper-resistant“ bzw. manipulationssicher ausgebildet sein.
  • Es wird somit eine vertrauenswürdige Anwendungsumgebung 120 für einen Automobilhersteller und einen Anbieter von Drittsoftware bereitgestellt. Die Sicherheits-Hardware-Plattform 120 stellt eine Abstraktionsschicht zwischen dem Steuergerät Betriebssystem 130, ein oder mehreren Hoch-Sicherheits-Modulen 121, 122 und allen anderen SW-Programmen 111, 112, 113 dar. Ein Hoch-Sicherheits-Modul 121, 122 ist dabei typischerweise sehr klein, so dass der Programm-Quell-Code eines solchen Moduls 121, 122 geprüft werden kann. Darüber hinaus stellt die Sicherheits-Hardware-Plattform 120 eine starke Isolation für ein Hoch-Sicherheits-Modul 121, 122 bereit. Hierdurch wird ein Zugriff auf Rechenoperationen und/oder Daten eines Hoch-Sicherheits-Moduls 121, 122 durch ein anderes Hoch-Sicherheits-Modul 121, 122 oder durch ein sonstiges SW-Programm 111, 112, 113 verhindert. Die ein oder mehreren Schnittstellen für Hoch-Sicherheits-Module 121, 122 können einheitlich und/oder standardisiert sein.
  • 1 zeigt weiter ein Kommunikationsnetz 150 (z.B. das Internet) mit dem direkt (z.B. über eine Kommunikationseinheit 141 für ein zellulares Netz) oder indirekt über ein Smartphone 160 mit ein oder mehreren SW-Applikationen 161 kommuniziert werden kann.
  • 2 veranschaulicht einen beispielhaften Ablauf 200 eines SW-Programmes 111, 112, 113. Ein SW-Programm 111, 112, 113 kann ein oder mehrere Basis-Module 210 umfassen, die auf der ersten HW-Plattform 110 installiert sein können. Des Weiteren kann ein SW-Programm 111, 112, 113 ein oder mehrere sicherheitsrelevante Module 121, 122 umfassen, die auf der zweiten HW-Plattform 120 installiert sind. Bei der Ausführung eines SW-Programms 111, 112 113 kann zunächst ein Basis-Modul 210 ausgeführt werden, das bei Bedarf ein sicherheitsrelevantes Modul 121, 122 aufruft. Bei dem Aufruf können Eingangsdaten 211 an ein sicherheitsrelevantes Modul 121, 122 übergeben werden. Des Weiteren können nach oder während der Ausführung der sicherheitsrelevanten Moduls 121, 122 Ausgangsdaten 221 zurück an ein Basis-Modul 210 übergeben werden. Durch die Aufteilung eines SW-Programms 111, 112, 113 in ein oder mehrere Basis-Module 210 und ein oder mehrere sicherheitsrelevante Module 121, 122 können komplexe Anwendungen bereitgestellt werden, die jedoch nur relativ kleine sicherheitsrelevante Module 121, 122 umfassen, die in effizienter und zuverlässiger Weise überprüft werden können.
  • Der Zugriff auf eine sicherheitsrelevante Fahrzeug-interne Funktion 201 und/oder auf eine sicherheitsrelevante Fahrzeug-externe Funktion 202 kann bevorzugt ausschließlich durch ein sicherheitsrelevantes Modul 121, 122 ermöglicht werden. So kann in effizienter Weise die Sicherheit von Fahrzeugfunktionen 201 und/oder Fahrzeug-externen Funktionen 202 sichergestellt werden.
  • In einem Beispiel für eine automatische Parkhausabrechnung stellt ein externer Anbieter eine Bezahl-Applikation 113 bereit. Diese Applikation 113 teilt sich in zwei Teile 121, 210, einen sicherheits-kritischen Teil 121 und einen sicherheits-unkritischen Teil 210. Der sicherheits-kritische Teil 121 wird auf der Sicherheits-Hardware-Plattform 120 ausgeführt und der sicherheits-unkritischen Teil 210 wird innerhalb des üblichen Steuergerät (z.B. Head Unit) Betriebssystems 130 bzw. auf der ersten HW-Plattform 110 ausgeführt. Als sicherheits-kritischer Teil 121 können z.B. die für den Bezahlvorgang erforderlichen kryptografischen Operationen angesehen werden. Als sicherheits-unkritischer Teil 210 können die Nutzerschnittstelle und die Kommunikation z.B. mit dem Internet 150 angesehen werden. Alle kritischen Operationen (insbesondere eine Verschlüsselung) können auf der Sicherheits-Hardware-Plattform 120 ausgeführt werden, so dass z.B. alle Daten von und zum Internet 150, die z.B. auf der ersten HW-Plattform 110 bearbeitet werden, verschlüsselt und integritätsgeschützt sind.
  • Ein Nutzer fährt mit seinem Fahrzeug zum Parkhauseingang und das Parkhaus nimmt z.B. über WLAN, Bluetooth oder Internet, Kontakt mit dem Fahrzeug auf. Unter Verwendung eines sicherheits-kritischen Teils 121 der Bezahl-Applikation 113 wird der Nutzer bzw. das Fahrzeug als „im Parkhaus“ registriert und es kann (mittels eines sicherheits-unkritischen Teils 210) eine Bestätigung über die Nutzerschnittstelle ausgegeben werden. Bei der Ausfahrt übernimmt wiederum ein sicherheits-kritischer Teil 121 der Bezahl-Applikation 113 die Berechnung der Kosten und identifiziert dabei das Fahrzeug eindeutig mittels kryptografischer Operationen.
  • In einem weiteren Beispiel wird ein sicheres Car-Sharing (ohne Zusatz-/Fremd-Hardware) beschrieben. Dabei möchte ein Drittanbieter ein Fahrzeug für Car-Sharing zur Verfügung stellen. Dazu könnte eine Car-Sharing Software direkt in einem Steuergerät des Fahrzeugs ausgeführt werden, was ggf. zu SicherheitsRisiken führen könnte und/oder was einen relativ hohen Integrationsaufwand erfordert. Alternativ könnte eine Zusatzhardware (z.B. ein weiteres Steuergerät) in ein Fahrzeug verbaut werden, was ebenfalls zu relativ hohen Integrationsaufwänden führen würde.
  • Unter Verwendung des in diesem Dokument beschriebenen Systems 100 kann eine Car-Sharing Anwendung 113 in zwei Teile 210, 121 aufgeteilt werden, einen sicherheits-kritischen Teil 121 und einen sicherheits-unkritischen Teil 210. Der sicherheits-kritische Teil 121 wird auf der Sicherheits-HW-Plattform 120 ausgeführt und der sicherheits-unkritische Teil 210 kann innerhalb des üblichen Head Unit Betriebssystems 130 und/oder zusammen mit einer unkritischen Benutzer-Applikation auf z.B. einem Smartphone 160 ausgeführt werden.
  • Als sicherheits-kritischer Teil 121 können z.B. die für den Fahrzeug-Zugang, Fahrzeug-Start und den Abrechnungs-Vorgang erforderlichen kryptografischen Operationen angesehen werden. Als sicherheits-unkritischer Teil 210 können die Nutzerschnittstelle und die Kommunikation z.B. mit dem Internet angesehen werden. Da alle kritischen Operationen bereits auf der Sicherheits-HW-Plattform 120 ausgeführt werden, sind z.B. alle Daten von und zum Internet bereits verschlüsselt und integritätsgeschützt.
  • Ein Nutzer installiert sich eine Car-Sharing Applikation (die Fahrzeug-spezifische Schnittstellen unterstützt) auf einem Smartphone 160. Der Nutzer registriert sich bei einem Car-Sharing Anbieter, der wiederum eine Registrierung des Nutzers in einem Backend vornimmt. Der Nutzer bucht über die Car-Sharing Applikation ein verfügbares Fahrzeug und erhält auf seinem Smartphone 160 ein „Token“ mit dem er ein bestimmtes Fahrzeug z.B. in einem bestimmten Zeitraum nutzen kann. Der Nutzer geht mit seinem Smartphone 160 zu dem bestimmten Fahrzeug und kann mit dem Smartphone 160 u.A. das Fahrzeug öffnen.
  • Der sicherheits-kritische Teil 121 der Car-Sharing Anwendung 113 verifiziert das „Token“, und es wird bei Bestätigung des „Token“ die Fahrzeugnutzung gewährt. Dabei ist es für einen Nutzer unmöglich ein Token selbst zu erzeugen oder ein altes Token erneut einzuspielen. Des Weiteren ist es aufgrund der in diesem Dokument beschriebenen Struktur irrelevant, ob das Smartphone 160 oder die Car-Sharing Applikation unsicher sind, da nur der sicherheits-kritische Teil 121 der Car-Sharing Anwendung 113 kritische Komponenten 201 des Fahrzeugs und/oder kritische Fahrzeug-externe Komponenten 202 beeinflusst (z.B. Zugang, Fahrzeugstart, Buchungen).
  • Durch eine weitere Anpassung der zugrundeliegenden Hardware (insbesondere der Prozessorumgebung von z.B. der Head Unit) kann eine weitergehende Isolation von SW Programmen 113 eines externen Anbieters ermöglicht werden. Dabei können Applikationen vollständig von der übrigen Softwareumgebung der Head Unit isoliert werden. So kann die Sicherheit weiter erhöht werden.
  • 3 zeigt ein Ablaufdiagramm eines beispielhaften Verfahrens 300 zur Ausführung eines SW-Programms 113 in einem Fahrzeug. Das SW-Programm 113 kann durch einen externen Anbieter für eine Anwendung bereitgestellt werden. Der externe Anbieter kann dabei weder der Hersteller des Fahrzeugs noch ein Zulieferer für eine Komponente des Fahrzeugs sein. Der externe Anbieter kann z.B. ein Dienstleister sein, der mittels des SW-Programms 113 eine Dienstleistung, wie z.B. eine Abrechnungs-Dienstleistung, eine Car-Sharing Dienstleistung, etc., in Zusammenhang mit dem Fahrzeug bereitstellen möchte.
  • Das Verfahren 300 umfasst das Ausführen 301 eines Basis-Moduls 210 des SW-Programms 113 auf einer ersten HW-Plattform 110 des Fahrzeugs (z.B. auf der Head Unit des Fahrzeugs). Das Basis-Modul 210 kann z.B. relativ unkritische Funktionen, wie z.B. eine Nutzerschnittstelle und/oder eine Kommunikation mit einem Netzwerk 150 und/oder mit einem Fahrzeug-externen Gerät 160 (z.B. einem Smartphone) ermöglichen.
  • Es kann dann aus dem Basis-Modul 210 heraus bei Ausführung des SW-Programms 113 ein sicherheitsrelevantes Modul (121) des SW-Programms (113) aufgerufen werden (Schritt 302). Dabei greift das sicherheitsrelevante Modul 121 auf sicherheitsrelevante Daten (z.B. auf kryptographische Schlüssel und/oder auf Abrechnungsdaten) und/oder auf eine sicherheitsrelevante Funktion (z.B. auf eine Schließanlage des Fahrzeugs und/oder auf eine Motorstartfunktion des Fahrzeugs) zu.
  • Außerdem umfasst das Verfahren 300 das Ausführen 303 des sicherheitsrelevanten Moduls 121 auf einer zweiten HW-Plattform 120 des Fahrzeugs. Dabei unterliegt die zweite HW-Plattform 120 ein oder mehreren Sicherheitsmaßnahmen, denen die erste HW-Plattform 110 nicht unterliegt. Beispielsweise erfolgt für SW-Module 121, die auf der zweiten HW-Plattform 120 ausgeführt werden sollen, eine Überprüfung des SW-Codes durch den Hersteller des Fahrzeugs, um ungewünschte Auswirkungen auf eine Fahrzeug-Funktion 201 zu unterbinden. Alternativ oder ergänzend kann eine Beschränkung von Daten 201, 202 erfolgen, die an ein SW-Module 121 oder von einem SW-Module 121 übergeben werden können, das auf der zweiten HW-Plattform 120 ausgeführt wird.
  • In diesem Dokument wird somit eine standardisierte Software- und Hardwareumgebung für SW Programme 113 von externen Anbietern beschrieben. Dabei ist das beschriebene System 100 bevorzugt derart ausgelegt, dass keine Spezialkenntnisse bezüglich Embedded-Hardware/-Software benötigt werden und dass alle Softwareschnittstellen eindeutig definiert sind. Durch eine Abstraktion der Hardware muss sich ein externer Anbieter von SW-Programmen 113 nicht um Hardwareschnittstellen kümmern. Des Weiteren muss ein Fahrzeughersteller für die Anbindung eines neuen SW-Programms 113 keine Software- bzw. Hardware-Änderungen vornehmen.
  • Es wird somit eine sichere und verlässliche Ausführungsumgebung für SW-Programme 113 von externen Anbietern innerhalb eines Fahrzeugs bereitgestellt. Dabei können SW-Programme 113 während der Betriebszeit eines Fahrzeugs nachgeliefert werden (nach Prüfung und Signatur durch den Automobilhersteller), so dass Funktionserweiterung des Fahrzeugs ermöglicht werden. Außerdem kann ein Automobilhersteller sicherheits-kritische Teile 121 eines SW-Programms 111 auf die Sicherheits-HW-Plattform 120 auslagern, um das Sicherheitsniveau einess Steuergerätes (z.B. einer Head Unit) eines Fahrzeugs zu erhöhen.
  • Die vorliegende Erfindung ist nicht auf die gezeigten Ausführungsbeispiele beschränkt. Insbesondere ist zu beachten, dass die Beschreibung und die Figuren nur das Prinzip der vorgeschlagenen Verfahren, Vorrichtungen und Systeme veranschaulichen sollen.

Claims (10)

  1. System (100) zur Bereitstellung einer Anwendung mittels eines SW-Programms (113) in einem Fahrzeug, wobei - das System (100) eine erste HW-Plattform (110) und eine zweite HW-Plattform (120) umfasst; - die zweite HW-Plattform (120) ein oder mehreren Sicherheitsmaßnahmen unterliegt, denen die erste HW-Plattform (110) nicht unterliegt; - das SW-Programm (113) zumindest ein Basis-Modul (210) und zumindest ein sicherheitsrelevantes Modul (121) umfasst; - das sicherheitsrelevante Modul (121) auf sicherheitsrelevante Daten und/oder auf eine sicherheitsrelevante Funktion (201, 202) zugreift; - das Basis-Modul (210) auf der ersten HW-Plattform (110) ausgeführt wird; und - das sicherheitsrelevante Modul (121) auf der zweiten HW-Plattform (120) ausgeführt wird.
  2. System (100) gemäß Anspruch 1, die ein oder mehreren Sicherheitsmaßnahmen umfassen, - eine Überprüfung von SW-Code eines SW-Moduls (121), das auf der zweiten HW-Plattform (120) ausgeführt wird; und/oder - eine Beschränkung von Daten (211, 221), die an ein oder von einem SW-Modul (121) übergeben werden können, das auf der zweiten HW-Plattform (120) ausgeführt wird.
  3. System (100) gemäß einem der vorhergehenden Ansprüche, wobei - die erste HW-Plattform (110) derart ausgelegt ist, dass ein auf der ersten HW-Plattform (110) ausgeführtes SW-Modul (210) keinen Zugriff auf eine sicherheitsrelevante Funktion (201) des Fahrzeugs hat; und - die zweite HW-Plattform (120) derart ausgelegt ist, dass ein auf der zweiten HW-Plattform (120) ausgeführtes SW-Modul (121) einen Zugriff auf eine sicherheitsrelevante Funktion (201) des Fahrzeugs hat.
  4. System (100) gemäß einem der vorhergehenden Ansprüche, wobei das Basis-Modul (210) eingerichtet ist, bei einer Ausführung des SW-Programms (113) das sicherheitsrelevante Modul (121) aufzurufen und eine Ausführung des sicherheitsrelevanten Moduls (121) auf der zweiten HW-Plattform (120) zu veranlassen.
  5. System (100) gemäß Anspruch 4, wobei bei der Ausführung des SW-Programms (113) - Daten (211) von dem Basis-Modul (210) an das sicherheitsrelevante Modul (121) übergeben werden; und/oder - Daten (221) von dem sicherheitsrelevanten Modul (121) an das Basis-Modul (210) übergeben werden.
  6. System (100) gemäß einem der vorhergehenden Ansprüche, wobei - die erste HW-Plattform (110) und die zweite HW-Plattform (120) separate Prozessoren umfassen; und/oder - die zweite HW-Plattform (120) einen nicht-flüchtigen und/oder flüchtigen Speicher umfasst, der von der ersten HW-Plattform (110) getrennt ist.
  7. System (100) gemäß einem der vorhergehenden Ansprüche, wobei die erste HW-Plattform (110) Teil eines Steuergerätes des Fahrzeugs ist.
  8. System (100) gemäß einem der vorhergehenden Ansprüche, wobei - das zumindest eine sicherheitsrelevante Modul (121) 20%, 10% oder weniger eines SW-Codes des SW-Programms (113) umfasst; und/oder - das zumindest eine Basis-Modul (210) 80%, 90% oder mehr des SW-Codes des SW-Programms (113) umfasst.
  9. System (100) gemäß einem der vorhergehenden Ansprüche, wobei das sicherheitsrelevante Modul (121) eine standardisierte Schnittstelle aufweist, über die Daten (211, 221) an das sicherheitsrelevante Modul (121) oder von dem sicherheitsrelevanten Modul (121) übergeben werden können.
  10. Verfahren (300) zur Ausführung eines SW-Programms (113) in einem Fahrzeug; wobei das Verfahren (300) umfasst, - Ausführen (301) eines Basis-Moduls (210) des SW-Programms (113) auf einer ersten HW-Plattform (110) des Fahrzeugs; - Aufrufen (302), aus dem Basis-Modul (210), eines sicherheitsrelevanten Moduls (121) des SW-Programms (113); wobei das sicherheitsrelevante Modul (121) auf sicherheitsrelevante Daten und/oder auf eine sicherheitsrelevante Funktion (201, 202) zugreift; und - Ausführen (303) des sicherheitsrelevanten Moduls (121) auf einer zweiten HW-Plattform (120) des Fahrzeugs; wobei die zweite HW-Plattform (120) ein oder mehreren Sicherheitsmaßnahmen unterliegt, denen die erste HW-Plattform (110) nicht unterliegt.
DE102017202079.2A 2017-02-09 2017-02-09 System und Verfahren zur sicheren Ausführung von SW-Programmen in einem Fahrzeug Pending DE102017202079A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102017202079.2A DE102017202079A1 (de) 2017-02-09 2017-02-09 System und Verfahren zur sicheren Ausführung von SW-Programmen in einem Fahrzeug
PCT/EP2018/051275 WO2018145877A1 (de) 2017-02-09 2018-01-19 System und verfahren zur sicheren ausführung von sw-programmen in einem fahrzeug

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017202079.2A DE102017202079A1 (de) 2017-02-09 2017-02-09 System und Verfahren zur sicheren Ausführung von SW-Programmen in einem Fahrzeug

Publications (1)

Publication Number Publication Date
DE102017202079A1 true DE102017202079A1 (de) 2018-08-09

Family

ID=61022346

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017202079.2A Pending DE102017202079A1 (de) 2017-02-09 2017-02-09 System und Verfahren zur sicheren Ausführung von SW-Programmen in einem Fahrzeug

Country Status (2)

Country Link
DE (1) DE102017202079A1 (de)
WO (1) WO2018145877A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012205301A1 (de) 2012-03-30 2013-10-02 Bayerische Motoren Werke Aktiengesellschaft Rechner-Architektur zur Steuerung einer elektronischen Datenverarbeitung in einem Fahrzeug

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10163655A1 (de) * 2001-12-21 2003-07-03 Bosch Gmbh Robert Verfahren und Vorrichtung zur Steuerung einer Funktionseinheit eines Kraftfahrzeugs
DE102013207110A1 (de) * 2013-04-19 2014-10-23 Continental Automotive Gmbh Tachograph und On-Board-Einheit für ein Nutzkraftfahrzeug
DE102015209116A1 (de) * 2015-05-19 2016-11-24 Robert Bosch Gmbh Verfahren und Aktualisierungsgateway zum Aktualisieren eines eingebetteten Steuergerätes
GB2540408B (en) * 2015-07-16 2021-09-15 Trw Ltd Electronic control units for vehicles
DE102015213448A1 (de) * 2015-07-17 2017-01-19 Bayerische Motoren Werke Aktiengesellschaft Verfahren und Vorrichtung zur Sicherung von Objekten in einem Fahrzeug für Car-Sharing, sowie Fahrzeug für Car-Sharing umfassend die Vorrichtung

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012205301A1 (de) 2012-03-30 2013-10-02 Bayerische Motoren Werke Aktiengesellschaft Rechner-Architektur zur Steuerung einer elektronischen Datenverarbeitung in einem Fahrzeug

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
J. Botaschanjan et. al., Towards Verified Automotive Software, ACM SIGSOFT Software,2005

Also Published As

Publication number Publication date
WO2018145877A1 (de) 2018-08-16

Similar Documents

Publication Publication Date Title
EP2159653B1 (de) Verfahren zur Einräumung einer Zugriffsberechtigung auf ein rechnerbasiertes Objekt in einem Automatisierungssystem, Computerprogramm und Automatisierungssystem
DE102015209108A1 (de) Verfahren und Entscheidungsgateway zum Autorisieren einer Funktion eines eingebetteten Steuergerätes
DE102013108020A1 (de) Authentifizierungsschema zum Aktivieren eines Spezial-Privileg-Modus in einem gesicherten elektronischen Steuergerät
EP2692157A2 (de) Aktualisierung einer datenträgerapplikation
DE102013108022A1 (de) Verfahren zum Aktivieren des Entwicklungsmodus eines gesicherten elektronischen Steuergeräts
WO2009156108A2 (de) Freischalten eines dienstes auf einem elektronischen gerät
EP1185026B2 (de) Verfahren zur Datenübertragung
WO2011051128A1 (de) Verfahren zum betreiben eines tachographen und tachograph
EP2885907B1 (de) Verfahren zur installation von sicherheitsrelevanten anwendungen in einem sicherheitselement eines endgerät
WO2018059964A1 (de) Verfahren zum gesicherten zugriff auf daten eines fahrzeugs
DE102007051440B4 (de) Verfahren und Vorrichtung zur Freischaltung von Software in einem Kraftfahrzeug
CN110727936B (zh) 为应用授权的方法和设备
DE102017202079A1 (de) System und Verfahren zur sicheren Ausführung von SW-Programmen in einem Fahrzeug
DE102007039602A1 (de) Verfahren zum Prüfen einer auf einer ersten Einrichtung auszuführenden oder zu installierenden Version eines Softwareproduktes
EP2923264B1 (de) Verfahren und system zur applikationsinstallation in einem sicherheitselement
WO2021228581A1 (de) Erstellen einer container-instanz mit an hardware gebundene lizensüberprüfung
EP1642185A1 (de) Verfahren zur authentifikation von einer insbesondere in ein steuergerät eines kraftfahrzeugs ladbaren softwarekomponente
EP3268888A1 (de) Vorrichtung und verfahren zum anpassen einer nutzung eines geräts
EP1993054B1 (de) Verfahren zum Ausführen einer Software aus einem Endgerät
DE102015207004A1 (de) Verfahren zum geschützten Zugriff auf Sicherheitsfunktionen eines Sicherheitsmoduls eines Hostsystems
DE10354107A1 (de) Verfahren zur Authentifikation von insbesondere in ein Steuergerät eines Kraftfahrzeugs ladbaren Softwarekomponenten
WO2023083500A1 (de) Verfahren, fahrzeugkomponente und computerprogramm zum einräumen einer berechtigung zum ausführen eines computerprogramms durch eine fahrzeugkomponente eines fahrzeugs
EP4114050A1 (de) Überprüfung einer lizenz für die nutzung mindestens eines leistungsmerkmals in einem internet der dinge (iot)-gerät
DE102022209628A1 (de) Verfahren zum Überprüfen von Daten in einer Recheneinheit
EP4150492A1 (de) Verfahren und secure-element zum nachweis einer vertrauenswürdigen elektronischen baugruppe

Legal Events

Date Code Title Description
R163 Identified publications notified
R012 Request for examination validly filed