Antworten auf deine Fragen:
Neues Thema erstellen

[MySQL] Passwörter sicher speichern

Winkili

Noch nicht viel geschrieben

Liebe PSD'ler,

momentan bin ich dabei mein erstes kleines datenbankgestütztes Login-System zu schreiben. Dabei wollte ich von Beginn an die Passwörter sicher in der Datenbank speichern und habe begonnen mich in das Thema ein wenig einzulesen.
Dabei habe ich nun des Öfteren gelesen, dass md5 mittlerweile nicht mehr ausreicht, md5 mit einem zusätzlichem String (salt) jedoch bereits eine höhere Sicherheit bietet. Andererseits wird in einigen Foren jedoch erwähnt, ein einfaches md5($salt . $psw) keine bemerkbar höhere Sicherheit bringe. Man solle auf alle Fälle auf SHA setzen.
Deshalb meine Frage an euch: Welches Verfahren könnt ihr mir empfehlen?
Für jeden Tipp zu diesem Thema bin ich super dankbar :)

Vielen lieben Dank
 

Robbyn-

PHP / Flex Programmierer

AW: [MySQL] Passwörter sicher speichern

Das ist korrekt, md5 ist heutzutage nicht mehr wirklich sicher. SHA ist zwar fast das selbe in grün aber hat eine höhere Verschlüsselungs Technik. Da die Zeichenfolge von SHA höher ist als bei md5 ist dies "sicherer", natürlich wäre es noch sicherer wenn man am Anfang und am Ende jedes Passwortes noch eine Zeichenfolge anhängt. Das könnte wie folgt aussehen:

PHP:
$code = "237&(/)(&%HGJHbhj";
md5($code.$passwort.$code);


Die Sorge bei der Sicherheit der Passwörter liegt eigentlich nur dabei das wenn mal einer so einen md5/SHA Hash in die Finger bekommt, nicht so leicht entschlüsseln kann. Und falls er dies doch schaffen sollte hat er ein Passwort das zu nichts zu gebrauchen ist, da man ja am Anfang und am Ende ein Zusatzcode/Zeichenfolge gesetzt hat.
 
AW: [MySQL] Passwörter sicher speichern

Ich persönlich nutze auch die Salt-Methode. Dem Passwort wird ein x-stelliger Saltcode angehängt welcher von einem Generator erzeugt wird.

Da der md5-Code ja eine Einwegverschlüsselung ist, beruhen die diversen Datenbanken mit denen man den md5-Code "knacken" will ja lediglich auf Vergleichsmustern. Dort sind milionen möglicher Passwörter mit zugehörigem md5-code gespeichert. Wird also anhand eines vorhandem md5-Code nach dem passenden Passwort gesucht, so wird dort nichts geknackt oder gehackt sondern es wird einfach nur der eingegebnde md5-code mit denen in der Datenbank verglichen und das passende Passwort wird ausgeworfen. Ist Dein Passwort also nicht in dieser Datenbank enthalten, ist auch nichts mit Passwort "knacken".

Somit halte ich es für ziemlich unwahrscheinlich das ein zufällig zugefügter Saltcode plus Passwort, schon einmal in einer Datenbank erzeugt wurde.
 
Zuletzt bearbeitet:

Curanai

Aktives Mitglied

AW: [MySQL] Passwörter sicher speichern

Hallo,

ich habe das bei mir - größeres Projekt - mit md5() wie folgt gelöst:

Ich speichere je Benutzer drei (!) Informationen für die Sicherheit:
1. Passwort selbst (mit den folgenden Punkten!)
2. Salt-Wert (dynamisch erstellt aus alphanumerischen, case-sensitiven Zeichen; wird allerdings unverschlüsselt abgelegt)
3. Position am "normalen" Passwort (davor oder dahinter)

Punkt 1 erhält noch einen weiteren, starren Salt-Wert, der als unveränderliche Konstante bereitgestellt wird. Ebenfalls lasse ich das Registrierungsdatum (timestamp) mit einfließen ... die Konstanten haben eine "Datumsteuerung", wodurch a) auch da Variabilität besteht sowie b) durch ablaufende Passwörter niemals mehr als zwei benutzt werden müssen (ich habe dort also immer eine "alte" Konstante sowie eine "neue" für Registrierung und gültige Login-Versuche).

Wie Du dann ergänzten Werte/Texte kombinierst (erst Datum, dann Salt, dann GenKey oder erst Salt, dann GenKey und dann Datum etc.) ist Deine Sache, doch damit legst Du Dich ziemlich fest (Login bzw. Pw-vergessen-Funktion funktioniert dann natürlich auch nur so).

Meine Idee zur Splittung des Passwortes an Stelle N (wäre dann auch noch zu speichern), um den Salt und sein Gefolge an dieser Stelle einzubringen, war bislang nicht so wirklich wichtig/nötig. ;)

Das ist IMO genug Hürde für eine unerwünschte Entschlüsselung (selbst via Zufallstreffer). Solltest Du nur einen Salt nehmen wollen, beachte aber bitte, dass dieser auch wie ein Passwort aufgebaut sein sollte - mind. acht Zeichen, alpha-numerisch, case-sensitive ...

Klingt umständlich oder unnötig - mag vielleicht auch sein. Hat sich aber bislang äußerst bewährt ...

MfG
 

Winkili

Noch nicht viel geschrieben

AW: [MySQL] Passwörter sicher speichern

Vielen Dank für eure tollen Antworten.

Was mir gestern wiederholt über den Weg gelaufen ist, ist folgender Link http://codahale.com/how-to-safely-store-a-password/
Dabei ist die Rede von 'bcrypt' als einzige Möglichkeit ein Passwort sicher zu speichern. Dabei muss der 'salt', den 'bcrypt' benutzt augenscheinlich nirgends zur späteren Identifizierung hinterlegt werden. Der generierte Hash soll vollkommen ausreichen. ( https://gist.github.com/972386 )
Was sagt ihr dazu? :)
 

Curanai

Aktives Mitglied

AW: [MySQL] Passwörter sicher speichern

@gmbb: Ich hoffe, dass das jetzt max. halb so ironisch gemeint war wie von mir gelesen! ;) Ich verwende dazu eine eigene Klasse, die an einer Stelle den modifizierten Hash sowie jede Menge Paramter entgegen nimmt - und je nach Parameter dann dies oder jenes abwickelt (Pw ändern, Pw prüfen usw.). Ja, war ein wenig Synapsenpower nötig, erfordert nun bei Generierung bspw. aber nur einen Einzeiler ... man, was bin ich doch bequem! ^^
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.614
Beiträge
1.538.351
Mitglieder
67.525
Neuestes Mitglied
mgtaucher
Oben