-
Die
vorliegende Erfindung betrifft ein Verfahren zum Absichern eines
elektronischen Gerätes
gemäß dem Oberbegriff
des angehängten
Anspruchs 1. Die Erfindung betrifft des Weiteren ein System gemäß dem Oberbegriff
des angehängten
Anspruchs 15. Die Erfindung betrifft des Weiteren ein elektronisches
Gerät gemäß dem Oberbegriff
des angehängten
Anspruchs 26. Die Erfindung betrifft des Weiteren ein Programm gemäß dem Oberbegriff
des angehängten
Anspruchs 25 sowie ein Speichermittel gemäß dem Oberbegriff des angehängten Anspruchs 30.
-
Eine
Vielzahl von elektronischen Geräten
arbeitet mit programmierbaren Steuermitteln wie beispielsweise Mikroprozessoren,
Mikrosteuerungen, programmierbaren Logikschaltkreisen und/oder anwendungsspezifischen
programmierbaren integrierten Schaltungen. Solche elektronischen
Geräte
enthalten gespeicherte Software, die aus einem oder mehreren Programmen
besteht, die beispielsweise Programmbefehle enthalten, die für den Betrieb
des elektronischen Gerätes
benötigt
werden. Zum Speichern solcher Software wird ein Speicher verwendet, der
wenigstens zum Teil ein nichtflüchtiger
Speicher ist, d. h. der Speicherinhalt wird auch dann behalten, wenn
die Betriebsspannung des Speichers abgeschaltet wird. Zu solchen
Speichern gehören
beispielsweise ein Festspeicher (ROM), ein programmierbarer ROM
(PROM) und ein elektronisch löschbarer
PROM (EEPROM). Der Speicher ist normalerweise wenigstens zum Teil
in dem elektronischen Gerät
integriert, aber die Speicherkapazität kann außerdem bei vielen Anwendungen
mittels beispielsweise einer Speichererweiterungskarte erhöht werden. Eine
solche Speichererweiterungskarte ist die sogenannte Flash-Speicherkarte.
Der Flash-Speicher ist eine Form eines EEPROM-artigen Spei chers,
dessen Inhalt durch elektrische Programmierung geändert werden
kann. Der Inhalt des Flash-Speichers bleibt auch nach dem Abschalten
der Betriebsspannung erhalten. Mittels eines solchen Erweiterungsspeichers
ist es einfach, das elektronische Gerät mit neuer Software, mit Speicherkapazität zum Speichern
von beispielsweise Fotos in einer Digitalkamera, zum Einstellen
von Zugangsrechten beispielsweise in einer Mobilstation usw. auszustatten.
Die Installation von Software in einem elektronischen Gerät kann auch
in einer an sich bekannten Weise mittels anderer Speichermittel,
wie beispielsweise einer Diskette, einer CD-ROM oder einer DVD,
ausgeführt werden.
-
Es
ist relativ einfach, Software zu kopieren, die auf Speichermitteln
gespeichert ist, weshalb Software-Anbieter verschiedene Verfahren
entwickelt haben, die Nutzung von kopierter Software zu verhindern.
Ein solches Verfahren ist die Verwendung einer Produkt-ID oder dergleichen.
D. h. beim Starten des Programms muss der Benutzer diese Produkt-ID
in das elektronische Gerät
eingeben, bevor mit dem Programm gearbeitet werden kann. Ein Problem
bei dieser Verfahrensweise ist jedoch, dass der Benutzer beim Kopieren
des Programms diese Produkt-ID vom Eigentümer der Originalsoftware erhalten
hat, so dass anschließend
auch das kopierte Programm genutzt werden kann. Andererseits kann
der Benutzer der kopierten Software, selbst wenn ihm die Produkt-ID
nicht bekannt ist, versuchen, die Struktur des Programmschutzes
herauszufinden, beispielsweise durch Produktfunktionsanalyse (Reverse
Engineering) oder Debugging, wobei der Objektcode des Programms
in den Quellcode umgewandelt wird. Das heißt, es kann dem Benutzer gelingen,
den Kopierschutz zu entschlüsseln
und das Programm zu modifizieren, beispielsweise so, dass der Kopierschutz ausgeschaltet
ist oder dass der Benutzer die benötigte Produkt-ID anhand des
Objektcodes ableitet. Um ein solches Vorgehen zu erschweren, wurden
Programme entwickelt, bei denen, während das Programm aktiv ist,
in gewissen Abständen überprüft wird, dass
das Programm nicht manipuliert wurde. Das heißt, das bloße Entschlüsseln des Kopierschutzes beim
Booten ermöglicht
nicht zwangsläufig
die Nutzung der kopierten Software über einen längeren Zeitraum, es sei denn,
der Benutzer ist in der Lage, die Struktur eines solchen Kopierschutzes
zu ermitteln.
-
Es
ist bekannt, ein bestimmtes Programm eindeutig mit einem bestimmten
Gerät zu
verknüpfen,
dergestalt, dass das Programm nicht auf einem anderen Gerät benutzt
werden kann. Dies kann beispielsweise geschehen, indem die Software
anhand der hardwarespezifischen Seriennummer modifiziert wird oder
indem ein Installationsprogramm mitgeliefert wird, das nur auf einem
einzigen Gerät
in Verbindung mit der hardwarespezifischen Seriennummer funktionstüchtig ist.
Diese Lösungen
haben den Nachteil, dass dieser Schutz durch Modifizieren entweder
der Software oder der Hardware geknackt werden kann.
-
Um
das Debugging zu erschweren, kann versucht werden, wenigstens den
Kopierschutzteil und/oder das Speichern der Produkt-ID in Verbindung
mit dem Programmcode zu verkomplizieren, wodurch es schwieriger
wird, den Kopierschutz zu knacken. Eine solche Lösung wird beispielsweise in der
internationalen Patentanmeldung WO 00/77597 vorgeschlagen.
-
Das
Patent
US 5,131,091 stellt
ein Verfahren vor, wobei ein Programm, das auf einer Speicherkarte
gespeichert ist, durch Verwürfeln
des Inhalts des Programmcodes mit XOR-Operationen geschützt wird. Beim Verwürfeln wird
eine Verschlüsselungsbit-Zeichenkette,
die in einem nichtflüchtigen
Speicher gespeichert ist, verwendet, wodurch das Herausfinden der
Zeichenkette so weit wie möglich
erschwert ist. Auf Speicherkarten, die verschiedenen Benutzern übergeben
werden, werden verschiedene Verschlüsselungsbit-Zeichenketten verwendet.
-
Ein
Benutzer, der die Software rechtmäßig erworben hat, muss sich
möglicherweise
auch bezüglich
der Herkunft der Software absichern, weil in einigen Fällen ein
Dritter versuchen könnte,
Versionen herzustellen, die Modifizierungen von Originalprogrammen
darstellen, und diese Modifizierungen als Originalprogramme auf
den Markt zu bringen. Eine solche Software könnte beispielsweise einen eingebauten
Virus enthalten, oder die Software ist mit einer sogenannten Hintertür versehen,
durch die sich der Hersteller der modifizierten Software sogar Zugang
zum lokalen Netzwerk einer Firma verschaffen könnte, die diese modifizierte
Software installiert hat. In einigen Fällen ist die modifizierte Software
mit der Fähigkeit
ausgestattet, zum Beispiel Benutzerkennwörter und Passwörter, die
der Benutzer in das elektronische Gerät eingibt, beispielsweise über ein
Datennetz wie zum Beispiel das Internet an den Hersteller der modifizierten
Software weiterzuleiten, ohne dass der Benutzer dies bemerkt. Um
die Herkunft der Software abzusichern, kann das Programm mit einer digitalen
Signatur versehen werden, anhand derer der Benutzer die Authentizität der Originalsoftware feststellen
kann.
-
Zusätzlich zum
Kopierschutz von Programmen müssen
auch andere Informationen geschützt werden,
die in Verbindung mit elektronischen Geräten gespeichert werden, um
Missbrauch zu verhindern. Beispielsweise ist die Beschränkung von
Zugangsrechten für
einen oder mehrere bestimmte Benutzer in Verbindung mit einigen
elektronischen Geräten
so geregelt, dass der Benutzer eine persönliche SmartCard besitzt, wobei
der Benutzer, um das elektronische Gerät zu benutzen, die SmartCard
in einen Kartenanschluss, der sich in dem elektronischen Gerät befindet,
einschiebt. Zur zusätzlichen
Authentifizierung kann auch ein Benutzerkennwort verwendet werden,
das der Benutzer beim Einschalten des elektronischen Gerätes eingeben
muss, bevor er mit dem elektronischen Gerät arbeiten kann. Ein solches
Verfahren wird beispielsweise bei vielen Mobilkommunikationsnetzen
angewen det, wie beispielsweise dem GSM-Mobilkommunikationsnetz und
dem UMTS-Mobilkommunikationsnetz. In eine Mobilstation, die in einem
solchen Mobilkommunikationsnetz verwendet wird, wird eine SmartCard
eingeführt,
die man beim GSM-System ein SIM (Subscriber Identity Module) und
beim UMTS-System ein USIM (Universal Subscriber Identity Module)
nennt. Bei einer solchen SmartCard hat der Service-Provider des
Mobilkommunikationsnetzes bereits bestimmte Teilnehmerspezifikationen,
wie beispielsweise den International Mobile Subscriber Identifier
(IMSI), eingestellt. Das Benutzerkennwort wird ebenfalls auf dieser
SmartCard gespeichert, wobei die SmartCard das Benutzerkennwort
beim Einschalten der Mobilstation überprüft.
-
Jedoch
beheben die oben genannten Lösungen
nicht das Problem, dass ein Dritter die Software so modifiziert,
dass er sie entweder in einem anderen Gerät selbst benutzen kann, oder
dass er die Funktionsweise des Programms in diesem Gerät verändert. Ein
solches Problem ist beispielsweise in Verbindung mit Mobilstationen
entstanden, wobei es möglich
geworden ist, die Dienste eines Mobilkommunikationsnetzes kostenfrei
in Anspruch zu nehmen, indem eine Kopie einer Mobilstation hergestellt
wird. Die Software und die International Mobile Equipment Identity
(IMEI) der kopierten Mobilstation sind mit denen in der originalen
Mobilstation identisch. Es wird auch eine Kopie der SmartCard hergestellt,
die in der kopierten Mobilstation verwendet wird. Die Mobilfunkvermittlung
unterscheidet nicht zwischen der originalen Mobilstation und der
kopierten Mobilstation.
-
Ein
weiterer Nachteil bei den derzeitigen Lösungen zur Verschlüsselung
von Software und anderen Daten ist, dass, wenn der gleiche Verschlüsselungsschlüssel zum
Verschlüsseln
großer
Informationsmengen verwendet wird, der Verschlüsselungsschlüssel erfolgreich
entschlüsselt
werden kann, indem man diese verschlüsselten Informationen analysiert.
-
Je
mehr die Datenverarbeitungsfähigkeiten tragbarer
Geräte
erweitert werden, desto mehr Informationen können in ihnen gespeichert werden,
wobei diese Informationen vertraulich sein können oder es aus sonstigen
Gründen
unerwünscht
ist, dass ein Unbefugter von ihnen Kenntnis erhält. Das Mitführen von
tragbaren Geräten
erhöht
jedoch das Risiko, dass diese Geräte verloren gehen oder gestohlen werden,
weshalb versucht werden muss, die in ihnen gespeicherten Informationen
mit einem Verschlüsselungsverfahren
zu schützen.
Bei tragbaren Geräten ist
es in der Regel möglich,
ein Passwort festzulegen, das der Benutzer während der Einschaltphase in
das Gerät
eingeben muss, bis mit dem Gerät
normal gearbeitet werden kann. Ein solcher Schutz ist aber relativ
einfach zu umgehen, weil die verwendeten Passwörter normalerweise relativ
kurz sind: in der Regel kürzer
als 10 Zeichen. Andererseits kann selbst dann, wenn kein Versuch
unternommen wird, das Passwort herauszufinden, auf die in dem Gerät enthaltenen
Informationen zugegriffen werden, indem man beispielsweise das Speichermedium,
wie beispielsweise eine Festplatte, in ein anderes Gerät einbaut.
Wenn die Informationen, die auf dem Speichermedium gespeichert sind,
nicht in einem verschlüsselten
Format vorliegen, so können
diese Informationen mühelos
eingesehen werden.
-
Es
ist bekannt, dass Informationen, die von dem Benutzer oder dem Gerät benötigt werden,
mit einem einzigen Schlüssel
verschlüsselt
werden, dass die verschlüsselten
Informationen im Speicher des Gerätes gespeichert werden können und
dass sie mit einem anderen Schlüssel
entschlüsselt
werden können.
Der Schlüssel,
der bei der asymmetrischen Verschlüsselung verwendet wird, unterscheidet
sich von dem Schlüssel,
der für
die Entschlüsselung
verwendet wird. Dementsprechend ist der Schlüssel, der bei der symmetrischen
Verschlüsselung
verwendet wird, der gleiche Schlüssel
wie der, der für
die Entschlüsselung
verwendet wird. Bei der asymmetrischen Verschlüsselung nennt man diese Schlüssel in
der Regel einen öffentlichen
Schlüssel
und einen persönli chen Schlüssel. Der öffentliche
Schlüssel
dient der Verschlüsselung,
und der persönliche
Schlüssel
dient der Entschlüsselung.
Obgleich der öffentliche Schlüssel allgemein
bekannt sein kann, kann er normalerweise nicht dazu verwendet werden,
um ohne Weiteres den persönlichen
Schlüssel
zu ermitteln, der dem öffentlichen
Schlüssel
entspricht, wodurch es für
einen Unbefugten sehr schwierig ist, Informationen einzusehen, die
mit diesem öffentlichen
Schlüssel
verschlüsselt
wurden. Ein Beispiel für
ein System, bei dem ein solcher öffentlicher
Schlüssel
und ein persönlicher
Schlüssel
verwendet wird, ist das PGP-System (Pretty Good Privacy), wobei
der Benutzer die zu versendenden Informationen mit dem öffentlichen
Schlüssel
des Empfängers
verschlüsselt und
der Empfänger
dann die verschlüsselten
Informationen mit seinem persönlichen
Schlüssel öffnet. Es
gibt jedoch empfindliche Nachteile bei den Systemen nach dem Stand
der Technik. Effektive symmetrische Schlüssel bestehen aus etwa 100
Bits, während
asymmetrische Schlüssel
aus etwa 1000 bis 2000 oder sogar bis zu 4000 Bits bestehen. Wenn
die Schlüsselzeichenkette
zu kurz ist, so ist es relativ einfach, sie mittels moderner Datenverarbeitungstechnik
zu knacken, was man einen Angriff mit roher Gewalt nennen könnte. Dieses
Problem ist vor allem für tragbare
Datenverarbeitungs- und Kommunikationsgeräte relevant, wo auch die begrenzte
Verarbeitungskapazität
die Verwendung langer Schlüssel
verhindert.
-
US-5,802,592,
US-5,919,257, EP-A2-0.616.771 und EP-A1-0.656.587 offenbaren allesamt Techniken
zum Überprüfen von
Software während
der Inbetriebnahmephase eines Computersystems.
-
Es
ist eine Aufgabe der vorliegenden Erfindung, ein verbessertes Verfahren
zum Absichern eines elektronischen Gerätes in einer solchen Weise bereitzustellen,
dass ein bestimmtes Programm so eingestellt wird, dass es nur auf
einem bestimmten elektronischen Gerät funktioniert. Die Erfindung gründet sich
auf den Gedanken, dass der Bootvorgang so konfiguriert ist, dass
er aus wenigstens zwei Schritten besteht, dergestalt, dass im ersten
Schritt erste Überprüfungsdaten
verifiziert werden und dass, wenn die ersten Überprüfungsdaten korrekt sind, zweite Überprüfungsdaten,
die dem zweiten Bootschritt zugehören, verifiziert werden, wobei
es, wenn auch die zweiten Überprüfungsdaten
korrekt sind, möglich
ist, den zweiten Bootschritt zu starten. Genauer gesagt, ist das
Verfahren gemäß der vorliegenden
Erfindung durch den kennzeichnenden Teil von Anspruch 1 gekennzeichnet;
das System gemäß der vorliegenden
Erfindung ist durch den kennzeichnenden Teil von Anspruch 15 gekennzeichnet;
und das elektronische Gerät
gemäß der vorliegenden
Erfindung ist durch den kennzeichnenden Teil von Anspruch 26 gekennzeichnet.
Des Weiteren ist die Software gemäß der vorliegenden Erfindung
durch den kennzeichnenden Teil von Anspruch 29 gekennzeichnet; und
das Speichermittel gemäß der vorliegenden
Erfindung ist durch den kennzeichnenden Teil von Anspruch 30 gekennzeichnet.
-
Die
vorliegende Erfindung weist im Vergleich zu den Lösungen nach
dem Stand der Technik bemerkenswerte Vorteile auf. Bei dem elektronischen Gerät gemäß der Erfindung
wird die Geräte-Identität in einem
Speicher gespeichert, der so beschaffen ist, dass er nur so schwierig
wie möglich
modifiziert werden kann. Des Weiteren wird bei einer vorteilhaften Ausführungsform
die Geräte-Identität mit einer
digitalen Signatur verifiziert, wobei der öffentliche Schlüssel oder
einige Schlüsselidentifizierungsinformationen,
die bei der Verifizierung verwendet werden, in dem elektronischen
Gerät gespeichert
sind. Durch Überprüfen der
digitalen Signatur ist es somit möglich, mit hoher Wahrscheinlichkeit
zu verifizieren, ob die digitale Signatur der Geräte-Identität des elektronischen
Gerätes
entspricht. Eine Geräte-Identität wird dauerhaft
in dem Gerät
eingestellt, und eine weitere wird in den signierten Daten eingestellt,
was man ein Zertifikat nennt. Durch Überprüfen der Signatur ist es nun
möglich,
die Authentizität
und den Aussteller des Zertifikates zu ermitteln. Es wird auf diese
Weise verifiziert, dass die dauerhafte Geräte-Identität des Gerätes und die in dem Zertifikat
enthaltene Geräte-Identität miteinander
identisch sind. Mittels des erfindungsgemäßen Verfahrens kann sichergestellt werden,
dass nur ein bestimmtes Programm auf einem bestimmten elektronischen
Gerät funktioniert. Es
ist dadurch möglich,
die wirtschaftlichen Verluste, die den Anbietern von Software-Programmen
durch das Kopieren ihrer Software entstehen, deutlich zu verringern.
Es ist des Weiteren möglich,
die Position der Benutzer von elektronischen Geräten zu verbessern, weil durch
die erfindungsgemäße Lösung der Betrieb
von durch Produktpiraterie erworbenen elektronischen Geräten und
Software-Programmen deutlich erschwert werden kann. Dem befugten
Benutzer werden somit keine Kosten für die Benutzung eines solchen
kopierten elektronischen Gerätes,
das dem elektronischen Gerät
des Benutzers entspricht, in Rechnung gestellt. Mittels des erfindungsgemäßen Verfahrens
kann die Herkunft der Software verifiziert werden, so dass der Benutzer
der Software relativ sicher sein kann, dass die Herkunft der Software
der angegebenen Herkunft entspricht und dass die Software keine
Viren, Hintertüren
oder dergleichen enthält.
Die Erfindung macht es außerdem
möglich, dass
die Software des elektronischen Gerätes nicht unbefugt dergestalt
modifiziert werden kann, dass sie nach den Modifizierungen noch
funktionieren würde.
-
Bei
dem erfindungsgemäßen elektronischen Gerät kann der
interne Festspeicher der Schaltung relativ klein gehalten werden,
weil die Integrität
der Programme, die sich im externen Speicher (Flash oder ein anderer
Speichertyp) befinden, im Chip verifiziert werden kann. Dies macht
es des Weiteren möglich,
dass ein Großteil
der Programme des elektronischen Gerätes auch nach der Herstellung
des elektronischen Gerätes
ausgetauscht werden kann. Außerdem
ist die Planung der Programme einfacher.
-
Bei
einer vorteilhaften Ausführungsform
der Erfindung ist die Geräte-Identität, die für die Kontrolle der
Zugriffsrechte der Programme verwendet wird, von dem IMEI-Code des
elektronischen Gerätes
unabhängig.
Darum kann der Gerätehersteller
den IMEI-Code erforderlichenfalls ändern. Des Weiteren kann die
Geräte-Identität kürzer sein
als der IMEI, wodurch beim Speichern der Geräte-Identität eine geringere Menge an teurer
Speicherkapazität
benötigt
wird als bei den Lösungen
nach dem Stand der Technik.
-
Im
Folgenden wird die Erfindung eingehender anhand der beiliegenden
Zeichnungen beschrieben.
-
1 zeigt
ein elektronisches Gerät
gemäß einer
bevorzugten Ausführungsform
der Erfindung in einem vereinfachten Blockschaubild.
-
2 zeigt
die Struktur eines Bootprogramms in einem elektronischen Gerät, in dem
das Verfahren gemäß einer
vorteilhaften Ausführungsform
der Erfindung implementiert ist.
-
3 veranschaulicht
die Herstellung und Übergabe
von Software an ein elektronisches Gerät durch ein Sicherheitssystem
gemäß einer
vorteilhaften Ausführungsform
der Erfindung.
-
4 veranschaulicht
die Herstellung und Übergabe
von Software an ein elektronisches Gerät durch ein Sicherheitssystem
gemäß einer
weiteren vorteilhaften Ausführungsform
der Erfindung.
-
5 zeigt
den Ablauf eines Bootprogramms gemäß einer bevorzugten Ausführungsform der
Erfindung in einem Ablaufdiagramm.
-
6 zeigt
ein bekanntes Prinzip der Herstellung einer digitalen Signatur.
-
Es
folgt eine Beschreibung des Betriebes eines elektronischen Gerätes 1 gemäß einer
weiteren vorteilhaften Ausführungsform
der Erfindung in Verbindung mit dem erfindungsgemäßen Verfahren.
Bei dem verwendeten elektronischen Gerät 1 kann es sich um
ein beliebiges elektronisches Gerät handeln, das Mittel zum Abarbeiten
von Programmen enthält. Vorteilhafterweise
umfasst das elektronische Gerät 1 vorzugsweise
eine Betriebssystemsoftware oder dergleichen, mit der die wesentlichen
Funktionen des elektronischen Gerätes gesteuert werden und mit
der das Laufen anderer Programme (Anwendungen) in dem elektronischen
Gerät 1 gesteuert
werden kann. Nicht-einschränkende
Beispiele für
solche elektronischen Geräte 1,
die in diesem Zusammenhang zu nennen sind, sind eine Mobilstation
und ein Computer.
-
Das
elektronische Gerät 1 gemäß einer
vorteilhaften Ausführungsform
der Erfindung, wie in 1 gezeigt, umfasst einen Steuerblock 2,
der Mittel 2a für
das Abarbeiten von Programmen enthält. Diese Mittel umfassen beispielsweise
eine Mikrosteuerung MCU (Micro Controller Unit) und eine digitale
Signalverarbeitungseinheit DSP (Digital Signal Processing). Außerdem umfasst
der Steuerblock 2 vorzugsweise eine anwendungsspezifische
integrierte Schaltung ASIC (Application-Specific Integrated Circuit),
in der beispielsweise wenigstens einen Teil der Logikfunktionen
des elektronischen Gerätes
implementiert werden kann. Des Weiteren ist der Steuerblock 2 des
elektronischen Gerätes 1,
wie in 1 gezeigt, vorzugsweise mit einem Festspeicher 2d, der
wenigstens zum Teil ein einmalig programmierbarer ROM (OTPROM) 2e ist,
und mit einem Direktzugriffsspeicher 2f ausgestattet. Es
ist allerdings klar, dass diese Speicher 2d, 2e und 2f auch
als Speicher implementiert werden können, die von dem Steuerblock 2 getrennt
sind. Das elektronische Gerät
umfasst des Weiteren Speichermittel 3 au ßerhalb
des Steuerblocks, die vorzugsweise wenigstens einen Festspeicher 3a,
einen programmierbaren Festspeicher 3b und einen Direktzugriffsspeicher 3c umfassen.
Wenigstens ein Teil des Festspeichers 3a ist so implementiert,
dass sein Inhalt nicht durch den Benutzer geändert werden kann. Es ist auch
möglich, eine
Speichererweiterung an das elektronische Gerät 1 von 1 anzuschließen, indem
ein Speichererweiterungsblock 4 an das Speicheranschlussmittel 5 angeschlossen
wird. Der Speichererweiterungsblock 4 ist beispielsweise
eine Flash-Speicherkarte, aber es können auch andere Speichererweiterungsmittel in
Verbindung mit der Erfindung verwendet werden. Das elektronische
Gerät 1 ist
des Weiteren vorzugsweise mit einer grafischen Benutzerschnittstelle
UI (User Interface) ausgestattet, die eine Anzeige 6, eine
Tastatur 7 und Audiomittel 8, wie beispielsweise einen
Ohrhörer
oder Lautsprecher und ein Mikrofon, umfasst. Das elektronische Gerät 1 gemäß einer
vorteilhaften Ausführungsform
der Erfindung, wie in 1 gezeigt, umfasst des Weiteren
Mittel 9 zur Ausführung
von Mobilstationsfunktionen, beispielsweise einer GSM-Mobilstation und/oder
einer UMTS-Mobilstation. Des Weiteren umfasst das elektronische
Gerät 1 vorzugsweise
Mittel 10 zum Anschließen
einer Identity-Karte 11, wie beispielsweise einer SIM-Karte
und/oder einer USIM-Karte, an das elektronische Gerät 1.
-
2 zeigt
die Struktur des Bootprogramms des elektronischen Gerätes 1,
in dem das Verfahren gemäß einer
vorteilhaften Ausführungsform
der Erfindung angewendet wird. Das Bootprogramm ist in wenigstens
zwei Bootblöcke
P1, P2 unterteilt, von denen der erste Bootblock P1 die anfänglichen
Booting-Operationen des ersten Schrittes ausführt. Der zweite Bootblock P2
führt weitere Überprüfungen in einer
Situation durch, in der keine Fehler, die das Inbetriebnehmen verhindern
würden,
im ersten Bootblock erkannt wurden.
-
Das
aus wenigstens zwei Schritten bestehende Sicherheitsverfahren gemäß der vorliegenden Erfindung
funktioniert folgendermaßen.
Die Funktionsweise ist in dem Ablaufdiagramm von 5 veranschaulicht.
Bei der Inbetriebnahme des elektronischen Gerätes 1 beginnt der
Steuerblock 2 mit dem Ablauf des Bootprogramms (Block 501 in 5). Dies
erfolgt in einer an sich bekannten Weise durch Einstellen des Adressregisters
des Steuerblocks 2 auf eine bestimmte anfängliche
Adresse, die jenen Programmbefehl des Bootprogramms enthält, der
als erstes auszuführen
ist. Dieser Programmbefehl befindet sich in einem ersten Bootblock
P1. Danach wird die Abarbeitung des Programms vorzugsweise mit dem
Ergreifen der erforderlichen Schritte zur Initialisierung des Gerätes fortgesetzt,
die dem Fachmann einschlägig
bekannt sind und in diesem Kontext nicht erörtert zu werden brauchen. Der
erste Bootblock P1 umfasst einen ersten Überprüfungsschritt zur Überprüfung von
ersten Überprüfungsdaten
(erste Sicherheitsdaten). Im ersten Überprüfungsschritt wird beispielsweise
die Geräte-ID
oder dergleichen, die in dem einmalig programmierbaren ROM 2d gespeichert
ist, überprüft (Block 502).
Diese Geräte-ID
ist mit dem Bezugssymbol DID (Device ID) in 2 angezeigt.
Des Weiteren kann überprüft werden,
dass der Programmcode des ersten Bootblocks P1 nicht modifiziert
wurde. Die Überprüfung wird
vorzugsweise im Steuerblock 2 durchgeführt, indem eine digitale Signatur
berechnet wird, wofür
wenigstens die Geräte-Identität DID und
eventuell auch wenigstens ein Teil des im Festspeicher 2d, 2e gespeicherten
Bootprogramms verwendet wird. Bei der Berechnung der digitalen Signatur
werden der gleiche Algorithmus und die gleichen Daten benutzt, mit denen
die digitale Signatur während
der Herstellung des elektronischen Gerätes 1 mittels eines
geheimen Schlüssels
des Geräteherstellers
berechnet wurde, wie weiter unten in dieser Beschreibung noch dargelegt
wird. Diese digitale Signatur wird vorzugsweise in dem programmierbaren
Festspeicher 3b (in 2 mit dem
Bezugssymbol S2 bezeichnet) gespeichert, aber es versteht sich,
dass sie auch beispiels weise in demselben Festspeicher 2d, 2e gespeichert
werden kann, in dem die Geräte-Identität DID gespeichert wurde.
Die digitale Signatur kann mittels des öffentlichen Schlüssels PK1
verifiziert werden, der dem geheimen Schlüssel, der in der Signatur verwendet wird,
entspricht und in dem Festspeicher 2d, 2e gespeichert
wird. Nach dem Berechnen der digitalen Signatur erfolgt ein Vergleich
zwischen der digitalen Signatur, die im Steuerblock 2 berechnet
wurde, und der digitalen Signatur S1, die in dem einmalig programmierbaren
Festspeicher 2d, 2e gespeichert ist (Block 503).
Wenn der Vergleich zeigt, dass die digitalen Signaturen übereinstimmen,
so kann der Bootvorgang fortgesetzt werden. In anderen Fällen ist
offenbar, dass versucht wurde, das elektronische Gerät 1 und/oder
die Identitätsdaten
DID, die in dem elektronischen Gerät 1 und/oder in dem
Bootprogramm enthalten sind, zu modifizieren. Infolge dessen wird der
normale Betrieb des Gerätes
verhindert, beispielsweise indem das elektronische Gerät abgeschaltet
wird (Block 504). Dieser Teil des Bootprogramms, der die Überprüfung vornimmt,
ist im Speicher des elektronischen Gerätes 1 in einer solchen Weise
gespeichert, dass er nicht verändert
werden kann, ohne das elektronische Gerät 1 kaputt zu machen.
Eine brauchbare Lösung
ist es, den internen, einmalig programmierbaren Festspeicher 2e des Steuerblocks 2 für die Speicherung
zu verwenden.
-
Wenn
der Bootvorgang fortgesetzt wird, so wird als nächster Schritt der zweite Überprüfungsschritt
des Bootprogramms unternommen, bevor andere Programme PG1, PG2,
PG3 gestartet werden. Der Programmcode, der dem zweiten Überprüfungsschritt
entspricht, befindet sich im ersten Bootblock P1. Im zweiten Überprüfungsschritt
wird die Authentizität
des zweiten Bootblocks P2 des Bootprogramms überprüft. Der zweite Bootblock P2
des Bootprogramms ist vorzugsweise in dem elektrisch löschbaren
programmierbaren Festspeicher (EEPROM) 3b, wie beispielsweise
einem Flash-Speicher, gespeichert. Es wird eine digitale Signatur
unter Verwendung wenigstens eines Teils des Bootprogramms, das in
dem Festspeicher 3a, 3b gespeichert ist, berechnet
(Block 505). Die zweite digitale Signatur S2 des zweiten
Bootblocks des Bootprogramms ist ebenfalls im selben Speicher 3b gespeichert.
Bei der Berechnung dieser digitalen Signatur S2 werden einige Daten
verwendet, die verifiziert werden können, wie beispielsweise ein
Teil des Programmcodes des zweiten Bootblocks des Bootprogramms
sowie der geheime Schlüssel
des Herstellers des elektronischen Gerätes 1. Der öffentliche
Schlüssel
PK2, der diesem geheimen Schlüssel
entspricht, ist ebenfalls in dem Speicher 3b gespeichert.
Die berechnete digitale Signatur wird mit der digitalen Signatur
verglichen, die in dem Speicher 3b gespeichert ist (Block 506),
und wenn die Signaturen übereinstimmen,
so kann das der Bootvorgang des elektronischen Gerätes 1 weiter
fortgeführt
werden. Wenn die Signaturen hingegen nicht übereinstimmen, so wird der
normale Betrieb des Gerätes
verhindert, indem beispielsweise das elektronische Gerät angehalten
wird.
-
Die
in dem zweiten Überprüfungsschritt
zu überprüfenden Daten
(zweite Überprüfungsdaten, zweite
Sicherheitsdaten) können
beispielsweise durch Berechnen von komprimierten Daten H, zum Beispiel
durch eine Hash-Funktion, aus Programmen PG1, PG2, PG3, Parametern,
Geräte-Identitäten DID,
IMEI oder dergleichen, die in dem programmierbaren Festspeicher 3b gespeichert
sind, erzeugt worden sein. Diese komprimierten Daten H werden mit
dem geheimen Schlüssel
signiert und in dem programmierbaren Festspeicher 3b gespeichert.
In diesem Fall erfolgt die Überprüfung durch
Verifizieren der Authentizität
dieser Signatur.
-
Bei
einer vorteilhaften Ausführungsform
der Erfindung werden Informationen über den Speicherort des Überprüfungsprogramms,
das in dem zweiten Bootschritt zu verwenden ist, und über den öffentlichen
Schlüssel
PK2 von dem ersten Bootschritt zu dem Programm, das den zweiten
Bootschritt ausführt, übermittelt.
-
Nachdem
der oben dargestellte zweite Überprüfungsschritt
erfolgreich war, ist es möglich,
den zweiten Bootblock P2 des Bootprogramms, das im Speicher 3b gespeichert
ist, abzuarbeiten. In diesem zweiten Bootblock P2 des Bootprogramms
werden beispielsweise einige andere Daten, die in dem Festspeicher 3b gespeichert
sind, verifiziert (zum Beispiel gemäß den oben dargestellten Prinzipien),
indem eine oder mehrere digitale Signaturen berechnet werden (Block 507)
und mit den entsprechenden digitalen Signaturen, die in dem Festspeicher
gespeichert sind, verglichen werden (Block 508). Zu solchen
zu verifizierenden Daten gehören
beispielsweise gerätespezifische
Informationen, wie beispielsweise die Geräte-Identität DID, die International Mobile
Equipment Identity IMEI sowie Serviceproviderspezifische Informationen,
wie beispielsweise eine SIM-Sperre
(SIM Lock) SL, wodurch die Mobilstation so eingestellt werden kann,
dass sie nur mit einer oder mehreren bestimmten SIM-/USIM-Karten
funktioniert, und/oder eine Betreiber-Sperre, wodurch das elektronische
Gerät 1 so
eingestellt wird, dass es nur mit einer SIM-/USIM-Karte eines bestimmten
Mobilfunkbetreibers funktioniert. Der Ablauf des zweiten Bootblocks
P2 des Bootprogramms kann fortgesetzt werden, wenn die Signaturen
und weitere eventuell ausgeführte
Verifizierungen in Ordnung waren. Es ist zu erwähnen, dass bei einigen Anwendungen
die oben angesprochene Geräte-Identität DID anhand der
International Mobile Equipment Identity IMEI erzeugt werden kann,
aber sie können
auch voneinander unabhängig
sein.
-
Als
nächstes
ist wenigstens ein weiterer Überprüfungsschritt
auszuführen,
um den noch immer unverifizierten Teil des Programmcodes der Programme
PG1, PG2, PG3 oder wenigstens von einigen dieser Programme zu überprüfen (Block 509). Bei
diesem Überprüfungsschritt
können
die oben darge legten Prinzipien angewendet werden, wobei wenigstens
eine weitere digitale Signatur und die Informationen, die für ihre Verifizierung
erforderlich sind, in dem Speicher 3b gespeichert werden.
-
Nachdem
alle Verifizierungen, die für
die Inbetriebnahme des elektronischen Gerätes 1 festgelegt wurden,
ausgeführt
wurden, können
weitere Programme PG1, PG2, PG3 gebootet werden (Schritt 510),
woraufhin das elektronische Gerät 1 normal
benutzt werden kann.
-
Die
oben dargestellten öffentlichen
Schlüssel
können
ebenfalls mit einer digitalen Signatur (= Zertifikat) verifiziert
werden, um eine größere Gewissheit über die
Herkunft der öffentlichen
Schlüssel zu
erhalten. In diesem Fall werden nicht nur die öffentlichen Schlüssel, sondern
auch die entsprechenden digitalen Signaturen in dem Speicher 2d, 2e, 3b gespeichert
und verifiziert, bevor sie für
andere Überprüfungsmaßnahmen
verwendet werden.
-
Obgleich
das Bootprogramm in der obigen Beschreibung nur in einen ersten
und einen zweiten Bootblock P1 bzw. P2 unterteilt war, versteht
es sich, dass das Bootprogramm in Verbindung mit der Erfindung auch
in mehr als zwei Bootblöcke
P1, P2 unterteilt sein kann. Somit beinhaltet jeder Bootblock die Verifizierung
wenigstens des nächsten
Bootblocks, bevor der Betrieb zum nächsten Bootblock fortschreitet.
Bei der Verifizierung werden Informationen verwendet, von denen
wenigstens ein Teil in dem Bootblock gespeichert wird, der in der
Reihenfolge als nächster
kommt.
-
Die
oben beschriebenen Verifikationen können auch nach dem Bootvorgang
während
des normalen Betriebes des elektronischen Gerätes 1 erfolgen. Das
soll beispielsweise verhindern, dass nach dem Bootvorgang die SmartCard
gegen eine SmartCard ausgetauscht wird, deren Benutzung in dem elektronischen
Gerät 1 unbefugt
ist, oder dass der externe Speicher 3b gegen einen Speicher
ausgewechselt wird, der einen modifizierten Programmcode enthält.
-
Auf
der Stufe der Herstellung des erfindungsgemäßen elektronischen Gerätes 1 und/oder
auf der Stufe der Software-Aktualisierung
werden die benötigten Überprüfungsdaten
und Programme in dem Speicher 2d, 2e, 3a, 3b vorzugsweise
in der folgenden Weise erzeugt. Die für die Verifizierung benötigten Programmcodes
werden in dem Steuerblock 2 gespeichert, einschließlich des
ersten Bootblocks P1 des Bootprogramms, des Programms zum Berechnen
der digitalen Signatur und des einen oder der mehreren Verschlüsselungs-
und Entschlüsselungsalgorithmen.
Dieser Schritt ist durch den Block 301 in 3 dargestellt.
Der Hersteller speichert außerdem wenigstens
einen Teil der Geräte-Identität DID in
dem einmalig programmierbaren Speicher 2e des Steuerblocks
(Block 303). Des Weiteren werden der öffentliche Schlüssel PK1
des Herstellers und die digitale Signatur S1, die für die Verifizierung
des ersten Bootblocks P1 und der Geräte-Identität benötigt werden, in dem einmalig
programmierbaren Speicher 2e gespeichert. Nach dem Ausführen der
notwendigen Speicherung in dem einmalig programmierbaren Speicher 2e wird
dieser einmalig programmierbaren Speicher 2e erforderlichenfalls
in einen Zustand versetzt, in dem an dem Speicher keinerlei Veränderungen
mehr vorgenommen werden können.
Damit soll verhindert werden, dass in der Geräte-Identität DID oder in einem anderen
Teil des einmalig programmierbaren Speichers 2e beispielsweise
einzelne Bits verändert
werden. Auf der Stufe des Zusammenbaus der Komponenten (Block 302)
wird auch der Steuerblock 2, der den einmalig programmierbaren
Speicher 2e enthält,
auf der (nicht gezeigten) Platine des elektronischen Gerätes installiert.
Der Hersteller speichert die übrigen
Blöcke
P2 des Bootprogramms und mögliche
Anwendungsprogramme beispielsweise in dem programmierbaren Speicher 3b und/oder in
dem einmalig programmierbaren Speicher 3a (Blöcke 304 und 305).
Außerdem
werden der öffentliche Schlüssel PK2
des Herstellers, der zum Überprüfen des
zweiten Bootblocks P2 des Bootprogramms verwendet wird, die digitale
Signatur S2 sowie ein eventuelles Zertifikat in dem Speicher 3b gespeichert.
Danach kann das elektronische Gerät 1 an einen Händler oder
einen Service-Provider, wie beispielsweise einen Mobilfunkbetreiber,
ausgeliefert werden. Wenn also ein Käufer des elektronischen Gerätes 1 einen Mobilfunkvertrag
mit dem Service-Provider abschließt, so kann das elektronische
Gerät 1 so
eingestellt werden, dass es mit einer oder mehreren SmartCards 11,
wie beispielsweise einer SIM-Karte, oder jeder anderen SmartCard
des Service-Providers funktioniert. Der Service-Provider oder der
Verkäufer
stellt somit eine SIM-Sperre SL oder dergleichen sowie die Geräte-Identität IMEI in
dem elektronischen Gerät 1 ein.
Erforderlichenfalls wird ein Zertifikat aus einer Zertifikatsdatenbank
CDB abgerufen, um für
die Verifizierung der Authentizität der Daten in Verbindung mit
dem Bootvorgang des elektronischen Gerätes 1 verwendet zu
werden, so wie es weiter oben in dieser Beschreibung dargelegt ist.
Diese Definitionen werden in dem Speicher 3, vorzugsweise
in dem programmierbaren Speicher 3b, gespeichert. Danach
ist das elektronische Gerät 1 betriebsbereit. Es
ist klar, dass die oben angesprochenen, von dem Händler oder
Service-Provider vorgenommenen Handlungen auch von dem Gerätehersteller
oder einem durch den Gerätehersteller
autorisierten Dienstleister vorgenommen werden können. Die Daten über den
Service-Provider
und den Käufer
werden somit an das Unternehmen übermittelt,
wo die Daten gespeichert werden.
-
Aufgrund
der oben beschriebenen Bestätigungsdaten
kann der Service-Provider sicher sein, dass das erfindungsgemäße elektronische
Gerät 1, das
mit den Diensten des Service-Providers
verbunden wird, tatsächlich
das Gerät
ist, dessen Identitätscode
in dem elektronischen Gerät 1 gespeichert
ist. Des Weiteren wird garantiert, dass das elektronische Gerät 1 und
die in ihm enthaltenen Daten nicht unbefugt modifiziert wurden.
-
Die
Erfindung kann auch für
das Aktualisieren von Software und anderen Daten in dem elektronischen
Gerät 1 verwendet
werden. Dies kann beispielsweise durch den Händler und/oder einen Dienstleister,
beispielsweise mittels der in 4 gezeigten
Konfiguration, geschehen. Beispielsweise will der Benutzer eine
neue Version des Betriebssystems in dem elektronischen Gerät 1 installiert
haben. Die neue Version des Betriebssystems wurde von dem Anbieter
des Betriebssystems an das Unternehmen AS geliefert, oder sie wird über ein
Datennetzwerk von dem Anbieter des Betriebssystems heruntergeladen.
In Verbindung mit dem Herunterladen wird vorzugsweise die Geräte-Identität DID und eventuell
auch die Identität
des Service-Providers angegeben (Block 401 in 4).
Wenn das Betriebssystem heruntergeladen wird, so werden die erforderlichen
Verifizierungen vorgenommen, dass der Empfänger tatsächlich befugt ist, den Download
vorzunehmen, und dass der Benutzer berechtigt ist, die neue Version
des Betriebssystems auf sein elektronisches Gerät zu erhalten (Block 402).
In das herunterzuladende Betriebssystem können nun die Daten über die
Geräte-Identität DID, den öffentlichen Schlüssel des
Anbieters der Programme und/oder eine digitale Signatur eingefügt werden
(Pfeil 403), wobei das Funktionieren der Version des Betriebssystems
auf lediglich dieses elektronische Gerät 1 beschränkt werden
kann. Es ist somit kein weiterer Kopierschutz erforderlich. Die
neue Version des Betriebssystems wird zu dem elektronischen Gerät 1 übertragen
(Pfeil 404), um mittels eines an sich bekannten Verfahrens
in dem programmierbaren Speicher 3b gespeichert zu werden
(Block 405).
-
Es
gibt eine Anzahl bekannter Verschlüsselungsverfahren, die sich
für die
vorliegende Erfindung verwenden lassen. Zu den in diesem Zusammenhang
zu erwähnenden
symmetrischen Verschlüsselungsverfahren
gehören
der Data Encryption Standard (DES), der Advanced Encryption Standard (AES)
und Rivest's Cypher
2 (RC2). Ein asymmetrisches Verschlüsselungs verfahren ist Rivest,
Shamir, Adleman (RSA). Es wurden auch sogenannte Hybridsysteme entwickelt,
bei denen sowohl asymmetrische Verschlüsselung als auch symmetrische
Verschlüsselung
zum Einsatz kommen. Bei solchen Systemen wird normalerweise eine
asymmetrische Verschlüsselung
verwendet, wenn ein Verschlüsselungsschlüssel, der
für eine
symmetrische Verschlüsselung
verwendet werden soll, an den Empfänger übermittelt wird, wobei der
symmetrische Verschlüsselungsschlüssel für die Verschlüsselung
der eigentlichen Informationen verwendet wird.
-
Für die Übermittlung
von öffentlichen
Schlüsseln,
die für
eine asymmetrische Verschlüsselung verwendet
werden sollen, wurde ein System entwickelt, das Public Key Infrastructure
(PKI) genannt wird. Dieses System umfasst Server, auf denen die öffentlichen
Schlüssel
gespeichert werden und von denen ein Benutzer, der einen Schlüssel benötigt, den
Schlüssel
abrufen kann. Ein solches System eignet sich besonders zur Verwendung
durch Unternehmen, wobei das Unternehmen seinen öffentlichen Schlüssel nicht
selbst an jemanden zu übermitteln braucht,
der Informationen in verschlüsselter
Form an das Unternehmen übermitteln
möchte.
-
Für digitale
Signaturen werden verschiedene Systeme verwendet, wie beispielsweise
RSA, Digital Signatures Algorithm (DAS) und Elliptic Curve Cryptography
(ECC). In Verbindung mit diesen Systemen werden Algorithmen, welche
die zu signierenden Informationen komprimieren, verwendet. Secure
Hash Algorithm (SHA-1) und Message Digest 5 (MD5) seien in diesem
Zusammenhang als Beispiele erwähnt. 6 zeigt
das Erzeugen einer digitalen Signatur in einer Prinzipdarstellung.
Die zu signierenden Daten 601 werden zu einem Block 602 geleitet,
wo eine Hash-Funktion (Komprimierungsfunktion) ausgeführt wird.
Danach werden die durch die Hash-Funktion erzeugten komprimierten
Daten mit einem geheimen Schlüssel
SK signiert 603. Die Signatur 604 wird mit den
zu signierenden Daten 601 verknüpft. Auf der Stufe der Verifizierung
der signierten Daten werden die mit der Signatur bestätigten Daten
zu einem Block 605 geleitet, wo die Hash-Funktion ausgeführt wird,
um einen Hash-Code 606 zu erzeugen. Die Signatur wird mittels
eines öffentlichen
Schlüssels
PK, welcher dem geheimen Schlüssel
des Signaturs entspricht, verifiziert 607. Anschließend wird
der Hash-Code 606 mit den bei der Verifizierung 607 der Signatur
erzeugten Daten verglichen 608. Wenn die Daten übereinstimmen,
so kann man den signierten Daten mit einer hohen Wahrscheinlichkeit
vertrauen.
-
Die
Schritte gemäß der Erfindung
lassen sich größtenteils
mit Programmbefehlen des Software-Abarbeitungsmittels 2a im
Steuerblock 2 des elektronischen Gerätes 1 implementieren.
-
Die
Erfindung kann beispielsweise auch bei der Implementierung von Sprachversionen
von Software, die zu dem elektronischen Gerät 1 gehört, verwendet
werden. Es wird dabei für
jede Sprachversionen eine Gruppe von Programmen mit den gewünschten
Sprachdefinitionen erzeugt. Die Geräte-Identität wird in Form von Daten in
dieser Gruppe von Programmen eingestellt, so dass die Programme nur
in einem bestimmten Gerät
verwendet werden können.
Um dies sicherzustellen, werden die Mechanismen gemäß der vorliegenden
Erfindung verwendet. Andererseits kann die erfindungsgemäße Lösung auch
in einer solchen Weise angewendet werden, dass in dem elektronischen
Gerät 1 festgelegt werden
kann, welche Sprachversion bzw. Sprachversionen auf dem elektronischen
Gerät 1 installiert
und benutzt werden können.
-
Es
versteht sich, dass die vorliegende Erfindung nicht ausschließlich auf
die oben dargelegten Ausführungsformen
beschränkt
ist, sondern innerhalb des Geltungsbereichs der angehängten Ansprüche modifiziert
werden kann.