Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Gruppe „Fahrtenbuch“ Applet

Ähnliche Präsentationen


Präsentation zum Thema: "Gruppe „Fahrtenbuch“ Applet"—  Präsentation transkript:

1 Gruppe „Fahrtenbuch“ Applet
Projekt-Abschlußbericht Datum: 04.Juli 2002 Fachhochschule München, Projektstudium Chipkarten SS 2002

2 Organisation: Teilnehmer
Andrea Herold (Gruppenleitung) Beatrice Krell Annette Holzer Jeannette Schulz Fachhochschule München, Projektstudium Chipkarten SS 2002

3 Organisation: Zeitlicher Ablauf
Einteilung der Gruppen Besprechung zu den Inhalten des Applets Erstellung der APDU-Spezifikation sowie des Zustanddiagramms Entwicklung Fahrtenbuch Testen des Applets im Giessecke & Derivient Ergänzung der Methode „select()“ nach Absprache mit Frau Sandow Testen des Applets im Giessecke & Derivient Veränderung der Spezifikation und des Sourcecodes nach Absprache mit den anderen Gruppen (z. B.: Änderung der zugriffsberechtigten User) Minimierung des Codes zur Reduzierung der Speicherplatzbelegung Dokumentation des Sourcecodes Ausarbeitung der Präsentation Zeit Fachhochschule München, Projektstudium Chipkarten SS 2002

4 UML-Klassendiagramm JavaCardApplet Shareable Interface
Package: org.fhm.javacard.car +sendLoginStatus() : byte Shareable Interface LoginStatusInterface actElement : byte = 0; readElement : byte = 0; loginStatus : byte = -1; carStatus : byte = NOT_INIT; driverID : byte[] = new byte [DRIVER_ID_ LENGTH * AMOUNT_RECORDS]; startTime : byte[] = new byte [START_TIME_LENGTH * AMOUNT_RECORDS]; endTime : byte[] = new byte [END_TIME_LENGTH * AMOUNT_RECORDS]; initKM : byte[] = new byte [INIT_KM_LENGTH * AMOUNT_RECORDS]; initPLZ : byte[] = new byte [INIT_PLZ_LENGTH * AMOUNT_RECORDS]; kmStand : byte[] = new byte [KM_STAND_LENGTH * AMOUNT_RECORDS]; plz : byte[] = new byte [PLZ_LENGTH * AMOUNT_RECORDS]; shareable_AID_bytes : byte[] = { (byte) ‘P‘, (byte) ‘i‘, ... , (byte) ‘t‘ } +DrivingBookApplet () +deselect () +install (buffer : byte[], offset : short, length : byte) +process (apdu : APDU) -receive (apdu : APDU) +select () JavaCardApplet DrivingBookApplet JavaCardAppletDeclarations DrivingBookDeclarations Instruktionen u. Klassenvariable 2) Längen der Variablen 3) Status des Applets 4) StatusWords Fachhochschule München, Projektstudium Chipkarten SS 2002

5 Beschreibung des DrivingBookApplet
Methode install Aufruf des Konstruktors Methode select Mit dieser Methode wird das Applet selektiert und Variablen des Applets vorinitalisiert. Das DrivingBookApplet übernimmt die Rolle des Clients in Zusammenarbeit mit dem PinApplet (Server). Über das ShareableInterface holt sich das DrivingBookApplet den Loginstatus des Benutzers, der sich sich über das PinApplet authentifiziert hat. Erst jetzt ist die Funktionalität des DrivingBookApplets nutzbar (der Aufruf der process wird erfolgreich sein). Methode receive Einlesen der Daten, die an die Karte gesendet werden und Überprüfung der Daten- länge. Fachhochschule München, Projektstudium Chipkarten SS 2002

6 Beschreibung des DrivingBookApplet
Methode process INIT_CAR: Der aktuelle Kilometerstand sowie die PLZ des Abfahrtortes werden auf die Karte geschrieben (Admin.). WRITE_START: Die Abfahrtszeit und die FahrerID wird auf die Karte gespeichert. WRITE_END: Die PLZ des Ankunftortes, der aktuelle Kilometerstand und die Ankunftszeit werden auf die Karte geschrieben. GET_KM: Auslesen des zuletzt gespeicherten Kilometerstandes. READ_INIT_DATA: Auslesen der Initialisierungsdaten (Admin.). READ_DATA: Auslesen der gespeicherten Fahrten (Admin.). DELETE_DATA: Löschen der gesamten auf der Karte gespeicherten Datensätze Admin.). Methode deselect Der LoginStatus wird wieder auf –1 gesetzt, d.h. das Applet muß erst wieder neu selektiert werden, um seine Funktionalität nutzen zu können. Fachhochschule München, Projektstudium Chipkarten SS 2002

7 UML-Zustandsdiagramm
INITIALIZED NOT_INIT READ_INIT DELETE_STATUS READ_STATUS WRITE_START_STATUS WRITE_END_STATUS Startzustand Fachhochschule München, Projektstudium Chipkarten SS 2002

8 Externe Kommunikation: APDU
Command APDU Response APDU CLA INS P1 P2 Lc Datafield Le SW1 + SW2 0xCA 0x20 InitCar 8 Car_init (ohne Anzahl_Trips) 0x21 ReadData 19 Trip 0x22 DeleteData 0x23 ReadInitData 9 0x24 GetKM 4 KM 0x25 WriteStart 5 Trip_start 0x26 WriteEnd 13 Trip_end Response Fachhochschule München, Projektstudium Chipkarten SS 2002

9 Datensatzstrukturen Trip Car_init KM Trip_End Trip_Start FahrerID 1
Abfahrtszeitstempel 5 AnkunftsPLZ 4 KMStand 4 Ankunftszeitstempel 5 19 Car_init KMStand 4 AbfahrtPLZ 4 AnzahlTrips 1 9 KM KMStand 4 4 Trip_End AnkunftsPLZ 4 KMStand 4 Ankunftszeitstempel 5 13 Trip_Start Abfahrtszeitstempel 5 5 Fachhochschule München, Projektstudium Chipkarten SS 2002

10 Anhang: StatusWords StatusWords, die die Response APDU zurückschickt:
SW_CAR_ALREADY_INITIALIZED: STS = (short) 0x6400; SW_EOF: STS = (short) 0x6401; SW_FEW_TRIPS_LEFT: STS = (short) 0x6402; SW_FILE_EMPTY: STS = (short) 0x6403; SW_PIN_APPLET_NOT_EXITS: STS = (short) 0x6404; SW_FAILED_TO_OBTAIN_SIO: STS = (short) 0x6405; SW_ACCESS_DENIED: STS = (short) 0x6406; SW_COMMAND_NOT_ALLOWED: STS = (short) 0x6986; SW_FILE_FULL : STS = (short) 0x6A84; SW_INS_NOT_SUPPORTED : STS = (short) 0x6D00; SW_CLA_NOT_SUPPORTED : STS = (short) 0x6E00; SW_NO_ERROR : STS = (short) 0x9000; Fachhochschule München, Projektstudium Chipkarten SS 2002

11 Anhang: Commands APDU APDU Befehle (command):
INIT_CAR: INS = (byte) 0x20; READ_DATA: INS = (byte) 0x21; DELETE_DATA: INS = (byte) 0x22; READ_INIT_DATA: INS = (byte) 0x23; GET_KM: INS = (byte) 0x24; WRITE_START: INS = (byte) 0x25; WRITE_END: INS = (byte) 0x26; Class byte: BOOK_CLA CLA = (byte) 0xCA; Fachhochschule München, Projektstudium Chipkarten SS 2002

12 Anhang: Variablen Längen der verschiedenen Daten Status des Applets:
AMOUNT_RECORDS : short = (short) 20; • NOT_INIT : byte = (byte) 0; INIT_KM_LENGTH : short = (short) 4; • INITIALIZED : byte = (byte) 1; INIT_PLZ_LENGTH : short = (short) 4; • WRITE_START_STATUS : byte = (byte) 2; KM_STAND_LENGTH : short = (short) 4; • WRITE_END_STATUS : byte = (byte) 3; DRIVER_ID_LENGTH : short = (short) 1; • READ_INIT_STATUS : byte = (byte) 4; END_TIME_LENGTH : short = (short) 5; • READ_STATUS : byte = (byte) 5; PLZ_LENGTH : short = (short) 4; • DELETE_STATUS : byte = (byte) 6; START_TIME_LENGTH : short = (short) 5; TOTAL_LENGTH_DATA : short = (short) 20; Status des Users: TOTAL_LENGTH_INIT : short = (short) 9; • AMINISTRATOR : byte = (byte) 0; Fachhochschule München, Projektstudium Chipkarten SS 2002

13 Vielen Dank für Eure Aufmerksamkeit!!!
Fachhochschule München, Projektstudium Chipkarten SS 2002


Herunterladen ppt "Gruppe „Fahrtenbuch“ Applet"

Ähnliche Präsentationen


Google-Anzeigen