-
Die vorliegende Erfindung betrifft ein Verfahren zum Überwachen einer Software in einem Straßenfahrzeug und ein Verfahren zum sicheren Betrieb des Kraftfahrzeuges trotz einer gestörten Funktionsweise der Software.
-
In Straßenfahrzeugen, beispielsweise Personenkraftwagen, wird zunehmend vernetzte Software eingesetzt. Die zunehmende Komplexität der Software schafft dahingehend Probleme, dass der Test der Software zunehmend komplex wird und aufgrund der hohen Komplexität von Tests Fehler in der Software eines ausgelieferten Fahrzeuges vorhanden sein können.
-
Ferner kann die Software von nicht autorisierten Personen verändert oder manipuliert werden, um beispielsweise nicht frei geschaltete Funktionen zu verwenden.
-
Bei Kraftfahrzeugen des Standes der Technik kann ein Fehler bei der Ausführung der Software bei einem Werkstattbesuch über die Diagnosesteckdose oder, falls das Fahrzeug über ein mobiles Netzwerk kommunizieren kann, über das mobile Netzwerk an eine zentrale Einheit gemeldet werden. Die Software kann nach Korrektur des Fehlers in einer Werkstatt aktualisiert werden.
-
Für den Nutzer des Straßenfahrzeuges ist es nachteilig, dass er eine fehlerhafte Software verwenden muss, bis die Software bei einem Werkstattbesuch des Kraftfahrzeuges aktualisiert wird.
-
Die
DE 10 2011 004 634 A1 offenbart ein Verfahren, das Fahrzeugkomponenten-Zustandsdaten auf Unstimmigkeiten durch Vergleich mit historischen Fahrzeugkomponenten-Zustandsdaten prüft. Beim Bestimmen einer Unstimmigkeit kann ein Hinweissignal erzeugt werden, das eine unautorisierte Benutzung anzeigt.
-
Die
DE 10 2007 051 440 A1 offenbart ein Verfahren zur Freischaltung von Software, wobei ein Server Überprüfungsmittel umfasst, ob eine angefragte Software in Abhängigkeit einer Ist-Konfiguration der Software in einem Fahrzeug freigeschaltet werden darf, sowie Mittel umfasst, mittels denen ein Freischaltcode berechenbar und übertragbar ist.
-
Die
DE 10 2009 025 585 A1 betrifft eine Vorrichtung zur dezentralen Funktionsfreischaltung eines Steuergeräts für ein Fahrzeug mit einem Produktionsserver und einem Kryptoserver zum Übertragen von Freischaltdaten. Es ist ein Freischaltmodul vorhanden, das zwischen einer Zentraleinheit und dem Steuergerät schaltbar ist und mit dem eine begrenzte Anzahl von Freischaltungen unabhängig von der Zentraleinheit durchführbar ist.
-
Die
DE 10 2006 044 896 B3 offenbart ein Manipulationsferndiagnosesystem für ein Fahrzeug, das ein Steuersystem aufweist, das Kalibrierungsdaten speichert. Sobald festgestellt wird, dass die Kalibrierungsdaten verändert worden sind, wird ein Manipulations-Indikator erzeugt.
-
Die Erfindung stellt sich zur Aufgabe, ein Verfahren zu schaffen, das einen Weiterbetrieb des Straßenfahrzeuges trotz eines Fehlers der Software oder einer Manipulation der Software ermöglicht.
-
Die Erfindung wird durch ein Verfahren nach Anspruch 1 gelöst. Die abhängigen Ansprüche beanspruchen bevorzugte Ausführungsformen der Erfindung
-
Ein erfindungsgemäßes Verfahren zum Überwachen einer Software in einem Straßenfahrzeug, wobei die Software eine Mehrzahl von Codeabschnitten aufweist und jeder Codeabschnitt zumindest eine Funktion ausführt, umfasst den Schritt des Erfassens, ob ein unerwartetes Ereignis bei der Ausführung eines der Codeabschnitte aufgetreten ist, wobei das unerwartete Ereignis durch die Ausführung des Codes des Codeabschnittes verursacht wird, und/oder den Schritt des Prüfens, ob ein Softwareabschnitt manipuliert wurde. Falls das unerwartete Ereignis erfasst wird und/oder erfasst wird, dass ein Softwareabschnitt manipuliert wurde, wird eine Nachricht an eine zentrale Einheit außerhalb des Straßenfahrzeuges gesendet. Anschließend empfängt das Straßenfahrzeug eine Anweisung von der zentralen Einheit, die Funktionsweise der Software in Reaktion auf die Erfassung des unerwarteten Ereignisses und/oder die Manipulation des Softwareabschnittes zu ändern. Die Funktionsweise der Software kann in Reaktion auf die Anweisung geändert werden, während die Software ausgeführt wird.
-
Die Software kann einen einzelnen Prozess oder mehrere Prozesse umfassen, die auf einem Prozessor ausgeführt werden. Der Ausdruck Software im Sinne dieser Erfindung kann auch eine Mehrzahl von Prozessen umfassen, die von verschiedenen Prozessoren ausgeführt werden, wobei sich die Prozessoren im gleichen Steuergerät und/oder in verschiedenen Steuergeräten befinden können. Die Prozesse können mittels einer Inter-Programm-Kommunikation und/oder über ein Netzwerk miteinander kommunizieren.
-
Das unerwartete Ereignis kann eine unerwartete Beendigung eines Prozesses und/oder eine unerwartete Beendigung eines Threads umfassen. Ein Thread kann ein Teilprozess eines Prozesses sein, der unabhängig von einem anderen Teilprozess des Prozesses von dem gleichen oder einem anderen Prozessor eines Steuergerätes ausgeführt wird. Das unerwartete Ereignis kann umfassen, dass eine Variable einen Wert außerhalb eines zulässigen Wertebereichs aufweist. Ferner kann das unerwartete Ereignis umfassen, das eine Inter-Prozess-Kommunikation und/oder eine Intra-Prozess-Kommunikation fehlgeschlagen ist. Ferner kann das unerwartete Ereignis umfassen, dass der Sprung zu einem Codeabschnitt fehlgeschlagen ist.
-
Das unerwartete Ereignis kann aufgrund einer Manipulation einer Komponente aufgetreten sein und/oder die Ermittlung einer Manipulation einer Komponente umfassen. Der Ausdruck Manipulation einer Komponente umfasst im Sinne dieser Erfindung sowohl eine Manipulation eines Steuergerätes als auch eine Veränderung einer beliebigen Komponente des Fahrzeuges, beispielsweise einer Antriebskomponente, einer Bremse, eines Motors oder dergleichen. Das unerwartete Ereignis kann aufgrund einer Manipulation der Software, beispielsweise zumindest eines Codes eines Codeabschnittes aufgetreten sein. Das unerwartete Ereignis kann auch das Erfassen einer Manipulation der Software, beispielsweise zumindest eines Codes eines Codeabschnittes umfassen.
-
Das Manipulieren des Softwareabschnittes kann das Verändern zumindest eines Codeabschnittes, das Verändern eines zumindest digitalen Inhaltes und/oder das Verändern zumindest eines Konfigurationsdatums umfassen. Ein digitaler Inhalt kann ein Medium sein, beispielsweise ein Audio- und/oder Video-Medium. Die Manipulation kann die Deaktivierung eines Kopierschutzes betreffen. Das Konfigurationsdatum kann in einer Konfigurationsdatei abgespeichert sein.
-
Die Anweisung, die Funktionsweise der Software zu verändern, kann verschlüsselt bzw. codiert übertragen werden.
-
Das Verfahren kann den Schritt des Analysierens des Zustandes der Software durch eine zentrale Einheit aufweisen. Beispielsweise kann die zentrale Einheit einer Datei und/oder einen Speicherinhalt auslesen, in der bzw. in dem die Historie der des Ablaufs eines Prozesses hinterlegt ist. Derartige Dateien oder Speicherbereiche werden im Gebiet der Softwareentwicklung auch als Traces oder Fehler-Aufzeichnungs-Dateien (error log files) bezeichnet. Die historischen Daten über die Ausführung eines Prozesses können von der zentralen Einheit aus dem Straßenfahrzeug zur weiteren Analyse in die zentrale Einheit geladen werden. Die Analyse kann automatisiert erfolgen.
-
Das Ändern der Funktionsweise der Software kann den Schritt des Unterbrechens der Ausführung zumindest eines Codeabschnitts für einen vorbestimmten Zeitraum umfassen. Beispielsweise kann die Software so durch die Anweisung von der zentralen Einheit umkonfiguriert werden, dass der Codeabschnitt, der das unerwartete Ereignis verursacht hat, nicht ausgeführt wird. Diese Ausgestaltung der Erfindung hat den Vorteil, dass das Straßenfahrzeug und die Funktionen des Straßenfahrzeuges weitestgehend vollständig ausgeführt werden und keine unerwarteten Softwareabstürze auftreten. Dadurch wird der Fahrer entlastet und zudem wird die Sicherheit des Straßenfahrzeuges erhöht.
-
Das Ändern der Funktionsweise der Software kann das Beenden zumindest eines Prozessteils der Software und den Neustart zumindest des beendeten Prozessteils umfassen. Diese Vorgehensweise ist nützlich, wenn das unerwartete Ereignis zufällig aufgetreten ist. Diese Vorgehensweise eignet sich insbesondere bei einer nicht sicherheitskritischen Funktion des Straßenfahrzeuges, beispielsweise bei einer Komfortfunktion. Dadurch kann sichergestellt sein, dass möglichst viele Komfortfunktionen des Straßenfahrzeuges verfügbar sind. Der Ausdruck "zumindest eines Prozessteils" kann einen Prozess oder einen Thread, d.h. einen Teilprozess, umfassen.
-
Das Ändern der Funktionsweise der Software kann das Unterbrechen der Kommunikation von zumindest einem ersten Codeabschnitt umfassen. Diese Vorgehensweise ist hilfreich, wenn eine fehlgeschlagene Kommunikation das unerwartete Ereignis verursacht hat. Diese Vorgehensweise kann auch verwendet werden, wenn vermutet wird, dass die Software manipuliert wurde und/oder die Gefahr besteht, dass mittels der Software nicht autorisiert Daten aus dem Straßenfahrzeug versandt werden. Es ist möglich, dass der Schritt des Änderns der Funktionsweise sowohl das Beenden zumindest eines Prozessteils der Software und den Neustart zumindest des beendeten Prozessteils umfasst, wobei die Kommunikation von zumindest einem ersten Codeabschnitt unterbrochen wird.
-
Zumindest ein zweiter Codeabschnitt kann nach dem Unterbrechen der Kommunikation des zumindest einen ersten Codeabschnitts mit einer anderen Einheit des Fahrzeuges kommunizieren. Dadurch wird sichergestellt, dass lediglich derjenige Codeabschnitt, der das unerwartete Ereignis verursacht hat, nicht mit einer anderen Einheit des Straßenfahrzeuges und/oder einer Einheitaußerhalb des Straßenfahrzeuges kommuniziert. Das Ändern der Funktionsweise der Software kann den Schritt des erneuten Ausführens des Codeabschnitts umfassen, der das unerwartete Ereignis verursacht hat. Diese Vorgehensweise kann angewendet werden, wenn das unerwartete Ereignis aufgrund einer besonderen und unerwarteten Konstellation, beispielsweise Umweltbedingungen, Bedingungen im Straßenfahrzeug etc. aufgetreten ist.
-
Der Schritt des Veränderns der Funktionsweise kann den Schritt des Aktualisierens und/oder Austauschens zumindest eines Codeabschnittes und/oder zumindest eines Softwareabschnittes umfassen. Dadurch kann der ursprüngliche Codeabschnitt oder ein neuer (d.h. aktualisierter bzw. überarbeiteter) Codeabschnitt geladen werden. Ferner kann der ursprüngliche Softwareabschnitt oder ein neuer (d.h. aktualisierter bzw. überarbeiteter) Softwareabschnitt geladen werden.
-
Die Erfindung betrifft auch ein Computerprogrammprodukt, das, wenn es in einen Speicher eines Computers mit einem Prozessor geladen ist, die Schritte des zuvor beschriebenen Verfahrens ausführt.
-
Die Erfindung wird nun unter Bezugnahme auf die beigefügte Figur detaillierter beschrieben, die eine beispielhafte und nicht beschränkende Ausführungsform der Erfindung zeigt, wobei gilt:
-
1 ist eine Skizze einer beispielhaften Ausführungsform der Erfindung.
-
1 zeigt ein Kraftfahrzeug 2, das über ein Netzwerk 6 mit einer zentralen Einheit 4, beispielsweise einem so genannten Back-End, verbunden ist. Das Kraftfahrzeug 2 umfasst eine zentrale Steuerungseinrichtung 8, die beispielsweise eine zentrale elektronische Steuerungseinrichtung (Electronic Control Unit) sein kann. Ferner umfasst das Kraftfahrzeug einen Motor 10, der mit einer Motorsteuerung 12 verbunden ist, wobei die Motorsteuerung 12 mit der zentralen elektronischen Einrichtung 8 verbunden sein kann. Ferner umfasst das Kraftfahrzeug 2 ein elektronisches Komfortsystem 14, beispielsweise ein Navigationssystem. Ferner kann das Kraftfahrzeug 2 optional eine Speichereinrichtung 16 aufweisen, in der Programmcode und/oder das Kraftfahrzeug 2 betreffende Daten gespeichert sind. Die zentrale Steuerungseinrichtung 8, die Motorsteuerung 12, die elektronische Komforteinrichtung 14 und die Speichereinrichtung 16 können direkt oder indirekt mit einer Sendeeinrichtung und einer Antenne 22 gekoppelt sein, um über das Netzwerk 6 mit der zentralen Einrichtung 4 zu kommunizieren. Es versteht sich, dass die Übertragung über das Netzwerk 6 über einen verschlüsselten Kommunikationskanal erfolgt, um Sicherheitsrisiken zu vermeiden, beispielsweise die Mann-in-der-Mitte-Attacke, bei der versucht werden kann, manipulierten Code in das Kraftfahrzeug 2 zu laden.
-
Auf der zentralen Steuerungseinrichtung 8, der Motorsteuerung 12 und der elektronischen Komforteinrichtung 14 kann eine Software ablaufen. Die Software kann ein Betriebssystem und zumindest einen Prozess aufweisen. Jeder Prozess kann Teilprozesse (Threads) aufweisen. Jeder Prozess und jeder Teilprozess kann eine Mehrzahl von Codeabschnitten mit Anweisungen (Code) aufweisen, die die Arbeitsweise eines Prozessors bestimmen.
-
Die Prozesse, die in der zentralen Steuerungseinrichtung 8, der Motorsteuerung 12 und/oder der elektronischen Komforteinrichtung 14 laufen, können miteinander kommunizieren oder unabhängig voneinander ablaufen.
-
Die Prozesse können über einen Bus bzw. ein Fahrzeug-Netzwerk 24 miteinander kommunizieren.
-
Falls ein Prozess, der in der zentralen Steuerungseinrichtung 8, der Motorsteuerung 12 und/oder der elektronischen Komforteinrichtung 14 läuft, ein unvorhergesehenes Ereignis bei der Ausführung des Codes eines Codeabschnittes erfasst, gibt der Prozess über den Bus bzw. das Fahrzeug-Netzwerk 24 an die Sendeeinrichtung 20 ein Signal aus, das ein ungewöhnliches Ereignis aufgetreten ist. Das Auftreten des ungewöhnlichen Ereignisses wird über eine Antenne 22 und ein Netzwerk 6 an eine zentrale Einrichtung 4 übertragen.
-
Die zentrale Einrichtung 4 kann über das Netzwerk 6 den Zustand der Software der zentralen Steuerungseinrichtung 8, der Motorsteuerung 12 und/oder der elektronischen Komforteinrichtung 14 analysieren. Dazu können beispielsweise Aufzeichnungen über die Ausführung eines Prozesses, beispielsweise so genannte Traces und der Inhalt von Aufzeichnungsspeicherbereichen (Log-Daten) hochgeladen werden, die sich in der zentralen Steuerungseinrichtung 8, der Motorsteuerung 12, der elektronischen Komforteinrichtung 14 und/oder der Speichereinrichtung 16 befinden können. Die zentrale Einrichtung 4 kann die Prozessausführungsaufzeichnung analysieren, um manuell und/oder automatisiert eine Ursache für das unerwartete Ereignis zu ermitteln. Sobald die Ursache des unerwarteten Ereignisses ermittelt wurde, kann die zentrale Einrichtung 4 über das Netzwerk 6 die zentrale elektronische Einrichtung 8, die Motorsteuerungseinrichtung 12 und/oder die elektronische Komforteinrichtung 14 anweisen, die Funktionsweise der Software, d.h. zumindest eines Teil-Prozesses der Software, zu verändern. Das Verändern der Funktionsweise der Software kann umfassen, dass ein Prozess beendet wird und erneut gestartet wird. Das Ändern der Funktionsweise kann auch umfassen, dass die Kommunikation zwischen Komponenten des Kraftfahrzeuges 2 oder die Kommunikation nach außen unterbrochen wird. Ferner kann die Änderung der Funktionsweise umfassen, dass Teile der Software, d.h. zumindest ein Prozess, zu einem geeigneten Zeitpunkt neu gestartet werden. Der geeignete Zeitpunkt kann das Abstellen des Kraftfahrzeugs sein. Ferner kann die Änderung der Funktionsweise umfassen, dass die Ausführung eines Prozesses bzw. eines Teilprozesses für einen vorbestimmten Zeitraum unterbrochen wird. Ferner kann die Änderung der Funktionsweise umfassen, dass der Codeabschnitt, der das unerwartete Ereignis verursacht hat, mehrmals ausgeführt wird. Es kann ein Zähler vorgesehen werden, der überwacht, wie oft der Code unter Auftreten des unerwarteten Ereignisses erneut ausgeführt wird. Sobald der Codeabschnitt, der das unerwartete Ereignis ausgelöst hat, ohne Auftreten des unerwarteten Ereignisses ausgeführt wird, wird der Codeabschnitt nicht nochmals ausgeführt.
-
Die zentrale Einrichtung 4 kann dazu ausgebildet sein, eine Mehrzahl von Kraftfahrzeugen 2 anzuweisen, die Funktionsweise der Software zu verändern. Dies kann beispielsweise bei Implementierungsfehlern erforderlich sein, die ein Sicherheitsrisiko darstellen oder den Komfort erheblich einschränken.
-
Die zentrale Einrichtung kann die Änderung der Funktionsweise der Software zumindest eines Kraftfahrzeuges 2 innerhalb eines Zeitraums von weniger als 6 h, vorzugsweise weniger als 3 h, höchstvorzugsweise weniger als 1 h, mehr bevorzugt innerhalb von weniger als 30 min, höchst bevorzugt innerhalb von 15 min, ändern.
-
Die zentrale Steuerungseinrichtung 8, die Motorsteuerung 12 und/oder die elektronische Komforteinrichtung 14 können beim Ermitteln einer Manipulation der Software und/oder der Hardware eine Nachricht an die zentrale Einrichtung 4 über das Netzwerk 6 schicken. Die zentrale Einrichtung 4 kann eine Anweisung über das Netzwerk 6 an die Software des Kraftfahrzeuges 2 schicken, in der festgelegt wird, wie die Funktionsweise der Software geändert wird. Die Funktionsweise kann so geändert werden, wie zuvor beschrieben wurde. Ferner kann die Änderung der Funktionsweise umfassen, dass zumindest der Prozess, dessen Programmcode manipuliert ist, zumindest teilweise angehalten wird und ferner kann die Kommunikation von Prozessen unterbrochen werden, die manipulierten Code aufweisen, da Gefahr besteht, dass Daten aus dem Kraftfahrzeug 2 an unbefugte Dritte versandt werden.
-
Beim Ermitteln, dass eine Hardware eines Kraftfahrzeuges manipuliert wurde, falls beispielsweise der Motor 10 manipuliert wurde, kann die Änderung der Funktionsweise umfassen, dass der Motor 10 mit einer reduzierten Leistungsabgabe betrieben wird, um Motorschäden zu vermeiden. Ferner kann der Fahrer mittels eines Signals, beispielsweise eines optischen Signals, informiert werden, dass eine Manipulation vorliegt, beispielsweise an einem sicherheitskritischen System, das ein Antiblockiersystem, ein Stabilitätssystem oder dergleichen umfassen kann.
-
Die zentrale Einrichtung 4 kann dazu ausgebildet sein, die Funktionsweise der Software dadurch zu verändern, dass zumindest ein Codeabschnitt oder der Code für zumindest einen Prozess verändert wird, indem beispielsweise der ursprüngliche Code und/oder ein Code mit einer Fehlerbehebung in die betreffende elektronische Einrichtung geladen wird, beispielsweise in die zentrale Steuerungseinrichtung 8, die Motorsteuerung 12 und/oder die elektronische Komforteinrichtung 14.
-
Die vorliegende Erfindung hat den Vorteil, dass eine dynamische Reaktion auf ein unerwartetes Ereignis und/oder auf eine Manipulation erreicht wird. Falls das Kraftfahrzeug von einem unbefugten Dritten entwendet wird, können einige Funktionen deaktiviert werden. Ferner kann der Fahrer abgehalten werden, eine manipulierte Software zu verwenden, die ein Sicherheitsrisiko darstellen kann. Zusätzlich kann eine Beschädigung am Kraftfahrzeug 2 im Fall von Implementierungsfehlern oder dergleichen vermieden werden. Schließlich können die Garantieansprüche des Halters des Kraftfahrzeuges 2 im Falle einer ermittelten Manipulation beschränkt werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- DE 102011004634 A1 [0006]
- DE 102007051440 A1 [0007]
- DE 102009025585 A1 [0008]
- DE 102006044896 B3 [0009]