php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Thema geschlossen
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.05.2011, 17:10  
Neuer Benutzer
 
Registriert seit: 16.04.2011
Beiträge: 4
PHP-Kenntnisse:
Fortgeschritten
kidding befindet sich auf einem aufstrebenden Ast
Standard Wie sicher ist MD5 wirklich?

Hallo,

wie sicher ist MD5 denn?

Auf Wikipedia steht folgendes:
Zitat:
Sie gilt inzwischen nicht mehr als sicher, da es mit überschaubarem Aufwand möglich ist, unterschiedliche Nachrichten zu erzeugen, die dieselbe MD5-Prüfsumme aufweisen.
Ist ja auch in sofern logisch, da ein MD5 Hash ja nur 32 Zeichen hat und nur Kleinbuchstaben sowie Zahlen enthält.

Wie verhält es sich mit MD5 + Salt?

Was ist wenn ich einen eigenen kleinen Algorithmus schreibe?
Also z.B. zunächst einen String mehrmals durch md5() jage, danach noch 1-2 billig Verschlüsselungsmethoden
kidding ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 05.05.2011, 17:24  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.246
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

MD5 + statischer Salt oder MD5 + dynamischer Salt (Random, User-ID etc.), der beispeilsweise in einem extra Tabellenfeld steht, reicht aus. Mehrfach durch md5 zu jagen ist albern.
Mit Salt beisst man sich durch pures Ausprobieren bereits die Zähne aus.

Voraussetzung ist immer: Niemand blickt dir in den Code und niemand in die Datenbank selbst. Wenn einer (wie bei Sony geschehen) die Datenbank kopiert, kann er in aller Ruhe, egal wie "sicher" der Algorithmus ist, eine Rainbow-Table anlegen oder eine finden, ohne dass du das mitbekommst. Es ist nur ne Frage der Rechnerleistung. Mehrfach durch md5 zu jagen ist dabei lediglich eine kleine Erhöhung der Hürde.
Beides (Ausprobieren und Rückrechnen nach Datenbankkopie) sind zwei unterschiedliche Attacken.

Ansonsten wurde schon zigfach das Thema hier durchgekaut...
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 05.05.2011, 18:00  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
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:
Ist ja auch in sofern logisch, da ein MD5 Hash ja nur 32 Zeichen hat und nur Kleinbuchstaben sowie Zahlen enthält.
1. Nicht Kleinbuchstaben sondern HEX-Ziffern
2. entspricht
16 ^ 32
= 3,4 * 10^38 theoretischen Kombinationen (340000000000000000000000000000000000000).
Gewinnwahrscheinlichkeit Lotto 6 Richtige mit Superzahl
= 1:7,1511 * 10^9 (7151100000)
So what?
__________________
--
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  
Alt 05.05.2011, 18:14  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.246
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Generell gilt es immer: MD5 bewirkt, dass man bei einem Trial/Error-Angriff größere Chancen hat als würde das Klartext-Passwort abgespeichert. Klartext-Passwörter sind aber bei einem Einbruch (SQL-Injection, Datenklau etc.) tödlich. Dagegen sind MD5-Hashes bei einem Einbruch etwas sicherer. Dagegen gibt es jedoch Rainbow-Tables, wo man direkt zu einem MD5 ein passendes Passwort hat. Kippt man Salz drüber, ist das wieder etwas sicherer.

Wenn jedoch jemand ein Passwort knacken, wird er immer einen Weg finden. Deine Aufgabe ist es, die Sicherheit akzeptabel hinzubekommen (was mit gesalzenem MD5 im Hausgebrauch immer ausreicht) und alle gängigen Sicherheitslücken zu schließen (SQL-Injection etc. pp.) und mögliche Angriffe rechtzeitig zu merken (auch hier gibt es Strategien). Werden beispielsweise deine Webseiten durch Robtoer ständig mit komischen Benutzerregistrierungen versehen oder permanent mit komischen kryptischen fehlerhaften Passwortabfragen überhäuft, gilt es aufzupassen.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 05.05.2011, 18:17  
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

Zitat:
Zitat von mepeisen Beitrag anzeigen
Voraussetzung ist immer: Niemand blickt dir in den Code und niemand in die Datenbank selbst.
Die Sicherheit sollte aber nie darauf beruhen das der Code geheim bleibt! Eigentlich sollte jeder wissen können wie dein Hash berechnet wird. Und ein Salt hilft nicht gegen normale Wörterbuchangriffe/Brute Force Angriffe, vor allem nicht wenn der Angreifer das über das normale Login Formular probiert.

Salts sind dafür da das ein gegebener Hash nicht durch eine Rainbowtable zurückgerechnet werden kann sondern extra eine neue Rainbowtable erstellt werden müsste (für diesen Salt) DANN aber das ja einem Brute Force Angriff gleicht und der so oder so nicht zu verhindern ist.

Und ein dynamischer Salt hilft dagegen das der Angreifer für die gesamte Datenbank (falls diese nur nen statischen Salt hat) eine Rainbowtable anlegt und damit dann alle (oder mehrere Passwörter) auf einmal zurückrechnen kann.

@nikosch: Das Problem ist ja nicht eine zufällige Kollision sondern ob eine gezielte Kollision herstellbar ist. Aber dies ist noch nicht mit MD5 möglich! MD5 ist immer noch schwach kollisionsresistent und daher fürs Speichern von Passwörtern denke ich noch ausreichend genug, man sollte aber eben einen dynamischen Salt gegen Rainbowtables einbauen.
Flor1an ist offline  
Alt 05.05.2011, 19:52  
poli-tik
Gast
 
Beiträge: n/a
Standard

md5 ist unsicher. Darum wurden derartige Zertifikate eliminiert.
https://tepin.aiki.de/blog/archives/...t-ersetzt.html
sha verwenden.
 
Alt 05.05.2011, 20:02  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Um ganz sicherzugehen:

PHP-Code:
$speichern=md5($pw) . sha1($pw) . md5($pw $salt) . sha1($pw $salt) . md5($pw $salt $dynsalt) . sha($pw $salt $dynsalt); 
Wir werden es diesen Hackern schon zeigen!!


oder mit anderen Worten: Gegen einen Großangriff auf die Userverwaltung des Tischtennisclubs TC Posemuckel ist allemal ein Kraut gewachsen.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline  
Alt 05.05.2011, 21:32  
Erfahrener Benutzer
 
Registriert seit: 04.07.2003
Beiträge: 359
PHP-Kenntnisse:
Fortgeschritten
Sirke befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
$speichern hackWollasDatabaseAndSelectOneHash();

$hash substr$speichern032 );

$password MD5RainbowTable$hash );

echo 
$password
Sirke ist offline  
Alt 05.05.2011, 22:03  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Zitat:
$hash = substr( $speichern, 0, 32 );
Boah ey.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline  
Alt 05.05.2011, 22:09  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
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

Passend zum Thema: http://www.heise.de/security/meldung...s-1237975.html
__________________
--
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  
Thema geschlossen


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
[Erledigt] Ist der Login wirklich sicher? rejoice PHP Tipps 2010 10 28.01.2010 14:31
100% OOP wirklich sinnvoll ? Pehapeh PHP-Fortgeschrittene 31 04.12.2009 11:19
[Erledigt] Ist der Login Bereich wirklich sicher? sliver2203 PHP Tipps 2009 11 08.10.2009 17:25
Sicherheits function wirklich sicher? BlackyGreece PHP Tipps 2009 6 24.09.2009 13:13
[Erledigt] Löscht unset() wirklich? sagato0816 PHP Tipps 2009 12 29.06.2009 16:06
[Erledigt] Objektorientierung und Frameworks - was bringts wirklich? Curcio PHP-Fortgeschrittene 58 04.06.2009 20:31
Tabellen-Design bei wirklich grossen Projekten MauMau Datenbanken 10 18.08.2008 12:10
Festplatte WIRKLICH säubern dh1sbg Off-Topic Diskussionen 9 10.08.2008 13:20
Wollen sie wirklich...? mit JS JanM HTML, Usability und Barrierefreiheit 2 13.08.2006 15:26
In Tabelle Bereich wirklich nur 468x60 machen? BartTheDevil89 HTML, Usability und Barrierefreiheit 5 18.02.2006 14:26
Bringt NOT NULL wirklich Byte-Ersparnis? Datenbanken 5 08.11.2005 20:27
Bewertungsscript pürft einträge nicht wirklich... xXx PHP Tipps 2005-2 6 28.09.2005 15:47
Vor dem löschen abfragen ob man wirklich löschen will PHP Tipps 2005-2 1 05.09.2005 11:54
Dynamische Navi - (nicht so wirklich wichtiges) Problem Jojo1 PHP Tipps 2005-2 11 09.08.2005 13:50
[Erledigt] Sind Table-Layouts wirklich out? HTML, Usability und Barrierefreiheit 41 16.11.2004 00:37

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
md5 mehrfach, md5 sicher, md5 sicherheit, sicherheit md5, mehrfach md5, php sicherer login, md5 sicherheit 2011, mehrfach md5-verhash, md5 rückrechnen, mehrmals md5, md5 schwach, php md5 salt, sicherer als md5, was ist sicherer als md5, statischer salt, md5 mehrfache anwendung, php md5 mehrmals, mehrfach md5 salted, what ist md5, md5 sicherer machen

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:35 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