PowerPoint-Präsentation - Fakultät für Informatik und Mathematik

January 19, 2018 | Author: Anonymous | Category: Ingenieurwissenschaften, Informatik, Java
Share Embed Donate


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

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF