Philipp: md5 in Cookie speichern? Wie sicher ist es?

Hallo,
 ich habe mir ein kleines Login-System geschrieben, welches auf PHP/MySQL und Cookies basiert.
Zur Identifikation nutze ich z.Z. 2 Cookies. Eins für den Username und eins für das Passwort (wird als md5 im Cookie gespeichert).

Wie sicher ist das ganze jetzt (realistisch betrachtet)? Sollte ich auf das Abspeichern der md5 verzichten?
Welche Alternativen habe ich (d.h., welche Daten eignen sich besser, um als Identifikation von Cookies herangezogen zu werden)?

Danke im Voraus.
MfG

  1. Wie sicher ist das ganze jetzt (realistisch betrachtet)? Sollte ich auf das Abspeichern der md5 verzichten?
    Welche Alternativen habe ich (d.h., welche Daten eignen sich besser, um als Identifikation von Cookies herangezogen zu werden)?

    wenn du das pw mit md5 verschlüsselst ist dieses passwort schon sehr gut geschützt da man md5 nicht entschlüsseln kann...

    der cookie liegt sicher auf dem rechner des user und kann im normalfall nur von deiner seite abgerufen werden..

    bedenken solltest du das einige browser cookies blocken oder user sie abgeschaltet haben...

    1. bedenken solltest du das einige browser cookies blocken oder user sie abgeschaltet haben...

      Bedingt durch die Tatsache, dass es nur einen Benutzer gibt (nämlich mich :D), ist es eigentlich egal, ob andere Cookies abgeschaltet haben ;).

      Ok, wenn es wirklich sicher ist und die Cookies nicht auf andere Rechner übertragbar sind, bin ich beruhigt. Danke :)

      1. Hallo Philipp,

        Ok, wenn es wirklich sicher ist und die Cookies nicht auf andere Rechner übertragbar sind, bin ich beruhigt. Danke :)

        wirklich sicher ist es nicht.
        es kann bei entsprechenden einstellungen des browsers und den "üblichen " sicherheitslücken von microsoft-produkten durchaus vorkommen, das fremde seiten auf den cookie zugreifen können.
        ausserdem ist die frage, wie du das passwort verwendest. wenn dieses auch in der verschlüsselten form beim login übertragen wird, um dann verglichen zu werden, ist der "verschlüsselte" string letzten endes dein eigentliches passwort.
        es besteht also schon die frage, wie du deinen schutz überhaupt aufgebaut hast.
        schau dir mal die browser-sicherheits-checks bei heise.de an. dort werden sicherheitslücken dargestellt, über die man auch auf deinen cookie zugreifen kann.

        freundl. Grüße aus Berlin, Raik

        1. naja nur wird der cookie dann auch von der seite akzeptiert als wenn er auf dem orginal rechner wäre ? das wage ich zu bezweifeln...

          also fakt ist es gibt nichts das es nicht gibt ;O)

          so wie er es geschildert hat verschlüsselt er das passwort mit md5 und sichert es dann im cookie... wenn diese kopierbar auf eine andere maschine sind und die seite es nicht merken könnte wäre das in der tat ein problem, das kann ich mir aber nur schwer vorstellen...

          mit dem entsprechenden aufwand und den meist riesigen kosten kann man schon sachen machen nur muss man immer sehen ob diese leute es auf seinen login abgesehen hätten ;o) ???

          1. Hallo stephan,

            naja nur wird der cookie dann auch von der seite akzeptiert als wenn er auf dem orginal rechner wäre ? das wage ich zu bezweifeln...

            die seite liest nur den cookie aus, einen "orginal-rechner" _kann_ sie garnicht identifizieren.

            so wie er es geschildert hat verschlüsselt er das passwort mit md5 und sichert es dann im cookie...

            schön. und wenn die prüfung auf dem server, auf dem er sich einloggt, dann heist: if(md5($passwd)==$cookie_passwd) dann nützt die "verschlüsselung" garnichts. ein (z.b. md5) hash (prüfsumme) ist keine "verschlüsselung" und dient dazu, das passwort in der datenbank in einer form abzulegen, die es auch dann wertlos macht, wenn jemand direkten zugriff auf die datenbank bekommt.

            wenn diese kopierbar auf eine andere maschine sind und die seite es nicht merken könnte wäre das in der tat ein problem, das kann ich mir aber nur schwer vorstellen...

            nicht "kopierbar", sondern "auslesbar". und mit einem entsprechenden eintrag in der "hosts"-datei des eigenen rechners kann ich _jeder_ seite weis machen, der cookie, den ich dann selber setze, wäre von ihr gekommen. trage dort (z.b. C:\WINDOWS\system32\drivers\etc) ein:
            127.0.0.1 www.heise.de
            und du kannst von deinem lokalen webserver aus bei dir einen cookie für heise.de setzen.

            mit dem entsprechenden aufwand und den meist riesigen kosten kann man schon sachen machen nur muss man immer sehen ob diese leute es auf seinen login abgesehen hätten ;o) ???

            es gibt jede menge script-kiddies, denen auch ohne nutzen jeder aufwand recht ist, um auf ein fremdes system zu kommen, nur um sich oder jemandem anderes zu beweisen, das sie es können.

            freundl. Grüße aus Berlin, Raik

        2. Tach auch,

          es kann bei entsprechenden einstellungen des browsers und den "üblichen " sicherheitslücken von microsoft-produkten durchaus vorkommen, das fremde seiten auf den cookie zugreifen können.

          Seit wann sind Mozilla und Opera Microsoft-Produkte?

          Gruss,
          Armin

          --
          Location: Swindon/Wiltshire/England/UK/Europe/Northern Hemisphere/Planet Earth/Solar System/Milky Way Galaxy/Universe
          http://www.ministryofpropaganda.co.uk/
          1. Tach auch,

            es kann bei entsprechenden einstellungen des browsers und den "üblichen " sicherheitslücken von microsoft-produkten durchaus vorkommen, das fremde seiten auf den cookie zugreifen können.

            Seit wann sind Mozilla und Opera Microsoft-Produkte?

            Nur so zur Ergaenzung mal ein paar Links:

            http://alive.znep.com/~marcs/security/mozillacookie/

            http://www.linuxsecurity.com/articles/host_security_article-4317.html

            http://www.securityfocus.com/bid/3553/discussion/

            http://www.securiteam.com/windowsntfocus/5EP0D2A75O.html

            Richtig, schon etwas aelter. Nichtsdestotrotz genau das gleiche Problem und nicht auf Windows beschraenkt. Und wer garantiert dass es nicht noch weitere Probleme gibt?

            Gruss,
            Armin

            --
            Location: Swindon/Wiltshire/England/UK/Europe/Northern Hemisphere/Planet Earth/Solar System/Milky Way Galaxy/Universe
            http://www.ministryofpropaganda.co.uk/
          2. Hallo Armin,

            Seit wann sind Mozilla und Opera Microsoft-Produkte?

            du meinst, dort gibt es derartige sicherheitslücken auch?
            ich wollte bio und anderen microsoft-hassern nicht schon wieder auf die füsse treten. ;-)

            freundl. Grüße aus Berlin, Raik

    2. Hello,

      der cookie liegt sicher auf dem rechner des user und kann im normalfall nur von deiner seite abgerufen werden..

      Cookies werden nicht abgerufen. Sie werden beim Request des Clients an den passenden Server/Path mitgeschickt.

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
  2. Moin!

    Zur Identifikation nutze ich z.Z. 2 Cookies. Eins für den Username und eins für das Passwort (wird als md5 im Cookie gespeichert).

    Das ist nicht unbedingt ideal. Die Verwendung von md5 bringt dir hier jedenfalls keinen Vorteil.

    Wie sicher ist das ganze jetzt (realistisch betrachtet)? Sollte ich auf das Abspeichern der md5 verzichten?
    Welche Alternativen habe ich (d.h., welche Daten eignen sich besser, um als Identifikation von Cookies herangezogen zu werden)?

    Du solltest einen Session-Mechanismus verwenden. Es sei denn, du willst dir ein ständiges Login ersparen und speicherst deine Userdaten deshalb langfristig.

    Was die Sicherheit angeht: Irgendwo wirst du deinen Benutzernamen und Passwort ja mal eingegeben haben. Da du nichts von Verschlüsselung (HTTPS) geschrieben hast, mußt du davon ausgehen, dass diese Daten unverschlüsselt übertragen werden und von Angreifern abgehört werden können. Dagegen kannst du (außer eben einen verschlüsselten Kanal zu benutzen) nichts tun.

    Das Passwort im Cookie per MD5 abzulegen, hilft da auch nicht mehr viel. Denn man kriegt entweder Zugriff mit den Klartext-Anmeldedaten, oder mit den Klartext-Cookiedaten (welches Passwort zum MD5-String geführt hat, ist irrelevant, deine Applikation kann nicht nachprüfen, ob das Cookie echt gesetzt wurde, oder manipuliert ist).

    Du hast also, was die Sicherheit angeht, die typischen Probleme unverschlüsselter Datenkommunikation. Und durch die Zweigleisigkeit "normales Passwort + MD5-Passwort" eröffnest du eine immerhin doppelt so große Angriffsfläche, auch wenn diese im Vergleich zu den möglichen Passworten immer noch winzig ist.

    Sessions wären wirklich irgendwie schöner. Und da man irgendwann sowieso auf sie stößt, könntest du dich auch jetzt dran versuchen. :)

    - Sven Rautenberg

    --
    Die SelfHTML-Developer sagen Dankeschön für aktuell 20065,57 Euro Spendengelder!
    1. Hello,

      Sessions wären wirklich irgendwie schöner. Und da man irgendwann sowieso auf sie stößt, könntest du dich auch jetzt dran versuchen. :)

      Eine Session ist doch auch nicht anders aufgebaut, als eine Lösung mit einem im Cookie gespeicherten Schlüsselwert...

      Man kann schließlich auch Sessions mit "Auth401" installieren. Da braucht man dann keine Cookies.

      Was müsste man denn für den Aufbau einer HTTPS-Verbindung machen?

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      1. Moin!

        Sessions wären wirklich irgendwie schöner. Und da man irgendwann sowieso auf sie stößt, könntest du dich auch jetzt dran versuchen. :)

        Eine Session ist doch auch nicht anders aufgebaut, als eine Lösung mit einem im Cookie gespeicherten Schlüsselwert...

        Richtig, das ist im Grunde nichts anderes. Mit dem kleinen, aber feinen Unterschied, dass bei einer Session der Schlüsselwert nur temporär gültig ist, in diesem Beispiel aber immer (jedenfalls so lange, bis das Passwort zum Usernamen geändert werden).

        Man kann schließlich auch Sessions mit "Auth401" installieren. Da braucht man dann keine Cookies.

        Kann man auch tun.

        Was müsste man denn für den Aufbau einer HTTPS-Verbindung machen?

        Einfach HTTPS benutzen. :)

        Die Sicherung der Verbindung geschieht transparent. Aber man benötigt natürlich einen SSL-fähigen Server, und das ist nur selten gegeben.

        - Sven Rautenberg

        --
        Die SelfHTML-Developer sagen Dankeschön für aktuell 20065,57 Euro Spendengelder!