EMV - Smardcard - 2024-10-19

Was cardpeek anzeigt, des bezeichnend? Das Verzeichnis 1pay.sys.ddf01 Dann der application identifier AID A00000005... wir könnten jetzt mal nachschauen, wofür diese Nummer steht auf jeden Fall ist sie nicht A00000001... das ist die dänische Bank und so weiter und A00000003... die Visakarte da scheint ne Funktion vorhanden zu sein, was auch bezeichnend ist. Wir haben verschiedene also nicht nur ein Application identifier das erscheint logisch in diese Karten unterstützen ja verschiedenes scheinbar muss man sich genauer damit beschäftigen und ja ich weiß ja nicht inwieweit haben diese normalen Giro Pay Karten behauptet etwas mit VISA zu tun, denn A00000003... steht ja für Visa

Näheres sagt dann des. Das ist wohl auch sehr verallgemeinernde Aussagen im letzten Beitrag gewesen. A00000003... Visa sah in dem Fall dann wohl doch eher Klischee auf der anderen Seite. Wir haben halt hier dann auch noch die Namen man muss ja wissen, die stehen ja nicht drin in der Karte. Vermutlich in dem Fall vermutlich das sondern das Programm kann sich dir selber merken das sind ja sozusagen die klassischen man sagen Namen Giro Kart steht da Geldkarte steht da. Maestro steht da da kann sich wohl also bei Application Label kann sich wohl das Programm selber merken, was das ist und hat implementiert, dass der Name entsprechend erscheint bei dem entsprechenden Wert auch was ich auch bemerke, ist das eben der Name Processing Option auftaucht und ich würde mal sagen, dass man rein theoretisch sozusagen philosophisch schon der Natur der Sache her aber da steht ja da geschrieben haben meinerseits die Applikationen die ist ja sozusagen vom Hersteller abhängig wurde die Sache auch proprietär ist also Hersteller vom Herausgeber und so weiter, was er damit bezwecken will und dann eben die Processing Option wird in dem Fall konkret was es genau tut etwa weh, wenn sie einen Software Hersteller haben der verschiedene Software heraus liefert. Wobei dieser Software Hersteller generell in diesem Fall nur eine Software Lieferung. Sie wissen ja, dass das ne propriätere Sache ist, und das macht quasi nicht daran. Interessiert ist den Leuten da, um bequemes Zeug an verschiedenen sozusagen Apps zu liefern, die irgendwas lustiges tun wurde dann zuschlagen wird, weil die so nett aussieht, sondern hier wird Ihnen ja was angeboten, was dann seine Funktion erfüllt, und das tut es je nach sozusagen in dem Fall Hersteller in Anführungsstrichen mit einer einzigen Software, so ungefähr gut, aber nur nebenbei und da haben wir eben die typische Nummer 3900h

Im auf der Seite, auf die ich mich beziehe, stand ja die klassische Information A000000033900h

Gut, ich probier das jetzt mit dem entsprechenden für python3

Image Screenshot_20241017_162620

Image Screenshot_20241019_001850

Image Screenshot_20241019_001903

Image Screenshot_20241019_001929

Image Screenshot_20241019_001945

Image Screenshot_20241019_002003

Image Screenshot_20241019_002509

Image Screenshot_20241019_002524

Image Screenshot_20241019_002532

Image Screenshot_20241019_002612

jetzt probiere ich mich an dem hier

https://pyscard.sourceforge.io/user-guide.html#quick-start

und dem

https://hpkaushik121.medium.com/understanding-apdu-commands-emv-transaction-flow-part-2-d4e8df07eec
...

ich habe jetzt mal das ausgefuehrt

david@work:~$ python3
Python 3.11.2 (main, Aug 26 2024, 07:20:54) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from smartcard.CardType import AnyCardType
>>> from smartcard.CardConnection import CardConnection
>>> from smartcard.CardRequest import CardRequest
>>> from smartcard.util import toHexString
>>> cardtype = AnyCardType()
>>> cardrequest = CardRequest(timeout=1, cardType=cardtype)
>>> cardservice = cardrequest.waitforcard()
>>> cardservice.connection.connect()
>>> apdu = [0xC0, 0x20, 0x00, 0x01, 0x08, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30]
>>> print('sending ' + toHexString(apdu))
sending C0 20 00 01 08 30 30 30 30 30 30 30 30
>>> response, sw1, sw2 = cardservice.connection.transmit(apdu, CardConnection.T1_protocol)
>>> print('response:', response, ' status words:', "%x %x" % (sw1, sw2))
response: []  status words: 6e 0
>>>
Also, in diesem Ding hier steht,

https://hpkaushik121.medium.com/understanding-apdu-commands-emv-transaction-flow-part-2-d4e8df07eec

dass darauf hin die Antwort 90 00 ist. Das habe ich so nicht gesehen, bei mir ist sie

response: []  status words: 6e 0
es kann aber sein, ich pruefe noch mal den Request, vielleicht habe ich einen Wert falsch uebernommen, dass der APDU Request aus der Luft gegriffen ist, weil man muss ja zum Beispiel die Verzeichnisse
1PAY.SYS.DDF01
zum Beispiel pruefen. Hier verstehe ich - Anmerkung gerade bei Facebook was nicht, kann sein, das ist untergegangen, ich hatte - das sind hier ja meine Postings kommt nachher auf die Homepage, den Namen
1PAY.SYS.DDF01
hier hingeschrieben, den kann ich zumindest in der App nicht widerfinden. wenn das so waere, dann werde ich in zukunft, die Beitraege mit dem normalen editor machen, weil so kommen die auf die homepage und da stehen sie dann richtig

Hier wurde mal wieder ein Beitrag entfernt, vollkommen laecherlicherweise, naemlich der hier, weil scheinbar der link zu der Seite nicht genehm ist, dabei stehen da die apdu befehle, mal sehen ob der hier bleibt

ich habe jetzt mit sed

david@work:~$ cat apdu20241019.py | sed 's/>>> //g' > apdu20241019.tmp
erst mal die »> entfernt um eine py datei zu haben, um sie mit
david@work:~$ python3 apdu20241019.py
sending C0 20 00 01 08 30 30 30 30 30 30 30 30
response: []  status words: 6e 0
auszufuehren
>>> from smartcard.CardType import AnyCardType
>>> from smartcard.CardConnection import CardConnection
>>> from smartcard.CardRequest import CardRequest
>>> from smartcard.util import toHexString
>>> cardtype = AnyCardType()
>>> cardrequest = CardRequest(timeout=1, cardType=cardtype)
>>> cardservice = cardrequest.waitforcard()
>>> cardservice.connection.connect()
>>> apdu = [0xC0, 0x20, 0x00, 0x01, 0x08, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30]
>>> print('sending ' + toHexString(apdu))
>>> response, sw1, sw2 = cardservice.connection.transmit(apdu, CardConnection.T1_protocol)
>>> print('response:', response, ' status words:', "%x %x" % (sw1, sw2))
im naechsten schritt habe ich APDU Commands der Form
00 A4 04 00 0F 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 00
vorliegen, tatsaechlich scheint es richtig zu sein, dass ich zunaechst
2PAY.SYS.DDF01
u.
1PAY.SYS.DDF01
pruefen muss. Gut, um diesen Request in der richtigen Form zu haben, nutze ich wieder sed - also in der form fuer Array, Python3,
david@work:~$ cat apdu0001.txt | sed 's/ / ,0x/g'
00 ,0xA4 ,0x04 ,0x00 ,0x0F ,0x31 ,0x50 ,0x41 ,0x59 ,0x2E ,0x53 ,0x59 ,0x53 ,0x2E ,0x44 ,0x44 ,0x46 ,0x30 ,0x31 ,0x00
david@work:~$
das scheint so weit zu funktionieren, nur ein bisschen muss ich selber daran noch aendern

so ist besser

david@work:~$ cat apdu0001.txt | sed 's/ /, 0x/g'
00, 0xA4, 0x04, 0x00, 0x0F, 0x31, 0x50, 0x41, 0x59, 0x2E, 0x53, 0x59, 0x53, 0x2E, 0x44, 0x44, 0x46, 0x30, 0x31, 0x00
david@work:~$
\endverbatim}
Antwort:
\begin{verbatim}
david@work:~$ python3 apdu20241019_002.py
sending 00 A4 04 00 0F 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 00
response: []  status words: 6a 82

  1. Probieren wir das andere Verzeichnis sagt,
    31 50 41 59 2E 53 59 53 2E 44 44 46 30 31
    
    steht fuer
    1PAY.SYS.DDF01
    

  2. gucken wir in google nach was die Response 6a 82b bedeutet, 90 00 steht fuer

    Response: SW1: 90 , SW2: 00 (Command successfully executed (OK).)

  3. Gut, zunaechst klingt logisch, wir erhalten hier kein einfaches OK, oder? mal gucken
    6A	82	E	File not found
    
    steht fuer File Not Found, gut, das klingt optimistisch, file not found klingt nicht gut, weil hier etwas nicht gefunden wurde, aber immerhin klar, File hat er erkannt, und - es nicht etwa eine Antwort derart
Bad Request
or whatever. eine Liste mit allen Responses findet man auf seiten im Netz. Ich habe mir erlaubt
1PAY.SYS.DDF01
durch
2PAY.SYS.DDF01
zu ersetzen
32 50 41 59 2E 53 59 53 2E 44 44 46 30 31
leider die Antwort dieselbe
6A	82	E	File not found
damit mache ich fuer heute fertig, mit dem Thema, es folgt, Quine McCluskey und die zwei physischen Schaltnetze

Image Screenshot_20241019_004717 p