Sicherheit eines Scripts

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sicherheit eines Scripts

    Hi,

    ich habe mir ein Passwort-Script geschrieben, welches meine Passwörter in ner MySQL-DB abspeichert.

    Nun wollte ich euch fragen, was ihr davon haltet:

    1. Das Userpasswort ist sha1-verschlüsselt in der DB abgespeichert

    2. Beim Login muss man einen Sicherheitsschlüssel abgeben, von welchem nur die ersten 5 Zeichen in der user-tabelle abgespeichert werden. Dieser S-Schlüssel ist zuvor mit sha1 und dann mit md5 behandelt worden.

    3. Die abgespeicherten Passwörter sind mit der Krypto-Klasse von Abraxax (so richtig?) verschlüsselt worden:
    a) mit einem fest im Script eingetragenen Key
    b) danach mit dem S-Schlüssel
    genauso werden sie dann wieder entschlüsselt!

    4. Die Login-Dauer ist auf 10 Minuten begrenzt! Die Seiten aktualisieren sich alle 30 Sekunden und man wird nach dem Überschreiten der 10 Minuten automatisch ausgeloggt!

    5. Der komplette Login-Bereich arbeitet ausschließlich mit Sessions

    6. Wie oben erwähnt, werden die ersten 5 Zeichen des S-Schlüssels mit dem User abgespeichert! Sollte beim nächsten Login der S-Schüssel in den ersten 5 Zeichen anders aussehen, wird der User darüber benachrichtigt (um Rechtschreibfehler zu entdecken!). Zudem ist bei diesem Login kein Bearbeiten der Daten möglich! Sollte man sich dann erneut mit dem falschen Schlüssel einloggen, erscheint die Meldung nicht mehr (also nur eine Überprüfung auf den letzten Schlüssel).

    7. Das ganze ist Multi-User-Fähig (was hat das mit Sicherheit zu tun?) ^-^


    Unten hab ich mal die Klasse von Abraxax dranngehängt.
    Ich hab leider kein anderes Verschlüsselungsverfahren gefunden, welches in beide Richtungen funktioniert!

    Was könnte man noch verbessern?
    Ich glaube, der einzige Schwachpunkt könnte das Verschlüsselungsverfahren sein, oder?
    Angehängte Dateien
    Zuletzt geändert von Timelesk; 06.12.2004, 17:57.

  • #2
    klingt lecker.

    zu 1. und 2.
    diese md5(sha1(md5(sha1(md5(sha1(md5(sha1("pw")))))))); logik ist ehrlich gesagt für den arsch, weil eh kein mensch den hash "zurückdenken" kann. das hatten wir erst vor einigen tagen durchgekaut - wenn einer das passwort durch ausprobieren o.ä. erfährt, helfen keine md5/sha1 hoch 40.

    zu 4.
    wozu das aktualisieren? und wenn ich js ausschalte?

    zu 5.
    was speicherst du in den sessions?

    zu 7.
    faustregel - je mehr user, desto mehr risiko, afaik.


    die sicherheit hängt aber noch von vielen anderen faktoren ab, die man erst beurteilen kann, wenn man deinen code sieht.

    Kommentar


    • #3
      1. da wird ja nur 1x verschlüsselt und in die DB eingetragen

      2. hmmm, haste recht, werde das md5 rausnehmen.

      4. Das ganze geht ohne JS, über den Header (header-weiterleitung auf die aktuelle seite im Abstand von 30 Sekunden)

      7. Die User sind doch alle abgegrenzt, klar, je mehr user, desto mehr daten, desto mehr risiko, aber einen anderen Denkweg seh ich da nicht. Im Grunde: Je mehr Daten, desto mehr Risiko, oder?
      Zuletzt geändert von Timelesk; 11.12.2004, 17:44.

      Kommentar


      • #4
        7. nein, bei "mehr user" gibt's den prozentuellen faktor der "user mit böser absicht" auf die gesamtanzahl.

        will sagen - wenn es 3 user gibt, wird höchstwahrscheinlich keiner scheisse bauen und an die daten der anderen rankommen wollen. bei 30 ist es vielleicht einer, bei 300 sind's dann 4-5 und bei 3000 ganze 10.

        natürlich sind die zahlen erfunden, aber so stelle ich mir das vor.


        p.s. schau mir den code gleich mal an.

        Kommentar


        • #5
          hi penizillin,

          das risiko hab ich schon bedacht und das ist irrelevant geworden!
          Denn durch den Sicherheitsschlüssel, den jeder User eingeben kann (frei wählbar), kann eigentlich keiner an die Daten rann!
          Selbst ich als Admin nicht!

          a) er müsste das Pass des Users wissen
          b) er müsste dessen S-Schlüssel kennen

          Aber welches Gescheitle gibt schon beides preis?

          Kommentar


          • #6
            OffTopic:
            hin und wieder einer, der bei der anmeldung in alle felder "asd" oder "qwer" eingibt, oder alex heisst und "alex" als passwort etc benutzt... leider.

            Kommentar


            • #7
              Nuja,

              da ich das Script eigentlich nicht für die Selbstregistrierung gedacht habe und deswegen auch keine register-datei beiliegt, ist das nicht so wild.

              Mir geht's eher um die Sicherheit der Daten, als um eine gescheite Multiuser-Platform

              Was meint ihr denn sonst so zum Code?

              Kommentar


              • #8
                hab mich nicht all zu tief in die logik reingelesen, aber es scheint keine groben fehler zu geben.

                Kommentar

                Lädt...
                X