Sicherheit bei Bitcoin-Schlüsseln

in #deutsch6 years ago

Wie schwer ist es, einen privaten Schlüssel zu erraten?

Grundsätzlich sind Bitcoin-Adressen sicherer als Bankkonten oder Tresore. Den mathematischen Vergleich überlasse ich aber Anderen.

Bitcoin ist noch nie gehackt worden!

Die bekannten Fälle, bei denen Bitcoin unlauter den Besitzer wechselten, hatten andere Ursachen. Entweder wurden Kryptobörsen gehackt - und da gibt es viele Möglichkeiten, angefangen bei Social Engineering bis hin zu Schlamperei und mangelnden Datensicherungen. Oder man verkauft seine BTC gegen eine Kreditkartenüberweisung, die später rückgängig gemacht wird (ein Apple-Mitbegründer).

Es wurden immer nur einzelne Punkte im Bitcoin-Netzwerk kompromittiert. Aber das Bitcoin-Netzwerk an sich ist sehr sicher.

Grundsätzlich gilt:

Je länger ein privater Schlüssel ist,
umso schwerer ist es, ihn zu erraten - egal ob PGP oder Bitcoin.

Bitcoin verwendet den Hashing-Algorithmus sha256. Das bedeutet, ein privater Schlüssel ist immer 256 Bit lang. Durch ein entsprechendes Verfahren wird die Bitfolge in lesbare Buchstaben übersetzt, wobei einige sich ähnelnde Zeichen nicht verwendet werden. Das betrifft beispielsweise L, l, i, I, O.

Was ist eine Hashfunktion?

Ein Hashfunktion ist eine mathematische Einwegfunktion, die nicht rückgerechnet werden kann. Es besteht in der Theorie eine 1:1-Beziehung zwischen dem, was in die Funktion reingeht (z.B. Text beliebiger Länge), und dem, was rauskommt (Zeichenfolge mit fester Länge). Es ist aber gänzlich unmöglich, vom Ergebnis auf die Quelldaten zu schließen. Dies kann nur mittels einer Brute-Force-Attacke, d.h. durch erneutes Rechnen der Einwegfunktion mit bekannten Quelldaten erfolgen.

Die ersten Hash-Algorithmen wurden vom NIST im Auftrag der NaSA (mit einem A) entwickelt. Viele Kryptowährungen verwenden Hash-Funktionen. Ich will das nicht weiter vertiefen, da es hier um mehr als ums Hashen geht. (Siehe Studie der NaSA von 1996: Wie man eine Münze macht - Die Kryptografie des anonymen elektronischen Bargelds)

Schlüsselerzeugung bei Kryptos

Die übliche Reihenfolge beim Erzeugen von Kryptoschlüsseln:

  1. Generieren eines Seeds (Urschlüssel, aus dem zahlreiche weitere private Schlüssel erzeugt werden können)
  2. Berechnen des ersten privaten Schlüssels aus dem Urschlüssel
  3. Berechnen des zugehörigen öffentlichen Schlüssels aus dem privaten Schlüssel
  4. Berechnen der Krypto-Adresse aus dem öffentlichen Schlüssel

Das Verfahren von 1 bis 4 ist bekannt. Es liefert für eine Kryptowährung immer das gleiche Ergebnis für die erste, zweite, dritte, ... Adresse aus einem Urschlüssel. Das Hauptgeheimnis ist die Erzeugung des Urschlüssels. Dazu gibt es unterschiedliche Verfahren, die hier ebenfalls nicht Gegenstand sind.

Wie viele Bitcoin-Schlüsselpaare gibt es?

Da Bitcoin den sha256-Algorithmus verwendet und dieser immer 256 Bit (32 Byte) ausgibt, existieren theoretisch 2^256 sich unterscheidende Zeichenketten als mögliche Ausgaben, d.h. 1,1579209 mal 10^77.

Nach der doppelten Anwendung von sha256 wird ein weiterer Algorithmus namens RIPEMD-160 aufgerufen. Dieser hat nur 2^160 verschiedene Ausgaben. Dadurch reduziert sich die Anzahl möglicher verschiedener Bitcoin-Adressen.

Zitat von https://www.blockchaincenter.net/wie-viele-bitcoin-adressen-gibt-es/:

Es gibt 2^160 = 1.461.501.637.330.902.918.203.684.832.716.283.019.655.932.542.976 verschiedene Bitcoin-Adressen.

Eine Bitcoin-Adresse ist eine 27-34 stellige alpha-nummerische, aus 58 verschiedenen Zeichen zusammengesetzte Kette von Zeichen, die mit einer 1 oder einer 3 beginnt (zum Beispiel 1NTH8oQ99ht5RGm2Tb3W4znpNZb7NN3Zjn).

Aus dieser Auswahl lassen sich 1.461.501.637.330.902.918.203.684.832.716.283.019.655.932.542.976 verschiedene Bitcoin-Adressen erzeugen.
...
Da Menschen recht schlecht darin sind, große Zahlen zu verstehen, hier ein paar Hilfestellungen dazu
Es wird geschätzt, dass es an allen Stränden der Welt ingesamt 2^63 Sandkörner gibt, das sind "nur" 9.223.372.036.854.775.808. Man kann also sagen, es gibt nicht 10, nicht 100, nicht 1.000.000 mal mehr Bitcoin-Adressen als Sandkörner, sondern 158.456.325.028.528.675.187.087.900.672 mal mehr Bitcoin-Adressen als Sandkörner als an allen Stränden der Welt. OK, diese Zahl ist immer noch zu hoch… also angenommen, die ganze Erdkugel bestünde aus Sandkörnern, dann gäbe es so viele Bitcoin-Adressen wie 200 Billionen Erdkugeln.

Eine andere Herangehensweise: Angenommen, alle Computer dieser Welt würden jede Sekunde so viele Bitcoin-Adressen wie möglich erzeugen. Die gesamte Rechenleistung aller Computer auf der Welt wird auf 10^19 FLOPS (floating point operations per second) geschätzt. Nimmt man weiterhin an, dass jede erzeugte Adresse eine Rechenoperation ist (sind in Wirklichkeit hunderte, und man braucht keine “floating point operations”), so würde es immer noch länger dauern als das Universum alt ist. Genauer gesagt: Ein paar Millarden mal so lang wie das Universum alt ist…

Man kann es auch so verdeutlichen (Zitat von https://elearning.physik.uni-frankfurt.de/data/FB13-PhysikOnline/lm_data/lm_282/auto/kap09/cd236b.htm):

Unsere Milchstraße hat etwa eine Masse von 100 Milliarden Sonnen oder 2,7·10^41 kg. Damit kommen wir auf etwa 10^68 Atome. Schließlich sind uns viele Milliarden Galaxien im Universum bekannt. Dies sagt uns, daß die Anzahl der Atome im Universum etwa in der Größenordnung 10^78 ist.

10^78 ist übrigens nicht die Hälfte von 10^160! Auch nicht knapp. Sondern:
10^160 = 10^78 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10 * 10

Wie schwer sind Bitcoin-Schlüsselpaare zu erraten?

Hier andere Grafik zu weiteren Verwirrung oder Veranschaulichung - je nach Kenntnisstand:


(c) Brian Liotti von Crypto Aquarium, https://www.reddit.com/r/Bitcoin/comments/827pzw/odds_of_winning_powerball_lottery_vs_guessing_one/

Daraus folgt

Bitcoin-Adressen lassen sich also sehr schwer erraten.

Wie groß das Risiko, dass Geld von meinem Girokonto verschwindet?

Genaue Zahlen lassen sich leider kaum finden. Zitat von http://identitaetsdiebstahl.info/index.php/fragen-antworten/:

Identitätsdiebstahl und Identitätsmissbrauch sind zu einem Massenphänomen geworden. Studien zufolge soll schon jeder dritte bis fünfte Deutsche Opfer geworden sein. Einer Untersuchung der Unternehmensberatung PWC aus dem Jahr 2016 zufolge entsteht den Opfern dabei im Schnitt ein Schaden von 1.366 Euro. Am gängisten ist demnach Warenkreditbetrug.

Traue keiner Statistik, die Du nicht selbst gefälschst hast!

Nehmen wir also nicht 20 bis 30 Prozent der Bundesbürger, sondern nur 20 Bundesbürger als Geschädigte. 2017 hatte die BRD 82,79 Mio. registrierte Einwohner. Das ergibt eine Geschädigtenquote von 0,000000241575069 %. Die Wahrscheinlichkeit, eine beliebige BTC-Adresse zu erraten, ist nach Brian Liotti:

Die Wahrscheinlichkeit, dass Geld vom Girokonto verschwindet, ist also ungleich größer. Aktuelle Beispiele kennt mögicherweise der Eine oder Andere: Wenn eine Behörde dank Amtshilfe meint, Geld zu beanspruchen, und ich anderer Meinung bin. Die Wahrscheinlichkeit, dass diese Selbstbedienung täglich passiert, befindet sich im messbaren Bereich.

Don Quijote hat den Kampf gegen die Windmühlen bekanntlich nicht gewonnen. - Und auf meinem Geld steht EZB drauf, also gehört es wohl dem Staat und seinen Organen ... - Auf meinen Bitcoin steht nicht "EZB" drauf. Bei Krypto bin ich meine eigene Bank. Staatsterrorismus und Banküberfall ist ein anderes Thema.

Fazit

Die Wahrscheinlichkeit, dass jemand meine BTC von einer meiner Adressen abräumt, ist verschwindend gering. Sie ist nicht Null. Die Wahrscheinlichkeit, dass meine Bank oder die Exekutive meines Staates sich an meinem Geld ohne mein Einverständnis erfreut, ist ungleich größer.

Tipps

  • Es ist daher ratsam, nicht alle BTC auf einer Adresse zu speichern, sondern vielleicht pro Bitcoin eine weitere Adresse zu verwenden.
  • Auch sollten Kryptoadressen nicht wieder verwendet werden, nachdem eine ausgehende Transaktion stattfand.
  • Die Verwendung einer Hardware-Wallet ist zwar sicherer als die Schlüsselspeicherung auf dem PC, aber nicht so sicher wie im Passwortmanager gespeicherte Schlüssel. (Vergleich der Sicherheit von Papierwallet, Hardware-Wallet, Desktop- und Handywallet sowie Schlüsselhygiene sind ein Thema eines späteren Beitrags!)
  • In einer Handy-Wallet sollte nur das Geld gespeichert werden, welches man normalerweise im Portmonee bei sich hat und für tägliche Ausgaben verwendet.

Weiterer Lesestoff

Sort:  

Guter Stoff! Die eigentliche Gefahr besteht mehr in der Art und Weise, wie die Leute ihre Daten sichern. Um seine Wallet (Zugang und so weiter) zu sichern, muss ja jeder irgendwie Daten speichern, und genau da liegt die Schwachstelle. Bitcoin-Adressen brauchen böse Buben nicht erraten. Sie brauchen sich nur Zugriff zu den PCs der Besitzer verschaffen. Auch für die Cryptos gilt der universelle Gedanke. Jede Kette ist nur so stark, wie ihr schwächstes Glied. Das System ist im Kern sicher, aber die Anwender selbst, können diese hohe Sicherheit des Systems nie und nimmer ausschöpfen. Wer weiß schon, wie viele Hintertüren Windows oder eine Software hat. Sicher ist nur eines: Es gibt keine 100% Sicherheit 🚑.

Danke für klare, aufklärende Zahlen. Danke auch an die Mathematik, die uns unser Geld ermöglicht.

liebe Grüße
gernfried2000

Sehr gut erklärt, auch für jemanden wie mich, der in Mathe Nachhilfe nehmen musste.

This post has received a 3.13 % upvote from @drotto thanks to: @interfecto.

Congratulations @bc-i! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You made more than 700 upvotes. Your next target is to reach 800 upvotes.

Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last post from @steemitboard:

Saint Nicholas challenge for good boys and girls

You can upvote this notification to help all Steemit users. Learn why here!

This post was upvoted by 100 accounts and @interfecto thanks to @bc-i

@interfecto: Selling the cheapest upvotes on Steemit for just 0.001 SBD each! Send any amount 0.001-0.1 SBD with your postlink as memo to @interfecto to buy instant upvotes!

Congratulations! This post has been upvoted from the communal account, @minnowsupport, by G0LDkocher from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.

If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.

How Cool!

You got a 25.00% upvote from @coolbot courtesy of @interfecto!

Help us grow, delegate today!

Congratulations @bc-i! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You got more than 50 replies. Your next target is to reach 100 replies.

Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word STOP

You can upvote this notification to help all Steemit users. Learn why here!

Congratulations @bc-i! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You made more than 600 upvotes. Your next target is to reach 700 upvotes.

Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last post from @steemitboard:

Saint Nicholas challenge for good boys and girls

You can upvote this notification to help all Steemit users. Learn why here!

Coin Marketplace

STEEM 0.18
TRX 0.15
JST 0.028
BTC 62928.79
ETH 2465.26
USDT 1.00
SBD 2.55