-
Die
vorliegende Erfindung betrifft im allgemeinen ein elektronisches
Datenverarbeitungsmittel, dessen Funktionalitäten oder damit verbundene Dienste über einen
Geheimcode zugänglich
sind, der ebenfalls als Passwort oder vertraulicher Code bezeichnet
wird, und der meistens von dem Verarbeitungsmittel nach einer Eingabe über die
Tastatur eines Empfangsmittels des Verarbeitungsmittels erhalten
wird (siehe US-A-4907 272).
-
Bei
dem Datenverarbeitungsmittel handelt es sich beispielsweise um eine
Mikrocontrollerkarte, die ebenfalls als IC-Karte oder Chip-Karte
(Smart Card) bezeichnet wird, wie beispielsweise eine Kreditkarte
für ein
Bankterminal oder eine elektronische Geldbörse für das Terminal einer Verkaufsstelle
oder für
andere Terminals wie ein mobiles Funktelefonterminal mit einem Zusatzkartenleser,
oder um eine Ausweiskarte SIM (Subscriber Identity Module) in einem
mobilen Funktelefonterminal.
-
Insbesondere
betrifft die Erfindung die Sicherheit der Zugriffskontrolle auf
die Funktionalitäten der
Chipkarte über
einen dieser präsentierten
Code, der mit einem der Chipkarte zugeordneten und in dieser abgespeicherten
Geheimcode verglichen wird.
-
Ein
Angreifer, eine böswillige
Person, der den Geheimcode einer Chipkarte kennen möchte, kann
eine Analyse des Stromverbrauchs (in englisch Single Power Analysis
SPA) vornehmen, indem er an die elektrische Schnittstelle zwischen
der Chipkarte und seinem Empfangsterminal ein Spannungsmessgerät anschließt.
-
In
einer Chipkarte nach dem Stand der Technik werden der in einem nicht
flüchtigen
Speicher der Chipkarte abgespeicherte Geheimcode und der temporär im RAM-Speicher
der Chipkarte präsentierte Code
in Blöcke
geteilt und blockweise verglichen. Wenn nach einem der Blockvergleiche
die jeweiligen Blöcke
nicht identisch sind, werden die nachfolgenden Blockvergleiche nicht
ausgeführt,
und der präsentierte
Code wird für
den Zugriff auf die Funktionalitäten
abgelehnt. Die Bestätigungsdauer
des präsentierten
Codes ist demnach abhängig
von der Anzahl der ersten korrekten Blöcke in dem präsentierten
Code. Demzufolge ist die Bearbeitungsdauer des Geheimcodes für die Überprüfung eines
präsentierten Codes,
um den richtigen Inhaber der Chipkarte zu authentifizieren, variabel,
wodurch implizit Informationen über
den Geheimcode geliefert werden, aufgrund von Aufzeichnungen von
Energieverbrauchsmerkmalen der Chipkarte und von Messungen der Vergleichsdauern
verschiedener präsentierter
Codes.
-
Der
Erfindung liegt die Aufgabe zugrunde, diese Informationsverluste
bezüglich
des geheimen Zugriffscodes auf ein Datenverarbeitungsmittel, wie beispielsweise
eine Chipkarte, abzustellen und somit die Stromverbrauchs- und Vergleichsdauerdifferenzen
verschwinden zu lassen, und zwar bei jedem falsch präsentierten
Code.
-
Dieses
Problem wird gelöst
durch das Zugriffsverfahren auf ein Datenverarbeitungsmittel, verbunden
mit einem vertraulichen Geheimcode und zugänglich über die Eingabe eines von einem
Empfangsmittel präsentierten
vertraulichen Codes, wie im Patentanspruch 1 definiert.
-
Die
Vergleiche bezüglich
eines Teils des präsentierten
Codes und eines Teils der bestimmten Zahl, die keine mit dem Geheimcode
verbundenen Daten enthält
und die Rolle eines künstlichen
Geheimcodes spielt, simulieren die ersten Vergleiche, d. h. realisieren
eine künstliche
Bearbeitung des Geheimcodes gegenüber dem Umfeld, sobald der
präsentierte
Code als falsch erfasst wird.
-
Da
die Anzahl der blockweisen Vergleiche unabhängig vom richtig, teilweise
falsch oder gänzlich
falsch präsentierten
Code stets konstant ist, und da im allgemeinen die Folge der ausgeführten Operationen
für alle
präsentierten
Codes konstant ist, kann keine merkliche Signatur bezüglich der
Stromverbrauchsmessung von einem präsentierten Code zum nächsten erfasst
werden.
-
Weitere
Merkmale und Vorteile der vorliegenden Erfindung ergeben sich deutlicher
aus der nachfolgenden Beschreibung mehrerer bevorzugter Ausführungen
der Erfindung unter Bezugnahme auf die entsprechenden beigefügten Zeichnungen,
in denen:
-
1 ein
schematische Blockdiagramm darstellt, das ein Umsetzungssystem des
erfindungsgemäßen Zugriffskontrollverfahrens
im Zusammenhang mit einer Chipkarte zeigt;
-
2 einen
Algorithmus der Hauptschritte des Zugriffskontrollverfahrens gemäß einer
bevorzugten Ausführung
der Erfindung zeigt; und
-
3 Varianten
des Verfahrensalgorithmus von 2 zeigt.
-
Gemäß der in 1 dargestellten
schematischen Ausführung
besteht ein elektronisches Datenverarbeitungsmittel aus einer Chipkarte
CA, deren „Chip" ein Mikrocontroller
ist. Schematisch umfasst der Mikrocontroller eine zentrale Verarbeitungseinheit
CPU, bestehend aus einem Mikroprozessor PR, einem Speicher MO des
Typs ROM einschl. ein Betriebssystem OS der Karte und insbesondere
spezifische Applikationsalgorithmen für Kommunikation und Authentifizierung,
einen nicht flüchtigen
Speicher MNV eines programmierbaren und löschbaren Typs wie ein EEPROM-Speicher,
der insbesondere den Karteninhaber und den Kartenlieferanten betreffende Daten
enthält,
und einen Speicher MA des Typs RAM, der insbesondere Daten eines
Empfangsterminals TE der Karte erhalten soll. Alle Bestandteile
PR, MO, MNV und MA sind über
einen internen Bus BU miteinander verbunden.
-
Das
Empfangsterminal TE, wie beispielsweise ein Bankterminal oder ein
Telefonterminal, ist mit einer Tastatur CL ausgestattet, um insbesondere
einen der Karte zu präsentierenden
vertraulichen Code P einzugeben, den so genannten präsentierten
Code. In einen Leser LE des Terminals TE ist ein Teil der Karte
CA eingeführt,
der den Mikrocontroller enthält und
typisch sechs bis acht elektrische Kontakte einer elektrischen Leitung
LI zwischen dem Leser LE und dem internen Bus BU der Karte CA trägt, wenn
es sich um eine Kontaktkarte handelt.
-
Unter
Bezugnahme auf 2 umfasst das Zugriffskontrollverfahren
gemäß einer
bevorzugten Ausführung
der Erfindung für
die in 1 dargestellte Chipkarte CA hauptsächlich die
Schritte E1 bis E16.
-
Der
erste Schritt erfolgt vorher bei dem Lieferanten der Karte, bei
der Herstellung der Karte und bei dem Erwerb der Karte CA, beispielsweise
bei dem Abonnement eines über
die Funktionalitäten
der Karte zugänglichen
Dienstes.
-
Insbesondere
je nach den Daten des Kartenherstellers teilt der Kartenlieferant
der Karte CA einen mehrstelligen Geheimcode S zu, der an einer vorbestimmten
Stelle in dem nichtflüchtigen
Speicher MNV der Karte CA eingetragen wird. Der Geheimcode S ist in
I Bitblöcke
S1 bis SI unterteilt, wobei jeder Block beispielsweise eine vorbestimmte
Anzahl Bytes enthält,
die typisch zwischen einem und einigen Bytes schwankt.
-
Bei
dem vorherigen Schritt E2 wird eine bestimmte Zahl A im allgemeinen
zufällig
von dem Prozessor PR der Karte CA erzeugt. Die Zahl A hat die gleiche
Größe wie der
Code S und ist in I Bitblöcke A1
bis AI unterteilt. Vorzugsweise werden der Geheimcode S und die
bestimmte Zahl A in Felder des nicht flüchtigen Speichers MNV der Karte
CA eingetragen, die Adressen entsprechen mit den Bitanzahlen NB0
und NB1, jeweils bei etwa identischen logischen Zuständen „0" und „1"; beispielsweise
sind für Adressen
aus 8 Bits die Adressen „11011011" und „11101110" mit NB0 = 2 und
NB1 = 6 oder die Adressen der benachbarten Felder „00011111" und „00011110" mit NB0 = 3 und
4 und NB1 = 5 und 4 ausreichend, damit das Lesen eines Blocks Si
des Geheimcodes ähnlich
dem Lesen eines Blocks Ai der Zufallszahl ist, und so dass diese
beiden Lesungen quasi identisch gegenüber einer Stromverbrauchsmessung
sind. Dies trägt
dazu bei, das Auftreten von unterschiedlichen Stromverbrauchssignaturen
zwischen den Vergleichen bezüglich
der Angaben von verschiedenen präsentierten
Codes zu vermeiden.
-
Die
Schritte E3 bis E16 erfolgen nach der Einführung der Karte CA in den Leser
LE des Empfangsterminals TE, das somit über die elektrische Leitung
LI und den internen Bus BU an den Mikrocontroller der Karte CA angeschlossen
ist.
-
Bei
jeder Benutzung der Karte wird beim Schritt E3 auf der Tastatur
CL des Terminals TE ein präsentierter
Code P, der normalerweise identisch mit dem Geheimcode sein soll,
eingegeben, um den präsentierten
Code in der Karte zu prüfen.
Das Terminal überträgt den präsentierten
Code P entweder fortschreitend mit der Eingabe der Zahlen des präsentierten
Codes, beispielsweise vier, oder kontinuierlich über die Leitung LI und den
Bus BU an die Karte CA, um ihn im Schritt E4 in den RAM-Speicher
MA einzutragen.
-
Bei
den nächsten
Schritten E5 und E6 setzt der Prozessor die internen Register für einen
Index i und eine logische Variable des Vergleichsergebnisses Res
auf Null, und setzt zwei interne Register für Blockvariablen V1 und V2
auf die Werte der ersten, jeweils in die Speicher MNV und MA eingelesenen Blöcke S1 und
P1.
-
Dann
vergleicht der Prozessor PR in einem ersten Schritt E7 einer Schleife
E7–E11
die Variablen V1 und V2, d. h. den ersten Block S1 des Geheimcodes
in dem Speicher MNV und den ersten Block P1 des präsentierten
Codes in dem Speicher MA, indem er das Vergleichsergebnis Res der
vorherigen Schleife gemäß der folgenden
logischen Beziehung addiert:
Res = RES OU (V1 XOR V2),
d.
h. Res = Res OU (S1 XOR P1).
-
Wenn
das Ergebnis Res bei dem nächsten Schritt
E8 immer noch gleich Null ist, d. h. wenn die verglichenen Variablen
V1 = S1 und V2 = P1 identisch sind, wird der Index i bei dem Schritt
E9 inkrementiert, und die Variablen V1 und V2 werden bei dem Schritt
E10 auf die Werte der folgenden Blöcke S2 und P2 gesetzt. Wenn
der Index i bei dem Schritt E1 nicht größer ist als I, wird eine andere
Schleife E7 bis E1 ausgeführt,
um die beiden Blöcke
P2 und S2 zu vergleichen und den Index i zu inkrementieren, und
so weiter, solange die verglichenen Blöcke Pi und Si identisch sind
und bis der Index i den Index I erreicht. In diesem Fall bleibt
die Ergebnisvariable Res gleich Null bis zu dem auf den Schritt
E11 folgenden Schritt E12, und die Blöcke Pi des präsentierten Codes
sind jeweils identisch mit den Blöcken Si des Geheimcodes. Der
letzte Schritt E13 akzeptiert den präsentierten Code P, um Zugriff
auf Funktionalitäten der
Karte CA zu gewähren,
beispielsweise auf eine Zahlungs- oder Telefondienstanwendung.
-
Kehrt
man zum Schritt E8 zurück,
wenn die Ergebnisvariable Res gleich 1 ist, d. h. wenn ein Pi der
Blöcke
des präsentierten
Codes P sich von dem jeweiligen Block Si des Geheimcodes S unterscheidet,
so wird der Code P nicht sofort abgelehnt, sondern erfindungsgemäß weiter
von dem Prozessor PR verarbeitet, als wäre der präsentierte Code P gegenüber dem
Umfeld der Karte nicht falsch, um stets insgesamt I Schleifen von
Schritten E7–E11,
d. h. I Vergleiche von Blöcken
durchzuführen,
d. h. i Vergleiche von Blöcken
P1 bis Pi und S1 bis Si und I – i
Vergleiche von Blöcken
P(i + 1) bis PI und A(i + 1) bis AI, wobei der präsentierte
Code P mindestens einen falschen Block Pi enthält.
-
Sobald
dann in dem Schritt E8 Pi ≠ Si
ist, wird der Index i bei dem Schritt E14 um eine Einheit inkrementiert,
und der Prozessor PR setzt die Werte der Variablen V1 und V2 auf
denjenigen des Blocks A(i + 1) der in dem Speicher MNV eingelesenen
Zufallszahl und auf denjenigen des Blocks P(i + 1) des bei dem Schritt
E15 in den Speicher MA eingelesenen präsentierten Codes, um sie während des Schritts
E7 der folgenden Schleife zu vergleichen, solange i in dem Schritt
E1 nicht größer ist
als I. Das Vergleichsergebnis Res ist bei dem Schritt E7 jedoch bei
jeder beliebigen Differenz zwischen den Blöcken P(i + 1) bis PI und A(i
+ 1) bis AI während
der folgenden Schleifen stets gleich „1", wobei der Prozessor PR die Ausführung der
Schleife mit den Schritten E7, E8, E14, E15 und E11 bis zum Vergleich
der Blöcke PI
und AI fortsetzt.
-
Nach
dem letzten Vergleich bezüglich
der Blöcke
PI und AI, wobei das Ergebnis Res in dem Schritt E12 „1" lautet, lehnt der
Prozessor PR in dem Schritt E16 den präsentierten Code P ab, beispielsweise
indem er die Anzeige einer entsprechenden Meldung auf dem Display
des Empfangsterminals TE anordnet. Weitere Eingabeversuche des präsentierten
Codes können
eventuell in begrenzter Anzahl zugelassen sein.
-
Als
Variante werden die Operationen i = i + 1 und V2 = Pi in den Schritten
E9 und E10 und in den Schritten E14 und E15 zwischen den Schritten
E7 und E8 ausgeführt.
-
Es
ist ersichtlich, dass die Anzahl Schritte zwischen den beiden im
konditionellen Schritt E8 „Res
= 0 ?" gebotenen
Möglichkeiten
konstant ist und die ab der Eingabe des präsentierten Codes P in Schritt
E3 ausgeführten
Operationen bei jedem beliebigen Inhalt des präsentierten Codes identisch
sind. Demzufolge umfasst das Verfahren eine konstante Anzahl ausgeführter Schritte
oder Operationen und demnach Codezeilen, ob der präsentierte
Code P richtig oder teilweise falsch oder gänzlich falsch ist. Die Dauer
des Verfahrens ist also konstant, und die Stromverbrauchsschwankung
der Karte während dieses
Verfahrens ist unabhängig
von dem präsentierten
Code quasi die gleiche.
-
So
führt der
Prozessor für
I Blöcke
k Schleifen E7, E8, E9, E10, E11 bezüglich Vergleiche mit dem Blöcken S1
bis Sk des Geheimcodes und I – k Schleifen
E7, E8, E14, E15, E11 in komplementärer Anzahl zu k in Bezug auf
I bezüglich
Vergleiche mit den Blöcken
A(k + 1) bis AI der Zahl A, mit 1 ≤ k ≤ I, aus.
-
Vorzugsweise
sind zwei mit identischen Geheimcodes zusammenwirkende Chipkarten
verschiedenen bestimmten Zahlen A zugeordnet. Da die bestimmten
Zahlen von vornherein zufällig
und demnach für
die beiden Karten unterschiedlich sind, können die Auswirkungen der Bearbeitung
dieser Zufallszahlen nicht zur Charakterisierung der Karte dienen.
-
Jedem
Geheimcode S entspricht vorzugsweise eine jeweilige bestimmte Zahl
A. Wenn der einer Karte zugeordnete Geheimcode geändert wird, wird
somit vorteilhaft ebenfalls die bestimmte Zahl A geändert. Wenn
beispielsweise zwei Ziffern eines Geheimcodes umgekehrt werden,
sind die beiden diesen beiden Geheimcodeversionen entsprechenden
bestimmten Zahlen unterschiedlich. Diese Variante vermeidet, eine
bestimmte Zahl in einer ersten Karte dank der Manipulation der bestimmten
Zahl in einer anderen Karte zu erkennen, die einem mit der ersten
Karte gemeinsamen Code zugeordnet ist.
-
In 3 findet
man das Wesentliche des Algorithmus des Zugriffsverfahrens nach 2 wieder, mit
geänderten
und/oder hinzugefügten
Schritten, gemäß durch
den Buchstaben a gekennzeichneten Schrittvarianten, wodurch die
Sicherheit der Zugriffskontrolle auf Funktionalitäten der
Karte weiter erhöht wird.
-
Nach
einer ersten Variante, anstatt die bestimmte Zahl quasi bei der
Inbetriebnahme der Karte zu erzeugen, erzeugt der Prozessor PR und ändert demnach
zufällig
die Zahl A jedes Mal, wenn die Karte CA mit einem präsentierten
Code P beaufschlagt wird, um dort in einem den Schritt E2 ersetzenden Schritt
E2a geprüft
zu werden. Der Schritt E2a folgt auf den Schritt E4 für das Schreiben
des präsentierten
Codes P und liegt vor der doppelten Schleife E7 bis E11 und demnach
vor den Vergleichen E7.
-
Das
Erzeugen einer Zahl A bei jeder Präsentation eines falschen Codes
P garantiert, dass die I Vergleiche der Blöcke des Codes P und der Blöcke der
Anzahl A niemals auf die gleiche Weise ausgeführt werden, auf Kosten eines
Stromverbrauchs, der für
die Präsentationen
eines gleichen falschen Codes P recht unterschiedlich sein kann.
-
Nach
einer zweiten Variante wird der Index i in einem Schritt E5a anstelle
des Schritts E5 von dem Prozessor PR zufällig zwischen 1 und I gewählt. Bei dieser
zweiten Variante enthalten die Schritte E9 und E14, jetzt E9a und
E14a, die Inkrementierung i(mod I) + 1 des Index i. Das bedeutet
die zufällige
Wahl einer Zahl A unter I Zahlen, wenn die Zahl A ursprünglich in
dem Schritt E2 bestimmt wird.
-
Nach
einer dritten Variante umfasst das Zugriffsverfahren ferner eine
vorherige Umwandlung E1a des Geheimcodes S in einen umgewandelten Geheimcode
ST gemäß einer
Umwandlungsfunktion FT, die als Datenbearbeitungsmittel in den Speicher MO
der Karte CA implementiert ist, wobei die Umwandlung E1a zwischen
den Schritten E1 und E3 erfolgt; bei jeder Benutzung der Karte als
Datenverarbeitungsmittel erfolgt dann eine Umwandlung E4a des präsentierten
Codes P in einen gemäß der Umwandlungsfunktion
umgewandelten präsentierten Code
PT, vor der Anwendung der Schritte E5 bis E16 und insbesondere der
blockweisen Vergleiche E7, jedoch bezüglich der Blöcke STi
und PTi des umgewandelten präsentierten
Codes und des umgewandelten Geheimcodes sowie der bestimmten Zahl
A, wobei die Umwandlung E4a auf den Schritt E4 folgt.
-
Während der
Benutzung des aus der Chipkarte bestehenden Verarbeitungsmittels
gemäß dieser
dritten Variante wird der durch den umgewandelten Code ST ersetzte
Geheimcode S dort nicht gespeichert und demnach nicht bei einer
Präsentation des
präsentierten
vertraulichen Codes in der Karte bearbeitet.
-
Wie
in dem nicht veröffentlichten
französischen
Patentantrag Nr. 0007886 beschrieben, der von dem Antragsteller
am 20. Juni 2000 eingereicht wurde (FR-A-2810481), kann die Umwandlungsfunktion
irreversibel, eine Zerteilung im Zusammenhang mit einer bei der
Herstellung der Karte festgelegten oder aber von einer zweiten,
bei jeder Präsentation des
präsentierten
Codes variablen Zufallszahl NA abhängig, iterativ entsprechend
der Anzahl der vorherigen Präsentationen
des präsentierten
Codes, eine vorgegebene Permutation von Teilen des Codes oder eine
homomorphe Funktion sein. Einige dieser Merkmale der Umwandlungsfunktion
können
miteinander kombiniert werden. Die folgenden Schritte E6 bis E11
betreffen die Blöcke
ST1 bis STI und PT1 bis PTI der umgewandelten Codes ST und PT, die
jeweils anstelle der Blöcke
S1 bis SI und P1 bis PI der Codes S und P in den Speichern MNV und
MA eingetragen sind.
-
Die
obige Beschreibung geht davon aus, dass die Chipkarte alle bekannten
Chipkartentypen abdeckt, die ebenfalls Mikrocontrollerkarten genannt werden,
wie die nachfolgend als unbegrenzendes Beispiel genannten Karten
mit oder ohne Kontakt: Kreditkarten (Cartes Bleues), Zahlungskarten,
Prepaid-Karten, Telefonkarten, SIM-Karten, „Addierkarten", Einkaufszentralenkarten,
Spielkarten, usw. Im allgemeinen betrifft die Erfindung nicht nur
Chipkarten sondern ebenfalls andere tragbare elektronische Objekte,
die alle mit dem Begriff elektronische Datenverarbeitungsmittel
bezeichnet werden, wie elektronische Assistents oder Organizer,
elektronische Geldbörse,
Jetons, Taschenrechner, usw.
-
Das
Empfangsterminal des elektronischen Datenverarbeitungsmittels kann
beispielsweise des Typs IT-Endgerät, Personal Computer, insbesondere Laptop,
Bankterminal, Verkaufsstellenterminal, Funktelefonterminal, Zugangskontrollvorrichtung
zu einem Raum oder einen Safe, usw. sein. Das Empfangsmittel kann
von dem Datenverarbeitungsmittel entfernt sein, die anhand eines
beliebigen Datenübertragungsmittels
verbunden sind.
-
Der
Geheimcode im Sinne der Erfindung wird zuweilen ebenfalls als Passwort
(password) oder vertraulicher Code oder auch Persönliche Identitätsnummer
PIN (Personal Identification Number) bzw. CHV (Card Holder Verification)
bzw. Identifizierer PTI (Personal Telecommunication Identifier),
insbesondere für
SIM-Karten eines Funktelefonterminals, bezeichnet.
-
Der
Geheimcode ist im allgemeinen ein alphanumerischer Code. Er kann
dem Datenverarbeitungsmittel, Chipkarte oder tragbares elektronisches Objekt,
außer über eine
Tastatur über
ein beliebiges bekanntes Codeeingabemittel zugeführt werden, beispielsweise
durch Stimme und Spracherkennung, oder aber durch Erkennung einer
biometrischen Signatur, beispielsweise eines Fingerabdruck.