Replikator3
17. Juni 2012 - 06:17 Uhr
Hallo,
da ich in nächster Zeit beginne, an meiner Facharbeit über das Thema "Das chipTAN-Verfahren der Banken" zu schreiben, wollte ich hier nachfragen, ob sich jemand mit diesem Thema (oder sogar bei einer Bank arbeitet) auskennt und mir für ein paar Fragen zur Verfügung stehen würde.
Natürlich werde ich auch in den Banken in meiner Nähe nachfragen und mir dort Informationen einholen, es kann aber nie schaden, mehrere Quellen zu haben

Insbesondere würde mich in nächster Zeit das "Flickering" interessieren, wie genau es funktioniert etc.
Auch würde ich Vorschläge für passende Bücher gerne entgegennehmen

glas
17. Juni 2012 - 10:56 Uhr
ich glaub kaum dass du hier fündig wirst. Geh einfach zur nächsten bank bei euch. Sieht auch deutlich besser aus, als jemandem aus nem online-forum zu fragen

lordhulkster
17. Juni 2012 - 11:33 Uhr
Wenn Du das Verschlüsselungsverfahren und die Codes fürs Flickering haben möchtest:
Zitat
chipTAN Flickercodes
„chipTAN“ ist ein Verfahren, das Online-Banking unanfälliger gegen zum Beispiel Man-In-The-Middle-Angriffe machen soll. Dabei bekommt jeder Bankkunde ein Gerät, das zusammen mit seiner Kreditkarte auftragsgebundene TANs generieren kann. Vor der Generierung einer TAN werden Zielkontonummer und Betrag (je nach Überweisungstyp auch andere Werte, wie IBAN oder Anzahl) angezeigt und können vom Kunden verifiziert werden. Diese Daten können manuell eingegeben werden oder (darum soll es im Folgenden gehen) über eine optische Schnittstelle übertragen werden.
Diese optische Schnittstelle ist in der HHD-Spezifikation (Version 1.3) des ZKA beschrieben. Das Problem dabei: Die Spezifikation ist nur teilweise öffentlich zugänglich. Es bleibt also nur der Weg über reverse engineering.
Aufbau
Im Folgenden werde ich den Aufbau der sogenannten „Flickercodes“ an dem Beispielcode 11048714955205123456789F14302C303107 erläutern. Diese Flickercodes sind die Daten, die auch an den externen TAN-Generator weitergegeben werden.
Code Bedeutung
11 Länge des Codes
0 Flag: BCD-kodiert
4 4 Bytes lang
871 Maske: 8 = Freie Gestaltung, 7 = Kontonummer, 1 = Betrag, siehe Masken
49552 Zufallszahl oder Transaktionsnummer
0 Flag: BCD-kodiert
5 5 Bytes
123456789F Kontonummer, BCD-kodiert, Füllzeichen F am Ende
1 Flag: ASCII-kodiert
4 4 Bytes
302C3031 ASCII-String: 0,01
0 Luhn-Prüfsumme
7 XOR-Prüfsumme
Wie man gut erkennen kann, ist jeder Code in mehrere Bereiche unterteilt, die jeweils mit einem Kodierungsflag (BCD = 0 oder ASCII = 1) und einer Länge (0–F) beginnen und dann einen (in der Theorie) maximal 16 Byte langen Payload enthalten.
Prüfsummen
Die einzelnen Stellen (Halbbytes) werden hier mit x1 bis xn bezeichnet, wobei n die Länge des Flickercodes ist. p1 bis pm ist der Payload ohne Längen- oder Kodierungshalbbytes. Der Payload des obigen Beispiels ist 871 49552 123456789F 302C3031 (ohne Leerzeichen).
Die Luhn-Prüfsumme wird nur über den Payload berechnet: (10 - ((p_1 + q(2 p_2) + p_3 + q(2 p_4) + \ldots) \bmod 10)) \bmod 10. q(n) berechnet die Quersumme der Dezimalzahl n, die Eingabezeichen A–F werden als Hexadezimalzahlen interpretiert und erhalten damit die Wertigkeit 10–16.
Die XOR-Prüfsumme wird über alle Zeichen, bis auf die Prüfsumme selbst, berechnet: x_1 \oplus x_2 \oplus \ldots \oplus x_{n-2}
Masken
Im ersten Datenbereich wird unter anderem festgelegt, wie sich das Gerät des Benutzers verhalten soll. Es gibt die, auch im obigen Beispiel benutzte, frei belegbare Maske 8xy, mit x und y aus dieser Tabelle:
Nummer Transaktionsdaten Displaytext
1 Betrag Betrag
2 Kontonummer Konto/IBAN
3 Online-Banking-PIN OBanking-PIN
4 Telefonnummer Telefon
5 Bankdaten Zusatzdaten
6 Anzahl Anzahl
7 Kontonummer Kontonummer
8 Kontonummer IBAN
Es existieren weitere Masken, die in den Belegungsrichtlinien (siehe Literatur) beschrieben sind.
Optische Schnittstelle
flicker.png
Belegung der blinkenden Grafik
Auf der Rückseite des Geräts befinden sich fünf Fotosensoren, die zur Übertragung über eine blinkende Grafik gehalten werden müssen. Es werden jeweils vier Bits und ein Taktsignal übertragen. Die blinkenden Bereiche sind wie folgt belegt: Takt, Bit 20, Bit 21, Bit 22, Bit 23. Der oben beschriebene Flickercode wird mit dem vorangestellten Code 0FFF in einer Endlosschleife übertragen. Die Übertragungsreihenfolge der einzelnen Halbbytes wird dabei umgekehrt. Beispiel: Aus 11048714955205123456789F14302C303107 wird zur Übertragung F0 FF 11 40 78 41 59 …
Um einfacher verschiedene Belegungen ausprobieren zu können, habe ich einen Flickercode-Generator mit JavaScript und dem HTML-canvas-Element implementiert, der die Prüfsummen automatisch berechnet und einsetzt.
Literatur
TAN-Generatoren mit optischer Schnittstelle (Flickercode) (Votragsfolien vom 26C3, PDF)
Belegungsrichtlinien für die Dynamisierung der TAN (PDF)
Konfigurationscodes für Kobil TAN Optimus comfort
Vom Überweisungsauftrag zur TAN (Umfangreiche Beschreibung von Hard- und Software der Flickercodes)
Replikator3
18. Juni 2012 - 21:48 Uhr
@ Glas, wie bereits gesagt habe ich das natürlich auch vor; Informationen hier aus dem Forum stehen natürlich nicht an erster Priorität.
@ lordhulkster:
Dankeschön, hab zwar schon einen Großteil davon verarbeitet aber waren doch noch ein paar Kleinigkeiten dabei, die ich gebrauchen kann

glas
18. Juni 2012 - 23:04 Uhr
@ lordhulkster: Quelle angeben? Hoffentlich nich wikipedia

lordhulkster
19. Juni 2012 - 19:03 Uhr
glas sagte am 18. Juni 2012 - 23:04 Uhr:
@ lordhulkster: Quelle angeben? Hoffentlich nich wikipedia
Nein, nicht Wikipedia....stammt aus einer Ausarbeitung und die Literaturquellen sind ganz brav unten im Zitat angegeben. Also kein "guttenbergen".
glas
19. Juni 2012 - 20:10 Uhr
oh sry hab ich nich gesehn, habs nur überflogen. Fußnoten fehlen trotzdem
