Ich habe einen Login-Bereich in PHP geschrieben und möchte nun testen, ob er auch wirklich sicher ist. Gibt es dort irgendwie eine Möglichkeit? Woher weiß ich, dass die Passwörter nicht ausgelesen werden können?
Danke für eure Hilfe!
Ich habe einen Login-Bereich in PHP geschrieben und möchte nun testen, ob er auch wirklich sicher ist. Gibt es dort irgendwie eine Möglichkeit? Woher weiß ich, dass die Passwörter nicht ausgelesen werden können?
Danke für eure Hilfe!
Ich habe einen Login-Bereich in PHP geschrieben und möchte nun
testen, ob er auch wirklich sicher ist. Gibt es dort irgendwie
eine Möglichkeit?
Viel testen und sich gut ueber Sicherheit bei Webapplikationen informieren. Evtl auch externe Experten zu Rate ziehen, welche sich den Quellcode anschauen.
Woher weiß ich, dass die Passwörter nicht
ausgelesen werden können?
Passwoerter sollten allgemein nicht in Sessions gespeichert werden. Ausserdem sollte man Passwoerter niemals im Klartext speichern. (siehe z.B. http://www.aspheute.com/artikel/20040105.htm)
Gruesse
Stefan
Viel testen und sich gut ueber Sicherheit bei
Webapplikationen informieren. Evtl auch externe Experten zu
Rate ziehen, welche sich den Quellcode anschauen.
Ausserdem sollte man Passwoerter niemals im Klartext
speichern.
Habe die Passwörter auch mit md5-Hash generiert und gesalzen. Trotzdem ließt man im Netz immer wieder: md5-Hash kann man in 2 Minuten knacken. Wie? Und viel wichtiger: Wie kann ich das verhindern?
Habe die Passwörter auch mit md5-Hash generiert und gesalzen.
Trotzdem ließt man im Netz immer wieder: md5-Hash kann man in
2 Minuten knacken. Wie?
Im Normalfall geschieht dies durch Brute-Force/Woerterbuch-„Attacken“
Bruteforce: alle moeglichen Zeichenkombinationen werden durchprobiert. Je mehr unterschiedliche Zeichen man im Passwort verwendet desto sicherer (Buchstaben/Zahlen/Sonderzeichen)
Woerterbuch: anhand von Wortlisten werden die Passwoerter durchprobiert. Auch in Kombination von Woertern.
Weiterhin sehr beliebt ist das Benutzen von vorgefertigten Tabellen mit Hash-Wort-Zuordnungen (sog. Regenbogentabellen)
Und viel wichtiger: Wie kann ich das verhindern?
Wenn man Hashes nutzt sollte man trotzdem zus. ein Salt einsetzen. D.h. eine Zeichenkette, welche an das eigentlich Passwort angehaeng/davorgestellt/… wird. Dies kann ein einheitlicher String sein, oder aber auch einer, der Variiert (z.B. eine Kombination aus eine eindeutigen ID (Benutzer ID z.b.) und einem festen String)
Ausserdem evtl. zus. von MD5 auf einen anderen Hash-Algorythmus umsteigen welcher z.Zt. noch als sicher gilt. (SHA-256)
Die Wortzuordnungen und Listen werden nichts bringen, da ich (wie beschrieben) md5 und salt nutze. Also setzt sich das Passwort aus dem eigentlichen Passwort (z. B. Baum) und einem zufällig generierten Salz (z. B. 345TEW21) und dem Usernamen (z. B. User) zusammen. Somit wird aus dem normalen eingegebenen Passwort: md5(Baum345TEW21User).
Der Hash wird niergenswo drin stehen. Das müsste schon ein Zufall sein. Trozdem kann dieser Hash doch leicht geknackt werden, oder?
Ich versuche mich mal mit SHA.
noch vergessen
Es wäre aber mal gut zu wissen, wie das Ganze geknackt wird, damit man sich davor schützen kann.