410 likes | 561 Views
Anwendungsentwicklung Chipkarten SS99. Geldbörse Markus Zinner Michael Raab Metin Oduncu. Übersicht. 1. Die Geldkarte 2. Euro-Umrechnung 3. Sicherheitsaspekte 4. Geldbörsen-Applikation 5. Stand der Implementierung / Ausblick 6. Zusammenfassung. 1. Die Geldkarte.
E N D
Anwendungsentwicklung Chipkarten SS99 Geldbörse Markus Zinner Michael Raab Metin Oduncu
Übersicht 1. Die Geldkarte 2. Euro-Umrechnung 3. Sicherheitsaspekte 4. Geldbörsen-Applikation 5. Stand der Implementierung / Ausblick 6. Zusammenfassung Anwendungsentwicklung Chipkarten SS99 - Geldbörse
1. Die Geldkarte 1.1 Was ist die Geldkarte ? 1.2 Wie funktioniert die Geldkarte 1.3 Wie kann man das Kartenguthaben abfragen ? 1.4 Vorteile gegenüber Bargeld 1.5 Wieviel Geld kann auf die Geldkarte geladen werden ? 1.6 Akzeptanz der GeldKarte 1.7 Was kostet das Bezahlen / Verlust ? 1.8 Nutzen der GeldKarte 1.8.1 Für den Handel 1.8.2 Für die Kunden 1.9 Ausblick und künftige Möglichkeiten Anwendungsentwicklung Chipkarten SS99 - Geldbörse
1.1 Was ist die Geldkarte ? • Ein Zahlungssystem, das Bargeld für kleinere Zahlungen (unter 50 DM) überflüssig macht • Ein Microchip übernimmt die Funktion der sog. „elektronischen Geldbörse“. Er ist auf der EC-Karte und auf Bank-Cards enthalten • Viele Funktionen sind auf einer Karte enthalten Anwendungsentwicklung Chipkarten SS99 - Geldbörse
1.2 Wie funktioniert die Geldkarte • Karte mit Guthaben laden (Terminal) • Zum Bezahlen wird die Karte einfach in das Bezahlterminal beim Händler geschoben • Der zu entrichtende Betrag wird im Display angezeigt • Bestätigungstaste drücken • Innerhalb von 3 Sek erfolgt die Zahlung direkt aus dem Chip • Keine Unterschrift und keine Geheimnummer (PIN) nötig • Mit dem Taschenlesegerät können Umsätze und Restguthaben abgefragt werden Anwendungsentwicklung Chipkarten SS99 - Geldbörse
1.3 Wie kann man das Kartenguthaben abfragen ? • Ein Taschenlesegerät zeigt an, wieviel Geld noch auf der Karte geladen ist • Die letzten Umsätze sowie Ent- und Beladungen können abgefragt werden • Taschenlesegeräte sind bei den Banken erhältlich Anwendungsentwicklung Chipkarten SS99 - Geldbörse
1.4 Vorteile gegenüber Bargeld • Bequem und einfach zu Handhaben • Unabhängigkeit vom Kleingeld • Kein mühsames Nachzählen • Sicherheit in Bezug auf Falschgeld und Wechselgeld Anwendungsentwicklung Chipkarten SS99 - Geldbörse
1.5 Wieviel Geld kann auf die Geldkarte geladen werden ? • Bis zu 400 DM Guthaben auf der Karte • Das Aufwerten und Entladen der Karte ist bei Banken, bzw. an Terminals möglich Anwendungsentwicklung Chipkarten SS99 - Geldbörse
1.6 Akzeptanz der GeldKarte • Das „GeldKarten“-Logo kennzeichnet alle Akzeptanzstellen, die Geldkarten annehmen Anwendungsentwicklung Chipkarten SS99 - Geldbörse
1.7 Was kostet das Bezahlen / Verlust ? • Es entstehen keine zusätzlichen Kosten beim Bezahlen (sowohl für Händler wie für den Kunden) • Bei Kartenverlust, ist das im Chip gespeicherte Geld dem Verlust von Bargeld gleichzusetzen Anwendungsentwicklung Chipkarten SS99 - Geldbörse
1.8 Nutzen der GeldKarte I 1.8.1 Für den Handel: • Zeitersparnis aufgrund schneller und einfacher Zahlungsabwicklung • Die Rückgabe des Wechselgeldes entfällt • Niedriger finanzieller Aufwand wegen Reduzierung der Kom-munikations- und Bargeldbearbeitungskosten • Sicherheit dank garantierter Zahlungen aus dem Chip (wie Bargeld) • Eingegrenzte Vandalismusschäden • Geringeres Raub- und Diebstahlrisiko wegen reduzierter Bar-geldhaltung in der Kasse Anwendungsentwicklung Chipkarten SS99 - Geldbörse
1.8 Nutzen der GeldKarte II 1.8.2 Für die Kunden: • Bequemes Bezahlen mit einer Karte, die mehrere Funktionen in sich vereinigt (z.B. EC-Karte: Geldkarte, Schecks, POS, Elektronischer Lastschriftauftrag,) • Schnelle und einfache Zahlungen ohne Unterschrift möglich • Größere Flexibilität: Der Kunde ist unabhängig vom Kleingeld • Kontrolle der letzten 15 Verfügungen mit einem Taschen-kartenleser Anwendungsentwicklung Chipkarten SS99 - Geldbörse
1.9 Ausblick und künftige Möglichkeiten I • Zukünftige „elektronische Geldbörsen“ werden künfig die Funktion der „Fahrkarte“ oder der „Eintrittskarte“ übernehmen • Da nur ein bestimmter Betrag aufgeladen werden kann, bietet die Geldkarte mehr Sicherheit als z.B. „Kreditkarten“ • Über eine Digitale TV-Decoderbox wird derzeit noch gemunkelt • An einem Konzept einer virtuellen „Shopping-City 2000“ soll schon seit 2 Jahren geplant werden • Für die Internet-Nutzung (Homebanking über HBCI) müßten die Anwender mit Lesegeräten, die in der Tastatur integriert sind (Giesecke & Devrient), ausgestattet sein Wer trägt die Kosten: Bank oder Anwender ?? Anwendungsentwicklung Chipkarten SS99 - Geldbörse
1.9 Ausblick und künftige Möglichkeiten II • Der bisherige Erfolg der Geldkarte wird vom Einzelhandel sogar als Flop bezeichnet • Nach Einschätzung des Einzelhandels liegt der Anteil der Geld-Karte als Zahlungsmittel im „Offline-Handel“ unter 1 % • Außerhalb Deutschlands sind die Geldkarten kaum einsetzbar • Deutsche Anbieter, die im Internet nur auf die GeldKarte setzen, verzichten demit auf die globale Kundschaft Selbst nach erfolgreicher Einführung, kann man kaum davon ausgehen, daß sich die Geldkarte zu dem Zahlungsmittel des (deutschen) Internet entwickelt. Anwendungsentwicklung Chipkarten SS99 - Geldbörse
2. Euro-Umrechnung 2.1 Regeln für die Umrechnung auf EURO 2.2 Triangulation 2.3 Rundung 2.3.1 Beispiel 1: Rückrechnung 2.3.2 Beispiel 2: Einzelposten Anwendungsentwicklung Chipkarten SS99 - Geldbörse
2.1 Regeln für die Umrechnung auf EURO I • Klar definierte Umrechnungs- und Rundungsregeln, die für alle 15 EU-Mitgliedsstaaten gelten • Festsetzung der Umrechnungskurse als 1 EURO ausgedrückt in den einzelnen Währungen der Mitgliedstaaten • Angabe der Umrechungskurse mit sechs signifikanten Stellen • kaufmännische Rundung auf den nächsten Cent immer nach der Umrechnung auf EURO Anwendungsentwicklung Chipkarten SS99 - Geldbörse
2.1 Regeln für die Umrechnung auf EURO II • Alle Umrechnungen zwischen Währungen von EWWU-Staaten erfolgen über den EURO (Triangulation). • Bilaterale Wechselkurse(Kreuzkurse), z.B. 1 DEM = 3,35345 FRF sind untersagt. • Die Verwendung von inversen Kursen, z.B. 1 DEM = 0,511292 EUR, ist nicht erlaubt. • Zwischenergebnisse auf nicht weniger als drei Dezimalstellen runden Anwendungsentwicklung Chipkarten SS99 - Geldbörse
2.2 Verfahren der Triangulation Anwendungsentwicklung Chipkarten SS99 - Geldbörse
2.3 Rundungsregeln • Bei der Umrechnung von z.B. D-Mark nach EURO entstehen Beträge, die gerundet werden müssen • In der Übergangsphase von 01.01.1999 - 31.12.2001 sind D-Mark und EURO parallel als Buchwährung zulässig. • Dabei können durch Rundungen Probleme im Zahlungsverkehr entstehen Anwendungsentwicklung Chipkarten SS99 - Geldbörse
2.3.1 Beispiel 1: Rückrechnung Anwendungsentwicklung Chipkarten SS99 - Geldbörse
2.3.2 Beispiel 2: Einzelposten Anwendungsentwicklung Chipkarten SS99 - Geldbörse
3. Sicherheitsaspekte • Redundante Datenhaltung auf der Chipkarte: • Betrag • Währung • Sicherheit der Daten durch Prüfsumme gewährleistet (CRC mit Nicht-Standard-Polynom) • Verschlüsselung der Daten auf der Chipkarte (noch nicht implementiert) • Verwendung der Sicherheitsmechanismen von StarCOS Anwendungsentwicklung Chipkarten SS99 - Geldbörse
4. Geldbörsen-Applikation 4.1 Klasse ECash 4.2 Klasse Money 4.3 Klasse Currency 4.4 Klasse ECashLog 4.5 Klasse ECashException 4.6 Exceptions Anwendungsentwicklung Chipkarten SS99 - Geldbörse
4.1 Klasse ECash I Zweck: Modelliert ein Geldkarten-Objekt mit der Möglichkeit in einer bekannten Währung einen Betrag auf-/abzubuchen. Dabei besteht eine Begrenzung auf derzeit 400 DEM. Konstruktor/Destruktor: ECash(Chipcard& aCard); erzeugt das Geldkarten-Objekt bestehend auf dem gültigen Chipkarten-Objekt ~ECash(); Anwendungsentwicklung Chipkarten SS99 - Geldbörse
4.1 Klasse ECash II Methoden: void setTerminalParam(string alocation, const unsigned long& aterminalid); setzt die im Logfile angegeben Terminal-ID sowie den Ort vector<Currency*> getSupportedCurrencies(void); liefert einen Vektor mit den bekannten Währungsobjekten Currency* getDefaultCurrency(); liefert die Referenz auf das Default-Währungsobjekt zurück; das Default Währungsobjekt enthaelt die vom Anwender gewaehlte Waehrung Currency* getCurrency(const string& aCurrency); liefert die Referenz auf das Währungsobjekt mit Namen "aCurrency" zurück void setCurrency(const string& aCurrency); erlaubt es die Default-Währung auf der Karte zu wählen Anwendungsentwicklung Chipkarten SS99 - Geldbörse
4.1 Klasse ECash III Methoden: Money* getCreditBalance(void); dient zur Abfrage des aktuellen Kontostands void deposit (const double& aAmount, const string& aCurrency); dient zum Aufwerten der Karte um Betrag "aAmount" in Waehrung "aCurrency" void widthdraw(const double& aAmount, const string& aCurrency); dient zum Abbuchen des Betrags "aAmount" in Waehrung "aCurrency" von der Karte vector<ECashLog*> ECash::getTransactions(); liefert einen Vektor der die Kontobewegungen beinhaltet Anwendungsentwicklung Chipkarten SS99 - Geldbörse
4.2 Klasse Money I Zweck: Modelliert ein Geld-Objekt bestehend aus Betrag und Währung. Implementiert die Addition/Subtraktion sowie den Vergleich/Zuweisung von Objekten unter Berücksichtigung der dem Objekt zugrunde liegenden Währung und dem damit verbundenen Kurs. Konstruktoren/Destruktor: Money(); erzeugt ein Objekt mit Betrag 0 und ungueltiger Waehrung Money(const double& amount, Currency& currency); erzeugt ein Objekt mit Betrag "amount" und Waehrung "currency" Anwendungsentwicklung Chipkarten SS99 - Geldbörse
4.2 Klasse Money II Methoden: Currency* getCurrency(); liefert Referenz auf das Währungsobjekt zurueck double getAmount(); liefert den Betrag zurück Operatoren: Money operator +(class Money) addiert zwei Geldobjekte unter Berücksichtigung der Währung; das neue Geldobjekt erhält die Währung des ersten Summanden Money operator -(class Money) subtrahiert zwei Geldobjekte unter Berücksichtigung der Währung; das neue Geldobjekt erhält die Währung des ersten Summanden Anwendungsentwicklung Chipkarten SS99 - Geldbörse
4.2 Klasse Money III Operatoren: Money* operator =(class Money) prüft auf Gleichheit zweier Geldobjekte unter Berücksichtigung der Währung; verglichen wird in der Währung des linken Objekts bool operator <(class Money) vergleicht zwei Geldobjekte unter Berücksichtigung der Währung; verglichen wird in der Waehrung des linken Objekts bool operator >(class Money) vergleicht zwei Geldobjekte unter Berücksichtigung der Währung; verglichen wird in der Währung des linken Objekts Anwendungsentwicklung Chipkarten SS99 - Geldbörse
4.3 Klasse Currency I Zweck: Modelliert ein Währungs-Objekt bestehend aus Währungsname und Umrechnungsverhältnis auf Euro (z.B. ["DEM",1.95583]). Implementiert die benötigen Methoden zum Auslesen. Konstruktor(en): Currency(void); erzeugt ein Währungsobjekt mit ungültigem Währungstext und einem Währungsverhaeltnis von 0 Currency(const string& aName, const double& aRate); erzeugt ein Währungsobjekt mit Währung "aName" und Umrechnungs- verhältnis "aRate" Anwendungsentwicklung Chipkarten SS99 - Geldbörse
4.3 Klasse Currency II Methoden: string getName(); liefert das Währungskürzel (z.B. DEM, EUR) zurück int getRate(); liefert das Umrechnungsverhältnis des Objekts zurück Anwendungsentwicklung Chipkarten SS99 - Geldbörse
4.4 Klasse ECashLog I Zweck: Modelliert ein Geldkarten-Protokoll-Objekt. Das Objekt besteht aus Einträgen, welche es ermöglichen Ort, Terminal, Datum/Uhrzeit sowie den Vorgang selbst aufzuzeichnen. Konstruktor(en): ECashLog(string buffer); erzeugt das Objekt durch Entpacken des Strings ECashLog(Money& aMoney, unsigned long aTerminalID, string aLocation); erzeugt das Objekt mit den entsprechenden Parametern, die Zeit wird automatisch erzeugt ~ECashLog(); Anwendungsentwicklung Chipkarten SS99 - Geldbörse
4.4 Klasse ECashLog II Methoden: time_t getDate(); liefert Datum/Uhrzeit im üblichen UNIX Format string getCurrency(); liefert den Währungsstring (nicht das Objekt!!) unsigned long getTerminalID(); liefert die ID des Terminals an dem die Buchung vorgenommen wurde string getLocation(); liefert den Ort (max. 24 Zeichen) an dem die Buchung vorgenommen wurde double getAmount(); liefert den Betrag • positiver Betrag = Aufladung • negativer Betrag = Abbuchung • Nullbetrag = Währungsänderung Anwendungsentwicklung Chipkarten SS99 - Geldbörse
4.5 Klasse ECashException I Zweck: Modelliert ein Exception-Objekt bestehend aus Fehlernummer und Fehlertext. Implementiert die benötigen Methoden zum Auslesen. Konstruktor(en): Money(const int& ExceptionNumber, char* ExceptionText); erzeugt ein Objekt mit Fehlernummer "ExceptionNumber" und Fehlertext "ExceptionText" Anwendungsentwicklung Chipkarten SS99 - Geldbörse
4.5 Klasse ECashException II Methoden: int getNumber(); liefert die Exceptionnummer des Objekts zurueck char* getText(); liefert den Text der Exception zurueck Anwendungsentwicklung Chipkarten SS99 - Geldbörse
4.6 Exceptions Nr Kurzbeschreibung 1 CurrencyNotFoundException 2 AmountLimitOverflowException 3 AmountLimitUnderflowException 4 ChipcardComunicationException 5 NegativeParameterException 6 FileCorruptedException 7 ChipcardAuthenticationException 8 ZeroParameterException 10 ChipcardWriteException Anwendungsentwicklung Chipkarten SS99 - Geldbörse
5. Stand der Implementierung / Ausblick 5.1 implementierter Funktionsumfang 5.2 nicht fertiggestellte Funktionen 5.3 künftige Erweiterungen Anwendungsentwicklung Chipkarten SS99 - Geldbörse
5.1 implementierter Funktionsumfang • Geldbörsenfunktionen: • Betrag von der Chipkarte auslesen • Betrag auf die Chipkarte zurückschreiben • Geldbetrag abbuchen und einzahlen • Währung ist frei wählbar • Konsistenzprüfung(z.B. Überschreiten des Maximalbetrages) • Ausgabe von Kontoauszügen • sonstige Funktionen: • Abfrage der unterstützten Währungen • Abfrage des Umrechnungskurses von 1 Euro in eine best. Währung • Authentifizierung der Applikation auf der Chipkarte Anwendungsentwicklung Chipkarten SS99 - Geldbörse
5.2 nicht fertiggestellte Funktionen • Geldbörsenfunktionen: • sonstige Funktionen: • Kryptographie-Modul Anwendungsentwicklung Chipkarten SS99 - Geldbörse
5.3 künftige Erweiterungen • verschiedene Dateiformate / Versionen • Einsatz verschiedener Kryptrographie-Algorithmen • Überweisungen • Daueraufträge (z.B. für Studentenwerksbeitrag) Anwendungsentwicklung Chipkarten SS99 - Geldbörse
6. Zusammenfassung • Grundfunktionen komplett implementiert (Auslieferung nur als statische Bibliothek) • ausreichende Sicherheitsmechanismen vorhanden • funktionsfähige Demo-Applikation (ohne Chipkarte lauffähig) • Probleme / Schwierigkeiten • SCDK-Implementierung (fehlende Header-Files) • Unübersichtliche Web-Seiten (kaputte Links) • Compilerprobleme Anwendungsentwicklung Chipkarten SS99 - Geldbörse