Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verbessern Sie das Passwort-Hashing mit einem zufälligen Salz

Ein Angreifer ist "erlaubt" das Salz zu kennen - Ihre Sicherheit muss so gestaltet sein, dass sie auch mit der Kenntnis des Salzes noch sicher ist.

Was macht das Salz?

Salt hilft bei der Abwehr von Brute-Force-Angriffen mit vorberechneten "Regenbogentabellen".
Salt macht Brute-Force für den Angreifer viel teurer (in Bezug auf Zeit/Speicher).
Berechnung einer solchen Tabelle ist teuer und wird normalerweise nur gemacht, wenn es für mehr als einen Angriff/Passwort verwendet werden kann.
WENN Sie dasselbe Salt für alle Passwörter verwenden, könnte ein Angreifer eine solche Tabelle vorberechnen und Ihre Passwörter dann per Brute-Force in Klartext umwandeln ...
Solange Sie für jedes Passwort, dessen Hash Sie speichern möchten, ein neues (am besten kryptografisch starkes) zufälliges Salt generieren, gibt es kein Problem.

WENN Sie die Sicherheit weiter verstärken möchten
Sie könnten den Hash mehrfach berechnen (Hash the Hash etc.) - das kostet Sie nicht viel, aber es macht einen Brute-Force-Angriff / das Berechnen von "Regenbogentabellen" noch teurer ... bitte nicht nicht selbst erfinden - dafür gibt es bewährte Standardmethoden, siehe zum Beispiel http://en. wikipedia.org/wiki/PBKDF2 und http://www.itnewb.com/tutorial/Encrypting-Passwords-with-PHP-for-Storage-Using-the-RSA-PBKDF2-Standard

HINWEIS:

Die Verwendung eines solchen Mechanismus ist heutzutage obligatorisch da "CPU-Zeit" (nutzbar für Attacken wie Rainbow Tables/Brute Force etc.) immer breiter verfügbar wird (siehe zum Beispiel die Tatsache, dass der Cloud-Service von Amazon zu den Top 50 der schnellsten Supercomuter weltweit gehört und von jedem genutzt werden kann für einen vergleichsweise kleinen Betrag)!