ChipTAN: Difference between revisions

From
Jump to navigation Jump to search
No edit summary
No edit summary
Line 35: Line 35:
=== Protocol Parameter Selection (PPS) ===
=== Protocol Parameter Selection (PPS) ===
Durch die übermittelte ATR und die darin enthaltenen Informationen über die Fähigkeiten der Karte hat das Terminal nun die Möglichkeit ('''optional''') neue Übertragungsparameter auszuhandeln.
Durch die übermittelte ATR und die darin enthaltenen Informationen über die Fähigkeiten der Karte hat das Terminal nun die Möglichkeit ('''optional''') neue Übertragungsparameter auszuhandeln.
Eine PPS ist optional und besteht mindestens aus 3 Byte und höchstrens aus 5 Byte.
Eine PPS ist optional und besteht mindestens aus 3 Byte und höchstrens aus 6 Byte.


*1. Byte '''PPSS''' = 0xFF
*1. Byte '''PPSS''' = 0xFF

Revision as of 11:21, 1 October 2012

Ziel

  • Analyse der Kommunikation zwischen Karte und Terminal
  • Untersuchung einer möglichen Softwareemulation des ChipTAN-Generators

Herangehensweise

  • >hier Bild vom Aufbau<
  • Beschreibung des Aufbaus
  • wie wollten wir das ganze machen also seriell zu byte mit dem plugin vom logic analyzer etc.

Asychronous Character Transfer

  • 1 Byte wird mit 10 Bit übertragen
  • 1. Bit = Startbit
  • 2.-9. Bit = Daten
  • 10. Bit = Paritybit

Zwischen der Übertragung zweier Bytes wird eine vorher ausgehandelte Zeit gewartet (I/O Kanal auf High gesetzt) um der Gegenseite die möglichkeit zu geben das letzte Byte nochmal anzufordern (falls Paritybit falsch war). Wählt man die ersten fallende Flanke des I/O Kanals nach dem schalten des Reset-Signals auf High als Startpunkt kann man somit direkt Bytesvom I/O-Kanal ablesen.

Analyse des Bytestroms

Bei Inbetriebnahme einer Chipkarte wird diese durch das Terminal mit Strom und einem Takt versorgt. Als erstes setzt das Terminal den Reset-Kanal auf High, woraufhin die Chipkarte das Senden einer ATR("Answer To Reset") beginnt.

ATR

  • max. 33 Byte lang
  • 1. Byte (TS) gibt Coding Convention an
    • Wert '3B' = Startbit = 0 Daten= °1101 1100° Parity = 1 -> direct convention (least significant bit -> most significant bit)
    • Wert '3F' = Startbit = 0 Daten= °0011 1111° Parity = 1 -> inverse convention (most significant bit -> least significant bit)
  • 2. Byte (T0) gibt Anzahl der nachfolgenden Interface Character (TA,TB,TC,TD) und Anzahl der Historical Characters an
  • 3. Byte (TA1) codiert Übertragungsfrequenz und Teiler die die Karte maximal unterstützt
  • TA,TB,TC-Bytes enthalten Informationen über die Fähigkeiten der Karte in Abhängigkeit vom jeweiligen Übertragungsprotokoll (unterstützte Frequenzen etc.)
  • TD-Bytes geben an ob und welche TA,TB,TC,TD im Anschluß gesendet werden (verkettung möglich), das Übertragungsprotokoll wird auch angegeben (in 0x08)

Im Anschluss an die TA,TB,TC,TD-Bytes folgen die historical Character und ein Checksummen-Byte TCK (XOR-Prüfsumme von T0 bis zum Byte vor TCK)

Die ATR enthält somit Informationen über die Karte (z.B. unterstützte Übertragungsprotokolle und Geschwindigkeiten etc.)

Protocol Parameter Selection (PPS)

Durch die übermittelte ATR und die darin enthaltenen Informationen über die Fähigkeiten der Karte hat das Terminal nun die Möglichkeit (optional) neue Übertragungsparameter auszuhandeln. Eine PPS ist optional und besteht mindestens aus 3 Byte und höchstrens aus 6 Byte.

  • 1. Byte PPSS = 0xFF
  • 2. Byte PPS0 codiert das zu verwendende Übertragungsprotokoll und die vorhandenen optionalen Parameter PPS1-3
  • 0-3 Byte Parameter PPS1-3
  • letztes Byte PCK XOR-Prüfsumme ab PPSS

Blöcke

Verwendete Hardware

Verwendete Software

Literatur

  • ISO/IEC 7816-3
  • Handbuch der Chipkarten