-
Die
Erfindung betrifft ein Verfahren zum Betreiben eines tragbaren Datenträgers. Weiterhin
betrifft die Erfindung einen tragbaren Datenträger.
-
Bei
vielen Einsatzgebieten von tragbaren Datenträgern, wie beispielsweise im
Bereich des Zahlungsverkehrs oder bei Zugangskontrollen usw., ist
es sehr wichtig, dass im tragbaren Datenträger vorhandene geheime Daten
nicht ausgespäht
werden können.
Als geheime Daten können
im tragbaren Datenträger
beispielsweise ein geheimer Schlüssel, eine
persönliche
Geheimzahl, ein persönlicher
Geheimcode zum Zurücksetzen
des tragbaren Datenträgers
nach dessen Sperrung usw. abgelegt sein.
-
Es
ist bereits bekannt, geheime Daten zum Schutz vor Ausspähversuchen
in verschlüsselter Form
zu speichern und durch einen Entschlüsselungsmechanismus zu entschlüsseln, bevor
sie der Prozessoreinheit des tragbaren Datenträgers zur Verfügung gestellt
werden. Ebenso ist es auch möglich,
die Übertragungsstrecke
zwischen den Untereinheiten des tragbaren Datenträgers abzusichern, wobei
die Daten dann in den Untereinheiten im Klartext vorliegen können. Der
Zugriff auf die Daten wird in der Regel mit Hilfe von Zeigern ermöglicht,
die jeweils auf den Speicherplatz der Daten verweisen. Ein solcher
Zeiger kann beispielsweise einem Ein-/Ausgabeprozess übergeben
werden, der die Daten daraufhin von dem Speicheplatz, der durch
den Zeiger bestimmt wird über
eine dem Ein-/Ausgabeprozess zugeordnete Schnittstelle des tragbaren
Datenträgers
ausgibt. Wenn der Zeiger durch einen Angriff, beispielsweise durch
eine starke UV-Bestrahlung des tragbaren Datenträgers, so beeinflusst wird,
dass er auf eine andere als die vorgesehene Speicherposition verweist,
hat dies zur Folge, dass Daten, die nicht dafür vorgesehen sind, über die
dem Ein-/Ausgabeprozess zugeordnete Schnittstelle ausgegeben werden.
-
Bei
einem tragbaren Datenträger,
der über ein
Multitasking-Betriebssystem verfügt,
werden gleichzeitig mehrere Prozesse, wie beispielsweise Ein/Ausgabeprozesse,
kryptographische Prozesse oder Anwendungen ausgeführt. Dies
kann beispielsweise zur Folge haben, dass bei einer Manipulation eines
von einem Ein-/Ausgabeprozess verwendeten Zeigers unzulässiger Weise
Daten einer Anwendung ausgegeben werden. Wenn diese Daten im Klartext abgespeichert
sind, besteht somit die Gefahr einer missbräuchlichen Verwendung. Diese
Gefahr kann allerdings auch bei Daten bestehen, die in verschlüsselter
Form abgespeichert sind, da diese in der Regel nach dem Auslesen
aus dem Speicher entschlüsselt werden.
-
Es
ist daher Aufgabe der Erfindung, den Betrieb eines tragbaren Datenträgers möglichst
sicher zu gestalten und insbesondere das Ausspähen von Daten, die im tragbaren
Datenträger
gespeichert sind, zu verhindern.
-
Diese
Aufgabe wird durch ein Verfahren mit der Merkmalskombination des
Anspruchs 1 und einen tragbaren Datenträger gemäß Anspruch 14 gelöst.
-
Beim
erfindungsgemäßen Verfahren
zum Betreiben eines tragbaren Datenträgers werden in einem Speicher
des tragbaren Datenträgers
mehrere Dateien mit einem verschlüsselten Dateiinhalt angelegt.
Die Dateiinhalte der einzelnen Dateien werden auf unterschiedliche
Weise verschlüsselt,
so dass für eine
Entschlüsselung
jeweils ein dateispezifischer Schlüssel erforderlich ist. Einem
im tragbaren Datenträger
ablaufenden Prozess wird für
einen Zugriff auf den Dateiinhalt einer der Dateien der zugehörige dateispezifische
Schlüssel übergeben.
-
Die
Erfindung hat den Vorteil, dass ein Zugriff des Prozesses auf die
dafür vorgesehenen
Daten in einfacher Weise möglich
ist und dabei ein Zugriff auf andere Daten zuverlässig verhindert
wird. Die anderen Daten sind selbst dann zuverlässig geschützt, wenn infolge einer Manipulation
ein Zugriff am Speicherort dieser anderen Daten erfolgt.
-
Die
dateispezifischen Schlüssel
werden vorzugsweise im Speicher des tragbaren Datenträgers gespeichert
und stehen somit dem tragbaren Datenträger jederzeit zur Verfügung. Insbesondere
werden die dateispezifischen Schlüssel jeweils bei der Verschlüsselung
des Dateiinhalts erzeugt und gespeichert.
-
Zusätzlich zum
dateispezifischen Schlüssel kann
dem Prozess eine Information bezüglich
des Speicherorts, an dem der Dateiinhalt gespeichert ist und/oder
eine Information bezüglich
der Größe des Dateiinhalts übergeben
werden. Zur Abwehr von Manipulations- oder Ausspähversuchen kann die Übergabe
des dateispezifischen Schlüssels
und/oder der Information bezüglich
des Speicherorts und/oder der Information bezüglich der Größe des Dateiinhalts durch
einen temporär
gültigen
Schlüssel
abgesichert werden. Alternativ dazu oder zusätzlich kann diese Übergabe
in mehreren Schritten durchgeführt
werden. Die Übergabe
wird vorzugsweise von einem Betriebssystemkern gesteuert.
-
Der
dateispezifische Schlüssel
und/oder die Information bezüglich
des Speicherorts und/oder die Information bezüglich der Größe des Dateiinhalts werden
vorzugsweise der Datei entnommen, auf deren Dateiinhalt ein Zugriff
durch den Prozess vorgesehen ist. Dies vereinfacht die Verwaltung
und Zuordnung der einzelnen Parameter. Insbesondere kann der dateispezifische
Schlüssel
und/oder die Information bezüglich
des Speicherorts und/oder die Information bezüglich der Größe des Dateiinhalts
einem Dateiheader entnommen werden, der als ein separater Bereich
der Datei ausgebildet ist, auf deren Dateiinhalt ein Zugriff durch
den Prozess vorgesehen ist.
-
Dies
hat den Vorteil, dass der Dateiheader in der Regel ohnehin vorgesehen
ist und Informationen bezüglich
der Datei enthält.
-
Um
einen möglichst
lückenlosen
Schutz zu gewährleisten,
wird vorzugsweise jede Datei, die angelegt wird, mit einem verschlüsselten
Dateiinhalt angelegt. Bei dem Prozess, dem ein Zugriff auf den Dateiinhalt
ermöglicht
werden soll, kann es sich beispielsweise um einen Ein-/Ausgabeprozess
zum Eingeben und/oder Ausgeben von Daten über eine Schnittstelle des
tragbaren Datenträgers
handeln. Ein derartiger Prozess ist im Hinblick auf ein Ausspähen besonders
kritisch, da er Daten nach außen übermittelt.
-
Im
Rahmen des erfindungsgemäßen Verfahrens
kann vorgesehen sein, dass im tragbaren Datenträger mehrere Prozesse gleichzeitig
ablaufen und ein dateispezifischer Schlüssel für eine Datei, die einem dieser
Prozesse zugeordnet ist, einem anderen Prozess übergeben wird. Auf diese Weise
kann ein kontrollierter Datenaustausch zwischen unterschiedlichen
Prozessen ermöglicht
werden. Ebenso ist es mit dem erfindungsgemäßen Verfahren auch möglich, mehrere
Prozesse, die im tragbaren Datenträger gleichzeitig ablaufen,
voneinander abzuschotten. Hierzu wird jeder dateispezifische Schlüssel jeweils
nur dem Prozess zur Verfügung
gestellt, dem die zum jeweiligen dateispezifischen Schlüssel gehörige Datei
zugeordnet ist.
-
Der
erfindungsgemäße tragbare
Datenträger weist
einen Speicher auf, in dem mehrere Dateien mit einem verschlüsselten
Dateiinhalt abgelegt sind. Die Dateiinhalte der einzelnen Dateien
sind auf unterschiedliche Weise verschlüsselt, so dass für eine Entschlüsselung
jeweils ein dateispezifischer Schlüssel erforderlich ist. Weiterhin
weist der erfindungsgemäße tragbare
Datenträger
einen Betriebssystemkern zur Übergabe
des jeweiligen datei spezifischen Schlüssels an einen im tragbaren
Datenträger
ablaufenden Prozess für
einen Zugriff auf den Dateiinhalt der jeweiligen Datei auf.
-
Insbesondere
weist der erfindungsgemäße tragbare
Datenträger
ein Multitasking-Betriebssystem auf, das eine gleichzeitige Ausführung mehrerer Prozesse
erlaubt. In einem bevorzugten Ausführungsbeispiel ist der erfindungsgemäße tragbare
Datenträger
als eine Chipkarte ausgebildet.
-
Die
Erfindung wird nachstehend anhand der in der Zeichnung dargestellten
Ausführungsbeispiele erläutert.
-
Es
zeigen:
-
1 ein
stark vereinfachtes Blockschaltbild für ein Ausführungsbeispiel eines tragbaren
Datenträgers,
-
2 eine
vereinfachte Darstellung eines Betriebszustands des tragbaren Datenträgers und
-
3 ein
Flussdiagramm zur Veranschaulichung des Ablaufs bei der Ausgabe
des Dateiinhalts mittels des Ein-/Ausgabeprozesses.
-
1 zeigt
ein stark vereinfachtes Blockschaltbild für ein Ausführungsbeispiel eines tragbaren
Datenträgers 1,
bei dem das erfindungsgemäße Verfahren
angewendet werden kann. Dabei ist als ein tragbarer Datenträger 1 im
Sinn der Erfindung ein Rechnersystem anzusehen, bei dem die Ressourcen,
d. h. Speicherressourcen und/oder Rechenkapazität (Rechenleistung) begrenzt
sind, z. B. eine Chipkarte (Smart Card, Mikroprozessor-Chipkarte) oder
ein Token oder ein Chipmodul zum Einbau in eine Chipkarte oder in ein
Token. Der tragbare Datenträger 1 kann
eine beliebige standardisierte oder nicht standardisierte Gestalt
haben, beispielsweise die Gestalt einer flachen Chipkarte ohne Norm
oder nach einer Norm wie z.B. ISO 7810 (z.B. ID-1, ID-00, ID-000) oder die eines volumigen
Tokens.
-
Der
tragbare Datenträger 1 weist
eine Prozessoreinheit 2 auf, welche die Funktionsabläufe des tragbaren
Datenträgers 1 steuert
und auch als Central Processing Unit, abgekürzt CPU, bezeichnet wird. Weiterhin
weist der tragbare Datenträger 1 eine Schnittstelle 3 zur
Ein- und Ausgabe von Daten und einen Speicher 4 auf. Beim
dargestellten Ausführungsbeispiel
besteht der Speicher 4 aus einem Permanentspeicher 5,
einem nichtflüchtigen
Speicher 6 und einem flüchtigen
Speicher 7. Alternativ dazu ist auch ein anderer Aufbau
des Speichers 4 möglich. Die
Prozessoreinheit 2 ist mit der Schnittstelle 3,
dem Permanentspeicher 5, dem nichtflüchtigen Speicher 6 und
dem flüchtigen
Speicher 7 verbunden. Die Schnittstelle 3 dient
der Kommunikation mit externen Geräten, die durch eine berührende Kontaktierung des
tragbaren Datenträgers 1 und/oder
kontaktlos abgewickelt werden kann.
-
Im
Permanentspeicher 5 sind Daten abgelegt, die während der
gesamten Lebensdauer des tragbaren Datenträgers 1 unverändert erhalten
bleiben. Dabei wird der Begriff Daten im folgenden sehr allgemein
im Sinne beliebiger Informationen unabhängig von deren Inhalt verwendet
und es werden darunter beispielsweise Programme, Parameter, personenbezogene
Angaben, Schlüssel
usw. subsumiert. Insbesondere ist im Permanentspeicher 5 das Betriebssystem
des tragbaren Datenträgers 1 gespeichert.
-
Der
flüchtige
Speicher 7 dient als Arbeitsspeicher für die Prozessoreinheit 2,
so dass geheime Daten beispielsweise bei der Durchführung von
Berechnungen im flüchtigen
Speicher 7 zwischengespeichert werden. Im flüchtigen Speicher 7 bleibt
der Speicherinhalt nur solange erhalten, wie der tragbare Datenträger 1 mit
einer Betriebspannung versorgt wird.
-
Der
nichtflüchtige
Speicher 6 kann während der
Lebensdauer des tragbaren Datenträgers 1 immer wieder
neu beschrieben werden. Der jeweilige Speicherinhalt bleibt auch
dann erhalten, wenn der tragbare Datenträger 1 nicht mit der
Betriebsspannung versorgt wird. Im nichtflüchtigen Speicher 6 sind beispielsweise
Ergänzungen
zum Betriebssystem, Anwendungssoftware, Schlüssel, personenbezogene Daten
usw. abgelegt.
-
2 zeigt
eine vereinfachte Darstellung eines Betriebszustands des tragbaren
Datenträgers 1. Der
tragbare Datenträger 1 wird
in einem Multitasking-Betrieb
betrieben, in dem mehrere Prozesse gleichzeitig ausgeführt werden.
Beispielhaft sind ein Ein-/Ausgabeprozess 8 und eine Anwendung 9 dargestellt,
die gleichzeitig ablaufen. Außerdem
ist ein Betriebssystemkern 10 dargestellt, der den Datenaustausch
zwischen den Prozessen, hier zwischen der Anwendung 9 und
dem Ein-/Ausgabeprozess 8, steuert. Der Ein/Ausgabeprozess 8 wickelt
die Datenübertragung über die
Schnittstelle 3 des tragbaren Datenträgers 1 ab. Im folgenden
ist insbesondere die Ausgabe von Daten über die Schnittstelle 3 von
Interesse. Die Anwendung 9 ermöglicht die Nutzung des tragbaren
Datenträgers 1 für einen
vorgesehenen Einsatzzweck. Hierzu weist die Anwendung 9 ein Dateisystem
mit mehreren Dateien 11 auf, die jeweils aus einem Dateiheader 12 und
einem Dateibody 13 bestehen. Im Dateiheader 12 sind
jeweils ein Dateiname, ein Zeiger auf eine Anfangsadresse des Dateibody 13,
eine Angabe bzgl. der Länge
des Dateibody 13, ein dem Dateibody 13 zugeordneter
Schlüssel usw.
vermerkt. Der Dateibody 13 enthält den eigentlichen Dateiinhalt,
d. h. die Nutzdaten. Bei dem Dateiinhalt kann es sich beispielsweise
um Daten handeln, die für
die Ausführung
der Anwendung 9 benötigt werden.
Dabei ist der Dateiin halt in verschlüsselter Form gespeichert, wobei
eine Entschlüsselung
mit Hilfe des im Dateiheader 12 vermerkten Schlüssels möglich ist.
Die Dateiinhalte der einzelnen Dateien 11 sind jeweils
auf unterschiedliche Weise verschlüsselt, so dass jeder Dateiheader 12 einen
anderen Schlüssel
enthält.
Mit diesem Schlüssel
kann jeweils nur der Dateiinhalt des zugehörigen Dateibody 13 entschlüsselt werden.
Der Dateiinhalt der anderen Dateien 11 kann mit diesem
Schlüssel
nicht entschlüsselt
werden.
-
Neben
den dargestellten Prozessen können noch
weitere Prozesse ausgeführt
werden, wie beispielsweise weitere Ein-/Ausgabeprozesse 8,
weitere Anwendungen 9 oder beispielsweise kryptographische
Prozesse, die jeweils aus Gründen
der Übersichtlichkeit
nicht dargestellt sind.
-
Im
dargestellten Betriebszustand gibt der Ein-/Ausgabeprozess 8 den
Dateiinhalt der aktiven Datei 11 der Anwendung 9 über die
Schnittstelle 3 des tragbaren Datenträgers 1 im Klartext
aus. Die diesbezügliche
Vorgehensweise wird anhand von 3 erläutert.
-
3 zeigt
ein Flussdiagramm zur Veranschaulichung des Ablaufs bei der Ausgabe
des Dateiinhalts mittels des Ein-/Ausgabeprozesses 8. Der Durchlauf
des Flussdiagramms beginnt mit einem Schritt S1, in dem der Betriebssystemkern 10 den Schlüssel zur
Entschlüsselung
des Dateiinhalts sowie den Zeiger auf die Anfangsadresse und die
Länge des
Dateibody 13 aus dem zugehörigen Dateiheader 12 ermittelt.
An Schritt S1 schließt
sich ein Schritt S2 an, in dem der Betriebssystemkern 10 die
aus dem Dateiheader 12 ermittelten Angaben an den Ein-/Ausgabeprozess 8 übergibt.
Diese Übergabe wird
bevorzugt mit einem Session Key abgesichert, um Manipulationen und/oder
ein Ausspähen
zu verhindern. Der Session Key ist jeweils nur während einer Betriebsphase des
tragbaren Datenträgers 1 gültig. In
der nächsten
Betriebsphase wird ein neuer Session Key vereinbart.
-
Ebenso
ist es auch möglich,
die Übergabe der
aus dem Dateiheader 12 ermittelten Angaben an den Ein-/Ausgabeprozess 8 auf
mehrere Teilschritte zu verteilen, um einen potentiellen Angriff
zu erschweren. Auf Schritt S2 folgt ein Schritt S3, in dem der Ein-/Ausgabeprozess 8 beginnend
mit der Anfangsadresse des Dateibody 13, die durch den
in Schritt S2 übergebenen
Zeiger festgelegt wird und bis zu der in Schritt S2 übergebene
Länge des
Dateibody 13 den Dateiinhalt liest. Danach wird ein Schritt S4
ausgeführt,
in dem der Dateiinhalt mit Hilfe des in Schritt S2 übergebenen
Schlüssels
entschlüsselt wird.
An Schritt S4 schließt
sich ein Schritt S5 an, in dem der in Schritt S4 ermittelte Klartext
des Dateiinhalts über
die Schnittstelle 3 des tragbaren Datenträgers 1 ausgegeben
wird.
-
Durch
die beschriebene Vorgehensweise wird sicher gestellt, dass der Dateiinhalt,
der vom Ein-/Ausgabeprozess 8 ausgelesene wird, von keinem
anderen Prozess inhaltserschließend
gelesen werden kann. Selbst wenn ein anderer Prozess einen Lesevorgang
an der richtigen Speicheradresse durchführen würde, wäre der dadurch ermittelte Dateiinhalt
nicht verwertbar, da dieser in verschlüsselter Form vorliegt und der
andere Prozess nicht über
den für
die Entschlüsselung
benötigten
Schlüssel
verfügt.
-
Außerdem wird
durch die beschriebene Vorgehensweise verhindert, dass der Ein-/Ausgabeprozess 8 über die
Schnittstelle 3 andere Daten im Klartext ausgibt als den
dafür vorgesehenen
Dateiinhalt. Selbst wenn es einem Angreifer gelänge durch eine Störung, beispielsweise
eine intensive UV-Bestrahlung,
den an den Ein-/Ausgabeprozess 8 übergebenen Zeiger oder die übergebene
Länge des
Dateibody 13 zu ändern,
könnte
er dadurch keine Daten ausspähen.
Zwar würde
der Ein-/Ausgabeprozess 8 dann Daten außerhalb des vorgesehenen Dateibody 13 auslesen.
Da diese Daten aber andersartig verschlüsselt sind als der Dateiinhalt,
für den
dem Ein/Ausgabeprozess 8 der Schlüssel übergeben wurde, kann der Ein/Ausgabeprozess 8 die
unzulässiger Weise
gelesenen Daten nicht korrekt entschlüsseln und gibt dementsprechend
unbrauchbare Daten über die
Schnittstelle 3 des tragbaren Datenträgers 1 aus.
-
In
analoger Weise wie für
den Ein-/Ausgabeprozess 8 und die Anwendung 9 beschrieben
kann auch ein Datenaustausch zwischen anderen Prozessen erfolgen.
Dabei ist durch die erfindungsgemäße Vorgehensweise jeweils sichergestellt,
dass jeder Prozess auch bei einem Manipulationsversuch durch einen
Angreifer sich jeweils nur diejenigen Daten eines anderen Prozesses
im Klartext beschaffen kann, die der Betriebssystemkern 10 hierfür explizit
vorsieht.
-
Im
Rahmen der Erfindung ist es auch möglich, mehrere Prozesse, die
vom tragbaren Datenträger 1 gleichzeitig
ausgeführt
werden, gegeneinander abzuschotten. Hierzu werden die Schlüssel der
Dateien 11, die einem Prozess zugeordnet sind, jeweils keinem
anderen Prozess zur Verfügung
gestellt. Dies bedeutet, dass kein Prozess den Dateiinhalt einer Datei 11 entschlüsseln kann,
die einem anderen Prozess zugeordnet ist.