- Aktuell

- Suche

- Kontakt

Programmieren von Java Smartcards WS 2007/08

Dozent(in): Dr. Kurt Stenzel, Matthias Güdemann, Jonathan Schmitt
Termin: Vorlesung: Fr, 12:15-13:45 (erste Vorlesung am 19.10.)
Gebäude/Raum: Vorlesung: HSI, Übung: 1006 L1
Ansprechpartner: Matthias Güdemann

Wichtig:

  • Ameldung bei STUDIS: vom 3.01.2008 (00.01 Uhr) - 15.01.2008 (23.59 Uhr)
    Ohne Anmeldung bei STUDIS können keine Leistungspunkte vergeben werden!

 

Der Lehrstuhl Softwaretechnik und Programmiersprachen bietet im WS 2007/08 die Veranstaltung "Programmieren von Java Smartcards" (integrierte V + Ü) an.


Smartcards (Chipkarten mit einem Prozessor) erhalten immer größere Verbreitung. Sie sind flexibler und sicherer als Karten mit Magnetstreifen und erobern sich einen riesigen Zukunftsmarkt von Anwendungen. Der neueste Trend geht in Richtung multi-applikativer Karten, die mehrere `Anwendungen' enthalten, und auf die dynamisch neue Anwendungen geladen werden können. Beispiele hierfür sind digitale Unterschrift, elektronische Geldbörse, intelligente Tickets, Loyalty Cards etc. Die Veranstaltung bietet einen Einstieg in die neueste Chipkartentechnologie. Für die Programmierung wird die Sprache JavaCard verwendet, die eine Teilmenge von Java ist. Da eine Chipkarte nur sehr beschränkte Ressourcen hat, ist das Einsparen von Speicherplatz oberstes Gebot. Neben der korrekten Programmierung ist das richtige Design der Kommunikationsprotokolle (zum Schutz vor Hackern, dem Verlust von Daten usw.) mindestens genauso wichtig.Die Veranstaltung ist eine integrierte Vorlesung und Übung. In dem Vorlesungsteil werden Kenntnisse in JavaCard, der Chipkartentechnologie, dem Design der Anwendungsprotokolle und in kryptographischen Methoden vermittelt. In dem praktischen Teil wird am Rechner (und Chipkartenleser) eine innovative Anwendung (elektronische Bahnfahrkarten, die es in dieser Form noch nicht gibt) erstellt. Dabei müssen die Protokolle spezifiziert und die Chipkarte sowie die Terminals mit GUI programmiert werden.Als Chipkarten werden Java SmartCards von Giesecke & Devrient eingesetzt, die 64 K EEPROM, 3DES und 1024 Bit RSA bieten.

Vorkenntnisse:

  • Unbedingt erforderlich: Programmierkenntnisse in Java, Software-Engineering (Info II, Sopra, Softwaretechnik)
  • Nicht erforderlich: Kenntnis kryptographischer Protokolle

Wert: 8 Leistungspunkte

Scheinerwerb: Erfolgreiche Teilnahme an den Übungen, Hausarbeit, Abschlußprüfung

Termine:
  • Vorlesung: Freitag, 12:15 - 13:45, HSI
  • Übungen:  1006 MNF

Aufgaben:

Wichtig:

  • Alle Teilnehmer müssen sich noch bis zum 26.10. im LectureReg für die Vorlesung anmelden
  • Die Übungsstunden finden jeweils am Mittwoch statt (8.15 - 9.45 / 10.00 - 11.30 / 14.00 - 15.30 / 15.45 - 17.15)
  • Bei der Anmeldung müssen pro Gruppe 2 der Übungsstunden ausgewählt werden. (11.10.2007)

Links:

ISO Statusworte

Diese Liste enthält die JavaCard-Definitionen des ISO-Standard. Folgende Liste wird im javacard.framework.ISO7816 definiert:

90 00 No Error SW_NO_ERROR
61 00 Response bytes remaining SW_BYTES_REMAINING_00
67 00 Wrong length SW_WRONG_LENGTH
69 82 Security condition not satisfied SW_SECURITY_STATUS_NOT_SATISFIED
69 83 File invalid SW_FILE_INVALID
69 84 Data invalid SW_DATA_INVALID
69 85 Conditions of use not satisfied SW_CONDITIONS_NOT_SATISFIED
69 86 Command not allowed SW_COMMAND_NOT_ALLOWED
69 99 Applet selection failed SW_APPLET_SELECT_FAILED
6A 80 Wrong data SW_WRONG_DATA
6A 81 Function not supported SW_FUNC_NOT_SUPPORTED
6A 82 File not found SW_FILE_NOT_FOUND
6A 83 Record not found SW_RECORD_NOT_FOUND
6A 84 Not enough memory space in the file SW_FILE_FULL
6A 86 Incorrect parameters (P1,P2) SW_INCORRECT_P1P2
6B 00 Incorrect parameters (P1,P2) SW_WRONG_P1P2
6C 00 Correct Expected Length (Le) SW_CORRECT_LENGTH_00
6D 00 INS value not supported SW_INS_NOT_SUPPORTED
6E 00 CLA value not supported SW_CLA_NOT_SUPPORTED
6F 00 No precise diagnosis SW_UNKNOWN

Weitere Definitionen für APDUs in javacard.framework.ISO7816

CLA_ISO7816 0 Class-byte für ISO-konforme APDUs
INS_EXTERNAL_AUTHENTICATE 0x82 Instruction für das external_authenticate Kommando
INS_SELECT 0xA4 Instruction für das select Kommando
OFFSET_CLA 0 Index in den APDU-Buffer für das Class-Byte
OFFSET_INS 1 Index in den APDU-Buffer für das Instruction-Byte
OFFSET_P1 2 Index in den APDU-Buffer für Parameter 1
OFFSET_P2 3 Index in den APDU-Buffer für Parameter 2
OFFSET_LC 4 Index in den APDU-Buffer für Lc bzw. Le-Byte
OFFSET_CDATA 5 Index in den APDU-Buffer wo die eigentlichen Daten beginnen

Spezielle Statusworte des GemXpresso Pro R3 Cardmanagers. Folgende (spezifische) Statusworte könnte der Cardmanager bzw. die Java virtuelle Maschine noch zurückliefern:

61 XX Normal processing, XX number of bytes still available
62 83 Selected applet blocked
63 00 Cryptogram not verified
63 10 More data available
65 81 Memory failure
67 00 Incorrect length
69 82 Security status not satisfied
69 85 Command conditions not satified
69 99 Command failed and no more applets are selected
6A 80 Incorrect data: unknown criteria or incorrect AID length
6A 81 Function not supported
6A 82 Applet not found in the selected application
6A 84 Insufficient memory
6A 86 Incorrect P1, P2
6A 88 No element matches the search criteria
6B 00 Incorrect P1 or P2 parameter
6C XX Only XX bytes of data are available
6D 00 Unknown instruction code
6E 00 Incorrect instruction class
6F 00 No specific diagnosis (Exception im Applet)
6F 80 Stack Overflow (?)
90 00 Command processed without error
92 40 Memory problem
94 02 Acess out of range
94 84 Algorithm not supported
94 85 Invalid key check value
9F XX XX bytes of data available

 

Anmeldung: Aufgrund beschränkter Rechnerkapazitäten ist die Übung zulassungsbeschränkt. Die Bearbeitung der Aufgaben wird in Zweiergruppen stattfinden, daher muß die Anmeldung bereits in Zweiergruppen erfolgen. Die Studierenden sind für die Gruppenbildung selbst verantwortlich. Einzelanmeldungen bzw. Voranmeldungen werden nicht akzeptiert. Die Anmeldung findet schriftlich in der ersten Vorlesung am 19.10. statt.

Ansprechpartner:  Matthias Güdemann, Tel.: 0821/598-2176, Zimmer 2031, L1

weitere Informationen zu der Lehrveranstaltung:

empfohlenes Studiensemester der Lehrveranstaltung: Hauptstudium
Fachrichtung Lehrveranstaltung: Informatik
Nummer der Lehrveranstaltung: 07051
Dauer der Lehrveranstaltung: 2 SWS
Typ der Lehrveranstaltung: V - Vorlesung
Leistungspunkte: 8 LP für WV + Ü
Bereich: Softwaretechnik und Programmiersprachen
Prüfung: Mündliche Prüfung
Begleitende Lehrveranstaltung(en): 07052
Semester: WS 2007/08