Anzeige

sinnvoll verschlüsseln?

sinnvoll verschlüsseln? | PSD-Tutorials.de

Erstellt von afr0kalypse, 10.08.2009.

  1. afr0kalypse

    afr0kalypse Allwissendes Karmameerschweinchen!

    Dabei seit:
    09.11.2005
    Beiträge:
    819
    Geschlecht:
    männlich
    Ort:
    Mi Casa
    Software:
    paint, notepad++
    Kameratyp:
    Canon EOS 40d
    sinnvoll verschlüsseln?
    hi :)

    ich habe mir mal diesen beitrag durchgelesen: MD5-Hashing mit JavaScript

    darin geht es um eine javascript seitige verschlüsselung vom passwort per md5 hash.
    jetzt habe ich in mehreren foren gelesen, dass es ja egal sei ob ich clientseitig das passwort mit nem md5 hash verschlüssel und diesen hash dann an den server schicke
    oder das passwort in plaintext an den server schicke, da beides ja gesnifft und somit auch benutzt werden kann.

    wenn ich nun folgendes beispiel habe:
    ---
    eine einfache homepage basierend auf php, javascript und ner mysql datenbank mit user tabelle.

    mein loginformular wird per post abgeschickt.

    per javascript verändere ich das passwort vorher mit md5 und schick es erst dann an meine datenbank_user_login.php

    meine datenbank_user_login.php fragt sessionseitig ab, von welcher seite aus die post variablen kommen. kommen sie von einer unbekannten so wird geblockt, andernfalls gehts mit ner datenbankverbindung weiter.

    dann wird die verbindung gemacht und das select statement "select username from user where username = 'bla' and passwort='meinverschlüsseltespasswort'
    ---

    ist das nicht schon sicher genug? ein hacker kann mit dem md5 hash nichts anfangen, weil er sich nicht auf die datenbank verbinden kann (hoffe ich mal, wenn ich per mysql_connect verbinde... :) ).
    versucht er nun meine datenbank_user_login.php direkt aufzurufen oder ein fremdes formular zu benutzen, wird geblockt.

    habe ich nun nen denkfehler oder wo ist hier die schwachstelle?

    wenn das wirklich nicht sicher sein sollte, muss ich dann zwangsläufig auf https bzw. htacces zugreifen oder gibts noch ne ähnliche lösung wie die oben beschriebene?

    dank und gruß
    afr0
     
    #1      
  2. FlashSoft

    FlashSoft Besserwisser

    Dabei seit:
    26.02.2009
    Beiträge:
    852
    Geschlecht:
    männlich
    Ort:
    Leipzig
    Software:
    Photoshop CS5, Dreamweaver, Flash 8 & CS4
    Kameratyp:
    Digikam
    sinnvoll verschlüsseln?
    AW: sinnvoll verschlüsseln?

    Ein MD5 Hash ist keine Verschlüsselung.

    Um Wörterbuchattacken zu verhindern muß das Passwort nicht nur gehashed sondern nachträglich auch wirklich verschlüsselt werden. Also MD5 ist keine Lösung.

    FlashSoft
     
    #2      
  3. Duddle

    Duddle Posting-Frequenz: 14µHz

    Dabei seit:
    03.02.2006
    Beiträge:
    3.864
    Geschlecht:
    männlich
    Ort:
    Dresden
    sinnvoll verschlüsseln?
    AW: sinnvoll verschlüsseln?

    Was hast du denn da für krude Foren gelesen?
    Es ist doch ein deutlicher Unterschied ob ich eine kaputtgeschlagene und definitiv nicht mehr rekonstruierbare oder eine sofort benutz- und auslesbare Festplatte per Post verschicke. Natürlich kann beides abgefangen werden, aber mit ersterer können nur die wenigsten etwas anfangen.

    Allzu viel konnte ich deinem Post leider nicht entnehmen, deshalb hier ein paar generische Hinweise:
    • Passwörter serverseitig nie im Klartext abspeichern, sondern immer hashen (und dann das Salz nicht vergessen)
    • unverschlüsselte Verbindungen sind immer unsicher, du wirst keinen (seriösen) Bankanbieter finden, der kein https-Login anbietet
    • es gibt keine 100%ige Sicherheit


    Duddle
     
    #3      
  4. afr0kalypse

    afr0kalypse Allwissendes Karmameerschweinchen!

    Dabei seit:
    09.11.2005
    Beiträge:
    819
    Geschlecht:
    männlich
    Ort:
    Mi Casa
    Software:
    paint, notepad++
    Kameratyp:
    Canon EOS 40d
    sinnvoll verschlüsseln?
    AW: sinnvoll verschlüsseln?

    moin ihr beiden :)

    dass ein md5 hash keine verschlüsselung ist, ist mir klar. dennoch macht das md5 hash den eigentlichen text ja unleserlich.

    klar ist es ein unterschied, ob ich die daten als plaintext oder als hash speicher.
    doch wie flashsoft schon sagt, ist es mit wörterbuchattacken "relativ" einfach, aus den hashes den plaintext herauszulesen.

    trotzdem bringt mir das ja nichts, wenn ich nen login formular habe, das serverseitig erst das hash generiert... das passwort wird ja trotzdem als plaintext vorher per get oder post an den server geschickt.

    demnach komme ich ja um eine clientseitige veränderung des passwortes gar nicht rum (außer ich benutze gleich eine verschlüsselte verbindung).

    wenn ich das also richtig sehe, ist eine sinnvolle verschlüsselung nur dann möglich, wenn ich meine salted hash beispielsweise per javascript erzeuge und diese dann in die datenbank speicher.
     
    #4      
  5. Duddle

    Duddle Posting-Frequenz: 14µHz

    Dabei seit:
    03.02.2006
    Beiträge:
    3.864
    Geschlecht:
    männlich
    Ort:
    Dresden
    sinnvoll verschlüsseln?
    AW: sinnvoll verschlüsseln?

    Relativ einfach?
    Ja, wenn du das salt vergisst und der Benutzer ein einfaches Passwort aus dem Wörterbuch nimmt und du einem Angreifer erlaubst eine Wörterbuchattacke zu fahren (Stichwort "begrenzt viele Versuche pro IP pro Stunde"), ja dann ist es "relativ" einfach. Aber dann hast du und der Benutzer es auch verdient.

    Das ist die Quintessenz.


    Duddle
     
    #5      
  6. stroyer

    stroyer Aktives Mitglied

    Dabei seit:
    03.01.2009
    Beiträge:
    567
    sinnvoll verschlüsseln?
    AW: sinnvoll verschlüsseln?

    Ich habe das Problem so gelöst, dass ich zuerst beim Server um einen zufällig generierten Hash anfrage, mit diesem dann den Hash von meinem Passwort modifiziere und nochmal hashe und das übergebe ich dann dem Server. Dieser erkennt über eine Datenbank und die Anfrage, welche id der geschickte Hash hatte. Daraus wird dann die Richtigkeit des Passwortes geprüft und dann wird sofort der Seed in der Datenbank gelöscht.

    Wenn du etwas richtig verschlüsseln willst, empfehle ich dir eine rc-Verschlüsselung.
    Ich habe irgendwo eine für PHP und JS geschrieben.
     
    #6      
x
×
×