Technischer Beitrag
Entwicklung für EMV, Teil II
In Teil I dieses Beitragshaben wir EMV-Transaktionen und deren Aufbau kurz erläutert. Dabei haben wir gesehen, dass:
- Im Gegensatz zu MSR (MagStripe)-Transaktionen läuft eine EMV-Transaktion in mehreren Phasen ab.
- Der Großteil der Kommunikation zwischen der Chipkarte und dem Lesegerät findet auf der Kernel -Ebene statt, außerhalb der Kontrolle der Anwendungslogik.
- Transaktionsergebnisse werden in TLVs („Tags") zurückgegeben.
- Ein Kryptogramm (ein einzigartiges 8-Byte-Datenelement, das die Karte mithilfe eines nur ihr bekannten privaten Schlüssels erzeugt) wird vor der Abschlussphase der Transaktion generiert; ein zweites Kryptogramm wird nach dem Aufruf zum Abschließen der Transaktion erzeugt.
- Das Kryptogramm wird von der Karte im Tag 9F26 zurückgegeben (ein von EMVCo definiertes Tag, kein proprietäres ID TECH-Tag).
In der Regel packen Sie das erste Kryptogramm (sowie alle weiteren TLV-Daten, die Ihr Backend-Prozessor benötigt) zusammen, um es in Echtzeit über das Netzwerk an den Prozessor zu senden und einen Autorisierungscode (in Tag 89) zu erhalten – bevor Sie den Aufruf zur Einleitung der Abschlussphase ausgeben. Es liegt in Ihrer Verantwortung, die Online-Autorisierungsanfrage durchzuführen (da weder das Lesegerät noch unser SDK diesen Teil für Sie übernimmt), und zwar über die Web-APIs Ihres Gateways. Die meisten Gateways verfügen über eigene SDKs, um diesen Schritt zu vereinfachen.
Das Gateway (oder „Backend-Prozessor") antwortet auf Ihre Autorisierungsanfrage mit den Tags 89, 8A, 91 sowie optional 71 oder 72. Um die Transaktion abzuschließen, übergeben Sie diese TLVs an die emv_completeTransaction() -Methode des Universal SDK. Ihr Code wird über einen Callback über die Ergebnisse informiert. Im Callback erhalten Sie einen Verweis auf die Transaktionsdaten, die eine Gruppe von TLVs enthalten. Darunter befindet sich das zweite und abschließende Kryptogramm (wie oben erwähnt), das – erneut – im Tag 9F26 enthalten ist.
Arten von Kryptogrammen
Das in Tag 9F26 zurückgegebene Kryptogramm ist nicht direkt interpretierbar. Durch bloße Betrachtung lässt sich nicht erkennen, um welchen Kryptogrammtyp es sich handelt. Sie können jedoch Tag 9F27 (das zusammen mit 9F26 zurückgegeben wird) auswerten, um den Typ zu bestimmen. Das obere Nibble von 9F27 enthält die benötigten Informationen. Die Bits lassen sich wie folgt entschlüsseln (diese Informationen stammen aus EMV Book 3):
Im Allgemeinen hat 9F27 einen (hexadezimalen) Wert von 80, 40 oder 00, was (jeweils) ARQC, TC oder AAC entspricht. Diese bedeuten wiederum „Online gehen", „Genehmigt" oder „Abgelehnt".
Es ist wichtig zu verstehen, dass diese Werte lediglich die Empfehlungder Karte darstellen. Diese Empfehlung ist nicht immer bindend. So ist die Karte beispielsweise verpflichtet , beim zweiten Kryptogramm (bei der Abschlussphase) einen AAC zurückzugeben, wenn das ursprüngliche Kryptogramm ein ARQC war, die Zahlungsanwendung jedoch keine Online-Verbindung herstellen konnte. Der AAC bedeutet in diesem Fall nicht automatisch, dass Ihre Transaktion abgelehnt wird – diese Entscheidung liegt letztlich bei der Online-Instanz (dem Kartenherausgeber). Im speziellen EMV-Szenario, das als Quick Chip (oder Faster EMV) bekannt ist, erhalten Sie immer einen AAC, da die Online-Anfrage zu einem späteren Zeitpunkt erfolgt. Das ist in Ordnung! Sie können die Transaktion dennoch zur Abrechnung einreichen. Die Empfehlung der Karte ist lediglich Empfehlungberatender Natur. Die Online-Instanz trifft die endgültige Entscheidung.
Beachten Sie, dass Sie in den USA (die als reiner Online-Markt gelten) beim ersten Kryptogramm fast immer ein ARQC erhalten. Eine Ausnahme wäre beispielsweise, wenn die Karte abgelaufen ist oder ein anderer Grund vorliegt, der eine sofortige Ablehnung der Transaktion erfordert – in diesem Fall könnte nach der ersten „Gen AC"-Anfrage theoretisch ein AAC erscheinen.
TLV-Daten abrufen
Im Universal SDK, das die Kommunikation mit Ihrem ID TECH Lesegerät für Sie übernimmt – per USB, RS-232, Bluetooth, Klinkenanschluss oder Ethernet (je nach Gerätetyp) –, sind alle transaktionsbezogenen Kommunikationsvorgänge zum und vom Lesegerät asynchron. Das bedeutet, Sie müssen eine oder mehrere benutzerdefinierte Callback-Routinen beim SDK registrieren, um Rückmeldungen vom Lesegerät zu empfangen. Anweisungen dazu finden Sie nicht nur in der SDK-Dokumentation, sondern auch im Beispielcode, der dem SDK beiliegt. Die Verwendung von Callbacks ist unkompliziert. Wir empfehlen Ihnen, sich etwas Zeit zu nehmen, um den Beispielcode des SDK zu studieren und den Ablauf nachzuvollziehen.
Das Wichtigste ist, dass eine EMV-Transaktion in Phasen abläuft und Sie am Ende jeder Phase unterschiedliche TLVs zurückerhalten. Ein weit verbreiteter Irrglaube ist, dass Sie alle jemals benötigten Tags auf einmal am Ende der Abschlussphase erhalten. Das ist nicht der Fall. Sie werden feststellen, dass Sie TLVs in jede Phase.
Welche Tags können Sie in jeder Phase erwarten? Hier sind die typischsten Tags, geordnet nach Transaktionsphase:
Transaktion starten:
4F
50
57
5A
5F20
5F24
5F25
5F2D
5F34
84
9F20
DFEE12
DFEE23
Transaktion authentifizieren:
95
9B
9F02
9F03
9F10
9F13
9F26
9F27
9F34
9F36
9F37
9F4D
9F4F
Transaktion abschließen:
95
99
9B
9F02
9F03
9F10
9F13
9F26
9F27
9F34
9F36
9F37
9F4D
9F4F
9F5B
Fast alle dieser Tags sind standardmäßig von EMVCo definierte Tags. Diejenigen, die mit „DF" beginnen, sind proprietäre Tags von ID TECH. Eine vollständige Auflistung der proprietären Tags von ID TECH und deren Bedeutung finden Sie im Dokument 80000503-001, ID TECH TLV Tag Reference Guide, das auf unserer Wissensdatenbank.
Sie finden den benötigten Tag nicht? Kein Problem. Mit dem Universal SDK können Sie zur Transaktionszeit zusätzliche Tags anfordern. Details hierzu sind nicht nur in der SDK-Dokumentation beschrieben, sondern auch in unserem Whitepaper zu EMV Transactions with the Universal SDK.
Welche Tags sind verschlüsselt?
Wenn Ihr Lesegerät mit einem eingeschleusten Schlüssel versehen und die Verschlüsselung aktiviert ist, werden die Inhalte von Tags mit sensiblen Daten verschlüsselt. Dies betrifft selbstverständlich alle Tags, die Track-Daten (z. B. Tag 57) oder PAN-Daten (5A) enthalten. Die vollständige Liste der verschlüsselten Tags finden Sie in Dokument 80000502-001-F, ID TECH Encrypted Data Output. Wenn Sie ein Demo-Gerät verwenden (das mit einem Demo-Schlüssel versehen ist), können Sie die Daten manuell mit unserem Online-Toolentschlüsseln. Im Allgemeinen sollten Sie jedoch im Produktivbetrieb niemals Daten selbst entschlüsseln müssen, da Sie diese direkt an Ihren Zahlungsdienstleister weiterleiten.
Verschlüsselung ist ein umfangreiches Thema. Wir werden es an dieser Stelle nicht weiter vertiefen, aber wenn Sie mehr darüber erfahren möchten, empfehlen wir Ihnen einen Blick in unsere früheren Beiträge zu diesem Thema.
Haben Sie Fragen?
Inzwischen haben Sie sicher viele Fragen. Kein Problem! Wir stellen Ihnen eine Vielzahl kostenloser Ressourcen in unserem Wissensdatenbankzur Verfügung, und falls Sie weitere Fragen haben, sind unsere Techniker nur einen Anruf entfernt.
