Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Projektstudium Chipkarten

Ähnliche Präsentationen


Präsentation zum Thema: "Projektstudium Chipkarten"—  Präsentation transkript:

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

2 Überblick 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 Projektstudium Chipkarten SS 2001 Projektmanagement

3 1. Vorstellung des Projektes
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. Was genau heißt Integrität, was Authentizität? Projektstudium Chipkarten SS 2001 Projektmanagement

4 (Application Protocol Data Unit)
1.1 Kommunikation APDU (Application Protocol Data Unit) Command APDU Response APDU Command APDU CLA INS P1 P2 Lc Data field Le Response APDU Data field SW1 SW2 Projektstudium Chipkarten SS 2001 Projektmanagement

5 1.2 Versenden eines signierten Dokuments
S = dec (Hash(Doc),PrivKey) Computation of Hash(Doc) Chipcard Terminal APDU (Hash(Doc), Key#) (Signature S) Doc S Projektstudium Chipkarten SS 2001 Projektmanagement

6 1.3 Versenden eines signierten Dokuments - Zusammenfassung
Der Sender berechnet den Hashwert des Dokuments, das er verschicken will (passiert auf der Terminalseite). Dieser wird der Chipkarte über das APDU-Protokoll zusammen mit der Key Number des Private Keys des Senders übermittelt. Die Karte berechnet aus dem Hashwert und dem Private Key eine Signatur. Das mit der Signatur versehene Dokument wird daraufhin dem Empfänger zugesandt. Projektstudium Chipkarten SS 2001 Projektmanagement

7 1.3 Empfangen eines signierten Dokuments
Doc S Hash´ = enc(S,PubKey) Hash´ == Hash (Doc) ? Chipcard Terminal APDU (S, Hash(Doc), Key#) (Response) Projektstudium Chipkarten SS 2001 Projektmanagement

8 1.2 Empfangen eines signierten Dokuments - Zusammenfassung
Der Empfänger bildet auf Terminalseite den Hashwert der erhaltenen Nachricht. Dieser wird zusammen mit Signatur und Public Key Number des Senders der Chipkarte übermittelt. Die Chipkarte berechnet aus Public Key und Signatur einen Hashwert Hash´ (=>Entschlüsselung der Signatur). Wenn Hash´ gleich dem Wert Hash(Doc) ist, ist die Nachricht integer und authentisch. Projektstudium Chipkarten SS 2001 Projektmanagement

9 Gruppendarstellung Projektmanagement Authenticate / PIN (Karte)
Sign (Karte) Authenticate / PIN (Terminal) Sign (Terminal) Schlüsselverwaltung Class Applet Tester (QS) Projektstudium Chipkarten SS 2001 Projektmanagement

10 2. Verteilung der Aufgaben
Class Applet Treiber Tester APDU (Skript) Oncard Offcard Schlüssel Sign PIN Projektstudium Chipkarten SS 2001 Projektmanagement

11 3. Aufgaben des Projektmanagements
Festlegung der einzelnen Arbeitsschritte Resourcenplanung Kommunikation zwischen den Teams und zum Kunden Kontrolle der Einhaltung des Zeitplans Motivation Projektstudium Chipkarten SS 2001 Projektmanagement

12 Kommunikation mit dem Terminal
Mit freundlicher Unterstützung von FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Kommunikation mit dem Terminal Achim Sommer

13 Aufgabe des Treibers JavaCard PC Programm Interpretion der APDU
generierte APDU Response APDU Command APDU PC Programm generiert APDU‘s Übergibt die APDU‘s an den Treiber Treiber sendet APDU an die SmartCard Diese reagiert auf die APDU und sendet Antwort in Form einer APDU über an den Treiber Dieser reicht sie weiter an das PC Programm, welches die APDU interpretiert. Treiber Projektstudium Chipkarten SS 2001 Kommunikation mit dem Terminal

14 Problemstellung Treiber ist abhängig vom benutzten Card Terminal
Plattformabhängig Herstellerabhängig Lösungsansatz OpenCard Framework Problem: wenn eine karte ausgewählt wurde ist die wahl des terminals und der plattform unter Umständen auch stark eingeschränkt Der Grund dafür ist, das die API‘s und DLL‘s vom Terminal abhängig sind und das jede einzelne smart card nur mit einem sehr speziellen terminal zusammenarbeitet. Der Entwicklungsaufwand kann deshalb sehr hoch sein. Lösungsansatz: OpenCard Framework zusammnschluss mehrerer firmen u. a. G&D, ibm, sun etc. ziel plattformübergreifenden standard zu etablieren. Projektstudium Chipkarten SS 2001 Kommunikation mit dem Terminal

15 Allgemeiner Aufbau des OCF
Application Layer werden vom Anwendungs- entwickler benutzt bzw. selbst implementiert CardService Layer CardTerminal Layers: Repräsentiert ein physisches CardTerminal informiert das Framework ob eine Karte eingesteckt bzw. entfernt wurde jeder Terminal Hersteller liefert eine CardTerminalFactory, die eine gewisse Anzahl von Terminals „kennt“ und die dazugehörigen CardTerminal Klassen. CardService Layser: Stellt die Mittel zur Verfügung mit denen die Smart Card Funktionen vom Anwendungsentwickler benutzt werden können. Einige Referenzservices sind bereits im Framework implementiert. Können aber auch selbst implementiert werden. CardTerminal Layer wird i.a. vom Terminalhersteller geliefert Projektstudium Chipkarten SS 2001 Kommunikation mit dem Terminal

16 Implementierung I CardTerminal Layer von G&D CardService Layer
GDCardTerminalFactory CardService Layer Implementierung eines Services, der die APDU‘s sendet/empfängt und die APDU‘s auswertet Kapselung in einer Klasse Das CardTerminal Layer für das verwendete Terminal PCT200 wird von G&D bereitgestellt. Als CardService wird der bereits in der OCF Implementierung realisierte PassThruService verwendet: Dieser stellt eine Methode sendCommandAPDU( ... ) zur Verfügung. Diese Methode erwartet als Parameter eine CommandAPDU( ... ) und liefert eine ResponseAPDU( ... ) zurück. Diese Klassen sind der OCFBase implementiert, über sie wird auf die APDU‘s in Form von byte Array‘s zugegriffen werden. Zu diesem Zweck wurde ein Klasse Communicate implementiert die das Framework startet und eine Methode SendReceive( ... ) zur Verfügung stellt, die als Parameter ein byte Array erwartet und eine byte Array zurückliefert. Projektstudium Chipkarten SS 2001 Kommunikation mit dem Terminal

17 Implementierung II GUI Programm ck_Communicate ck_CardService
OCF Framework starten ck_Communicate APDU‘s senden empfangen auswerten Returnwert Data Feld der Response APDU ck_CardService ck_APDUData Projektstudium Chipkarten SS 2001 Kommunikation mit dem Terminal

18 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 2001 Kommunikation mit dem Terminal

19 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 Die benötigten dateien von G&D Die GDCardTerminalFactory stand erst vor 3 Wochen zur Verfügung In der OCF Dokumentation angegebener Beispielcode war nicht zum laufen zu bringen. Es wird meist auf Implementierte Referenzdienste z.B. FileAccess verwiesen. Bei der Installation und Konfiguration der Java Umgebung muss exakt darauf geachtet werden, dass bei JDK 1.3 keine classpath‘s gesetzt sind und das die entsprechenden Dateien in den richtigen Verzeichnissen stehen. Zu empfehlen ist eine Konfiguration, die lediglich das JDK 1.3 mit dem integrierten JRE benutzt. Bei installierten Entwicklungsumgebungen wie Visual Age for Java oder Microsoft Visual Java war der Code z.T. nicht übersetzbar bzw. traten Laufzeitfehler auf. Projektstudium Chipkarten SS 2001 Kommunikation mit dem Terminal

20 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

21 Aufgabenbereiche des Applets:
dekodieren der APDU Standard-Fehler abfangen Methoden ausführen Rückmeldung an PC-Seite Zugriffskontrolle Projektstudium Chipkarten SS 2001 Applet

22 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 2001 Applet

23 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 2001 Applet

24 3. Response Fehler Erfolg
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 2001 Applet

25 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 2001 Applet

26 Projektstudium Chipkarten SS 2001 Schlüsselverwaltung (Kartenseitig)
Mit freundlicher Unterstützung von FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Schlüsselverwaltung (Kartenseitig) Anita (cookie) Costantini, Matthias Nau, Dan Beldiman

27 Projektstudium Chipkarten SS 2001 Schlüsselverwaltung (Kartenseitig)
Speichern der Schlüssel auf der Karte Speichern der Schlüssel in einem von AsymmetricKey abgeleiteten Objekt: 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 Projektstudium Chipkarten SS 2001 Schlüsselverwaltung (Kartenseitig)

28 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) Projektstudium Chipkarten SS Schlüsselverwaltung (Kartenseitig)

29 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 ISOException speichert den privaten Exponenten im privaten RSA-Schlüssel. storePrivateModulus(byte[] buffer) throws ISOException speichert den privaten Modulus im privaten RSA-Schlüssel. storePublicKey(byte[] buffer) throws ISOException speichert den öffentlichen Schlüssel an die Stelle seiner ID im Public- Key-Feld. Projektstudium Chipkarten SS Schlüsselverwaltung (Kartenseitig)

30 Projektstudium Chipkarten SS 2001 Schlüsselverwaltung (Kartenseitig)
Überblick verwendeter Methoden und Klassen (Fortsetzung) getPrivateKeyID(byte[] buffer) throws ISOException gibt 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. Projektstudium Chipkarten SS Schlüsselverwaltung (Kartenseitig)

31 Projektstudium Chipkarten SS 2001 Schlüsselverwaltung (Kartenseitig)
KeySaver storePrivateExponent() Private Key ID Modulus Exponent storePrivateModulus() getPrivateKeyID() getPrivateKey() Public Keys[ ] storePublicKey() ID Modulus Exponent 1 getPublicKey() ... n MN Projektstudium Chipkarten SS Schlüsselverwaltung (Kartenseitig)

32 Projektstudium Chipkarten Kathrin Baumgartner, Anne Cesarz, Kurt Beer
Mit freundlicher Unterstützung von FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Schlüsselverwaltung PC seitig Kathrin Baumgartner, Anne Cesarz, Kurt Beer

33 Projektstudium Chipkarten SS 2001 Schlü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) Projektstudium Chipkarten SS 2001 Schlüsselverwaltung - PC seitig

34 Projektstudium Chipkarten SS 2001 Schlüsselverwaltung - PC seitig
ID, modulus, exponent Parts.txt exponent modulus ID generate key pair public key private write to file Prepare APDU command Priv key modulus 0xB0 23 id 0 modulus Le Priv key exponent 0xB0 24 id 0 exponent Le send to card Pub key mod + exp 0xB0 25 id 0 modulus Le Projektstudium Chipkarten SS Schlüsselverwaltung - PC seitig

35 Projektstudium Chipkarten SS 2001 Schlüsselverwaltung - PC seitig
Graphische Oberfläche: Projektstudium Chipkarten SS Schlüsselverwaltung - PC seitig

36 Projektstudium Chipkarten SS 2001 Schlüsselverwaltung - PC seitig
Exception handling: Der User wird über einen auftretenden Fehler mit Hilfe eines modalen Pop-Ups informiert. Projektstudium Chipkarten SS Schlüsselverwaltung - PC seitig

37 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. Projektstudium Chipkarten SS Schlüsselverwaltung - PC seitig

38 Projektstudium Chipkarten
Mit freundlicher Unterstützung von FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Authenticate & PIN Martin Leidel, Andreas Dreyer, Peter Knöferl, Christoph Mayer, Tobias Meißner, Marvin Jakwerth

39 Projektstudium Chipkarten SS 2001 Authenticate & PIN
Gliederung Gruppe PIN Methoden Fazit Gliederung Die Gruppe Authenticate & PIN Unsere Methoden Was uns am Projekt Chipkarten gefallen hat. Probleme / Verbesserungsmöglichkeiten Projektstudium Chipkarten SS 2001 Authenticate & PIN

40 Projektstudium Chipkarten SS 2001 Authenticate & PIN
Gruppenübersicht Gliederung Gruppe PIN L Übersicht L Aufgaben Methoden Fazit Oncard Offcard Sign PIN Schlüssel Class Applet Treiber Tester APDU Für was wir verantwortlich sind / was zu beachten ist Auf die Schnittstellen zu anderen Gruppen eingehen Überleitung mittels Erläuterung unserer Aufgabe Projektstudium Chipkarten SS 2001 Authenticate & PIN

41 Projektstudium Chipkarten SS 2001 Authenticate & PIN
Gliederung Gruppe PIN L Übersicht L Aufgaben Methoden Fazit Aufgaben der Gruppe Authenticate & PIN Laden der PIN auf die Karte Verifizieren der PIN Wechselseitige Authentifizierung zwischen Terminal und Chipkarte Evtl. Änderung der PIN Erklärung der einzelnen Punkte: z.B. was versteht man unter verify Überleitung: daraus haben sich folgende Methoden ergeben Evtl. Block/Unblock der Karte Projektstudium Chipkarten SS 2001 Authenticate & PIN

42 Projektstudium Chipkarten SS 2001 Authenticate & PIN
Gliederung Gruppe PIN Methoden L Übersicht L VerifyPIN L ChangePIN Fazit Methodenübersicht public void MutualAuthenticate(byte[] buffer) public void VerifyPIN(byte[] buffer) public void ChangePIN(byte[] buffer) public void Unblock(byte[] buffer) etwas über die Klasse, den Klassennamen sagen Die einzelnen Methoden vorstellen Projektstudium Chipkarten SS 2001 Authenticate & PIN

43 Projektstudium Chipkarten SS 2001 Authenticate & PIN
VerifyPIN() Gliederung Gruppe PIN Methoden L Übersicht L VerifyPIN L ChangePIN Fazit Funktion wird aufgerufen Karte gesperrt? Response APDU 0x1202 ja FBZ--; nein Karte sperren nein FBZ>0 PIN prüfen ja Response APDU 0x9000 Richtig FBZ = 3; ja Liest die PIN aus der APDU aus und überprüft deren Länge. Bei korrekter Länge wird die Methode CheckPIN aufgerufen um die PIN mit dem Wert auf der Karte zu vergleichen. Verwendete Klassen und Methoden: Die Klasse OwnerPin repräsentiert ein Objekt PIN zu dem der Besitzer vollen Zugriff hat. Sie bietet alle Möglickeiten die für den Umgang mit Pins nötig sind. Check: Vergleicht PIN, Reset des Felbedienungszählers ggf. Fehlbedienungszähler dekrementieren bei 0 PIN sperren getTriesRemaining: liefert die Anzahl der noch möglichen Versuche bis die PIN gesperrt wird Response APDU 0x1201 nein Projektstudium Chipkarten SS 2001 Authenticate & PIN

44 Projektstudium Chipkarten SS 2001 Authenticate & PIN
Gliederung Gruppe PIN Methoden L Übersicht L VerifyPIN L ChangePIN Fazit Error Codes und APDU der Methode private VerifyPIN() etwas über die APDU und die Errorcodes sagen, warum wieviel Bytes z.B. bei einer PIN benötigt wird Projektstudium Chipkarten SS 2001 Authenticate & PIN

45 Projektstudium Chipkarten SS 2001 Authenticate & PIN
ChangePIN Gliederung Gruppe PIN Methoden L Übersicht L VerifyPIN L ChangePIN Fazit Aufruf der Funktion ChangePIN Aufruf VerifyPIN PIN korrekt? Eingabe alte PIN Fehlercode Falsche PIN Nein Neue PIN korrekt? Eingabe neue PIN Ja Fehlercode Nein Speicher der neuen PIN Ja Liest die alte und die neue PIN aus der APDU und überprüft deren Länge. Falls die Längen korrekt sind wird die Methode CheckPIN aufgerufen um die alte mit der auf der Karte gespeicherten PIN zu vergleichen. Anschließend wird die neue PIN auf die Karte geschrieben. Verwendete Klasse und Methoden: Update: Neuer PIN wird auf der Karte gespeichert. Reset des FBZ Ceck, getTriesRemaining: siehe VerifyPIN Returncode 9000 Projektstudium Chipkarten SS 2001 Authenticate & PIN

46 Projektstudium Chipkarten SS 2001 Authenticate & PIN
Gliederung Gruppe PIN Methoden L Übersicht L VerifyPIN L ChangePIN Fazit Error Codes und APDU der Methode private ChangePIN() etwas über die APDU und die Errorcodes sagen, warum wieviel Bytes z.B. bei einer PIN benötigt wird Projektstudium Chipkarten SS 2001 Authenticate & PIN

47 Projektstudium Chipkarten SS 2001 Authenticate & PIN
Was uns am Projekt Chipkarten gefallen hat: Gliederung Gruppe PIN Methoden Fazit Interessantes Thema Aufteilung von Theorie und Praxis lockere Atmosphäre im Team Aufgaben wurden größtenteils bewältigt Interessantes Thema, guter Einblick in Chipkarten Programmierung, gute Aufteilung von Theorie und Praxis, lockere Atmosphäre im Team, Aufgaben wurden größtenteils bewältigt; Projektstudium Chipkarten SS 2001 Authenticate & PIN

48 Projektstudium Chipkarten SS 2001 Authenticate & PIN
Probleme die während des Projekts aufgetreten sind: Gliederung Gruppe PIN Methoden Fazit Abhängigkeiten zu anderen Gruppen Absprache mit anderen Gruppen schwierig Verbesserungsmöglichkeiten: Alle Dateien an zentralem Ort speichern Abhängigkeiten zu anderen Gruppen Testen erst am letzten Tag, Absprache mit anderen Gruppen schwierig, zu wenig Kommunikation einheitlicher Pfad am besten von Anfang an, alle Beispiel-applets und Klassen von Anfang an allen Gruppen zur Verfügung stellen Zeitplan nicht eingehalten oder kontrolliert Projektstudium Chipkarten SS 2001 Authenticate & PIN

49 Projektstudium Chipkarten SS 2001 Authenticate & PIN
Gliederung Gruppe PIN Methoden Fazit Vielen Dank für die Aufmerksamkeit! Projektstudium Chipkarten SS 2001 Authenticate & PIN

50 Projektstudium Chipkarten Authenticate und PIN(PC)
Mit freundlicher Unterstützung von FH München FB 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

51 2. Schritt: Eingabe der PIN und formale Prüfung auf PC-Seite
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) b) Prüfung nicht erfolgreich: Neueingabe (falls 3-mal Falscheingabe wird Karte blockiert) 4. Schritt: Änderung der PIN (Funktion ChangePIN) Projektstudium Chipkarten SS 2001 Authenticate und PIN (PC)

52 Projektstudium Chipkarten SS 2001 Titel
Mutual Authentification Funktionsaufruf mutualAuth() Erstellen APDU und senden an Karte Terminal nicht O.K. Programm-abbruch Response 0x1102 Karte nicht O.K. Korrekte Authentification Programm-abbruch Response 0x1101 Successfully Processed Response 0x9000 Projektstudium Chipkarten SS 2001 Titel

53 sendPIN Falsches PIN-Format Programm-abbruch Response intern
Funktionsaufruf sendPIN( ) Richtiges PIN-Format Programm-abbruch Response 0x1201 Erstellen / Senden APDU „Verify PIN“ Programmabbruch Response 0x1202 Falsche PIN Karte gesperrt Richtige PIN Successfully Processed Response 0x9000 Projektstudium Chipkarten SS 2001 Authenticate und PIN (PC)

54 ChangePIN Funktions-aufruf changePIN( ) Neue PIN- unzulässiger Wert
Falsche PIN Karte gesperrt PIN geändert Programm-abbruch Response 0x1303 Programmabbruch Response 0x1301 Erstellen/Senden APDU mit alter/neuer PIN Successfully Processed Response 0x9000 Programmabbruch Response 0x1302 Projektstudium Chipkarten SS 2001 Authenticate und PIN (PC)

55 Projektstudium Chipkarten SS 2001 Authenticate und PIN (PC)

56 Projektstudium Chipkarten Gruppe Sign(PC+Karte)
Mit freundlicher Unterstützung von FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Gruppe Sign(PC+Karte)

57 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 Projektstudium Chipkarten SS Sign(PC+Karte)

58 Unser Gruppe setzt sich zusammen aus:
Einleitung JAVA Erklärung der einzelnen Aufgaben mit Beispielen Sign(Karte) Fragen 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 Projektstudium Chipkarten SS Sign(PC+Karte)

59 Projektstudium Chipkarten SS 2001
Einleitung JAVA Erklärung der einzelnen Aufgaben mit Beispielen Sign(Karte) Fragen Projektstudium Chipkarten SS 2001

60 Projektstudium Chipkarten SS 2001
Einleitung JAVA Erklärung der einzelnen Aufgaben mit Beispielen Sign(Karte) Fragen Grundlagen der JAVA Programmierung Projektstudium Chipkarten SS 2001

61 Projektstudium Chipkarten SS 2001
Einleitung JAVA Erklärung der einzelnen Aufgaben mit Beispielen Sign(Karte) Fragen Projektstudium Chipkarten SS 2001

62 Projektstudium Chipkarten SS 2001
Einleitung JAVA Erklärung der einzelnen Aufgaben mit Beispielen Sign(Karte) Fragen Projektstudium Chipkarten SS 2001

63 Projektstudium Chipkarten SS 2001
Einleitung JAVA Erklärung der einzelnen Aufgaben mit Beispielen Sign(Karte) Fragen Projektstudium Chipkarten SS 2001

64 Projektstudium Chipkarten SS 2001
Einleitung JAVA Erklärung der einzelnen Aufgaben mit Beispielen Sign(Karte) Fragen Projektstudium Chipkarten SS 2001

65 Projektstudium Chipkarten SS 2001
Einleitung JAVA Erklärung der einzelnen Aufgaben mit Beispielen Sign(Karte) Fragen Projektstudium Chipkarten SS 2001

66 Projektstudium Chipkarten SS 2001
Einleitung JAVA Erklärung der einzelnen Aufgaben mit Beispielen Sign(Karte) Fragen Projektstudium Chipkarten SS 2001

67 Projektstudium Chipkarten SS 2001
Einleitung JAVA Erklärung der einzelnen Aufgaben mit Beispielen Sign(Karte) Fragen Projektstudium Chipkarten SS 2001

68 Projektstudium Chipkarten SS 2001
Einleitung JAVA Erklärung der einzelnen Aufgaben mit Beispielen Sign(Karte) Fragen Projektstudium Chipkarten SS 2001

69 Projektstudium Chipkarten SS 2001
Einleitung JAVA Erklärung der einzelnen Aufgaben mit Beispielen Sign(Karte) Fragen Grobstruktur Welcome Senden Empfangen Menü Projektstudium Chipkarten SS 2001

70 Projektstudium Chipkarten SS 2001
Einleitung JAVA Erklärung der einzelnen Aufgaben mit Beispielen Sign(Karte) Fragen Willkommensbildschirm: Menü: E Hilfe Fehlermeldung Hilfe Karte authentifizieren E E = Exception Abfrage: ist CK vorhanden PIN-Gruppe: PIN-Abfrage + Fehlermeldungen Projektstudium Chipkarten SS 2001

71 Projektstudium Chipkarten SS 2001
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) Einleitung JAVA Erklärung der einzelnen Aufgaben mit Beispielen Sign(Karte) Fragen Projektstudium Chipkarten SS 2001

72 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 Projektstudium Chipkarten SS 2001

73 Projektstudium Chipkarten SS 2001
Einleitung JAVA Erklärung der einzelnen Aufgaben mit Beispielen Sign(Karte) Fragen Hash-Berechnung Warum Hash-Berechnung? Sicherer Hash-Algorithmus MD5 APDU-Aufbau Return-Codes Projektstudium Chipkarten SS 2001

74 Projektstudium Chipkarten SS 2001
Einleitung JAVA Erklärung der einzelnen Aufgaben mit Beispielen Sign(Karte) Fragen Hash-Berechnung 16 * 32-Bit- Blöcke 32 Bit 128-Bit-Hash 512 Bit ... Funktionen Nachricht - Eingabetext Umwandlung Projektstudium Chipkarten SS 2001

75 Projektstudium Chipkarten SS 2001
Erfahrungen Einleitung JAVA Erklärung der einzelnen Aufgaben mit Beispielen Sign(Karte) Fragen Negatives: Klassen nicht vorhanden Treiber nicht einzubinden Positives: Projektstudium mit renommierter Firma Interessante/wichtige Technologie Projektstudium Chipkarten SS 2001

76 Projektstudium Chipkarten SS 2001
Probleme bei Austausch von Nachrichten Authentifizierung des Absenders Garantie der Unverfälschtheit des Dokumentes Lösung durch die Signatur Projektstudium Chipkarten SS 2001

77 Projektstudium Chipkarten SS 2001

78 Projektstudium Chipkarten SS 2001

79 Projektstudium Chipkarten SS 2001
Sign Projektstudium Chipkarten SS 2001

80 Projektstudium Chipkarten SS 2001

81 Projektstudium Chipkarten SS 2001

82 Projektstudium Chipkarten SS 2001
Verify Projektstudium Chipkarten SS 2001

83 Projektstudium Chipkarten SS 2001
Einleitung JAVA Erklärung der einzelnen Aufgaben mit Beispielen Sign(Karte) Fragen Vielen Dank für Ihre Aufmerksamkeit Ihre Fragen bitte ! Projektstudium Chipkarten SS 2001

84 Projektstudium Chipkarten
Mit freundlicher Unterstützung von FH München FB 07 Informatik/Mathematik Projektstudium Chipkarten SS 2001 Qualitätssicherung Koerner Constanze Fleischhut Oliver Beese Stefan Hüttlinger Martin Frers Michael

85 Verifikation Spezifikationen überprüfen
Funktionen Vorrausetzungen Internes Design Jede einzelne Stufe wird von der QS nach Fehlern und Widersprüchen durchgesehen. Projektstudium Chipkarten SS 2001 Qualitätssicherung

86 Validieren Code und Spezifikation überprüfen
Einfache Methoden Integrationen Komplexe Funktionen gesamtes System Projektstudium Chipkarten SS 2001 Qualitätssicherung

87 Dies ist keine vollständige Spezifikation!!!
Projektstudium Chipkarten SS 2001 Qualitätssicherung

88 Beispiel für ein gutes Ablaufdiagramm
Willkommensbildschirm: Menü: Karte authentifizieren Hilfe Hilfe Fehlermeldung Abfrage: ist CK vorhanden PIN-Gruppe: PIN-Abfrage + Fehlermeldungen Menü: Senden Empfangen Text in Textfeld eingeben (=Zu signierender Text) Datei einlesen Button „Versenden“ Hash-Wert berechnen Prüfung: Textfeld gefüllt Hash, Schlüsselnr, Signatur an CK Signieren und speichern Return von CK Logout, Daten löschen Code == 9000 Dok. integer Code != 9000 Dok. Nicht integer Projektstudium Chipkarten SS 2001 Qualitätssicherung

89 Beispiele für Testcases
Bad case Falsche Länge bei Change_PIN Authenticate B Verify_Pin B Change_Pin B Erwarteter Wert: 0x6700 Good case Pin ändern authenticate b pin_richtig b change_pin b Erwateter Wert: 0x9000 Successful processing Projektstudium Chipkarten SS 2001 Qualitätssicherung


Herunterladen ppt "Projektstudium Chipkarten"

Ähnliche Präsentationen


Google-Anzeigen