Mit Karte, bitte!

Einsatzmöglichkeiten und Anwendungen von Chipkarten (Teil 2)
Kommentare

Windows Developer

Der Artikel „Chipkarten“ von Helmut Stoiber ist erstmalig erschienen im Windows Developer 8.2012
Der komplette Registrierungsschlüssel für Windows 7 (Server 2008 R2) kann Abbildung

Windows Developer

Der Artikel „Chipkarten“ von Helmut Stoiber ist erstmalig erschienen im Windows Developer 8.2012

Der komplette Registrierungsschlüssel für Windows 7 (Server 2008 R2) kann Abbildung 1 entnommen werden. Bei Windows XP sind die für Smart Cards relevanten Schlüssel unter HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptographyCalaisSmartCards gespeichert. Die bisherige exemplarische Analyse hat ergeben, dass es sich um eine Smart Card mit dem Betriebssystem SPK 2.3 von G&D handelt. Die Spezifikationen für gängige Chipkarten-Betriebssysteme (Chip Card Operating System, COS) oder Cryptographic Service Provider findet man in den meisten Fällen im Internet. Hieraus ist die Struktur des Chipkartendateisystems ersichtlich, und es lassen sich eventuell Schlüsse bezüglich verfügbarer Applikationen ziehen.

In Erweiterung zu den bislang gewonnenen Erkenntnissen sind die adressierbaren Files (MF, DF und EF) von besonderer Bedeutung. Alle innerhalb eines Chipkartendateisystems vorhandenen Files lassen sich mit dem Chipkartenkommando SELECT FILE selektieren. Die APDU mit den zugehörigen Werten der Parameter dieses Kommandos sind in Tabelle 2 zusammengestellt.

Tabelle 2: APDU für SELECT FILE

APDU Wert Erläuterung
CLA 00 Standardklasse (Interindustry) ohne Secure Messaging
INS A4 SELECT FILE
P1 00 P1=00 und Lc=0: Selektion des MF
P1=00 und Lc≠0: Selektion einer Datei mit einem FID, der in Data enthalten ist
P1=04: Selektion eines DF mit dem in Data enthaltenen DF-Namen
P2 0C P2=00: Rückgabe optionaler FCI (File Control Information)
P2=04: Rückgabe optionaler FCP (File Control Parameter)
P2=08: Rückgabe optionaler FMD (File Management Data)
P2=0C: Keine Datenrückgabe
Lc 02 Länge von Data ist 2 Byte
Data 3F00 FID des zu selektierenden Files (hier: Master File)

Um genau diese Files herauszufinden, gibt es in SCDemo eine Funktionalität, bei der alle möglichen File Identifier (FID) sukzessive von 0 beginnend bis FFFF (hexadezimal) inkrementiert und mit dem Chipkartenkommando SELECT FILE konkateniert werden. Das Ergebnis eines derartigen File-Scans ist in Abbildung 2 zu sehen, wobei alle Adressierungen, bei denen die APDU-Sequenz den Return-Code 9000 liefert, ein gültiger FID ausweisen.

Abb. 2: Ermittlung gültiger FID
Abb. 2: Ermittlung gültiger FID

Nachdem nun die verfügbaren Files in Form der ermittelten FID vorliegen, kann im nächsten Schritt versucht werden, auf deren Datenobjekte bzw. Inhalte zuzugreifen. Zur weiteren Eingrenzung ist eine Recherche durchzuführen, indem die gewonnenen FID mit den dokumentierten FID gebräuchlicher Chipkarten verglichen werden. Im vorliegenden Fall deuten diese FID auf eine standardisierte PKCS#15-Applikation hin, da die in Tabelle 3 aufgeführten FID genau der PKCS#15-Spezifikation entsprechen [1].

Tabelle 3: FID gemäß PKCS#15-Spezifikation

FID PKCS#15-Spezifikation
50 31 EF.ODF (Object Directory File)
50 32 EF.TokenInfo (Token Information File)
50 33 EF.UnusedSpace

Falls der Vergleich bekannter FID nicht zielführend verläuft, oder um das Ergebnis eines erfolgreichen Vergleichs zu bestätigen, kann eine weitere Chipkartengröße herangezogen werden. Dieser so genannte Application Identifier (AID) ist für das direkte Selektieren einer Applikation mit dem Chipkartenkommando SELECT FILE geeignet. Gemäß PKCS#15 setzt sich ein AID aus einem Registered Application Provider Identifier (RID) und einer Proprietary Application Identifier eXtension (PIX) zusammen. RID ist eine global zu registrierende Kennung und ist detailliert in ISO/IEC 7816-5 beschrieben. Für die PKCS#15-Applikation ist RID zu „A0 00 00 00 63“ (hexadezimal) definiert. PIX setzt sich in diesem Fall aus der Bytesequenz „50 4B 43 53 2D 31 35“ zusammen. Als ASCII-String gelesen, ergibt dies im Klartext PKCS-15. Der komplette AID lautet somit „A0 00 00 00 63 50 4B 43 53 2D 31 35“. Zur Bestätigung der gewonnenen Erkenntnisse kann abschließend diese AID mit dem Kommando SELECT FILE an die analysierte Chipkarte geschickt werden und durch Auswertung des Return-Codes eine abschließende Aussage gemacht werden. Hierfür eignet sich die Funktion Send APDU von SCDemo. In Tabelle 4 ist eine Zusammenfassung der oben beschriebenen Analyseschritte gegeben, wobei die Schritte 1 und 2 in vielen Fällen bereits das Betriebssystem (COS) erkennen lassen und Schritt 7 eindeutig darüber Aufschluss gibt, ob die vermutete Applikation tatsächlich auf der Chipkarte vorhanden ist.

Tabelle 4: Zusammenfassung der Analyseschritte

Schritt Analyse Erläuterung
1. Analyse des ATR Kein ATR: Speicherkarte oder defekte Smart Card
ATR-Sequenz gibt ggf. Aufschluss über das COS oder sonstige Angaben bezüglich Hersteller
2. Informationen aus der Windows-Registry Basierend auf der ATR-Sequenz lassen sich für im System registrierte Chipkarten weitere Informationen gewinnen, z. B. Cryptographic Service Provider (CSP)
3. Informationen bezüglich COS Entweder direkt vom Hersteller zu beziehen oder aus frei verfügbaren Quellen, z. B. Internetrecherche
4. Informationen bezüglich CSP Entweder direkt vom Hersteller zu beziehen oder aus frei verfügbaren Quellen, z. B. Internetrecherche
5. Ermittlung der zugreifbaren Files (MF, DF, EF) Aus einer geeigneten Produktspezifikation (falls verfügbar)
oder mit einem Tool, wie beispielsweise SCDemo (Scan File)
6. Analyse der gewonnenen FID Vergleich dieser FID mit den für bekannte Chipkarten dokumentierten FID
7. Verifikation der AID Falls das Kommando SELECT FILE für den AID den Return-Code 9000 liefert, existiert die durch AID ausgewiesene Applikation
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -