Mit Karte, bitte!

Grundlagen und Standards von Chipkarten (Teil 3)
Kommentare

Windows Developer

Der Artikel „Mit Karte, bitte!“ von Helmut Stoiber ist erstmalig erschienen im Windows Developer 7.2012
Chipkarten-Dateisystem
Eine Chipkarte ist mit einem eigenen Betriebssystem (Card

Windows Developer

Der Artikel „Mit Karte, bitte!“ von Helmut Stoiber ist erstmalig erschienen im Windows Developer 7.2012

Chipkarten-Dateisystem

Eine Chipkarte ist mit einem eigenen Betriebssystem (Card Operating System, COS) ausgestattet, das persistent im ROM des Chips gespeichert ist (Abb. 3). Ähnlich einer Computerfestplatte werden die Daten in Dateien organisiert und gespeichert. Damit die für Chipkarten geltenden, hohen Sicherheitsanforderungen umgesetzt werden können, werden die Dateien in hierarchischen Strukturen mit dezidierten Zugriffsrechten permanent oder temporär gespeichert. Gemäß ISO/IEC 7816-4 sind drei unterschiedliche Dateitypen definiert:

  • Master File (MF): Fungiert als Root-Verzeichnis und tritt in der gesamten hierarchischen Struktur nur ein einziges Mal auf. Ist nicht für das Speichern von Dateien vorgesehen und ist somit eine Sonderform eines DF.
  • Dedicated File (DF): Vergleichbar mit einem Verzeichnis (Directory) auf einer Computerfestplatte. Ermöglicht die strukturierte Organisation von einzelnen Dateien und somit die Separierung diverser Applikationen und deren individuelle Zugriffslimitierungen.
  • Elementary File (EF): Klassische Datei, in der Schlüssel sowie Daten der Anwendung(en) und des Betriebssystems gespeichert sind.

Abbildung 7 zeigt die Topologie eines Chipkarten-Dateisystems in das exemplarisch eine PKCS#15-Applikation eingebettet ist. Diese Applikation besteht primär aus fünf EFs und zwei Schlüsseldateien ISF und IPF, die hierarchisch unterhalb eines DF angeordnet sind. Die Kurzform ISF steht für „Internal Secret File“ und bezeichnet eine Schlüsseldatei, die neben 3DES- und privaten RSA-Schlüsseln [2], PIN und PUK enthält. Diese Schlüsseldatei kann nicht gelesen, sondern nur geschrieben werden und zwar mit den Chipkartenkommandos WRITE KEY und GENERATE PUBLIC KEY PAIR. In der zweiten Schlüsseldatei, Internal Public Files (IPF), sind die öffentlichen RSA-Schlüssel gespeichert, wobei es sich um eine transparent strukturierte Datei handelt, sodass mit den Chipkartenkommandos READ BINARY bzw. UPDATE BINARY auf diese Datei zugegriffen werden kann.

Abb. 7: Chipkarten-Dateisystem mit PKCS#15-Applikation
Abb. 7: Chipkarten-Dateisystem mit PKCS#15-Applikation

Weiterhin sind außerhalb der PKCS#15-Applikation eine MF und eine EF, die als Verzeichnis für die komplette Dateistruktur der Chipkarte fungiert, zu erkennen. Neben diesen beiden Dateien sind zwei weitere Schlüsseldateien ISF_MF und IPF_MF eingezeichnet, die die globalen Schlüssel und Passphrasen für die Authentisierung gegenüber der Karte beinhalten.

Der Zugriff auf die Dateien einer Chipkarte erfolgt mit einem so genannten File Identifier (FID) oder einem Application Identifier (AID). Die Master File kann immer direkt mit dem FID 0x3F00 adressiert werden. Auf eine EF kann auch direkt mit einem Short File Identifier (SFI) lesend oder schreibend zugegriffen werden, sofern der geforderte Sicherheitslevel aktiviert ist. Die Adressierung mit den speziellen Identifiern sowie der hierarchische Aufbau eines realen Chipkarten-Dateisystems ist im Abschnitt „Smart-Card-Demo“ anhand von Codesequenzen veranschaulicht.

Nach dem Reset der Chipkarte ist immer automatisch die MF selektiert, sodass die Adressierung mit dem 2 Byte langen FID erfolgen kann, oder falls es sich um eine Dedicated File handelt, kann die Adressierung mit dem 1 bis 16 Byte langen DF-Namen vorgenommen werden. Eine direkte Auswahl einer Datei, relativ zur aktuellen Position, ist außerdem mit first, last, next oder previous möglich.

Chipkartenkommandos

Für den Austausch und das Management von Daten, die Verwaltung von Speicherbereichen sowie für die Verarbeitung von Information stellt das Betriebssystem einer Chipkarte einen Satz an Kommandos bereit. Die einzelnen Kommandos sind in ISO 7816-4, Sektion 6 (Basic Interindustry Commands), spezifiziert. Ein kurzer Abriss der wichtigsten Kommandos ist in Tabelle 5 auszugsweise ausgeführt, wobei neben der Kurzbeschreibung das jeweilige Instruction Byte (INS) ausgewiesen ist.

Tabelle 5: ISO-7816-4-Chipkartenkommandos

Kommando Kurzbeschreibung INS
READ BINARY Liefert den gesamten Inhalt oder einen Teil eines EF mit transparenter Struktur B0
WRITE BINARY Schreiben binärer Daten in ein EF D0
UPDATE BINARY Überschreiben binärer Daten eines EF D6
ERASE BINARY Zurücksetzen binärer Daten eines EF auf den Wert „Gelöscht“, beginnend an einem vorzugebenden Offset 0E
READ RECORD(S) Liefert den Inhalt des spezifizierten Records B2
WRITE RECORD Schreiben des übergebenen Records bzw. Überschreiben bereits vorhandener Daten, wobei diese Daten mit den Daten des Records logisch „UND“ oder „ODER“ verknüpft gespeichert werden können D2
APPEND RECORD Anhängen von Record-Daten an das Ende eines EF E2
UPDATE RECORD Überschreiben von Record-Daten DC
GET DATA Auslesen eines oder mehrerer Datenobjekte CA
PUT DATA Speichern von Datenobjekten DA
SELECT FILE Auswahl einer Datei A4
VERIFY Vergleich der in der Karte gespeicherten Daten mit den übergebenen Daten (z. B. Passphrase) 20
INTERNAL AUTHENTICATE Einseitige Authentisierung der Chipkarte durch das Terminal 88
EXTERNAL AUTHENTICATE Einseitige Authentisierung des Terminals durch die Chipkarte B2
GET CHALLENGE Rückgabe einer Zufallszahl (Challenge) durch die Chipkarte 84
MANAGE CHANNEL Öffnet und schließt logische Kanäle 70
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -