HBCI und GnuCash: Online-Banking mit freier Software
Christian Stimming
Technische Universität Hamburg-Harburg
Copyright © 2004 by the Author(s)
Dieser Beitrag ist lizensiert unter der UVM Lizenz für Freie Inhalte.
Zusammenfassung
Unter den vielfältigen Einsatzgebieten von freier Software fristet die
Verwaltung der persönlichen Finanzen eher ein Nischendasein. Trotzdem
zeigt sich gerade hier in Deutschland, welche Stärken Freie Software
auch für einen kleines Anwendungsgebiet ausspielen kann: Der Standard
für Homebanking in Deutschland, HBCI, ist öffentlich verfügbar. Eine
Implementation in Freier Software war daher möglich und wird in Form
von OpenHBCI im Vortrag vorgestellt. Die persönliche Finanzverwaltung
GnuCash kann seitdem für echtes Homebanking eingesetzt werden: GnuCash
basiert auf der Kaufmännischen Buchhaltung als Grundmodell, bietet
unterschiedlichste Kontenarten, die Auswertung der Geldbewegungen in
Tabellen und Grafiken sowie die Verwaltung von Aktiendepots. Mit HBCI
können aus dieser Freien Software heraus Zahlungsaufträge direkt
online mit allen HBCI-kompatiblen Banken abgewickelt
werden. Gleichzeitig steht GnuCash auf Grund seiner modularen Struktur
für Erweiterung jeder Art offen. Damit bietet GnuCash für Anwender,
Softwareanbieter und Banken gleichermaßen interessante Perspektiven,
die in diesem Vortrag ausführlich dargelegt werden.
HBCI und GnuCash: Online-Banking mit Freier Software
Geld hat man, oder man hat es nicht. Genauer gesagt: Man hat eigentlich immer mit Geld zu tun, aber welchen Teil davon hat man wirklich, und welchen hat man nicht?
Um diese Frage zu beantworten, sind von vielen Softwareanbietern Programme für die Verwaltung der persönlichen Finanzen erhältlich. Für diesen Bereich wie auch für viele andere findet man sowohl kommerzielle Anbieter als auch einzelne Projekte in Freier Software. Eine solche Software ist das Programm GnuCash. Ursprünglich als Scheckbuch geplant, ist dies nun eine Komplettlösung für die persönliche Finanzverwaltung geworden.
Im Zeitalter des Internet kommt zu alledem noch die Frage hinzu, ob eine Finanzverwaltung auch in der Lage ist, die persönlichen Bankgeschäfte über das Internet abwickeln zu können. Deutschland befindet sich im Online-Banking-Sektor in der außergewöhnlichen Lage, daß ein gemeinsamer Standard aller Banken verfügbar ist, eben das vielzitierte HBCI. Dieser Standard ist außerdem öffentlich verfügbar. Dadurch konnte eine Implementation in Freier Software erstellt werden, und durch die Verknüpfung mit GnuCash steht nun eine leistungsfähige Finanzbuchhaltung zur Verfügung, die das deutsche Homebanking reibungslos unterstützt.
In diesem Artikel werden die Grundzüge der kaufmännischen Buchhaltung für den Privatanwender dargelegt und die Anwendung derselben in GnuCash erläutert. Anschließend wird die Situation des Online-Banking in Deutschland geschildert. Die Verknüpfung von GnuCash mit Online-Banking, ermöglicht durch Freie Software, wird erklärt, und die darüber hinausgehenden Perspektiven von Gnucash für Privatanwender, Softwareherstellen und Banken gleichermaßen werden zum Schluß zusammengefasst.
Warum überhaupt Buchführung? Diese Frage bewegte schon die italienischen Händler im Mittelalter, und auf den Italiener Luca Pacioli (1445-1517) geht tatsächlich die heutige Methode der „Doppelten Buchführung“ zurück. Eine Buchführung diente dort zuerst als Gedächtnisstütze. Welche Vorgänge sind passiert, welche Geldbeträge wurden bewegt. Mit der doppelten Buchführung kam eine neue Zielsetzung hinzu, und die Frage nach dem unternehmerischen Erfolg rückte in den Mittelpunkt der Finanzbuchhaltung.
Auch heutzutage und gerade für den Privatanwender werden mehrere Ziele gleichzeitig durch eine Finanzverwaltung verfolgt, aber zunächst soll die Blickweise eines Unternehmens auf die Frage der Finanzbuchhaltung dargelegt werden.
Kaufmännische Buchhaltung
Die Finanzbuchhaltung im engeren Sinne als die kaufmännische „Doppelte Buchführung“ dient der systematischen Erfassung und Überwachung der durch den betrieblichen Prozeß entstehenden Geldströme. Der Bestand an Geldmitteln wird dazu in einer Anzahl Konten verwaltet, die sich in Bestandskonten und Erfolgskonten aufgliedern.
Die Bestandskonten stellen das Vermögen (Eigenkapital) und die Schulden (Fremdkapital) des Unternehmens dar und werden in der Bilanz in Aktiva- und Passiva-Konten aufgegliedert. Die Geldströme in die Erfolgskonten stellen die Erträge (Einkommen) und Aufwendungen (Ausgaben) des unternehmerischen Handelns dar.
Die charakteristische Eigenschaft der „Doppelten Buchführung“ (gelegentlich auch als Doppik bezeichnet) ist die Tatsache, daß Geldbeträge immer von einem Konto in ein anderes Konto umgebucht werden. In diesem Sinne werden weder Beträge aus dem System heraus „verschwinden“ noch Beträge irgendwie darin „erscheinen“. Jede Geldbewegung bzw. Buchung hat in diesem System immer zwei Buchungsteile. Die unternehmerische Handlung „200 Euro für ein Geschäftsessen ausgegeben“ wird in der Doppelten Buchführung durch eine Buchung von 200 Euro aus dem Bestandskonto „Bargeld“ in das Aufwandskonto „Sonstige betriebliche Aufwendungen/Bewirtungskosten“ dargestellt.
Für den Privatanwender sind die handelsrechtlichen Vorschriften bezüglich einer ordnungsgemäßen Buchführung und der Erstellung einer Bilanz natürlich weniger relevant. In diesem Fall mag es ausreichend sein, für die Finanzverwaltung eine Cash-Flow-Sichtweise einzunehmen, also „nur“ den Geldfluß als solchen zu betrachten. In der Cash-Flow-Sichtweise werden lediglich Bestandskonten und Einnahme/Ausgabenkonten unterschieden.
Die Bestandskonten geben dabei die Antwort auf die Frage „Wo ist mein Geld gerade“, Abbildung . In den Bestandskonten wird der Kontostand der Bankkonten und des Bargeld verwaltet, genauso wie noch zu bezahlende Rechnung z.B. einer Kreditkarte.
Abb. Bestandskonten
Die Einnahme/Ausgabenkonten geben demgegenüber eine Antwort auf die Frage „Wo kommt das Geld her“ bzw., „Wo geht es hin?“, Abbildung . In diesen Konten kann beliebig viel ins Detail gegangen werden, wenn für die persönliche Finanzverwaltung eine Unterscheidung der getätigten Ausgaben und der empfangenen Einnahmen aufgezeichnet werden soll.
Abb. Einname/Ausgabenkonten
Konten in Gnucash
Der grundlegende Ansichtsmodus für jedes Konto in GnuCash ist das Kontofenster (engl.
register
). In diesem Kontofenster werden alle Buchungen in einem Konto angezeigt. Genauer gesagt, wird der Buchungsteil angezeigt, der in dem jeweiligen Konto gebucht wurde – das „andere“ Konto, das Gegenkonto der doppelten Buchführung, wird im Kontofenster in der Spalte „Buchen“ aufgeführt.
Abbildung Kontofenster
In Abbildung ist ein Kontobuch in der Ansicht „Einzeilig“ zu sehen. Jede Zeile steht für eine Buchung. In der linken Spalte steht das Datum der Buchung, anschließend ist der Buchungstext zu sehen, danach das Gegenkonto. Weiter rechts ist der Buchungsbetrag entweder in der Haben- oder der Soll-Spalte zu sehen, und als letzte Spalte wird der laufende Saldo des Kontos angezeigt.
Die Organisation von vielen Konten wird in GnuCash durch die Gruppierung von Konten in Hauptkonten und Unterkonten gegliedert. Die Darstellung dieser Gruppierung kann in Form eine Hierarchie oder einer Baumstruktur geschehen, Abbildung .
Abbildung Kontenhierarchie
Diese Anordnung der Konten wird auch als Kontenrahmen bezeichnet. Im deutschen Steuerrecht existieren bestimmte Standardkontenrahmen (SKR), und einen solchen mit der Bezeichnung SKR04 wird bei GnuCash mitgeliefert.
Abbildung Mehrteilige Buchung
Zwar besteht bei der Doppelten Buchführung eine Buchung meistens aus zwei Buchungsteilen (von denen im Kontofenster, Abbildung , der eine angezeigt wird), aber dies ist keine einschränkende Begrenzung: In GnuCash können Buchungen genauso gut auch mehrteilig eingegeben und verwaltet werden. Ein Beispiel für eine mehrteilige Buchung ist in Abbildung zu sehen.
Wie in der Einführung bereits erwähnt wurde, ist für die Kontrolle über die Einnahmen und Ausgaben die Gliederung der Ausgabenkonten von entscheidender Bedeutung. In GnuCash wird für den Privatanwender bereits ein Kontenrahmen mitgeliefert, der eine übliche Aufgliederung in Einkommen und Aufwendungen (Ausgaben) ermöglicht. Die Ansicht der Kontenhirarchie wird in Abbildung 6 gezeigt.
Abbildung Kontenrahmen, Kontenhierarchie
Nun stellt sicht die Frage, welche Möglichkeiten es zur Auswertung der Daten aus der Buchhaltung gibt.
Abbildung Tortendiagramm Aufwandskonten
Jede Auswertung der Finanzbuchhaltung ergibt einen Bericht. Berichte können entweder aus einer Tabelle mit Text und vielen Zahlen bestehen, oder sie können in anschaulicher Weise die Ergebnisse als grafisches Diagramm darstellen. Ein Bild sagt mehr als tausend Worte – so auch in Abbildung 7.
In diesem Tortendiagramm ist für einen bestimmten Zeitraum die Aufteilung der Gesamt-Ausgaben auf die einzelnen Aufwandskonten dargestellt. Man erkennt zum Beispiel, daß im beispielhaften Zeitraum (Januar 2004) das Aufwandskonto „Miete“ mit einem Betrag von 450 Euro zu 62 Prozent zum Gesamtbetrag der Aufwendungen in jenem Monat beiträgt.
Ein derartiges Diagramm gibt also die Antwort auf die Frage „Wo ist das Geld hin“, und zwar über einen bestimmten Zeitraum gerechnet.
Um eine solche Aufteilung der Ausgaben in mehreren Monaten gegenüber stellen zu können, gibt es weitere Diagramme. Abbildung 8 zeigt ein Balkendiagramm, wobei auf der X-Achse die Monate aufgetragen sind und auf der Y-Achse der Geldbetrag. Man erkennt in diesem Beispiel, daß der monatliche Geldbetrag im Aufwandskonto „Miete“ in den Monaten Januar bis März 2004 unverändert geblieben ist.
Abbildung Balkendiagramm Aufwandskonten
Mit diesem Balkendiagramm kann also die zeitliche Entwicklung der Frage „Wo ist das Geld in jedem Monat hin“ veranschaulicht werden.
Als weitere Art von grafischen Berichten ist die Darstellung einer Kursentwicklung verfügbar. Im Beispiel, Abbildung 9, ist die Kursentwicklung des Preises für einen Dollar („USD“) in Euro („EUR“) im Zeitraum Juni bis Dezember 2000 dargestellt.
Abbildung Kursentwicklung
Der dargestellte Umrechnungskurs beruht auf den tatsächlichen Währungstransaktionen des Autors im genannten Zeitraum. GnuCash berechnet aus den realen Transaktionen dann den tatsächlichen effektiven Umrechnungskurs aus Sicht des Anwenders und kann ihn in dieser Form darstellen.
Auswertung als Textdokument
Die üblicherweise weniger beeindruckenden, aber mindestens genauso wichtigen Text-Berichte sind in GnuCash ebenfalls verfügbar. Zuallererst gibt es da eine Bilanz.
Abbildung Bilanz
In der Bilanz ist für einen bestimmten Zeitpunkt (den Bilanzstichtag) aufgeführt, in welche Konten sich das Vermögen und die Schulden der Firma oder des Benutzers aufgliedern. Abbildung 10 zeigt beispielhaft eine mögliche Bilanz zum Stichtag 31.12.2000. Der ebenfalls aufgeführte Startzeitpunkt bezieht sich dabei auf die Berechnung möglicher Kursgewinne oder -verluste, die bei Einbeziehung von Aktien oder Devisenkonten eine Rolle spielen können.
In der Bilanz wie auch in allen anderen Text-Berichten sind die Konten selber hier blau unterstrichen dargestellt – und in der Tat verbergen sich dahinter jeweils klickbare Hyperlinks in die jeweiligen Kontenfenster. Auch in den grafischen Berichten sind viele Elemente klickbar (Kontonamen, Tortenstücke) und führen entweder zu einer genaueren Aufgliederung des gewählten Kontos oder zum jeweiligen Kontofenster.
In den bunten Diagrammen und mit diesen interaktiven Elementen macht es in GnuCash, soweit man das im Umgang mit Geld behaupten kann, richtig Spaß, den Überblick über seine persönlichen Finanzen zu gewinnen.
Unter dem Begriff Online-Banking versteht man unterschiedliche Techniken, die alle dem Benutzer ermöglichen sollen, seine Bankgeschäfte von einem Computer außerhalb der Bank selber in Auftrag geben zu können. Dabei können zwei prinzipielle Modelle unterschieden werden.
Einerseits gibt es das WWW-basierte Online-Banking, wo von der Bank (oder einem beauftragten Rechenzentrum) ein WWW-Server betrieben wird, der über entsprechende HTML-Formulareingaben schließlich die Bankaufträge entgegennimmt. In diesem Fall ist auf Benutzer-Seite immer lediglich ein Web-Browser im Einsatz. Eine Anbindung an eine Finanzverwaltung wie GnuCash ist dagegen praktisch unmöglich.
Für eine Anbindung einer Finanzbuchhaltung an das Online-Angebot ist dagegen andererseits eine Technik erforderlich, die für diesen Zweck die Schnittstellen und die notwendigen Protokolle vorgibt. Eine solche Technik ist in Deutschland unter dem Kürzel HBCI (Home Banking Computer Interface) verfügbar.
HBCI ist nicht „nur“ eine Spezifikation von Dateiformaten, sondern dies ist eine Zusammenstellung aus mehreren Elementen. Man findet dort zum einen die Datenformate, zum zweiten das Protokoll zur Client-Server-Kommunikation, zum dritten die Definition der unterstützten Geschäftsvorfälle, und desweiteren die Definition der möglichen Sicherheitsmedien. Zusätzlich ist der Standard selber öffentlich verfügbar – und dies ermöglichte erst die Implementation durch ein Projekt in Freier Software.
Eine erklärte Stärke des HBCI-Standards ist die Bankenunabhängigkeit. Eine Finanzverwaltung auf Benutzer-Seite, die HBCI implementiert, kann daher mit allen Banken kommunizieren, die ihrerseits HBCI anbieten. In Deutschland bieten ca. 2000 der 4000 vorhandenen Banken HBCI an.
Abbildung Bankenunabhängigkeit
HBCI stellt die Unterstützung für verschiedene Sicherheitsmedien bereit. Zum einen gibt es dort symmetrische Verschlüsselungsverfahren (DES-Schlüssel), indem der Benutzer eine Chipkarte von der Bank ausgehändigt bekommt, auf der der geheime Schlüssel gespeichert ist.
Abbildung Chipkarte
Zum anderen werden asymmetrische Verschlüsselungsverfahren unterstützt, um langfristig den Einsatz von RSA-Chipkarten zu ermöglichen. Aber zusätzlich kann bei dem asymmetrischen Verfahren auch ein Schlüssel vom Benutzer selbst erzeugt und in einer Datei gespeichert werden. In diesem Fall der selbsterzeugten Schlüssel geschieht die anfängliche Authentifizierung durch einen Austausch des Fingerabdrucks (fingerprint) auf Papier (sogenannter Ini-Brief).
In Freier Software existieren mittlerweile zwei Implementierungen von HBCI. Die eine, OpenHBCI, ist älter, in C++ und C geschrieben und wird in GnuCash verwendet. Außerdem gibt es noch HBCI4Java, was in Java geschrieben ist.
Abbildung Zuordnung HBCI-Konten und GnuCash-Konten
Zur Verknüpfung der Kontoführung in GnuCash wird bei der Einrichtung des HBCI-Zugangs in GnuCash eine Zuordnung von den verfügbaren HBCI-Konten zu existierenden GnuCash-Konten getroffen, Abbildung 13.
Wenn die Einrichtung dann erst einmal erledigt ist, kann innerhalb des jeweiligen GnuCash-Kontofensters zusätzlich zu den normalen Buchungsvorgängen auch der Menüpunkt „Online-Auftrag erteilen“ ausgewählt werden.
Abbildung Auftrag Online-Überweisung
In einem dem üblichen Überweisungsvordruck nachempfundenen Fenster (Abbildung 14) können dann die Daten für die reale Überweisung eingegeben werden. Nach einem Klick auf „Ausführen“ wird dann nach dem Passwort für das Sicherheitsmedium gefragt, und sogleich wird der Auftrag an den HBCI-Server der Bank weitergeleitet, um die reale Geldbewegung in Auftrag zu geben.
Die Finanzbuchhaltung GnuCash bietet Features für Privatanwender und für Kleinbetriebe. Man muß allerdings zugeben, daß lange Zeit der Schwerpunkt eindeutig auf dem Privatanwenderkreis gelegen hat. Die Features für den geschäftlichen Einsatz sind außerdem meistens von amerikanischen Programmieren erstellt worden, so daß viele Eigenheiten des deutschen Geschäftsumfeldes bisher nicht ausreichend berücksichtigt werden konnten.
Abbildung Rechnungserstellung
Nichtsdestotrotz wird die Verwaltung von Rechnungen, Kunden und Lieferanten unterstützt. Die Erstellung einer Rechnung wird in Abbildung 15 gezeigt. Rechnungen und Mahnung können erstellt und ausgedruckt werden.
Für den deutschen Markt ist dabei wohl eher bedeutsam, daß ein voller Kontenrahmen SKR04 in GnuCash bereits enthalten ist.
Und darüber hinaus kann man nicht häufig genug darauf hinweisen, daß es sich hier um Freie Software handelt. Jeder Anwender hat den Zugriff auf den vollen Quellcode. Ein Kleinunternehmen, das ein einzelnes Feature vermisst, hat jederzeit die Möglichkeit, dieses selber einzubauen oder die Programmierung desselben bei in Auftrag zu geben.
So ist beispielsweise eine SQL-Datenspeicherung mit Multi-User/Mehrplatzfähigkeit in Entwicklung, und es bleibt jedem potentiellen Anwender möglich, dort mitzuwirken.
Für Unternehmen bietet GnuCash die Vorteile von jeder Freien Software: Der Einsatz von GnuCash stellt eine Investitionssicherheit dar, da der Sourcecode grundsätzlich vorhanden ist und immer weiterverwendet werden kann, unabhängig vom Schicksal irgendeines sonstigen Software-Anbieters. Außerdem ist dadurch die Anpassung an unternehmensspezifische Wünsche jederzeit möglich und Entscheidungen über Programmieraufträge bleiben grundsätzlich immer in der Obhut des einsetzenden Unternehmens.
Für Banken und Softwarehersteller im Finanzumfeld bietet GnuCash den Vorteil, daß eine HBCI-fähige Finanzbuchhaltung für Linux hier bereits vorhanden ist. Der Sourcecode liegt offen und kann problemlos dafür verwendet werden, ein gewünschtes Design zum Beispiel einer bestimmten Bank oder Marke mit einzubinden. Die existierenden Features von GnuCash stehen dabei komplett zur Verfügung, und ein an Linux interessierter Anbieter kann diese direkt einsetzen.
Für Privatanwender bietet GnuCash als Finanzbuchhaltung vielleicht erstmal die Möglichkeit, eine Verwaltung der privaten Finanzen in Angriff zu nehmen. Die Übersicht über den Geldbestand und über Einnahmen und Ausgaben sind sicherlich für viele Computerbenutzer eine hilfreiche Unterstützung, um Engpässe und Überfluß im Finanzbereich zu verwalten.
Ebenfalls für Privatanwender bietet GnuCash die Möglichkeit zum Online-Banking unabhängig von irgendeinem Softwarehersteller oder einer Bank. Sobald ein Anwender mit einer HBCI-fähigen Bank zu tun hat, kann er die Auftragserteilung über GnuCash abwicklen und ist nicht an spezielle Software der jeweiligen Bank gebunden.
GnuCash ist eine Finanzverwaltung in Freier Software. Durch die Verknüpfung mit weiterer Freier Software bietet diese Anwendung auch HBCI Online-Banking, was mit jeder deutschen HBCI-fähigen Bank eingesetzt werden kann. GnuCash als Freie Software ist immer mit dem kompletten Quellcode und kostenlos verfügbar. Es ist damir jederzeit möglich, diese Anwendung zu ändern oder anzupassen. Das Programm und weitere Informationen findet man auf
www.gnucash.org
.