Sicheres PassPhrase mit Hilfe von SHA512

Bitte nutze die :magnifying_glass_tilted_left: Suchfunktion bevor du eine Frage stellst!

Hallo zusammen

mir schwebt so eine Gedanke im Kopf und ich wollte eure Meinung dazu holen. Man sag ja immer, dass der PassPhrase möglichst lang und mit Sonderzeichen sein soll. Eine einfache Zeichenkette wäre unsicher.

Meine Idee: Was wenn man eine einfache Zeichenkette nimmt, den man nie vergisst (Nachname oder irgendeinen Namen) und SHA512 davon erzeugt? SHA512 ist lang genug - ohne Sonderzeichen - und sollte sicher genug sein, was mein Ihr?

Ich meine, das kryptografische Verfahren ist doch immer gleich. Es kann doch nicht sein, dass 512er Ergebnis von der Zeichenkette irgendwann was anderes ergibt, oder?

Kennt sich da jemand aus?

Falls die Idee kompletter Unfug ist, sorry dafür.

Die Entropy bemisst sich durch dem Prozess mit dem ein Geheimnis erzeugt wird.
Und da SHA512 sehr schnell ausgeführt werden kann, kann jemand der heute forcet, auch die Hashes von verschiedenen Hash Funktionen mit simplen Eingaben durchprobieren (automatisiert)

Ich würde dir einen längeren Input empfehlen und diesen dann mit Argon2 oder PBKDF2.
Diese Hash Funktionen sind extra langsam pro Hash um Brute force zu erschweren.

Finde ich eigentlich eine sehr coole Idee :slight_smile:

@Cromwell hat recht, wenn jemand weiß, dass du gehasht hast, oder aus irgendeinem anderen Grund auf die Idee kommt, dass zu dieser Seedphrase jemand eine Passphrase als Hash nutzt, ist es relativ leicht knackbar. Namen sind so ziemlich die schlechtesten Passwörter und es werden alle Namen innerhalb Sekunden durchprobiert.

Aber ich sehe es als ziemlich unwahrscheinlich, dass jemand auf die Idee kommt Hashes als Passphrases zu probieren und degegen könnte man zB den Hash nochmal hashen.

Was ich als Problem sehe, ist die Länge. Ein 512 Hash ist schon sehr lang. Spiel dich doch mal mit paar „Passwort Check“ Seiten rum (natürlich nicht mit echten Passwörtern). Bei 10-12 zufälligen Zeichen ist es für die meisten Computer absolut unmöglich, das Passwort zu finden, selbst wenn jemand deinen Key hat und 1 Jahr einen Hochleistungs PC laufen lässt.

Beireits mit 7 Buchstaben hat deine Passphrase alleine mehr Sicherheit als der ganze Seed der alten Coldcards.

Es ist bei der 512 Hash Länge kaum praktikabel, die Passphrase in eine Hardwarewallet einzugeben, abzuschreiben oder gar zu merken. Man müsste sie also jedes mal wieder online erzeugen lassen und kopieren. Was auch wieder Nachteile bringt.

Wenn du es so machen möchtest, würde ich als Eingabe zumindest Vor und Nachname nehmen und den Hash kürzen, also zB die erstem 15 Zeichen des Hashes verwenden und diese auch auf Papier oder Stahl vermerken.

Meiner Meinung nach ist es effektiver einfach eine „normale“ Passphrase zu wählen, die man sich gut merken kann und die genug lang ist (also genug Entropie hat).

Deine Idee klingt verlockend, weil ein Hash ja sehr zufällig aussieht und damit eine hohe Entropie suggeriert. Das Problem ist aber, dass das Hashing keine zusätzliche Entropie erzeugt, sobald ein Angreifer auf die gleiche Idee kommt: Stell dir z.B. vor, du wählst nur einen Buchstaben als Passphrase. Weil du weisst, dass das nicht so sicher ist, wendest du die Hashfunktion darauf an und nimmst die ersten 8 Stellen vom Output als Passphrase. Nun, solange ein Angreifer nicht auf die gleiche Idee kommt, hat diese Passphrase eine Entropie von 8 (für ihn) zufällige Stellen. Doch sobald er auf die gleiche Idee kommen würde, muss er auf einmal nur noch maximal 26 Möglichkeiten ausprobieren (angenommen wir verwenden nur Kleinbuchstaben). Da SHA-256 ein ziemlich zentraler Bestandteil von Bitcoin ist, finde ich es nicht unwahrscheinlich, dass ein Angreifer auf die gleiche Idee wie du kommen könnte und somit kannst du dir das ganze auch gleich sparen.

Aber natürlich kannst du das trotzdem so machen, wenn du willst. Ich wollte damit einfach sagen, dass das hashing in diesem Fall dir weniger zusätzliche Sicherheit bietet, wie man zuerst denken könnte.

Danke für eure Ideen. Bei dem Thema gibt es viel Spielraum. Man könnte z.B. die ersten 21 Zeichen nehmen oder SHA1 verwenden.

Die Frage ist eher, wie sicher ist es, dass SHA1 IMMER dieselbe Zeichenkette für meinen Schlüsselwort (Haus z.B.) liefert?

Ich habe soeben die ersten 21 Zeichen über Password Checker gejagt und der Zeit „unendliche Zeit“ zum knacken.

Gibt es Szenarien, bei denen SHA1 Ergebnis in Zukunft von dem heutigen abweichen kann?

Eine bestimmte Hashfunktion liefert immer den gleichen Output für den gleichen Input. Das ist also nicht das Problem. Wichtig ist einfach, dass du dir bewusst bist, dass Hashfunktionen wie SHA-256 allgemein bekannt sind und dass somit ein Angreifer leicht dein Verfahren ebenfalls anwenden könnte. In diesem Fall bringt dir das Hashing dann keine zusätzliche Entropie.

Wie oben geschrieben besser PBKDF2 oder Argon2 oder ähnliche Funktionen verwenden. Die sind extra so gebaut, dass ein Brute Force durchprobieren extrem teuer ist. Die werden beispielsweise für die sichere Verarbeitung von Passwörtern verwendet

Ich finde nicht, ich finde die Passphrase sollte möglichst einfach sein. Da man sie typischerweise nicht aufschreibt, schreibt man sie auf, dann hat sie ja eigentlich keine Funktion mehr, da 24 wörter bereits mehr als genug Entropie haben.

Jetzt kommts drauf an wofür die Passphrase da sein soll, soll die:

  1. Vor schlechtem zufallsgenerator schützen?
  2. Vor zugriff durch jemanden schützen, der die 24 Wörter in die Hände bekommt.

Wenn du 1. willst, dann würd ich nicht eine Zeichenkette nehmen die du nie vergisst, sondern eine die möglichst komplex und zufällig ist, die würd ich dann aber auch aufschreiben.

Wenn du 2. willst, dann könnte das mit dem hashen sinnvoll sein.

Aber die Gefahr selber nicht mehr dranzukommen, ist hoch, wenn das mit dem hashen irgendwie komplex wird. Also wenn du z.b. mehrmals nacheinander hashst damit es länger dauert, oder den hash abschneidest. Da würd ich normalerweise die anleitung direkt mit aufschreiben, aber dann ist der gesamte witz ja weg.

Ein bisschen OT, aber ich möchte an dieser Stelle eindringlich vor der „Verkomplizierung“ warnen: TE scheint mir dem Gedanken verfallen zu sein, seine Wallet so sicher zu schalten, wie es nur irgendwie geht. Dabei muss man sich immer die Frage stellen: Ist das wirklich sinnvoll? Insbesondere, wenn man Fragen stellt, ob eine Hashfunktion in Zukunft anders funktionieren könnte.

Was heißt sinnvoll in diesem Kontext? 100%-ige Sicherheit zum Zugang einer Wallet nur durch mich selbst ist in den meisten Fällen NICHT sinnvoll. Es sei denn, du willst auch im Falle eines Unfalls/Tods deine Wallet nicht weitergeben. Die meisten wollen dies aber genau nicht.

Falls man Angst vor dem 5$ Wrench Hack hat: Es gibt in Deutschland ungefähr gleich viele Verkehrstote wie Raubüberfälle in der eigenen Wohnung pro Jahr. Ich würde aber sagen, ein Raubüberfall mit gezielter Erpressung einer Passphrase etc. durch Gewaltanwendung ist deutlich seltener. Plus: Wenn es wirklich gezielt jemand auf euch abgesehen hat, wird die Person ganz bestimmt nicht glauben, euer Honey Pot wäre euer gesamtes Vermögen. Im Zweifel werdet ihr am Ende jede einzelne Passphrase herausgeben.

Eben. Ich denke wichtig ist:

  1. Dass man eine Passphrase hat
  2. Dass man die nicht vergessen kann
  3. Dass man den Seed ohne Passphrase nicht benutzt.

Punkt 3 deshalb, weil der Coldcard angreifer ca. 40bit = 2^40 möglichkeiten für seeds hat.

Aber wenn er 1000 Wallets schon gefunden hat und nur die auf passphrasen durchsucht. Dann sind das nur 1000 möglichkeiten, also 2^10 = 10bit.

Der Coldcard angriff läuft ja noch, also kann man sagen dass der Angreifer für manche wallets tage gebraucht hat. Da reicht schon eine einfache seedphrase mit wenigen bit, damit man die zeit auf jahre streckt. Wenn ich z.B. „D8Z“ mache, und der Angreifer weiss dass ich nur grossbuchstaben und zahlen benutze, dann sind das pro stelle 36 möglichkeiten. Also 36^3 = 46645.

Das heisst wenn der Angreifer meine wallet normalerweise an Tag 2 gefunden hätte, hätter er sie mit dieser lächerlichen Passphrase erst Jahrzehnte später gefunden, so lange hätte man also zeit sich ne neue wallet zu besorgen.

So denk ich mir das jedenfalls.