| Technik |
EinführungWarum die Chipkartenpage?Bei unserer Suche durchs Internet ist uns aufgefallen, dass zwar viel über die Chipkarte geschrieben wird, aber nichts über die Technik. Die Lücke wollen wir versuchen zu stopfen. Die hier vorgestellten Informationen wurden durch eigenen Testprotokolle rausgefunden und können mit den gängigen Informationsquellen nachvollzogen werden. Es gibt sicherlich eine Unzahl an Protokollen, die bei Chipkarten gängig sind. Die Protokolle bzw. technischen Informationen, die wir hier vorstellen, sind die gängigsten im Bereich Telefonkarten, Krankenversichertenkarte, Geldkarte, u. a. - und sollte damit 90% der eingesetzten Kartentechnik abdecken. Beim Kartenleser beziehen wir uns zukünftig immer auf einen B1-Leser, der i. d. R. mit dem verschiedenen Kartentypen problemlos arbeitet und auch in der Lage ist, autom. die unterschiedlichen Protokolle zu erkennen. Das BetriebssystemWie läuft es bei der Produktion der Chipkarte?Das Betriebssystem wird als ROM in der Chipkarte (Mikrokontroller) beim Hersteller eingebaut. Das EEPROM ist für die spätere Verwendung leer. Treten beim Test des Chips keine Fehler auf, so werden vom Hersteller Schmelzbrücken physikalisch aufgetrennt, die einen späteren Zugriff auf die Testfunktionen unterbinden. Vor dem ausliefern der Chipkarten werden diese noch mit einem Transportcode versehen, der vom Kunden eingegeben werden muss, um seine eigene Software einzubringen. Eigene Software einbringen bedeutet, dass der Kunde die Karte für seine speziellen Wünsche personalisieren kann, d.h. den leeren EEPROM beschreibt. Nach der Personalisierung geht die Karte zum Endverbraucher, der die Karte für einen festgelegten Zeitraum (max. für ca. 100.000 Steckzyklen) verwenden kann. Das DOS der Chipkarte - Wie sieht's mit dem Betriebssystem aus?Den meisten von euch wird klar sein, was sie unter einem Betriebssystem zu verstehen haben. Für die verschiedenen Computermodelle gibt es eine Vielzahl an Betriebssystemen (z. B. DOS, Windows, Unix, etc.), die das Interface zwischen Hardware und der Software zur Verfügung stellen. Genauso wie ein großer Computer, braucht auch der Chipkartenmikrocontroller ein Betriebssystem, dass die Steuerung und Kontrolle der Programme übernimmt. Bei einer Chipkarte steht nicht so sehr die Kontrolle von externer Hardware im Vordergrund, sondern viel mehr die folgenden Funktionen:
So wie z. B. das Betriebssystem DOS für Disk Operation System steht, gibt es die Bezeichnung COS für das Chipcard Operating System. Viele Hersteller setzen häufig noch ihre Produktbezeichnung vorne an (z. B. TCOS Telesec Chipcard Operating System, ODS-COS Oldenbourg Datensysteme, STARCOS, etc.). Die Systeme richten sich i. d. R. nach der ISO-Norm 7816-4 und stellen alle dort festgelegten Commandos zur Verfügung. Wie groß ist der Codeumfang vom COS eigentlich?Im Gegensatz zu Windows und Unix (mehrere Megabyte), ist das COS mit max. 16 KByte ROM recht klein. Dies wird u.a. dadurch erreicht, dass die Karte unter Assembler programmiert wird. Ein Update wie bei Computern ist nach der Herstellung nicht mehr möglich. Wie arbeitet das Betriebsystem?Die Befehle erreichen den Mikrocontroller über die serielle IO-Schnittstelle. Fehler werden vom IO-Manager unabhängig von den anderen Modulen gehandelt. Sofern ein Kommando erfolgreich empfangen wurde, wird dieses vom Security Mangager ggf. entschlüsselt und auf Korrektheit überprüft. Anschließend analysiert der Kommandointerpreter den Befehl und führt ihn aus bzw. generiert mit dem Rückmeldungsmanager einen Fehler der über den IO-Manager ein Statusfehlerwort für den Terminal zurückliefert. Wenn alles geklappt hat, dann geht der Befehl an den Kanalmanager, der bis zu vier logische Kanäle parallel verwalten kann (entsprechend der Chipkartenanwendungen). Danach wird die Zustandsmaschine aufgerufen. Hier wird die erste semantische Prüfung durchgeführt, nämlich ob der Befehl mit den gegebenen Parametern im aktuellen Zustand der Zustandsmaschine überhaupt erlaubt ist. Verläuft die Prüfung positiv, wird der Befehl in den eigentlich Programmcode konvertiert und ausgeführt. Andernfalls wird wieder mit dem Rückmeldungsmanager ein Fehler über den IO-Manager an das Terminal gesendet. Sofern der Befehl einen Dateizugriff auslöst, dann wird dies mit Hilfe der Dateiverwaltung ausgeführt, die die logischen Adressen in einer internen physikalischen Adressdarstellung umwandelt und auch die Bereichsgrenzen sowie die Zugriffsbedingungen kontrolliert. Wie ist die Dateiverwaltung organisiert?Die Dateiverwaltung ist ähnlich der vom DOS (hierarchisch / Baumstruktur) und für Chipkarten in der Norm ISO 7816-4 definiert. Das Masterfile (MF) stellt das Wurzelverzeichnis, dass immer beim Reset der Chipkarte selektiert ist. Sofern eine Chipkarte über mehr als eine Anwendung verfügt, können noch Dedactedfiles (DF) angelegt werden, unter denen die verschiedenen Anwendungen Platz finden. Die Schachtelungstiefe der DF's (Unterverzeichnisse) ist beliebig und nur durch den Speicherplatz begrenzt. Die eigentlichen Daten sind in den Elementaryfiles (EF) abgelegt, die sich unterhalb des Masterfiles (MF) oder der Dedactedfiles (DF) befinden können. Wie kann ich nun auf eine Datei zugreifen?Bevor Du auf eine Datei zugreifen kannst, musst Du die Applikation (Anwendung) selektieren in der sich die Datei befindet und schließlich die Datei selber selektieren. Die Applikationsbezeichnungen sind mit einer Länge von 5-15 Bytes hexcodiert und bestehen aus zwei Einheiten. Die Identifikationskennung (RID) mit einer festen Länge von 5 Bytes (Ländercode, Anwendungskategorie und Nummer für den Anwendungsanbieter) und einer optionalen Kennung PIX, die 0-11 Byte lang sein kann. Damit Du die Datei selektieren kannst, musst Du diese über einen Namen (FID Fileidentifier) ansprechen können. Dieser Name besteht aus 2 Byte hexcodierten Zahlen (z. B. 3F00 für das Masterfile). Die Datenstrukturen sind häufig im ASN.1 (Abstract Syntax Notation One) gehalten, die sich z. B. schon bei der Krankenversichertenkarte Einzug gehalten hat. Die DateiübertragungWie funktioniert die Kommunikation zwischen Chipkarte und Terminal?Die Kommunikation erfolgt über eine Leitung, die die Daten nur wechselseitig (Halbduplexverfahren) übertragen kann. Ein Vollduplexverfahren ist noch nicht implementiert, aber technisch realisierbar. Der Datenaustausch verläuft immer nach einem Master-Slave-Prinzip, mit dem Terminal als Master und der Karte als Slave. Welche Bedeutung hat die ATR?ATR heißt Answer To Reset. Die Chipkarte sendet bei jedem Reset eine ATR, um unter anderem das verwendete Protokoll dem Terminal mitzuteilen. Auf die Details wollen wir nicht weiter eingehen, weil die verschiedenen Kommunikationsprotokolle z. B. vom B1-Kartenleser automatisch festgestellt werden. Welche Übertragungsprotokolle gibt es?Bei jeder Datenübertragung ist die Einhaltung von Regeln notwendig, die in den Protokollen definiert sind. Die Chipkartenprotokolle sollen folgende Funktionen beinhalten:
Es sind insgesamt 15 Übertragungsprotokolle in der ISO-Norm 7816-3 vorgesehen. Ihre Bezeichnung setzt sich aus dem Ausdruck 'T=' und einer nachfolgenden natürlichen Zahl zusammen. Die folgende Tabelle zeigt einen Überblick:
Am weitesten verbreitet sind die Protokolle T=0 und T=1. Das T=0 Protokoll ist für minimalen Speicherbedarf und maximale Einfachkeit ausgelegt und wird weltweit in den GSM-Karten verwendet. Beim T=0 Protokoll handelt es sich um ein Byteorientiertes Übertragungsprotokoll. Die SicherheitWie ist es mit der Sicherheit bei der Chipkarte gestellt?
Weite Informationen findet Ihr auf unserer Chipkartenattacken Seite! BefehlssatzJedes Betriebssystem verfügt über einen Befehlssatz - Wie sieht dieser beim COS aus?Leider nicht unbedingt einheitlich und definiert. Du kannst im Prinzip von einem Basisbefehlssatz ausgehen, der von den Firmen um spezielle Befehle erweitert wird. Für die Befehlssätze sind vier internationale Normen (GSM 11.11, prEN 726-3, prEN1546 und ISO 7816-4) vorgeschlagen worden, die mehr als 50 Befehle umfassen und alle voneinander abweisen. Die Befehle können grob in folgende Gruppen eingegliedert werden:
Chipkartenterminals/LeserWozu der Kartenleser?Der Kartenleser ist das Bindeglied zwischen Host (Dein Computer) und der Chipkarte und ist in vielen Varianten erhältlich. Er versorgt die Chipkarte mit Strom und ermöglicht eine datentechnische Verbindung. Auf unserer Homepage sprechen wir immer vom B1-Chipkartenleser. Dieser hat den Vorteil, dass er die unterschiedlichsten Kartenprotokolle unterstützt und auch gut dokumentiert ist. Auf unserer Kartenleserpage gehen wir näher auf ein Modell ein. Selbstverständlich sind auch andere Modelle (einfach mal im Internet suchen) erhältlich. |