Post
Topic
Board Anfänger und Hilfe
Merits 4 from 2 users
Re: Private Key von Paper Wallet offline prüfen?
by
Code29
on 03/11/2020, 13:22:39 UTC
⭐ Merited by 1miau (2) ,o_e_l_e_o (2)
Weil Webseiten im Gegensatz zu herkömmlicher Software nicht vom Entwickler signiert sind und keine deterministischen Builds vorhanden sind.
Es hat keinen Sinn sich den Source Code auf Github etc. anzusehen, wenn du beim herunterladen der Website keine Garantie dafür hast, dass es sich tatsächlich um diesen Code handelt.

Hinzu kommen dann noch alle anderen Probleme die existieren wenn keine Signaturen vorhanden sind bzw. überprüft werden: Das herunterladen einer bösartigen Version (z.B. via DNS hijacking auf einen bösartigen Server umgeleitet).
Den Code, den ich mir auf GitHub ansehen kann, kann ich auch als ZIP runterladen. Dieses Archiv wird von GitHub bereitgestellt, nicht vom Entwickler. Zumal hab ich bei einer Website den Vorteil, dass ich mir den Code gar nicht auf GitHub ansehen muss, sondern das auch noch nach dem Herunterladen tun kann. Eine HTML-Datei ist immer Open Source. Fakt ist aber, dass sich wohl kaum einer den ganzen Code anschaut. In der Regel vertrauen wir bei Open Source darauf, dass es viele andere tun.

Um DNS-Hijacking erfolgreich durchzuführen, brauche ich bei HTTPS immer noch ein gültiges Zertifikat. Die Gefahr mag da sein, ist aber sehr gering.

Ist es.
Da die Builds aber deterministisch sind (ich rede hier ausschließlich von Open Source Software wie z.B. electrum), lässt sich einerseits so eine Änderung im Source code schnell entdecken und andererseits, falls nur die Binärdatei geändert wurde, herausfinden, dass Source Code und Binärdatei nicht übereinstimmen.

Bei Webseiten lässt sich das nicht so einfach herausfinden.
Es gibt etliche Tools, um Änderungen festzustellen, dafür bedarf es keiner Signatur.

Kannst du, natürlich.
Aber beim überprüfen der Signatur fällt sofort auf, dass was nicht stimmt und du kannst damit die Applikation verwerfen.
Bei einer Website fehlt dieser Kontrollmechanismus komplett.
Wie gesagt braucht man nicht unbedingt eine Signatur. Davon abgesehen kann eine Applikation auch zur Laufzeit manipuliert werden, da hilft mir die Signatur auch nichts mehr.

Natürlich habe ich nicht jeden Generator überprüft.
Aber bei sensitiven Operationen (Schlüsselgenerierung etc.) sollten niemals Javasacript verwendet werden. Gerade diese Bibliotheken sind oft sehr fehlerhaft und enthalten Schwachstellen welche unter anderem den Schlüsselraum einschränken und in der Tat eine reelle Bedrohung darstellen.
Gab auch schon einen Fall, in dem eine Javascript Bibliothek manipuliert wurde um BTC zu stehlen.
Ich versteh nicht warum gerade JavaScript-Bibliotheken oft fehlerhaft sein sollen. Wenn irgendwo eine Schwachstelle ist, liegt es nicht an JavaScript, sondern am Entwickler. Sowas kann man doch nicht auf die Sprache verallgemeinern. Mag bei den Bibliotheken hin und wieder vorgekommen sein, aber bei anderen Bibliotheken genauso.

Wenn dem so ist, dann müsste man noch wissen wie sehr der Schlüsselraum eingeschränkt ist, um das als reelle Bedrohung einzustufen. Habe persönlich noch nicht davon gehört, dass ein Private Key, der mit Hilfe einer JavaScript-Bibliothek erzeugt wurde, deshalb erraten wurde.

Von einer manipulierten JavaScript-Bibliothek hab ich auch schonmal gehört, das war ein Node package. Das hat ja nichts mit JavaScript an sich zu tun, sondern mit npm oder dem Entwickler.

Zudem unterschätzt du glaube ich die Schwachstelle von Trezor.
Die Mehrheit der Nutzer verwendet kein zweites Passwort (BIP39 passwort-geschützten Seed). Die meisten verlassen sich auf die Hardware + Pin + Fakt, dass der Seed nach X Versuchen gelöscht wird.

Mit der Hardware Schwachstelle lässt sich jedoch der verschlüsselte Seed mittels Powerglitching vom Trezor extrahieren. Daraufhin kann die bis zu 9 Zeichen lange Pin gebruteforced werden.
Da hilft es nur noch zusätzlich ein BIP39 Passwort zu verwenden.
Das Problem beim Trezor One ist unter anderem, dass das Passwort über den Rechner (potentiell kompromittiert) eingegeben werden muss. Mit "verwendbar mit kompromittierten Geräten" hat das dann auch nicht mehr sehr viel zu tun.

Natürlich handelt es sich hierbei um eine lokal ausnutzbare Schwachstelle und keine, die über das Netzwerk (Internet) ausgenutzt werden kann. Dennoch sollte man sich dem bewusst sein.
Ich bin mir über das Ausmaß der Schwachstelle sehr wohl bewusst. Aber jemanden mein Trezor auszuhändigen ist als würde ich mein Paper Wallet weitergeben.

Vieles was du sagst mag auf Laien zutreffen, aber wer sich richtig damit auseinandersetzt ist mit einer Website als Generator genauso gut dran wie bspw. mit Electrum. Wie viele wurden durch die "Schwachstelle" in Electrum um ihr Geld gebracht? Finde es nicht richtig Methoden allgemein zu verteufeln, nur weil einzelne in der Vergangenheit durch eigenes Fehlverhalten geschädigt wurden.

Ich könnte auch ein Virus haben, dass Dateien nicht direkt austauscht, sondern erst ein paar Minuten später, vielleicht zufällig nachdem ich die Signatur verifiziert habe. Am Ende kommt alles darauf hinaus, dass mein Rechner frei von Schadsoftware ist. Da spielt es keine Rolle ob Website oder nicht. Vor allem kommt es am Ende darauf an wie paranoid man ist. Keiner der beiden Varianten ist m.M.n. schlechter als die Andere, es hängt eher von der Person, die diese durchführt, ab.