Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

Php/salt/mysql - Sicherheit Userlogin (Verschlüsselung)

innu / 5 Antworten / Flachansicht Nickles

Hallo Zusammen,

es geht um das Thema Sicherheit beim Userlogin auf Websites, Stichwort md5 und Salt.

Bei Benutzerlogins via PHP in Verbindung mit MySQL sind wir uns alle einig, dass die Kennwörter verschlüsselt werden müssen. Nun ist md5 ja nicht gerade effektiv (selbst ich habe im Selbstversuch, da ich mich ja gerade damit befasse, eine Routine programmieren können, die die Kennwörter "ausliest", bzw. Strings mit dem selben Hash-Wert generiert).

Bei meinen Recherchen bin ich dann auf "Salt" gestoßen, was ich logischerweise irgendwo nachvollziehen kann. Nur die praktische Umsetzung verstehe ich noch nicht. Daher bitte ich die erfahrenen Leute hier, mir ein paar Denkanstöße zu geben, um ein möglichst sicheres Login für Benutzer zur Verfügung zu stellen.

Mein Lösungsansatz, wenn ich das alles Richtig verstanden habe, sieht in etwa so aus:

1. In der PHP-selber existiert bereits ein Pre-String in Sinne von "5gHH/u8$]a.Zas", der dem Kennwort vorne angehangen wird. Frage dazu: sollte dieser String auch verschlüsselt werden?

2. Das Benutzerkennwort wird mit md5 und sha verschlüsselt

3. Dann würde ich eine Zufallszahl erstellen (1-100), die einer ID in einer anderen Datenbank entspricht in der dann weitere Strings beinhaltet sind, die dem ganzen "hinten" angehangen werden. Bei dem Punkt bin ich mir aber nicht sicher, ob ich das richtig verstanden habe. Sollte Der String dann beim Login oder bei der Registrierung erfolgen? Ich denke mal eher beim letzteren und die Zufallszahl/ID wird ebenfalls in der Login-Datenbank gespeichert?!

Inwieweit bin ich da auf dem richtigen Weg, bzw. bringt dieser Ansatz überhaupt etwas? Welche Möglichkeiten hätte ich denn noch das ganze etwas sicherer zu machen? Natürlich wird es immer 'irgendwie' Möglich sein da reinzukommen :-( [lol, musste gerade an mein altes Dreamweaver denken, dass 'ganz einfach' einen Login ermöglicht und die Kennwörter im Klartext abspeichert ^^]

Existieren irgendwo im Netz bereits vorgefertigte Module/Scripte mit einer vernünftigen Verschlüsselung? Oder wäre generell davon abzuraten sowas zu nutzen, weil die 'Vorgehensweise' ja bekannt ist?!

Informatives zum Thema wäre willkommen, vielleicht auch für andere User hier interessant, weil es ja doch ein heikles Thema ist und immernoch viel zu viele Leute 'nur' md5 verwenden....

Danke im Voraus für Eure Mühen,
Innu

bei Antwort benachrichtigen
Vagabund innu „Php/salt/mysql - Sicherheit Userlogin (Verschlüsselung)“
Optionen

Ich werfe mal ein Thema auf, was nie einer mag: Aufwand... Nutzen?

Poste mal, worum es geht, dann sollte man abwägen ob so einer Sicherung wirklich effektiv ist... ich z.B. finde die Methode super:
SSL verschlüsselter Kanal, Passwörter werden in MD5 und zusätzlich in SHA gespeichert... so verhindert man, dass Worte, die den gleichen MD5 Hash haben aber nicht das PW sind, anerkannt werden. Hinzu einen Timeout für auto-log-off sowie eine Art Log, wer wann sich eingeloggt hat und wann ein PW geändert wurde. Da gibt es viele Möglichkeiten!

Es gibt aber auch einige Grundsätze sie man bei so ner Entwicklung beachten sollte:
Aufwand und Nutzen, ERinsatzgebiet, Relevanz... außerdem sollte man NIE mehr Daten also nötig online verfügbar machen - ob Verschlüsselt oder nicht =)

Das beste ist wirklich über mehrere Hash-Verfahren paralell zu arbeiten, sodass du immer den einen String brauchst, der für alle gewählten Verfahren stimmt. Aber du machst dir ja eher nen Plan über die Speicherung als über das Knacken - wo speicherst du denn deine Daten? =)

Bei kleinen einfachen Projekte nurtze ich auch "nur" MD5... solange keine Sau an die Haswerte rankommt, bleibt nur durchtesten! Und wenn Leute an deine Tabellen kommen KÖNNTEN, dann liegt das Problem nicht in der PW Speicherung sondern eher in anderen Zugriffspfaden.

bei Antwort benachrichtigen