PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Md5 "Verschlüsselung" in eine sichere ändern!



Alpha10
14.01.2015, 07:37
Hallo zusammen,

was wäre der einfachste weg die User-Passwörter VMS1.2 nicht mehr in MD5 zu "verschlüsseln" sondern in etwas sichereres?

Kann mir jemand sagen WO ich das ändere und was eine GUTE Alternative zu MD5 ist, da scheiden sich wieder die Geister. Das einzige was sicher ist das MD5 WERTLOS geworden ist!

maeggi07
14.01.2015, 10:06
Man könnte die Passwörter Salzen (Hash-Werte salzen) oder einfach mehrfach verschlüsseln.
Fertige Lösungen wären zb. bcrypt, scrypt, crypt etc.

Ich würde es mit Sha256 und salt machen.
Dabei sollte für jedes Passwort ein eigener, zufälliger Salt verwendet werden, der ebenfalls in Datenbank gespeichert wird.
Zusammen mit einem zeitaufwändigen Verwahren (bcrypt, scrypt) verspricht das eine sehr hohe Sicherheit.

Wenn PHP 5.5 verfügbar ist solltest du dir mal die Crypt-API anschauen. (password_hash)

Ändern kannst du das ganze in
Zeile 77: content/intern/anmelden.php
Zeile 44: lib/session.lib.php

Am besten noch einen Passwort-Generator bei der Registirerung einbauen.
Und darauf hinweisen das die User keine einfachen Passwörter verwenden, das Passwort mindestens 10 Zeichen haben muss, keine Passwörter doppelt verwenden etc.
Ich selbst benutze für jede Seite ein anderes Passwort, dafür verwende ich KeePass (http://keepass.info/).

Gibt aber auch noch andere Möglichkeiten wie zb. Login mit Klamm-ID und Losepasswort.
Da hast du garnichts mit den Passwörtern zutun ;)

MfG
Marco

Alpha10
15.01.2015, 06:40
Hallo und Danke für die Antwort!

Die Grundsicherheitssachen sind mir schon klar, würde es reichen in der Sessions.lib einfach die Zeile:

'".md5($_POST['passwort']). in '".sha256($_POST['passwort']). Zu ändern oder muss ich noch irgent etwas an der Datenbank schrauben etc. pp?

maeggi07
15.01.2015, 11:12
Hey,


Ändern kannst du das ganze in
Zeile 77: content/intern/anmelden.php <-- NICHT VERGESSEN
Zeile 44: lib/session.lib.php
Die Datei Datei:
content/intern/daten.php
musst du auch noch anpassen.



.sha256($_POST['passwort']

Richtig wäre:

.hash(‘sha256′, $_POST['passwort'])

In der Datenbank musst du noch "char(32)" in "char(64)" ändern.

Jedoch ist jetzt immer noch eine einfache Kollision möglich.(Rainbow-Table)
Du musst das ganze noch salzen (salt)
Schau doch erstmal welche PHP-Version du benutzt.

Erstelle dir eine PHP-Datei mit folgendem Code:

<?php

phpinfo();
Hochladen->Aufrufen

PS: Bedenke das die User sich dann mit dem altem Passwort nicht mehr Anmelden können!!!
Ich übernehme keine Verantwortung ;)

maeggi07
15.01.2015, 14:00
Ich werde heute Abend mal was kleines basteln und stelle es dann hier frei zur Verfügung.

maeggi07
15.01.2015, 18:42
So...
Habe mich mal kurz ans werk gemacht.
Klick Mich (http://www.designerscripte.net/showthread.php/26389-Password-Patch-1-0?p=113574#post113574)

Alpha10
16.01.2015, 09:00
So...
Habe mich mal kurz ans werk gemacht.
Klick Mich (http://www.designerscripte.net/showthread.php/26389-Password-Patch-1-0?p=113574#post113574)

Hey Super! Das schau ich mir mal an.!

5.6.3 ist die aktuelle Version.