Web-Technik: ASP, PHP, XML, Javascript, AJAX, SQL Datenbanken. Webentwicklung: CMS, Foren, Blog -Scripte. |
|||||||
![]() |
|
|
Themen-Optionen | Thema durchsuchen |
Web-Technik: ASP, PHP, XML, Javascript, AJAX, SQL Datenbanken. Webentwicklung: CMS, Foren, Blog -Scripte. |
|||||||
![]() |
|
|
Themen-Optionen | Thema durchsuchen |
[PHP] - sha256 |
|
|
# 1 |
|
Da geht noch einer!
Bewertung:
![]() Registriert seit: Oct 2005
Beiträge: 582
Power: 21
|
Guten Tag,
reicht es aus, wenn ich Code:
Salt = ist ein zufallsstring |
|
|
|
|
|
# 2 |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: May 2006
Internet: >=100Mbit
Beiträge: 3.127
Power: 37
|
Ich muss sagen, dass ich davon nicht so viel Ahnung habe, aber wenn du den Salt zusammen mit dem Passwort speicherst, dann kannste den Salt auch weglassen..
Weil wer das verschlüsselte Passwort aus der DB ausliest, kann auch gleich den Salt mit auslesen.. Ich würde das eher fest in den Code packen... Entweder immer den gleichen Salt für alle Benutzer in einer Config speichern.. Oder, was vermutlich auch besser ist, den Salt anhand eines Algorithmus zu generieren.. zB die MD5 vom Benutzernamen oder ähnliches.. Den kann man dann natürlich auch generieren, aber dafür muss der Angreifer das erstmal wissen wie der Salt generiert wird... MfG ![]() I ♥ Werder |
|
|
|
AW: sha256 |
|
|
# 3 |
|
Da geht noch einer!
Bewertung:
![]() Registriert seit: Oct 2005
Beiträge: 582
Power: 21
Themenstarter |
Ja aber MD5 gilt ja als geknackt.
Man kann ja wie ich es mir erlesen habe, mit dem hash von sha256 + Salt nichts anfangen. Weil man es nicht entschlüsseln kann. Mann kann einen Wert z.B. das Passwort mit dem Salt und sha256 verschlüsseln und dann vergleichen. http://www.webmasterpro.de/coding/ar...speichern.html |
|
|
|
AW: sha256 |
|
|
# 4 |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: Nov 2006
Internet: DSL2 16K
Beiträge: 6.161
Power: 51
|
sicher ist relativ.
wenn deine db gehackt wird und der salt da mit drin liegt isser nutzlos. ein fester salt ist ebefalls nutzlos. sobald man den raus hat (z.b. via shell/lfi) kann man jedes passwort cracken. Geändert von Murdoc (10.06.2012 um 14:43 Uhr). |
|
|
|
AW: sha256 |
|
|
# 5 |
|
Da geht noch einer!
Bewertung:
![]() Registriert seit: Oct 2005
Beiträge: 582
Power: 21
Themenstarter |
Wie würdest Du denn vorgehen Murdoc ?
|
|
|
|
AW: sha256 |
|
|
# 6 |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: Nov 2006
Internet: DSL2 16K
Beiträge: 6.161
Power: 51
|
hätte ich ne bessere lösung, dann würde ich sie sicherlich dazuschreiben
![]() ich schreibe derzeit den salt mit in die datenbank und mach noch ein paar andere dinge die ich jetzt nicht umbedingt ausführlich beschreiben möchte. als tipp: mach es so umständlich wie möglich, dann verlieren cracker die lust. knackbar ist es aber dennoch. schau dir zusätzlich mal mcrypt an: http://www.php.net/manual/de/ref.mcrypt.php Geändert von Murdoc (10.06.2012 um 19:57 Uhr). |
|
|
|
AW: sha256 |
|
|
# 7 | |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: May 2006
Beiträge: 2.720
Power: 32
|
Zitat:
das salt sollte daher auch nicht statisch sein, damit es keinen sinn macht eine rainbowtable mit diesem salt zu generieren. gegen schlechte passwörter kann ein salt dann auch nichts machen ![]() wieso.tutdas.net
aHR0cDovL25ldGN1cC5kZSBHdXRzY2hlaW46IDE0OG5jMTI3NzA0MDQ4MjIgMyBNb25hdGUgR3J 1bmRnZWL8aHIgZvxyIHYob2xrcylTZXJ2ZXIgZ2VzY2hlbmt0IChm/HIgTmV1a3VuZGVuKQ== |
|
|
|
|
AW: sha256 |
|
|
# 8 |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: Oct 2005
Beiträge: 3.556
Power: 40
|
hab ich da was verpasst?
Wenns ihm um die Passwortsicherheit (z.B. durch Bruteforce) geht, soll er SHA512 nehmen und ein "langes" Passwort vorschreiben ![]() € Linux / Unix / Windows - Hilfestellung / Installation / Management € |
|
|
|
AW: sha256 |
|
|
# 9 |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: Nov 2006
Internet: >=100Mbit
Beiträge: 251
Power: 17
|
Jungs, was redet ihr da?
Der Salt ist nicht nutzlos, auch nicht, wenn er immer an der selben Stelle injected wird. Der Salt ist dafür da, dass der Angreifen für jedes Salz eine eigene Rainbow-Table generieren muss. Je nachdem welcher Algo, wie komplex das Salz ist, wie viele Runden etc benutzt wurde/n ist es nahezu unmöglich, so alle Passwörter in einem Menschenleben zu knacken. Wie Timer schon sagt, muss das Salz aber auf jeden fall _nicht_ statisch sein, sonst ist er in der Tat nutzlos. Am besten Du benutzt eine Chiffrierung des Hashes/Pws mit einem statischen Schlüssel in den Config und ein random Salz für jeden Hash. Falls Du md5 nutzen willst, pack den algo noch in paar Runden ein. Hat folgenden Vorteile: a) Muss der Angreife neben einer SQL-Injection auch zugriff auf's Filesystem haben, um die PWs zu entschlüsseln b) Dauert die Generierung der Rainbowtables erhebtlich länger bei abgefahrenen custom salt-schemas, da die meisten rainbowtables da draußen nicht auf allen salz-kombinationen aufsetzen. (Meist sogar nur die standard Dinger wie <pw>+<salt>, <salt>+<pw>, <salt>+<pw>+<salt> etc) c) (falls a) nicht greift) und der Angreifer selbst die rainbowtable anlegen muss, dauert es je nach algo und runden _erheblich_ länger. Als Code-Beispiel: https://github.com/KrynLabs/Kryn.cms...class.php#L753 Geändert von MArc (10.06.2012 um 23:54 Uhr). |
|
|
|
AW: sha256 |
|
|
# 10 |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: Nov 2006
Internet: DSL2 16K
Beiträge: 6.161
Power: 51
|
und wo genau wiederspricht sich das mit meiner aussage? ^^
fester (statischer) salt -> nutzlos. zufälliger salt mit in der db bei nem hack -> nutzlos. das einzige was im raum steht ist eben der aufwand und die fähigkeit entsprechende stellen im code zu finden und zu verstehen. um es nochmal zusammenzufassen: man kann es den crackern nur erschweren. z.b. mit nem algo der um einiges länger braucht als md5/sha1/sha256 etc. z.b. (wie oben erwähnt) nen aufwendigen algo mittels mcrypt oder eben mehrere runden. dann sind ein paar stunden schnell mal tage bei dict-attacks. ich hab die letzten tage mal nen interessanten artikel dazu gelesen. http://codahale.com/how-to-safely-store-a-password/ Geändert von Murdoc (11.06.2012 um 03:02 Uhr). |
|
|
|
AW: sha256 |
|
|
# 11 |
|
Bewertung:
![]() ![]() ![]() ![]() Registriert seit: Mar 2005
Internet: Modem/ISDN
Beiträge: 1.860
Power: 29
|
Ich mache es so: Bei jedem erfolgreichem Passwort ändert sich der Salt. Welcher Salt zum Passwort gehört ist eine Kombination aus Cookie und DB.
In der DB gibt es eine Salt-Tabelle (key, salt). Key wird beim User als Cookie gespeichert. Wenn sich der User nun einloggt wird anhand des Salts im Cookie versucht, das Passwort zu überprüfen. Wenn erfolgreich: Neuer Salt mit neuem Key > Cookie auch neu (alten löschen). Falls nun ein User keinen Cookie hat, geht das über eine gesonderte Seite (falls ein User also auf Account XYZ zugreifen will, aber keinen Cookie hat (oder einen falschen) wird er auf einen anderen Login geschickt, wo er danach den Login via Mail bestätigen muss). Zusätzlich stehen mehrere Methoden der Verschlüsselung zur Auswahl. Diese Information wird allerdings noch beim User in der Datenbank gespeichert. Ob es was bringt, ka. Dies ist sehr umständlich und nicht bei allen Projekten zu nutzen. Wenn es aber sicher sein soll, ist dies ein Vorschlag. Doch der Genitiv des sächlichen Demonstrativpronomens "dieses" und der des männlichen Demonstrativpronomens "dieser" lautet in beiden Fällen "dieses". ![]() |
|
|
|
AW: sha256 |
|
|
# 12 |
|
Ehrenmitglied
![]() Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: Dec 2004
Internet: >=100Mbit
Beiträge: 2.708
Power: 34
|
Wie wäre denn eine Mischung aus Salt in der Datenbank und Salt auf der Festplatte?
Nicht jeder, der eine SQL Injection beherrscht, hat auch die Möglichkeit an eine Shell bzw an die Dateien auf dem Webserver zu kommen. Wenn man also beim Login einmal mit dem SALT in der DB und danach diesen Hash wieder mit Salt von der HD verschlüsselt, wäre das Ganze wahrscheinlich dreimal so langsam wie die nur Datenbank Methode, aber man hätte ein gewisses weiteres Maß an Sicherheit geschaffen. Der Hash Prozess bzw. das Salt auslesen (aus Dateien) ist zwar wirklich sehr langsam, würde aber nur beim Passwort ändern oder Login genutzt werden, also bei einem Forum z.B. nicht 1000mal die Sekunde.. [TUTORIAL] T-Online DNS-Fehler abschalten |
|
|
|
AW: sha256 |
|
|
# 13 |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: May 2005
Internet: >=50Mbit
Beiträge: 1.930
Power: 29
|
PHP-Code:
Außerdem brauchen sie lokalen Zugriff und DB Zugriff. So hältst du die meisten auf. |
|
|
|
AW: sha256 |
|
|
# 14 |
|
Bewertung:
![]() ![]() ![]() ![]() Registriert seit: Mar 2005
Internet: Modem/ISDN
Beiträge: 1.860
Power: 29
|
Noch als Tipp: Auf jeden Fall die Anzahl der Versuche limitieren. Nach 5 Loginversuchen IP sperren.
Doch der Genitiv des sächlichen Demonstrativpronomens "dieses" und der des männlichen Demonstrativpronomens "dieser" lautet in beiden Fällen "dieses". ![]() |
|
|
|
AW: sha256 |
|
|
# 15 |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: Nov 2006
Internet: >=100Mbit
Beiträge: 251
Power: 17
|
Hier
Sofern der Angreifer mittels Rainbowtable ran muss, muss er fuer jeden Salt eine eigene generieren. Damit ist ein zufaelliger Salt also definitiv nicht nutzlos. @phraser, +1, genau mein Reden. Ja, zumal die Einlog-Geschwindigkeit in der Tat oft keine grosse Rolle spielt. Der Login darf ruhig auch seine halbe Sekunde dauern. Umso komplexer die Berechnung umso langsamer sind Bruteforce attacken. Falls es aber doch performancekritisch ist, kann man den Schlüssel auch entsprechend cachen: http://www.tutorials.de/blogs/marc/1...benchmark.html Geändert von MArc (11.06.2012 um 16:24 Uhr). |
|
|
|
AW: sha256 |
|
|
# 16 |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: Nov 2006
Internet: DSL2 16K
Beiträge: 6.161
Power: 51
|
gezielte angriffe (z.b. auf administratoren) sind dennoch ohne probleme möglich.
zudem kann der angreifer die klartext-passwörter der rt auch zur laufzeit hashen mit dem gespeicherten salt. dauert halt ein wenig länger (GPU?) vielleicht kann das jemand mit mehr ahnung mal aufklären. Geändert von Murdoc (11.06.2012 um 16:44 Uhr). |
|
|
|
AW: sha256 |
|
|
# 17 | ||
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: May 2005
Internet: >=50Mbit
Beiträge: 1.930
Power: 29
|
Hier bitte sehr. Gut kenne ich mich damit aber nicht aus
http://hashcat.net/oclhashcat-plus/#performance Zitiere mal die interessanten Stellen: Zitat:
Zitat:
Zwischen MD5 und Joomla liegen zum Bruten 10% Geschwindigkeitsverlust bei dem Programm und dem einen Beispiel PC. 10% Ist kein Problem letztendlich. Quellen: http://www.joomlaportal.de/allgemein...lung-salt.html http://www.joomlaportal.de/allgemein...wort-hash.html Geändert von badloader (12.06.2012 um 17:52 Uhr). |
||
|
|
|
AW: sha256 |
|
|
# 18 | |
|
Bewertung:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Registriert seit: Oct 2005
Beiträge: 3.556
Power: 40
|
Zitat:
Sind auf gescheiten systemen auch kein 10%. ![]() € Linux / Unix / Windows - Hilfestellung / Installation / Management € Geändert von dreamax (13.06.2012 um 02:31 Uhr). |
|
|
|
|