Ferchau und die unsicheren Passwörter

Für den ein oder anderen dürfte die Firma Ferchau Engineering ein Begriff sein. Im Ranking der Top 100 Arbeitgeber 2009 sind sie im Bereich Engineering auf Platz 52 gelandet - immerhin!

Auch ich hatte im Sommer letzten Jahres überlegt, mich dort zu bewerben. Dort wusste man allerdings nicht, ob man zu der Zeit, zu der ich eintreten wollte, überhaupt Projekte für mich hätte - also hatte ich meine Bewerbung auf Eis legen lassen. Anscheinend zurecht, denn anscheinend hat das Unternehmen 400 Mitarbeiter entlassen.
Zudem hat man sich von der "Ferchau Group" in die "Able Group" umbenannt. Meiner Meinung ein sehr schlechter Schritt, denn hätte man vorher mal kurz 5 Minuten gegooglet, hätte man herausgefunden, dass man nicht der einzige mit diesem Namen ist.

Aber kommen wir zurück zum Thema! Ferchau Engineering bietet auf seiner Webseite einen "Login für Bewerber und freie Mitarbeiter", wo man ein Profil anlegen und für Bewerbungen nutzen kann. Dort wollte ich mich nun nach einem halben Jahr mal wieder einloggen, hatte jedoch mein Passwort vergessen. Also flux die E-Mail-Adresse eingetragen und auf "Passwort vergessen" geklickt... und was erhalte ich per E-Mail?! Richtig! Mein altes Passwort!

Die einen mögen sich jetzt denken "Wo ist das Problem?"
Das Problem ist folgendes: Damit man mir mein altes Passwort zuschicken kann, muss es rekonstruierbar in der Datenbank hinterlegt sein. Das heißt aber auch, dass jemand, der unbefugt Zugriff auf diese Datenbank erhält (nicht unwahrscheinlich), ebenfalls die Passwörter rekonstruieren kann. Das ist ein typischer Anfängerfehler!
Jeder halbwegs versierte Programmierer weiß, dass man Passwörter nicht ungesichert irgendwo ablegen sollte. Im Falle von Benutzeraccounts geht man meist so vor, dass das Benutzerpasswort mit einem Salt (einem Zufallswert) zusammenpackt und dass dieser neue Wert dann gehasht (eine unumkehrbare Einwegfunktion angewendet) wird.

Wenn die Benutzerpasswörter ordentlich in der Datenbank hinterlegt werden, ist die Übersendung des vom Benutzer hinterlegten Passwortes unmöglich! In diesen Fällen wird, wenn das Passwort vergessen wurde, ein neues zufälliges Passwort generiert und an den Benutzer verschickt. Dieser sollte das Passwort dann selbstständig ändern.

Dieses Problem habe ich heute übrigens auch schon via Twitter verbreitet und sogar schon eine Reaktion von Ferchau erhalten. Man darf gespannt bleiben, wie die Sache weitergehen wird. Ich werde euch per Update auf dem Laufenden halten. ;-)
Update:
Ich hatte ja gesagt, dass ich euch auf dem Laufenden halten werde. Das Ergebnis des ganzen ist nun wie folgt: Ferchau wird die Login-Prozedur umschreiben und dabei dafür sorgen, dass die Passwörter nicht mehr im Klartext in der Datenbank stehen werden. Mir stellte sich dabei natürlich die Frage, was das genau heißt: Die Passwörter verschlüsseln (oder z.B. rückwärts schreiben) ließe schließlich weiterhin eine Wiederherstellung zu. Die Antwort: Es wird ein Salted Hash zum Einsatz kommen, den ich ja schon oben bereits erläutert hatte. Alles in allem sind das doch ziemlich gute Nachrichten! Jetzt müssen auf die Worte nur noch Taten folgen. ;-)
Unverschlüsselte Grüße, Kenny