2017-09-17 1 views
2

Der ISO7816-3-Standard für Smart Card besagt, dass einige Karten nicht zur Unterstützung der Zeichenwiederholung (aufgrund von Paritätsfehlern) verpflichtet sind. Nehmen wir an, die Schnittstelleneinheit (ID) empfängt Paritätsfehlerdaten von der unbekannten Karte während der ATR (Antwort zum Zurücksetzen). Es (ID) signalisiert den Fehler der Karte, aber ohne zu wissen, ob die Karte Wiederholungen unterstützt, wie kann sie feststellen, ob das nächste Zeichen von der Karte wiederholt wird (das hatte einen Paritätsfehler) oder das nächste Zeichen (falls die Karte dies nicht tut) Unterstützung Wiederholung).Smartcard-Antwort zum Zurücksetzen

Antwort

1

Soweit ich den Standard verstehen, die Fehlererkennung in der folgenden Art und Weise funktioniert:

  • für T=0 das Fehlersignal und Zeichenwiederholung

  • für die andere verwendet wird, gibt es immer ein Telegrammprüfsumme, die zur Fehlererkennung verwendet wird (TCK Byte in Antwort-auf-Rücksetzen, LRC/CRC in T=1 frames)


Unter Berufung auf ISO/IEC 7816-3: 2006, Abschnitt, Unterabschnitt "Charaktere und Codierungskonventionen" "Answer to Reset":

das Fehlersignal und Zeichenwiederholung gemäß 7.3 ist obligatorisch für die Karten, die T = 0 anbieten; es ist optional für die Schnittstellengeräte und für andere Karten.

Unter Berufung auf Unterabschnitt "Prüfbyte TCK" unter dem Abschnitt "Antwort-to-Reset":

Wenn nur T = 0 angezeigt wird, möglicherweise standardmäßig, so soll TCK fehlen. Wenn T = 0 und T = 15 vorhanden sind und in allen anderen Fällen TCK vorhanden ist. Wenn TCK vorhanden ist, muss die Exklusiv-ODER-Verknüpfung aller Bytes T0 bis TCK einschließlich "00" ergeben. Jeder andere Wert ist ungültig.


die oben bedeutet, dass die korrekte Übertragung der ATR durch die Fehlersignal/Zeichenwiederholung für reine T=0 Karten überprüft wird. Und durch TCK Byte für den Rest.

In Ihrem Szenario kann das Interfacegerät zwischen dem wiederholten Zeichen und dem nicht wiederholten Zeichen nach dem Paritätsfehler nicht unterscheiden, aber falls die Karte kein Fehlersignal/Zeichenwiederholung unterstützt, das resultierende TCK Byte (was in diesem Fall erforderlich ist) sollte mit einer hohen Wahrscheinlichkeit falsch sein.

Haftungsausschluss: Dies ist meine Interpretation der Norm, meine Gedanken bitte validiere ...

Viel Glück!

+0

Es hat Sinn für mich, obwohl ich mich frage warum in einigen Fällen (Paritätserkennung) mir die Möglichkeit gegeben wurde, wiederholte Zeichen zu erwerben und in anderen Fällen (keine TCK) kann ich nur lernen, dass etwas nicht in Ordnung ist. Aber angenommen, es sollte einige historische Gründe dafür geben. Obwohl ich diese Antwort akzeptiert habe, kann ich es kaum bestätigen - siehe [link] https://electronics.stackexchange.com/questions/329913/smart-card-parity-error-notification. – Djole

+0

@Djole Ich wünschte, ich hätte eine verifizierte Antwort für Sie (vielleicht gibt jemand anderes einen besseren). [Hier] (https://github.com/vlp/ssim/blob/master/src/common/me_io.inc) ist eine sehr einfache (busy-waiting) kartenseitige Implementierung für PIC mit Fehlererkennung. Viel Glück! – vlp

+0

Ich werde den Code lesen, auf den Sie verwiesen haben, aber PIC hat eine nette Funktion bezüglich des Problems, über das wir gesprochen haben - es kündigt den Fehler an der Hälfte des Stopbits an (Aussage aus ihrer Anwendungsnotiz [link] http: // ww1. microchip.com/downloads/de/AppNotes/01370A.pdf). Im Moment habe ich beschlossen, die Parität zu ignorieren, weil es noch viele andere Fragen gibt, außer dem Paritätsproblem, das ich klarstellen muss. – Djole

Verwandte Themen