PowerPoint-Präsentation - Fakultät für Informatik und Mathematik
Short Description
Download PowerPoint-Präsentation - Fakultät für Informatik und Mathematik...
Description
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
Ü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
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.
Projektstudium Chipkarten SS 2001 Projektmanagement
1.1 Kommunikation APDU (Application Protocol Data Unit) Command APDU
Response APDU
Command APDU CLA
INS
P1
P2
Lc
Data field
Projektstudium Chipkarten SS 2001 Projektmanagement
Response APDU Le
Data field
SW1
SW2
1.2 Versenden eines signierten Dokuments S = dec (Hash(Doc),PrivKey)
Computation of Hash(Doc)
Chipcard
Terminal APDU (Hash(Doc), Key#)
(Signature S) Doc
Projektstudium Chipkarten SS 2001 Projektmanagement
S
1.3 Empfangen eines signierten Dokuments
Doc
Hash´ = enc(S,PubKey) Hash´ == Hash (Doc) ?
Chipcard
Terminal APDU (S, Hash(Doc), Key#)
(Response)
Projektstudium Chipkarten SS 2001 Projektmanagement
S
Gruppendarstellung • Projektmanagement • Authenticate / PIN (Karte) • Sign (Karte) • Authenticate / PIN (Terminal) • Sign (Terminal) • Schlüsselverwaltung • Class Applet • Tester (QS) Projektstudium Chipkarten SS 2001 Projektmanagement
2. Verteilung der Aufgaben Oncard
Offcard
Sign PIN Schlüssel
Sign PIN Schlüssel
Class Applet
APDU
Treiber Tester
Sm@rtCafe (Skript) Projektstudium Chipkarten SS 2001 Projektmanagement
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
Mit freundlicher Unterstützung von
FH München FB 07 Informatik/Mathematik
Projektstudium Chipkarten SS 2001
Kommunikation mit dem Terminal
Achim Sommer
Aufgabe des Treibers JavaCard
Response APDU
PC Programm
Command APDU
generierte APDU
Treiber
Projektstudium Chipkarten SS 2001 Kommunikation mit dem Terminal
Interpretion der APDU
Problemstellung • Treiber ist abhängig vom benutzten Card Terminal • Problem – Plattformabhängig – Herstellerabhängig
• Lösungsansatz OpenCard Framework Projektstudium Chipkarten SS 2001 Kommunikation mit dem Terminal
Allgemeiner Aufbau des OCF Application Layer
CardService Layer
CardTerminal Layer Projektstudium Chipkarten SS 2001 Kommunikation mit dem Terminal
werden vom Anwendungsentwickler benutzt bzw. selbst implementiert
wird i.a. vom Terminalhersteller geliefert
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 2001 Kommunikation mit dem Terminal
Implementierung II GUI Programm
OCF Framework starten
APDU‘s senden empfangen auswerten
ck_Communicate
ck_CardService
Projektstudium Chipkarten SS 2001 Kommunikation mit dem Terminal
ck_APDUData
Returnwert Data Feld der Response APDU
Voraussetzungen • JDK 1.3 inkl. JRE • BaseOCF mit – base-core.jar – base-opt.jar
(APDU Klassen) (ck_CardService)
• Java Communication API
(betriebssystemabhängig für Windows, Linux, Sun verfügbar)
Projektstudium Chipkarten SS 2001 Kommunikation mit dem Terminal
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 2001 Kommunikation mit dem Terminal
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
Aufgabenbereiche des Applets: • dekodieren der APDU • Standard-Fehler abfangen • Methoden ausführen • Rückmeldung an PC-Seite • Zugriffskontrolle
Projektstudium Chipkarten SS 2001 Applet
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
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
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 2001 Applet
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
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
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
Projektstudium Chipkarten SS 2001 Schlüsselverwaltung (Kartenseitig)
• Public Key – Vektor mit 256 Zellen – jede Zelle enthält einen „Public Key“ – Instanzen der Klasse RSA_PublicKey – seine ID entspricht der Zellennummer
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 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 PublicKey-Feld.
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 2001 Schlüsselverwaltung (Kartenseitig)
KeySaver storePrivateExponent() storePrivateModulus()
Private Key ID
Modulus
Exponent
getPrivateKeyID() getPrivateKey() storePublicKey() getPublicKey()
ID 1
Public Keys[ ] Modulus Exponent
... n MN
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 PC seitig Kathrin Baumgartner, Anne Cesarz, Kurt Beer
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
generate key pair public key
ID
modulus
private key
exponent
modulus
exponent
write to file
Parts.txt
Prepare APDU command Priv key modulus
Prepare APDU command Priv key exponent
0xB0 23 id 0 modulus Le
0xB0 24 id 0 exponent Le
ID, modulus, exponent .........................
send to card
Prepare APDU command Pub key mod + exp 0xB0 25 id 0 modulus Le
Projektstudium Chipkarten SS 2001 Schlüsselverwaltung - PC seitig
send to card
Graphische Oberfläche:
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 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 2001 Schlüsselverwaltung - PC seitig
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
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
Gliederung Gruppe PIN L Übersicht L Aufgaben Methoden Fazit
Gruppenübersicht
Oncard
Sign
Offcard
PIN Schlüssel
Sign
PIN Schlüssel
Class Applet
APDU Treiber
Tester
Projektstudium Chipkarten SS 2001 Authenticate & PIN
Tester
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
Evtl. Block/Unblock der Karte
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)
Projektstudium Chipkarten SS 2001 Authenticate & PIN
Gliederung Gruppe PIN Methoden L Übersicht L VerifyPIN L ChangePIN Fazit
VerifyPIN() Funktion wird aufgerufen Karte gesperrt?
ja
Response APDU 0x1202
nein FBZ--; nein FBZ>0
Karte sperren
ja PIN prüfen Richtig
ja
FBZ = 3;
nein
Response APDU 0x1201 Projektstudium Chipkarten SS 2001 Authenticate & PIN
Response APDU 0x9000
Gliederung Gruppe PIN Methoden L Übersicht L VerifyPIN L ChangePIN Fazit
Error Codes und APDU der Methode private VerifyPIN()
Projektstudium Chipkarten SS 2001 Authenticate & PIN
ChangePIN
Gliederung Gruppe PIN Methoden L Übersicht L VerifyPIN L ChangePIN Fazit
Aufruf der Funktion ChangePIN
Aufruf VerifyPIN
Nein Eingabe alte PIN
Fehlercode Falsche PIN
PIN korrekt?
Ja Nein
Eingabe neue PIN
Neue PIN korrekt? Ja Speicher der neuen PIN Returncode 9000
Projektstudium Chipkarten SS 2001 Authenticate & PIN
Fehlercode
Gliederung Gruppe PIN Methoden L Übersicht L VerifyPIN L ChangePIN Fazit
Error Codes und APDU der Methode private ChangePIN()
Projektstudium Chipkarten SS 2001 Authenticate & PIN
Gliederung Gruppe PIN Methoden Fazit
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
Projektstudium Chipkarten SS 2001 Authenticate & PIN
Gliederung Gruppe PIN Methoden Fazit
Probleme die während des Projekts aufgetreten sind: Abhängigkeiten zu anderen Gruppen Absprache mit anderen Gruppen schwierig
Verbesserungsmöglichkeiten: Alle Dateien an zentralem Ort speichern
Projektstudium Chipkarten SS 2001 Authenticate & PIN
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
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)
Mutual Authentification Funktionsaufruf mutualAuth() Erstellen APDU und senden an Karte
Terminal nicht O.K.
Karte nicht O.K.
Programmabbruch
Korrekte Authentification
Response 0x1101 Successfully Processed Response 0x9000
Projektstudium Chipkarten SS 2001 Titel
Programm -abbruch Response 0x1102
sendPIN Falsches PINFormat
Funktionsaufruf sendPIN( )
Programmabbruch Response intern
Richtiges PIN-Format
Programmabbruch
Falsche PIN
Response 0x1201
Erstellen / Senden APDU „Verify PIN“ Richtige PIN Successfully Processed Response 0x9000
Projektstudium Chipkarten SS 2001 Authenticate und PIN (PC)
Karte gesperrt
Programmab bruch Response 0x1202
ChangePIN Funktionsaufruf changePIN( )
Falsche PIN PIN geändert
Programmabbruch
Neue PINunzulässiger Wert Karte gesperrt
Response 0x1301
Programmabbruch Response 0x1303
Erstellen/Senden APDU mit alter/neuer PIN Successfully
Programmabbruch
Processed
Response 0x1302
Response 0x9000
Projektstudium Chipkarten SS 2001 Authenticate und PIN (PC)
Projektstudium Chipkarten SS 2001 Authenticate und PIN (PC)
Mit freundlicher Unterstützung von
FH München FB 07 Informatik/Mathematik
Projektstudium Chipkarten SS 2001
Gruppe 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 2001 Sign(PC+Karte)
•Einleitung
Unser Gruppe setzt sich zusammen aus:
•JAVA •Erklärung der
Sign ( PC ):
einzelnen Aufgaben
Pointer Josef, Schmid Claudia, Cimpa Barbara, Ostheimer Heribert, Divjak-Bošnjak Tatjana
mit Beispielen •Sign(Karte)
•Fragen
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 2001 Sign(PC+Karte)
•Einleitung
Warum wurde Java für ChipCard verwendet
•JAVA •Erklärung der einzelnen Aufgaben
auf der Kartenseite von G&D bereits verwendet(Applets) moderne, zukünftige Programmiersprache
mit Beispielen •Sign(Karte)
•Fragen
Projektstudium Chipkarten SS 2001
•Einleitung
Grundlagen der JAVA Programmierung
•JAVA •Erklärung der einzelnen Aufgaben
Java Swingklassen, was ist das Java Look and feel Java Schichtenmodell
mit Beispielen
Java Ereignis(Event) Steuerung •Sign(Karte)
Notation für Klassen, Datenelemente, Methoden •Fragen
Unterschiede Java C++
Projektstudium Chipkarten SS 2001
Swingklassen in Java
•Einleitung •JAVA •Erklärung der einzelnen Aufgaben mit Beispielen •Sign(Karte)
•Fragen
Was ist Swíng HW unabhängig Die am Bildschirm dargestellten Komponenten, Fenster verhalten 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 Feel Windows Metal Motiv
Projektstudium Chipkarten SS 2001
•Einleitung
Screenshot unseres Programms im „Windows“ Look and feel
•JAVA •Erklärung der einzelnen Aufgaben mit Beispielen •Sign(Karte)
•Fragen
Projektstudium Chipkarten SS 2001
•Einleitung
Screenshot unseres Programms im „Metal“ Look and feel
•JAVA •Erklärung der einzelnen Aufgaben mit Beispielen •Sign(Karte)
•Fragen
Projektstudium Chipkarten SS 2001
•Einleitung
Screenshot unseres Programms im „Motiv“ Look and feel
•JAVA •Erklärung der einzelnen Aufgaben mit Beispielen •Sign(Karte)
•Fragen
Projektstudium Chipkarten SS 2001
•Einleitung
Java Swing, Schichtenmodell
•JAVA
Pro Layer bis zu 100 Frames
•Erklärung der
Sicherstellung daß kein Frame einen anderen verdeckt
einzelnen Aufgaben mit Beispielen •Sign(Karte)
•Fragen
Projektstudium Chipkarten SS 2001
•Einleitung •JAVA •Erklärung der einzelnen Aufgaben
Ereignis(Event) Modell von Java Trennung des Code Code zur Ereignissteuerung
mit Beispielen
Code für das eigentliche Programm •Sign(Karte)
•Fragen
Projektstudium Chipkarten SS 2001
•Einleitung •JAVA
Notation für Klassen, Datenelemente, Methoden
•Erklärung der einzelnen Aufgaben mit Beispielen •Sign(Karte)
Klassen: Datenelemente: Methoden: Notation:
beginnend mit einem Großbuchstaben beginnend mit einem Kleinbuchstaben beginnend mit einem Kleinbuchstaben
ungarische Notation
•Fragen
Projektstudium Chipkarten SS 2001
•Einleitung
Unterschiede Java und C++ •JAVA •Erklärung der
Java verwendet keine Zeiger
einzelnen Aufgaben mit Beispielen •Sign(Karte)
Java verwendet keine Templates Java läßt nur einfache Vererbung zu Java ist rein Objekt orientiert
•Fragen
Java läuft unabhängig vom Betriebssystem
Projektstudium Chipkarten SS 2001
Grobstruktur
•Einleitung •JAVA •Erklärung der
Welcome
einzelnen Aufgaben mit Beispielen •Sign(Karte)
Menü
•Fragen
Senden
Projektstudium Chipkarten SS 2001
Empfangen
•Einleitung •JAVA
Willkommens bildschirm:
E
Menü: •Erklärung der
•Hilfe
Fehlermeldung
einzelnen Aufgaben mit Beispielen
E
•Karte authentifizier en E
•Sign(Karte)
•Fragen
Abfrage: ist CK vorhanden PINGruppe: PIN-Abfrage + Fehlermeldu ngen
Projektstudium Chipkarten SS 2001
Hilfe
= Exception
Menü: •Einleitung
Senden •JAVA •Erklärung der
Text in Textfeld eingeben (=Zu signierender Text)
einzelnen Aufgaben mit Beispielen
E
Button „Versenden“
•Sign(Karte)
Prüfung: Textfeld gefüllt •Fragen
Hash-Wert berechnen und an Karte zum signieren schicken
Signieren und zurückschicken (von Sign Karte)
Projektstudium Chipkarten SS 2001
•Einleitung
Empfangen
•JAVA
Datei einlesen
•Erklärung der einzelnen Aufgaben
Hash‘-Wert berechnen
mit Beispielen •Sign(Karte)
Hash‘, Schlüsselnr, Signatur an CK
•Fragen
Return von CK
Code == 9000 Dok. integer
Projektstudium Chipkarten SS 2001
Code != 9000 Dok. Nicht integer
•Einleitung
Hash-Berechnung
•JAVA •Erklärung der einzelnen Aufgaben
• Warum Hash-Berechnung?
mit Beispielen
• Sicherer Hash-Algorithmus MD5
•Sign(Karte)
• APDU-Aufbau • Return-Codes
•Fragen
Projektstudium Chipkarten SS 2001
•Einleitung
Hash-Berechnung
•JAVA •Erklärung der
Nachricht - Eingabetext
einzelnen Aufgaben
Umwandlung mit Beispielen •Sign(Karte)
•Fragen
32 Bit 512 Bit
32 Bit
512 Bit ...
16 * 32-BitBlöcke
...
Funktionen 32 Bit
Projektstudium Chipkarten SS 2001
32 Bit
32 Bit
32 Bit
128-BitHash
Erfahrungen
•Einleitung •JAVA •Erklärung der einzelnen Aufgaben
Negatives:
• Klassen nicht vorhanden • Treiber nicht einzubinden
mit Beispielen •Sign(Karte)
•Fragen
Positives: •Projektstudium mit renommierter Firma •Interessante/wichtige Technologie
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
Sign Data S = enc [Hash(doc), PrivKey]
Computation of Hash(doc)
ChipCard
Terminal Hash(doc), KeyID APDU Signature S
Doc | S
Projektstudium Chipkarten SS 2001
Projektstudium Chipkarten SS 2001
Sign zf
'fail'
get.PrivateKey z0
q
'ok' set.Key
'fail'
z1
q
'ok'
zf
'fail'
sign z2
q
'ok'
z3 q
Projektstudium Chipkarten SS 2001
zf
Verify Signature Doc | S Hash* = dec(S, PubKey) Hash* = Hash(doc) ?
ChipCard
Terminal S, Hash(doc), KeyID APDU Response
Projektstudium Chipkarten SS 2001
Projektstudium Chipkarten SS 2001
Verify get.PublicKey
'fail' zf
z0
q
'ok' set.Key
'fail'
z1
zf q
'ok'
z2
verify
'signatur ok'
'signatur NOT ok'
z3
z4 q
Projektstudium Chipkarten SS 2001
q
•Einleitung •JAVA •Erklärung der
Vielen Dank für Ihre Aufmerksamkeit
einzelnen Aufgaben mit Beispielen •Sign(Karte)
•Fragen
Ihre Fragen bitte !
Projektstudium Chipkarten SS 2001
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
Verifikation Spezifikationen überprüfen 1. Funktionen 2. Vorrausetzungen 3. Internes Design – Jede einzelne Stufe wird von der QS nach Fehlern und Widersprüchen durchgesehen. Projektstudium Chipkarten SS 2001 Qualitätssicherung
Validieren Code und Spezifikation überprüfen
1. 2. 3. 4.
Einfache Methoden Integrationen Komplexe Funktionen gesamtes System
Projektstudium Chipkarten SS 2001 Qualitätssicherung
Dies ist keine vollständige Spezifikation!!!
Projektstudium Chipkarten SS 2001 Qualitätssicherung
Willkommensbildschirm:
Beispiel für ein gutes Ablaufdiagramm
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
Projektstudium Chipkarten SS 2001 Qualitätssicherung
Code != 9000 Dok. Nicht integer
Beispiele für Testcases Bad case
Good case
Falsche Länge bei Change_PIN
Pin ändern
Authenticate B0 11 00 00 00 00
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
Projektstudium Chipkarten SS 2001 Qualitätssicherung
pin_richtig b0 12 00 00 02 1111 00 change_pin b0 13 00 00 04 1111 2222 00 Erwateter Wert: 0x9000 Successful processing
View more...
Comments