php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.03.2011, 22:48  
Neuer Benutzer
 
Registriert seit: 20.03.2011
Beiträge: 5
PHP-Kenntnisse:
Fortgeschritten
Angry-Man befindet sich auf einem aufstrebenden Ast
Standard Passwortsicherheit - Salted Hash

Hallo zusammen

Ich habe mir in der vergangenen Stunde ein paar Gedanken zum Thema Passwortsicherheit gemacht und bin jetzt auch zu einem Ergebnis gekommen wie ich das in meinem php-script realisieren würde, da ich allerdings kein Experte für kryptologische Hashfunktionen bin und die Sicherheit nicht wirklich beurteilen kann, hoffe ich dass mir hier jemand helfen kann

Meine Idee:
Um existierende Rainbow-tables unwirksam zu machen benutze ich einen Salt, genauer gesagt möchte ich 2 verwenden, einen zufälligen 10-14 stelligen Salt (der auch in der DB gespeichert wird) und einen konstanten Salt, der nicht in der DB steht sondern nur dem Script bekannt ist.
Also bisher sieht das ganze so aus:
$random_salt . $password . $constant_salt;

Dann möchte ich den Usernamen noch mit dazu nehmen, denn es könnte ja sein dass zwei User das selbe Passwort nehmen und dummerweise auch der selbe zufällige Salt generiert wurde, falls jemand nun an den Hash kommt und den Klartext dazu rausbekommt und prüfen kann ob derselbe Hash nochmal in der DB steht, hätte er gleich 2 Passwörter, ich weiß dass das sehr sehr unwahrscheinlich ist, aber da will ich einfach auf Nummer sicher gehen, obwohl wenn jemand an die Daten in der DB kommt ist es eh aus ^^

So, also sieht der Klartext-String so aus:
$username . $random_salt . $password . $constant_salt;

Zum Schluss hashe ich den String zuerst mit whirlpool und dann mit sha512

Fragen
1.) Was denkt ihr Allgemein von meiner Idee ?
2.) Sind 2 Salts übertrieben oder sollte man einfach auf Nummer Sicher gehen und zwei nehmen ?
3.) Von Whirlpool und SHA512 habe ich bisher sehr gutes gehört oder gibt es einen Grund diese nicht zu nehmen ?
4.) Etwas das mich interessiert ist ob mehrfach hashen etwas bringt,also z.B. 16 mal whirlpool und sha in einer schleife anwenden ?
Ist das sicherer oder riskiert man da nur eine Kollision ??

Vielen Dank schonmal für alle Antworten =)
Lieben Gruß
Angry-Man ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.03.2011, 22:53  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Angry-Man Beitrag anzeigen
2.) Sind 2 Salts übertrieben oder sollte man einfach auf Nummer Sicher gehen und zwei nehmen ?
Dein konstantes Salt würde nur etwas zusätzlich bringen, wenn es nicht bekannt ist. Wenn die Datenbank aber in fremde Hände gelangt, ist die Wahrscheinlichkeit groß, dass Geheimnisse innterhalb des Scriptes auch nicht geheim bleiben.
Aber kannst du so machen, es schadet zumindest nichts.

Zitat:
4.) Etwas das mich interessiert ist ob mehrfach hashen etwas bringt,also z.B. 16 mal whirlpool und sha in einer schleife anwenden ?
Nein, mehrfaches Hashen ist idR. keine gute Idee.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 20.03.2011, 23:04  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
denn es könnte ja sein dass zwei User das selbe Passwort nehmen und dummerweise auch der selbe zufällige Salt generiert wurde, falls jemand nun an den Hash kommt und den Klartext dazu rausbekommt und prüfen kann ob derselbe Hash nochmal in der DB steht, hätte er gleich 2 Passwörter
Übertrieben.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 20.03.2011, 23:08  
Neuer Benutzer
 
Registriert seit: 20.03.2011
Beiträge: 5
PHP-Kenntnisse:
Fortgeschritten
Angry-Man befindet sich auf einem aufstrebenden Ast
Standard

Erst einmal ein Dankeschön für die Antwort, hmm das mehrfach hashen nicht wirklich gut ist hatte ich vermutet, aber gut es bestätigt zu haben.
Ich denke ich werde 2 Salts benutzen, dann kann ich besser schlafen und schaden tuts ja nicht ^^
Was ich jetzt noch bräuchte wäre ein Link oder Tipps wie ich meine MySQL Datenbank besonders schützen kann, da bräuchte ein Angreifer nicht einmal mehr die Passwörter in Klartext zurückverwandeln, in der DB steht ja alles drin ...
Angry-Man ist offline   Mit Zitat antworten
Alt 20.03.2011, 23:10  
Neuer Benutzer
 
Registriert seit: 20.03.2011
Beiträge: 5
PHP-Kenntnisse:
Fortgeschritten
Angry-Man befindet sich auf einem aufstrebenden Ast
Standard

Danke nikosch, aber da es keine Mühe macht werde ich den Usernamen einfach noch mit dazunehmen.
Angry-Man ist offline   Mit Zitat antworten
Alt 20.03.2011, 23:14  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

Zitat:
Zitat von Angry-Man Beitrag anzeigen
da bräuchte ein Angreifer nicht einmal mehr die Passwörter in Klartext zurückverwandeln, in der DB steht ja alles drin ...
Hä? In der Datenbank stehen keine Passwörter im Klartext.
Trainmaster ist offline   Mit Zitat antworten
Alt 20.03.2011, 23:16  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Also static + dynamic Salt ist schon ok. Den Usernamen würde ich jetzt nicht mit rein nehmen, das ist in der Regel unnötig. Dass das Passwort und der zufällig generierte Hash bei zwei Usern gleich sind, das ist wahrscheinlich so wahrscheinlich wie wenn einer per Raten das Passwort eines bestimmten Users rausbekommt

Außerdem hat es den Nachteil das du niemals einen Benutzernamen ändern kannst (ohne das Passwort neu zu setzen). Auch wenn normal Benutzernamen nicht geändert werden gibt es trotzdem hin und wieder die Anfrage den Username zu ändern (weil der User schon seit Jahren dabei ist und es nicht mehr passt) oder weil im Usernamen ungewollte Dinge stehen.

Mehrfach Hashen ist in der Regel nicht nötig, sicherer wirds dadurch nicht.
Flor1an ist offline   Mit Zitat antworten
Alt 20.03.2011, 23:17  
Neuer Benutzer
 
Registriert seit: 20.03.2011
Beiträge: 5
PHP-Kenntnisse:
Fortgeschritten
Angry-Man befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Trainmaster Beitrag anzeigen
Hä? In der Datenbank stehen keine Passwörter im Klartext.
Nein ich meine die restlichen Daten wie Geburtstag, Email etc.
Angry-Man ist offline   Mit Zitat antworten
Alt 20.03.2011, 23:21  
Neuer Benutzer
 
Registriert seit: 20.03.2011
Beiträge: 5
PHP-Kenntnisse:
Fortgeschritten
Angry-Man befindet sich auf einem aufstrebenden Ast
Standard

@Flor1an: Danke, gut dann werde ich den Usernamen weglassen.
Und nochmal zum Thema mehrfach hashen, anstatt whirlpool und SHA512 zu verwenden sollte ich einfach eine nehmen (wenn ja welche Funktion) ??
Angry-Man ist offline   Mit Zitat antworten
Alt 21.03.2011, 09:37  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

nimm die "Dicke" Sha mit 512 bit Schlüssel .. die knackt dir keiner so schnell.... da kommt der "Angreifer" vermutlich mit einer Brute-Force Attacke (alle möglichen Passwörter ausprobieren) leichter zum Zuge
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bei Mehrfachupload wir immer der selbe md5 hash generiert ColeThornten PHP Einsteiger 10 12.01.2011 11:11
filename in datenbank als primary vs varchar vs hash id smilla PHP Tipps 2009 16 11.10.2009 18:20
[Erledigt] verständnis von einem php tut bzgl salted hash taurus PHP Tipps 2009 5 29.09.2009 13:26
[Erledigt] hash algorthymen taurus PHP Tipps 2009 5 28.09.2009 14:34
aus SELECT Abfragen Hash bauen Reen_Sc Datenbanken 9 27.06.2008 18:48
Sicherer Passwort Hash tomtaz PHP-Fortgeschrittene 14 17.03.2008 18:13
XML-RPC2 Hash & Salt Authentifizierung solariz PHP-Fortgeschrittene 4 01.02.2008 21:48
Name von Hash Feld auslesen Igäl PHP Tipps 2007 9 15.08.2007 15:06
[Geklärt] MD5 Hash nochmals MD5 hash´n? PHP Tipps 2005-2 44 29.10.2005 14:46
GET Übergabe durch vorherigen md5 hash checken PHP Tipps 2005-2 4 27.10.2005 15:55
perl hash aus mysql blob mit php lesen PHP-Fortgeschrittene 6 07.07.2005 17:36
mehrdimensionale Assoziative Arrays (Hash) PHP-Fortgeschrittene 6 31.03.2005 13:51
2 Werte mit gleichem MD5 Hash webbi PHP Tipps 2005 4 09.03.2005 12:46
Doppelte Werte im Array löschen mittels hash PHP Tipps 2004-2 1 09.12.2004 11:43
hash mit echo nicht ausgegeben PHP Tipps 2004-2 3 05.12.2004 16:56

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php password hash, salted hash, mehrfach hashen, php salted hash tutorial, salted hash php, salted hash sicherheit, passwort sicherheit php, php hash, php salted password, php passwortsicherheit, php hash sicherheit, passwort vergessen salted hash, php sicher hashen, hash php, salted password php, password salt hash, php salted hash, php hash salt tutorial, sicherheit salted, datenbank hash salt

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:31 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum