16
Fachhochschule München, Projektstudium Chipkarten SS 2002 8. DataLayer Command APDU Response APDU Java Card Bereich der DataLayer Gruppe GUI Gruppe Treiber Gruppe

Fachhochschule München, Projektstudium Chipkarten SS 2002 8. DataLayer Command APDU Response APDU Java Card Bereich der DataLayer Gruppe GUI GruppeTreiber

Embed Size (px)

Citation preview

Page 1: Fachhochschule München, Projektstudium Chipkarten SS 2002 8. DataLayer Command APDU Response APDU Java Card Bereich der DataLayer Gruppe GUI GruppeTreiber

Fachhochschule München, Projektstudium Chipkarten SS 2002

8. DataLayer

Command APDU

Response APDUJava Card

Bereich der DataLayer Gruppe

GUI Gruppe Treiber Gruppe

Page 2: Fachhochschule München, Projektstudium Chipkarten SS 2002 8. DataLayer Command APDU Response APDU Java Card Bereich der DataLayer Gruppe GUI GruppeTreiber

Fachhochschule München, Projektstudium Chipkarten SS 2002

8. DataLayer

Header (mandatory)

CLA INS P1 P2

Body (optional)

Lc DATA Le

Command APDU

– CLA - indicates the type of command (ISO, prop.)

– INS - specifies the instruction to be performed

– P1 and P2 - instruction parameters

– Lc - number of bytes in the data field

– Data - command optional data

– Le - number of bytes expected in the response

Page 3: Fachhochschule München, Projektstudium Chipkarten SS 2002 8. DataLayer Command APDU Response APDU Java Card Bereich der DataLayer Gruppe GUI GruppeTreiber

Fachhochschule München, Projektstudium Chipkarten SS 2002

8. DataLayer

Trailer (mandatory)Body (optional)

SW1DATA SW2

Response APDU

– Data - command optional response

– SW1 and SW2 - status word

Page 4: Fachhochschule München, Projektstudium Chipkarten SS 2002 8. DataLayer Command APDU Response APDU Java Card Bereich der DataLayer Gruppe GUI GruppeTreiber

Fachhochschule München, Projektstudium Chipkarten SS 2002

8. DataLayer

Die Aufgaben des DataLayer– Umwandeln der übergebenen Parameter ( z.B.

Abfahrtszeit ) in Hex-Werte und erstellen des Sendbuffers.

– Auslesen des Recvbuffers und Übergabe der Werte an die GUI.

Page 5: Fachhochschule München, Projektstudium Chipkarten SS 2002 8. DataLayer Command APDU Response APDU Java Card Bereich der DataLayer Gruppe GUI GruppeTreiber

Fachhochschule München, Projektstudium Chipkarten SS 2002

8. DataLayer

Erschwerende Umstände

– Häufig wechselnde Anpassungen der Spezifikationen erforderten einige Mühen bei der Implementierung.

– Aufgrund der Positionierung zwischen Treiber und GUI konnte die korrekte Funktionalität lediglich simuliert werden, da Tests im Gesamtsystem erst nach dem Zusammensetzen aller Teile möglich waren.

Page 6: Fachhochschule München, Projektstudium Chipkarten SS 2002 8. DataLayer Command APDU Response APDU Java Card Bereich der DataLayer Gruppe GUI GruppeTreiber

Fachhochschule München, Projektstudium Chipkarten SS 2002

8. DataLayer

Entwicklung einer Testumgebung– Aufruf der verfügbaren Funktionen– Simulation der zu übergebenden Daten– Ausgabe der Ergebnisse– Überprüfung der „Status Words“

Page 7: Fachhochschule München, Projektstudium Chipkarten SS 2002 8. DataLayer Command APDU Response APDU Java Card Bereich der DataLayer Gruppe GUI GruppeTreiber

Fachhochschule München, Projektstudium Chipkarten SS 2002

8. DataLayer

Testumgebung

Beispiel CarInit:

public String initCar(String KMStand ,String AbfahrtsPLZ)

Spezifikation:      

KMStand      4 Byte    AbfahrtsPLZ  4 Byte     AnzahlTrips 1 Byte    

Keine Rückgabe

Page 8: Fachhochschule München, Projektstudium Chipkarten SS 2002 8. DataLayer Command APDU Response APDU Java Card Bereich der DataLayer Gruppe GUI GruppeTreiber

Fachhochschule München, Projektstudium Chipkarten SS 2002

8. DataLayer

Testausgabe am Beispiel: public String initCar(String KMStand ,String AbfahrtsPLZ)

Aufruf der Methode:PkwGuiDataLayer v_Pkw = new PkwGuiDataLayer(); ergebnis = v_Pkw.initCar("00198765","00085221");System.out.println("InitCar-Ergebnis:" + ergebnis);PkwGuiDataLayer.printByteArray(v_Pkw.sendbuffer);PkwGuiDataLayer.printByteArray(v_Pkw.recvbuffer);

Ausgabe des Ergebnis:InitCar-Ergebnis:o

v_Pkw.sendbuffer:Oxcl* Ox20* Ox0* Ox0* Ox8* Ox0* Ox13* Ox57* Ox41* Ox0* Ox8* Ox34* Ox29* Ox0

v_Pkw.recvbuffer:* Ox90* Ox0 KMStand AbfahrtsPLZ

Page 9: Fachhochschule München, Projektstudium Chipkarten SS 2002 8. DataLayer Command APDU Response APDU Java Card Bereich der DataLayer Gruppe GUI GruppeTreiber

Fachhochschule München, Projektstudium Chipkarten SS 2002

8. DataLayer

PINDataLayer Methoden

Methode Command APDU ReturnwerteCLA INS P1 P2 Lc Data Le

public String verify(string PIN, int FID)

0x

AB

0x

05

0x

00

0x

00

0x

05

PIN

FID

0x

01

Exception Code e(xxxx), xxxx = Rückgabewerte des oncard PIN Applet

oder ox, x = Int-Wert der FID

public String addPIN (string PIN, int FID)

0x

AB

0x

04

0x

00

0x

000x 05

PIN

FID0x 00

Exception Code e(xxxx)xxxx = Rückgabewerte des oncard PIN Applet oder o als Success-Code

Page 10: Fachhochschule München, Projektstudium Chipkarten SS 2002 8. DataLayer Command APDU Response APDU Java Card Bereich der DataLayer Gruppe GUI GruppeTreiber

Fachhochschule München, Projektstudium Chipkarten SS 2002

8. DataLayer

PINDataLayer Methoden

Methode Command APDU ReturnwerteCLA INS P1 P2 Lc Data Le

public String deletePIN (int FID)

0x

AB

0x

03

0x

00

0x

00

0x

01FID

0x

00

Exception Code e(xxxx)xxxx = Rückgabewerte des oncard PIN Applet oder o als Success-Code

public String getUsers ()

0x

AB

0x

06

0x

00

0x

00

0x

00

0x

000x 04

Exception Code e(xxxx)xxxx = Rückgabewerte des oncard PIN Applet oder Success-Code oxxxx, xxxx = Bitmaske der gesetzten FID‘s

Page 11: Fachhochschule München, Projektstudium Chipkarten SS 2002 8. DataLayer Command APDU Response APDU Java Card Bereich der DataLayer Gruppe GUI GruppeTreiber

Fachhochschule München, Projektstudium Chipkarten SS 2002

8. DataLayer

PINDataLayer Methoden

Methode Command APDU ReturnwerteCLA INS P1 P2 Lc Data Le

public String unBlock (String PUK)

0x

AB

0x

12

0x

00

0x

00

0x

04PUK

0x

01

Exception Code e(xxxx)xxxx = Rückgabewerte des oncard PIN Applet oder o als Success-Code

Page 12: Fachhochschule München, Projektstudium Chipkarten SS 2002 8. DataLayer Command APDU Response APDU Java Card Bereich der DataLayer Gruppe GUI GruppeTreiber

Fachhochschule München, Projektstudium Chipkarten SS 2002

8. DataLayer

PKWDataLayer Methoden

Methode Command APDU ReturnwerteCLA INS P1 P2 Lc Data Le

public String WriteStart (string AZS)

0x

AB

0x

25

0x

00

0x

00

0x

05AZS

0x

00

Exception Code e(xxxx)xxxx = Rückgabewerte des oncard PIN Applet oder o als Success-Code

public String WriteEnd (string APLZ, string KMS, string AZS)

0x

AB

0x

26

0x

00

0x

00

0x

13

APLZ KMS AZS

0x

00

Exception Code e(xxxx)xxxx = Rückgabewerte des oncard PIN Applet oder o als Success-Code

Page 13: Fachhochschule München, Projektstudium Chipkarten SS 2002 8. DataLayer Command APDU Response APDU Java Card Bereich der DataLayer Gruppe GUI GruppeTreiber

Fachhochschule München, Projektstudium Chipkarten SS 2002

8. DataLayer

PKWDataLayer Methoden

Methode Command APDU ReturnwerteCLA INS P1 P2 Lc Data Le

public String GetMiles ()

0x

AB

0x

24

0x

00

0x

00

0x

00

0x

00

0x

00

Exception Code e(xxxx)xxxx = Rückgabewerte des oncard PIN Applet oder Success-Code o(String km)

public String InitCar (string KMS, string APLZ)

0x

AB

0x

20

0x

00

0x

00

0x

08KMS APLZ

0x

00

Exception Code e(xxxx)xxxx = Rückgabewerte des oncard PIN Applet oder o als Success-Code

Page 14: Fachhochschule München, Projektstudium Chipkarten SS 2002 8. DataLayer Command APDU Response APDU Java Card Bereich der DataLayer Gruppe GUI GruppeTreiber

Fachhochschule München, Projektstudium Chipkarten SS 2002

8. DataLayer

PKWDataLayer Methoden

Methode Command APDU ReturnwerteCLA INS P1 P2 Lc Data Le

public String ReadData ()

0x

AB

0x

21

0x

00

0x

00

0x

00

0x

00

0x

20

Exception Code e(xxxx)xxxx = Rückgabewerte des oncard PIN Applet oder Success-Code o(String Data)

public String DeleteData ()

0x

AB

0x

22

0x

00

0x

00

0x

00

0x

00

0x

00

Exception Code e(xxxx)xxxx = Rückgabewerte des oncard PIN Applet oder o als Success-Code

Page 15: Fachhochschule München, Projektstudium Chipkarten SS 2002 8. DataLayer Command APDU Response APDU Java Card Bereich der DataLayer Gruppe GUI GruppeTreiber

Fachhochschule München, Projektstudium Chipkarten SS 2002

8. DataLayer

PKWDataLayer Methoden

Methode Command APDU ReturnwerteCLA INS P1 P2 Lc Data Le

public String ReadInitData ()

0x

AB

0x

23

0x

00

0x

00

0x

00

0x

00

0x

09

Exception Code e(xxxx)xxxx = Rückgabewerte des oncard PIN Applet oder Success-Code o(String Data)

Page 16: Fachhochschule München, Projektstudium Chipkarten SS 2002 8. DataLayer Command APDU Response APDU Java Card Bereich der DataLayer Gruppe GUI GruppeTreiber

Fachhochschule München, Projektstudium Chipkarten SS 2002

8. DataLayer

Abschließend

– Sehr interessantes Thema– Gute Einführung durch die Vorlesungen am Anfang des Semesters– Guter Einblick in die technischen Details der Chipkarten Programmierung

– Etwas Chaotisch ( Absprache mit anderen Gruppen )– Ständige Änderungen der Spezifikation