Sichere deine Geldbörse

Aus Bitcoin Wiki
Wechseln zu: Navigation, Suche

Einführung

Die Sicherheit der Geldbörse kann in zwei unabhängige Ziele geteilt werden:

1. Gegen Verlust sichern

2. Gegen Diebstahl sichern

Im Falle einer zur Zeit nicht angemessen gesicherten Geldbörse (z.B. mit schwachem Passwort im Internet hochgeladen):

3. Neue, sichere Geldbörse erstellen (mit einem angemessen langen Passwort)

Technischer Hintergrund

Die Börse besitzt einen Fundus an eingereihten Schlüsseln. Standardmäßig sind 100 Schlüssel im Key Pool. Die Größe dessen kann man mit dem "-keypool"-Parameter in der Befehlszeile einstellen. Wenn du aus irgendeinem Grund eine neue Adresse brauchst, wird diese nicht neu erstellt, sondern aus dem Fundus entnommen. Ein neuer Schlüssel wird erstellt, um den Fundus wieder auf 100 Schlüssel füllen zu können. Wenn als erstes ein Backup erstellt wird, enthält es die alten Schlüssel + 100 unbenutzte. Nach einer Transaktion hat es 99 unbenutzte. Nach 100 Aktionen, die einen neuen Schlüssel benötigen, werden Schlüssel benutzt, die nicht im Backup vorhanden sind. Da das Backup nicht die Schlüssel nach den 100 Stück besitzt, kann dieses Backup bei einer Wiederherstellung evtl. zu Verlust von Bitcoins führen.

Die Sicherheit von Guthaben hängt bei Bitcoin von drei Bedingungen ab:

  1. Die Vertraulichkeit (Geheimhaltung) der privaten Schlüssel für die gesamte Zeit von der ersten Erzeugung bis zur letzten Verwendung
  2. Die Integrität der Software auf dem benutzten System.
  3. sowie dem Schutz der Geldbörse vor Verlust z.B. durch Versagen der Festplatte

Ein Computer, bei dem nicht sowohl Vertraulichkeit als auch Integrität sicher gestellt sind, ist kompromittiert. Das bedeutet, dass nicht mehr ausgeschlossen werden kann, dass Bitcoins gestohlen werden. Ein Computer, auf der Malware in Form von Trojanern installiert wurde, ist immer kompromittiert, da zum einen die Schlüssel "gestohlen" werden konnten und zum andern die Software auf dem Computer nicht mehr unter Kontrolle des Anwenders ist. Ein kompromittiertes System kann nur wieder in einen sicheren Zustand gebracht werden, indem es vollständig neu installiert wird und alle Sicherheitsupdates angewandt werden. Ein "Desinfizieren" von virenbefallenen Programmen reicht nicht aus!

Ein Passwort, das zu einer Datensicherung gehört, muss ebenso wie die Dateien selber dauerhaft vor Verlust geschützt werden, anderenfalls ist die Sicherung im Zweifelsfall wertlos.

Sichern der Vertraulichkeit und Integrität von Geldbörse und Software

Anlegen einer neuen Geldbörse

In dem Fall, dass die Geldbörse möglicherweise oder tatsächlich in einem kompromittierten Zustand gespeichert oder verbreitet wurde, ist es klug, eine neue Geldbörse anzulegen und alle Geldbeträge in der alten Geldbörse auf die neue zu übertragen. Nachdem dies geschehen ist, kann jemand, der Kenntnis der alten privaten Schlüssel erlangt hat, diese nicht mehr benutzen, um über Geldbeträge zu verfügen.

Das kann zum Beispiel sinnvoll sein, wenn jemand eine Geldbörse mit einem Passwort von 12 Zeichen bei einem Dienst online gespeichert hat. Inzwischen können Passwörter mit 12 bis zu ungefähr 15 Zeichen entschlüsselt werden und die privaten Schlüssel sind nicht mehr sicher. Die Geldbörse lediglich neu zu verschlüsseln, reicht nicht aus.

Anlegen eines sicheren und geschützten Bereichs

Komplexe und umfangreiche Programme wie zum Beispiel Webbrowser sind nie vollständig sicher. Deswegen ist es ausgesprochen sinnvoll, das Bitcoin Client Programm nicht mit der Benutzerkennung auszuführen, mit der man im WWW surft oder E-Mails liest. Die modernen Betriebssysteme können Programme für unterschiedliche Benutzerkennungen recht wirkungsvoll voneinander abschotten.

Exkurs: Sichere Passworte

Passwörter

Eine bewährte Methode zur Erzeugung von sicheren, aber mit etwas Lernaufwand merkbaren Passworten ist wie folgt:

  • Man denkt sich einen sinnlosen Satz aus wie
"Dreißig Dohlen fliegen rückwärts zum Mond, aber eine Fahrkarte haben sie nicht." 

Je skurriler der Satz, desto besser kann man ihn sich merken.

  • Die Anfangsbuchstaben und Zahlen verwendet man für das Passwort:
30DfrzM,a1Fkhsn.
  • Nun wird man kreativ und ersetzt ein paar Zeichen, z.B. "A" sieht doch ähnlich aus wie "4":
30DfrzM-4lFkhsn;
  • jetzt streut man noch ein paar Zeichen ein, die es auf englischen Tastaturen nicht gibt(Tipps):
3ß0þDförzM฿-4lFkhsn;

Starke Passwörter sind heute, wo gewaltige Rechenkapazitäten verfügbar sind, etwa 15 bis 20 Zeichen lang. Die wenigsten Menschen können sich so lange Passwörter fehlerfrei merken, besonders wenn sie länger Urlaub machen. Deswegen schreibt man sich das Password auf und steckt es in seine Brieftasche.

  • Zum Schutz gegen unbefugte Verwendung hängt man noch einige Zeichen an, die man sich wirklich im Kopf merkt.

Nun ist es so, dass ein vergessenes Password mindestens so schlecht ist wie ein geknacktes. Einen Button "Passwort vergessen, neues per E-Mail zuschicken" gibt es bei Bitcoin nicht. Also folgt aus "Passwort weg" unweigerlich "Geld weg".

  • Das erhaltenen Passwort schreibt man deswegen auf, und bewahrt es z.B. in seinem Bankschließfach (Kosten 40 Euro / Jahr) oder in einem feuersicheren Tresor auf. Da ist es "ziemlich" sicher vor Datendieben.
Passphrasen (Passwortsätze)
  • Eine Alternative zu Passwörtern, die deutlich leichter zu merken ist, aber gegenüber Techniken wie dem Crackern mit Rainbow Tables genauso sicher ist die Verwendung von Passphrasen. Sichere Passphrasen für Dateien sollten aus mindestens sechs ungewöhnlichen Wörtern bestehen und mindestens 35 Zeichen Länge haben. Dieser Comic von XKCD erklärt das Prinzip.
  • Ein Beispielsatz wäre: "Die Zitrone flambierte dem Okapi eine phosphoreszierende Absolution."
  • Wesentlich für die Stärke dieser Methode sind technische Gründe: Sobald ein Password eine gewisse minimale Komplexität erreicht hat, ist die schnellste Methode, das Passwort zu knacken, eine Brute-Force-Suche mit Rainbow Tables und Tabellen. Und da bei dieser Methode die Länge des Passworts der ausschlaggebende Faktor ist, schlagen lange Passphrasen, die vergleichsweise viel besser zu merken sind, kurze sehr komplexe Passwörter.
  • Tiefergehende englischsprachige Informationen sind in der Passphrase FAQ von Randall T. Williams.
  • Vorsicht: Völlig ungeeignet sind fest stehende Ausdrücke und Redensarten.

Spezielle Linux-Distributionen

Ein Windows-System umfassend abzusichern, ist aufwendig und schwierig. Eine Absicherung, welche für die Verwaltung fünfstelliger Beträge angemessen ist, setzt Kenntnisse voraus, welche der durchschnittliche Anwender nicht hat.

Es gibt als Alternative einige spezielle Linux-Distributionen, welche einen eigens für Bitcoin angelegten gesicherten Bereich schaffen können und fast keine Einrichtung brauchen:

  • c't Bankix, eine für das Online-Banking angepaßte, natürlich kostenlose Variante von Ubuntu, die vom renommierten deutschem Heise-Verlag erstellt wurde. Nach dem (wichtigem) Updaten wird das System schreibgeschützt und ist dann nicht mehr durch Austausch von Software manipulierbar.
  • Damn Small Linux ist ein beliebtes, kleines Debian-basiertes Linux, das nur die wichtigsten Funktionen enthält und somit weniger Angriffsflächen liefert. Die Ableitung von Debian garantiert zügige und gewissenhafte Sicherheits-Updates.
  • Knoppix ist eine populäre Live-CD Distribution mit hervorrragender Hardware-Erkennung, welche einen etwas größeren Umfang als Damn Small Linux hat und z.B. Unterstützung für Blinde und Sehbehinderte bietet.
  • LinuxCoin, das viele Zusatzfunktionen z.B. zum Minen bietet


Die folgenden Distributionen sind nur für Benutzer mit guten Kenntnissen geeignet, stellen aber aufgrund exzellenter Sicherheitsmerkmale interessante Ausgangspunkte für Bitcoin-Appliances dar:

  • Tin Hat Linux ist ein Hardened Gentoo-Derivat, das neben einer sehr geringen Größe und einer sehr umfassenden Verschlüsselung interessante zusätzliche Sicherheitsfunktionen bietet, wie beispielsweise Grsecurity.
  • Alpine Linux nutzt ähnlich wie Tin Hat Linux u.a. Kernelfunktionen mit Stack Smashing Protection und verwendet statt der gängigen glibc die uClibc, was bedeutet dass der Bitcoin-Client für diese Distribution eigens kompiliert werden muss.

Linux

Geschütztes Benutzerkonto

Der erste Schritt ist, einen neuen Benutzer anzulegen, das geht mit dem Kommando:

sudo adduser new_user_name

Auf die Meldung "Geben Sie einen neuen Wert an oder drücken Sie ENTER für den Standardwert" braucht man nur die Returntaste zu drücken.

Dann meldet man sich als der neue Benutzer an, z.B. mit "Benutzer wechseln" (bei Ubuntu unter dem Menü zum Abmelden). Wenn man angemeldet ist, sucht man die Dateiverwaltung, wählt in dieser das Home-Verzeichnis aus (Symbol mit dem Haus), dann mit der rechten Maustaste auf "Eigenschaften", dann die Zugriffsberechtigungen. Hier wählt man "Other" und setzt die Berechtigungen auf "niemand". Mit diesem Schritt können andere Programme anderer Benutzer die Geldbörse nicht mehr lesen.

Den neu angelegten sicheren Benutzer sollte man, um ihn auch sicher zu halten, ausschließlich für Bitcoin benutzen.

Es ist außerdem eine gute Idee, das Home-Verzeichnis dieses Benutzers zu verchlüsseln mit dem Programmpaket ecryptfs-utils.

  1. Wenn das Home-Verzeichnis nicht leer ist, solte zunächst ein Backup angelegt werden, indem der Inhalt auf eine CD oder einen Flash-Spaichger kopiert wird.
  2. Nun ecryptfs-utils installieren (für Ubuntu: sudo apt-get install ecryptfs-utils)
  3. aus X11 (dem graphischen System) abmelden und mit Ctrl+Alt+F1 in der Linux-Konsole anmelden - wenn man unter X11 eingeloggt ist, kann das Home-Verzeichnis nicht verschlüsselt werden.
  4. Das aktuelle Verzeichnis so wechseln, dass es nicht im Home-Ordner liegt, z.B. "cd /".
  5. Das Migrations-Tool ausführen: (in Ubuntu: sudo ecryptfs-migrate-home -u username)
  6. Wenn das geklappt hat, kann man nun ALT+F8 drücken um zurückzugehen und sich unter X11 einzuloggen.
  7. Das Kommando 'ecryptfs-unwrap-passphrase' ausführen und unbedingt den Code, den man erhält, aufschreiben und auf einem sicheren Medium speichern. Ohne diesen Code kann man auf die Daten - einschließlich der Geldbörse - nicht zugreifen, wenn das System nicht funktioniert.
  8. Das Kommando 'ecryptfs-setup-swap' ausführen, welches die Swap-Partition verschlüsselt. Sonst können Schlüssel aus der Geldbörse im Klartext auf die Swap-Partition gelangen, wo sie gestohlen werden könnten. Das bedeutet leider auch, dass "Ruhezustand" bzw. Hibernate nicht mehr benutzt werden kann, weil der Bootloader das Speicherabbild nicht wiederherstellen kann. Eine Alternataive ist es, die Swap-Partition beim Herunterfahren des Rechners (also nach der Deaktivierung des virtuellen Speichers) mit zufälligen Daten zu überschreiben.

(Anleitung aus [1])

Weitere Informationen

Windows

  • Einen extra Benutzer anlegen, unter dem nur die Bitcoin-Software ausgeführt wird. So ist die Geldbörse vor Schadcode in anderen Nutzerapplikationen etwas geschützt:

Browser-Sicherheit

Firefox

Um den Browser abzusichern, startet man Firefox, geht ins Menü "Edit" (Bearbeiten), und wählt "Preferences" (Einstellungen).

  • Nun fängt man bei den Karteikarten links an, wählt unter "Startup" die Option "Show a Blank Page" (Leere Startseite).
  • Unter "Content" (Inhalt),
    • die Option "Load Images automatically / Bilder automatisch laden" abwählen,
    • ebenso "Enable Javascript/Javascript aktivieren" abwählen.
  • In der Karteikarte "Privacy/Datenschutz" im Menü "History / Verlaufsgeschichte" auswählen "Never remember history" / "keinen Verlauf speichern".
  • In der Karteikarte "Security" im Abschnitt "Passwords"
    • die Option "remember Passwords / Passwörter speichern" abwählen,
    • ebenso "use a master password" / "Masterpasswort".
  • Schließlich in der Karteikarte "Advanced" / "Erweitert" die Option
    • "Automatically check for updates" abwählen,
    • ebenso "Add-ons" und
    • "Search engines"/"Suchmaschinen" abwählen.

Wenn Javascript deaktiviert ist, wird die Seite linux download page zum Downloaden neuer Versionen des Bitcoin Clients nicht mehr automatisch einen Download starten, deswegen muss man auf den Link "direct link" beim Hinweis "Problems with the download? Please use this 'direct link' or try another mirror." klicken. Nachdem man sich die Mühe gemacht hat, überprüft man natürlich beim Herunterladen neuer Bitcoin Clients die Prüfsummen, die auf der Sourceforge Seite angegeben sind, mit dem Programm sha1.

Schutz vor Datenverlust: Backup

Die einzige Datei die man sichern muß, ist die wallet.dat. Vorher sichergehen, dass Bitcoin nicht mehr läuft! Am besten wäre es, die Datei zu verschlüsseln und irgendwo sicher zu verstauen.

Du kannst auch den backupwallet-JSON-RPC Befehl nutzten, um im laufenden Betrieb ein Backup zu erstellen.

Bitcoin-Ordner finden

Der Bitcoin-Ordner ist der Ordner, in dem sich die Daten mitsamt der Datei wallet.dat befinden.

Windows

Klicke auf "Start", dann auf Ausführen und gebe dies ein:

%APPDATA%\BitCoin

Ein Ordner sollte sich nun öffnen, für die meisten wäre es:

C:\Dokumente und Einstellungen\Benutzername\Anwendungsdaten\BitCoin (XP)
C:\Users\Benutzername\Appdata\Roaming\BitCoin (Vista und 7)


Linux

Bitcoin sollte einen versteckten Ordner im Home-Verzeichnis des ausführenden Benutzers erstellen.

~/.bitcoin/

Sollte es sich nicht dort befinden, kann man es evtl. durch

find / -name wallet.dat -print 2>/dev/null

finden. Oder als Root

updatedb

gefolgt von

locate wallet.dat

Die handlichste Backup-Methode unter Linux ist vermutlich, die wallet.dat auf eine bzw. mehrere dafür verwendete USB-Sticks bzw. Speicherkarten zu kopieren, die an einem sicheren Ort (feuersicherer Tresor, Banksafe, Aquarium mit Piranhas, etc) aufbewahrt werden.

Individuelle Verschlüsselung der wallet.dat
  • Zur individuellen Verschlüsselung der Geldbörse ist das plattformübergreifend verfügbare Programm ccrypt gut geeignet. Es verschlüsselt mit einer Variante des vom AES-Standard anerkannten Rijndael-Algorithmus, der als sehr sicher gilt. Die Klartext-Version der Wallet.dat wird dabei automatisch ersetzt. Wie bei allen starken Verschlüsselungen ist eine sorgfältige Sicherung von Daten und Schlüsseln dringend zu empfehlen - unter Linux ist das Verlustrisiko durch Vergessen der Schlüssel bisher viel höher als durch Rechnereinbrüche und Malware.
  • Zur automatischen Speicherung verschlüsselter Kopien ist GnuPG gut geeignet. Man braucht dabei zum Verschlüsseln nur den öffentlichen Schlüssel, erst zum Entschlüsseln eines Backups wird der private Schlüssel gebraucht, den man sonst sicher im Safe aufbewahren kann. Das Verwenden eines festen Schlüsselpaares verringert die Gefahr eines Schlüsselverlustes durch unbemerkte Tippfehler bei der Eingabe.
  • Einen zusätzlichen Schutz gegen Angriffe mit Keyloggern bieten Smartcards und Hardware Tokens wie der Crypto Stick der German Privacy Foundation oder die Fellowship Smartcard. Der besondere Vorteil ist, dass man GnuPG-Schlüssel, die aufgrund ihrer Länge sehr sicher sind, auf der Smartcard speichern kann. Ein sechsstelliger PIN-Code schützt den Inhalt der Smartcard; wird er mehrfach falsch eingegeben, so wird der Inhalt unwiderruflich gelöscht. Anleitung hier.
  • Zusammen mit dem FUSE-Dateisystem EncFS lassen sich so auch einzelne Dateien wie die wallet.dat individuell sichern. Das gesamte Bitcoin-Verzeichnis kann allerdings wegen der verwendeten Datenbank nicht mit EncFS verschlüsselt werden.

Mac

Hinweis: die folgende Anleitung ist mangels Mac nicht vom Übersetzer überprüft. Bitte prüfen und gegebenenfalls korrigieren, dann Hinweis entfernen!

Das Bitcoin-Verzeichnis mit der wallet.dat befindet sich normalerweise hier:

~/Library/Application Support/Bitcoin/
Alle Daten sichern (500 Megabyte)

Mit diesen Schritten werden alle Daten von Bitcoin (Geldbörse und Block chain) auf ein verschlüsseltes Festplatten-Image gesichert:

  1. Disk Utility öffnen
  2. "New Image" anklicken, 500MB, 128-bit oder 256-bit (schneller oder sicherer) Verschlüsselung, eintelne Partition angeben.
  3. An einem Platz kopieren, wo man das Image nicht verlieren wird (z.B. Wuala, Strongspace ofer was auch immer)
  4. Ein starkes und sicheres Passwort wählen
  5. Alles aus ~/Library/Application Support/Bitcoin/ in das Image kopieren
  6. Symlink zum alten Platz anlegen, so dass die App es benuutzen kann
ln -s /Volumes/Bitcoin ~/Library/Application Support/Bitcoin

Nicht vergessen, das Image vor der Benutzung von Bitcoin zu mounten und nachher zu unmounten.

Backup der Geldbörsen-Datei wallet.dat alleine (40MB)

Diese Schritte sichern nur die Datei wallet.dat. Das bewirkt ein kleineres Speicherabbild, ist aber komplizierter.

  1. Disk Utility öffnen
  2. "New Image" anklicken, 40MB, 128-bit oder 256-bit, single partition wählen.
  3. An einem Ort speichern, wo man das Backup nicht verlieren wird.
  4. Ein sicheres und starkes Passwort wählen
  5. Die Datei wallet.dat in das Image verschieben
  6. Symlink zum alten Ort anlegen, so dass die App die Datei finden und benutzen kann
ln -s /Volumes/Bitcoin/wallet.dat ~/Library/Application Support/Bitcoin/wallet.dat

Nicht vergessen, das Image vor der Benutzung von Bitcoin zu mounten und nachher zu unmounten.


Achtung: Wenn man die Bitcoin applikation startet, ohne dass das Image gemounted ist, wird das Programm das Symlink (eine Art Shortcut) mit einer neuen wallet.dat überschreiben. Keine Panik! Benenne die neue wallet.dat um oder lösche sie, mounte das Image, und lege einfach ein neues Symlink an. Die alte wallet.dat darf natürlich auf keinen Fall gelöscht werden.

Automation: Mit dem Programm Automator (enthalten in OS X) kann man die Wallet automatisch mounten und die Bitcoin App starten.

Alternativ kann das folgende Shell-Skript benutzt werden, welches die wallet.dat automatisch entschlüsselt, den Bitcoin Client startet, und sie nachher wieder verschlüsselt. Das Skript funktioniert sowoghl for für OSX und Linux: bitcoin-launch-script


Allgemeine Lösung

wallet.dat ist normalerweise nicht verschlüsselt, jeder der Zugriff auf die Datei hat, kann über die Coins frei verfügen. Du kannst deine wallet.dat auch mit einem dieser Programme verschlüsseln, sollte es nur die kleinste Wahrscheinlichkeit geben, dass jemand anderes Zugriff hat.

Achtung: Verschlüsselung hilft nicht nachträglich und sie schützt auch nur höchst lückenhaft vor Malware!

Verschlüsselung mit Smart Card

Ordner können auch mit einer GnuPG-kompatiblen SmartCard verschlüsselt werden. Eine sehr sichere Lösung ist der Crypto Stick der German Privacy Foundation:

Überblick Crypto Stick

Intallation und Benutzung


Aufbewahren des Archives

Am einfachsten wäre es, das Archiv als Anhang einer E-Mail an sich selbst zu senden. Zudem kann man die wallet.dat innerhalb des Archivs noch in etwas unauffälliges umbenennen, genauso wie das Archiv selber.

Auch eine Sicherung auf Flash-Medien / Memory Sticks und eine Aufbewahrung an sicheren Orten ist eine sinnvolle Lösung.

Für erfahrene Benutzer kann auch Steganographie in Betracht kommen. Für Linux-Benutzer gibt es steghide.


BOTG: Bitcoin Off The Grid

  • Eine weitere Alternative, die für höchste Sicherheitsanforderungen geeignet ist, stellt "BOTG - Bitcoin Off-The-Grid" dar, Info in der Ankündigung zu LinuxCoin. Dabei handelt es sich um ein Skript, das ohne Internetverbindung ein Schlüsselpaar erzeugen kann. Da der Private Schlüssel auf einem System erzeugt wird, das gar keinen Internetanschluss hat, und er offline gespeichert wird, kann er auch nicht über Internet abhanden kommen. Der öffentliche Schlüssel kann weiter gegeben werden und ganz normal Transaktionen empfangen, welche im Block Explorer nachgeschaut werden können. Erst wenn man das Guthaben verwenden möchte, muß man den privaten Schlüssel in einen Bitcoin Client importieren. Ab dann gelten die normalen Sicherheitsvorkehrungen.