-
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Freischaltung von Software in einem Kraftfahrzeug sowie einen externen Server zur Freischaltung der Software.
-
In modernen Kraftfahrzeugen existiert eine Vielzahl von Steuergeräten mit Software. Die tatsächlich benötigte Software kann aus verschiedenen Gründen unterschiedlich sein. Sind beispielsweise bestimmte Komponenten im Fahrzeug nicht verbaut, so sind bestimmte Software-Funktionen nicht erforderlich. Eine andere Möglichkeit ist, dass bestimmte Funktionen kostenpflichtig sind, so dass es dem Kraftfahrzeugführer überlassen ist, ob er diese Funktionen nutzen möchte oder auch nicht. Aufgrund der Tatsache, dass das Übertragen von Software teilweise zeitaufwendig ist, wurde bereits vorgeschlagen, das Kraftfahrzeug mit einem vollständigen Software-Paket auszustatten und nicht benötigte Software bzw. Software-Funktionen zu deaktivieren. Bei einem Änderungswunsch des Kraftfahrzeugführers, dass dieser nunmehr eine bestimmte Software-Funktion doch wünscht, kann diese dann durch einen Freischaltcode freigeschaltet werden. Was für die Freischaltung gilt, gilt selbstverständlich auch für die Deaktivierung. Nachfolgend soll also Freischaltung allgemein als Änderung der Funktionalität einer vorhandenen Software in einem Kraftfahrzeug verstanden werden. Das Freischalten kann sich dabei auf das Freischalten ganzer Software-Pakete beziehen als auch auf das Freischalten einzelner Funktionen innerhalb eines bereits aktiven Software-Paketes. Ein solcher Freischaltcode ist dabei kryptografisch zu sichern, um Manipulationen zu verhindern, insbesondere da die Freischaltung auch sicherheitsrelevante Software betreffen kann.
-
Die Gefahr eines solchen Freischaltungskonzepts liegt in der Tatsache, dass bei voneinander unabhängigen Freischaltungen von verschiedenen Funktionen eine Situation entstehen kann, dass diese freigeschalteten Funktionen inkonsistent zueinander sind und damit ein Funktions- oder Sicherheitsrisiko darstellen. Um eine solche Situation zu verhindern, muss bei einer Freischaltung sichergestellt werden, dass sie zu keiner falschen Konfiguration führen kann.
-
Eine einfache Abfrage der Ist-Konfiguration über eine Datenverbindung ist nicht abgesichert und kann durch einen Angreifer leicht verfälscht werden.
-
Eine kryptografische Absicherung durch eine Verschlüsselung bedeutet zusätzlichen logistischen Aufwand, da es sich um einen eigenständigen Prozess handelt. Darüber hinaus müssen zusätzliche Mechanismen in die Steuergeräte eingebaut und zusätzliche kryptografische Schlüssel eingebracht werden.
-
Aus der
US 2004/0039705 A1 ist ein Verfahren zur Freischaltung von Software in einem Computersystem mittels mindestens eines zentralen Servers bekannt. Dabei erfolgt eine Anfrage an den Server nach Freischaltung einer Software, wobei im Server überprüft wird, ob die angefragte Software in Abhängigkeit von einer Ist-Konfiguration der Software freigeschaltet werden darf. Der Server berechnet dann einen Freischaltcode für die Software, der zusätzlich verschlüsselt werden kann. Der verschlüsselte Freischaltcode wird dann an das Computersystem übertragen und nach Empfang im Computersystem entschlüsselt. Anschließend wird die Software durch den Freischaltcode freigeschaltet.
-
-
Aus der
CN 17 41 445 A ist ein Verfahren zur Freischaltung von Software in einem Computersystem mittels mindestens eines zentralen Servers bekannt, wobei eine Anfrage an den Server nach Freischaltung einer Software erfolgt und ein Freischaltcode für die Software durch den Server berechnet wird. Der Freischaltcode wird dann verschlüsselt, an das Computersystem übertragen entschlüsselt und die Software freigeschaltet.
-
Aus der
DE 10 2004 049 297 A1 ist ein Verfahren zur Freischaltung von Software in einem Kraftfahrzeug mittels mindestens eines zentralen Servers bekannt, wobei eine Anfrage an den Server nach Freischaltung einer Software erfolgt. Der Server berechnet einen Freischaltcode, verschlüsselt diesen und übertragt den verschlüsselten Freischaltcode an das Kraftfahrzeug, wo dieser entschlüsselt wird. Im Kraftfahrzeug wird der entschlüsselte Freischaltcode mit einem vorhandenen Codewort verglichen, wobei die Software durch den Freischaltcode freigeschaltet wird, wenn der Vergleich keine Abweichung ergeben hat.
-
Aus der
US 2007/0113090 A1 ist ein Verfahren zur Freischaltung von Software in einem Computersystem mittels mindestens eines zentralen Servers bekannt, wobei eine Anfrage nach Freischaltung einer Software an den Server gestartet wird. Im Server wird dann überprüft, ob die angefragte Software in Abhängigkeit von einer Ist-Konfiguration freigeschaltet werden darf. Bei positiver Überprüfung wird ein Freischaltcode durch den Server berechnet, an das Computersystem übertragen und die Software wird durch den Freischaltcode freigeschaltet.
-
Aus der
DE 197 20 285 A1 ist ein Verfahren zur Konfigurierung eines Steuergeräts in einer Steuergeräteanordnung aus wenigstens zwei miteinander verbundenen Steuergeräten bekannt, wovon eines ein Fahrzeugsteuergerät und das andere ein Komponentensteuergerät ist. Dabei ist das Fahrzeugsteuergerät zur Ausführung einer Vielzahl von Funktionen vorbereitet, von denen wenigstens eine durch eine externe Aktivierungsinformation zu aktivieren ist. Dabei wird eine Aktivierungsinformation zu einer im Fahrzeugsteuergerät vorbereiteten Funktion in ein Komponentensteuergerät eingespeichert. Das Fahrzeugsteuergerät kann dann eine an ein Komponentensteuergerät abzugebende Anforderung zur Feststellung auslösen, ob dort eine Aktivierungsinformation vorhanden ist. Schließlich erfolgt ein Freischalten einer vorbereiteten Funktion im Fahrzeugsteuergerät bei Eingang einer zugehörigen Aktivierungsinformation im Fahrzeugsteuergerät.
-
Aus der
DE 102 12 259 A1 ist ein Verfahren zum softwaregesteuerten Sperren und/oder Entsperren von in einem Kraftfahrzeug vorhandenen Funktionalitäten bekannt, wobei die Funktionalitäten durch Steuern vorhandener Hardware mittels die Funktionalität ermöglichender Softwaremodule realisiert werden und das Sperren und/oder Entsperren durch Kommunikation des Fahrzeugs mit einer Zentrale von dieser initiiert wird, wobei es sich bei den Funktionalitäten um die Ausstattung des Fahrzeugs individualisierende Sonderausstattungen handelt.
-
Aus der
WO 93/17895 A1 ist ein Verfahren zur Freischaltung von Software in einem Kraftfahrzeug mittels mindestens eines zentralen Servers bekannt, wobei ein Freischaltcode durch den Server verschlüsselt und an das Kraftfahrzeug übertragen wird. Der Freischaltcode wird dann im Kraftfahrzeug entschlüsselt und mit einem im Kraftfahrzeug vorhandenen fahrzeugspezifischen Code verglichen, wobei die Software freigeschaltet wird, wenn der Vergleich der Codes keine Abweichung ergeben hat.
-
Der Erfindung liegt das technische Problem zugrunde, ein Verfahren zur Freischaltung von Software in einem Kraftfahrzeug zur Verfügung zu stellen, mittels dessen einfach und sicher eine Freischaltung durchgeführt werden kann. Ein weiteres technisches Problem ist die Schaffung einer Vorrichtung und eines Servers zur Durchführung des Verfahrens.
-
Die Lösung des technischen Problems ergibt sich durch die Gegenstände mit den Merkmalen der Patentansprüche 1, 4 und 5. Weitere vorteilhafte Ausgestaltungen der Erfindung ergeben sich aus den Unteransprüchen.
-
Hierzu umfasst das Verfahren zur Freischaltung von Software in einem Kraftfahrzeug mittels eines zentralen Servers die Verfahrensschritte
- - Anfrage an den Server nach Freischaltung einer Software in einem Kraftfahrzeug,
- - Überprüfen im Server, ob die angefragte Software in Abhängigkeit von einer Ist-Konfiguration der Software freigeschaltet werden darf,
- - Berechnen eines Freischaltcodes für die Software durch den Server, wobei die Ist-Konfiguration der Software Bestandteil des Freischaltcodes ist,
- - Verschlüsseln des Freischaltcodes durch den Server,
- - Übertragen des verschlüsselten Freischaltcodes an das Kraftfahrzeug,
- - Entschlüsseln des Freischaltcodes im Kraftfahrzeug,
- - Vergleichen der mit dem Freischaltcode übermittelten Ist-Konfiguration der Software mit einer im Kraftfahrzeug vorhandenen Ist-Konfiguration der Software und
- - Freischalten der Software durch den Freischaltcode, wenn der Vergleich der Ist-Konfigurationen der Software keine Abweichung ergeben hat.
-
Hierdurch wird es möglich, ohne zusätzlichen kryptografischen Aufwand die Ist-Konfiguration vom Server verschlüsselt an das Kraftfahrzeug zu übermitteln.
-
In einer bevorzugten Ausführungsform wird die Ist-Konfiguration für die Überprüfung von dem Kraftfahrzeug an den Server übertragen. Diese Übertragung kann dann unverschlüsselt erfolgen, da eine Manipulation bei dieser Übertragung bei der späteren Überprüfung im Kraftfahrzeug auffallen würde.
-
In einer alternativen Ausführungsform lädt der Server die Ist-Konfiguration zur Überprüfung aus einer serverseitigen Datenbank. In diesem Fall findet bis auf die Anfrage zur Freischaltung keine unverschlüsselte Kommunikation statt. Dabei wird davon ausgegangen, dass der Kraftfahrzeughersteller die Ist-Konfiguration der Software aller seiner Kraftfahrzeuge kennt. Da aber nicht auszuschließen ist, dass die Software ohne Kenntnis des Kraftfahrzeugherstellers bereits verändert wurde, wird die Ist-Konfiguration, die bei der Überprüfung im Server zugrunde lag, auch wieder mit der Ist-Konfiguration im Kraftfahrzeug verglichen.
-
Der Server zur Freischaltung von Software umfasst Überprüfungsmittel, ob eine angefragte Software in Abhängigkeit einer Ist-Konfiguration der Software in einem Kraftfahrzeug freigeschaltet werden darf, sowie Mittel, mittels derer ein Freischaltcode berechenbar, verschlüsselbar und übertragbar ist, wobei die Mittel derart ausgebildet sind, dass der übertragene Freischaltcode die Ist-Konfiguration der Software umfasst.
-
Die Vorrichtung zur Freischaltung von Software in einem Kraftfahrzeug umfasst Mittel zum Anfragen einer freizuschaltenden Software in dem Kraftfahrzeug an einen Server, Mittel zum Entschlüsseln eines vom Server empfangenen Freischaltcodes, Mittel zum Vergleichen einer mit dem Freischaltcode übermittelten Ist-Konfiguration der Software mit einer vorhandenen Ist-Konfiguration von Software und Mittel zur Freischaltung der Software, die die Software freischalten, wenn die übermittelte Ist-Konfiguration der Software mit der vorhandenen Ist-Konfiguration von Software übereinstimmt.
-
Die Erfindung wird nachfolgend anhand eines bevorzugten Ausführungsbeispieles näher erläutert. Die Fig. zeigen:
- 1 einen schematischen Ablaufplan eines Verfahrens zur Freischaltung von Software in einem Kraftfahrzeug und
- 2 einen schematischen Ablaufplan eines alternativen Verfahrens zur Freischaltung von Software in einem Kraftfahrzeug.
-
In der 1 ist ein schematischer Ablauf des Verfahrens zur Freischaltung von Software dargestellt. Dabei sind ein Fahrzeug 1 und ein Server 2 über ein Kommunikationsmedium 3 miteinander verbunden, wobei das Kommunikationsmedium eine Busleitung oder eine Luftschnittstelle sein kann. In einem ersten Schritt erfolgt eine Anfrage für die Funktion X vom Fahrzeug 1 an den Server 2. Zusätzlich übermittelt das Fahrzeug 1 eine Ist-Konfiguration an den Server 2. Dies kann gleichzeitig mit der Anfrage für die Funktion X erfolgen oder aber nach einem Dialog zwischen Server 2 und Fahrzeug 1 nach Empfang der Anfrage für die Funktion X durch den Server 2. Im Server 2 erfolgt in Abhängigkeit der übermittelten Ist-Konfiguration eine Überprüfung, ob die Funktion X freigeschaltet werden darf. Ist die Prüfung erfolgreich, also die Freischaltung möglich, so wird ein Freischaltcode berechnet. In diesem berechneten Freischaltcode wird die Ist-Konfiguration eingefügt und dieser modifizierte Freischaltcode mittels einer Signatur verschlüsselt und über das Kommunikationsmedium 3 an das Fahrzeug 1 übertragen. Im Fahrzeug 1 wird die Signatur überprüft und aus dem modifizierten Freischaltcode die Ist-Konfiguration extrahiert. Diese übermittelte Ist-Konfiguration wird mit der Ist-Konfiguration der Software im Fahrzeug 1 verglichen. Sind die beiden Ist-Konfigurationen gleich, so wird mittels des Freischaltcodes die Funktion X freigeschaltet.
-
In der 2 ist ein alternatives Verfahren dargestellt, wobei nur die Unterschiede zum Verfahren gemäß 1 erläutert werden sollen. Hierbei wird die Ist-Konfiguration für die Überprüfung, ob die Funktion X freigeschaltet werden darf, aus einer eigenen Datenbank des Servers 2 abgerufen. Diese aus der Datenbank abgerufene Ist-Konfiguration wird dann zusammen mit dem Freischaltcode signiert an das Fahrzeug 1 übertragen und dort mit der Ist-Konfiguration der Software des Fahrzeugs 1 verglichen.
-
Es versteht sich, dass die Freischaltung nicht vorgenommen werden darf, wenn die Überprüfung der Signatur oder der Vergleich der Ist-Konfiguration eine Abweichung festgestellt hat.