ecash - Das Geld auf der Festplatte Oliver Vornberger Universit"at Osnabr"uck Fachbereich Mathematik/Informatik 49069 Osnabr"uck oliver@uos.de Zahlreiche Verfahren und Protokolle f"ur den elektronischen Zahlungsverkehr sind in den vergangenen Jahren vorgeschlagen worden. Das System ecash( der Firma eCash Technologies, Inc. zeichnet sich durch Eleganz und Einfachheit aus. Dieser Artikel stellt die theoretischen Grundlagen und die Anwendung von ecash( vor. 1.) Einleitung Mit der Verbreitung des Internets w"achst auch seine Eignung, als Medium zwischen Kaufmann und Kunde zu wirken. Zum einen m"ochte der Kaufmann die Waren in seinem Online-Shop optimal pr"asentieren, was mit den heutigen multimedialen Techniken bereits sehr gut funktioniert. Zum anderen m"ochte er aber auch f"ur seine Dienstleistung entlohnt werden, wobei sich neben dem konventionellen Zahlungsverkehr "uber Kreditkarte oder Bank"uberweisung wiederum das Internet anbietet. Grundlage eines jeden elektronischen Zahlungssystems mu"s die F"ahigkeit sein, Nachrichten in einer Weise zu "ubermitteln, da"s diese von unberechtigten Dritten nicht gelesen oder gar manipuliert werden k"onnen. Das hei"st, der Kunde m"ochte sein Konto nur in der von ihm autorisierten Weise belastet sehen. Neben dieser Forderung nach Korrektheit einer Zahlung gesellt sich nun die Forderung nach Anonymit"at einer Zahlung. Damit ist gemeint, den Zahlungsverkehr zwischen Kunde, Kaufmann und Bank, bei der beide ein Konto unterhalten, so zu gestalten, da"s bei der Belastung des Kontos des Auftraggebers zugunsten des Zahlungsempf"angers die Bank "uber die Gesch"aftsbeziehung dieser beiden nichts erfahren kann. Damit kann der Kunde im Internet K"aufe t"atigen und abrechnen, ohne da"s seine Bank Einblicke in sein Kaufverhalten erh"alt. Was sich hier wie ein Ding der Unm"oglichkeit anh"ort, l"a"st sich in der Tat mit wenigen pfiffig aufeinander abgestimmten Verfahren realisieren. Es handelt sich um das System ecash der Firma eCash Technologies, Inc., welches zur Zeit in mehreren L"andern f"ur einige Banken lizensiert und im Gro"sversuch getestet wird. Grundlage f"ur ecash bilden spezielle kryptographische Verfahren, die sogenannten Public Key Systems. Eine kurze Einf"uhrung in diese Thematik liefern Kapitel 2 und 3. Kapitel 4 und 5 schildern, wie darauf aufbauend ein Protokoll entstehen kann, welches die Anonymit"at von Zahlungen eines Kunden gegen"uber seiner Bank wahrt. Kapitel 6 erl"autert den praktischen Einsatz der von eCash Technologies lizensierten Software. Kapitel 8 fa"st die Vorteile dieses Ansatzes zusammen. Weitere Einzelheiten und begleitende Literatur finden sich unter der Web-Adresse http://www.ecashtechnologies.com. 2.) Kryptographie Der Wunsch nach verschl"usselter "Ubertragung von Nachrichten ist so alt wie die Schrift. Der grunds"atzliche Ablauf ist in Bild 1 skizziert: Der Klartext x dient als Eingabe f"ur ein Verschl"usselungsverfahren encode, welches "uber einen Schl"ussel e parametrisiert ist. Das hei"st, der grunds"atzliche Ablauf der Verschl"usselung ist allen Beteiligten bekannt, mit Hilfe des Schl"ussels e kann der Vorgang jeweils individuell beeinflu"st werden. Auf der Gegenseite wird mit dem Verfahren decode und seinem Schl"ussel d der Vorgang umgekehrt und somit der Klartext rekonstruiert. Zum Beispiel k"onnte das generelle Verfahren zum Verschl"usseln eines Wortes x darin bestehen, jeden seiner Buchstaben um eine gewisse Zahl von Einheiten im Alphabet weiterzuschieben. Die Schl"ussel e und d geben dann die konkrete Zahl von Einheiten an. So wird f"ur e = 3 aus dem Wort BACH das Wort EDFK und auf der Gegenseite durch d = -3 daraus wieder BACH. Bild 1: Ablauf einer Verschl"usselung Diese Technik funktioniert so lange gut, wie es gelingt, die zum Bearbeiten einer Nachricht verwendeten Schl"ussel e und d auf einem sicheren Kanal zu "ubertragen, z.B. durch einen Kurier. Ein Spion, der ohne Kenntnis der Schl"ussel die Leitung anzapft, ist dann nicht in der Lage, den beobachteten Code zu entschl"usseln (immer vorausgesetzt, der Raum der m"oglichen Schl"ussel wurde zur Abwehr eines vollst"angigen Durchsuchens gro"s genug gew"ahlt). Im Zeitalter der globalen Vernetzung besteht nat"urlich der Wunsch, auch die beiden Schl"usselpaare e und d per Leitung auszutauschen. Nun aber laufen wir Gefahr, da"s der Spion von ihnen Kenntnis erh"alt und damit den Code knackt. 3.) Public Key Systems Als Antwort auf dieses Dilemma pr"asentierten drei Wissenschaftler vom MIT in Boston im Jahre 1978 eine verbl"uffende L"osung [1]. Das nach den Autoren Rivest, Shamir und Adleman benannte RSA-Verfahren verwendet das Konzept des "offentlichen Schl"ussels und z"ahlt daher zu den Public Key Systems. Im folgenden sei der Einfachheit halber angenommen, der zu "ubertragende Klartext bestehe aus einer einzigen ganzen Zahl x (bei realen Anwendungen mu"s der Klartext zuvor als eine Folge von Zahlen dargestellt werden). Bild 2 zeigt, wie die Kommunikationspartner Alice, welche die zu "ubertragende Nachricht x verfa"st hat und ihr Kommunikationspartner Bob, f"ur den die Nachricht bestimmt ist, dabei vorgehen. Bob konstruiert auf Grundlage eines mathematischen Verfahrens drei Zahlen e, d und n mit der Eigenschaft (xe mod n)d mod n = x. Auf deutsch: Wenn man x e-mal mit sich selbst malnimmt und dann das Ergebnis d-mal mit sich selbst malnimmt, kommt wieder x heraus. Alle Rechnungen erfolgen mit den Resten, die bei Division durch n entstehen, genannt modulo. Nun k"onnen die Zahlen n und e von Bob ver"offentlicht werden f"ur jeden potentiellen Sender der an ihn eine Nachricht schicken m"ochte. Verschl"usselt wird dann mit der f"ur den Adressaten Bob konstruierten "offentlichen Funktion y := encB(x) = xe mod n, entschl"usselt wird vom Adressaten mit der nur ihm bekannten, aber sonst geheimen Funktion x := decB(y) = yd mod n . Bild 2: Verschl"usseln einer Nachricht Als Beispiel seien n =143, e = 47 und d = 23 genannt. Dann wird x verschl"usselt durch Bilden von y := x13 mod 143, auf der Gegenseite wird y entschl"usselt durch Bilden von x := y23 mod 143. In der Praxis werden die Zahlen n, e und d unter Verwendung 300-stelliger Primzahlen konstruiert und sind so gew"ahlt, da"s aus der Kenntnis von n, e und der verschl"usselten Nachricht y die Rekonstruktion von d und damit die Rekonstruktion von x in akzeptabler Rechenzeit nicht m"oglich ist. Ein abh"orender Spion k"onnte daher die beobachtete Nachricht y erst in Jahrzehnten entschl"usseln. 4.) Unterschreiben mit Public Key Systems Wie in Kapitel 3 erl"autert, ver"offentlicht der Empf"anger B an alle potentiellen Sender sein "offentliches Verschl"usselungsverfahren encB , welches vom Sender A benutzt wird, um y := encB(x) an den Empf"anger B zu schicken. Der Inhalt der Nachricht bleibt dabei vor etwaigen Spionen gesch"utzt und kann nur durch den Empf"anger B durch Anwendung von x := decB(y) wieder lesbar gemacht werden. Eine Umkehrung der Reihenfolge der beiden Schl"ussel f"uhrt nun zu einem interessanten Effekt , visualisiert in Bild 3. Wendet der Sender A vor dem Verschl"usseln mit dem "offentlichen Schl"ussel von B zun"achst seine eigene, geheime Entschl"usselung decA an, so kann dieser Schritt durch den Empf"anger unter Anwendung von encA wieder r"uckg"angig gemacht werden. "Ubertragen wird von Sender A der Code y := encB(decA(x)). Entschl"usselt wird von Empf"anger B zum einen durch Anwendung des geheimen Schl"ussels von B und zum anderen durch Anwendung des "offentlichen Schl"ussels von A. Das hei"st, Empf"anger B berechnet x := encA(decB(y)) . Sollte bei einem solchen Schritt aus dem erhaltenen Code y eine sinnvolle Nachricht x entstehen, so kann Empf"anger B sicher sein, da"s diese Nachricht vom Sender A stammt, denn nur Sender A ist in der Lage, den zu encA inversen Schritt decA durchzuf"uhren. Somit wirkt sich diese Kombination von "offentlichen und privaten Schl"usseln wie eine digitale Unterschrift aus, mit der ein Empf"anger von Nachricht y vor Gericht nachweisen kann, da"s als Urheber dieser Nachricht nur Sender A in Frage kommt. Bild 3: Signieren einer Nachricht 5.) Blinde Signaturen Wie k"onnen nun Public Key Systems im elektronischen Zahlungsverkehr verwendet werden ? Eine M"oglichkeit w"are es, wenn die Bank elektronische Geldscheine in Form von Nachrichten herausgibt, welche von ihr mit der digitalen Signatur der Bank unterschrieben sind und daher als echt erkannt werden k"onnen von jedermann, der "uber den "offentlichen Schl"ussel encBank der Bank verf"ugt. Beim Einreichen eines solchen digitalen Geldscheins w"urde aber die Bank erfahren, wof"ur ihr Kunde sein Geld ausgegeben hat, denn schlie"slich mu"s sie sein Konto belasten. Um die Anonymit"at des Bezahlenden zu sichern, schlug David Chaum daher folgendes Prinzip der blinden Signatur vor [2], visualisiert in Bild 4. Bild 4: M"unzen erzeugen Zun"achst erzeugt der Kunde A eine zuf"allige Schecknummer x, die so gro"s ist, da"s die Wahrscheinlichkeit vernachl"assigbar ist, da"s dieselbe Schecknummer auch von einem anderen Kunden generiert werden k"onnte. Als n"achstes w"urfelt der Kunde einen individuellen Ausblendfaktor r und schickt das Produkt s := x ( encBank(r) an die Bank. Die Bank belastet nun das Konto des Kunden A mit einem vorher vereinbarten Betrag, z.B: 1,- DM. Dann signiert sie die Nachricht y mit Ihrer digitalen Unterschrift z = decBank(s) und schickt z an den Kunden A zur"uck. Aufgrund der Konstruktion der Nachricht s ist die Bank nicht in der Lage, die in ihr versteckte Schecknummer x zu sehen, w"ahrend der Kunde A unter Verwendung seines Ausblendfaktors r aus der von der Bank zur"uckerhaltenen Nachricht z die unterschriebene Schecknummer y := decBank(x) extrahieren kann. Bildlich gesprochen hat Kunde A seine von ihm ausgedachte Schecknummer s in einem verschlossenen Umschlag mit Durchschlagpapier an die Bank geschickt und die Bank hat durch den Umschlag hindurch, ohne die Schecknummer zu sehen, den Scheck unterschrieben. Nun verf"ugt Kunde A "uber einen von der Bank signierten Geldschein s im Werte von 1,- DM und kann ihn im Internet zum Bezahlen verwenden. Bild 5 zeigt den Ablauf. Jeder Kaufmann, bei dem der Kunde Ware bestellen m"ochte und der diesen Geldschein y pr"asentiert bekommt, kann durch Anwendung des "offentlichen Schl"ussels der Bank "uberpr"ufen, ob x = encBank(y) eine g"ultige Banknote darstellt. Falls dies der Fall ist, kann der Kaufmann die Banknote s bei der Bank einreichen. Dort wird sie von der Bank verifiziert. Danach schreibt die Bank dem Konto des Kaufmanns den Betrag von 1,- DM gut und vermerkt die Schecknummer x als bereits ausgegeben. Das Konto von Kunde A war bereits bei Ausstellung der signierten Banknote belastet und kann von der Bank nicht in Verbindung zur eingereichten Schecknummer gebracht werden, da diese zum Zeitpunkt der Unterschrift durch den Ausblendfaktor r unzug"anglich war. Bild 5: M"unzen ausgeben 6.) ecash Die im Kapitel 5 vorgestellte Idee wurde 1994 von David Chaum mit seiner Firma DigiCash in die Tat umgesetzt und inzwischen von eCash Technologies weitergef"uhrt. Bei mehreren europ"aischen und australischen Banken l"auft inzwischen ein Feldversuch, um die Praktikabilit"at des Verfahrens im Alltag zu testen. Teilnehmer in Europa sind z.B. die Deutsche Bank (Deutschland), die Bank Austria ("Osterreich), die Credit Suisse (Schweiz) und die Norske Bank (Norwegen). Bild 6: Oberfl"ache der ecash-Wallet Um in Deutschland an dem Pilotprojekt teilnehmen zu k"onnen, mu"s der Kunde zun"achst "uber ein Girokonto bei der Deutschen Bank verf"ugen. Diesem Girokonto wird auf Antrag das sogenannte ecash-Konto assoziert, welches vom Girokonto aus per konventioneller Bank"uberweisung mit maximal 400,- DM gef"ullt werden kann. Gleichzeitig erh"alt der Kunde von der Deutschen Bank die sogenannte ecash-Geldb"orse, eine Software, die nach Installation auf dem heimischen PC den Kontakt zum assoziierten ecash-Konto aufnimmt (Bild 6). Nach dem Betanken der ecash-B"orse vom ecash-Konto aus liegt nun auf der Festplatte des Kunden der angeforderte Betrag in Form von mehreren digital signierten M"unzen. Die M"unzen haben Denominationen in 2er-Potenzen, also 1 Pfennig, 2 Pfennig, 4 Pfennig, 8 Pfennig, etc., damit sich jeder gew"unschte Betrag damit zusammenstellen l"a"st. Sie sind zudem mit einem Verfallsdatum versehen, um die Buchhaltung f"ur bereits ausgegebene M"unzen zu vereinfachen (Bild 7). Bild 7: Bestand an M"unzen in der Wallet. Besucht nun der Kunde mit seinem Web-Browser im Internet eine WWW-Seite eines Kaufmanns mit ecash-Zahlungsm"oglichkeit, so w"ahlt er zun"achst wie gewohnt das zu kaufende Produkt aus. Danach bekommt er ein Popup-Fenster pr"asentiert (Bild 8), welches die relevanten Daten der bevorstehenden Transaktion noch einmal zusammenfa"st, n"amlich Beschreibung und Preis der Ware. Stimmt der Kunde jetzt zu, so werden von der ecash-Geldb"orse digitale signierte M"unzen in der angek"undigten Gesamtsumme zum Server des Kaufmanns transferiert. Dieser Vorgang l"auft ohne weiteres Zutun des Kunden ab, insbesondere sind keine Angaben zu Kreditkarten oder Kontoverbindungen mehr einzugeben. Nachdem der Kaufmann sich auf dem Double-Spending-Server der Bank vergewissert hat, da"s diese M"unzen nicht schon einmal ausgegeben worden sind, kann der Kunde mit der Ware beliefert werden. Dies kann entweder unmittelbar online geschehen, wenn es sich z.B. um Software, digitale Bilder, Audio- oder Videoclips handelt, oder per Post, wenn es sich um klassische Waren eines Versandhauses handelt, wie z.B. B"ucher oder CDs. Bild 8: Best"atigung der Zahlung Das System ecash ist auch in der Lage, "Uberweisungen von Geldbetr"agen zwischen Privatpersonen durchzuf"uhren, die "uber ecash-Konten verf"ugen. Weitere Leistungsmerkmale umfassen das F"uhren einer Protokolldatei, sowie Stornierung von Buchungen und Recovery nach einem Plattencrash. Eine umfangreiche Pr"asentation der Funktionalit"at findet sich unter der Web-Adresse http://www.digicash.com/index_e.html 7.) Zusammenfassung Das von David Chaum entworfene ecash-System besticht durch Einfachheit, Eleganz und Sicherheit. Seine Installation erfordert bei Kunde und Kaufmann nur geringen Aufwand. Innerhalb der Sparte bargeldloser Zahlungsverkehr l"a"st es sich deutlich einfacher benutzen als Verfahren zum verschl"usselten Austausch von Kreditkartendaten und "Uberweisungsinformationen. Aufgrund seines Designs ist ecash nicht nur im Internet einsetzbar, sondern auch in Verbindung mit Telefon-, Radio- oder Satellitenverbindungen. Ob es sich durchsetzen wird, h"angt im wesentlichen davon ab, ob eCash Technologies gen"ugend Banken und Kaufleute daf"ur gewinnen kann, ecash als Zahlungsweise f"ur ihren Online-Shop anzubieten. Denn das sch"onste Geld auf der Festplatte des Clienten ist wertlos, wenn sich kein Server findet, der es akzeptiert. 8.) Literatur [1] R. Rivest, A. Shamir, L. Adleman: "A method for obtaining digital signatures and public key cryptosystems", Communications of the ACM, Vol. 21, N. 2, 1978, S. 120-126. [2] David Chaum: "Security without Identification: Transaction Systems to make Big Brother Obsolete", Communications of the ACM, Vol. 28, N. 10, 1985, pp. 1030-1044; Revised version (in German), Informatik-Spektrum, vol. 10, pp. 262-277 1987.