Hi herwig!
ich möchte gerne ein loginsystem für meine seite bauen, das folgendes können soll:
- hohe sicherheit (keine einfache js-abfrage oder sowas)
- es sollen auch ganze verzeichnisse am server geschützt werden können
- möglichst mit eigenem login-formular
- Ist das dein Server (physikalisch bei dir)?
- Wer ist als Client auserkoren?
Hintergrund der Fragen ist:
-
Server steht im Serverpark xy: Dann kannst du dich nicht gegen lokale Zugriffe der Serverparkbetreiber wehren => immer unsicher
-
Sicherst du jemand anderem zu, dass er auf ein "sicheres Verzeichnis" hochladen kann? Wäre ich dann dieser jemand, so lautet meine Frage: "why trust you?"
Wenn weder 1 noch 2 zutreffen, so schlage ich dir vor:
0) Erzeuge eine statische RAM Disk
- Verschlüssle deine Nutzdateien/Verzeichnisse mit z.B. Truecrypt (Passwort kennst du dann). (->local secure)
- Konfiguriere deinen Server so, dass er https verwendet. (avoid man in the middle)
- Sende dein Passwort aus Formular(sichere Passwörter bestehen aus: mindestens 16 Zeichen willkürlich Gross/Kleinbuchstaben und Zahlen/Sonderzeichen) vom Browser per https an den Server
- lasse dein Verarbeitungs-CGI die entsprechenden Dateien über batch/Truecrypt "entschlüsseln/mounten"; generiere vom Passwort eine MD5 Sum und speichere diese auf der RAM Disk; Melde entschlüsselte Struktur (dir) an den Client. (*)
- Für jeden Datei-Zugriff muss der Client nun das Passwort mitsenden. Das CGI, das die Daten für den DL bereitstellen soll, bildet MD5 Summe, vergleicht mit RAM Disk MD5 und bei match wird Datei hergegeben.
- Logout: das CGI teilt truecrypt den unmount mit und löscht die MD5 SUM von der RAM Disk.
Problem (*) zwischen 4 und 6 liegen die Dateien für den lokalen Zugriff auf dem Server offen rum.
Wenn sich der Server deiner Beobachtung entzieht, dann kann auch dein Passwort z.B. im CGI abgegriffen werden etc.
Viel Spass,
Richard