www.wikidata.de-de.nina.az
Salt englisch fur Salz bezeichnet in der Kryptographie eine zufallig gewahlte Zeichenfolge die an einen gegebenen Klartext vor dessen weiterer Verarbeitung z B Eingabe in eine Hashfunktion angehangt wird um die Entropie der Eingabe zu erhohen Es wird haufig fur die Speicherung und Ubermittlung von Passwortern benutzt um die Informationssicherheit zu erhohen Inhaltsverzeichnis 1 Motivation 2 Salt 3 Pepper 4 Passwort Hashfunktionen 5 Unterschied zu Nonce und Padding 6 Probleme 7 Siehe auch 8 Einzelnachweise 9 WeblinksMotivation BearbeitenPassworter werden nicht direkt gespeichert sondern beim Anlegen eines Kontos gehasht und der Hash wird in der Datenbank mit den Benutzerdaten gespeichert Bei Anmeldung eines Benutzers wird sein dabei eingegebenes Passwort gehasht und mit dem gespeicherten Hash verglichen um den Benutzer zu authentifizieren Kryptographische Hashfunktionen wie z B BLAKE oder SHA 2 sind kollisionsresistent d h sie erzeugen aus unterschiedlichen Eingaben fast sicher unterschiedliche Hashwerte Die Wahrscheinlichkeit dass verschiedene Passworter den gleichen Hashwert ergeben kann vernachlassigt werden und somit kann man sich nur mit dem richtigen Passwort anmelden Das heisst aber auch dass man aus der Ubereinstimmung zweier Hashes mit hoher Sicherheit schliessen kann dass die jeweiligen Passworter gleich sind und ein Angreifer kann versuchen die Passworter durch Probieren zu finden Wer die Hashes aus einer Benutzerdatenbank kennt und auch weiss welche Hashfunktion verwendet wurde kann probeweise mogliche Passworter hashen und mit den Hashes der Datenbank vergleichen etwa in Form eines Worterbuch Angriffs Er muss dabei jedes Probepasswort nur ein einziges Mal hashen um festzustellen ob irgendeiner der Benutzer dieses Passwort gewahlt hat Die Kenntnis von Passwort Hashes vieler Benutzer vervielfacht somit die Erfolgsaussichten Durch Verwendung leistungsfahiger paralleler Hardware oft GPGPU und optimierter Algorithmen kann man typischerweise viele Millionen Probepassworter pro Sekunde hashen 1 Fur viele Hash Algorithmen liegen ausserdem bereits sogenannte Rainbow Tables vor die eine Menge von moglichen Passwortern z B alle Worter eines Worterbuchs mit Hashwerten in Beziehung setzen Wenn ein gegebener Hashwert von einem Passwort aus dieser Menge stammt lasst sich dieses Passwort damit wesentlich schneller finden als durch systematisches Durchprobieren aller Passworter Es gibt zwei Techniken um diese Situation zu verbessern Zum einen die Verwendung von Salt und evtl auch Pepper und zum anderen Passwort Hashfunktionen die im Vergleich zu den auf Effizienz optimierten Funktionen wie etwa SHA 2 wesentlich mehr Aufwand je Hash Berechnung erfordern um Angriffe zu verlangsamen Salt BearbeitenEs ist gangige Praxis Passworter mit Salts zu versehen Ein Passwort wird nicht mehr direkt gehasht sondern es wird zusammen mit dem Salt in die Hashfunktion eingegeben Das Salt wird in der Regel fur jeden Benutzer bei dessen Kontoerstellung zufallig erzeugt und zusammen mit dem Hashwert und den ubrigen Benutzerdaten in der Datenbank gespeichert 2 Bereits die Verwendung eines konstanten fur alle Benutzer gleichen Salts wurde es verhindern die fur bekannte Hashfunktionen vorbereiteten Rainbow Tables zu verwenden denn durch den Salt ist die Abbildung der Passworter auf die Hashwerte eine andere Man konnte zwar im Prinzip Rainbow Tabellen fur Passwort Salt Kombinationen erstellen aber bei einer genugend grossen Zahl von moglichen Salts ist das vollig unpraktikabel Sie mussten alle unterstutzten Passworter in jeder Kombination mit den moglichen Salts enthalten bei n displaystyle n nbsp Bit langem Salt ware die Anzahl der in der Tabelle zu erfassenden Klartexte 2 n displaystyle 2 n nbsp mal so gross wie zuvor 3 Ein systematisches Durchprobieren der Passworter ist damit aber noch genauso moglich da ein Angreifer der auf den Datenbankinhalt zugreifen kann in der Regel auch den Salt herausfindet Da aber fur jeden Benutzer ein eigener Salt erzeugt wird ist ein aus Probepasswort und Salt berechneter Hashwert nur noch fur diesen Benutzer gultig Jedes Probepasswort muss fur jeden Benutzer erneut gehasht werden Pepper BearbeitenUm Worterbuch und Brute Force Angriffe weiter zu erschweren kann das Passwort zusatzlich zum Salt mit einer beim Einrichten des Servers gewahlten und geheimgehaltenen Zeichenfolge kombiniert werden um den Hashwert zu berechnen Diese Zeichenfolge wird Pepper Pfeffer 4 genannt und ist normalerweise fur alle Passworter auf einem Server gleich Indem der Pepper fur jedes Passwort unterschiedlich gewahlt wird kann die Sicherheit weiter erhoht werden Der Unterschied zwischen Salt und Pepper ist dass der Pepper nicht in derselben Datenbank wie der Hashwert gespeichert sondern an einem anderen und moglichst sicheren Ort hinterlegt wird Erlangt ein Angreifer nur Zugriff auf die Datenbank z B per SQL Injection so erfahrt er zwar immer noch die Hash Werte diese stammen aber nun von Kombinationen von Passwort und einem unbekannten Pepper Ein Worterbuchangriff ist sinnlos weil ein Worterbuch kaum zufallig eine der Passwort Pepper Kombinationen enthalten wird Auch ein Brute Force Angriff wird drastisch erschwert weil man nicht nur die Passworter durchprobieren muss sondern die Kombinationen aus Passwort und Pepper Haufig wird empfohlen einen HMAC zu verwenden um Passwort dort als geheimer Schlussel K displaystyle K nbsp und Pepper dort als Nachricht M displaystyle M nbsp zu kombinieren 5 da dann die Kollisionsresistenz der Hashfunktion nicht mehr ausschlaggebend fur die Sicherheit der Gesamtkonstruktion ist 6 Passwort Hashfunktionen BearbeitenEs gibt speziell zum Hashen von Passwortern entwickelte Hashfunktionen z B bcrypt scrypt und Argon2 Diese erlauben eine Abstimmung des Hash Aufwandes um dem Angreifer beim Probieren der moglichen Passworter ebenfalls den hoheren Aufwand aufzuburden Das ist das gleiche Prinzip wie bei der Schlusselstreckung Erhoht man gegenuber einer normalen kryptographischen Hashfunktion wie etwa SHA 2 den zum Hashen notigen Aufwand um den Faktor n dann muss auch der Angreifer fur jedes Passwort die n fache Zeit aufwenden d h er kann in einer gegebenen Zeit um den Faktor n weniger Passworter probieren und hat entsprechend geringere Erfolgsaussichten Das Hashen mit beispielsweise SHA 2 benotigt auf einem modernen Rechner weniger als 10 6 Sekunden und n kann somit je nach der erwarteten Frequentierung des Servers und der verfugbaren Rechenleistung oft grosser als 1000 gewahlt werden Stand der Technik ist fur diesen Zweck Argon2 das auch dafur ausgelegt wurde den Einsatz von speziell entwickelter Hardware ASICs zu erschweren Der Benutzer kann nicht nur den Zeitaufwand sondern auch den verwendeten Speicherplatz und die Parallelitat Zahl der eingesetzten Prozessorkerne bestimmen Unterschied zu Nonce und Padding BearbeitenEine Nonce und das Padding sind einem Salt sehr ahnlich da es ebenfalls Zeichenfolgen sind die im Programm bzw Algorithmus nicht ausgewertet oder anders verwendet werden als sie einfach einer anderen Zeichenkette anzuhangen Der Unterschied liegt in dem Zweck und der genauen Anwendung dieser Zeichenketten Wahrend ein Salt bei Passwortern zum Erhohen der Entropie benutzt wird werden Nonce und Padding in Verschlusselungsalgorithmen benutzt Die Nonce dient dabei dazu die Einmaligkeit eines Klartextes sicherzustellen sodass sich trotz determinierter Vorgehensweise des Algorithmus der erzeugte Ciphertext unterscheidet wenn der gleiche Klartext mehrmals verschlusselt wird Somit sollte die Nonce auch moglichst zufallig sein Padding muss dagegen das Kriterium der Zufalligkeit meist nicht zwingend erfullen und dient meist dazu die Ermittlung der Lange eines Klar und Ciphertextes zu erschweren oder die Lange auf die Blocklange zu erhohen Probleme BearbeitenBildet ein Verfahren aufgrund eines Programmierfehlers oder einer fehlerhaften Implementierung z B nur 1000 unterschiedliche Salts kann das Erstellen einer Rainbow Table weiterhin lohnend sein Derartige Falle werden als schwache Salts bezeichnet Ein solches Verfahren sind die von Windows Systemen XP Vista angelegten zwischengespeicherten Anmeldeinformationen DCC Domain Cached Credentials von Cracking Programmen auch als MS Cache Hashes bezeichnet Der Benutzername wird dabei als Salt verwendet Rainbow Tables konnen daher weiterhin fur weit verbreitete Benutzernamen erzeugt werden z B administrator Gegen Brute Force Angriffe oder Worterbuchangriffe bei denen fur verschiedene Eingaben gepruft wird ob sie zum Hashwert passen hat ein Salt keine sicherheitssteigernde Wirkung Hierfur sind zusatzlich rechnerisch aufwandige Berechnungen zwischenzuschalten key stretching deren Zweck es ist ein Durchprobieren bis zur praktischen Nutzlosigkeit zu verlangsamen Ein Beispiel dafur ist der PBKDF2 Algorithmus der haufig beim Speichern von Passwortern zum Einsatz kommt Siehe auch BearbeitenInitialisierungsvektor NonceEinzelnachweise Bearbeiten Passwort Sicherer mit Hash und Salt In Datenschutzbeauftragter INFO 11 Marz 2013 abgerufen am 5 November 2013 Sicheres Speichern von Passwortern Versalzen wir die Suppe www martinstoeckli ch Abgerufen am 30 Oktober 2013 Cracker Bremse Bremsfaktor In c t 13 2011 Seite 148 Abgerufen am 30 Oktober 2013 Sicheres Speichern von Passwortern Geben wir noch etwas Pfeffer dazu www martinstoeckli ch Abgerufen am 30 Oktober 2013 Tom Leek What is the purpose of a Pepper In Information Security Stack Exchange Inc 4 September 2013 abgerufen am 30 Mai 2017 englisch Prof Dr Eike Kiltz Hashfunktionen und Kollisionen pdf In CRYPTO RUB Ruhr Universitat Bochum abgerufen am 29 Juni 2018 Weblinks Bearbeitenheise de Passworter unknackbar speichern Wie man mit Pfeffer den Fisch versalzt Tutorial uber das sichere Speichern von Passwortern Mogliche Passwort Hashes englisch Abgerufen von https de wikipedia org w index php title Salt Kryptologie amp oldid 234449186