View
110
Download
0
Category
Preview:
Citation preview
Anwendungsentwicklung Chipkarten SS99
Geldbörse
Markus Zinner Michael Raab Metin Oduncu
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
2
Übersicht
1. Die Geldkarte
2. Euro-Umrechnung
3. Sicherheitsaspekte
4. Geldbörsen-Applikation
5. Stand der Implementierung / Ausblick
6. Zusammenfassung
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
3
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 GeldKarte1.8.1 Für den Handel
1.8.2 Für die Kunden
1.9 Ausblick und künftige Möglichkeiten
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
4
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
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
5
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
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
6
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
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
7
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
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
8
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
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
9
1.6 Akzeptanz der GeldKarte
• Das „GeldKarten“-Logo kennzeichnet alle Akzeptanzstellen, die Geldkarten annehmen
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
10
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
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
11
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
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
12
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
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
13
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 ??
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
14
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.
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
15
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
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
16
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
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
17
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
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
18
2.2 Verfahren der Triangulation
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
19
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
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
20
2.3.1 Beispiel 1: Rückrechnung
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
21
2.3.2 Beispiel 2: Einzelposten
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
22
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
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
23
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
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
24
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();
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
25
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
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
26
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
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
27
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"
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
28
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
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
29
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
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
30
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"
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
31
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
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
32
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();
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
33
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
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
34
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"
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
35
4.5 Klasse ECashException II
Methoden:int getNumber();
liefert die Exceptionnummer des Objekts zurueck
char* getText();liefert den Text der Exception zurueck
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
36
4.6 Exceptions
Nr Kurzbeschreibung
1 CurrencyNotFoundException
2 AmountLimitOverflowException
3 AmountLimitUnderflowException
4 ChipcardComunicationException
5 NegativeParameterException
6 FileCorruptedException
7 ChipcardAuthenticationException
8 ZeroParameterException
10 ChipcardWriteException
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
37
5. Stand der Implementierung / Ausblick
5.1 implementierter Funktionsumfang
5.2 nicht fertiggestellte Funktionen
5.3 künftige Erweiterungen
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
38
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
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
39
5.2 nicht fertiggestellte Funktionen
• Geldbörsenfunktionen:
• sonstige Funktionen:• Kryptographie-Modul
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
40
5.3 künftige Erweiterungen
• verschiedene Dateiformate / Versionen• Einsatz verschiedener Kryptrographie-Algorithmen
• Überweisungen
• Daueraufträge (z.B. für Studentenwerksbeitrag)
21. 06. 1999 Anwendungsentwicklung Chipkarten SS99 - Geldbörse
41
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
Recommended