-
Die
Erfindung betrifft ein Verfahren zum Schutz von Authentifizierungsalgorithmen
sowie ein Verfahren und eine Vorrichtung für den externen Zugriff auf
Steuergeräte
mit den in den Oberbegriffen der Patenansprüche genannten Merkmalen.
-
In
modernen Kraftfahrzeugen eingesetzte Steuergeräte kommunizieren über Bussysteme
wie CAN (Contoller-Area-Network) oder über Punkt zu Punkt-Verbindungen
wie die serielle K-Leitung miteinander. Ein Beispiel dafür ist die
Kommunikation zwischen einem Motor- und einem Getriebesteuergerät. Das Getriebesteuergerät greift,
beispielsweise während
eines Schaltvorganges, auf Drehzahlinformationen vom Motorsteuergerät zurück. Weiterhin werden
externe Zugriffe zu Prüfzwecken über Testersysteme
auf das jeweilige Steuergerät
sowie Messzugriffe bei der Steuergeräte- oder der Fahrzeugentwicklung über die
genannten Bussysteme durchgeführt.
Zugriffe auf ein programmierbares Steuergerät, insbesondere auf ein flashprogrammierbares
Steuergerät,
bedeuten jedoch, dass eine Möglichkeit
der unbefugten Manipulation der Software besteht. Daher wird der
Zugriff auf derartige Steuergeräte
häufig über Authentifizierungsmechanismen
reguliert.
-
Entsprechend
ist, wie in der
DE
100 08 974 A1 beschrieben, für einen Zugriff auf ein Steuergerät zunächst eine
Anmeldung notwendig, wodurch das Steuergerät über eine eingegebene Zugangsinformation
die Zugriffsrechte erkennt. Diese Zugriffsrechte können individuell
eingestuft werden. Entsprechend einer Ausführungsform wird ein Code vom Steuergerät angefordert
und auf Gültigkeit überprüft. Dazu
kann beispielsweise eine Zufallszahl im Steuergerät generiert
werden, die dann vom Zugreifenden in verarbeitender Weise, beispielsweise
anders codiert, zurückgereicht
wird. Im Steuergerät
wird diese Information überprüft und das
Zugriffsrecht zugeteilt oder verwehrt.
-
Bei
externen Zugriffen auf Steuergeräte
zu Prüfzwecken
und während
der Entwicklung der Kommunikation zwischen den eingesetzten Steuergeräten eines
modernen Kraftfahrzeuges können
diese Authentifizierungmechanismen jedoch kontraproduktiv wirken.
In solchen Fällen
würde das
Steuergerät, wenn über ein
Testersystem ohne entsprechenden Codeverarbeitungsmechanismus zu
Prüf- oder
Entwicklungszwecken zugegriffen werden soll, beispielsweise zum
Auslesen von Messwerten, dem Testersystem den Zugriff verwehren.
Eine Verteilung von Testersystemen mit entsprechendem Codeverarbeitungsmechanismus
durch den Steuergerätehersteller
an einen definierten Kreis von befugten Personen, wie beispielsweise
dem jeweiligen Kundendienst und der Entwicklungsabteilung des betreffenden
Fahrzeugherstellers kann eine Lösung
darstellen. Jedoch muss in diesem Fall der Authentifizierungsalgorithmus,
auf welchem der entsprechende Codeverarbeitungsmechanismus basiert,
geschützt werden
und weiterhin darf dieser Authentifizierungsalgorithmus nur mit
erheblichen Aufwand in Testersysteme integrierbar sein, deren Hersteller
keine Partner des Steuergeräteherstellers
sind.
-
Aufgabe
der vorliegenden Erfindung ist es, den für einen Zugriff auf ein Steuergerät notwendigen Authentifizierungsalgorithmus
vor unbefugter Benutzung zu schützen.
-
Erfindungsgemäß wird die
Aufgabe durch die kennzeichnenden Merkmale der Patentansprüche 1 bis
11 gelöst.
-
Die
Vorteile der Erfindung bestehen darin, dass ein Zugriff auf ein
Steuergerät
zu Prüfzwecken und
bei Entwicklungsarbeiten der Kommunikation zwischen den eingesetzten
Steuergeräten,
welche über
Authentifizierungsmechanismen verfügen, ungehindert möglich ist.
Durch eine Verschlüsselung des
Authentifizierungsalgorithmus ist eine unbeabsichtigte Weitergabe
des Authentifizierungsalgorithmus, beispielsweise durch den Diebstahl
von Testersystemen oder Abhören
einer elektronischen Nachricht, welche einen solchen Authentifizierungsalgorithmus
enthält,
unproblematisch. Dadurch, dass der Authentifizierungsalgorithmus
verschlüsselt
auf einem vom Testersystem unabhängigen
Rechner bei dem externen Partner des Steuergeräteherstellers vorliegt und
die Mittel zum Entschlüsseln
des Authentifizierungsalgorithmus auf der Seite des Testersystems,
in der Firmware integriert sind, ist der Schutz des Steuergerätes vor
einem unbefugten Zugriff hoch. Dritte können nur mit hohem technischen
Aufwand die Firmware des Testersystems auslesen und zusätzlich noch
in der gesamten Firmware nach den Mitteln zum Entschlüsseln des
Authentifizierung salgorithmus suchen und diese rekonstruieren. Für den Steuergerätehersteller
ist die Verteilung des Authentifizierungsalgorithmus als verschlüsselter
Code einer beliebigen Hochsprache, als verschlüsselter Code einer Scriptsprache
oder als verschlüsselter Code
einer Metasprache mit einem geringen Aufwand verbunden, da dieser
meist in dieser Form von Codierung bereits vorhanden ist und eine
Verschlüsslung
mittels eines asymmetrischen Verfahrens problemlos möglich ist.
Codes einer beliebigen Hochsprache, einer Script- oder einer Metasprache sind
weiterhin allgemeingültig
auf allen Mikro-Controller-Plattformen einsetzbar.
-
Weitere
vorteilhafte Ausgestaltungen sind in den Unteransprüchen beschrieben,
sie werden zusammen mit ihren Wirkungen erläutert.
-
Beispielhaft
wird hier die Anwendung der erfindungsgemäßen Verfahren und der erfindungsgemäßen Vorrichtung
dargestellt. In der dazugehörigen Figur
zeigt:
-
1:
eine Übersicht
der erfindungsgemässen
Verfahren und der Vorrichtung,
-
2:
eine Detaildarstellung der erfindungsgemässen Verfahren und der Vorrichtung.
-
Die
in modernen Kraftfahrzeugen eingesetzten Steuergeräte kommunizieren über Bussysteme wie
CAN (Contoller-Area-Network) oder über Punkt zu Punkt-Verbindungen wie
die serielle K-Leitung miteinander. Die Kommunikation wird durch
eine Software, welche in den beteiligten Steuergeräten integriert
ist, realisiert. Ein typisches Beispiel ist der Datenaustausch zwischen
einem Motor- und Getriebesteuergerät. Das Getriebesteuergerät greift,
beispielsweise während
eines Schaltvorganges, auf Drehzahlinformationen vom Motorsteuergerät zurück. Bei
der Entwicklung dieser Kommunikation treten Fehler auf, so dass
die Kommunikation nicht sofort korrekt funktioniert. Beispielsweise
dauert es zu lange, bis sich das Motorsteuergerät meldet, oder es sendet keine
Drehzahl-, sondern eine Temperaturinformation. Um diese Fehler zu
finden, werden Testersysteme bei den Partnern des Steuergeräteherstellers
eingesetzt. Weiterhin sind derartige Testersysteme bei der Lokalisierung
von Fehlern in Serienfahrzeugen im Einsatz.
-
Das
Testersystem kann die Kommunikation auf dem Bussystem verfolgen
und aufzeichnen oder Messwerte von einem Steuergerät anfordern.
Dabei wird über
Softwareprotokolle wie KWP2000 (Key-Word-Protokoll 2000) das Steuergerät angesprochen
und Werte von diesem angefordert. So kann beispielsweise das Testersystem
vom Motorsteuergerät
die aktuelle Drehzahl anfordern.
-
Eingesetzte
Steuergeräte
können
nun die Eigenschaft haben, ausschließlich über Authentifizierungsmechanismen
den Zugriff auf Steuergeräte
zu gestatten. In dem Fall würde
das Steuergerät,
wenn es über
das Testersystem angesprochen wird, mit einem „Fehler" antworten. Stets muss das Testersystem
eine Zugriffsanfrage zum Steuergerät senden. In Folge generiert
das Steuergerät
beispielsweise eine Zufallszahl, welche durch den im Testersystem
integrierten Authentifizierungsalgorithmus verarbeitet und codiert
zu dem Steuergerät
zurückgeführt wird. Im
Steuergerät
wird diese Information dann überprüft und bei
Schlüssigkeit
das Zugriffsrecht gewährt.
Das heißt,
ist die Zahl korrekt, kann das Testersystem Messwerte anfragen.
-
An
den Authentifizierungsalgorithmus zwischen Testersystem und Steuergerät werden
mehrere sich zum Teil widersprechende Anforderungen gestellt. Er
soll nur dem Steuergerätehersteller
bekannt sein, jedoch müssen
Partner des Steuergeräteherstellers,
wie etwa Hersteller von Testersystemen, Kundendienste oder die Entwicklungsabteilungen des
betreffenden Fahrzeugherstellers die Authentifizierungsalgorithmen
erhalten. Dabei sollen die Algorithmen trotzdem geheim sein.
-
Die
Verteilung der Authentifizierungsalgorithmen vom Steuergerätehersteller
zu dessen Partnern wie etwa Hersteller von Testersystemen, Kundendienste
oder die Entwicklungsabteilungen des betreffenden Fahrzeugherstellers
erfolgt gegenwärtig
in Form von DLL-Dateien (Dynamic-Link-Library). Es handelt sich
hierbei um Dateien mit Programmroutinen, die mehrere Programme nutzen
können,
welche diese Routinen nicht selbst besitzen müssen, also die auf diese Dateien
zum Zweck der Einsparung von Speicherplatz zurückgreifen können. Der sich bietende Schutz
ist mittelmäßig, da
unbefugte Dritte mit mittlerem technischen Aufwand die DLL-Dateien
disassemblieren und rekonstruieren können. Wenn ein Hersteller von
Testersystemen ein Testersystem entwickelt, welches die Verarbeitung
der DLL-Dateien unterstützt,
muss er in der Bediensoftware des Gerätes eine allgemein bekannte
Funktion aus der DLL-Datei aufrufen. Das Problem ist, dass derartige DLL-Dateien
von den meisten Testersystemen auf Basis von Mikro-Controller-Plattformen
nicht verarbeitet werden können.
-
Erfindungsgemäß werden
dazu folgende Lösungen
vorgeschlagen. Wie in 1 und 2 dargestellt,
wird bei dem Steuergerätehersteller
A ein unverschlüsselter
Authentifizierungsalgorithmus 1 als Code einer beliebigen
Hochsprache, als Code einer Script- oder als Code einer Metasprache
erzeugt, welcher anschließend,
mit Mitteln zum Verschlüsseln 2,
wie einem öffentlichen
Schlüssel
eines bekannten asymmetrischen Verschlüsslungsverfahrens, verschlüsselt wird.
Der verschlüsselte
Authentifizierungsalgorithmus 3 wird auf einem vom Testersystem D
unabhängigen
Rechner 4 beim Partner des Steuergeräteherstellers B abgelegt. Die
Mittel zum Entschlüsseln 7,
wie ein privater Schlüssel
eines bekannten asymmetrischen Verschlüsselungsverfahrens, werden
auf der Seite des Testersystems D in der Firmware C implementiert.
-
Beim
Einsatz des Testersystems D bei einem Partner des Steuergeräteherstellers
B wird zunächst an
einem vom Testersystem D unabhängigen
Rechner 4 der verschlüsselte
Authentifizierungsalgorithmus 3 auf ein Wechselspeichermedium 5 geschrieben.
Das Wechselspeichermedium 5 wird mit dem Testersystem D
verbunden. Zur Laufzeit, das heißt während des Zugriffs des Testersystems
D auf das Steuergerät 9,
wird der sich auf dem Wechselspeichermedium 5 befindende
verschlüsselte
Authentifizierungsalgorithmus 3 mit den Mittel zum Entschlüsseln 7,
wie einem privaten Schlüssel
eines bekannten asymmetrischen Verschlüsselungsverfahrens entschlüsselt und
mit einem Interpreter 8 wird der jeweilige Code ausgeführt. Es
ist auch möglich,
dass der jeweilige Code mittels eines Compilers 10 übersetzt und
dann ausgeführt
wird. Nach erfolgreichem Ablauf der Authentifizierung kann der Zugriff
auf das Steuergerät 9 erfolgen.
Nach dem Zugriff wird das Wechselspeichermedium 5 entnommen.
-
Erfindungsgemäß werden
auf diese Weise die sich zum Teil widersprechende Anforderungen
an den Authentifizierungsalgorithmus gelöst. Der unverschlüsselte Authentifizierungsalgorithmus 1 liegt
nur bei dem Steuergerätehersteller
A vor. Bei dem Hersteller von Testersystemen D werden lediglich
die Mittel zum Entschlüsseln 7,
wie ein privater Schlüssel eines
bekannten asymmetrischen Verschlüsselungsverfahrens auf
der Seite des Testersystems D in der Firmware C implementiert. Der
unverschlüsselte
Authentifizierungsalgorithmus 1 und der verschlüsselte Authentifizierungsalgorithmus 3 liegen
ihm nicht vor. Beim Einsatz des Testersystems D bei einem Partner des
Steuergeräteherstellers
B wie dem Kundendienst oder der Entwicklungsabteilung des betreffenden
Fahrzeugherstellers liegt nur der verschlüsselte Authentifizierungsalgorithmus 3 vor.
Die Entschlüsselung
des verschlüsselten
Authentifizierungsalgorithmus 3 findet ausschließlich in
Verbindung mit dem Testersystem D während der Laufzeit statt.
-
- A
- Steuergerätehersteller
- B
- Partner
des Steuergeräteherstellers
- C
- Firmware
- D
- Testersystem
- 1
- unverschlüsselter
Authentifizierungsalgorithmus
- 2
- Mittel
zum Verschlüsseln, öffentlicher
Schlüssel
eines asymmetrischen Ver
-
- schlüsslungsverfahrens
- 3
- verschlüsselter
Authentifizierungsalgorithmus
- 4
- unabhängiger Rechner
- 5
- Wechselspeichermedium
- 6
- Mikrocontroller
des Testersystems
- 7
- Mittel
zum Entschlüsseln,
privater Schlüssel eines
bekannten asymmetri
-
- schen
Verschlüsselungsverfahrens
- 8
- Interpreter
- 9
- Steuergerät
- 10
- Compiler