Was ist die optimale Länge für das Benutzerpasswort salt? [in Wartestellung]
Jede Salz überhaupt wird es helfen, wenn Salzen und Hashen des Passworts eines Benutzers. Gibt es best practices, wie lange das Salz sein sollte? Ich werde speichern das Salz in meiner user-Tabelle, so möchte ich den besten Kompromiss zwischen Speicherkapazität und Sicherheit. Ist eine zufällige 10-Zeichen-salt genug? Oder benötige ich etwas mehr?
Kommentar zu dem Problem
Ich habe nicht eine Empfehlung über die Länge des Salz, aber die Antworten, die zeigen, bis hier eine Menge schlechte Informationen. Ihr Salz sollte auf jeden Fall: - zufällig - sein, pro-Geheimnis (nicht einem einzelnen gespeicherten Wert in Ihr Programm ein Bild oder eine Konfigurationsdatei). Das Salz ist nicht einen kryptografischen geheimen, also dem speichern in der Tabelle ist kein problem. Der einzige Zweck, der ein Salz ist, um sicherzustellen, dass, wenn verschiedene Instanzen des gleichen Elements sind Hash (verschlüsselt) , erhalten Sie ein anderes Ergebnis.
Für diejenigen, die nicht wissen, was Salz ist: <ein href="Salz" >en.wikipedia.org/wiki/Salt_(cryptography)">Salt (Kryptographie)</a> auf Wikipedia
Oder wenn es im optimalen Verhältnis für die Länge von Salz auf die Länge der hash-Ausgang? 8-byte-salt-möglicherweise genug für HMAC-SHA-256, kann aber nicht zu HMAC-SHA-512.
Kryptografisch zufälligen Salz die gleiche Größe wie die Ausgabe der Hash-Funktion bedeutet, dass ein "ausprobieren aller möglichen Salze" (plus einem Passwort-Wörterbuch) Angriff erfordert so viel Anstrengung als ein "ausprobieren aller möglichen hash-Ergebnisse" Angriff - das ist ein standard-brute-force. Eine kürzere Salz bedeutet, dass Sie einen Salz-Wörterbuch plus eine Passwort-Wörterbuch als ein brute-force-Angriff.
-1 Zugegebenermaßen noch nicht (auch versuchen) die Frage zu beantworten.
InformationsquelleAutor der Frage David | 2008-10-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meisten dieser Antworten sind ein wenig fehlgeleitet und zeigen eine Verwirrung zwischen Salze und kryptografische Schlüssel. Der Zweck einschließlich Salze ändern die Funktion verwendet, um die hash für jeden Benutzer ein Passwort, so dass jeder gespeicherte Passwort-hash wird einzeln angegriffen werden. Die einzige Sicherheit, die Voraussetzung ist, dass Sie einzigartig sind pro Nutzer gibt es keinen nutzen für Sie als unberechenbar und schwer zu erraten.
Salze müssen nur lang genug sein, so dass jeder Benutzer das Salz wird einzigartig sein. Zufällige 64-bit-Salze sind sehr unwahrscheinlich, dass jemals wiederholen, sogar mit einer Milliarde registrierten Nutzern, so sollte dies in Ordnung sein. Ein einzeln wiederholt Salz ist ein relativ kleines Sicherheitsproblem, das es einem Angreifer ermöglicht, Suche zwei Konten auf einmal, aber in der Summe nicht die Geschwindigkeit der Suche stark auf die gesamte Datenbank. Auch 32-bit-Salze sind akzeptabel für die meisten Zwecke wird es im schlimmsten Fall Geschwindigkeit ein Angreifer die Suche von über 58%. Die Kosten für die Erhöhung der Salze über 64 bit ist nicht hoch, aber es ist mit Sicherheit kein Grund, dies zu tun.
Gibt es einige Vorteile, um auch mit einer Website-weiten Salz auf der Spitze des pro-Benutzer-Salz, dies wird verhindern, dass mögliche Kollisionen mit Passwort-hashes gespeichert sind, an anderen Standorten, und verhindern, dass die Verwendung von general-purpose-rainbow-Tabellen, obwohl sogar 32 bit des Salzes ist genug, um rainbow-tables nicht zu einem praktikablen Angriff.
Sogar noch einfacher-und die Entwickler immer übersehen-wenn Sie eine eindeutige Benutzer-IDs oder login-Namen, diese dienen perfekt als Salz. Wenn Sie dies tun, sollten Sie einen Website-weiten Salz, um sicherzustellen, dass Sie nicht überlappen mit den Nutzern eines anderen Systems, der hatte die gleiche gute Idee.
InformationsquelleAutor der Antwort SecurityJoe
Derzeit anerkannten standards für das Hashen der Passwörter erstellen Sie eine neue 16 Zeichen langen salt für jedes Passwort und speichern Sie das Salz mit dem Passwort-hash.
Natürlich die richtige kryptographische Pflege, um wirklich zufällige Salz genommen werden sollte.
InformationsquelleAutor der Antwort David Schmitt
Edit: Meine Antwort unten wird die Frage beantwortet, wie gefragt, aber die "echte" Antwort: verwenden Sie einfach bcrypt, scrypt, oder Argon2. Wenn Sie Fragen, Fragen wie diese, sind Sie fast sicher mit tools auf einem zu niedrigen Niveau.
Ehrlich, es gibt keinen vertretbaren Grund, nicht zu haben, das Salz werden genau die gleiche Länge wie das gehashte Kennwort. Wenn Sie mithilfe von SHA-256, dann haben Sie eine 256-bit-hash. Es gibt keinen Grund, nicht zu verwenden einen 256-bit-salt.
Mehr als 256 bits werden nicht net Sie keine Verbesserung in der Sicherheit, mathematisch. Aber mit einer kürzeren Salz immer am Ende mit einer situation, wo eine rainbow-Tabelle holt Ihr Salz-Länge-vor allem mit kürzeren Salze.
InformationsquelleAutor der Antwort Stephen Touset
Wikipedia:
128-bit (16-byte) Salz genug sein. Sie können es als eine Sequenz von
128 /4 = 32
hexadezimalen stellen.InformationsquelleAutor der Antwort Andrii Nemchenko
Einer Antwort möglicherweise als Größe der Salz-der Wert, der hash, die Sie verwenden, stellt aus Sicht der Sicherheit.
E. g. Wenn Sie gehen, um SHA-512 verwenden 256-bit-salt, da die Sicherheit von SHA-512-256-bit.
InformationsquelleAutor der Antwort Roberto Martelloni