-
Die
vorliegende Erfindung betrifft ein Verfahren, um eine Zeichenkette
für ein
Fahrzeug fälschungssicher
zu codieren, sowie ein entsprechend ausgestaltetes Steuergerät und ein
entsprechend ausgestaltetes Fahrzeug.
-
Nach
dem Stand der Technik wird die Eingabe nicht flüchtiger Daten und Parameter
in ein Rechensystem eines Fahrzeugs meist nicht kryptographisch
abgesichert. Es sind allerdings auch Konzepte bekannt, nach welchen
alle nicht flüchtigen
Daten und Parameter in einem Rechensystem kryptographisch abgesichert
sind, so dass kein Teil dieser nicht flüchtigen Daten und Parameter
unbemerkt geändert werden
kann.
-
Die
Absicherung aller nicht flüchtigen
Daten und Parameter in einem Rechensystem ist allerdings dann nachteilig,
wenn es erlaubt sein soll, dass bestimmte Bereiche der nicht flüchtigen
Daten und Parameter geändert
werden dürfen.
-
Daher
ist es die Aufgabe der vorliegenden Erfindung, den vorab genannten
Nachteil zu beseitigen, so dass bestimmte Bereiche der in ein Rechensystem
eines Fahrzeugs eingegebenen nicht flüchtigen Daten und Parameter
verändert
werden dürfen, während die
restlichen Bereiche dieser nicht flüchtigen Daten und Parameter
vor einer nicht autorisierten Veränderung geschützt sind.
-
Erfindungsgemäß wird diese
Aufgabe durch ein Verfahren zur Codierung einer Zeichenkette für ein Fahrzeug
nach Anspruch 1, ein Steuergerät
für ein
Fahrzeug nach Anspruch 10 und ein Fahrzeug nach Anspruch 13 gelöst. Die
abhängigen
Ansprüche definieren
bevorzugte und vorteilhafte Ausführungsformen
der vorliegenden Erfindung.
-
Im
Rahmen der vorliegenden Erfindung wird ein Verfahren zur Codierung
einer Zeichenkette für ein
Fahrzeug bereitgestellt. Dabei wird zu der Zeichenkette nach einer
vorbestimmten Vorschrift (beispielsweise mittels eines signiert
Schlüssels)
von einem Steuergerät
des Fahrzeugs eine digitale Signatur erzeugt oder bestimmt. Die
digitale Signatur wird dabei derart bestimmt, dass vorbestimmte
oder ungeschützte
Bereiche der Zeichenkette trotzdem veränderbar sind, ohne dass dies
eine Auswirkung auf die Signatur nach sich zieht, was im Folgenden
genauer erläutert
wird.
-
Angenommen
für die
Zeichenkette wird nach der vorbestimmten Vorschrift eine erste digitale
Signatur in einem ersten Schritt erzeugt. Anschließend werden
Veränderungen
ausschließlich
in den vorbestimmten oder ungeschützten Bereichen der Zeichenkette
vorgenommen. Darauf folgend wird in einem zweiten Schritt wiederum
eine zweite digitale Signatur von der derart veränderten Zeichenkette nach der
vorbestimmten Vorschrift bestimmt. Da sich Veränderungen in den vorbestimmten
Bereichen der Zeichenkette erfindungsgemäß nicht auf die Signatur auswirken,
ist die erste digitale Signatur gleich der zweiten digitalen Signatur.
-
Die
vorliegende Erfindung bietet die Möglichkeit, eine Zeichenkette,
beispielsweise nicht flüchtige Daten
und Parameter eines Steuergeräts,
kryptographisch abzusichern, indem die gesamte Zeichenkette signiert
bzw. mit einer digitalen Signatur versehen wird, wobei aber dennoch
definierte Bereiche geschützt
sind bzw. nicht veränderbar
bleiben und andere vorbestimmte Bereiche verändert werden können. Durch
die erfindungsgemäße kryptographische Absicherung
wird vorteilhafterweise erkannt, wenn Daten in den geschützten Bereichen
von unbefugten Personen illegal geändert werden.
-
Damit
die vorbestimmten oder nicht geschützten Bereiche keinen Einfluss
bei der Erstellung der digitalen Signatur besitzen, können die
vorbestimmten Bereiche der Zeichenkette vor der Erzeugung der digitalen
Signatur mit vorbestimmten Zeichen, beispielsweise entsprechend
vielen ,0'en, überschrieben
werden.
-
Dadurch
ist sichergestellt, dass Veränderungen
in den vorbestimmten Bereichen zu keiner Änderung der digitalen Signatur
führen.
-
Eine
weitere Möglichkeit
besteht darin, dass die vorbestimmten Bereiche vor der Erzeugung
der Signatur aus der Zeichenkette entfernt werden und anschließend die
digitale Signatur nur für
die derart verkürzte
Zeichenkette erzeugt wird.
-
Auch
bei dieser Möglichkeit
ist sichergestellt, dass Veränderungen
in den vorbestimmten Bereichen zu keiner Änderung der digitalen Signatur
führen.
-
Die
vorbestimmten Bereiche können
dabei derart festgelegt werden, dass für jeden vorbestimmten Bereich
jeweils eine Anfangsadresse und eine Endadresse dieses entsprechenden
vorbestimmten Bereichs definiert ist. Natürlich ist es auch möglich, dass
anstelle der Endadresse die jeweilige Länge (in Zeichen) des entsprechenden
vorbestimmten Bereichs definiert ist.
-
Dadurch
können
die vorbestimmten Bereiche sehr flexibel definiert werden, da eine
beliebige Anzahl von vorbestimmten Bereichen und für jeden vorbestimmten
Bereich eine beliebige Länge
bzw. Größe definiert
werden kann.
-
Eine
weitere Möglichkeit
zur Definition oder Festlegung der vorbestimmten Bereiche besteht
darin, dass die vorbestimmten Bereiche mittels eines Bitmusters,
welches eine der Zeichenkette entsprechenden Länge aufweist, festgelegt werden.
Dabei weist ein Bit des Bitmusters beispielsweise eine ,1' auf, wenn es ein
Zeichen innerhalb eines der vorbestimmten Bereiche der Zeichenkette
markiert, und eine ,0' auf,
wenn es ein Zeichen innerhalb der Zeichenkette außerhalb
der vorbestimmten Bereiche markiert.
-
Beispielsweise
kennzeichnet das Bitmuster „0011000111” eine Zeichenkette
der Länge
10, welche zwei vorbestimmte Bereiche aufweist. Dabei umfasst ein
erster vorbestimmter Bereich das dritte und vierte Zeichen der Zeichenkette
und ein zweiter vorbestimmter Bereich umfasst das achte bis zehnte Zeichen
der Zeichenkette.
-
Auch
die Definition der vorbestimmten Bereiche mittels eines Bitmusters
erlaubt eine sehr flexible Definition dieser vorbestimmten Bereiche
innerhalb der Zeichenkette.
-
Eine
Information zur Bestimmung oder Festlegung der vorbestimmten Bereiche,
also beispielsweise die Anfangs- und Endadressen der vorbestimmten
Bereiche oder das Bitmuster, kann dabei der Zeichenkette hinzugefügt werden,
bevor die digitale Signatur bestimmt wird. Dabei ist zu beachten, dass
diese Information in einem geschützten
Bereich der Zeichenkette hinterlegt wird, welcher keine Änderung
erfährt.
-
Indem
die Informationen zur Bestimmung der vorbestimmten Bereiche außerhalb
der vorbestimmten Bereiche zu der Zeichenkette hinzugefügt wird,
bevor die digitale Signatur der Zeichenkette bestimmt wird, kann
die Bestimmung der vorbestimmten Bereiche vorteilhafterweise nicht
verändert
werden, ohne dass diese Veränderung
zu einer Veränderung
der digitalen Signatur führt.
-
Bei
einer bevorzugten erfindungsgemäßen Ausführungsform
wird der Zeichenkette zumindest eine Information, welche aus einer
Informationsmenge ausgewählt
ist, außerhalb der
vorbestimmten Bereiche hinzugefügt,
bevor die digitale Signatur bestimmt wird. Dabei umfasst diese Informationsmenge folgende
Elemente:
- • Eine
eindeutige Identifikation (VIN) des Fahrzeugs.
- • Eine
Seriennummer eines Rechners oder Steuergeräts des Fahrzeugs, in welchem
die Zeichenkette abgespeichert ist.
- • Eine
Seriennummer eines Prozessors eines Rechners oder Steuergeräts des Fahrzeugs,
in welchem die Zeichenkette abgespeichert ist.
- • Eine
Benutzerkennung einer zum Bedienen oder Betreiben des Fahrzeugs
berechtigten Person.
- • Ein
Passwort oder eine PIN einer zum Bedienen oder Betreiben des Fahrzeugs
berechtigten Person.
-
Indem
die entsprechende Information in einem durch die digitale Signatur
geschützten
Bereich (d. h. außerhalb
der vorbestimmten Bereiche) der Zeichenkette aufgenommen ist, wird
eine Bindung an das Fahrzeug, an das Steuergerät und/oder an die Bedienperson
vorgenommen. Mit anderen Worten kann leicht erfasst werden, ob die
Zeichenkette außerhalb
eines berechtigten Fahrzeugs oder Steuergeräts oder von einer nicht berechtigten
Person eingesetzt wird.
-
Erfindungsgemäß ist es
auch möglich,
dass die Information zum Bestimmen der vorbestimmten Bereiche in
einem gegen Überschreiben
gesicherten Speicherbereich des Steuergeräts abgelegt wird, so dass hardwaremäßig oder
softwaremäßig durch
das Steuergerät
verhindert wird, dass diese Information und damit die vorbestimmten
Bereiche verändert werden.
-
Gemäß einer
weiteren erfindungsgemäßen Ausführungsform
ist es möglich,
dass die digitale Signatur abgespeichert wird, nachdem sie für die in
das Steuergerät
eingebrachte Zeichenkette erzeugt wurde. Anschließend wird
periodisch, beispielsweise bei jedem Einschalten einer Zündung des
Fahrzeugs, überprüft, ob die
abgespeicherte Signatur zu der dann jeweils aktuellen Zeichenkette
passt.
-
Durch
die periodische Überprüfung des
Zusammenpassens der aktuellen Zeichenkette und der abgespeicherten
digitalen Signatur wird eine unerlaubte Veränderung, d. h. eine Veränderung
der Zeichenkette außerhalb
der vorbestimmten Bereiche, rasch erfasst, so dass dann eine entsprechende
Reaktion, beispielsweise eine Ausgabe einer Warnung oder eine Deaktivierung
entsprechender Funktionen des Fahrzeugs, erfolgen kann.
-
Im
Rahmen der vorliegenden Erfindung wird auch ein Steuergerät für ein Fahrzeug
bereitgestellt, welches einen Prozessor und einen Speicher umfasst.
Dabei ist das Steuergerät
derart ausgestaltet, dass das Steuergerät in der Lage ist, eine digitale
Signatur für
eine Zeichenkette nach einer vorbestimmten Vorschrift zu bestimmen.
Das Steuergerät
bestimmt dabei die digitale Signatur derart, dass vorbestimmte Bereiche
der Zeichenkette verändert
werden können,
ohne dass sich dies auf die digitale Signatur der derart veränderten
Zeichenkette auswirken würde.
Mit anderen Worten wäre
eine weitere Signatur, welche für
eine in den vorbestimmten Bereichen veränderte Zeichenkette nach der
vorbestimmten Vorschrift erzeugt werden würde, gleich der digitalen Signatur,
welche für
die Zeichenkette vor der Veränderung
nach der vorbestimmten Vorschrift erzeugt wurde.
-
Die
Vorteile des erfindungsgemäßen Steuergeräts entsprechen
im Wesentlichen den Vorteilen des erfindungsgemäßen Verfahrens, welche vorab im
Detail ausgeführt
sind, so dass hier auf eine Wiederholung verzichtet wird.
-
Bei
einer bevorzugten erfindungsgemäßen Ausführungsform
speichert das Steuergerät
die Zeichenkette derart in dem Speicher ab, dass die geschützten Bereiche
der Zeichenkette, d. h. die Bereiche der Zeichenkette außerhalb
der vorbestimmten Bereiche, in einem Abschnitt des Speichers des Steuergeräts abgelegt
sind, welche gegen ein Überschreiben
geschützt
sind.
-
Dadurch
wird das Überschreiben
der geschützten
Bereiche der Zeichenkette nicht nur durch die digitale Signatur,
sondern auch durch das Steuergerät
verhindert.
-
Schließlich wird
im Rahmen der vorliegenden Erfindung auch ein Fahrzeug bereitgestellt,
welches ein vorab ausgeführtes
Steuergerät
umfasst.
-
Im
Rahmen der vorliegenden Erfindung gibt es folgende Schutzmöglichkeiten:
- • Informationen über die
vorbestimmten bzw. geschützten
Bereiche werden zusammen mit der Signatur an das Steuergerät übertragen.
- • Die
Zeichenkette wird zusammen mit der Signatur an das Steuergerät übertragen.
Dabei wurde die Signatur ausgehend von der gesamten Zeichenkette
gebildet, schützt
allerdings nur die geschützten
Bereiche gegenüber
eine illegalen Veränderung.
- • Die
Zeichenkette wird zusammen mit der Signatur an das Steuergerät übertragen.
Dabei wurde die Signatur nur ausgehend von den geschützten Bereichen
gebildet und schützt
demnach nur diese Bereiche gegenüber
einer illegalen Veränderung.
-
Die
vorliegende Erfindung bietet die Möglichkeit, die Zeichenkette
sehr flexibel in geschützte
und ungeschützte
Bereiche zu unterteilen, so dass vorteilhafterweise sehr einfach
auf entsprechende Anforderungen reagiert werden kann. Welche Daten nämlich kryptographisch
zu schützen
sind, kann von verschiedenen Umständen abhängig seien. Die Festlegung
der geschützten
und nicht geschützten
Bereiche kann beispielsweise vom Land abhängen, in welchem das Fahrzeug
oder das Steuergerät
verkauft wird. Darüber
hinaus kann die Festlegung der geschützten und der nicht geschützten Bereiche
zeitlich begrenzt sein, wenn z. B. ein Motortuning während der
Garantiezeit zu unterbinden ist.
-
Die
vorliegende Erfindung ist insbesondere geeignet, um eine Veränderung
nicht flüchtiger
Daten und Parameter, beispielsweise eines Programmcodes, eines Steuergeräts eines
Fahrzeugs zu verhindern, wobei dennoch vorbestimmte Bereiche dieser
Daten und Parameter beliebig geändert
werden können.
Selbstverständlich
ist die vorliegende Erfindung nicht auf diesen bevorzugten Anwendungsbereich
beschränkt,
sondern kann auch außerhalb
der Fahrzeugtechnik eingesetzt werden, um geschützte Bereiche einer beliebigen
Zeichenkette vor einer Veränderung
zu schützen,
während
ungeschützte
Bereiche beliebig geändert
werden können.
-
Im
Folgenden soll die vorliegende Erfindung anhand bevorzugter Ausführungsformen
mit Bezug zu den Figuren im Detail erläutert werden.
-
In 1a ist
dargestellt, wie die digitale Signatur von einem Fahrzeughersteller
für eine
Zeichenkette bestimmt wird und wie ein erfindungsgemäßes Steuergerät überprüft, ob eine
Zeichenkette mit einer vorgegebenen Signatur zusammenpasst.
-
In 1b dargestellt,
wie das erfindungsgemäße Steuergerät überprüft, ob eine
veränderte
Zeichenkette mit einer vorgegebenen Signatur zusammenpasst.
-
2 stellt
schematisch ein erfindungsgemäßes Fahrzeug
mit einem erfindungsgemäßen Steuergerät dar.
-
In 1a ist
dargestellt, wie von einem Fahrzeughersteller eine Signatur 6 von
einer Zeichenkette 7 erzeugt wird und wie innerhalb eines
Steuergeräts
eines Fahrzeugs überprüft wird,
ob eine aktuelle Zeichenkette 7 mit einer vorgegebenen
Signatur 6 zusammenpasst.
-
Dabei
ist eine Zeichenkette 8 s_codierung, welche einem in das
Steuergerät
einzubringenden Daten- und/oder Parameterstring entspricht, in einen geschützten Bereich 2 und
einen nicht geschützten Bereich 1 unterteilt.
Die Anfangsadresse 3 des vorbestimmten bzw. nicht geschützten Bereichs 1 ist
dabei ,4', da das
erste Zeichen des nicht geschützten
Bereichs 1 auf der Bitposition 4 der Zeichenkette 8 s_codierung
angeordnet ist, wenn man davon ausgeht, dass das erste Zeichen der
Zeichenkette 8 s_codierung auf der Bitposition 0 der Zeichenkette 8 s_codierung
angeordnet ist. Dementsprechend ist die Endadresse 4 des
nicht geschützten
Bereichs die ,7',
so dass sich als Adressinformation für die nicht geschützten Bereiche
(hier den nicht geschützten Bereich)
,47' ergibt. Diese
Adressinformation wird der ursprünglichen
Zeichenkette 8 hinten angefügt, wodurch sich die Zeichenkette 7 s_codierung_adressen ergibt.
-
Zur
Erzeugung der digitalen Signatur 6 werden alle Zeichen
des nicht geschützten
Bereichs 1 der Zeichenkette 7 s_codierung_adressen
vorher mit einem festgelegten Zeichen, hier mit dem Zeichen ,0', überschrieben,
wodurch sich die temporäre
Zeichenkette s_codierung_adressen_temp ergibt. Für diese temporäre Zeichenkette s_codierung_adressen_temp
wird die digitale Signatur 6 berechnet oder bestimmt. Dabei
können
je nach Stringlänge
der temporären
Zeichenkette s_codierung_adressen_temp Hashverfahren und Padding
bei der Erzeugung der digitalen Signatur 6 eingesetzt werden.
-
Die
Zeichenkette 7 s_codierung_adressen wird als Daten- und/oder
Parameterstring zusammen mit der Signatur 6 dem Steuergerät zugeführt. Zur
Signaturüberprüfung, d.
h. zur Überprüfung, ob
die aktuelle Zeichenkette mit der vorgegebenen Signatur 6 zusammenpasst,
ersetzt das Steuergerät
jedes Zeichen in dem nicht geschützten
Bereich 1 der Zeichenkette mit einer ,0' und bestimmt ausgehend von der vorgegebenen
Signatur die durch die Signatur verschlüsselte Zeichenkette. Nur wenn
die aktuelle Zeichenkette, bei welcher der nicht geschützte Bereich 1 mit
,0' überschrieben
ist, der durch die Signatur verschlüsselten Zeichenkette entspricht,
akzeptiert das Steuergerät
diese Zeichenkette und damit den darin enthaltenen Daten- und/oder
Parameterstring.
-
In 1b ist
dargestellt, wie das Steuergerät überprüft, ob eine
vorgenommene Veränderung
der Zeichenkette 7 von dem Steuergerät akzeptiert wird. Dabei ersetzt
das Steuergerät
wiederum jedes Zeichen in dem nicht geschützten Bereich 1 der
geänderten
Zeichenkette mit einem festgesetzten Zeichen, hier mit einer ,0', und bestimmt ausgehend
von der vorgegebenen Signatur die durch die Signatur verschlüsselte Zeichenkette.
Nur wenn die geänderte Zeichenkette,
bei welcher der nicht geschützte
Bereich 1 mit ,0' überschrieben
ist, der durch die Signatur 6 verschlüsselten Zeichenkette entspricht,
akzeptiert das Steuergerät
die geänderte
Zeichenkette und damit den darin enthaltenen geänderten Daten- und/oder Parameterstring.
-
Durch
die vorliegende Erfindung können
Daten in den vorbestimmten Bereichen 1 auch ohne Kenntnis
oder Genehmigung des Fahrzeugherstellers beispielsweise in einer
Werkstatt geändert
werden. Dabei benötigt
die Werkstatt zur Durchführung dieser Änderungen
keine Online-Verbindung mit dem Hersteller. dagegen können die
Daten in den geschützten
Bereichen nur mit der Erlaubnis des Fahrzeugherstellers verändert werden.
Es sei daraufhingewiesen, dass die vorliegende Erfindung vorteilhafterweise
auch ermöglicht,
dass die geschützten
Bereiche (genauer die Menge der geschützten Bereiche einschließlich der
Grenzen der geschützten
Bereiche) erst nach einem Verbau des Steuergeräts neu definiert werden können, wobei
dazu allerdings die Erlaubnis des Fahrzeugherstellers und die Erzeugung
einer neuen digitalen Signatur notwendig ist.
-
In 2 ist
ein erfindungsgemäßes Fahrzeug 10 dargestellt,
welches ein erfindungsgemäßes Steuergerät 11 und
eine Zündung 14 umfasst.
Das Steuergerät 11 umfasst
seinerseits einen Prozessor 12 und einen Speicher 13.
Das Steuergerät
ist derart ausgestaltet, dass es immer dann, wenn die Zündung 14 des
Fahrzeugs 10 aktiviert wird, anhand des in 1 dargestellten
Verfahrens überprüft, ob sein Programmcode
und seine Daten, welche in dem Speicher 13 abgespeichert
sind und die Zeichenkette 8 bilden, authentisch und integer
sind.
-
- 1
- vorbestimmter
Bereich
- 2
- geschützter Bereich
- 3
- Anfangsadresse
- 4
- Endadresse
- 5
- vorbestimmtes
Zeichen
- 6
- Signatur
- 7
- Zeichenkette
- 10
- Fahrzeug
- 11
- Steuergerät
- 12
- Prozessor
- 13
- Speicher
- 14
- Zündung