Manchmal kommt es vor dass man eine unbekannte Chipkarte analysieren möchte, um beispielsweise das verwendete Chipkarten-Betriebssystem oder die darauf enthaltenen Anwendungen herauszufinden. Meist möchte man den dafür notwendigen Aufwand in Grenzen halten, so dass die Analyseausstattung oft nur aus einem Rechner und einem daran angeschlossenen Terminal besteht.

Die im Folgenden vorgestellte Vorgehensweise der Analyse einer unbekannten Chipkarte ist eine von vielen möglichen. Sie hat sich jedoch schon oft in der Praxis bewährt, wobei hier nicht verschwiegen werden soll, dass zur erfolgreichen Auswertung der Ergebnisse einiges Erfahrung und umfangreiche Kenntnisse von Chipkarten-Anwendungen vonnöten sind. Selbstverständlich können mit der vorgeschlagenen Vorgehensweise weder geheime Daten noch über Zustandsautomaten blockierte Kommandos ermittelt werden. Die Praxis hat jedoch gezeigt, dass damit zumeist eine Grobeinstufung der unbekannten Chipkarte getroffen werden kann.

Das folgende Flussdiagramm und der daran folgende Pseudokode zeigen den Ablauf im Überblick. In einem ersten Schritt wird ermittelt, ob die Chipkarte überhaupt funktionsfähig ist. Kann dies mit einem „Ja“ beantwortet werden, folgt im nächsten Schritt die Trennung in Speicher- und Prozessorchipkarten. Anschließend wird bei beiden Varianten versucht, das entsprechende Übertragungsprotokoll einzustellen und vorhandene Daten im Speicher, Dateien oder Datenobjekte zu lesen. Anhand dieser Daten wird dann manuell versucht, die auf der Chipkarte befindliche Anwendung zu ermitteln. Im Falle einer Prozessorchipkarte kann man oft auch die unterstützten Kommandos ausforschen und auf diese Weise Schlussfolgerungen über das jeweilige Chipkarten-Betriebssystem ziehen.

Ein guter Ansatz ist immer, so bald als möglich herauszufinden ob es sich um eine Speicherkarte oder eine Prozessorkarte handelt. Ist es eine Prozessorkarte, dann ist der nächste logische Schritt zu ermitteln, um was für eine Art von Karte es sich handelt. Typische Kartenarten sind GSM-Karten (SIM), UMTS-Karten (USIM), EMV-Karten, ID-Karte, Karten mit einem allgemeinen ISO/IEC 7816-Betriebssystem, oder in Deutschland recht häufig vertreten die Geldkarte. Nützlich können dabei die Tabellen auf der Tabellenseite meiner Homepage sein.

AnalysisUnknownCard: Programm für die Analyse einer unbekannten Chipkarte
führe Anschaltsequenz als Mikroprozessor-Chipkarte durch und wähle dabei Versorgungsspannung gemäß ISO/IEC 7816 aus Die typische Anschaltsequenz für Mikrocontroller-Chipkarten mit der entsprechenden Auswahl der Versorgungsspannung ist ein erfolgversprechender Einstieg in die Analyse. Man beginnt hier üblicherweise mit 5 Volt und versucht einen ATR zu empfangen. Falls dies nicht funktioniert dann reduziert man die Spannung zuerst 3 Volt und dann ggf. auf 1,8 Volt und versucht bei diesen Spannungen einen ATR zu empfangen. Konnte ein vollständiger und korrekter ATR empfangen werden, dann wird die dabei verwendete Spannung verwendet.
IF (ATR empfangen) THEN AnalysisSmartCard Falls ein ATR vollständig und korrekt empfangen werden konnte, handelt es sich um eine Mikrocontroller-Chipkarte.
führe Anschaltsequenz als Speicher-Chipkarte durch Da es keine Mikrocontroller-Chipkarte ist, wird nun die Anschaltsequenz für Speicherkarten ausprobiert.
IF (ATR empfangen) THEN AnalysisMemoryCard Falls ein Speicherkarten-ATR vollständig und korrekt empfangen werden konnte, handelt es sich um eine Speicherkarte.
STOP Die Chipkarte konnte nicht erkannt werden, da sie keinen ATR gesendet hat; deshalb Abbruch der Analyse.
AnalysisSmartCard: Es handelt sich bei der unbekannten Chipkarte um eine Mikroprozessor-Chipkarte.
AUSGABE: empfangener ATR Aufgrund des ATR können evtl. Rückschlüssel auf die Chipkarte bzw. die auf ihr enthaltenen Anwendungen getroffen werden.
stelle gewünschtes Übertragungsprotokoll ein Es wird das im ATR gewünschte Übertragungsprotokoll (T=0 oder T=1) mit den entsprechenden Übertragungsparametern eingestellt.
// Scanne alle Dateien
selektiere EF.DIR
IF (EF.DIR = vorhanden) THEN (Lese den Inhalt des EF.DIR AUSGABE: Inhalt des EF.DIR) Falls ein EF.DIR vorhanden ist, befinden sich darin Informationen zu den auf der Chipkarte enthaltenen Anwendungen.
selektiere typische AIDs In diesem Analyseschritt werden Selektionsversuche mit typischen AIDs durchgeführt. Hierbei kann die AID-Liste verwendet werden. Sind ein oder mehrere Selektionsversuche mittels AID positiv verlaufen, ist die entsprechende Anwendung eindeutig identifiziert.
AUSGABE: Ergebnisse der Selektionsversuche Ausgabe der Ergebnisse der Selektionsversuche.
selektiere alle EFs mittels FID im MF und versuche, die Inhalte der selektierten EFs zu lesen Unter Umständen können aufgrund der EF-Strukturen, Zugriffsbedingungen und EF-Inhalte Schlussfolgerungen auf die Chipkarte und deren Anwendungen getroffen werden.
AUSGABE: Ergebnisse der Selektionsversuche, Zugriffsbedingungen und Leseversuche sowie ggf. die Dateiinhalte Ausgabe der Ergebnisse der Selektions- und Leseversuche.
selektiere alle EFs mittels FID in jedem selektierbaren DF und versuche die selektierten EFs auszulesen Unter Umständen können aufgrund der EF-Strukturen, Zugriffsbedingungen und EF-Inhalte Schlussfolgerungen auf die Chipkarte und deren Anwendungen getroffen werden. Handelt es sich um ein DF mit registriertem AID, so kann in den entsprechenden Spezifikationen (falls verfügbar) der Dateiinhalt interpretiert werden.
AUSGABE: Ergebnisse der Selektionsversuche, Zugriffsbedingungen und Leseversuche sowie ggf. die Dateiinhalte Ausgabe der Ergebnisse der Selektions- und Leseversuche.
// Scanne alle Datenobjekte
versuche, alle Datenobjekte mittels GET DATA auszulesen Unter Umständen können aufgrund der Datenobjektinhalte Schlussfolgerungen auf die Chipkarte und deren Anwendungen gezogen werden. Handelt es sich um ein DF mit registriertem AID, kann in den entsprechenden Spezifikationen (falls verfügbar) der Dateiinhalt interpretiert werden.
AUSGABE: Ergebnisse der Leseversuche sowie ggf. die Datenobjektinhalte Ausgabe der Ergebnisse der Leseversuche.
// Scanne alle Kommandos
teste alle CLA und INS Kombinationen Damit können die Kommandos und das Secure Messaging des Chipkarten-Betriebssystems ermittelt werden.
AUSGABE: mögliche erlaubte CLA und INS Kombinationen Ausgabe der Ergebnisse der Kommandoanalyse.
STOP Ende der Analyse.
AnalysisMemoryCard: Es handelt sich bei der unbekannten Chipkarte um eine Speicherkarte.
stelle Übertragungsprotokoll ein Probiere der Reihe nach alle Übertragungsprotokolle für Speicherkarten durch und verwende dasjenige Übertragungsprotokoll, das eingestellt ist, sobald korrekte Daten empfangen wurden.
AUSGABE: Ermitteltes Übertragungsprotokoll Ausgabe des ermittelten Übertragungsprotokolls.
lese alle Daten aus der Speicherkarte
AUSGABE: Dateninhalt der Speicherkarte Unter Umständen können aufgrund des Dateninhalts Schlussfolgerungen auf die Speicherkarte und die Anwendung getroffen werden.
STOP Ende der Analyse.

Copyright © 2008 Wolfgang Rankl - created: 5. July 2008 - last modified: Wednesday, August 27, 2008