86
FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanageme nt Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit freundlicher Unterstützung von Projektstudium Chipkarten SS 2001

FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Embed Size (px)

Citation preview

Page 1: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

FH MünchenFB 07 Informatik/Mathematik

Projektstudium Chipkarten

SS 2001

ProjektmanagementZoltan Ambach

Marcus Schloegl

Moritz Weidler

Ilona Dietz

Mit freundlicher Unterstützung von

Projektstudium Chipkarten SS 2001

Page 2: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

1. Vorstellung des Projekts

1.1 Kommunikation APDU

1.2 Versenden eines Dokuments

1.3 Empfangen eines Dokuments

2. Verteilung der Aufgaben

3. Aufgaben des Projektmanagements 

Überblick

Projektstudium Chipkarten SS 2001Projektmanagement

Page 3: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Projektmanagement

Es soll eine Karte entwickelt werden, mit deren Hilfe der User ein Dokument digital signieren kann.

Die digitale Signatur dient zum Nachweis der Integrität und der Authentizität.

1. Vorstellung des Projektes

Page 4: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Projektmanagement

1.1 Kommunikation APDU(Application Protocol Data Unit)

Command APDU

CLA INS P1 P2 Lc Data field Le

Response APDU

Data field SW1 SW2

Command APDU

Response APDU

Page 5: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Projektmanagement

1.2 Versenden eines signierten Dokuments

Chipcard Terminal

APDU (Hash(Doc), Key#)

(Signature S)

Doc S

S = dec (Hash(Doc),PrivKey) Computation of Hash(Doc)

Page 6: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Projektmanagement

Chipcard Terminal

APDU (S, Hash(Doc), Key#)

(Response)

Doc SHash´ = enc(S,PubKey)Hash´ == Hash (Doc) ?

1.3 Empfangen eines signierten Dokuments

Page 7: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Projektmanagement

• Projektmanagement

• Authenticate / PIN (Karte)

• Sign (Karte)

• Authenticate / PIN (Terminal)

• Sign (Terminal)

• Schlüsselverwaltung

• Class Applet

• Tester (QS)

Gruppendarstellung

Page 8: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Projektmanagement

Class Applet

Treiber

TesterAPDU

Sm@rtCafe (Skript)

Oncard Offcard

SchlüsselSign PINSign PIN Schlüssel

2. Verteilung der Aufgaben

Page 9: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Projektmanagement

3. Aufgaben des Projektmanagements

• Festlegung der einzelnen Arbeitsschritte

• Resourcenplanung

• Kommunikation zwischen den Teams und zum Kunden

• Kontrolle der Einhaltung des Zeitplans

• Motivation

Page 10: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Kommunikation mit dem Terminal

Achim Sommer

FH MünchenFB 07 Informatik/Mathematik

Projektstudium Chipkarten

SS 2001

Mit freundlicher Unterstützung von

Page 11: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Aufgabe des Treibers

PC ProgrammJavaCard

Treiber

ResponseAPDU

CommandAPDU

generierteAPDU

Interpretionder APDU

Projektstudium Chipkarten SS 2001Kommunikation mit dem Terminal

Page 12: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Problemstellung

• Treiber ist abhängig vom benutzten Card Terminal

• Problem – Plattformabhängig– Herstellerabhängig

• LösungsansatzOpenCard Framework

Projektstudium Chipkarten SS 2001Kommunikation mit dem Terminal

Page 13: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Allgemeiner Aufbau des OCF

CardService Layer

CardTerminal Layer

werden vom Anwendungs-entwickler benutzt bzw. selbstimplementiert

wird i.a. vom Terminalherstellergeliefert

Projektstudium Chipkarten SS 2001Kommunikation mit dem Terminal

Application Layer

Page 14: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Implementierung I

• CardTerminal Layer von G&D– GDCardTerminalFactory

• CardService Layer– Implementierung eines Services, der

die APDU‘s sendet/empfängt und die APDU‘s auswertet

– Kapselung in einer Klasse

Projektstudium Chipkarten SS 2001Kommunikation mit dem Terminal

Page 15: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Implementierung II

ck_CardService ck_APDUData

ck_Communicate

Projektstudium Chipkarten SS 2001Kommunikation mit dem Terminal

GUI Programm

APDU‘ssendenempfangenauswerten

ReturnwertData Feldder ResponseAPDU

OCF Frameworkstarten

Page 16: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Voraussetzungen

• JDK 1.3 inkl. JRE• BaseOCF mit

– base-core.jar (APDU Klassen)– base-opt.jar (ck_CardService)

• Java Communication API(betriebssystemabhängig für Windows, Linux, Sun verfügbar)

Projektstudium Chipkarten SS 2001Kommunikation mit dem Terminal

Page 17: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Probleme bei der Implementierung

• CardTerminal Layer stand erst spät zur Verfügung

• Zur Verfügung stehende Dokumentation des OCF zum Teil sehr dürftig Beispielcode war nicht zum laufen zu bringen

• Konfiguration der Java Runtime und Entwicklungsumgebung

Projektstudium Chipkarten SS 2001Kommunikation mit dem Terminal

Page 18: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

JavaCard-Applet

• Aufgabe: Realisierung eines Java-Applets zur Steuerung aller Vorgänge auf der Kartenseite

• Mitglieder:

Florian Rickert

Aydin Atabay

Tobias Röseneder

Alois Koller

Ranko Krvavac

Page 19: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Aufgabenbereiche des Applets:

Projektstudium Chipkarten SS 2001Applet

• dekodieren der APDU

• Standard-Fehler abfangen

• Methoden ausführen

• Rückmeldung an PC-Seite

• Zugriffskontrolle

Page 20: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

1. APDU-Empfang

• JCRE (JavaCardRuntimeEnvironment) empfängt APDU aus der seriellen Leitung vom Kartenleser

• Datenübertragungsfehler werden abgefangen (zu kurze APDU, ...)

• Verarbeiten von Install- oder Select-Aufrufen (Applet initialisieren oder auswählen)

• JCRE erzeugt APDU-Objekt

• Aufruf der Process-Methode unseres Applets

Projektstudium Chipkarten SS 2001Applet

Page 21: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

2. Process

• Überprüfen des Class-Byte

• Abfragen des Sicherheitsstatus (insecure, authentificated and PIN_correct)

• Überprüfen der APDU-Parameter abhängig vom Instruction-Byte (P1, P2, LC, Länge des Databereichs und LE)

Projektstudium Chipkarten SS 2001Applet

Page 22: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

3. Response

• Fehler– Kartenmodule werfen im Fehlerfalle Exceptions

– Weiterreichen der Exceptions an dasJCRE

– JCRE generiert Response-APDU mit SW1 und SW2 als Fehlercode

• Erfolg– setzen des neuen Sicherheitszustands (bei MutualAuthenticate

und VerifyPIN)

– Zurückschicken der APDU ans Terminal

Projektstudium Chipkarten SS 2001Applet

Page 23: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Beispiel• Install-APDU an die Karte

– JCRE initialisiert unser Applet

• Select-APDU an Karte

– JCRE aktiviert unser Applet

• MutualAuthenticate

– Sicherheitszustand: authentifiziert

• VerifyPIN (nur wenn Zustand = authentifiziert)

– Sicherheitszustand: PIN_correct

• beliebige andere Methode kann nun aufgerufen werden

– z. B. sign, changePIN, getPrivateKeyID, ...

• Wird die Karte erneut mit Strom versorgt wir der Sicherheitszustand auf insecure zurückgesetzt.

Projektstudium Chipkarten SS 2001Applet

Page 24: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

FH MünchenFB 07 Informatik/Mathematik

Projektstudium Chipkarten

SS 2001

Schlüsselverwaltung(Kartenseitig)

Anita (cookie) Costantini, Matthias Nau, Dan Beldiman

Mit freundlicher Unterstützung von

Page 25: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Schlüsselverwaltung (Kartenseitig)

Speichern der Schlüssel auf der Karte

• Private Key– Instanz der Klasse

„RSA_PrivateKey“

– ID des „Private Keys“ wird zusätzlich gespeichert.Spätere Abfrage möglich

• Public Key– Vektor mit 256 Zellen

– jede Zelle enthält einen „Public Key“

– Instanzen der Klasse RSA_PublicKey

– seine ID entspricht der Zellennummer

Speichern der Schlüssel in einem von AsymmetricKey abgeleiteten Objekt:

Page 26: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001 Schlüsselverwaltung (Kartenseitig)

Ablauf

• Die Klasse KeySaver nimmt APDU-Aufrufe entgegen und erzeugt je nach Aufruf den Private Key oder einen Public Key.

• Wegen der Länge des Private Keys werden dessen Modulus und Exponent getrennt von der Klasse KeySaver verarbeitet und im Private Key gespeichert

• Wird versucht einen Schlüssel auf der Karte zu erzeugen, der schon vorhanden ist ( Private Key, einer der Public Keys), wird eine Exception geworfen.

• Die Funktionseinheiten auf der Karte haben zum Signieren Zugriff auf die verschiedenen Teile der Schlüssel (Private Key, Private Key ID, Public Keys)

Page 27: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001 Schlüsselverwaltung (Kartenseitig)

Überblick verwendeter Methoden und Klassen

Zum Abspeichern der Schlüssel auf die Karte werden folgende Methoden der Klasse KeySaver verwendet:

storePrivateExponent(byte[] buffer) throws ISOExceptionspeichert den privaten Exponenten im privaten RSA-Schlüssel.

storePrivateModulus(byte[] buffer) throws ISOExceptionspeichert den privaten Modulus im privaten RSA-Schlüssel.

storePublicKey(byte[] buffer) throws ISOExceptionspeichert den öffentlichen Schlüssel an die Stelle seiner ID im Public-Key-Feld.

Page 28: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001 Schlüsselverwaltung (Kartenseitig)

Überblick verwendeter Methoden und Klassen

(Fortsetzung)

getPrivateKeyID(byte[] buffer) throws ISOExceptiongibt die ID des privaten Schlüssels zurück.

RSA_PrivateKey getPrivateKey()gibt den privaten Schlüssel als Instanz der Klasse RAS_PrivateKey

zurück. RSA_PublicKey getPublicKey(int id)

gibt den öffentlichen Schlüssel mit der angegebenen ID zurück.

Page 29: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001 Schlüsselverwaltung (Kartenseitig)

storePrivateExponent()

storePrivateModulus()

storePublicKey()

getPrivateKeyID()

getPrivateKey()

MN

KeySaver

getPublicKey()

Private Key

ID Modulus Exponent

Public Keys[ ]

ID Modulus Exponent1...n

Page 30: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

FH MünchenFB 07 Informatik/Mathematik

Projektstudium Chipkarten

SS 2001

SchlüsselverwaltungPC seitig

Kathrin Baumgartner, Anne Cesarz, Kurt Beer

Mit freundlicher Unterstützung von

Page 31: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Schlüsselverwaltung - PC seitig

Ablauf:•Mit den Methoden getPublic und getPrivate der Klasse RSAKeyPairGenerator werden die jeweils zusammengehörenden Private und Public Keys erzeugt.

•Private Key:

•Der Private Key wird sofort an die Karte gesendet.

•Wegen der Länge des Private Keys werden dessen Modulus und Exponent getrennt an die Karte gesendet.

•Public Key:

•der Public Key wird mit einer ID in eine Datei gespeichert aber auch sofort zur Karte gesendet. Zu einem späteren Zeitpunkt können alle Public Keys aus der Datei an eine Karte verschickt werden.

•Falls die Datei noch nicht vorhanden ist, wird sie erzeugt, ID = 1, ansonsten wird der Public Key an die Datei angehängt, ID = letzte ID + 1.

•Public Key Modulus und Exponent werden zusammen in einer APDU übertragen. (Param1 = ID, Param2 = Exponent, Datenfeld = Modulus)

Page 32: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001 Schlüsselverwaltung - PC seitig

ID, modulus, exponent.........................

Parts.txt

exponentmodulusID

generate key pair   public

keyprivate

key

write to file

modulus exponent

PrepareAPDU commandPriv key modulus

 0xB0 23 id 0 modulus Le

PrepareAPDU commandPriv key exponent

 0xB0 24 id 0 exponent Le

 

send to card

PrepareAPDU command

Pub key mod + exp 

0xB0 25 id 0 modulus Le

 

send to card

 

  

Page 33: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001 Schlüsselverwaltung - PC seitig

Graphische Oberfläche:

Page 34: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001 Schlüsselverwaltung - PC seitig

Exception handling:

•Der User wird über einen auftretenden Fehler mit Hilfe eines modalen Pop-Ups informiert.

Page 35: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001 Schlüsselverwaltung - PC seitig

Schwierigkeiten:

•Viele Typumwandlungen, da die Methoden die Ergebnisse nicht in dem benötigten Format liefern.

•Das Standardpackage java.security enthielt keine Klasse die das RSA-Verfahren implementiert. Die geeigneten Klassen mußten erst im Internet gesucht werden.

•Das von G&D gelieferte Material war teilweise unvollständig und unzureichend dokumentiert.

Page 36: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

FH MünchenFB 07 Informatik/Mathematik

Projektstudium Chipkarten

SS 2001

Authenticate & PIN

Martin Leidel, Andreas Dreyer, Peter Knöferl,Christoph Mayer, Tobias Meißner, Marvin Jakwerth

Mit freundlicher Unterstützung von

Page 37: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Authenticate & PIN

GliederungGliederungGruppe PINMethodenFazit Die Gruppe Authenticate & PIN

Unsere Methoden

Was uns am Projekt Chipkarten gefallen hat.

Probleme / Verbesserungsmöglichkeiten

Page 38: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Authenticate & PIN

GliederungGruppe PINL ÜbersichtL AufgabenMethodenFazit

Oncard Offcard

Gruppenübersicht

Sign PIN Schlüssel

Class Applet

Treiber

Sign PIN

Tester

APDU

Tester

Schlüssel

Page 39: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Authenticate & PIN

GliederungGruppe PINL ÜbersichtL AufgabenMethodenFazit

Aufgaben der Gruppe Authenticate & PIN

Verifizieren der PIN

Wechselseitige Authentifizierung . zwischen Terminal und Chipkarte Evtl. Änderung der PIN

Evtl. Block/Unblock der Karte

Laden der PIN auf die Karte

Page 40: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Authenticate & PIN

Methodenübersicht

public void MutualAuthenticate(byte[] buffer)

public void VerifyPIN(byte[] buffer)

public void ChangePIN(byte[] buffer)

public void Unblock(byte[] buffer)

GliederungGruppe PINMethodenL ÜbersichtL VerifyPINL ChangePINFazit

Page 41: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Authenticate & PIN

GliederungGruppe PINMethodenL ÜbersichtL VerifyPINL ChangePINFazit

VerifyPIN()

Karte gesperrt?

Funktion wird aufgerufen

FBZ>0

Response APDU0x1202

ja

PIN prüfen

ja

Response APDU0x9000

Richtig FBZ = 3;ja

FBZ--;

nein

Karte sperrennein

Response APDU0x1201

nein

Page 42: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Authenticate & PIN

Error Codes und APDU der Methode

private VerifyPIN()

GliederungGruppe PINMethodenL ÜbersichtL VerifyPINL ChangePINFazit

Page 43: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Authenticate & PIN

GliederungGruppe PINMethodenL ÜbersichtL VerifyPIN L ChangePINFazit

PIN korrekt?Eingabe alte PIN

Aufruf der Funktion

ChangePIN

Aufruf VerifyPIN

Returncode 9000

Neue PIN korrekt?Eingabe neue PIN

Ja

Speicher der neuen PIN

Ja

Fehlercode Falsche PIN

Nein

FehlercodeNein

ChangePIN

Page 44: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Authenticate & PIN

Error Codes und APDU der Methode

private ChangePIN()

GliederungGruppe PINMethodenL ÜbersichtL VerifyPIN L ChangePINFazit

Page 45: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Authenticate & PIN

GliederungGruppe PINMethodenFazit

Was uns am Projekt Chipkarten gefallen hat:

Interessantes Thema

Aufteilung von Theorie und Praxis

lockere Atmosphäre im Team

Aufgaben wurden größtenteils bewältigt

Page 46: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Authenticate & PIN

Probleme die während des Projekts aufgetreten sind:

Verbesserungsmöglichkeiten:

GliederungGruppe PINMethodenFazit

Alle Dateien an zentralem Ort speichern

Abhängigkeiten zu anderen Gruppen

Absprache mit anderen Gruppen schwierig

Page 47: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

FH MünchenFB 07 Informatik/Mathematik

Projektstudium Chipkarten SS 2001

Authenticate und PIN(PC)

Marco Schmid, Martin Menzel, Monika Bauer, Sven Müller, David O‘Donovan, Achim Sommer

Mit freundlicher Unterstützung von

Page 48: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Authenticate und PIN (PC)

Chronologischer Ablauf eines Kartenvorgangs anhand eines Beispiels: Benutzer möchte seine PIN ändern

1. Schritt: Authentifizierung nach Karteneingabe (Funktion Mutual Authenticate)

2. Schritt: Eingabe der PIN und formale Prüfung auf PC-Seite

3. Schritt: a) Prüfung erfolgreich: Senden der PIN an Karte

(Funktion SendPIN)

4. Schritt: Änderung der PIN (Funktion ChangePIN)

b) Prüfung nicht erfolgreich: Neueingabe (falls 3-mal Falscheingabe wird Karte blockiert)

Page 49: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Titel

Mutual Authentification

Funktionsaufruf mutualAuth() Erstellen APDU und senden an Karte

Terminal nicht O.K.

Programm-abbruch

Response 0x1102

Successfully Processed

Response 0x9000

Korrekte AuthentificationProgramm-

abbruch

Response 0x1101

Karte nicht O.K.

Page 50: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Authenticate und PIN (PC)

sendPIN

Funktionsaufruf sendPIN( )

Programm-abbruch Response intern

Falsches PIN-Format

Richtiges PIN-Format

Erstellen / Senden APDU „Verify PIN“

Richtige PIN

Programmabbruch Response 0x1202

Karte gesperrtFalsche PIN

Programm-abbruch

Response 0x1201

Successfully Processed

Response 0x9000

Page 51: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Authenticate und PIN (PC)

ChangePIN

Funktions-aufruf changePIN( )

Programmabbruch

Response 0x1301

Successfully

Processed

Response 0x9000

Falsche PIN

PIN geändert

Programmabbruch

Response 0x1302

Neue PIN- unzulässiger Wert

Karte gesperrt Programm-

abbruch

Response 0x1303

Erstellen/Senden APDU mit alter/neuer PIN

Page 52: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Authenticate und PIN (PC)

Page 53: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

FH MünchenFB 07 Informatik/Mathematik

Projektstudium Chipkarten

SS 2001

Gruppe Sign(PC+Karte

)

Mit freundlicher Unterstützung von

Page 54: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001 Sign(PC+Karte)

Gliederung des Vortrags:

•Einleitung

•Java

•Warum Java ?

•Grundlagen der JAVA Programmierung

•Erklärung der einzelnen Aufgaben mit Beispielen

•Hash-Wert berechnen

•Sign(Karte)

•Signatur

•Fragen

Page 55: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Unser Gruppe setzt sich zusammen aus:

Sign ( PC ):

Pointer Josef, Schmid Claudia, Cimpa Barbara, Ostheimer Heribert, Divjak-Bošnjak Tatjana

Aufgaben: Menüführung programmieren, Hash-Berechnung, Treiber einbinden

Sign (Karte):

Pham Huy Hoang, Schuster Gerhard, Shaheen Diaa, Radler Robert, Hagn Christian

Aufgaben: Signieren des Dokuments

•Einleitung

•JAVA

•Erklärung der

einzelnen

Aufgaben mit

Beispielen

•Sign(Karte)

•Fragen

Projektstudium Chipkarten SS 2001 Sign(PC+Karte)

Page 56: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

•Einleitung

•JAVA

•Erklärung der

einzelnen

Aufgaben mit

Beispielen

•Sign(Karte)

•Fragen

Warum wurde Java für ChipCard verwendet

auf der Kartenseite von G&D bereits verwendet(Applets)

moderne, zukünftige Programmiersprache

Page 57: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

•Einleitung

•JAVA

•Erklärung der

einzelnen

Aufgaben mit

Beispielen

•Sign(Karte)

•Fragen

Java Swingklassen, was ist dasJava Look and feel

Java Schichtenmodell

Java Ereignis(Event) Steuerung

Notation für Klassen, Datenelemente, Methoden

Unterschiede Java C++

Grundlagen der JAVA Programmierung

Page 58: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

Swingklassen in Java

Was ist Swíng HW unabhängig

Die am Bildschirm dargestellten Komponenten, Fensterverhalten sich auf allen Plattformen identisch

Damit eine Unabhängigkeit vom Betriebssystem erreicht wird,verwendet Java keine Methoden des Betriebssystems

Gleiches Look and Feel (Aussehen) auf jeder Plattform

Arten des Look and FeelWindowsMetalMotiv

•Einleitung

•JAVA

•Erklärung der

einzelnen

Aufgaben mit

Beispielen

•Sign(Karte)

•Fragen

Page 59: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

•Einleitung

•JAVA

•Erklärung der

einzelnen

Aufgaben mit

Beispielen

•Sign(Karte)

•Fragen

Screenshot unseres Programms im„Windows“ Look and feel

Page 60: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

•Einleitung

•JAVA

•Erklärung der

einzelnen

Aufgaben mit

Beispielen

•Sign(Karte)

•Fragen

Screenshot unseres Programms im„Metal“ Look and feel

Page 61: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

•Einleitung

•JAVA

•Erklärung der

einzelnen

Aufgaben mit

Beispielen

•Sign(Karte)

•Fragen

Screenshot unseres Programms im„Motiv“ Look and feel

Page 62: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

•Einleitung

•JAVA

•Erklärung der

einzelnen

Aufgaben mit

Beispielen

•Sign(Karte)

•Fragen

Java Swing, Schichtenmodell

Pro Layer bis zu 100 Frames

Sicherstellung daß kein Frame einen anderen verdeckt

Page 63: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

•Einleitung

•JAVA

•Erklärung der

einzelnen

Aufgaben mit

Beispielen

•Sign(Karte)

•Fragen

Ereignis(Event) Modell von Java

Trennung des Code

Code zur Ereignissteuerung

Code für das eigentliche Programm

Page 64: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

•Einleitung

•JAVA

•Erklärung der

einzelnen

Aufgaben mit

Beispielen

•Sign(Karte)

•Fragen

Notation für Klassen, Datenelemente,Methoden

Klassen: beginnend mit einem GroßbuchstabenDatenelemente: beginnend mit einem KleinbuchstabenMethoden: beginnend mit einem Kleinbuchstaben

Notation: ungarische Notation

Page 65: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

•Einleitung

•JAVA

•Erklärung der

einzelnen

Aufgaben mit

Beispielen

•Sign(Karte)

•Fragen

Unterschiede Java und C++

Java verwendet keine Zeiger

Java verwendet keine Templates

Java läßt nur einfache Vererbung zu

Java ist rein Objekt orientiert

Java läuft unabhängig vom Betriebssystem

Page 66: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

Welcome

Senden Empfangen

Menü

•Einleitung

•JAVA

•Erklärung der

einzelnen Aufgaben

mit Beispielen

•Sign(Karte)

•Fragen

Grobstruktur

Page 67: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

•Einleitung

•JAVA

•Erklärung der

einzelnen Aufgaben

mit Beispielen

•Sign(Karte)

•Fragen

Willkommensbildschirm:

Menü:

Abfrage: ist CK vorhanden

Hilfe

•Karte authentifizieren

•HilfeFehlermeldung

PIN-Gruppe: PIN-Abfrage + Fehlermeldungen

E = Exception

E

E

Page 68: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

•Einleitung

•JAVA

•Erklärung der

einzelnen Aufgaben

mit Beispielen

•Sign(Karte)

•Fragen

Menü:

Senden

Text in Textfeld eingeben (=Zu signierender Text)

Button „Versenden“

Hash-Wert berechnen und an Karte zum signieren schicken

E

Prüfung: Textfeld gefüllt

Signieren und zurückschicken (von Sign Karte)

Page 69: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

•Einleitung

•JAVA

•Erklärung der

einzelnen Aufgaben

mit Beispielen

•Sign(Karte)

•Fragen

Datei einlesen

Hash‘-Wert berechnen

Return von CK

Empfangen

Hash‘, Schlüsselnr, Signatur an CK

Code == 9000 Dok. integer Code != 9000 Dok. Nicht integer

Page 70: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

•Einleitung

•JAVA

•Erklärung der

einzelnen Aufgaben

mit Beispielen

•Sign(Karte)

•Fragen

• Warum Hash-Berechnung?

• Sicherer Hash-Algorithmus MD5

• APDU-Aufbau

• Return-Codes

Hash-Berechnung

Page 71: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

•Einleitung

•JAVA

•Erklärung der

einzelnen Aufgaben

mit Beispielen

•Sign(Karte)

•Fragen

16 * 32-Bit-Blöcke

32 Bit128-Bit-Hash

512 Bit 512 Bit

32 Bit

32 Bit

......

Funktionen

Nachricht - Eingabetext

Umwandlung

32 Bit 32 Bit 32 Bit

Hash-Berechnung

Page 72: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

Negatives:

• Klassen nicht vorhanden

• Treiber nicht einzubinden

Positives:

•Projektstudium mit renommierter Firma

•Interessante/wichtige Technologie

•Einleitung

•JAVA

•Erklärung der

einzelnen Aufgaben

mit Beispielen

•Sign(Karte)

•Fragen

Erfahrungen

Page 73: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

Probleme bei Austausch von Nachrichten

•Authentifizierung des Absenders

•Garantie der Unverfälschtheit des Dokumentes

Lösung durch die Signatur

Page 74: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

Sign Data

ChipCard Terminal

Doc | S

S = enc [Hash(doc), PrivKey] Computation of Hash(doc)

Signature S

Hash(doc), KeyID

APDU

Page 75: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

Page 76: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

z1

z0

z2

z f

q

z f

q

z f

q

q

z3

get.PrivateKey

set.Key

'ok'

'ok'

'fail'

'fail'

sign'fail'

'ok'

Sign

Page 77: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

Verify Signature

ChipCard Terminal

Doc | S

Hash* = Hash(doc) ?

Response

S, Hash(doc), KeyID

APDU

Hash* = dec(S, PubKey)

Page 78: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

Page 79: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

z4

z1

z0

q

z2

q

z f

q

z3

z f

q

get.PublicKey

set.Key

verify

'ok'

'fail'

'fail'

'signatur ok'

'ok'

'signatur NOT ok'

Verify

Page 80: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001

Ihre Fragen bitte !

Vielen Dank für Ihre Aufmerksamkeit

•Einleitung

•JAVA

•Erklärung der

einzelnen Aufgaben

mit Beispielen

•Sign(Karte)

•Fragen

Page 81: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

FH MünchenFB 07 Informatik/Mathematik

Projektstudium Chipkarten

SS 2001

Qualitätssicherung

Koerner Constanze

Fleischhut OliverBeese Stefan

Hüttlinger MartinFrers Michael

Mit freundlicher Unterstützung von

Page 82: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Qualitätssicherung

VerifikationSpezifikationen überprüfen

1. Funktionen

2. Vorrausetzungen

3. Internes Design

– Jede einzelne Stufe wird von der QS nach Fehlern und Widersprüchen durchgesehen.

Page 83: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Qualitätssicherung

ValidierenCode und Spezifikation überprüfen

1. Einfache Methoden

2. Integrationen

3. Komplexe Funktionen

4. gesamtes System

Page 84: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Qualitätssicherung

Dies ist keine vollständige Spezifikation!!!

Page 85: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Qualitätssicherung

Willkommensbildschirm:

Menü:

Abfrage: ist CK vorhanden

Hilfe

•Karte authentifizieren

•Hilfe

Fehlermeldung

PIN-Gruppe: PIN-Abfrage + Fehlermeldungen

Menü:

Senden Empfangen

Text in Textfeld eingeben (=Zu signierender Text)

Prüfung: Textfeld gefüllt

Button „Versenden“

Signieren und speichern

Logout, Daten löschen

Datei einlesen

Hash-Wert berechnen

Hash, Schlüsselnr, Signatur an CK

Return von CK

Code != 9000 Dok. Nicht integerCode == 9000 Dok. integer

Beispiel für ein gutes Ablaufdiagramm

Page 86: FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Projektmanagement Zoltan Ambach Marcus Schloegl Moritz Weidler Ilona Dietz Mit

Projektstudium Chipkarten SS 2001Qualitätssicherung

Beispiele für Testcases

Bad case

Falsche Länge bei Change_PIN

Authenticate B0 11 00 00 00 00

Verify_Pin B0 12 00 00 02 1234 00

Change_Pin B0 13 00 00 02 1234 00

Erwarteter Wert: 0x6700

Good case

Pin ändern

authenticate b0 11 00 00 00 00

pin_richtig b0 12 00 00 02 1111 00

change_pin b0 13 00 00 04 1111 2222 00

Erwateter Wert: 0x9000 Successful processing