Jan K.: Sinnigkeit der Abspeicherung von Hashes statt Klartext

Hallo zusammen,

ich baue momentan an einem Web-Projekt für mich als Zusatz für meine Bewerbungen und als Ort wo ich mit meinen Freunden Daten und Infos tauschen kann (nicht jeder darf alles sehen, der Inhalt wird in Sichtbarkeitsstufen eingelteilt).

Da ich für den Bewerbungszusatz gerne sämtliche Zeugnisse und auch ansonsten für meine Freunde viele Fotos und Medien reinstellen möchte, lege ich besonderen Wert auf den Sicherheitsaspekt.

Mit der Zeit sind mir so einige Sicherheitsrelevante Dinge über den Weg gelaufen, angefangen von der Eingabefilterung von GET und POST, Session-hijacking oder die verschlüsselte Verbindung mit SSL. Bisher habe ich relativ darauf gepfiffen, aber nun möchte ich meine sensiblen Daten doch so gut wie möglich schützen.

Mein registrierungs/login PHP-Script bezieht die Passwörter nun als md5-Hashes (ohne Salt dafür müssen Passwörter mind. 12 Stellen lang sein - in irgendeiner der letzten ct`s war mal ein Artikel das ab 11 Stellen Länge das knacken (praktisch)unmöglich wird).

Aber wenn jemand schon unbegrenzten Zugriff auf meine Datenbank hat, bedeuted das ja auch das er vermutlich schon die Rechte hat um die zu schützenden Daten direkt einzusehen.

Daher verstehe ich nicht recht welchen Vorteil das Abspeichern von Hashes statt Klartext hat. Es macht das Ableiten des Klartextes schon schwerer, aber das eigentliche Sicherheitsproblem liegt dann doch woanders?

Ansonsten wäre ich auch dankbar über ein paar Sicherheitsrelevante Tipps die ihr mir geben könntet, bisher beschränken sich meine Sicherheitsbemühungen auf folgendes:

  • Eingabefilterung GET/POST
  • Schutz vor Session hijacking
  • Speicherungs der Benutzerpasswörter als md5 Hashes
  • Der Gesammte login/interne Bereich wird per https/SSL gemacht
  • Falls zuviele Anfragen einer IP in einer bestimmten Zeit erfolgen wird diese IP ausgeschlossen
  • Den registrierten Benutzern wird nicht blind vertraut, die Accounts laufen nach einer bestimmten Zeit aus.
    Es werden keine cookies auf den Clients verwendet um dortigen cookiediebstahl nicht zum Sicherheitsrisko für mich zu machen.
    Jede regestrierung muss persönlich von mir freigeschaltet werden, jeder der einen Account regestriert muß sich mit einem kurzen "bewerbungstext" aus vertrauenswürdig/bekannt erweisen

  1. Mein registrierungs/login PHP-Script bezieht die Passwörter nun als md5-Hashes (ohne Salt dafür müssen Passwörter mind. 12 Stellen lang sein - in irgendeiner der letzten ct`s war mal ein Artikel das ab 11 Stellen Länge das knacken (praktisch)unmöglich wird).

    Daher verstehe ich nicht recht welchen Vorteil das Abspeichern von Hashes statt Klartext hat. Es macht das Ableiten des Klartextes schon schwerer, aber das eigentliche Sicherheitsproblem liegt dann doch woanders?

    Ja, dein Sicherheitsproblem besteht darin, dass du das Passwort für das Login per GET benötigst. mit "Hash fürs Login" ist vermutlich gemeint, dass die Session als Hash vorliegt und mit dieser eingeloggt wird - nicht mittels User/Password.

  2. Mahlzeit,

    malso gefragt: Wie gut kennst Du Deinen Provider? Vertraust Du ihm? Und den Betreibern der Netze (Backbone, Kabel, Router, Switche...) die zwischen Servern und Endgeräten liegen, kennst Du die auch alle? Vertrauen?

    Hotte

    --
    Tür zu.
  3. Hi Jan!

    Aber wenn jemand schon unbegrenzten Zugriff auf meine Datenbank hat, bedeuted das ja auch das er vermutlich schon die Rechte hat um die zu schützenden Daten direkt einzusehen.

    Das ist dein Problem.

    Schlimmer (für mich) wäre, wenn man auch die Passwörter lesen könnte.

    Wenn du die Passwörter deiner registrierten Nutzer im Klartext in der Datenbank speicherst und jemand (auch du) Zugriff auf die Klartext-Passwörter hätte, wäre das für mich ein K.O.-Kriterium für die Seite.

    Zwar wird immer empfohlen, für jede Webseite ein anderes Passwort zu nutzen, allerdings entspricht diese Empfehlung noch lange nicht der Realität.

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)