-
Die
Erfindung betrifft eine Schaltkreis-Anordnung, ein Verfahren zum
Hochfahren einer Schaltkreis-Anordnung, ein Verfahren zum Betreiben
einer Schaltkreis-Anordnung sowie Computerprogrammprodukte
-
Eingebettete
Systeme (Embedded Systems), wie beispielsweise ein Chip für eine Mobilfunk-Plattform,
anders ausgedrückt
für eine
Mobilfunk-Kommunikationseinrichtung, werden immer häufiger mit
Sicherheitsanforderungen konfrontiert, welchen üblicherweise begegnet wird
dadurch, dass Kryptographie-Hardware
in die Komponenten, beispielsweise die Chips, integriert werden.
-
US 2006/0136889 A1 beschreibt
ein Verfahren und eine Vorrichtung zum Authentifizieren eines ausführbaren
Programms, wobei die Anwendung in einem System, beispielsweise einem
Geldautomaten installiert ist.
-
US 2005/0132226 A1 beschreibt
eine Vorrichtung, die eine oder mehrere kryptographische Einheiten
aufweist. Es wird ein Hash-Wert einer Applikation mit einem signierten
Hash-Wert für
genau diese Applikation verglichen, um sie zu authentifizieren und
beispielsweise gegen unerlaubte Veränderungen zu schützen.
-
US 2002/0073316 A1 beschreibt
ein kryptographisches System und Verfahren zum Initialisieren und
Betreiben dieses Systems, bei dem Applikationen nach ihrer Entschlüsselung
authentifiziert werden.
-
Kryptographie-Hardware,
d. h. beispielsweise auf kryptographische Funktionen spezialisiert
ausgerichtete Prozessoren oder spezifische elektronische Schaltungen
fallen üblicherweise
unter die Exportkontrolle und die Exportregeln des so genannten Wassenaar-Abkommens.
-
Das
Wassenaar-Abkommen behandelt Technologien, welche sowohl für militärische Zwecke
als auch für
kommerzielle Zwecke eingesetzt werden können und enthält einen
Regelsatz, an welchen sich die Teilnehmerstaaten halten, anders
ausgedrückt, an
welche die Unterzeichnerstaaten des Wassenaar-Abkommens gebunden
sind. Das Wassenaar-Abkommen betrifft beispielsweise Verschlüsselungsverfahren
bei Verwendung einer Schlüssellänge von
mehr als 56 Bit.
-
Wie
oben beschrieben wurde, enthält
das Abkommen einen Satz von Regeln, gemäß welchen der Export von Kryptographie-Technologie erlaubt
ist, wenn sie für
spezifische Zwecke eingesetzt wird, wie beispielsweise zur Authentifikation
oder zur Digitale-Rechte-Verwaltung (Digital Rights Management, DRM).
-
Ein
Problem beispielsweise von Herstellern von Mobilfunk-Komponenten oder
Mobilfunk-Plattformen ist beispielsweise darin zu sehen, dass die Funktionalität der Komponente(n)
oder Plattform(en) (beispielsweise einschließlich der Applikationen, welche
die jeweilige Kryptographie-Technologie verwenden) zum Zeitpunkt
des Exports der Komponente bzw. der Plattform noch nicht vollständig fertiggestellt sein
kann.
-
Üblicherweise
entwickelt ein Mobilfunk-Kommunikationsendgeräte-Hersteller
die komplette Mobilfunk-Plattform
oder passt zumindest eine gelieferte Mobilfunk-Plattform an seine Bedürfnisse
und Wünsche
an. Dies bedeutet, dass die Kryptographie-Technologie zu der Zeit
des Exports der Komponente bzw. der Plattform noch allgemein verwendbar ist.
Da immer mehr Mobilfunk-Kommunikationsendgeräte- Hersteller die Produktion und die Entwicklung der
Mobilfunk-Kommunikationseinrichtungen
in Länder
verlagern, welche das Wassenaar-Abkommen nicht ratifiziert haben
und daher unter die volle Exportkontrolle fallen, gewinnt das Problem
des Exports von Kryptographie-Technologie grundlegende Bedeutung
für das
Mobilfunk-Geschäft.
Ferner ist ein entsprechendes Problem zu lösen für den Fall, dass das Wassenaar-Abkommen
nicht ratifizierende Staaten mit fertigen Mobilfunk-Kommunikationseinrichtungen
(beispielsweise Mobilfunk-Kommunikationsendgeräte) aus
dem Ausland beliefert werden sollen.
-
Um
das durch die Exportkontrolle aufgeworfene Problem zu lösen wurde
häufig
Kryptographie-Technologie im Rahmen des Exports von Produkten eingesetzt,
bei der kryptographische Schlüssel
von einer Länge
von weniger als 56 Bit verwendet wurden, anders ausgedrückt, es
wurde die Schlüssellänge der
im Rahmen der jeweiligen kryptographischen Funktionen verwendeten
kryptographischen Schlüssel
reduziert, so dass die Kryptographie-Technologien und die verwendeten
kryptographischen Funktionen nicht unter die Exportbeschränkungen fallen.
Dies stellt jedoch in der Zukunft keine akzeptable Lösung dar,
da die aktuellen Sicherheits-Standards eine Schlüssellänge von mindestens 128 Bit für symmetrische
Verschlüsselung
und 1 Kbit (1024 Bit) für
asymmetrische Verschlüsselung
erfordern. Diese Schlüssellängen fallen
jedoch unter die Exportbeschränkungen.
-
Eine
andere übliche
Vorgehensweise zur Berücksichtung
der Exportbeschränkungen
kann darin gesehen werden, dass exportierte Software entwickelt
wird, welche derart eingerichtet ist, dass sie keine kryptographischen
Funktionen aufruft, welche ihnen gemäß den Exportbeschränkungen
nicht erlaubt sind. Dadurch wird jedoch nicht das Problem des Exports
einer gesamten kryptographischen Mobilfunk-Plattform oder einzelner
kryptographischer Funktionen in einer Mobilfunk-Komponente oder
in der gesamten Mobilfunk-Plattform gelöst.
-
Bisher
wurde üblicherweise
das komplette Mobilfunk-System, d. h. die komplette Mobilfunk-Kommunikationseinrichtung
exportiert, bei der die Applikationen, anders ausgedrückt die
eingesetzten Applikation-Computerprogramme, schon integriert vorlagen
und so ausgebildet waren, dass der rechtliche Rahmen hinsichtlich
der Schlüssellänge und/oder
der jeweiligen Anwendung gewahrt wurde. Diese Vorgehensweise stellt
jedoch zukünftig
keine akzeptable Lösung
dar, da es häufig
gewünscht
ist, die Entwicklung und Produktion der Mobilfunk-Kommunikationsendgeräte in Länder zu
verlagern, welche das Wassenaar-Abkommen nicht ratifiziert haben.
-
Eine
Schaltkreis-Anordnung weist mindestens eine Krypto-Einheit auf, welche
mindestens eine kryptographische Funktion bereitstellt. Ferner weist die
Schaltkreis-Anordnung eine Zugriffskontroll-Schnittstelle zum Prüfen einer
Zugriffsanforderung eines Applikation-Computerprogramms auf eine kryptographische
Funktion der Krypto-Einheit auf, wobei die Zugriffskontroll-Schnittstelle
derart eingerichtet ist, dass
- • sie überprüft, ob das
Applikation-Computerprogramm ein gültiges Zertifikat enthält, welches
dem Applikation-Computerprogramm
die Nutzung der kryptographischen Funktion der Krypto-Einheit erlaubt,
- • für den Fall,
dass das Applikation-Computerprogramm berechtigt ist, auf die kryptographische Funktion
der Krypto-Einheit zuzugreifen, die kryptographische Funktion aufgerufen
wird, und
- • für den Fall,
dass das Applikation-Computerprogramm nicht berechtigt ist, auf
die kryptographische Funktion der Krypto-Einheit zuzugreifen, die Zugriffsanforderung
abgelehnt wird.
-
Eine
Kommunikationseinrichtung weist eine oben beschriebene Schaltkreis-Anordnung
auf.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung wird bei einem Verfahren zum Hochfahren (Booten) einer
Schaltkreis-Anordnung überprüft, ob der
die Schaltkreis-Anordnung hochfahrende Nutzer berechtigt ist, die
mindestens eine von der Schaltkreis-Anordnung bereitgestellte kryptographische Funktion
zu nutzen. Für
den Fall, dass der Nutzer nicht berechtigt ist, die mindestens eine
von der Schaltkreis-Anordnung
bereitgestellte kryptographische Funktion zu nutzen, wird die Schaltkreis-Anordnung
in einem ersten Modus hochgefahren, in welchem der Nutzer keinen
Zugriff hat auf die mindestens eine von der Schaltkreis-Anordnung
bereitgestellte kryptographische Funktion. Für den Fall, dass der Nutzer
berechtigt ist, die mindestens eine von der Schaltkreis-Anordnung
bereitgestellte kryptographische Funktion zu nutzen, wird die Schaltkreis-Anordnung
in einem zweiten Modus hochgefahren, in welchem der Nutzer Zugriff
hat auf die mindestens eine von der Schaltkreis-Anordnung bereitgestellte
kryptographische Funktion.
-
Gemäß einem
anderen Ausführungsbeispiel der
Erfindung ist ein Verfahren zum Betreiben einer Schaltkreis-Anordnung
vorgesehen, bei welchem eine Zugriffsanforderung eines Applikation-Computerprogramms
auf eine kryptographische Funktion, welche von der Schaltkreis-Anordnung
bereitgestellt wird, empfangen wird. Ferner wird überprüft, ob das Applikation-Computerprogramm
berechtigt ist, auf die kryptographische Funktion zuzugreifen, indem geprüft wird,
ob das Applikation-Computerprogramm ein gültiges Zertifikat enthält, welches
dem Applikation-Computerprogramm die Nutzung der kryptographischen
Funktion der Krypto-Einheit erlaubt. Für den Fall, dass das Applikation-Computerprogramm berechtigt
ist, auf die kryptographische Funktion zuzugreifen, wird die kryptographische
Funktion aufgerufen und für
den Fall, dass das Applikation-Computerprogramm nicht berechtigt
ist, auf die kryptographische Funktion zuzugreifen, wird die Zugriffsanforderung
abgelehnt.
-
Gemäß anderen
Ausgestaltungen der Erfindung sind Computerprogrammprodukte vorgesehen, welche,
wenn sie von einem Prozessor ausgeführt werden, die oben beschriebenen
Verfahren aufweisen.
-
Gemäß den Ausführungsbeispielen
der Erfindung wird auf einfache Weise sichergestellt, dass ein Applikation-Computerprogramm
nur dann kryptographische Funktionen nutzen kann, wenn sie dazu berechtigt
ist, was anschaulich mittels der Zugriffskontrolle erreicht wird.
Die anschaulich oben beschriebene hochfahrende Schaltkreis-Anordnung
gewährleistet,
dass in deren Betrieb nur für
den Fall, dass eine berechtigte und vertrauenswürdige Instanz die Schaltkreis-Anordnung
hochgefahren hat, diese auch Zugriff hat auf die in der Schaltkreis-Anordnung implementierte
und damit an sich bereitgestellte kryptographische Funktion.
-
Ausführungsbeispiele
der Erfindung sind in den Figuren dargestellt und werden im Folgenden näher erläutert.
-
Es
zeigen
-
1 eine
Skizze eines Mobilfunk-Kommunikationsendgeräts gemäß einem Ausführungsbeispiel
der Erfindung;
-
2 ein
Blockdiagramm einer Schaltkreis-Anordnung gemäß einem Ausführungsbeispiel der
Erfindung;
-
3 ein
Blockdiagramm, in dem der beispielhafte Aufbau der Krypto-Einheit
der in 2 dargestellten Schaltkreis-Anordnung dargestellt
ist;
-
4 ein
Ablaufdiagramm, in dem ein Verfahren zur Zugriffskontrolle auf die
Krypto-Einheit gemäß einem
Ausführungsbeispiel
dargestellt ist;
-
5 ein
Ablaufdiagramm, in welchem das Hochfahren der Schaltkreis-Anordnung
gemäß einem
Ausführungsbeispiel
der Erfindung dargestellt ist;
-
6 ein
Blockdiagramm, in dem die Speicher der Schaltkreis-Anordnung gemäß einem
Ausführungsbeispiel
der Erfindung dargestellt sind;
-
7 ein
Ablaufdiagramm, in dem das Verfahren zum Hochfahren der Schaltkreis-Anordnung gemäß einem
Ausführungsbeispiel
der Erfindung im Detail dargestellt ist;
-
8 ein
Blockdiagramm, in welchem die Organisation der im Rahmen der Kryptographie
verwendeten Daten gemäß einem
Ausführungsbeispiel der
Erfindung dargestellt sind;
-
9 ein
Blockdiagramm, in welchem die Vertrauenskette gemäß einem
Ausführungsbeispiel der
Erfindung dargestellt ist;
-
10 ein
Host-Computersystem gemäß einem
Ausführungsbeispiel
der Erfindung;
-
11 ein
Blockdiagramm, in dem ein Verfahren zur Zugriffskontrolle auf eine
CPU gemäß einem
Ausführungsbeispiel
der Erfindung dargestellt ist; und
-
12 eine
zentrale Datenverarbeitungseinheit gemäß einem anderen Ausführungsbeispiel
der Erfindung.
-
In
den Figuren sind ähnliche
oder identische Elemente, soweit sinnvoll, mit identischen Bezugszeichen
versehen.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung weist die Schaltkreis-Anordnung einen Applikationsprozessor
zur Ausführung
des Applikation-Computerprogramms auf, allgemein einen Prozessor
zum Ausführen
allgemeiner Funktionen innerhalb der Schaltkreis-Anordnung. In einer
alternativen Ausführungsform
der Erfindung sind mehrere Prozessoren vorgesehen, die gemeinsam
die jeweilige Funktion oder die jeweiligen Funktionen bereitstellen.
-
Gemäß einer
anderen Ausgestaltung der Erfindung weist die Schaltkreis-Anordnung
einen ersten Boot-Speicher zum Speichern einer ersten Teil-Boot-Routine
zum Booten auf, anders ausgedrückt
zum Hochfahren der Schaltkreis-Anordnung. Der erste Boot-Speicher
kann ein Nur-Lese-Speicher (Read Only Memory, ROM) sein. Weiterhin
kann in dem ersten Boot-Speicher mindestens eine kryptographische
Funktion gespeichert sein, welche beispielsweise im Rahmen des Hochfahrens
der Schaltkreis-Anordnung verwendet werden kann, wobei darauf hinzuweisen
ist, dass gemäß einer
Ausführungsform
der Erfindung in dem Boot-Speicher die gespeicherte kryptographische
Funktion nicht von einem Applikation-Computerprogramm aufgerufen werden kann,
da die kryptographische Funktion hartverdrahtet in dem Nur-Lese-Speicher, allgemein
in dem Boot-Speicher, gespeichert ist, welcher ausschließlich im
Rahmen des Hochfahrens der Schaltkreis-Anordnung verwendet wird
und nicht während
des üblichen
Betriebes der Schaltkreis-Anordnung, während dessen die Applikation-Computerprogramme
ausgeführt
werden.
-
Die
in dem Boot-Speicher gespeicherte mindestens eine kryptographische
Funktion weist gemäß einem
Ausführungsbeispiel
der Erfindung mindestens eine der folgenden kryptographischen Funktionen
auf:
- • eine
symmetrische Verschlüsselungsfunktion,
- • eine
asymmetrische Verschlüsselungsfunktion,
- • eine
Hash-Funktion.
-
Die
in dem ersten Boot-Speicher gespeicherten und implementierten kryptographischen
Funktionen können
im Rahmen des Hochfahrens zum kryptographisch gesicherten Hochfahren
der Schaltkreis-Anordnung bei gewährleisteter Authentifikation eingesetzt
werden, so dass beispielsweise gewährleistet wird, dass nur ein
Nutzer, welcher unter Verwendung kryptographischer Sicherungsmechanismen
authentifiziert wird, Zugang zu den (beispielsweise starken) kryptographischen
Funktionen während
des Betriebs der Schaltkreis-Anordnung erhält und diejenigen Nutzer, welchen
die kryptographischen Funktionen nicht zugänglich gemacht werden sollen,
werden schon im Rahmen des Hochfahrens der Schaltkreis-Anordnung
unter Verwendung kryptographischer Dienste, beispielsweise der kryptographischen
Funktionen, ermittelt und diese können die Schaltkreis-Anordnung
zwar betreiben, jedoch nur in einem Modus, in welchem kein Zugriff
auf die kryptographischen Funktionen der Krypto-Einheit ermöglicht ist.
-
Auf
diese Weise ist schon beim Hochfahren der Schaltkreis-Anordnung bzw. auch
schon im Rahmen der Entwicklung von Applikation-Computerprogrammen
im Rahmen der Entwicklung der Schaltkreis-Anordnung gewährleistet,
dass nur die Nutzer und Entwickler von Applikation-Computerprogrammen
starke Kryptographie-Technologie nutzen können, welche beispielsweise
gemäß dem Wassenaar-Abkommen
dazu befugt sind.
-
Gemäß einem
anderen Ausführungsbeispiel der
Erfindung ist in der Schaltkreis-Anordnung ein erster Schlüssel-Speicher
vorgesehen zum Speichern eines ersten öffentlichen Schlüssels einer
vertrauenswürdigen
Instanz, beispielsweise von den Herstellern der Schaltkreis-Anordnung.
Auch der erste Schlüssel-Speicher
kann ein Nur-Lese-Speicher sein.
-
Weiterhin
kann ein Kundeninformations-Speicher zum Speichern kundenspezifischer
Informationen vorgesehen sein, wobei auch dieser als ein Nur-Lese-Speicher
eingerichtet sein kann.
-
Der
Kundeninformations-Speicher kann ferner aus Schmelzsicherungen,
beispielsweise elektronischen Schmelzsicherungen, auch bezeichnet
als Electronic Fuses, gebildet werden.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung wird mittels zumindest einem Teil der kundenspezifischen
Information angegeben, ob zumindest einer der gespeicherten Schlüssel ein Test-Schlüssel oder
ein Produkt-Schlüssel
ist, anders ausgedrückt,
ob der verwendete Schlüssel
nur für
einen Test-Betrieb
der Schaltkreis-Anordnung zu verwenden ist oder für den tatsächlichen
Betrieb im fertigen kommerziell verfügbaren Endprodukt. Ein Test-Schlüssel ist
im Rahmen des Betriebs des endgültigen
Produkts nicht einsetzbar.
-
Alternativ
oder zusätzlich
kann zumindest ein Teil der kundenspezifischen Information eine
Information darstellen, mittels derer ein Kunde oder ein Hersteller
eines Applikation-Computerprogramms eindeutig identifiziert wird.
In dieser Beschreibung ist der Begriff „eindeutig” beispielsweise derart zu
verstehen, dass nicht zwei Kunden und/oder zwei Hersteller eines
Applikation-Computerprogramms mit derselben Information identifiziert
wird.
-
Weiterhin
kann in der Schaltkreis-Anordnung mindestens ein zweiter Schlüssel-Speicher
zum Speichern eines zweiten öffentlichen
Schlüssels
vorgesehen sein.
-
Weiterhin
kann mindestens ein Zertifikat-Speicher zum Speichern zumindest
eines Teils eines Zertifikats des zweiten öffentlichen Schlüssels oder
des gesamten Zertifikats des zweiten öffentlichen Schlüssels vorgesehen
sein.
-
Der
Teil des Zertifikats des zweiten öffentlichen Schlüssels kann
eine oder mehrere der folgenden Informationen enthalten:
- • eine
Angabe über
die Version des Zertifikats des zweiten öffentlichen Schlüssels;
- • eine
Angabe, die einen zumindest einen Teil der Schaltkreis-Anordnung
enthaltenden Chip identifiziert;
- • kundenspezifische
Information;
- • eine
die Art der Zugriffskontroll-Schnittstelle identifizierende Information.
-
Weiterhin
kann ein erster Signatur-Speicher zum Speichern einer ersten Signatur
vorgesehen sein, welche gebildet ist über eine oder mehrere der folgenden
Informationen:
- • zumindest einen Teil eines
Zertifikats des zweiten öffentlichen
Schlüssels;
- • den
zweiten öffentlichen
Schlüssel;
- • einen
Hash-Wert, welcher gebildet wurde über zumindest einen Teil eines
Zertifikats des zweiten öffentlichen
Schlüssels;
- • einen
Hash-Wert, welcher gebildet wurde über den zweiten öffentlichen
Schlüssel;
- • einen
Hash-Wert, welcher gebildet wurde über zumindest einen Teil eines
Zertifikats des zweiten öffentlichen
Schlüssels
und den zweiten öffentlichen
Schlüssel.
-
Die
erste digitale Signatur kann gebildet werden oder sein unter Verwendung
des zu dem ersten öffentlichen
Schlüssel
korrespondierenden ersten privaten Schlüssels.
-
Weiterhin
kann die Schaltkreis-Anordnung einen Applikation-Computerprogramm-Speicher zum Speichern
eines oder mehrerer Applikation-Computerprogramme aufweisen.
-
Ferner
kann ein zweiter Boot-Speicher vorgesehen sein zum Speichern einer
zweiten Teil-Boot-Routine zum Booten der Schaltkreis-Anordnung,
wobei die zweite Teil-Boot-Routine auszuführen ist nach dem erfolgreichen
Ausführen
der ersten Teil-Boot-Routine.
-
Die
zweite Teil-Boot-Routine kann ein Authentifizieren des oder der
in dem Applikation-Computerprogramm-Speicher gespeicherten eines
oder mehreren Applikation-Computerprogramme
aufweisen.
-
Gemäß einer
Ausgestaltung der Erfindung kann die zweite Teil-Boot-Routine ein Authentifizieren eines
Krypto-Einheit-Applikations-
und Programmier-Schnittstellen-Computerprogramms
aufweisen.
-
Das
Authentifizieren des Krypto-Einheit-Applikations- und Programmier-Schnittstellen-Computerprogramms
kann unter Verwendung eines weiteren öffentlichen Schlüssels erfolgen.
Der weitere öffentliche
Schlüssel
kann gemeinsam mit einem zugehörigen
weiteren privaten Schlüssels
dem Hersteller der Schaltkreis-Anordnung oder einer anderen vertrauenswürdigen Instanz
zugeordnet sein, beispielsweise dem Entwickler des Krypto-Einheit-Applikations-
und Programmier-Schnittstellen-Computerprogramms
oder einer verantwortlichen Instanz für das Krypto-Einheit-Applikations-
und Programmier-Schnittstellen-Computerprogramm.
-
Ferner
kann ein zweiter Signatur-Speicher vorgesehen sein zum Speichern
einer zweiten digitalen Signatur, welche gebildet ist oder welche
gebildet wird über
eine der folgenden Informationen:
- • zumindest
einen Teil eines Zertifikats des zweiten öffentlichen Schlüssels;
- • den
zweiten öffentlichen
Schlüssel;
- • die
erste digitale Signatur;
- • die
zweite Teil-Boot-Routine.
-
Weiterhin
kann die zweite digitale Signatur gebildet sein oder werden unter
Verwendung des zu dem zweiten öffentlichen
Schlüssel
korrespondierenden zweiten privaten Schlüssels.
-
So
können
der zweite öffentliche
Schlüssel und
der zweite private Schlüssel
einem Nutzer der Schaltkreis-Anordnung oder einem Entwickler von Applikation-Computerprogrammen
zugeordnet sein, welcher beispielsweise von der vertrauenswürdigen Instanz,
z. B. dem Hersteller der Schaltkreis-Anordnung, zertifiziert ist
hinsichtlich seiner Vertrauenswürdigkeit
und der Befugnis, starke Kryptographie-Mechanismen zu nutzen, womit gewährleistet
wird, dass der Besitzer des zweiten Schlüsselpaares (bestehend aus dem
zweiten öffentlichen
Schlüssel
und dem korrespondierenden zweiten privaten Schlüssel) die kryptographischen
Funktionen der Krypto-Einheit nutzen darf.
-
Die
mindestens eine Krypto-Einheit kann eingerichtet sein, mindestens
eine der folgenden kryptographischen Funktionen bereitzustellen:
- • eine
symmetrische Verschlüsselungsfunktion;
- • eine
asymmetrische Verschlüsselungsfunktion;
- • eine
Hash-Funktion;
- • eine
Zufallszahl-Erzeugungsfunktion;
- • eine
Authentifikationsfunktion.
-
Die
von der Krypto-Einheit bereitgestellten kryptographischen Funktionen
sind beispielsweise kryptographische Funktionen aus einer starken
Kryptographie-Technologie, so dass im Rahmen dieser Funktionen auch
Funktionen bereitgestellt werden können, für welche die Restriktionen
des Wassenaar-Abkommens
gelten, aber auf Grund des kryptographisch gesicherten Hochfahrens
und der kryptographisch gesicherten Zugriffskontrolle von der Krypto-Einheit
bereitgestellten kryptographischen Funktionen wird eine faire Exportkontrolle
ermöglicht.
Fair heißt
in diesem Zusammenhang beispielsweise kontrollierbar und nachvollziehbar
von beiden Seiten, d. h. sowohl von dem Prozessor-System-Hersteller,
beispielsweise dem Hersteller der Schaltkreis-Anordnung, beispielsweise
der Infineon Technologies AG, und dem Applikations-Entwickler. Somit
können
auch die kryptographischen Funktionen unter Verwendung von Schlüssellängen von
128 Bit oder sogar 1024 Bit oder länger ohne weiteres in der Schaltkreis-Anordnung
realisiert werden.
-
Mindestens
einer der folgenden Speicher kann ein Chip-externer Speicher sein:
- • der
mindestens eine zweite Schlüssel-Speicher;
- • der
mindestens eine Zertifikat-Speicher;
- • der
mindestens eine erste Signatur-Speicher;
- • der
Applikation-Computerprogramm-Speicher;
- • der
zweite Boot-Speicher;
- • der
mindestens eine zweite Signatur-Speicher.
-
Mehrere
der folgenden Speicher, beispielsweise alle der folgenden Speicher,
können
in einem gemeinsamen Chip-externen Speicher realisiert sein:
- • der
mindestens eine zweite Schlüssel-Speicher;
- • der
mindestens eine Zertifikat-Speicher;
- • der
mindestens eine erste Signatur-Speicher;
- • der
Applikation-Computerprogramm-Speicher;
- • der
zweite Boot-Speicher;
- • der
mindestens eine zweite Signatur-Speicher.
-
Die
erste Teil-Boot-Routine kann eingerichtet sein derart, dass für den Fall,
dass sie fehlschlägt, der
Nutzer keinen Zugriff auf die Krypto-Einheit während des Betriebs der Schaltkreis-Anordnung
erhält.
-
Ferner
kann die zweite Teil-Routine eingerichtet sein derart, dass für den Fall,
dass sie fehlschlägt,
der Nutzer keinen Zugriff auf die Krypto-Einheit erhält.
-
Die
Kommunikationseinrichtung kann eingerichtet sein als Mobilfunk-Kommunikationseinrichtung.
-
Bei
dem Verfahren zum Hochfahren (Booten) einer Schaltkreis-Anordnung kann das Überprüfen, ob
der die Schaltkreis-Anordnung
hochfahrende Nutzer berechtigt ist, die mindestens eine von der Schaltkreis-Anordnung
bereitgestellte kryptographische Funktion zu nutzen, ein Überprüfen eines
Zertifikats eines öffentlichen
Schlüssels
des Nutzers aufweisen.
-
Ferner
kann das Überprüfen aufweisen:
- • Überprüfen eines
zweiten öffentlichen
Schlüssels;
- • für den Fall,
dass der zweite öffentliche
Schlüssel
nicht gültig
ist, Hochfahren der Schaltkreis-Anordnung in dem ersten Modus,
- • für den Fall,
dass der zweite öffentliche
Schlüssel
gültig
ist, Hochfahren der Schaltkreis-Anordnung in dem zweiten Modus.
-
Weiterhin
kann das Überprüfen, ob
der die Schaltkreis-Anordnung
hochfahrende Nutzer berechtigt ist, mindest eine von der Schaltkreis-Anordnung bereitgestellte
kryptographische Funktion zu nutzen, aufweisen:
- • Bilden
eines Hash-Werts über
zumindest den zweiten öffentlichen
Schlüssel;
- • Auslesen
eines gespeicherten Hash-Werts, welcher gebildet ist oder wurde über zumindest
den zweiten öffentlichen
Schlüssel,
- • Vergleichen
des gebildeten Hash-Werts mit dem ausgelesenen Hash-Wert;
- • für den Fall,
dass die beiden Hash-Werte nicht miteinander übereinstimmen, Hochfahren der Schaltkreis-Anordnung in dem
ersten Modus;
- • für den Fall,
dass die beiden Hash-Werte miteinander übereinstimmen, Hochfahren der
Schaltkreis-Anordnung in dem zweiten Modus.
-
Weiterhin
kann das Überprüfen, ob
der die Schaltkreis-Anordnung
hochfahrende Nutzer berechtigt ist, mindestens eine von der Schaltkreis-Anordnung
bereitgestellt kryptographische Funktion zu nutzen, aufweisen:
- • Überprüfen einer
zweiten digitalen Signatur, welche gebildet ist über eine der folgenden Informationen:
- • zumindest
einen Teil eines Zertifikats des zweiten öffentlichen Schlüssels;
- • den
zweiten öffentlichen
Schlüssel;
- • die
erste digitale Signatur;
- • die
zweite Teil-Boot-Routine;
- • für den Fall,
dass die zweite digitale Signatur nicht gültig ist, Hochfahren der Schaltkreis-Anordnung
in dem ersten Modus;
- • für den Fall,
dass die zweite digitale Signatur gültig ist, Hochfahren der Schaltkreis-Anordnung
in dem zweiten Modus.
-
Gemäß einem
anderen Ausführungsbeispiel der
Erfindung wird eine Schaltkreis-Anordnung bereitgestellt, die aufweist
mindestens eine erste Recheneinheit zum Ausführen mindestens eines Computerprogramms,
eine Zugriffskontroll-Schnittstelleneinheit
zum Prüfen
einer Zugriffsanforderung auf die erste Recheneinheit, eine für die erste
Recheneinheit und die Zugriffskontroll-Schnittstelleneinheit gemeinsame
Eingabe-/Ausgabeschnittstelle, und einen mit der Eingabe-/Ausgabeschnittstelle
gekoppelten recheneinheits-externen Bus. Die Zugriffskontroll-Schnittstelleneinheit
ist derart mit der Eingabe-/Ausgabeschnittstelle gekoppelt, dass
die Zugriffsanforderung von ihr ermittelt wird. Ferner ist Zugriffskontroll-Schnittstelleneinheit
derart eingerichtet, dass sie überprüft, ob die
Zugriffsanforderung einem vorgegebenen Zugriffskriterium genügt und dass
sie für
den Fall, dass die Zugriffsanforderung dem vorgegebenen Zugriffskriterium
genügt,
der ersten Recheneinheit gestattet wird, die Zugriffsanforderung abzuarbeiten.
Für den
Fall, dass die Zugriffsanforderung dem vorgegebenen Zugriffskriterium
nicht genügt,
die Zugriffsanforderung abgelehnt wird oder eine vorgegebene Aktion
durchgeführt
wird.
-
Gemäß einer
Ausgestaltung der Erfindung ist die Zugriffskontroll-Schnittstelleneinheit
als eine zweite Recheneinheit eingerichtet.
-
Ferner
kann die erste Recheneinheit als programmierbarer Prozessor eingerichtet
sein.
-
Die
erste Recheneinheit kann in einem ersten Chip enthalten sein.
-
Gemäß einer
anderen Ausgestaltung der Erfindung ist die Zugriffskontroll-Schnittstelleneinheit als
programmierbarer Prozessor eingerichtet.
-
Weiterhin
kann die Zugriffskontroll-Schnittstelleneinheit in einem zweiten
Chip enthalten sein.
-
Die
Zugriffskontroll-Schnittstelleneinheit kann in einem Sicherheits-Controller
des zweiten Chips realisiert sein.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung sind der erste Chip und der zweite Chip in einem gemeinsamen
Gehäuse
untergebracht, wobei die Eingabe-/Ausgabeschnittstelle eine Gehäuse-Schnittstelle
ist.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung weist die Schaltkreis-Anordnung einen recheneinheits-internen
Bus auf, wobei die erste Recheneinheit und die Zugriffskontroll-Schnittstelleneinheit
mit dem recheneinheits-internen Bus gekoppelt sind.
-
Der
recheneinheits-interne Bus kann gemäß dem JTAG-Standard eingerichtet
sein. Allgemein kann in einer alternativen Ausgestaltung der Erfindung
jeder beliebige andere Interprozessor-Bus als recheneinheits-interner
Bus verwendet werden.
-
Gemäß einem
anderen Ausführungsbeispiel der
Erfindung weist die Schaltkreis-Anordnung mindestens eine Schaltkreis-Komponente auf, wobei
die Zugriffskontroll-Schnittstelleneinheit
derart eingerichtet ist, dass für
den Fall, dass die Zugriffsanforderung dem vorgegebenen Zugriffskriterium
nicht genügt, die
mindestens eine Schaltkreis-Komponente deaktiviert wird.
-
Ferner
kann die Zugriffskontroll-Schnittstelleneinheit derart eingerichtet
sein, dass für
den Fall, dass die Zugriffsanforderung dem vorgegebenen Zugriffskriterium
nicht genügt,
die Funktionalität
der Schaltkreis-Komponente reduziert wird.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung ist die Zugriffskontroll-Schnittstelleneinheit eingerichtet
zum Durchführen
mindestens einer kryptographischen Funktion.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung ist die Zugriffskontroll-Schnittstelleneinheit in der
ersten Recheneinheit integriert.
-
1 zeigt
ein Mobilfunk-Kommunikationsendgerät 100 gemäß einem
Ausführungsbeispiel
der Erfindung.
-
Das
Mobilfunk-Kommunikationsendgerät 100 weist
eine in einem Gehäuse 101 eingebrachte oder
an dieses angebrachte Antenne 102 auf sowie einen Lautsprecher 103 und
ein Mikrofon 104. Ferner sind bei dem Mobilfunk-Kommunikationsendgerät 100 ein
Display 105 vorgesehen sowie ein Tastenfeld 106 mit
einer Vielzahl von Tasten wie beispielsweise Funktionstasten 107, 108, 109, 110 wie
beispielsweise eine Einschalt-Taste 107, eine Ausschalt-Taste 108 sowie
eine Kommunikationsverbindungs-Abbruch-Taste 109 oder eine
Kommunikationsverbindungs-Aufbau-Taste 110. Weiterhin sind
in dem Tastenfeld 106 eine Vielzahl von Nummerntasten 111 vorgesehen,
welche jeweils eine Ziffer von 0, 1, ..., 9 repräsentieren. Weiterhin sind zwei
Symboltasten vorgesehen, eine „#”-Taste 112 sowie
eine „*”-Taste 113.
-
Das
Mobilfunk-Kommunikationsendgerät 100 ist
gemäß diesem
Ausführungsbeispiel
der Erfindung gemäß einem
Mobilfunk-Kommunikationsstandard
der dritten Generation, beispielsweise gemäß UMTS (Universal Mobile Telecommunications
System), alternativ gemäß GPRS (General
Packet Radio Service), EDGE (Enhanced Data Rates for GSM Evolution),
CDMA 2000 (Code Division Multiple Access 2000) oder FOMA (Freedom
of Mobile Multimedia Access) ausgestaltet sein.
-
Alternativ
kann das Mobilfunk-Kommunikationsendgerät 100 gemäß einem
Mobilfunk-Kommunikationsstandard der zweiten Generation, beispielsweise
gemäß GSM (Global
System for Mobil Communications), ausgebildet sein. Ferner kann
das Mobilfunk-Kommunikationsendgerät 100 gemäß einem Kommunikationsstandard
einer nachfolgenden Mobilfunk-Generation eingerichtet sein.
-
Weiterhin
weist das Mobilfunk-Kommunikationsendgerät die im Rahmen der Mobilfunk-Kommunikation üblichen
elektronischen Bauelemente auf, wie beispielsweise einen Kommunikations-Prozessor-Chip 200,
im Folgenden auch bezeichnet als Mobilfunk-Prozessor-Chip 200,
wie er beispielhaft im Detail in 2 dargestellt
ist.
-
Ein
in 2 dargestelltes Kommunikations-Chip-System 250 weist
den Mobilfunk-Prozessor-Chip 200 auf, gemäß diesem
Ausführungsbeispiel
der Erfindung einen S-Gold3TM-Chip der Firma Infineon
Technologies AG, der ein Basisband-Controller ist zur Verwendung
in einem GSM/UMTS-Mobilfunk- Kommunikationsendgerät 100 wie
es gemäß dem Ausführungsbeispiel
der Erfindung vorgesehen ist. Der Mobilfunk-Prozessor-Chip 200 ist
innerhalb des Mobilfunk-Kommunikationsendgeräts 100 der zentrale
Controller und enthält
die wesentliche Intelligenz des Mobilfunk-Kommunikationsendgeräts 100. Da die Anzahl
von sicherheitsrelevanten Applikationen wie beispielsweise Applikationen
des Digitale-Rechte-Managements (Digital Rights Management, DRM)
und anderen mobilen kommerziellen Anwendungs-Computerprogrammen,
welche auf dem Mobilfunk-Kommunikationsendgerät 100 installiert sind,
immer mehr ansteigt, wächst
auch der Bedarf nach verbesserter Sicherheit.
-
2 zeigt
die Struktur des Mobilfunk-Controllers 200 im Detail. Der
Mobilfunk-Controller 200 weist einen ARM 926 EJS-Prozessor 201 auf,
der in dem Mobilfunk-Controller 200 den zentralen Mikroprozessor
darstellt.
-
Ferner
ist ein Hochfahr-Nur-Lese-Speicher 202 (Boot Read Only
Memory, Boot-ROM), vorgesehen, in welchem mindestens eine erste Teil-Boot-Routine,
anders ausgedrückt
eine Teil-Routine zum Hochfahren des Mobilfunk-Kommunikationsendgerät 100 und
des Prozessors 201, gespeichert ist. Zusätzlich zu
dem Nur-Lese-Speicher
für die
erste Teil-Boot-Routine 202 ist ein flüchtiger lokaler Speicher 203 vorgesehen,
der jedoch aus Kostengründen
relativ klein gehalten ist. Der flüchtige On-Chip-Speicher 203 wird im Folgenden
auch als lokale Speichereinheit (Local Memory Unit, LMU) 203 bezeichnet.
Weiterhin ist eine Debug-Schnittstelle 204 vorgesehen,
mittels welcher ein Debugging-Tool an den Mobilfunk-Controller 201 angeschlossen
werden kann.
-
Mittels
einer ebenfalls vorgesehenen seriellen Schnittstelle 205 kann
der Prozessor 201 beispielsweise mit einem Personal Computer
oder einer Workstation verbunden werden. Ferner sind eine Krypto-Einheit 206,
im Folgenden auch als Krypto-Box bezeichnet, sowie eine System-Steuerungseinheit 207 vorgesehen
sowie elektronische Schmelzsicherungen 208, welche im Folgenden noch
näher erläutert werden.
Ferner weist der Prozessor-Chip 200 eine externe Bus-Schnittstelle 209 auf.
Der Prozessor 201, das Boot-ROM 202, die flüchtige lokale
Speichereinheit 203, die Debug-Schnittstelle 204,
die serielle Schnittstelle 205, die Krypto-Einheit 206 und
die System-Steuerungseinheit 207 sowie die externe Bus-Schnittstelle 209 sind
mittels eines Chip-internen Daten- und Adressbusses 210 miteinander
gekoppelt.
-
Mittels
der externen Bus-Schnittstelle 209 ist der Prozessor-Chip 200 mit
einem nicht-flüchtigen Direktzugriffsspeicher
(nicht-flüchtiges
Random Access Memory, nicht-flüchtiges
RAM) 211 verbunden sowie mit einem flüchtigen Direktzugriffsspeicher 212,
beispielsweise mit einem Dynamischen Direktzugriffsspeicher (Dynamic
Random Access Memory, DRAM).
-
Weiterhin
sind in dem Kommunikations-Chip-System 250 noch ein Digitaler
Signalprozessor 213, beispielsweise ein Digitaler Signalprozessor
(DSP) TEAKLite vorgesehen sowie Mobilfunk-Kommunikations-Module 214,
beispielsweise ein GSM-Kommunikationsmodul
und/oder ein UMTS-Kommunikationsmodul, welche die Funktionen der
physikalischen Schnittstelle der jeweiligen Mobilfunk-Kommunikationsstandards
bereitstellen.
-
Nach
Hochfahren des Prozessors 201 unter Verwendung der Boot-Routine, welche in
dem Boot-ROM 202 gespeichert ist, werden Computerprogramme
ausgeführt,
anders ausgedrückt
Computerprogramm-Code, welche in dem nicht-flüchtigen Direktzugriffsspeicher 211 gespeichert
sind.
-
Wie
oben beschrieben wurde, greift der Prozessor 201 mittels
des Chip-internen Busses 210 und der externen Bus-Schnittstelle 209 auf
den nicht-flüchtigen
Direktzugriffsspeicher 211 zu. Der Prozessor 201 greift ferner
mittels des Chip-internen Busses 110 und der externen Bus-Schnittstelle 209 auf
den flüchtigen
Direktzugriffsspeicher 212 zu.
-
Es
ist in diesem Zusammenhang anzumerken, dass in einer alternativen
Ausführungsform
der Erfindung der nicht-flüchtige Direktzugriffspeicher 211 sowie
alternativ oder zusätzlich
der flüchtige
Direktzugriffsspeicher 212 auch in dem Prozessor-Chip 200 integriert
sein kann oder können.
-
Mittels
der elektronischen Schmelzsicherungen 208 (Electronic Fuses,
im Folgenden auch bezeichnet als E-Fuses) ist es gemäß diesen
Ausführungsbeispielen
der Erfindung vorgesehen, einzigartige kundenspezifische Information
auf dem Prozessor-Chip 200 zu
speichern. Jede elektronische Schmelzsicherung 208 stellt
eine Einzel-Bit-Information dar, die gesetzt bzw. eingestellt werden
kann auf einen Wert, welcher der gewünschten Information entspricht,
nachdem der Prozessor-Chip 200 vollständig gefertigt
wurde.
-
Üblicherweise
wird ein speziell hierfür
vorgesehenes Tool verwendet, um die Werte der elektronischen Schmelzsicherungen 208 zu
setzen, beispielsweise um die jeweilige gewünschte elektronische Schmelzsicherung 208 durchzubrennen.
Dies kann durchgeführt
werden beispielsweise von dem Chip-Hersteller oder auch von dem
Mobilfunk-Kommunikationsendgeräte-Hersteller, für welchen
der Chip-Hersteller, anders ausgedrückt der Hersteller des Prozessor-Chips 200,
Zulieferer ist. Ist eine elektronische Schmelzsicherung 208 einmal
durchgebrannt, so kann der Wert dieser Schmelzsicherung nicht mehr
verändert
werden.
-
Die
elektronischen Schmelzsicherungen 208 werden sowohl zur
Speicherung von Informationen verwendet, welche von der Krypto-Einheit 206 verwendet
wird als auch zur Speicherung von Informationen, welche von der
System-Steuerungseinheit 207 verwendet wird.
-
Die
System-Steuerungseinheit 207 ist eine zentrale Einheit,
welche Logikelemente enthält
zum Steuern der Funktionalität
verschiedener Einheiten des Kommunikations-Prozessor-Systems 250.
-
Die
elektronischen Schmelzsicherungen 208 werden verwendet,
um das Prozessor-System 250 an Kundenwünsche anzupassen und zwar in nicht-flüchtiger
und sicherer Weise, so dass diese kundenangepassten Prozessor-Systeme 250 in
dem Mobilfunk-Kommunikationsendgerät 100 flexibel
eingesetzt werden können.
In den elektronischen Schmelzsicherungen 208 ist beispielsweise
eine eindeutige Schmelzsicherungs-Identifikationsangabe (auch bezeichnet
als Schmelzsicherungs-ID)
gespeichert, welche jedes S-Gold3-Prozessor-System 250 eindeutig
identifiziert. Diese Schmelzsicherungs-Identifikationsangabe wird gemäß diesem Ausführungsbeispiel
der Erfindung von dem Chip-Hersteller, beispielsweise von der Infineon Technologies
AG werksseitig eingebrannt.
-
Mittels
der seriellen Schnittstelle 205 können Computerprogramme in das
Mobilfunk-Kommunikationsendgerät,
genauer, in den Prozessor-Chip 200, geladen werden.
-
Das
Laden sowie auch gegebenenfalls das Ausführen der geladenen Computer-Programme wird
mittels einer On-Chip-Sicherheitsarchitektur, beispielsweise
realisiert mittels der Krypto-Einheit 206, on-chip kontrolliert
und überwacht.
Details hierzu werden im Folgenden noch näher erläutert.
-
Mittels
der Debug-Schnittstelle 204 ist zusätzlich ein Zugriff auf den
nicht-flüchtigen
Direktzugriffsspeicher 211 möglich, anders ausgedrückt stellt die
Debug-Schnittstelle 204 eine zweite Schnittstelle dar,
welche Zugriffsrecht auf den nicht-flüchtigen Direktzugriffsspeicher 211 hat,
wie im Folgenden ebenfalls noch näher erläutert wird.
-
Die
im Folgenden beschriebene Sicherheits-Architektur des S-Gold3-Prozessorsystems 250 basiert
gemäß einem
Ausführungsbeispiel
der Erfindung auf einem sicheren Booten, in dessen Rahmen starke
Kryptographie verwendet wird. Auf diese Weise wird gewährleistet,
dass, wenn das S-Gold3-Prozessorsystem 250 einmal
hochgefahren ist, der verwendete Satz von Computerprogramm-Code,
welcher ausgeführt
wird, von einer vertrauenswürdigen
legitimierten Quelle stammt, nicht unbefugt modifiziert wurde und
auch dazu bestimmt war und ist, mit dem jeweiligen spezifischen,
beispielsweise mittels der Schmelzsicherungs-Identifikationsangabe
identifizierten S-Gold3-Prozessorsystem 250 ausgeführt zu werden.
-
Beispielsweise
kann anschaulich der Prozessor 201 als ein vertrauenswürdiger Prozessor-Kern
angesehen werden, auf dem nur Computerprogramm-Code ausgeführt wird,
welcher von dem Mobilfunk-Kommunikationsendgerät-Hersteller zertifiziert wurde.
Applikation-Computerprogramme, welche von dem Nutzer des Kommunikations-Endgerätes 100 geladen
werden, sind zu zertifizieren. Der im Folgenden noch näher erläutert S-Gold3-Sicheres-Booten-Loader
ermöglicht
es dem Mobilfunk-Kommunikationsendgeräte-Hersteller
sicherzustellen, dass der Programmspeicher nur mit autorisierten
Computerprogrammen beschrieben werden kann, anders ausgedrückt, aktualisiert
werden kann, und dass die Quelle und die Legitimierung eines jeden
geladenen oder zu ladenden Applikation-Computerprogramms überprüft werden kann.
-
Das
S-Gold3-Prozessorsystem 250 weist einen kryptographischen
Block auf, wie oben beschrieben wurde, auch bezeichnet als Krypto-Einheit 206, mittels
welchem es ermöglicht
ist, sichere Systeme herzustellen. Mittels des S-Gold3-Prozessor-Systems 250 und
dem im Folgenden beschriebenen zugehörigen Framework wird es einem
Mobilfunk-Kommunikationsendgeräte-Hersteller ermöglicht,
ein Mobilfunk-Kommunikationsendgerät 100 mit einem Prozessor-System 250 herzustellen
und zu entwerfen, welches den kontrollierten Export unter den Dual-Use-Exportregularien
erleichtert.
-
3 zeigt
die Struktur und den Aufbau der Krypto-Einheit 206 im Detail.
-
In
der Krypto-Einheit 206 sind folgende Hardwarebeschleuniger-Komponenten
zum Bereitstellen der folgenden kryptographischen Sicherheitsdienste vorgesehen:
- • eine
asymmetrische Verschlüsselungs-/Entschlüsselungseinheit 301,
- • eine
symmetrische Verschlüsselungs-/Entschlüsselungseinheit 302,
- • eine
Einweg-Hashfunktion-Einheit 303,
- • eine
Zufallszahlen-Erzeugungseinheit 304.
-
Ferner
weist die Krypto-Einheit 206 eine Sicherheitsdienst-Auswähleinheit 305 auf
sowie eine Krypto-Einheit-Steuerungseinheit 306 und
eine Chip-interne Busschnittstelle 307.
-
Die
Schnittstelle 307 stellt eine Schnittstelle zu dem Chip-internen Adress-
und Datenbus 210 und damit die Kommunikationsverbindung
zu dem Prozessor 201 bereit.
-
Die
asymmetrische Verschlüsselungs-/Entschlüsselungseinheit 301 weist
mindestens einen Hardwarebeschleuniger zum Bereitstellen eines asymmetrischen
Verschlüsselungsverfahren und/oder
Entschlüsselungsverfahren
auf, gemäß diesem
Ausführungsbeispiel
der Erfindung einen Hardwarebeschleuniger zum Bereitstellen des
RSA-Verfahrens. Ferner weist die asymmetrische Verschlüsselungs-/Entschlüsselungseinheit 301 gemäß diesem
Ausführungsbeispiel
der Erfindung eine RSA-Steuerungseinheit 308 auf
zum Steuern des mittels des RSA-Hardwarebeschleunigers 309 bereitgestellten
RSA-Verfahrens. Ferner ist in der asymmetrischen Verschlüsselungs-/Entschlüsselungseinheit 301 noch
ein statischer Direktzugriffsspeicher (Static Random Access Memory,
SRAM) 310 vorgesehen.
-
Die
symmetrische Verschlüsselungs-/Entschlüsselungseinheit 302 weist
einen oder mehrere symmetrische Verschlüsselungs-Hardwarebeschleuniger auf zum Bereitstellen
eines oder mehrerer symmetrischer Verschlüsselungsverfahren, beispielsweise
zum Bereitstellen des Data Encryption Standard-Verfahrens (DES),
des Triple Data Encryption Standard-Verfahrens (TDES), des International
Data Encryption Algorithm-Verfahrens (IDEA) oder auch des Advanced
Encryption Standard-Verfahrens (AES), allgemein eines jeden symmetrischen
Verschlüsselungsverfahrens
und/oder Entschlüsselungsverfahrens,
sei es beispielsweise Stromchiffre-basiert oder Blockchiffre-basiert.
-
Gemäß diesem
Ausführungsbeispiel
der Erfindung weist die symmetrische Verschlüsselungs-/Entschlüsselungseinheit 302 einen DES/TDES-Hardwarebeschleuniger 311 auf
sowie einen AES-Hardwarebeschleuniger 312,
welcher eingerichtet ist zur Verschlüsselung-/Entschlüsselung von
Daten mittels eines Schlüssels
von 128 Bit Länge.
Ferner ist eine entsprechende Steuerungseinheit 313 vorgesehen
und eine Schlüssel-Verwaltungseinheit 314.
Die symmetrische Verschlüsselungs-/Entschlüsselungseinheit 302 ist
mittels einer Schmelzsicherungs-Schnittstelle (nicht gezeigt) mit
den jeweiligen elektronischen Schmelzsicherungen 208 gekoppelt,
welche im Rahmen der symmetrischen Verschlüsselung bzw. Entschlüsselung
von Daten verwendet werden.
-
Die
Einweg-Hashfunktion-Einheit 303 ist eingerichtet zum Bereitstellen
einer Einweg-Hashfunktion, welche auf die dieser Einheit zugeführten Daten angewendet
wird, wobei von der Einweg-Hashfunktion-Einheit 303 ausgangsseitig
der jeweilige über
die der Einheit zugeführten
Daten ermittelte Hash-Wert gemäß der jeweiligen
Einweg-Hashfunktion bereitgestellt wird.
-
Gemäß diesem
Ausführungsbeispiel
der Erfindung sind folgende Einweg-Hashfunktion-Hardware-Beschleunigungseinheiten
vorgesehen:
- • eine MD5-Hardwarebeschleunigereinheit 315 sowie
- • eine
Secure Hash Algorithm 1 (SHA-1) Hardwarebeschleunigereinheit 316.
-
Die
Zufallszahlen-Erzeugungseinheit 304 weist eine Zufallszahlen-Quelle 317 auf
sowie eine Zufallszahlen-Erzeugungs-Algorithmus-Hardwarebeschleuniger-Komponente 318,
welche unter Verwendung der von der Zufallszahlen-Quelle 317 bereitgestellten
Information eine Zufallszahl erzeugt.
-
4 zeigt
in einem Ablaufdiagramm 400 ein Verfahren zum Hochfahren
des Prozessor-Systems 250 gemäß einem Ausführungsbeispiel
der Erfindung.
-
Nach
Starten des Hochfahrens (Schritt 401) wird überprüft, ob der
das Prozessor-System 250 hochfahrende Nutzer berechtigt
ist, mindest eine von dem Prozessor-System 250 bereitgestellte
kryptographische Funktion zu nutzen (Schritt 402). Ist
der Nutzer nicht berechtigt, mindestens eine von dem Prozessor-System 250,
genauer von der Krypto-Einheit 206,
bereitgestellte kryptographische Funktion zu nutzen („Nein” in Prüfschritt 403)
so wird das Prozessor-System 250,
genauer der Prozessor 201, in einem ersten Betriebsmodus
hochgefahren, in welchem der Nutzer keinen Zugriff hat auf die von
der Krypto-Einheit, allgemein von der Schaltkreis-Anordnung, bereitgestellte
mindestens eine kryptographische Funktion. Ist der Nutzer jedoch
berechtigt, mindestens eine von der Schaltkreis-Anordnung, beispielsweise
von der Krypto-Einheit 206 bereitgestellte kryptographische
Funktion zu nutzen („Ja” in Prüfschritt 403),
so wird die Schaltkreis-Anordnung, beispielsweise der Prozessor 201,
in einem zweiten Betriebsmodus hochgefahren, in welchem der Nutzer Zugriff
hat auf die mindestens eine von der Schaltkreis-Anordnung, beispielsweise
von der Krypto-Einheit 206, bereitgestellte kryptographische
Funktion.
-
Das
Ausführen
von einem Applikation-Computerprogramm, beispielsweise das Verarbeiten
einer Zugriffsanforderung eines ausgeführten Applikation-Computerprogramms
auf eine von dem Prozessor-System 250, allgemein auf eine
von der Schaltkreis-Anordnung, bereitgestellte kryptographische Funktion
ist in einem Ablaufdiagramm 500 in 5 dargestellt.
-
Nach
Starten des Applikation-Computerprogramms, welches beispielsweise
in dem nicht-flüchtigen
Direktzugriffsspeicher 211 und in dem flüchtigen Direktzugriffsspeicher 312 gespeichert
ist (Schritt 501), wird gegebenenfalls eine Zugriffsanforderung des
Applikation-Computerprogramms empfangen, mit welcher auf eine von
der Schaltkreis-Anordnung, beispielsweise
von der Krypto-Einheit 206 bereitgestellte kryptographische
Funktion zugegriffen werden soll (Schritt 502). Nach Empfangen
einer solchen Zugriffsanforderung wird, beispielsweise von dem Prozessor 201, überprüft, ob das
Applikation-Computerprogramm berechtigt ist, auf die gewünschte kryptographische
Funktion, allgemein auf die Einheit, welche die mindestens eine
kryptographische Funktion bereitstellt, beispielsweise auf die Krypto-Einheit 206,
zuzugreifen (Schritt 503).
-
Ist
das Applikation-Computerprogramm nicht berechtigt, auf die kryptographische
Funktion zuzugreifen („Nein” in Prüfschritt 504),
so wird die Zugriffsanforderung abgelehnt (Schritt 505).
Ist jedoch das Applikation-Computerprogramm berechtigt, auf die
kryptographische Funktion zuzugreifen („Ja” in Prüfschritt 504) so wird
die jeweilige gewünschte kryptographische
Funktion aufgerufen (Schritt 506).
-
Gemäß den Ausführungsbeispielen
der Erfindung wird ein Rahmenwerk (Framework) bereitgestellt, mittels
welchen es ermöglicht
wird, das die kryptographischen Funktionen der Krypto-Einheit in dem
Prozessor-System 250 nur von Mobilfunk-Kommunikationsendgeräte-Herstellern genutzt werden können, welche
zugestimmt haben, einen Regelsatz zu befolgen, gemäß welchem
sichergestellt wird, dass das endgültige Produkt, d. h. beispielsweise
das Mobilfunk-Kommunikationsendgerät 100, den „Dual-Use”-Exportregularien
beispielsweise des Wassenaar-Abkommens
genügt.
-
Gemäß diesen
Ausführungsbeispielen
der Erfindung wird ein kryptographisches Zertifikat des Prozessor-System-Herstellers, beispielsweise
ein kryptographisches Zertifikat der Infineon Technologies AG, welches
in dem Boot-ROM 202 gespeichert ist, als Basis (auch bezeichnet
als Wurzel) des Kontroll-Rahmenwerks verwendet.
-
Jeder
Kunde, an welchen das Prozessor-System 250, beispielsweise
das S-Gold3-Prozessor-System 250 ausgeliefert wird, besitzt
ebenfalls ein Wurzel-Zertifikat, welches in dem nicht-flüchtigen
Direktzugriffsspeicher 211 gespeichert ist, wobei das Wurzel-Zertifikat
von einer vertrauenswürdigen
Instanz, beispielsweise von dem Prozessor-System-Hersteller, digital
unter Verwendung von dessen privaten kryptographischen Schlüssel, digital
signiert wurde. Das Wurzel-Zertifikat des Kunden repräsentiert
die Zustimmung zu dem jeweiligen Export-Abkommen und der Programmfluss
beim Durchführen des
in dem Boot-ROM 202 gespeicherten Boot-Programms verhält sich entsprechend.
-
Es
sind gemäß diesen
Ausführungsbeispielen
der Erfindung folgende Optionen vorgesehen:
- 1.
Das Mobilfunk-Kommunikationsendgeräte-Herstellerunternehmen exportiert Software,
d. h. Applikation-Computerprogramme, welche den „Dual-Use”-Exportregeln genügen. In diesem Fall ist es
erforderlich, dass der Mobilfunk-Kommunikationsendgeräte-Hersteller
eine Exportlizenz beantragt zum Nutzen dieser jeweiligen Software,
d. h. des entsprechenden Applikation-Computerprogramms, innerhalb des Prozessor-Systems 250, beispielsweise
innerhalb des S-Gold3-Prozessorsystems.
- 2. Der Prozessor-System-Hersteller, beispielsweise die Infineon
Technologies AG, liefert eine entsprechende Krypto-Einheit-Applikations-
und Programmier-Schnittstellensoftware
(im Folgenden auch bezeichnet als Crypto Box Application and Programming
Interface, CAPI). Die CAPI steuert die Verwendung der Krypto-Einheit 206 bzw.
auch den Zugriff auf die Krypto-Einheit 206.
-
In
dem Fall 2 ist hinsichtlich des Mobilfunk-Kommunikationsendgeräte-Herstellers zu unterscheiden:
- • der
Mobilfunk-Kommunikationsendgeräte-Hersteller
stimmt zu, Software, d. h. Applikation-Computerprogramme zu entwickeln
und zu verwenden, welche eine (beispielsweise von dem Prozessor-System-Hersteller,
beispielsweise von der Infineon Technologies AG, allgemein von einer vertrauenswürdigen Instanz),
gelieferten Authentifikations-Routine aufzurufen, mittels welcher
die CAPI überprüft wird,
oder
- • der
in dem Boot-ROM 202 gespeichert Code ruft die Authentifikations-Routine
beim Hochfahren des Prozessors 201 auf.
-
Im
Folgenden wird das Wurzel-Zertifikat des Mobilfunk-Kommunikationsherstellers
als GOLD Public Key (GPuK) bezeichnet, da dieses den öffentlichen
Schlüssel
darstellt, welcher den Inhalt des nicht-flüchtigen Programmspeichers 211 an
die Prozessor-System-Komponenten bindet.
-
Die
Prozessor-System-Komponenten des Prozessor-Systems 250,
welche kontrolliert exportiert werden, werden derart „gefused”, dass
die Krypto-Einheit 206 nicht zugänglich ist, anders ausgedrückt, dass
auf die Krypto-Einheit 206 und die mittels dieser bereitgestellten
kryptographischen Funktionen nicht zugegriffen werden kann. Die
Krypto-Einheit 206 kann nur zugänglich gemacht werden mittels einer
zusätzlichen
extra Fuse-Operation.
-
Diese
Fuse-Operation führt
dazu, dass das Prozessor-System 250, beispielsweise S-Gold3,
nur unter Verwendung des Infineon-Wurzel-Zertifikats, welches in
dem Boot-ROM 202 gespeichert ist, hochfährt. Dies bedeutet, dass nur
derjenige Kunde, anders ausgedrückt
Nutzer, Zugriff auf die Krypto-Einheit-Hardware
hat, welcher das System mit einem gültigen signierten Zertifikat
hochfährt,
welches in dem nichtflüchtigen
Direktzugriffsspeicher 211 gespeichert ist.
-
Auf
die Krypto-Einheit 205 kann gemäß einem Ausführungsbeispiel
der Erfindung nur mittels einer Krypto-Applikations- und Programmier-Schnittstelle
(Crypto Applikation and Programming Interface, CAPI) 215 zugegriffen
werden. Auf die Krypto-Funktionalität, welche von der Krypto-Einheit 206 wie
oben dargelegt bereitgestellt wird, kann nicht direkt von einer
Applikation, anders ausgedrückt,
von einem Applikation-Computerprogramm, zugegriffen werden. Applikation-Computerprogramme
greifen auf die Allgemeinzweck-Schnittstelle
und mittels dieser auf einen Krypto-Einheit-Software-Treiber mittels eines Trust-Moduls
zu. Das Trust-Modul überprüft, ob das
Applikation-Computerprogramm ein gültiges Zertifikat enthält, welches
dem Applikation-Computerprogramm
die vollständige
Nutzung der von der Krypto-Einheit 206 bereitgestellten
kryptographischen Funktionen bzw. kryptographischen Dienste erlaubt. Die
vollständige
Nutzung der Funktionen der Krypto-Einheit 206 enthalten
die Nutzung asymmetrischer Operationen mit Schlüssellängen der verwendeten Schlüssel von
größer als
512 Bit oder beispielsweise symmetrische Verschlüsselungs-Operationen unter Verwendung
von Schlüsseln
mit einer Schlüssellänge von
mehr als 56 Bit.
-
Wenn
ein Applikation-Computerprogramm das erste Mal eine Funktion der
Krypto-Einheit 206 nutzen möchte und somit eine Zugriffsanforderung an
die Krypto-Einheit 206 stellt, so ist es vorgesehen, dass
das Applikation-Computerprogramm bei dem Trust-Modul anfordert,
dass dieses das kryptographische Zertifikat des Applikation-Computerprogramms importiert.
Das Trust-Modul überprüft die Gültigkeit des
Zertifikats des Applikation-Computerprogramms. Es dürfen solche
Zertifikate nur an Applikation-Computerprogramme bzw. deren Hersteller
oder Entwickler vergeben werden, welche sich innerhalb der Exportregel
bewegen, welche gemäß den „Dual-Use”-Exportregeln
definiert sind und nur solchen Applikation-Computerprogrammen darf
Zugriff auf die volle Funktionalität der Krypto-Einheit 206 gegeben
werden. Der Mobilfunk-Kommunikationsendgeräte-Hersteller signiert digital diese kryptographischen
Zertifikate, welche im Folgenden auch als Secure Application Certificates
(SecAppCer) mit einem der CAPI-zugeordneten privaten Schlüssel des
Mobilfunk-Kommunikationsendgeräte-Herstellers (im Folgenden
auch bezeichnet als Equipment Manufacturer, EM), welcher der CAPI
für dieses
jeweilige Modell des Mobilfunk-Kommunikationsendgeräts 100 zugeordnet
ist. Dieser private Schlüssel
wird im Folgenden auch als EMCAPIPrK bezeichnet und wird nicht in
dem Mobilfunk-Kommunikationsendgerät 100 gespeichert.
Der zu diesem privaten Schlüssel EMCAPIPrK
zugehörige öffentliche
Schlüssel
EMCAPIPuK wird in dem Mobilfunk-Kommunikationsendgerät 100 gespeichert
zum Verifizieren der SecAppCerts. Der private Schlüssel EMCAPIPrK und
der zugehörige öffentliche
Schlüssel
EMCAPIPuK bilden ein gemeinsames asymmetrisches Schlüsselpaar.
-
Wie
im Folgenden noch näher
erläutert
wird, wird der öffentliche
Schlüssel
EMCAPIPuK beim Hochfahren des Prozessor-Systems 250 auf
dessen Gültigkeit überprüft. Entsprechend
ist die Boot-Routine, welche in dem Boot-ROM 202 gespeichert
ist, eingerichtet. Der öffentliche
Schlüssel
EMCAPIPuK ist entweder der kundenspezifische öffentliche Schlüssel des
Mobilfunk-Kommunikationsendgeräte-Herstellers,
im Folgenden auch bezeichnet als GPuK, alternativ ist er ein Schlüssel, welcher
sich in einer vertrauenswürdigen
Kette befindet, geschützt durch
eine digitale Signatur unter Verwendung des privaten Schlüssels des
Mobilfunk-Kommunikationsendgeräte-Herstellers,
welcher gemeinsam mit dem öffentlichen
Schlüssel
des Mobilfunk-Kommunikationsendgeräte-Hersteller
GPuk ein asymmetrisches Schlüsselpaar
bildet, oder ist mittels des öffentlichen Schlüssels des
Mobilfunk-Kommunikationsendgeräte-Herstellers
GPuK geschützt.
-
Wird
ein kryptographisches Zertifikat eines Applikation-Computerprogramms
von dem Trust-Modul importiert, so erfolgt dies auf den Empfang
eines Aufrufs der Schnittstelle mittels eines Applikation-Computerprogramms-Aufrufs „Import
Certificates()” hin.
Im Rahmen dieses Aufrufs übergibt
das Applikation-Computerprogramm ein X.509v3-Zertifikat (beispielsweise
das SecAppCert) an das Trust-Modul, wobei das Zertifikat SecAppCert
unter Verwendung des privaten, anders ausgedrückt des geheimen Schlüssels des
Mobilfunk-Kommunikationsendgeräte-Herstellers
EMCAPIPrK signiert wurde. Das Trust-Modul ermittelt aus dem Aufruf
das Zertifikat und verifiziert die Signatur des öffentlichen Schlüssels unter
Verwendung des in dem Boot-ROM 202 gespeicherten öffentlichen
Schlüssels
des Mobilfunk-Kommunikationsendgeräte-Herstellers EMCAPIPuK.
-
Ist
das überprüfte und
zu verifizierende Zertifikat gültig,
so wird das Zertifikat in den nicht-flüchtigen Direktzugriffsspeicher 211 des
Mobilfunk-Kommunikationsendgeräts 100 gemeinsam
mit diesem zugeordneten Metadaten, welche von dem Trust-Modul bereitgestellt
werden, gespeichert und eine entsprechende Handler-Routine wird
an das Applikation-Computerprogramm zurückgegeben. Die Handler-Routine kann von
dem Applikation-Computerprogramm für alle zukünftigen Operationen genutzt
werden, in welchen das spezifische Zertifikat enthalten ist bzw.
benötigt
wird.
-
Ist
das Zertifikat nicht gültig,
so wird eine entsprechende Fehlermeldung an das Applikation-Computerprogramm
zurückgegeben,
anders ausgedrückt,
an dieses übermittelt.
-
Der
Treiber der Krypto-Einheit 216 und das Trust-Modul werden
zur Sicherung ihrer Integrität beim
Hochfahren des Prozessor-Systems 250 authentifiziert.
Dies erfolgt unter Verwendung eines Zertifikates, welches entweder
in dem Boot-ROM 202 gespeichert ist oder unter Verwendung
eines Zertifikats, welches in dem nicht-flüchtigen Direktzugriffsspeicher 211 gespeichert
ist und welches beim Hochfahren unter Verwendung eines in dem Boot-ROM 202 gespeicherten
Zertifikats schon authentifiziert wurde.
-
Das
Mobilfunk-Kommunikationsendgerät 100 verwendet
den Krypto-Einheit-Treiber und das Trust-Modul oder ein identisches
Abbild dieser Module für
jeden erfolgten Zugriff oder für
jede Zugriffsanforderung auf die kryptographischen Funktionen der Krypto-Einheit 206.
-
Das
im Folgenden beschriebene sichere Hochfahren des Prozessor-Systems 250 basiert
gemäß einem
Ausführungsbeispiel
der Erfindung auf dem Prinzip, dass ein in dem Programmspeicher,
anders ausgedrückt
in dem nicht-flüchtigen
Direktzugriffsspeicher 211, gespeicherter öffentlicher
Schlüssel
an das Prozessor-System 250, beispielsweise an das S-Gold3-Prozessor-System
gebunden ist. Dieser öffentliche
Schlüssel,
beispielsweise der öffentliche Schlüssel GPuK
des Mobilfunk-Kommunikationsendgeräte-Herstellers, ist gemäß einem
Ausführungsbeispiel
der Erfindung in einem Bereich des nicht mobilen nicht-flüchtigen
Direktzugriffsspeichers 211 gespeichert, welcher auch als
Primary Signed Image (PSI) bezeichnet wird und sich in dem Block „0” des Programmspeichers 211 befindet.
-
Der öffentliche
Schlüssel
GPuK des Mobilfunk-Kommunikationsendgeräte-Herstellers
wird von dem Boot-ROM-Code
verwendet zum Überprüfen des
Inhalts des Blocks „0” des PSI
daraufhin, ob der Inhalt korrekt ist und nicht manipuliert wurde.
Der PSI-Bereich 601 des nicht-flüchtigen Direktzugriffsspeichers 211 (vgl. 6)
enthält
einen Hash-Wert (gemäß diesem
Ausführungsbeispiel
gebildet unter Verwendung des SHA-1-Verfahrens), welcher gebildet
wurde über
den restlichen Bereich des PSI-Bereichs 601. Der Hash-Wert
ist mit zu dem öffentlichen Schlüssel GPuK
des Mobilfunk-Kommunikationsendgeräte-Herstellers
korrespondierenden privaten Schlüssel
GPrK gemäß dem RSA-Verfahren
digital signiert. Der digital signierte Hash-Wert 602 kann verwendet
werden zum Überprüfen der
Integrität
des gesamten Boot-Blocks,
anders ausgedrückt
des gesamten PSI-Bereichs 601.
-
Das
allgemeine Verfahren zum Überprüfen des
PSI-Bereichs 601 wird ferner verwendet von der Secure Flash-Ladeeinheit
(Secure Flash Loader), welche in dem Boot-ROM 202 gespeichert
ist. Die Secure Flash-Ladeeinheit steuert das Aktualisieren des
nicht-flüchtigen
Direktzugriffsspeichers 211, im Folgenden auch als Flash-Speicher
bezeichnet. Der neue Code, anders ausgedrückt das neue Computerprogramm,
wird in die lokale Speichereinheit 203 des S-Gold3-Prozessor-Systems 250 mittels
der seriellen Schnittstelle 205, beispielsweise einer USB-Schnittstelle
oder einer UART-Schnittstelle, geladen. Die Flash-Ladeeinheit überprüft die Gültigkeit
des heruntergeladenen Computerprogramms, welches in der lokalen
Speichereinheit 203 gespeichert ist. Wenn das heruntergeladene
Applikation-Computerprogramm, anders ausgedrückt der heruntergeladene Computerprogramm-Code
nicht von einer korrekten Herkunft, d. h. nicht von einem zertifizierten
Hersteller bzw. Entwickler, stammt oder wenn der heruntergeladene
Computerprogramm-Code unbefugt manipuliert wurde, dann wird das
Applikation-Computerprogramm,
welches in der lokalen Speichereinheit 203 gespeichert
ist, nicht durchgeführt.
In diesem Fall wird das in der lokalen Speichereinheit 203 zwischengespeicherte
Applikation-Computerprogramm nicht in den nicht-flüchtigen
Direktzugriffsspeicher 211 geschrieben, anders ausgedrückt, in
diesem Fall wird der nicht-flüchtige
Direktzugriffsspeicher 211 nicht aktualisiert.
-
Gemäß diesem
Ausführungsbeispiel
der Erfindung wird der Sicherheits-Ablauf gemäß dem Prozessor-System 250 eingestellt
unter Verwendung der elektronischen Schmelzsicherungen 208.
Es sind zwei elektronische Schmelzsicherungen 208 vorgesehen,
welche es ermöglichen,
einen nicht-sicheren Ablauf einzustellen oder einen sicheren Ablauf.
-
Die
sicherheitsrelevante Speicherstruktur ist in 6 dargestellt.
Der kryptographische Validierungs-Ablauf ist in einem Ablaufdiagramm 700 in 7 dargestellt.
-
Gemäß dem sicheren
Hochfahren des Prozessor-Systems 250 wird gemäß diesen
Ausführungsbeispielen
der Erfindung immer eine kryptographische Überprüfung des Blocks „0” (d. h.
des ersten Blocks des Computer-Programm-Codes des nicht-flüchtigen
Direktzugriffsspeichers 211) durchgeführt, bevor der Computerprogramm-Code,
welcher in dem nicht-flüchtigen
Direktzugriffsspeicher 211 gespeichert ist, ausgeführt wird.
Das Ziel hierbei ist, die Quelle des in dem nicht-flüchtigen
Direktzugriffsspeichers 211 gespeicherten Computerprogramm-Codes zu überprüfen und
sicherzustellen, dass sie nicht illegalerweise geändert wurde,
seitdem das Applikation-Computerprogramm
in dem nicht-flüchtigen
Direktzugriffsspeicher 211 ursprünglich gespeichert wurde. Dies
wird durchgeführt
unter Verwendung der im Folgenden noch näher erläuterten kryptographischen Technologien
und Verfahren.
-
Wie
in 6 dargestellt ist, sind in dem Boot-ROM 202 unter
anderem folgende Informationen gespeichert:
- • der öffentliche
Schlüssel
des Prozessor-System-Herstellers,
beispielsweise der öffentliche Schlüssel 603 der
Infineon Technologies AG, im Folgenden bezeichnet als GROMPuK 603,
- • eine
ROM-Krypto-Bibliothek 604, in welcher ein RSA-Verfahren sowie ein
SHA-1-Einweg-Hashfunktion-Verfahren gespeichert sind; weiterhin sind
Hardware-basierte kundenspezifische Informationen 605 gespeichert,
beispielsweise in Form von Sicherheits-Seriennummern, im Folgenden auch
bezeichnet als SecVersX (beispielsweise m·32 Bit-Nummern), und SecVersY
(beispielsweise n·32
Bit-Nummern).
-
Ferner
ist in dem Boot-ROM 202 die sichere Boot-Routine 606 gespeichert.
-
In
dem PSI 601 des nicht-flüchtigen Direktzugriffsspeichers 211 sind
folgende Daten gespeichert:
- • ein Kopffeld
(Header) 607 des öffentlichen Schlüssels GPuK
des Kunden, wobei das Kopffeld eine Versionsnummer des Zertifikats
enthält sowie
die korrekte Identifikationsangabe des Prozessor-Chips 200 sowie
die Sicherheits-Seriennummer SecVersX und den Kontrolltyp der CAPI;
- • der öffentliche
Schlüssel
GPuK 608 des Kunden;
- • ein
digitaler Signaturwert 609, signiert unter Verwendung des
geheimen Schlüssels
GROMPrK des Chip-Herstellers, des Hash-Werts, welcher gebildet wurde über das
Kopffeld 607 des öffentlichen
Schlüssels
GPuK des Kunden und den öffentlichen
Schlüssel
GPuk des Kunden, wobei der Hash-Wert
verschlüsselt
ist mit dem privaten Schlüssel
GROMPrK des Chip-Herstellers;
- • eine
Second-Level-Boot-Routine 610;
- • eine
zusätzliche
Boot-Routine 611, welche unter anderem eine Überprüfung seitens
der Krypto-Einheit 206 enthält;
- • sowie
den Hash-Wert 602, welcher über den PSI-Bereich 601 gebildet
wurde unter Verwendung des privaten Kundenschlüssels GPrK.
-
Ferner
sind in dem nicht-flüchtigen
Direktzugriffsspeicher 611 weitere Bootsequenzen gespeichert
sowie Routinen zum sicheren Downloaden (Herunterladen) von Daten
(in 6 symbolisch dargestellt mittels eines Blocks 612).
-
Im
Folgenden werden einige kryptographische Funktionen und deren Grundlagen
im Rahmen der Ausführungsbeispiele
der Erfindung erläutert.
-
Zunächst wird
eine kryptographische Einweg-Hash-Funktion beschrieben. Eine kryptographische
Hash-Funktion ist eine kryptographische Einweg-Funktion, mittels
welcher es ermöglicht
wird, einen Fingerabdruck eines Datenstücks zu erzeugen. Wenn der Computerprogramm-Code,
welcher in dem Block „0” des PSI-Bereichs 601 des
nicht-flüchtigen Direktzugriffsspeichers 211 gespeichert
ist, erzeugt wurde, wird der Hash-Wert des gespeicherten Computerprogramm-Codes
erzeugt und in dem Block „0” des nicht-flüchtigen
Direktzugriffsspeichers 611 gespeichert. Zum Erzeugen des
Fingerabdrucks wird gemäß diesem
Ausführungsbeispiel
der Erfindung der Hash-Algorithmus SHA-1 verwendet. SHA-1 ist ein üblicher
Algorithmus, welcher jedoch für
sich genommen nicht ausreicht, um den gewünschten Grad an Sicherheit
zu gewährleisten.
Der gewünschte Grad
an Sicherheit wird erreicht, indem der erzeugte Hash-Wert mit einem
RSA-privaten Schlüssel
digital signiert wird.
-
Im
Folgenden wird dieses Konzept näher
erläutert.
-
Der
Block „0” des nicht-flüchtigen
Direktzugriffsspeichers 211 enthält, wie oben beschrieben wurde,
den öffentlichen
Schlüssel
des Kunden, im Folgenden auch bezeichnet als Gold Public Key GPuK.
Der GPuK dient dazu, den Block „0” des nicht-flüchtigen
Direktzugriffsspeichers 211 an den Prozessor-Chip 200 koppeln,
beispielsweise an den S-Gold-Chip.
Der öffentliche
Schlüssel
GPuK gehört zu
einem asymmetrischen Schlüsselpaar.
Der korrespondierende zugehörige
private, anders ausgedrückt
geheime, Schlüssel
dieses Schlüsselpaars wird
im Folgenden auch als Gold Private Key GPrK, bezeichnet. Der öffentliche
Schlüssel
GPuk und der private Schlüssel
GPrK bilden gemeinsam ein asymmetrisches Kunden-Schlüsselpaar.
-
Asymmetrische
Schlüsselpaare
weisen die folgende Eigenschaft auf: Wenn ein Datenstück unter Verwendung
eines Schlüssels
des Schlüsselpaares verschlüsselt wird,
dann kann es nur von dem anderen Schlüssel des Schlüsselpaares
entschlüsselt werden.
Dies bedeutet, dass für
den Fall, dass ein Schlüssel
ein geheimer Schlüssel
ist (in diesem Fall GPrK), so kann dieser geheime Schlüssel verwendet werden,
um ein Datenstück
zu „Signieren” und der zugehörige öffentliche
Schlüssel
(in diesem Fall GPuK) kann verwendet werden zum Entschlüsseln des
Datenstücks
und damit zum Beweisen der Herkunft des Datenstücks. GPrK wird verwendet zum
Signieren des Hash-Werts des Blocks „0” des nicht-flüchtigen
Direktzugriffsspeichers 211 und der öffentliche Schlüssel GPuK
wird verwendet zum Entschlüsseln
des „signierten” Hash-Werts
des Blocks „0” des nicht-flüchtigen
Direktzugriffsspeichers 211 beim Hochfahren des Prozessor-Systems 250.
-
Der
Signier-Prozess findet in einer sicheren Umgebung während der
Herstellung der Plattform bzw. des Prozessor-Systems 250 statt.
Weiterhin ist der private Schlüssel
GPrK in der Mobilfunk-Kommunikationsendgeräte-Plattform nicht verfügbar.
-
Der
Boot-Speicher 202 enthält
einen Boot-Computerprogramm-Code,
welcher bei dessen Ausführung
die folgenden Routinen aufweist:
- 1. Bilden
eines Hash-Werts des Blocks „0” des nicht-flüchtigen
Direktzugriffspeichers 211;
- 2. Entschlüsseln
(oder Verifizieren) des gespeicherten signierten Hash-Werts des
Blocks „0” unter
Verwendung des öffentlichen
Schlüssels GPuK;
- 3. Überprüfen, ob
die beiden Resultate miteinander übereinstimmen.
-
Wie
oben beschrieben wurde sind die Routinen zum Durchführen des
SHA-1-Verfahrens und die RSA-Verifizierungs-Routine in der Krypto-Bibliothek 604 als
Teil des Boot-ROM-Computerprogramm-Codes
in dem ROM-Speicher 202 gespeichert.
-
Der
sichere Boot-Prozess, wie er oben beschrieben wurde, funktioniert,
wenn ein Mechanismus zum Binden des öffentlichen Schlüssel GPuK 608 des
Kunden, welcher in dem nicht-flüchtigen
Direktzugriffsspeicher 211 gespeichert ist, an den Prozessor-Chip 200,
beispielsweise den Gold-Chip 200, verfügbar ist.
-
Im
Folgenden wird das Bindungs-Konzept des öffentlichen Schlüssels GPuK 608 des
Kunden an den Prozessor-Chip 200 näher erläutert.
-
Wie
oben beschrieben wurde ist der öffentliche
Schlüssel
GPuK 608 in dem Block „0” des nicht-flüchtigen
Direktzugriffsspeichers 211 gespeichert, wobei er jedoch
als Teil eines kryptographischen Zertifikats gespeichert ist. Dieses
kryptographische Zertifikat ist ferner gespeichert gemeinsam mit
einem digital signierten Hash-Wert des Zertifikats 609.
Der Hash-Wert ist signiert unter Verwendung eines asymmetrischen
privaten Schlüssels,
auch bezeichnet als GROMPrK. Der zugehörige öffentliche Schlüssel GROMPuK
ist in dem Boot-ROM-Speicher 202 gespeichert.
-
Bevor
der öffentliche
Schlüssel
GPuK 608 verwendet wird, wird dessen Zertifikat mittels
des Boot-ROM-Computerprogramm-Codes gehashed, d. h. es wird über diesen
ein Hash-Wert gebildet. Ferner wird der signierte Hash-Wert, welcher über das GPuK-Zertifikat gebildet
wurde, unter Verwendung des Boot-ROM-Computerprogramm-Codes verifiziert.
Die beiden Resultate werden miteinander verglichen. Auf diese Weise
wird sichergestellt, dass das GPuK-Zertifikat nicht verändert wurde
und von einer legalen Herkunft stammt. Auf diese Weise wird der öffentliche
Schlüssel
GPuK an den Prozessor-Chip 200 gebunden. Der private Schlüssel GROMPrK
wird in einem Trust Center zum sicheren Signieren gespeichert. Es
wird in diesem Ausführungsbeispiel
der Erfindung ohne Einschränkung
der Allgemeingültigkeit
davon ausgegangen, dass der Chip-Hersteller eine
sichere Umgebung bereitstellt und einen Prozess definiert, um die
von den Trust Center benötigten
Operationen bereitzustellen.
-
Das
GPuK-Zertifikat enthält
zusätzliche
Informationen in seinem Kopffeld, um die Sicherheit weiter zu erhöhen. Das
Kopffeld enthält
einige allgemeine Informationen, wie beispielsweise die Schlüssellänge und
den Exponenten, wobei diese allgemeinen Informationen RSA-spezifisch
sind.
-
Ferner
enthält
das GPuK-Zertifikat die Prozessor Chip-Identifikationsangabe, um zu verhindern,
dass ein öffentlicher
Schlüssel,
welcher von einem Basisband-Controller
einer Controller-Familie (beispielsweise einer Gold-Familie) verwendet
wird auf einem anderen Basisband-Controller
derselben Controller-Familie.
-
Mittels
des Boot-ROM-Computerprogramm-Codes wird überprüft, ob die Identifikationsangabe,
welche in dem GPuK-Zertifikat enthalten ist, übereinstimmt mit dem Wert,
welcher in dem Prozessor-Chip 200 gespeichert ist. Da das
GPuK-Zertifikat digital signiert ist und daher an diese spezielle
Prozessor-Chip-Serie,
beispielsweise an diese spezielle GOLD-Serie gebunden ist, kann
der in dem Kopffeld des GPuK-Zertifikats enthaltene Chip-ID-Wert
nicht illegal verändert
werden.
-
SecVersX
ist ein Wert, der aus vier Werten ausgewählt werden kann, welche in
dem ROM 202 gespeichert sind. Der tatsächlich ausgewählte Wert wird
bestimmt durch das Einstellen von zwei elektronischen Schmelzsicherungs-Bits
der elektronischen Schmelzsicherungen 208. Mittels des Boot-ROM-Computerprogramm-Codes
wird unter Verwendung der eingestellten Werte der zwei Schmelzsicherungs-Bits
der in dem ROM-Speicher 202 gespeichert SecVersX-Wert ausgewählt und dann
verglichen mit dem in dem GPuK-Zertifikat gespeicherten Wert. Die
Hauptfunktion von SecVersX ist es, zwischen einem Prototyp/Test-Modus
und einem Produktions-Modus zu unterscheiden und damit zwischen
einem Prototyp/Test-Schlüssel und
den GPuK-Schlüssel.
Test-Schlüssel
funktionieren nicht bei den fertiggestellten Prozessor-Chips 200,
welche an den Mobilfunk-Kommunikationsendgeräte-Hersteller geliefert werden, da unterschiedliche Schmelzsicherungs-Einstellungen
verwendet werden für
den Prototyp/Test-Modus und den Produkt-Modus.
-
SecVersY
ist ebenfalls ein Wert, welcher aus einer Mehrzahl von vordefinierten
und in dem ROM-Speicher 202 gespeicherten Werten ausgewählt wird
und ist derselbe Wert für
alle Prozessor-Chips desselben Typs, beispielsweise für alle S-Gold3-Chips. Der
tatsächlich
ausgewählte
Wert wird bestimmt mittels der Einstellung der seitens des Kunden
ausgewählten
Einstellungen der elektrischen Schmelzsicherungen, welche hierfür vorgesehen sind.
Der Boot-ROM-Computerprogramm-Code verwendet die kundenspezifischen
Fuse-Auswahl-Einstellung zum Auswählen des in dem ROM-Speicher 202 gespeichert
SecVersY-Werts und
vergleicht diesen mit dem in dem GPuK-Zertifikat enthaltenen Wert.
Eine Hauptfunktion der SecVersY-Nummer ist es, zwischen unterschiedlichen
Kunden unterscheiden zu können.
Jedem Kunden wird eine unterschiedliche SerVersY-Nummer zugeordnet. Jeder der jeweiligen
Mobilfunk- Kommunikationsendgeräte-Hersteller
muss seine ihm zugeordnete SecVersY-Nummer auswählen und diese korrespondiert
zu der zugeordneten Fuse-Option in dem Prozessor-Chip 200.
Die Schmelzsicherungs-Einstellung muss übereinstimmen mit dem SecVersY-Wert
in dem GPuK-Zertifikat. Dies wird überprüft mittels des Boot-ROM-Computerprogramm-Codes.
-
Der öffentliche
Schlüssel
GPuK eines Mobilfunk-Kommunikationsendgeräte-Herstellers
A funktioniert nicht bei einem Mobilfunk-Kommunikationsendgerät eines
anderen Mobilfunk-Kommunikationsendgeräte-Hersteller B, da die Schmelzsicherungs-Einstellungen
unkorrekt wären.
Weiterhin kann der Mobilfunk-Kommunikationsendgeräte-Hersteller B
nicht das Zertifikat des Mobilfunk-Kommunikationsendgeräte-Herstellers A verwenden,
da diese nicht den korrespondierenden privaten Schlüssel besitzt.
-
Ein
Kunde, dessen öffentlicher
Schlüssel GPuK
kompromittiert wurde, kann nicht einfach eine neue SecVersY-Nummer
wählen,
ohne dies mit dem Trust-Center abzustimmen, da das Trust-Center jedes neue
Zertifikat digital signieren muss.
-
Der
Signier-Prozess des öffentlichen
Schlüssels
GPuK, welcher in dem Trust-Center stattfindet, stellt sicher, dass
die korrekte Chip-Identifikationsangabe, die korrekte SecVersX-Nummer und die korrekte
SecVersY-Nummer in dem Zertifikat enthalten sind, bevor das Trust-Center
das Zertifikat mit dem privaten Schlüssel GROMPrK digital signiert.
In dem Signier-Prozess
wird ferner überprüft, ob das
Zertifikat den genehmigten Kontrolltyp CAPI für den jeweiligen Kunden enthält.
-
7 zeigt
in einem Ablaufdiagramm 700 die Verfahrensschritte im Rahmen
des sicheren Hochfahrens des Prozessor-Systems 250 gemäß einem
Ausführungsbeispiel
der Erfindung im Detail.
-
Nach
einem initialen Boot-Vorgang (Schritt 701), in welchem
die beispielsweise externe Bus-Schnittstelle zu dem nicht-flüchtigen
Direktzugriffspeicher 211 sowie dem flüchtigen Direktzugriffspeicher 212 initialisiert
wurde, wird in einem nachfolgenden Schritt 702 das GPuK-Zertifikat
aus dem nicht-flüchtigen
Direktzugriffspeicher 211 ausgelesen, wobei das GPuK-Zertifikat
gemäß einem
Ausführungsbeispiel
der Erfindung folgendes enthält:
- • die
Prozessor-Chip-Identifikationsangabe (beispielsweise den GOLD-Chip-ID-Wert),
- • eine
SecVersX-Nummer,
- • eine
SecVersY-Nummer,
- • den öffentlichen
Schlüssel
GPuK.
-
Anschließend oder
vor einem der Schritte 702 oder 701 wird aus der
System-Steuerungseinheit 207, genauer aus einem Register
der System-Steuerungseinheit 207 die dort gespeicherte
Chip-Identifikationsangabe gelesen. Ferner wird die ausgewählte SecVersX-Nummer
aus dem Boot-ROM-Speicher 202 ausgelesen. Die ausgewählte und
auszulesende SecVersX-Nummer wird ausgewählt gemäß der Einstellung der elektronischen
Schmelzsicherungen 208, welche in einem zusätzlichen
Register in der System-Steuerungseinheit 207 gespeichert
ist (Schritt 703).
-
Weiterhin
wird die SecVersY-Nummer aus dem Boot-ROM-Speicher 202 ausgelesen.
Die auszulesende SecVersY-Nummer wird ermittelt unter Verwendung
der Werte der kundenspezifischen elektronischen Schmelzsicherungen 208.
-
In
einem Prüfschritt 704 wird überprüft, ob die
in Schritt 702 gelesenen und aus dem GPuK-Zertifikat ermittelten
SecVersX-Nummer und SecVersY-Nummer mit den entsprechenden Nummern,
welche in dem Boot-ROM 202 gespeichert sind, übereinstimmen.
Ist dies nicht der Fall („Nein” in Prüfschritt 704),
so wird die Boot-Routine abgebrochen und es wird eine Fehlermeldung
ausgegeben (Schritt 705).
-
Sind
die beiden Werte jedoch gleich („Ja” in Prüfschritt 704), so
wird in einem Schritt 706 unter Verwendung des Hash-Verfahrens SHA-1
ein Hash-Wert gebildet über
das Kopffeld des öffentlichen
Schlüssels
GPuK und über
den öffentlichen GPuK.
Anschließend
wird der signierte Hash-Wert 609, welcher in dem nicht-flüchtigen
Direktzugriffsspeicher 211 gespeichert ist und dem GPuK-Zertifikat
zugeordnet ist, gelesen und unter Verwendung des in dem Boot-ROM-Speicher 202 gespeicherten öffentlichen
Schlüssel
GROMPuK entschlüsselt
und verifiziert (Schritt 707).
-
Der
in Schritt 706 gebildete Hash-Wert sowie der in Schritt 707 entschlüsselte Hash-Wert
werden in einem zweiten Prüfschritt
(Schritt 708) miteinander verglichen und für den Fall,
dass die beiden Werte nicht miteinander übereinstimmen („Nein” in Schritt 708),
wird die Boot-Routine abgebrochen und es wird eine Fehlermeldung
generiert und ausgegeben (Schritt 709).
-
Stimmen
die beiden Hash-Werte jedoch miteinander überein („Ja” in Schritt 708),
so wird ein zweiter Hash-Wert gebildet, wobei der zweite Hash-Wert
gebildet wird über
den gesamten Inhalt des Blocks „0” des nicht-flüchtigen
Direktzugriffsspeichers 211 und damit über den Inhalt des PSI-Bereichs 601 (Schritt 710).
-
Weiterhin
wird der in dem nicht-flüchtigen
Direktzugriffsspeicher 211 gespeicherte signierte Hash-Wert 602 des
PSI-Bereichs 601 ausgelesen und unter Verwendung des zuvor
verifizierten öffentlichen
Schlüssels
GPuK entschlüsselt
und verifiziert (Schritt 711).
-
In
einem dritten Prüfschritt 712 werden
die beiden Hash-Werte des PSI-Bereichs 601 miteinander
verglichen und für
den Fall, dass diese nicht miteinander übereinstimmen („Nein” in dem
dritten Prüfschritt 712),
wird die Boot-Routine abgebrochen und es wird eine Fehlermeldung
erzeugt und ausgegeben (Schritt 713).
-
Stimmen
die beiden Hash-Werte über
den PSI-Bereich 601 miteinander überein („Ja” in dem dritten Prüfschritt 712),
wird, abhängig
von der jeweiligen Sicherheitspolitik, eine CAPI-Authentifikation durchgeführt (Schritt 714).
-
Falls
die CAPI-Authentifikation fehlschlägt, so wird die Boot-Routine
abgebrochen und es wird eine Fehlermeldung generiert und ausgegeben (Schritt 715).
Ist die CAPI-Authentifikation
erfolgreich, so wird die Second-Level-Boot-Routine 610 aus dem nicht-flüchtigen
Direktzugriffsspeicher 611 ausgelesen und gestartet (Schritt 716).
In einem Schritt 717 wird die Second-Level-Boot-Routine,
beispielsweise unter Verwendung der in dem Mobilfunk-Kommunikationsendgerät 100 gespeicherten Daten
IMEI (International Mobile Equipment Identity) und SIMLock, ausgeführt.
-
Es
ist darauf hinzuweisen, dass der Mobilfunk-Kommunikationsendgeräte-Hersteller sicherzustellen
hat, dass sein ihm zugeordnetes Wurzel-Zertifikat (beispielsweise über den öffentlichen
Schlüssel GPuK
oder einem davon abgeleiteten Schlüssel) nicht unbefugt verändert werden
kann. Er ist ebenso verantwortlich, eine Plattform zu entwickeln,
deren Funktionalität
den ”Dual-Use”-Exportregeln
genügen.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung ist es vorgesehen, dass die CAPI von dem Chip-Hersteller
bereitgestellt wird, beispielsweise von der Infineon Technologies
AG. Von dem Chip-Hersteller wird zusätzlich gemäß einem Ausführungsbeispiel
auch die CAPI-Authentifikations-Routine
bereitgestellt. Es ist zu gewährleisten,
dass der Mobilfunk-Kommunikationsendgeräte-Hersteller die CAPI-Authentifikations-Routine
während
des sicheren Boot-Prozesses aufruft. Die CAPI-Authentifikations-Routine enthält den öffentlichen
Schlüssel
des Chip- Herstellers
(also beispielsweise der Infineon Technologies AG), um die CAPI
zu authentifizieren. Gemäß diesem
Ausführungsbeispiel
der Erfindung enthält
die CAPI-Authentifikations-Routine
somit den öffentlichen
Schlüssel
IFXCAPIPuK.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung ist es ferner vorgesehen, dass auch das Trust-Modul
und die Treiber-Computerprogramme der
Krypto-Einheit 206 von dem Chip-Hersteller bereitgestellt werden. Die
CAPI-Authentifikations-Routine
wird unter Verwendung des öffentlichen
Schlüssels
GROMPuk mittels des Boot-ROM-Computerprogramm-Codes authentifiziert.
Die CAPI-Authentifikations-Routine enthält den öffentlichen Schlüssel des Chip-Herstellers
zum Authentifizieren der CAPI (d. h. beispielsweise den öffentlichen
Schlüssel
IFXCAPIPuK). Die in dem Boot-ROM-Speicher 202 gespeicherte
Boot-ROM-Routine ruft die CAPI-Authentifikations-Routine
auf, bevor die Second-Level-Boot-Routine
des Mobilfunk-Kommunikationsendgeräte-Herstellers aufgerufen wird.
-
Die
Second-Level-Boot-Routine 610 ist der erste Computerprogramm-Code,
welcher ausgeführt wird,
welcher aus dem nicht-flüchtigen
Direktzugriffsspeicher 211 des Mobilfunk-Kommunikationsendgeräte-Herstellers
ausgelesen wird, nach dem Ausführen
des in dem Boot-ROM-Speichers 202 des Prozessor-Chips 200 gespeicherten
Computerprogramm-Codes und nachdem die CAPI-Authentifikations-Routine
vollständig
ausgeführt
wurden.
-
Der
Second-Level-Boot-Prozess wird nur dann ausgeführt, wenn die Zertifikat-Prüfungen,
welcher unter Steuerung der Boot-ROM-Routine
durchgeführt
wurden, erfolgreich waren. Die Second-Level-Boot-Routine 610 wird
verwendet zum Authentifizieren nachfolgender, in dem nicht-flüchtigen
Direktzugriffsspeicher 211 gespeicherter Computerprogramme.
Auf diese Weise wird eine vertrauenswürdige Kette von Boot- Schritten innerhalb
des Hochfahrens des Prozessor-Systems 250 implementiert.
Es können
weitere Überprüfungen in
der Second-Level-Boot-Routine
vorgesehen sein. Es ist darauf hinzuweisen, dass die Second-Level-Boot-Routine
beispielsweise einen einzigartigen Wert, welcher beispielsweise
in die elektrischen Schmelzsicherungen 208 eingebrannt
sind verwenden kann zum Überprüfen der
Bindung des Inhalts des nicht-flüchtigen
Direktzugriffsspeichers 211 an die spezifische Prozessor-Chip-Komponente.
-
Der
Mobilfunk-Kommunikationsendgeräte-Hersteller
sieht optional zusätzliche
Sicherheitsüberprüfungen vor
wie beispielsweise das Überprüfen der
IMEI, oder ein Überprüfen der
so genannten SIMLock-Daten. Weiterhin können andere zusätzliche
sicherheitsrelevante Überprüfungen von
Applikation-Computerprogrammen vorgesehen sein.
-
Nach
einem erfolgten Zurücksetzen
des Prozessor-Systems 250 fährt das Prozessor-System 250 unter
Verwendung von in dem nicht-flüchtigen Direktzugriffsspeicher 211 gespeicherten
Daten hoch, es ist jedoch in einer alternativen Ausgestaltung der
Erfindung ebenso möglich,
dass das Hochfahren unter Verwendung von mittels der seriellen Schnittstelle,
beispielsweise also mittels USB oder UART zugänglichen Daten erfolgt.
-
Erfolgt
das Hochfahren unter Verwendung von mittels der seriellen Schnittstelle 205 zugänglichen
Daten, so wird das Verfahren auf die oben beschriebene gleiche Weise
durchgeführt.
-
So
wird beispielsweise ein Block „0” in die
lokale Speichereinheit 203 des Prozessor-Chips 200 geladen
mittels der seriellen Schnittstelle 205 und wird in der
gleichen Weise getestet wie der Block „0” des nicht-flüchtigen
Direktzugriffsspeichers 211 in dem oben beschriebenen Ausführungsbeispiel,
bevor der Block „0” ausgeführt wird.
-
Nachdem
der heruntergeladene Computerprogramm-Code überprüft wurde, kann dieser verwendet
werden, um den Inhalt des nicht-flüchtigen Direktzugriffsspeichers 211 in
zuverlässiger
Weise zu aktualisieren oder auch zu reparieren.
-
Es
ist ferner anzumerken, dass gemäß einem
Ausführungsbeispiel
der Erfindung nur der Mobilfunk-Kommunikationsendgeräte-Hersteller
den Programmspeicher 211 mittels der seriellen Schnittstelle 205 re-programmieren
kann. Sobald er dies getan hat, wird die gesamte Boot-Routine und
die darin enthaltenen Überprüfungen erneut
durchgeführt, wenn
das Prozessor-System 250 von dem nicht-flüchtigen
Direktzugriffsspeicher 211 aus neu gebootet wird.
-
8 zeigt
in einem Blockdiagramm 800 einen Überblick über die Verbindung zwischen
dem sicheren Hochfahren des Prozessor-Systems 250 und der
CAPI.
-
Es
ist in 8 dargestellt, an welcher Stelle die kryptographischen
Zertifikate und Schlüssel
in dem Mobilfunk-Kommunikationsendgerät 100 gespeichert
sind. Das Blockdiagramm 800 ist in zwei Ansichten aufgeteilt,
eine erste Ansicht 801, auch bezeichnet als Hochfahr-Zeit-Ansicht
(Boot Time View 801) sowie eine zweite Ansicht 802,
auch bezeichnet als Betriebs-Zeit-Ansicht (Run Time View 802).
-
Wie
in der ersten Ansicht 801 dargestellt ist, ist in dem PSI-Bereich 601 die
CAPI-Authentifikations-Routine 803 gespeichert, welche
den öffentlichen
Schlüssel
des Chip-Herstellers,
also beispielsweise den öffentlichen
Schlüssel
IFXCAPIPuK, enthält.
-
Ferner
ist eine digitale Signatur 804 über die CAPI-Authentifikations-Routine
in dem PSI-Bereich 601 gespeichert, welche gebildet wurde
unter Verwendung des geheimen Chip- Herstellerschlüssels, also beispielsweise
unter Verwendung des geheimen Schlüssels IFXCAPIPrK.
-
Weiterhin
ist in dem nicht-flüchtigen
Direktzugriffsspeicher 211 die CAPI 805 gespeichert,
welche den Computerprogramm-Code
zur Realisierung des oben beschriebenen Trust-Moduls 806 enthält sowie
die Software-Treiber 807 für die Krypto-Einheit 206.
Weiterhin ist ein Hash-Wert 808 enthalten, welcher gebildet
wurde über
die CAPI 805 und welcher signiert wurde mit dem privaten
Chip-Hersteller-Schlüssel
für die
CAPI, beispielsweise also mittels des privaten Schlüssels IFXCAPIPrK.
-
Wie
aus der ersten Ansicht 801 ersichtlich ist (dort symbolisiert
mittels eines Pfeils 809) wird die CAPI 805 erst
durchgeführt,
nachdem die CAPI-Authentifikations-Routine 803 erfolgreich
ausgeführt wurde.
-
Wie
in der zweiten Ansicht 802 dargestellt ist, ist während des
Betriebs vorgesehen, die gesicherten Applikation-Computerprogramme 810 abzusichern
mittels entsprechender kryptographischer Zertifikate, beispielsweise
mittels des Applikation-Computerprogramm-Zertifikats SecAppCert 811,
welches beispielsweise signiert ist unter Verwendung des privaten
Schlüssels
des Herstellers bzw. des Entwicklers des jeweiligen Applikation-Computerprogramms, anders
ausgedrückt
unter Verwendung beispielsweise des privaten Schlüssels EMCAPIPrK.
-
Erst
nach erfolgter erfolgreicher Verifizierung des jeweiligen Applikation-Computerprogramm-Zertifikats
ist im Rahmen der CAPI 805 vorgesehen, den zu den privaten
Schlüsseln
zugehörigen öffentlichen Schlüssel des
Entwicklers bzw. Herstellers des Applikation-Computerprogramms,
also beispielsweise den öffentlichen
Schlüssel
EMCAPIPuK beim Starten zu verifizieren, wobei gemäß einem
Ausführungsbeispiel
der Erfindung der öffentliche
EMCAPIPuK beispielsweise der öffentliche
Schlüssel
GPuK ist oder alternativ der öffentliche
Schlüssel
GPuK, signiert unter Verwendung des privaten Schlüssels GPrK.
-
Ferner
verifiziert die CAPI 805 das jeweilige Applikation-Computerprogramm-Zertifikat
unter Verwendung des öffentlichen
Schlüssels
EMCAPIPuK. Das jeweilige Applikation-Computerprogramm-Zertifikat ist in einem
Zertifikat-Speicher 812 in dem nicht-flüchtigen Direktzugriffsspeicher 211 gespeichert.
-
9 zeigt
in einem Blockdiagramm 900 einen Überblick über die Zusammenhänge zwischen den
Schlüsselpaaren,
welche im Rahmen des Prozessor-Systems 250 verwendet werden.
-
Das
Blockdiagramm 900 ist in vier Quadranten aufgeteilt, wobei
in der linken Spalte 901 die Vertrauenskette (Trust Chain)
seitens des Chip-Herstellers dargestellt ist und in der rechten
Spalte 902 die Vertrauenskette (Trust Chain) des Mobilfunk-Kommunikationsendgeräte-Herstellers.
In einem oberen Bereich 903 des Blockdiagramms 900 sind
die Schlüssel
dargestellt, welche in dem Trust Center verbleiben und in einem
unteren Bereich 904 sind die Zusammenhänge in dem Mobilfunk-Kommunikationsendgerät 100 dargestellt.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung ist somit gewährleistet,
dass nur Software mit einem gültigen
Zertifikat der Zugriff auf von der Krypto-Einheit 206 bereitgestellten
krytographischen Funktionen ermöglicht
wird. Die Schutzschild-Software, welche im Rahmen dieser Beschreibung
als Crypto Application Programming Interface CAPI bezeichnet wird, überprüft das jeweilige
Zertifikat, dass eine Anforderung einer kryptographischen Funktion der
Krypto-Einheit 206 anfordernden Applikation-Computerprogramms.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung ist es vorgesehen, eine Kontrollkette (Chain of Trust)
vorzusehen, gemäß der es
gewährleistet
ist, dass nur zertifizierte Applikation-Computerprogramm-Hersteller
bzw. Entwickler auf die CAPI zugreifen dürfen. Zertifizierte Applikation-Computerprogramm-Hersteller
oder Integratoren, welche häufig die
Mobilfunk-Kommunikations-Endgeräte-Hersteller
oder die Netzwerkprovider sind, haben den ”Dual-Use”-Exportregeln zugestimmt und
besitzen somit ein entsprechendes Zertifikat.
-
Das
CAPI 805 wird von dem exportierenden Unternehmen, beispielsweise
dem Prozessor-Chip-Hersteller ausgeliefert und wird beim Hochfahren
des Prozessor-Systems 250 kryptographisch authentifiziert,
anders ausgedrückt überprüft, um sicherzustellen,
dass die CAPI 805 zu der Plattform gehört und nicht unbefugt verändert wurde.
-
Auch
für den
Integrator ist es wünschenswert,
ein sicheres Hochfahren der Plattform zu gewährleisten, um ein unbefugtes
Verändern
der Plattform zu verhindern. Gemäß einem
Ausführungsbeispiel
der Erfindung ist ein geteiltes sicheres Booten vorgesehen. Dies
bedeutet, dass der Exporteur der Plattform und der Plattform-Integrator
beide ein sicheres Hochfahren ihres jeweiligen Computerprogramm-Codes
durchführen
können,
ohne dass der vollständige
Computerprogramm-Code des Integrators unter Verwendung von privaten
Schlüsseln
des Plattform-Exporteurs signiert zu werden braucht, was unpraktikabel
wäre.
-
Das
aufgeteilte Boot-Verfahren ermöglicht
es dem Plattform-Integrator,
vollständige
Kontrolle über das
Plattform-Hochfahren
zu besitzen und ermöglicht es
den Plattform-Integrator
weiterhin, sicher zu sein, dass seine Software auf der Plattform
integriert ist. Das geteilte Boot-Verfahren wird mittels der in
dem Boot-ROM-Speicher 202 gespeicherten Routine gesteuert,
welche in der eingebetteten Einrichtung (Embedded Device), anders
ausgedrückt
beispielsweise dem Prozessor-Chip 200, gespeichert ist.
-
Es
ist anzumerken, dass die CAPI Authentifikation, welche dem Plattform-Integrator
bereitgestellt wird mit der Plattform, auch als eine eigene ”sichere Ausführungs”-Umgebung
des Applikationsprozessors laufen kann. Die CAPI könnte auch
in dieser Umgebung nach dem Hochfahren ausgeführt werden, womit die Krypto-Einheit,
in anderen Worten beispielsweise die Krypto-Hardware, von einem
Direktzugriff einer Applikation mittels Hardware isoliert wird.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung ist es ferner ermöglicht,
die Plattform zu exportieren und zu verwenden ohne Einsatz des sicheren
Boot-Verfahrens, beispielsweise während unterschiedlichen Phasen
der Entwicklung und des Herstellens des Prozessor-Systems 250 und
der zugehörigen
Applikation-Computerprogramme. Wenn die Plattform sich in diesem
Zustand befindet, sind die von der Krypto-Einheit 206 bereitgestellten
kryptographischen Funktionen nicht zugänglich. Nur wenn die Plattform
derart konfiguriert ist, dass ein kryptographisches Public Key-basiertes
sicheres Boot-Verfahren durchgeführt
wird und somit beispielsweise die CAPI in das Prozessor-System 250 eingebunden ist,
werden die kryptographischen Funktionen, welche von der Krypto-Einheit 206 bereitgestellt
werden, verfügbar
geschaltet. In einem Ausführungsbeispiel der
Erfindung wird diese Konfiguration mittels irreversibler elektronischer
Schmelzsicherungen 208 erreicht.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung wird ein öffentlicher
Schlüssel
des Plattform-Exporteurs in Hardware, d. h. gespeichert in dem Boot-ROM 202,
als die Wurzel des vertrauenswürdigen
Verfahrens für
das sichere Booten verwendet.
-
Das
Boot-Verfahren ist derart definiert, dass der Plattform-Integrator einen öffentlichen
Schlüssel besitzen
muss, welcher von dem Plattform-Exporteur digital signiert ist,
um die Funktion des sicheren Bootens wahrnehmen zu können. Dieser
letzte Schritt ermöglicht
es dem Plattform-Exporteur, Kontrolle darüber zu haben, welche Kunden,
d. h. beispielsweise welche Hersteller oder Entwickler von Applikation-Computerprogrammen
ein sicheres Booten auf der Plattform ausführen können und somit kryptographische
Funktionen unter Verwendung der Krypto-Einheit 206 nutzen
können.
Diese Kontrollkette ermöglicht
eine faire Exportkontrolle. Fair heißt in diesem Zusammenhang beispielsweise
kontrollierbar und nachvollziehbar von beiden Seiten, d. h. sowohl von
dem Prozessor-System-Hersteller, beispielsweise dem Hersteller der
Schaltkreis-Anordnung, beispielsweise der Infineon Technologies
AG, und dem Applikations-Entwickler.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung werden zertifizierte Kunden die Möglichkeit besitzen, die kryptographische
Hardware, welche in der Krypto-Einheit 206 vorgesehen ist,
nach erfolgtem erfolgreichen zertifizierten sicheren Booten zu verwenden.
-
Weiterhin
kann durch das aufgeteilte sichere Booten gewährleistet werden, dass die
Zugriffskontroll-Software auf der Plattform enthalten ist.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung stellt die Zugriffskontroll-Software sicher, dass
nur Applikation-Computerprogramme
mit einem gültigen
kryptographischen Zertifikat auf die Kryptographie-Hardware, d.
h. anders ausgedrückt
auf die von der Krypto-Einheit 206 bereitgestellten kryptographischen
Funktionen, zugreifen kann.
-
Ferner
kann der Plattform-Integrator selbst Applikation-Computerprogramme zertifizieren unter Verwendung
eines Schlüssels,
der von dem Plattform-Integrator zertifiziert ist, jedoch stimmt
er in diesem Fall den ”Dual-Use”-Exportregeln gemäß dem Wassenaar-Abkommen
zu.
-
Es
ist in diesem Zusammenhang anzumerken, dass in dem öffentlichen
Schlüssel
GPuK zusätzliche
Informationen enthalten sein können,
beispielsweise eine Information, wie der Prozessor-Chip 200 mit
dem PSI-Bereich 601 des nicht-flüchtigen
Direktzugriffsspeichers 211 umgehen soll. Weiterhin kann
eine Kontrollinformation enthalten sein, beispielsweise eine Kontrollinformation
darüber,
ob der Nutzer eine eigene CAPI-Authentifikations-Routine erstellen
darf.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung ist es vorgesehen, dass die Schlüssel, die verwendet werden
zum Bilden der ersten digitalen Signatur und der zweiten digitalen
Signatur nicht ausgetauscht werden können. Um dies zu gewährleisten werden
vor deren Benutzung die zugehörigen öffentlichen
Schlüssel
von dem Boot-ROM überprüft.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung ist es vorgesehen, dass die CAPI und die CAPI-Authentifikation
in verschiedenen Ausführungseinheiten
realisiert sind. Dies bedeutet, dass der Hersteller der Plattform
und der Hersteller der Krypto-Software jeweils ihren Code signieren
können
und sicher sein können,
dass nur dieser Code einen Zugriff auf die kryptographische Funktion
(mit geeigneter Hardware-Unterstützung
in der Krypto-Einheit) ermöglicht.
Auf diese Weise ist ein Verfahren für einen Hersteller einer Plattform
geschaffen, um zertifizierten Code auszuliefern, der von dem Plattform-Integrator
nicht verändert
werden kann (eine Form eines Sicherheitssystems in einem System).
-
Dies
könnte
einschließen
ein vorheriges Programmieren mittels Schmelzens von einem geheimen
Schmelzsicherung-Schlüssel
seitens des Herstellers der Plattform, und ein Ausliefern eines
verschlüsselten
privaten Schlüssels
mit der Komponente. Ein Endnutzer oder ein Dritter kann dann mittels eines
sicheren Handshake-Verfahrens/-Protokolls sicher sein, dass die
Sicherheits-Software, die auf der Plattform gespeichert ist, tatsächlich von
dem Hersteller der Plattform stammt.
-
Anschaulich
wird gemäß einem
Ausführungsbeispiel
der Erfindung eine Aufteilung der Vertrauenskette bereitgestellt
zwischen dem Hersteller der Plattform und dem Plattform-Integrator.
-
Ein
anderes Ausführungsbeispiel
der Erfindung ist gerichtet auf ein Anwendungsszenario, das auf
einem herkömmlichen
Geschäftsmodell
eines vor-bezahlten (Prepaid) Mobilfunktelefons basiert. In der
letzten Zeit hat sich auch eine Technologie entwickelt für vor-bezahlte
(Prepaid) Computer, beispielsweise Personal Computer, Workstations,
oder andere Computer-Plattformen wie beispielsweise Personal Digital
Assistants (PDA) oder andere eingebettete Computereinrichtungen
wie zum Beispiel Computereinrichtungen in der Unterhaltungselektronik
oder der Consumer-Elektronik.
-
Während es
bei einem vor-bezahlten Mobilfunktelefon möglich ist, eine erforderliche
Benutzungslizenz, Restriktionsmechanismen oder auch Zugriffskontrollmechanismen
in einer proprietären computerbasierten
Lösung
zu integrieren, beispielsweise in einem proprietären und von außerhalb
des Geräts
nicht zugänglichen
Chip (wie beispielsweise in der S-Gold-Chipserie der Firma Infineon
Technologies AG), so ist dies bei einer Einrichtungen mit üblicherweise
einer Mehrzahl von Komponenten wie beispielsweise einem Personal
Computer, einer Workstation, oder einer anderen Computer-Plattform
wie beispielsweise einem Personal Digital Assistant (PDA) oder einer
anderen eingebetteten Computereinrichtungen, nicht möglich. Aufgrund
der Komplexität
beispielsweise eines Personal Computers aber auch aufgrund des Einsatzes
verschiedener spezieller Chips und verschiedener Funktionsblöcke ist
es herkömmlicherweise
nicht möglich,
solche oben angeführten
Mechanismen in sicherer Weise in einem Gehäuse wie beispielsweise einer
Ein-Chip-Lösung oder
einer Multi-Chip-Lösung
zu integrieren.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung werden eine Schaltkreis-Anordnung und ein Verfahren
bereitgestellt, mit welchen die Implementierung von Zugangskontrollmechanismen
und Authentifikationsmechanismen, beispielsweise im Rahmen der Digitale-Rechte-Verwaltung
(Digital Rights Management), ermöglicht
wird. Ferner wird es ermöglicht,
Nutzungsbeschränkungen
in Standard-Rechner-Plattformen zu implementieren, ohne größere Funktionsblöcke verändern zu
müssen.
Die beschriebenen Ausführungsbeispiele
stellen einen geeigneten Schutz bereit selbst gegen eine unbefugte
Umverdrahtung oder das Ausbilden unbefugter (Umleitungs-)Verbindungen
bzw. erkennt zumindest sicher eine unbefugte Manipulation.
-
Herkömmlicherweise
wurde versucht, den oben beschriebenen Problemen zu begegnen, indem Standard-Authentifikations-
und Zugriffskontrollmechanismen (alternativ kryptographische Verfahren)
in den Boot-Speicher des Computers oder in einen Computerprogrammcode
implementiert wurden, der oder die zu wichtigen Zeitpunkten oder
an wichtigen Orten der zu schützenden
Computer-Plattform ausgeführt
werden müssen,
beispielsweise an wichtigen Stellen des Start-Computerprogrammcode (Hochfahr-Computerprogrammcode)
der zu schützenden Computer-Plattform,
wie beispielsweise der BIOS-Sequenz.
-
Übliche Angriffe
gegen solche oben beschriebenen Schutzmaßnahmen sind beispielsweise ein
Austauschen des speziellen BIOS-Computerprogrammcodes oder des BIOS-Zugriffs- Computerprogrammcodes
gegen einen BIOS-Computerprogrammcode eines Angreifers oder einen
BIOS-Zugriffs-Computerprogrammcodes
eines Angreifers, der keine Zugriffsbeschränkungen für den Angreifer enthält. Alternativ
war es möglich,
die kritischen Zugriffskontroll-Leistungsmerkmale
zu löschen,
beispielsweise indem der Original-Computerprogrammcode, der die
Zugriffsbeschränkungen
enthält, überschrieben
oder ersetzt wird.
-
Dies
kann beispielsweise dadurch erfolgen,
- • dass der
Computerprogrammcode-Speicherchip (beispielsweise ein ROM oder dergleichen)
oder die entsprechenden Datenträger
ausgetauscht werden;
- • ein
gleicher oder ähnlicher
Speicher zu dem wichtigen Computerprogrammcode-Speicher parallelgeschaltet
wird (beispielsweise, indem in die Verkabelung des Host-Computers eingegriffen wird)
und einfach die entsprechenden Speicher-Zugriffssignale wie beispielsweise
ein übliches
Chip-Auswahlsignal (Chip Select, CS) oder Speicher-Lesesignal (Memory
Read, RD) umgeleitet werden;
- • Teile
des Computerprogrammcodes ersetzt oder verändert werden mittels so genannter
programmierbarer Chips (beispielsweise Application Specific Integrated
Circuit (ASIC) oder Field Programmable Gate Array (FPGA), etc.);
- • der
oder die Speicherchips umprogrammiert wird/werden;
- • oder
mittels anderer geeigneter Veränderungstechniken.
-
Bei
den herkömmlichen
Ansätzen,
die den oben beschriebenen Gefahren und Angriffen begegnen sollen,
wird üblicherweise
versucht, Hardware-Strukturen oder Software-Strukturen zu realisieren
oder aufzubauen mit zusätzlichen
physikalischen Schutzmaßnahmen,
für die
angenommen wird, dass sie nicht modifiziert, ersetzt oder verfälscht werden
können.
-
Diese
Vorgehensweisen sind jedoch aufgrund eines allgemeingültigen Prinzips
nicht in vollem Umfang nützlich:
Jede von einem Menschen erschaffene Struktur kann auch von einer
von einem Menschen erschaffene Technik verändert oder analysiert werden.
-
Daher
ist es gemäß einem
Ausführungsbeispiel
der Erfindung vorgesehen, die oben beschriebenen Probleme auf eine
andere Weise zu lösen. Gemäß einem
Ausführungsbeispiel
der Erfindung wird angenommen, dass Veränderungen (Modifikationen)
immer durchgeführt
werden können.
Allerdings werden solche Modifikationen in Datenstrukturen erfasst
und erkannt (beispielsweise während
des Hochfahr-Prozesses) und es können
entsprechende Gegenmaßnahmen
eingeleitet werden. Wenn irgendwelche Unterschiede oder Veränderungen
in dem verwendeten Plattform-Computerprogrammcode gegenüber dem
Original-Plattform-Computerprogrammcode während des Ausführens des
Plattform-Computerprogrammcodes erkannt werden, so ist ein Beschränkungsmechanismus
vorgesehen, gemäß dem beispielsweise
das Host-Computersystem in der Ausführung des Plattform-Computerprogrammcodes
oder der Verarbeitung von Plattform-Computerprogrammcode-Daten gehindert
wird (gestoppt wird) oder die Host-Computersystem-Funktionalität auf einen
niedrigeren Grad oder eine geringere Leistungsfähigkeit reduziert wird. Beispielsweise
ist es vorgesehen, die gesamte Computereinrichtung (beispielsweise
die Schaltkreis-Anordnung)
oder eine oder mehrere ihrer Komponenten auszuschalten, ihre Funktionalität zu reduzieren
oder eine schrittweise Reduktion der Funktionen vorzusehen.
-
Eine
spezielle Anforderung ist gemäß einem Ausführungsbeispiel
der Erfindung darin zu sehen, den beschriebenen Erfassungs- und
Gegenmaßnahmen-Mechanismus
in einer Weise anzuordnen und zu installieren, dass er von einem
Angreifer ebenfalls nicht in einfacher Weise modifiziert oder ersetzt
werden kann. Es ist daher gemäß einem Ausführungsbeispiel
der Erfindung vorgesehen, die Schutzmaßnahmen oder Schutzmechanismen
nahe oder innerhalb des zentralen wichtigen Teils der zu schützenden
Computerplattform anzuordnen bzw. zu installieren (beispielsweise
der zentralen zu schützenden Datenverarbeitungseinheit,
im Folgenden auch bezeichnet als Central Processing Unit, CPU),
beispielsweise realisiert in Form eines oder mehrerer Mikroprozessoren,
allgemein einer oder mehrerer Recheneinheiten.
-
Solche
Computerplattformen (im Rahmen dieser Ausführungsbeispiele auch bezeichnet
als Host-Computersysteme)
weisen üblicherweise
eine oder mehrere CPUs auf. Herkömmliche
Schutzmechanismen versuchen, den physikalischen Datenpfad zu den
CPUs zu schützen.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung wird eine Schaltkreis-Anordnung bereitgestellt, bei
der jede Veränderung
oder jede Diskrepanz des eingehenden (in die jeweilige CPU geladenen) und
auszuführenden
Computerprogrammcodes (auch bezeichnet als Computerprogrammcode-Datenstrom)
verglichen mit einer vordefinierten Referenz erkannt wird.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung ist dies erreicht in einer verlässlichen und beweisbaren Basis
mittels so genannter Integritäts-Verifikationsmechanismen
unter Verwendung kryptographischer Verfahren wie beispielsweise
unter Verwendung von kryptographischen Hash-Algorithmen.
-
Bei
einem kryptographischen Hash-Algorithmus wird eine große Menge
von Eingangsdaten (grundsätzlich
beliebiger Größe) kombiniert
und verarbeitet und anschaulich „zusammengeführt” in einen einzigen
Datenblock von Ausgangsdaten, beispielsweise einer vorgegebenen
Größe, beispielsweise
einer Größe von 256
Bits, 512 Bits, 1024 Bits oder dergleichen (beispielsweise bei Einsatz
des kryptographischen Hash- Algorithmus
SHA-256; alternativ können
beispielsweise die kryptographischen Hash-Algorithmen SHA-1 oder
MD5 eingesetzt werden, alternativ jeder andere geeignete kryptographische Hash-Algorithmus).
Wenn auch nur ein Bit in dem Eingangsdatenstrom (den Eingangsdaten)
verändert wird,
wird bei einem solchen kryptographischen Hash-Algorithmus eine große Anzahl
von Ausgangsdatenbits verändert
(beispielsweise ungefähr
50%), womit angezeigt wird, dass sich die Eingangsdaten verändert haben.
-
Die
Ausgangsdaten des kryptographischen Hash-Algorithmus werden gemäß einem
Ausführungsbeispiel
der Erfindung verglichen mit einem Satz zuvor gespeicherter Referenzdaten
(die den „korrekten” Hash-Wert
hinsichtlich der unveränderten und
damit erwarteten Eingangsdaten repräsentieren) und eine Entscheidungseinheit
erkennt bzw. entscheidet, ob eine Diskrepanz zwischen den tatsächlichen
Eingangsdaten und den Referenzdaten aufgetaucht ist. Als Ergebnis
dieses Vergleichs kann die Entscheidungseinheit gemäß einem
Ausführungsbeispiel
der Erfindung entscheiden, welche der oben beschriebenen Aktionen
(beispielsweise Deaktivieren einzelner oder aller Komponenten oder
beispielsweise Reduktion in der Funktionalität des Computersystems) als
Gegenmaßnahme
und Reaktion auf die erkannte Änderung
der Eingangsdaten durchgeführt werden
sollen.
-
Als
Gegenmaßnahme
ist in einem Ausführungsbeispiel
der Erfindung vorgesehen, den Computerprogrammcode in dem „verfälschten” BIOS durch
einen verlässlichen
Computerprogrammcode vom geschützten
Sicherheitscontroller zu ersetzen. Dies ist in einem Ausführungsbeispiel
der Erfindung realisiert, indem die Busleitungen umgeleitet oder umgeschaltet
werden oder indem die gewünschten Ansteuerungssignale
gemäß dem verlässlichen Computerprogrammcode
direkt in den Cache-Speicher der einen oder mehreren CPUs geladen
wird, beispielsweise unter Verwendung einer üblicherweise an sich bei einer
CPU vorhandenen und darin integrierten Testschnittstelle wie beispielsweise
dem Standard-JTAG-Testbus.
-
10 zeigt
ein Host-Computersystem 1000 gemäß einem Ausführungsbeispiel
der Erfindung. Das Host-Computersystem 1000 weist auf eine
zentrale Datenverarbeitungseinheit 1002, einen oder mehrere
Funktionsblöcke,
welche gebildet werden von beispielsweise zusätzlichen Prozessoren oder Speichereinheiten 1004,
einen BIOS-Speicher 1006, welcher ausgebildet ist als ein
nicht-flüchtiger
Speicher, beispielsweise als Nur-Lese-Speicher (read only memory,
ROM) und in welchem beispielsweise ein Boot-Computerprogrammcode
oder BIOS-Computerprogrammcode oder ein anderer für die zentrale Datenverarbeitungseinheit 1002 (im
Folgenden auch bezeichnet als Central Processing Unit, CPU) wichtige
Funktionen realisierender Computerprogrammcode.
-
Die
CPU 1014, die Funktionseinheiten 1004 und der
Nur-Lese-Speicher 1006 werden
mittels eines System-Busses 1008 miteinander verbunden. Die
CPU ist in einem Gehäuse 1010 angeordnet,
welche mittels einer Gehäuse-externen
Eingabe-/Ausgabeschnittstelle 1012 mit
dem System-Bus 1008 gekoppelt ist. In dem Gehäuse 1010 können zusätzlich zu
der CPU 1014 weitere Prozessoren, gegebenenfalls weitere
zentrale Datenverarbeitungseinheiten vorgesehen sein. Ferner ist
in dem Gehäuse 1010,
gekoppelt mit der CPU 1014 und der Eingabe-/Ausgabeschnittstelle 1012 mittels
eines internen Busses 1016, beispielsweise mittels des
Test-Standard-Busses JTAG, gekoppelt, ein Sicherheits-Controller 1018 vorgesehen,
welcher eingerichtet ist zum Bereitstellen kryptographischer Funktionen,
beispielsweise zum Sichern der Integrität der über den System-Bus 1008,
die Eingabe-/Ausgabeschnittstelle 1012 und den internen
Bus 1016 an die CPU 1014 übertragenen Daten. Der Sicherheits-Controller 1018 ist
gemäß einem
Ausführungsbeispiel
der Erfindung derart eingerichtet, dass er beispielsweise die oben und
im Folgenden beschriebenen kryptographischen Sicherheitsmechanismen
bereitstellt, beispielsweise kryptographische Hash-Funktionen zur
Verifikation und Integritätssicherung
der der CPU 1014 über
den internen Bus 1016 zugeführten Daten.
-
Gemäß diesem
Ausführungsbeispiel
der Erfindung werden die der CPU 1014 zugeführten Daten von
dem Sicherheits-Controller 1018 von dem internen Bus 1016 abgehört und unter
Verwendung eines kryptographischen Hash-Verfahrens hinsichtlich
ihrer Integrität
gegenüber
in dem Sicherheits-Controller 1018 gespeicherten Referenzdaten überprüft. Hierfür ist in
dem Sicherheits-Controller 1018 gemäß einem Ausführungsbeispiel
der Erfindung ein Verifikations- und Integritäts-Prüfmodul 1020 vorgesehen,
in welchem die Hash-Funktionen und die Prüffunktionen zur Integritätssicherung
durchgeführt
werden. Das Gehäuse 1010 ist
gegen einen physikalischen Zugriff über einen anderen Weg als über die
Eingabe-/Ausgabeschnittstelle 1012 gesichert. Das Gehäuse mit der
CPU 1014 kann beispielsweise als ein Hybrid-Gehäuse eingerichtet
sein, d. h. als ein Chip-Gehäuse,
in dem mehrere Chips aufgenommen sind. Wie oben beschrieben wurde,
wird gemäß einem Ausführungsbeispiel
der Erfindung bei Laden des Hochfahr-Computerprogrammcodes in die CPU 1014 mittels
der Eingabe-/Ausgabeschnittstelle 1012 der
geladene Hochfahr-Computerprogrammcode von
dem internen Bus 1016 mittels des Sicherheits-Controllers 1018 gelesen
und es wird über
den Hochfahr-Computerprogrammcode ein Hash-Wert gebildet, beispielsweise
der Größe von 256
Bits. Dieser gebildete Hash-Wert
wird mit einem Referenz-Hash-Wert (allgemein, mit Referenzdaten)
verglichen, wobei der Referenz-Hash-Wert zuvor über den verlässlichen
ursprünglichen
Hochfahr-Computerprogrammcode
gebildet wurde, so dass auf diese Weise eine Integritätssicherung
des zu schützenden verlässlichen
ursprünglichen
Hochfahr-Computerprogrammcodes realisiert wird.
-
Auf
diese Weise ist es, wie oben erläutert,
ermöglicht,
dass ein möglicher
Angriff auf den externen System-Bus 1008 und eine mögliche Veränderung des
Hochfahr-Computerprogrammcodes, alternativ des BIOS-Programmcodes
oder anderer kritischer Computerprogrammcodes, bei Zuführen des
jeweiligen Computerprogrammcodes zu der CPU 1014 mittels
des Sicherheits-Controllers 1018 erkannt wird und entsprechende
Gegenmaßnahmen,
wie sie oben beschrieben wurden, vorgenommen werden können.
-
Es
ist darauf hinzuweisen, dass in einer alternativen Ausführungsform
der Erfindung es vorgesehen sein kann, dass der gebildete Hash-Wert über den
der CPU 1014 zugeführten
Computerprogrammcode auch in einem Speicher des Sicherheits-Controllers 1018 gespeichert
werden kann zur späteren Analyse
durch ein anderes Computerprogramm, welches beispielsweise von dem
Sicherheits-Controller 1018, der CPU 1014 oder
einem anderen Prozessor ausgeführt
werden kann, wobei das Computerprogramm auf derselben Plattform,
d. h. von dem Host-Computersystems 1002 oder
schon einem zentralisierten Integritäts-Management-Server oder einem
Digitale-Rechte-Verwaltungs-Server
(Digital Rights Management Server, DRM-Server) durchgeführt werden kann.
-
In
einer anderen Ausführungsform
der Erfindung ist es vorgesehen, dass die kryptographischen Funktionen
des Sicherheits-Controllers 1018 auch in die CPU 1014 integriert sein
können
als zusätzliches Hardware-Modul,
welches hinzugefügt
wird im Rahmen des Entwurfs des Mikroprozessorchips, welcher als
CPU 1014 verwendet wird. Auf diese Weise wird ein zusätzlicher
Sicherheits-Controller 1018 in Form eines separaten Chips
eingespart. Auch ist bei Integration der Funktionalität des Sicherheits-Controllers 1018 in
die CPU 1014 ein noch höherer
Grad an Sicherheit erreichbar, da es in diesem Fall für einen
Angreifer noch nicht einmal Erfolg versprechend wäre, das
Gehäuse 1010 des
Host-Computersystems 1002 zu öffnen und auf diese Weise möglicherweise
den internen Bus 1016 zu umgehen und der CPU 1014 unmittelbar
die „verfälschten” Steuerungssignale,
d. h. den ”verfälschten” Computerprogrammcode
zuzuführen.
-
11 zeigt
die Funktionalität
des Sicherheits-Controllers 1018 in einem Ablaufdiagramm
in vereinfachter Darstellung.
-
Der
von dem Host-internen Bus 1016 übertragene und für die CPU 1014 bestimmte
Computerprogrammcode wird in den Sicherheits-Controller 1018 eingelesen
und einem kryptographischen Hash-Algorithmus (in 11 symbolisiert
mittels eines Blocks 1102) unterzogen, beispielsweise einem der
oben beschriebenen kryptographischen Hash-Algorithmen.
-
Der
gebildete Hash-Wert 1104 wird in einem Vergleichsschritt 1106 mit
einem in einem nichtflüchtigen
Speicher 1108 ausgelesene Referenzdaten 1110 verglichen.
-
Das
Vergleichsergebnis (beispielsweise ein Ergebnis, dass die beiden
Hash-Werte miteinander übereinstimmen
oder dass sie unterschiedlich sind) wird als Ergebnissignal 1112 einer
Entscheidungseinheit 1114 zugeführt, in welcher entschieden wird, welche
Maßnahmen
aufgrund des ihr zugeführten Ergebnissignals 1112 vorzusehen
sind.
-
Die
Entscheidungseinheit 1114 erzeugt entsprechend der vorgesehenen
Gegenmaßnahme(n) bei
Abweichung des gemessenen bzw. neu gebildeten Hash-Werts 1104 mit
dem Referenz-Hash-Wert 1110 ein
Steuerungssignal 1116, welches einem geschützten und
somit „zuverlässigen” und vertrauenswürdigen Sicherheits-Prozessor 1118 zugeführt wird zur
Ausführung
eines Programmcodes, der die jeweils vorgesehene Gegenmaßnahme repräsentiert.
-
Ferner
wird der Hash-Wert 1104 digital signiert und in einem weiteren
nicht-flüchtigen
Speicher 1120 als digital signierter Hash-Wert 1122 gespeichert.
-
Die
beschriebenen und vorgesehenen kryptographischen Algorithmen beispielsweise
zur Ermittlung der Hash-Werte oder der jeweiligen digitalen Signatur über einen
Computerprogrammcode oder einen gebildeten Hash-Wert werden durchgeführt mittels
einer oder mehreren kryptographischen Einheiten 1124.
-
Der
Sicherheits-Prozessor 1118 stellt an einer zweiten Eingabe-/Ausgabeschnittstelle 1126 die entsprechenden
Steuersignale 1128 für
die CPU 1014 oder für
die anderen Funktionsblöcke 1004 bereit,
wobei die Steuersignale die oben beschriebenen Gegenmaßnahmen
repräsentieren.
-
12 zeigt
das Host-Computersystem 1002 in größerem Detail.
-
Der
Sicherheits-Controller 1018 ist derart eingerichtet, dass
bei Hochfahren des Host-Computersystems 1002 der Hochfahr- Computerprogrammcode
geladen wird und darüber
oder über
einen Teil des Hochfahr-Computerprogrammcodes ein Hash-Wert unter
Verwendung einer kryptographischen Hash-Funktion, wie sie oben beschrieben
wurde, berechnet wird. Das Laden des Hochfahr-Computerprogrammcodes
erfolgt, wie oben beschrieben wurde, mittels Auslesens des Hochfahr-Computerprogrammcodes
von dem internen Bus 1016, welcher beispielsweise als JTAG-Bus eingerichtet
ist. Nach Bilden des Hash-Werts wird dieser zur Integritätssicherung
mit dem zuvor gespeicherten „verlässlichen” Referenz-Hash-Wert,
welcher über
den Original-Hochfahr-Computerprogrammcodes zuvor gebildet wurde,
verglichen. Anschließend
wird, wie oben beschrieben wurde, bei Ermitteln einer Diskrepanz zwischen
diesen Hash-Werten von dem Sicherheits-Controller 1018 eine
geeignete Gegenmaßnahme
gegen einen Angriffsversuch vorgesehen.
-
Gemäß einem
anderen Ausführungsbeispiel der
Erfindung ist es vorgesehen, den ermittelten Hash-Wert in vertrauenswürdiger Weise,
beispielsweise digital signiert, zu speichern, und den oben beschriebenen
Vergleich mit einem Referenz-Hash-Wert erst zu einem späteren Zeitpunkt durchzuführen, wobei
dieser Vergleich auch von einer anderen Einrichtung (beispielsweise
einer vertrauenswürdigen
Instanz gemäß dem TCG-Standard (Trusted
Computing Group). Der ermittelte Hash-Wert, beispielsweise der digital
signierte ermittelte Hash-Wert kann über ein Telekommunikations-Netzwerk
zu einer vertrauenswürdigen
Instanz übertragen
werden.
-
Die
CPU 1114 weist gemäß einem
Ausführungsbeispiel
der Erfindung ein mit dem JTAG-Bus 1016 gekoppelten Cache-Speicher-Controller 1202 auf
sowie einen Schreib-Lese-Speicher
zum Speichern des Computerprogrammcodes 1204.
-
Ferner
ist ein interner Cache-Speicher 1206 vorgesehen, welcher
mit dem System-Bus 1008 gekoppelt ist.
-
Weiterhin
ist in der CPU 1014 ein Mikroprozessor 1208 vorgesehen,
der sowohl mit dem System-internen Bus 1016 als auch mit
dem externen Bus 1008 gekoppelt ist. Gemäß diesem
Ausführungsbeispiel
der Erfindung erfolgt der Zugriff auf den in den Schreib-Lese-Speicher 1204 der
CPU 1014 geladenen Hochfahr-Computerprogrammcode mittels
des internen Busses 1016 unter Verwendung des internen
Cache-Speichers 1206 der CPU 1014.
-
Derzeitige
CPUs 1014, wie beispielsweise eine CPU der Firma AMD oder
Intel weisen üblicherweise
sowohl einen internen Cache-Speicher, welcher von der CPU als Standard-Speicher
zum Speichern von Variablen und Computerprogrammcodes, ausführbaren
Codes etc. verwendet werden kann, und gegebenenfalls einen spezifischen
internen Sub-Prozessor auf, welcher verwendet werden kann zum Bereitstellen
der sicherheitsrelevanten Funktionen. Ferner kann auch der Haupt-Prozessor 1208 der
CPU 1014 zum Ausführen
des in dem Cache-Speicher 1206.
gespeicherten Codes eingesetzt werden.
-
Unter
Verwendung des JTAG-Standard-Test-Busses können sowohl Daten als auch Computerprogrammcodes
zu deren Integritätssicherung
beim Hochfahren des Host-Computersystems 1002 in den internen
Cache-Speicher 1206 geladen werden und mittels des JTAG-Busses 1016 dem
Sicherheits-Controller 1018 zugeführt werden, in welchem die
oben beschriebenen Sicherheitsmaßnahmen realisiert sind. Wenn
jedoch die sicherheitsrelevanten Funktionen in der Haupt-CPU 1014 realisiert sind,
wie oben in einem alternativen Ausführungsbeispiel der Erfindung
beschrieben, ist es vorgesehen, dass der Computerprogrammcode als
Mikrocode in den Schreib-Lese-Speicher 1204 der CPU 1014 geladen
wird und alle Integritätssicherungs-Maßnahmen
ausgehend von den darin gespeicherten Daten durchgeführt werden.
Dies hat den Vorteil, dass es ermöglicht wird, dass die kryptographischen
Funktionen von der CPU 1208 selbst durchgeführt werden, so
dass ein zusätzlicher
Sicherheits-Controller 1018 entbehrlich wäre.
-
Dies
ist beispielsweise deshalb vorteilhaft, da ein Sicherheits-Controller 1018 üblicherweise eine
große
Anzahl von Busleitungen aufweist und damit eine große Anzahl
von Eingangs-/Ausgangs-Anschlüssen
(beispielsweise 32 oder 64 Eingangs-/Ausgangs-Pins), was die Kosten
für das Host-Computersystem 1002 erheblich
erhöhen
würde.
-
Die
Funktionen des Sicherheits-Controllers 1018 können beispielsweise
auch von der internen Prozessoreinheit 1208 realisiert
werden.
-
Der
Sicherheits-Controller 1018 ist eingerichtet zum Durchführen der
folgenden Funktionen:
- • Laden des Computerprogrammcodes
(beispielsweise des Mikrocodes) und Überprüfen der Integrität des geladenen
Computerprogrammcodes, ausgehend von einem internen geschützten Speicher,
während
des Hochfahrens des Host-Computersystems 1002;
- • Synchronisieren
beispielsweise des Computerprogrammcodes, beispielsweise des BIOS-Computerprogrammcodes
im Rahmen von dessen Ausführung,
und Integritätssichern
desselben;
- • Speichern
und Verifizieren der Ergebnisse des Integritätssicherungs-Vergleiches; wenn
Diskrepanzen zwischen den Hash-Werten ermittelt werden, so wird
von dem Sicherheits-Controller 1018 eine entsprechende
Gegenmaßnahme
ausgewählt
und durchgeführt.
-
Für die Realisierung
des Sicherheits-Controllers 1018 können an sich bekannte Technologien wie
Smart Cards oder vertrauenswürdige
Plattformmodule (Trusted Platform Moduls) verwendet werden. Zugriffskontrolle,
Aktualisierungen, Authentifikation und Funktionen zur Steuerung
des Sicherheits-Controllers 1018 können in diesem Fall unter Verwendung
derzeit verfügbarer
Standards realisiert werden.
-
Der
Referenz-Hash-Wert kann, wie oben beschrieben wurde, digital signiert
werden und in einem geschützten
Speicherbereich oder in einem separaten Speicher (beispielsweise
dem weiteren Speicher 1120) gespeichert werden, so dass
jede Modifikation des Referenz-Hash-Werts auf einfache Weise entdeckt
werden kann, indem die gebildete digitale Signatur überprüft wird.
Nur Software mit einem gültigen Zertifikat
ist es gemäß einem
Ausführungsbeispiel der
Erfindung erlaubt und ermöglicht,
auf die CPU 1014 zuzugreifen und ihre gesamte Funktionalität zu nutzen.
In diesem Zusammenhang wird auf konkrete Realisierungsmaßnahmen
hinsichtlich der Zertifikate und der jeweiligen Teil-Computerprogramme
auf die oben beschriebenen Ausführungsbeispiele
im Zusammenhang mit den 1 bis 9 verwiesen.
-
Eine
weitere Verbesserung kann dadurch erreicht werden, dass ein individuelles
digitales Zertifikat in jedem Verifikationsmodul, wie es beispielsweise
in dem Trusted Computing-Standard definiert ist, installiert wird
und dass Hash-Referenz-Werte in sicherer Weise von außen in das
Host- Computersystem
ladbar sind (in dem Fall eine Aktualisierung einer Funktion des
Sicherheits-Controllers). Ein Aspekt dieser Ausführungsbeispiele der Erfindung
ist es, eine Vertrauenskette einzurichten (Chain of Trust), so dass
ausschließlich
zertifizierte Hersteller von Computerprogrammen (beispielsweise
Applikations-Computerprogrammen)
wie beispielsweise DRM-Eigentümer
der genutzten Plattform auf die Hash-Referenz-Werte zugreifen und
verändern
können
und gegebenenfalls nur diesen es erlaubt ist, zusätzliche
Funktionen dem Sicherheits-Controller und/oder der CPU 1014 hinzuzufügen oder
bestehende Funktionen zu löschen
oder zu verändern.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung wird, in analoger Weise wie im Zusammenhang mit den 1 bis 9 beschrieben,
ein sicheres geteiltes Hochfahren des Host-Computersystems vorgesehen. Dies bedeutet,
dass der Hersteller der Computerplattform, beispielsweise des Host-Computersystems 1002 als
auch ein zertifizierter Kundendienst-Provider, der das Host-Computersystem
wartet und der Plattform-DRM-Integrator und der DRM-Eigentümer alle
ein sicheres Hochfahren des Host-Computersystems und ein Ausführen des
ihnen jeweils zugeordneten und von ihnen digital signierten Computerprogrammcodes
ermöglicht
wird, indem individuelle Zertifikate mittels einer Sicherheitseinrichtung,
wie beispielsweise einer Smart Card, dem Sicherheits-Controller 1018 und
den darin bereitgestellten kryptographischen Mechanismen zugeführt werden.
-
Die
Verfahren zum geteilten Hochfahren des Host-Computersystems ermöglicht es dem DRM-Integrator,
vollständige
Kontrolle über
das Hochfahren der Plattform zu haben, ermöglicht es jedoch weiterhin
dem Hersteller der Plattform, unter Verwendung seiner ihm zugehörigen Software
das Host-Computersystem 1002 zu integrieren, d. h. zu warten
und fertig zu stellen. Das geteilte Hochfahren wird unter Verwendung
des in dem Hochfahr-Speicher (Boot-ROM) gespeicherten Hochfahr-Computerprogrammcodes
gesteuert, wobei der in dem Hochfahr-Speicher gespeicherte Hochfahr-Computerprogrammcode
mittels einer externen Authentifikationseinrichtung verifiziert
wird. Der Hochfahr-Speicher
ist in dem Sicherheits-Controller 1018 vorgesehen.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung wird es ferner ermöglicht,
diese Schutzmaßnahmen
und Sicherheitsmerkmale nach einer vorgegebenen Zeitdauer im Betrieb
zu deaktivieren oder beispielsweise die Ausführung von Applikations-Computerprogrammen
auf der CPU 1014 nach einer vorgegebenen Nutzungszeitdauer
oder nach einer vorgegebenen Anzahl von Aufrufen zu deaktivieren,
oder auch die Nutzungseinschränkungen nach
einer bestimmten Nutzungsdauer oder nach einer bestimmten Anzahl
von Aufrufen der jeweiligen Computerapplikation zu deaktivieren,
in welchem Fall der Nutzer der Plattform die Applikations-Computerprogramme
nach der Entrichtung einer bestimmten vorgebbaren Gebühr frei
nutzen kann.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung kann ein öffentlicher
Schlüssel
des Herstellers des Host-Computersystems
in Hardware, beispielsweise in dem Hochfahr-ROM des Sicherheits-Controllers 1018 als
vertrauenswürdiger
Startpunkt der Sicherheitskette verwendet werden im Rahmen des sicheren
Hochfahrens des Host-Computersystems 1002.
-
Der
Hochfahr-Prozess ist gemäß einem
Ausführungsbeispiel
derart definiert, dass der Nutzer der Plattform einen öffentlichen
Schlüssel
besitzen muss, der von dem Plattform-Lieferanten oder dem Plattform-Hersteller
digital mit dessen geheimen Schlüssel
signiert ist, um ein sicheres Hochfahren des Host-Computersystems 1002 zu
gewährleisten.
Das Hochfahren erfolgt in entsprechender Weise, wie es im Zusammenhang
mit den Ausführungsbeispielen
in 1 bis 9 beschrieben wurde.
-
Auf
diese Weise wird es dem Plattform-Exporteur bzw. dem Hersteller
der Plattform ermöglicht, Kontrolle
darüber
zu haben, welchen Kunden ein sicheres Hochfahren mit einem damit
verknüpften
Nutzen aller Funktionen des Host-Computersystem 1002 auf
der Plattform erlaubt ist.
-
Allgemein
kann unter Verwendung eines solchen sicheren Hochfahr-Prozesses
eine vordefinierte Auswahl von für
bestimmte Benutzergruppen vorgesehenen Funktionen vorgesehen sein.
-
Auf
diese Weise ist es möglich,
eine Computerplattform wie beispielsweise das Host-Computersystem 1002 in
unterschiedlichen Anwendungsszenarien und für unterschiedliche Geschäftsmodelle einzusetzen,
da es ermöglicht
wird, auf Basis kryptographischer Mechanismen für unterschiedliche Nutzer eine
entsprechend des Geschäftsmodells
bzw. des Anwendungsszenarien „maßgeschneiderte” skalierte
Funktionalität
des Host-Computersystems 1002 bereitzustellen.