AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Benutzerdaten einer Website - weg von MD5
Thema durchsuchen
Ansicht
Themen-Optionen

Benutzerdaten einer Website - weg von MD5

Ein Thema von Matze · begonnen am 6. Feb 2008 · letzter Beitrag vom 11. Feb 2008
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

Benutzerdaten einer Website - weg von MD5

  Alt 6. Feb 2008, 14:11
Hallo zusammen,

gerade durch die phpBB.de-Geschichte, bin ich am Überlegen, ob ich die Benutzerpasswörter der Benutzer meiner Website anders hashen soll. Momentan nutze ich, wie viele andere, den MD5-Algorithmus. Ein anderer gewöhnlicher Hashalgorithmus wie SHA1 bringt meiner Meinung nach nichts, da man mittels Bruteforce, sofern der Hashalgorithmus bekannt ist, ähnlich viel erreichen kann, wie bei einem HD5-Hash.

Nun wurde im entsprechenden Thema das Salting angesprochen. Diesbezüglich bin ich auf php.net auf die crypt-Funktion gestoßen.
Das Problem ist, ich möchte nicht unbedingt jeden registrierten Benutzer auffordern, ein neues Passwort einzugeben. Das wirkt sonst so, als sei die Datenbank geknackt worden, was ich vertuschen möchte und man müsse deshalb die Daten ändern (das würde ich vermutlich als erstes denken).

Wahrscheinlich komme ich ohne weiteres jedoch nicht drum herum:

Zitat von alcaeus:
Sobald die Passwoerter erstmal gespeichert sind, bringt nachtraegliches Salten nichts mehr; es sei denn du hashst das bereits gehashte Passwort nochmal mit Salt, was aber wiederum die permanente Anwesenheit von Update-Code erfordert bis jedes Mitglied sein Passwort neu eingegeben hat.
Da das phpBB die Passwörter als MD5-Hash abspeichert und das vBulletin dies anders machen müsste, würde es heißen, dass bei einer Forenumstellung jeder sein Passwort neu eingeben muss und das ist definitiv nicht der Fall. Daher denke ich, dass es irgendwie schon möglich sein müsste, das Passwort beizubehalten bzw. dessen Hash umzurechnen.

Wie funktioniert das und was würdet ihr mir empfehlen?

Grüße, Matze
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2

Re: Benutzerdaten einer Website - weg von MD5

  Alt 6. Feb 2008, 14:16
Die einzige Möglichkeit, welche ich sehe, ist den MD5 des Passworts mit einem Salt nochmals zu Hashen. Ob das wirklich besser ist, das wage ich zu bezweifeln.

Ansonsten kannst Du es nur über diesen "ewigen Updatecode" machen. Den zu nutzen ist imo aber auch nicht schlimm. Das kann transparent im Hintergrund geschehen, so dass die Nutzer nichts mitbekommen. Zusätzlich zum Salt-String, welcher in der DB steht, würde ich einen weiteren Salt nutzen, der fest im Code steht. Das macht es für den Nichts-Ahnenden Angreifer nochmals schwieriger das Passwort via Brute-Force zu finden.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Benutzerdaten einer Website - weg von MD5

  Alt 6. Feb 2008, 20:18
Hallo Daniel,

sowohl das Updateskript als das doppelte Hashen gefallen mir eigentlich nicht so sehr. Wobei das Updateskript wäre noch ok, da müsste ich mich mal schlau machen, wie das funktioniert.
Meinst du, ich habe einen Salt-String in der Datenbank, der zum Hashen mitverwendet wird? Denn das kommt mir nicht sehr sicher vor, da ein Angreifer diesen "Schlüssel" zusammen mit den Daten erhält und evtl. damit an die Benutzerdaten kommt. Natürlich konnte ich den Salt-String auch in eine PHP-Datei packen, dann wäre das gelöst.
Persönlich kommt mir es sicherer vor, wenn man einen zufälligen Salt-String nutzt, damit auch der Hash identischer Passwörter unterschiedlich aussieht. Nur müssten diese Strings dann auch irgendwo abgespeichert werden und in der Benutzerdaten-Tabelle wäre das Fehl am Platz.

Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#4

Re: Benutzerdaten einer Website - weg von MD5

  Alt 6. Feb 2008, 23:49
Zitat von Matze:
Nur müssten diese Strings dann auch irgendwo abgespeichert werden und in der Benutzerdaten-Tabelle wäre das Fehl am Platz.
ASP.Net macht es jedenfalls so. Ob das nun heißt, dass die Microsoftler wohl wissen werden, was sie tun, oder genau das Gegenteil *g*, das kann ich nicht beantworten. Aber auch wenn der Salt bekannt ist, verhindert er doch den Angriffstyp Nr.1: Rainbow Tables.
Wichtig für einen guten Salt ist dadurch imo nur eine angemessene Länge (ASP.Net: 10 Byte), volle Ausnutzung des Zeichensatzes und Per-User-Vergabe.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Benutzerdaten einer Website - weg von MD5

  Alt 7. Feb 2008, 10:11
Sicherheitstechnisch sollte auch das doppelte Hashen einen Gewinn bringen. Denn dadurch hättest du die direkten Hashwerte der Passwörter auch nicht mehr vorliegen und verhinderst dadurch Attacken durch Rainbow-Tables. Als Nachteil bringt diese Variante zwar den erhöhten Rechenaufwand für die Verifikation, da zweimal gehahst werden muss, aber das sollte normalerweise zu vernachlässigen sein.

Aber die größte Sicherheitslücke ist immer noch die Übertragung selbst - wenn die Passwörter im Klartext durch die Leitung gehen, kann jemand da angreifen und sich nicht mühsam in die Datenbank einhacken.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Benutzerdaten einer Website - weg von MD5

  Alt 7. Feb 2008, 10:31
Das doppelte Hashen (Bsp MD5 und SHA1) hätte den Vorteil, dass ich den bestehenden Hash einfach erneut hashen kann und so die Passwörter erhalten bleiben. Doch ich denke, da kann man auch recht leicht dahinterkommen. Vielleicht lässt sich das sogar am Hashwert erkennen.

Bei der Übertragung gebe ich dir recht, doch in Blogs (und Foren) ist das leider nicht häufig anzutreffen, zumindets kenne ich keinen, bei dem dies so wäre. Ich muss zugeben, dass ich mich mit SSL (https) noch nicht auseinandergesetzt habe und auch nicht weiß, ob mein Server dies unterstützt. Ich kann mir auch nicht vorstellen, dass jemand versucht, so die Passwörter von benutzern meiner kleinen Website herauszufinden, aber schön wäre so eine Lösung.
  Mit Zitat antworten Zitat
Benutzerbild von cware
cware

Registriert seit: 15. Feb 2007
Ort: Mannheim
38 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Benutzerdaten einer Website - weg von MD5

  Alt 7. Feb 2008, 14:44
genau aus dem grund schreibt man sich für den datenbank-zugriff IMMER ein zusätzliches modul, dass die ganzen sicherheits-vorkehrungen automatisch trifft... sobald so'n ding da ist, kann man es mit code-injection bombardieren, bis einem schlecht wird...
die aussage, dass es keine sicherheitslücke in phpBB ist schlichtweg gelogen...
dass ist so, als ob ich einen FTP-server schreibe, einen debug-zugang ohne passwort fest einkompiliere und dann sage, dass derjenige sich ja nicht eingehackt hat... stimmt... er hat den leichten weg genommen...

zu dem bruteforcing:
wenn man das bruteforcing erschweren will, sollte man versuchen, die Anzahl der Elemente des Definitionsbereichs zu erhöhen...
oder anders ausgedrückt: man sollte versuchen, vor dem hashen statt einem ascii-text einen binärtext zu erhalten...
auch der salt sollte möglichst binär sein...
das erste, was man versucht, ist, den Definitionsbereich zu verringern... die verkleinung des Definitionsbereich verringert nämlich die Komplexität in abhängigkeit von der länge des ausgangstextes...

*ehem*
angenommen, wir sind im unären Zahlensystem (wobei 1 zur Basis 1 = 0 zur Basis 10, oder einfach ausgedrückt 0 = 1, 1 = 11, 2 = 111, etc.)...
dann müssen wir für jede stelle genau ein Element prüfen... die Komplexität liegt also bei n...
(um ein Wort der maximal-Länge n zu bruteforcen, müssen wir genau n worte testen [naja, eigentlich n-1, aber wen stört's])...
im binären Zahlensystem müssten wir bei n Stellen bereits 2^n Zustände prüfen, im ternären system 3^n etc. pp.

um es mal an zahlen auszumachen...
angenommen, wir lassen nur passwörter mit mind. 8 zeichen zu...
wenn wir unsere passwörter in binärform hashen (8bit definitionsbereich), haben wir 18446744073709551616 mögliche wörter...
wenn wir nur passwörter mit groß- und klein-buchstaben, zahlen und ein paar sonderzeichen zulassen, kommen wir auf einen definitionsbereich mit etwa. 72 elementen (bei vielen systemen sind es weniger) und somit auf 722204136308736...
die anzahl der zu testenden passwörter ver-25.000-facht sich...

mit einem binären salt vergrößert sich diese zahl natürlich noch...


cheers...

P.S.: was man natürlich beachten muss, sind evtl. vorhandene kolisionen... diese sind allerdings nicht vermeidbar, da hashing ja immer eine surjektive abbildung ist...
> Why is 6 afraid of 7?
< Because 7 8 9!
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8

Re: Benutzerdaten einer Website - weg von MD5

  Alt 7. Feb 2008, 15:17
Also bei unseren Servern wird nachdem 5 misslungenen Versuch die IP auf eine Banlist geschrieben womit die Firewall die IP 24 Std. Blockt.

Na dann viel Spass beim Bruteforce man sieht sich in ca. 10 Jahren wieder
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Benutzerdaten einer Website - weg von MD5

  Alt 7. Feb 2008, 16:53
Ähm hab ich richtig verstanden, der lange Text soll mir lediglich mitteilen, ich soll ein Passwort vor dem Hashen in eine Binärform bringen.
  Mit Zitat antworten Zitat
Benutzerbild von cware
cware

Registriert seit: 15. Feb 2007
Ort: Mannheim
38 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Benutzerdaten einer Website - weg von MD5

  Alt 7. Feb 2008, 17:09
den text in eine binärform bringen unter der premisse, dass die länge des wortes gleich lang bleibt, ja... das kann zum beispiel durch das einrechnen von stördaten/varianzen geschehen, durch die dann theoretisch alle 256 zustände in einem ungehashten wort vorkommen können...
das schöne: selbst, wenn der algorithmus für das einrechnen der varianzen bekannt ist, bringt das nichts, weil wir ja einwegfunktionen benutzen...
sprich: md5(vary(Wort)) != vary(md5(Wort))
oder anders: die Varianz kann nicht vor dem Bruteforcen herausgerechnet werden...


cheers...

P.S.: wegen dem langen text - da hatte ich grad Mathe-Vorlesung... hat wohl abgefärbt...
> Why is 6 afraid of 7?
< Because 7 8 9!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz