Wenn ein Benutzer sich auf unserer Website registriert, folgen wir einige gut definierte Sicherheitsstandards:Sammeln Passwort Topologien von den Benutzern in einer sicheren Weise
- ein Salz
- Hash erzeugen (Salz + Passwort)
- Speichern Sie das Hash-Passwort und das Salz in der DB
Kürzlich ist ein heißes Thema "Passwort Topologien". Zum Beispiel sollten wir verhindern, dass Benutzer ein Passwort wie Ullllldd
(Großbuchstaben, 5-mal Kleinbuchstaben, zwei Ziffern) erzeugen, weil sie so gebräuchlich sind und durch Brute-Force-Angriffe leichter zu knacken sind, wenn der Angreifer sich nur auf diese Topologie konzentriert. Wir möchten nun Informationen zu den häufigsten auf unserer Website verwendeten Topologien generieren. Natürlich können wir die gehashten Passwortinformationen in unserer Datenbank nicht verwenden - wir können die Passwortinformationen aus diesem Hash nicht wiederherstellen. Wir hatten die Idee, eine Topologietabelle beizubehalten, die immer dann gefüllt wird, wenn sich ein neuer Benutzer anmeldet. zum Beispiel:
Benutzer "Joe" registriert mit Passwort "pass". Wir sehen, ob die Topologie "uuuu" bereits existiert. Wenn dies nicht der Fall ist, fügen Sie es mit count = 1 zur Datenbanktabelle hinzu. Wenn dies der Fall ist, erhöhen Sie die Anzahl um 1. Das ist natürlich ein wenig riskant: Wenn unsere db kompromittiert wird, kennt unser Angreifer plötzlich unsere häufigsten Topologien!
Also meine Frage ist: Wie Topologie Informationen zu sammeln und zu speichern, ohne ein neues Sicherheitsrisiko zu schaffen?