Sicheres Online-Banking mit HBCI
Linux ist wegen seiner geringen Anfälligkeit für Viren und Trojaner sowieso schon eine gute Wahl für sicheres Online-Banking. Mit HBCI lässt sich der Sicherheitsfaktor aber noch einmal steigern. Dieses Special beschreibt, wie man Banking per HBCI unter Fedora einrichtet und verwendet.
Was macht HBCI sicherer?
Das klassische Online-Banking läuft üblicherweise über den Webbrowser und eine verschlüsselte Browserverbindung. Das Problem daran ist: Jeder, der nur die richtigen Zahlen kennt, kann sich von jedem Ort der Welt bei der Bank als Kontoeigentümer ausgeben und Schaden anrichten. An die Kundenkennzahlen, PINs und TANs kommen Kriminielle durch Keylogger und geschickte Manipulation ihrer Opfer heran. Aber auch umgekehrt weiß der Bankkunde nicht, ob er wirklich mit dem Webauftritt seiner Bank verbunden ist, oder ob er durch einen Angriff auf den gefälschten Auftritt eines Kriminellen umleitet wird, der die Daten dann seinerseits manipulieren und an den echten Webauftritt der Bank weiterreichen kann (ein so genannter man-in-the-middle-Angriff).
Beim HBCI-Banking wird eine lokal installierte Banking-Software verwendet. Fest dazu gehört außerdem ein externer Kartenleser und eine spezielle Chipkarte. Diese Chipkarte enthält einen Schlüssel, der nur für den Kunden bestimmt ist. Bevor nun eine Anfrage an die Bank geschickt wird, wird diese über den Schlüssel auf der Chipkarte digital unterschrieben, nachdem der Kunde seine Geheimkennzahl eingegeben hat. Ein Sicherheitsmerkmal ist also, dass für das Banking die Chipkarte und die PIN zwingend notwendig sind. Wer beides nicht hat, kann auf das Konto nicht zugreifen.
Für einen Angreifer ist es außerdem unmöglich, die Nachricht abzufangen und zu manipulieren (also zum Beispiel den Empfänger einer Überweisung auszutauschen), ohne dass diese digitale Unterschrift zerstört wird und die Bank den Auftrag abweist. Da die Bank den Schlüssel ihres Kunden kennt, kann ein Angreifer auch nicht die veränderte Nachricht mit einem eigenen Schlüssel signieren. So ist auch ein man-in-the-middle-Angriff nicht mehr möglich.
Die auf dem Markt verfügbaren Kartenleser unterteilen sich in vier Sicherheitsklassen, wobei für HBCI-Banking bisher nur die ersten drei Klassen interessant sind.
Bei der Klasse 1 handelt es sich nur um einen “dummen” Kartenleser. Die PIN-Abfrage und die Verschlüsselung erfolgen weiterhin am PC – und sind dadurch nach wie vor zum Beispiel über einen Trojaner angreifbar. Vom Sicherheitsaspekt her macht es deshalb wenig Sinn, sich ein solches Gerät zuzulegen.
Geräte der Klasse 2 verfügen über eine eigene Tastatur für die Eingabe der PIN. Die PIN-Abfrage und die Verschlüsselung erfolgt hier im Kartenleser, ohne dass ein kompromittierter PC den Prozess mitlesen oder die verschlüsselte Nachricht nachträglich verändern könnte. Dennoch könnte ein spezialisierter Trojaner zum Beispiel eine Überweisung manipulieren, bevor sie von dem Kartenleser verschlüsselt wird. Der ahnungslose Kunde würde dann in gutem Glauben die manipulierte Überweisung digital signieren.
Geräte der Klasse 3 verfügen über ein eigenes Display und wären so theoretisch in der Lage, eine Überweisung vor der Signierung noch einmal anzuzeigen, um auch die letzte Angriffsmöglichkeit auszuschließen. Bei HBCI wird das bisher leider nicht unterstützt, so dass immer noch eine – wenn auch sehr unwahrscheinliche – Angriffsmöglichkeit bleibt. Erst eine neue, Secoder genannte Generation soll dies letztendlich umsetzen. Geräte der Klasse 3 können zusätzlich eine GeldKarte zu Hause aufladen oder damit Zahlungen im Internet vorzunehmen, sofern die eigene Bank dies gestattet.
Erste Schritte
Bevor man nun gleich einen Kartenleser kauft, sollte man als erstes mit seiner Bank klären, ob sie überhaupt einen HBCI-Zugang anbietet (das ist nicht selbstverständlich!), wie der Zugang freigeschaltet werden kann und was es kostet. In der Regel muss man einen Antrag für die Teilnahme am HBCI-Banking ausfüllen und erhält dann gegen eine Gebühr die HBCI-Karte und die dazu gehörende Geheimzahl.
Den passenden Kartenleser kann man im Handel und meistens auch bei der Bank kaufen. Der Kartenleser ist das wichtigste Glied in der Sicherheitskette. Ein Schutz ist nur gewährleistet, wenn das Gerät nicht manipuliert wurde. Daher sollte man beim Kauf unbedingt auf die Seriösität des Händlers achten und vermeintliche Schnäppchen aus zwielichtigen Quellen lieber meiden. Das Gerät sollte ein unversehrtes Siegel am Gehäuse haben. Fehlt das Siegel oder ist es beschädigt, sollte man vor der Inbetriebnahme Rücksprache mit dem Hersteller halten.
Zuletzt benötigt man noch eine HBCI-fähige Banking-Software, mit der man auf sein Konto zugreifen und Transaktionen vornehmen kann. Hier gibt es verschiedene freie und kommerzielle Produkte unterschiedlicher Qualität.
Installation des Kartenlesers
Dieses Special bezieht sich auf die Installation der Kartenleser-Serie cyberJack von Reiner SCT. Diese Geräte sind zwar verhältnismäßig teuer, sind aber offiziell Linux-tauglich und genießen sogar direkte Linux-Unterstützung vom Hersteller. Laut Aussage des Herstellers wird es für den cyberJack e-com außerdem ein Firmwareupdate geben, mit dem dann der Secoder-Standard unterstützt wird.
In Fedoras yum-Repository befinden sich bereits Treiber für den Kartenleser, allerdings sind sie recht veraltet und arbeiten fehlerhaft. Stattdessen sollte der aktuelle Treiber direkt von der Download-Seite des Herstellers heruntergeladen und installiert werden, zum Beispiel so:
rpm -ivh http://support.reiner-sct.de/downloads/LINUX/V3.2.0/ctapi-cyberjack-3.2.0-1.fc7.i386.rpm \ http://support.reiner-sct.de/downloads/LINUX/V3.2.0/ctapi-cyberjack-ifd-3.2.0-1.fc7.i386.rpm
Die Treiber sind zwar für Fedora 7 ausgelegt, eignen sich aber auch für Fedora 8 und Fedora 9. Für x86_64-Systeme stehen entsprechende Pakete zur Verfügung.
Alle Anwender, die auf den Leser zugreifen dürfen, müssen danach in die Gruppe cyberjack eingetragen werden. Im folgenden Beispiel, als Root ausgeführt, wird der User abc in die Gruppe hinzugefügt:
usermod -aG cyberjack abcAlternativ geht dies über System > Administration > Benutzer und Gruppen.
Falls der Kartenleser bereits eingesteckt war, sollte er jetzt noch einmal neu eingesteckt werden. Außerdem muss der Anwender, der den Kartenleser verwenden möchte, sich neu anmelden, damit die Gruppenänderung wirksam wird.
Ein erster Test erfolgt durch Aufrufen des Kommandos cyberjack (als normaler Anwender, nicht als root). Das Tool prüft den Zugriff auf den Kartenleser. In der Datei cyberjack-hints.log befindet sich anschließend ein Protokoll mit einer ausführlichen Fehlerbeschreibung und Lösungsvorschlägen im Fehlerfall. Wenn ein erster Zugriff auf den Kartenleser einfach nicht gelingen möchte, hilft eventuell ein Neustart des Systems.
Hibiscus
Eine bekannte und freie HBCI-Software ist Hibiscus. Leider gibt es kein fertiges RPM, das mit yum installiert werden könnte. Wir müssen die Installation von Hand vornehmen.
Hibiscus ist in Java programmiert. Bei Fedora 9 ist Java bereits vorinstalliert, unter Fedora 8 kann es mit yum --enablerepo=development install java-1.6.0-openjdk{,-plugin} installiert werden. Auf beiden Systemen muss außerdem noch eine libstdc++-Kompatibilitätslibrary mit yum install compat-libstdc++-33 installiert werden.
Anschließend kann Hibiscus und das Framework Jameica als ZIP-Datei mit der dazu gehörenden .asc-Datei heruntergeladen werden.
Die .asc-Dateien enthalten jeweils die digitale Unterschrift des Entwicklers für die dazu gehörenden zip-Dateien. Mit Hilfe der Signatur kann geprüft werden, ob die beiden Programmpakete nicht manipuliert wurden. Das mag ein wenig sinnlos erscheinen, da wir ja die Software direkt vom Server des Entwicklers herunterladen, aber es gab schon Fälle, wo Software auf dem Originalserver manipuliert wurde. Eine genaue Beschreibung des Prüfungsvorgangs befindet sich auf der jeweiligen Download-Seite des Pakets. Im Wesentlichen besteht die Arbeit darin, den öffentlichen Schlüssel des Entwicklers von einem Schlüsselserver herunterzuladen und mit gnupg anschließend die heruntergeladene Zip-Datei mit der digitalen Signatur in der .asc-Datei zu vergleichen. Erst wenn diese Prüfung erfolgreich war, sollten wir mit der Installation beginnen.
Der Installationsvorgang selbst ist relativ einfach. Dazu wechseln wir als Root in das Verzeichnis /opt, packen dort zuerst das Jameica-Paket aus, und in dessen plugins-Verzeichnis dann das Hibiscus-Paket:
cd /opt unzip /pfad/zu/jameica.zip cd jameica/plugins unzip /pfad/zu/hibiscus.zip
Hibiscus kann danach bereits gestartet werden, indem man als normaler Anwender /opt/jameica/jameica.sh (bzw. /opt/jameica/jameica-amd64.sh auf einem x86_64-System) aufruft.
Beim ersten Start erwartet Hibiscus die Eingabe eines neuen Passworts. Mit diesem Passwort werden die Hibiscus-Dateien auf dem eigenen Rechner gegen neugierige Blicke anderer Benutzer geschützt.
Als nächstes wird der Kartenleser konfiguriert, indem er aus der Liste der Kartenleser ausgewählt wird. Auf einem 32 bit-System sollte die Auswahl des richtigen Kartenlesers bereits ausreichen. Eine x86_64-Installation ist dagegen etwas zickiger. Hier konnte ich den Cyberjack-Leser nur einrichten, indem ich “Benutzerdefinierter Leser” auswählte, als Port COM2/USB2 auswählte und als CTAPI Treiber-Datei die Datei /usr/lib64/libctapi-cyberjack.so einstellte. Das Feld “Tastatur des PCs zur PIN-Eingabe verwenden” sollte außerdem aus Sicherheitsgründen stets nicht markiert sein. Das Ergebnis sieht dann so aus wie auf dem Screenshot rechts.
Nach einem Klick auf “Einstellungen testen” sollte Hibiscus bereits das Einlegen der HBCI-Karte und die Eingabe der PIN anfordern und anschließend eine positive Meldung zurückgeben.
Danach wird die HBCI-Karte eingerichtet. In der Regel ist es dafür erforderlich, eine Kundennummer einzutragen, die von der Bank zusammen mit der Karte oder der PIN verschickt wurde. Hibiscus bietet dafür einen eigenen, für sich selbst sprechenden Dialog.
Als letzten Schritt werden die Konten eingerichtet. Hibiscus bietet dafür die Option, die auf der HBCI-Karte gespeicherten Konten zu übernehmen. Alternativ können die Konten aber auch manuell angelegt werden.
Hibiscus ist jetzt bereit für das Online-Banking. Man kann nun die Transaktionen abrufen, Überweisungen tätigen oder Daueraufträge einrichten und ändern. Vor jedem Zugriff auf das Online-Banking fordert Hibiscus das Einlegen der HBCI-Karte und die Eingabe der PIN an.
Alternativen
Neben Hibiscus gibt es noch weitere kommerzielle und freie HBCI-Anwendungen.
Eine kommerzielle Banking-Software ist StarMoney. Sie ist auch unter Linux installierbar und bietet eine Vielzahl an Funktionen an. Da StarMoney unter Linux mit Wine läuft, empfiehlt es sich, vorher die Testversion von der Website des Herstellers herunterzuladen und gründlich zu testen.
Für KDE gibt es das freie kmymoney2 (installierbar mit yum install kmymoney2). Es gelang mir allerdings nicht, sie mit dem HBCI-Kartenleser zu verbinden.
Eine weitere freie Alternative ist GnuCash (installierbar mit yum install gnucash). Es handelt sich dabei um eine vollwertige Finanzbuchhaltungssoftware, die mitunter doppelte Buchführung und Rechnungsstellung für Kunden und Lieferanten beherrscht und dadurch für das einfache Home-Banking vielleicht schon eine Nummer zu groß ist.
Weitere Möglichkeiten
Durch Einstecken einer Karte mit Geldkartenchip und Aufruf des Kommandos cjgeldkarte wird der Geldkartenbetrag auf der Konsole ausgegeben. Es gibt auch die Möglichkeit, die GeldKarte zu Hause aufzuladen oder sie zur Bezahlung im Internet zu verwenden. Das dafür notwendige Browser-Plugin scheint es allerdings bisher nur für Windows zu geben.
Der Kartenleser ist außerdem technisch in der Lage, Krankenkassenkarten und (über den beigelegten Adapter) auch Handy-SIM-Karten auszulesen. Leider konnte ich dafür aber bisher keine brauchbare Linux-Software finden.
- Sicheres Online-Banking mit HBCI
- Fedora 15: cyberJack-Kartenleser in Betrieb nehmen
Comments
Danke für den tollen Artikel! Jameica + Hibiscus sind echt eine tolle Kombination, nutze sie aber ohne Karte, sondern mit PIN/iTAN.














