2016-05-13 5 views
1

ich mit checkmarx beauftragt wurden und whitehat Sentinel Security-Fixes. Problem ist, dass der Wechsel von SHA1 zu SHA2 nicht automatisch funktioniert. Die neueHash ist NICHT gehen alle Passwörter in der Datenbanktabelle Hunderte von Benutzern entsprechen.Upgrade von SHA1 zu SHA2 bricht alles in C# Anwendung

Was soll ich tun, machen alle Änderung ihre Passwort?

C# Codeänderung:

//SHA1 sha = SHA1.Create(); 
SHA256 sha = SHA256Managed.Create(); 

byte[] buff = sha.ComputeHash(Encoding.Unicode.GetBytes(SaltAndPwd)); 
+1

Hmm, nein, eine größere Hash erfordert kein anderes Passwort. Sie müssen das vorhandene Passwort nur einmal erkennen. Wenn Sie es haben, können Sie sich mit dem alten Hash authentifizieren, den neuen Hash generieren und den alten Hash löschen. Nehmen Sie keine Sicherheitsinformationen von Fremden im Internet. –

+0

Guter Punkt und du bist nicht Fremder. –

Antwort

0

Wie Sie wissen, Hashing ist ein Weg, die Mittel können nicht zurück, ohne zu wissen ursprünglichen Wert umwandeln kann auf den ursprünglichen Wert und nichts entschlüsselt werden. Sogar SHA2 hat einen "anderen" und fortgeschritteneren Hashalgorithmus.

Eine schlechte Option ist, Benutzer anders zu markieren, die vor SHA2 registriert wurden. Die Benutzer mit altem SHA1 könnten jedoch Hacking-Angriffen ausgesetzt sein, wie z. B. wenn LinkedIn-Website bei der Verwendung von SHA1 gehackt wurde.

Meine Idee ist das gleiche mit Ihnen. Genauso wie wir die Password Change Recommendation auf großen Websites sehen, einfach einen kurzen Prozess wie die Validierung des alten Passworts durchführen und ein neues Passwort von den Nutzern erhalten.

Nuget Paket wie PWDTK die von SHA2 ist, könnte helfen ..

+0

Ich denke, die Idee von Hans Passant am Kommentar ist richtig, als seine Idee, altes Passwort mit Hash-Wert der Benutzereingabe zu vergleichen und wenn sie korrekt sind, fügen Sie einen Code, um die Benutzereingabe mit SHA2 Hash und aktualisieren Sie diesen neuen Hash Wert für neue Spalte. Ich würde empfehlen, eine neue Spalte zu erstellen, denn wenn Sie die alte Passwort-Spalte verwenden, um das neu gehashte Passwort zu speichern, werden die alten Passwörter und neuen Passwörter gemischt und es wird schwierig sein, den Zeitpunkt zu erfahren, an dem das Upgrade auf SHA2 abgeschlossen ist nicht. Hab schöne Programmierung! –

Verwandte Themen