Ich brauche Ihre Hilfe, um die PIN einer Smartcard zu überprüfen. Ich verwende Python
und pyscard
. Ich habe verstanden, dass ich einen APDU
Befehl verwenden muss und dass ich es mit ScardTransmit()
senden muss, aber ich kann nicht finden welche APDU zu verwenden. Zum Beispiel:Wie kann die PIN einer Smartcard mit Python überprüft werden?
SCardTransmit(hcard,dwActiveProtocol,
[0x00, 0x20, 0x00, 0x01, 0x06, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x00])
(so mit PIN = 123456) wird wieder ein bloßen 6A 88 - referenzierte Daten nicht
gefundenIch habe mich gefragt: Gibt es eine Möglichkeit, einige Hinweise über die commands zu bekommen mit einer bestimmten Smartcard zu verwenden, um seine ATR
zu betrachten? Das heißt, der Befehl "20" im INS-Feld (APDU besteht aus CLA, INS P1, P2, DATA) ist das, was ISO definiert, um die PIN zu verifizieren, aber wie zu verstehen, wenn ich etwas falsch mache?
Danke.
P.S .: Übrigens, mit P2 = "00" bekomme ich 6A 83, Datensatz nicht gefunden.
Warten wäre: Gibt es eine Möglichkeit zu verstehen, die Befehl zum Senden an die Smartcard? Vielleicht die ATR lesen? Ich werde mich mit vielen verschiedenen Arten von Smartcards beschäftigen müssen und möchte ein "allgemeines" Werkzeug entwickeln, das zwei "einfache" Dinge erledigen kann: lese die PAN (Seriennummer der Karte) und verifiziere den Pin. – Bya
Bitte #ALe, gibt es ein Dokument, wo ich ein paar Informationen darüber finden kann, was ein DF ist, wie man es auswählt und was ist ein MF? Ich bin wirklich ein Neuling über Smartcards ... Ich habe versucht, die richtigen Codes mit einer for-Schleife zu erraten, aber es hat nicht funktioniert. Alles, was ich brauche, ist etwas wie eine allgemeine Anwendung in Python zu bauen, um die PIN zu verifizieren und die PAN zu bekommen, wenn Sie mir bitte sagen würden, wo und was ich lernen würde, würde ich es wirklich schätzen ... – Bya
@Bya: Nein ATR ist keineswegs ausreichend (kann aber einen schwachen Hinweis geben); Ein Ausgangspunkt ist ISO 7816, Teil 4 sowie die meisten Anfänger in [Smartcard]. – guidot