it-swarm.com.de

Migrieren Sie Benutzerkonten mit gehashten Kennwörtern aus dem System

Ich habe ein System mit einigen tausend Benutzerkonten, die ich für die Migration auf eine neue Plattform benötige. Das System speichert ein gehashtes Passwort, das weder verschlüsselt noch (Gott sei Dank) im Klartext vorliegt. Ich habe auch nicht die Details des Hashings zur Verfügung.

Was sind einige effektive Wege, um den Übergang zu vollziehen? Eine Idee fällt mir auf den Kopf:

  1. Im Voraus kann ich alle Daten migrieren. Aktuelle Benutzer auf der alten Plattform verfügen über ein Konto und alle ihre Daten auf der neuen Plattform.
  2. Löschen Sie einen Teil des Codes, der derzeit für die Authentifizierung zuständig ist, und verwandeln Sie ihn in eine Art Dienst, der die Gültigkeit des Benutzernamens/Kennworts überprüft.
  3. Die neue Plattform kann zunächst ihre eigene Authentifizierung überprüfen, um festzustellen, ob das Kennwort übertragen wurde. Wenn dies nicht der Fall ist, kann der Dienst auf der anderen Plattform aufgerufen werden, um festzustellen, ob er im alten System gültig ist.
  4. Wenn es nicht gültig ist, teilt es dem Benutzer mit, dass sein Login falsch war.
  5. Wenn es gültig ist, kennt es jetzt das richtige Kennwort und kann seine eigene Benutzertabelle mit dem Kennwort füllen (je nachdem, welches Schema die Plattform verwendet).
3
Larsenal

Ich habe kürzlich ein ähnliches Problem durchlaufen, außer dass ich keinen Zugriff auf den verwendeten Hash-Algorithmus hatte. Ich denke, Sie haben zwei Möglichkeiten.

  1. Verschieben Sie alle Benutzerprofile auf das neue System, und geben Sie eine zusätzliche Spalte mit dem alten Kennwort-Hash ein.
  2. Wenn sich der Benutzer zum ersten Mal anmeldet, sieht Ihr System, dass im neuen System kein Konto vorhanden ist, aber ein Hash vom alten System vorhanden ist. Ihr System speichert eine Pre-Hash-Kopie des Kennworts und vergleicht die Hash-Version mit dem alten Hash.
  3. Wenn die alten Hash-Übereinstimmungen übereinstimmen, setzen Sie das Kennwort im neuen System auf das, was sie gesendet haben.

Wenn Sie jedoch feststellen, dass Sie keinen Zugriff auf den Hash-Algorithmus haben und die E-Mail-Adresse jedes Benutzers eine andere Wahl hat. Das habe ich eigentlich gemacht:

  1. Kopieren Sie alle Benutzernamen, E-Mail-Adressen und Informationen vom alten auf das neue System. Fügen Sie eine Flag-Spalte in die Tabelle ein, die angibt, dass der Benutzer aus dem alten System stammt.
  2. Wenn sich der Benutzer zum ersten Mal beim neuen System anmeldet, sieht das neue System, dass er ein Konto, aber kein Kennwort hat.
  3. Lassen Sie Ihr System eine Meldung auf dem Bildschirm anzeigen, die besagt: "Wir haben unsere Website aktualisiert und Ihr Benutzerkonto wurde konvertiert. Sie erhalten in Kürze eine E-Mail mit einem neuen temporären Passwort (stellen Sie sicher, dass das Passwort oder der spezielle Link nur für kurze Zeit funktioniert Zeitspanne).
  4. Senden Sie dem Benutzer ein temporäres Kennwort an Ihre neue Site, damit er sich anmelden kann. Wenn er sich zum ersten Mal anmeldet, muss er sein Kennwort auf einen beliebigen Wert zurücksetzen.

Die zweite Option hat bei mir ganz gut funktioniert. Ich hatte praktisch keine Benutzerbeschwerden und es ist relativ sicher, da dies der normale Vorgang für einen Benutzer ist, der sein vergessenes Passwort zurücksetzt.

3
Ben Hoffman

Bevor Sie zu viele Probleme haben, haben Sie untersucht, was der Hash-Algorithmus sein könnte? Wenn sie vernünftig genug waren, um Hash-Passwörter zu verwenden, waren sie hoffentlich vernünftig genug, um einen gemeinsamen Hash-Algorithmus (MD5, SHA1 usw.) zu verwenden.

Es könnte sich lohnen, ein paar gängige Optionen auszuprobieren, um herauszufinden, ob Sie das, was sie getan haben, rückentwickeln können.

Außerdem erwähnen Sie, dass "ein Teil des Codes, der derzeit die Authentifizierung durchführt, ausgelesen wird". Wie kommt es, dass Sie den Code haben, aber nicht den Hash-Algorithmus?

0
Eric Petroelje