zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Login Formular - Salt

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 11.11.2011, 18:55
Benutzerbild von laborix
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 11.12.2005
Beiträge: 1.495
laborix ist ein sehr geschätzer Menschlaborix ist ein sehr geschätzer Menschlaborix ist ein sehr geschätzer Mensch
Standard Login Formular - Salt

Hallo miteinander,

mal eine Verständnis Frage zum Login Formular und Passwort mit Salt. In den letzten Tage habe ich viel zum Thema Salt gelesen, mir verschiedene Techniken angeschaut und habe nun ein "geistiges" Probelm.

Wenn man im Login Formular ein Passwort eingibt, zum Beispiel "123456" wird dieses Passwort mit einem Salt-Wert gehasht/verschlüsselt und dann mit dem gehashten/verschlüsselten Passwort in der Datenbank verglichen. Wenn korrekt, dann ist der Login ok.

Also nochmals, das Passwort in Login Formular wird zum Vergleichen mit den gleichen Verfahren gehasht/verschlüsselt, wie die Passwörter beim Anlegen des Benutzers in der Datenbank gehasht/verschlüsset wurden, oder?

Ist das Salt dann eigentlich nur dazu da, Passwörter zum Ablegen in der Datenbank zu hashen/verschlüsseln, aber nicht beim Login? Man könnte also über Listen einfach zig-tausend Passwörter ohne Salt im Login Formular für einen "unbekannten" Benutzerlogin eintragen und auf Erfolg testen?

Wenn ich das richtig verstanden habe, nützt das Salt nur dann etwas, wenn jemand Zugriff auf die verschlüsselten Passwörter bekommen hat und nun versucht mittels diverser Tabellen die Passwörter daraus zu ermitteln?

Oder stehe ich hier voll auf der Leitung?
__________________
Personal stuff
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 11.11.2011, 20:06
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.034
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Das ist korrekt, ein Salt hilft nicht gegen Bruteforce-Attacken.

Zum Hashen von Passwörtern sollte man am besten bcrypt nutzen, das erschwert auch Bruteforce-Attacken.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 11.11.2011, 20:51
Benutzerbild von laborix
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 11.12.2005
Beiträge: 1.495
laborix ist ein sehr geschätzer Menschlaborix ist ein sehr geschätzer Menschlaborix ist ein sehr geschätzer Mensch
Standard

Danke, ich dachte schon, ich bin irre...

Zitat:
Zitat von inta Beitrag anzeigen
... Zum Hashen von Passwörtern sollte man am besten bcrypt nutzen, das erschwert auch Bruteforce-Attacken.
bcrypt ab PHP 5.3 oder die phppass Variante?

Brute Force ist auch so ein Thema. Ich habe Lösungen über usleep/sleep(), User- oder IP-Sperren und/oder Captcha gelesen. Alles nichts halbes und nichts rechtes

Einige Hinweise fand ich aber super, zum Beispiel Passwörter größer 8 Zeichen (Buchstaben, Zahlen und Sonderzeichen) werden im Augenblick nicht von Rainbow Tabellen abgedeckt, da die Datenbank zu groß wird. Aber auch den Hinweis, dass man bewährte Methoden bei Salt, wie oben die phppass Variante, einsetzen soll und nicht das Rad selber erfinden.

Wozu ich aber kaum etwas gefunden habe, wo man Salt ablegt. Eventuell eine eigene Tabelle oder in der Config oder irgendwo als Textdatei. Alles offen
__________________
Personal stuff
Mit Zitat antworten
  #4 (permalink)  
Alt 11.11.2011, 21:01
Benutzerbild von David
auch, ja!
XHTMLforum-Kenner
 
Registriert seit: 08.11.2007
Beiträge: 2.626
David ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer Anblick
Standard

Brute Force hat, bei vertretbarem Aufwand, aber nur dann aussicht auf Erfolg, wenn Spaßwörter statt Passwörtern verwendet wurden.
__________________
github | http://dnaber.de
Mit Zitat antworten
  #5 (permalink)  
Alt 11.11.2011, 21:26
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.034
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Meinst du Phpass? Das ist eine Implementierung von bcrypt, welche man verwendet ist relativ egal. Die von Openwall ist recht verbreitet und wird scheinbar gut gepflegt.

Als ich noch kein bcrypt genutzt habe, habe ich für jedes Passwort ein Salt generiert und es zusammen mit dem Passwort in der Datenbank gespeichert (in einem Feld).

Auf die Aussage, dass Rainbowtabellen nur Passwörter bis zu einer bestimmten länge abdecken, würde ich mich nicht verlassen. Bcrypt ist momentan wohl die beste Sicherheit die wir bekommen können.
Mit Zitat antworten
  #6 (permalink)  
Alt 11.11.2011, 21:38
Benutzerbild von David
auch, ja!
XHTMLforum-Kenner
 
Registriert seit: 08.11.2007
Beiträge: 2.626
David ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer Anblick
Standard

Mal ne Frage: Brute Force bezeichnet doch das kontinuierliche ausprobieren von Passwörtern an einem Login-Formular. Wie kann da eine Verschlüsselungsfunktion die Wahrscheinlichkeit, einen Treffer zu landen, verringern?
__________________
github | http://dnaber.de
Mit Zitat antworten
  #7 (permalink)  
Alt 11.11.2011, 21:44
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.034
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Bcrypt verringert nicht direkt die Wahrscheinlichkeit, sondern erhöht die Dauer der Versuche. Der Algorythmus ist absichtlich langsam (die Anzahl der Durchläufe kann verändert werden), so dass es unwahrscheinlich ist, dass das Passwort geknackt werden kann bevor der Angreifer alt und grau ist.
Mit Zitat antworten
  #8 (permalink)  
Alt 11.11.2011, 22:03
Benutzerbild von laborix
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 11.12.2005
Beiträge: 1.495
laborix ist ein sehr geschätzer Menschlaborix ist ein sehr geschätzer Menschlaborix ist ein sehr geschätzer Mensch
Standard

Zitat:
Zitat von inta Beitrag anzeigen
... Auf die Aussage, dass Rainbowtabellen nur Passwörter bis zu einer bestimmten länge abdecken, würde ich mich nicht verlassen. ...
Ohne eine Diskussion über Rainbow Tabellen anzustoßen, aber viele Texte die ich gelesen haben, schreiben von einem Größenproblem der Rainbow Tabellen, wenn Groß-, Kleinschreibung mit Zahlen und Sonderzeichen getestet werden sollen. Also nicht von einer Unmöglichkeit, sondern einer zu großen Rainbow Tabelle.

Unabhängig davon, Brute Force ist und bleibt eine nicht zu unterschätzende Gefahr.
__________________
Personal stuff
Mit Zitat antworten
  #9 (permalink)  
Alt 12.11.2011, 00:08
Benutzerbild von David
auch, ja!
XHTMLforum-Kenner
 
Registriert seit: 08.11.2007
Beiträge: 2.626
David ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer Anblick
Standard

Das eine hat mit dem anderen doch nichts zu tun, oder? Wenn ich das Prinzip der Rainbow-Table richtig verstanden habe ist diese eine Sammlung von Referenzwerten, mit denen ein bekannter Hash verglichen wird, um so auf das Passwort zu schließen. D.h. die Datenbank muss schon kompromittiert worden sein.

Gegen Brute Force kann man sich wirkungsvoll mit vernünftigen Passwörtern schützen. Ein 10-Stelliges Passwort, dass aus der kompletten ASCII-Tabelle schöpft hat ca. 5e19 Kombinationen. Viel Spaß beim raten
__________________
github | http://dnaber.de
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 12.11.2011, 04:09
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 747
mermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblickmermshaus ist ein wunderbarer Anblick
Standard

Wenn ein Angreifer Zugriff auf die Datenbank hat (und im Zweifel auch den Login-Mechanismus im Code einsehen kann):
(Das ist der Hauptfall, gegen den wir uns wappnen müssen.)

Ein Salt sollte zumindest in Teilen dynamisch sein. Das heißt, das Passwort jedes Nutzers wird mit einem unterschiedlichen Salt verrechnet. Als dynamische Komponente kann beispielsweise ein unveränderliches Merkmal des Datensatzes genutzt werden oder auch einfach ein eigenes unveränderliches Feld „salt“ pro Datensatz.

Das kickt Rainbow Tables aus der Gleichung, da eine Rainbow Table nur für einen Account passen würde.

Ob es zusätzlich sinnvoll ist, einen statischen serverseitigen Salt-Anteil vorzuhalten, ist mir gerade entfallen.

Außerdem: Wie angesprochen ein Verschlüsselungsalgorithmus mit langer Laufzeit. (Da freut sich auch Sony, denn dann verkaufen die mehr PS3s.)
Wenn der Angreifer per Brute Force das Login-Formular attackiert:
Bei falscher Passworteingabe IP loggen und nur $x Falscheingaben pro IP pro Account pro Viertelstunde zulassen.

Das schafft außerdem eine lustige Möglichkeit, den Kollegen im Firmennetzwerk zu ärgern.
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
CMS Login Formular - Cookies laborix Serveradministration und serverseitige Scripte 7 08.11.2011 20:04
Problem mit dem Positionieren der Login Div Cybertronic CSS 26 06.10.2009 21:51
Formular padding Problem im IE 7 unic CSS 8 18.01.2009 13:12
Daten via Link an Formular übergeben Sukkulent Serveradministration und serverseitige Scripte 6 02.06.2007 15:49
Login Formular + XHTML1.0 Susanne (X)HTML 9 23.03.2006 18:03


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:16 Uhr.