Hallo, Michael (auch an Christian, weil du einiges sagst, was ich auch ihm geantwortet hätte, und natürlich alle Mitleser),
Und ich finde es einfach indiskutabel, wenn ein Admin mein Passwort
'einfach' sehen kann... [...]
Einerseits kann der Admin sowieso alle meine Einstellungen sehen [...]
Genau darauf wollte ich hinaus. Mir ging es darum, dass die primären zu sichernden persönlichen Daten (abstrahiert, hier im Selfforum existieren diese nur eingeschränkt) sowieso im Klartext auf dem Server liegen, eine serverseitige Passwortverschlüsselung würde diese (fiktiv) brisanten Daten nicht vor Eindringlingen oder Admins (unpassende Nebeneinanderstellung ;)) schützen.
Die einzige "Gefahr", die Du läufst, wenn der Admin Dein tatsächliches Kennwort kennt, ist also, daß er sich damit vielleicht auch auf anderen Servern mit Deiner Berechtigung anmelden kann ... dann allerdings solltest Du Dein Verfahren zur Vergabe von Kennworten hinterfragen.
ACK.
Und andererseits würde eine ausschließlich verschlüsselte Speicherung des Kennwortes die potentielle Funktionalität des Forums einschränken. Ich halte beispielsweise eine Funktion, sich ein vergessenes Kennwort per Mail zusenden zu lassen, für sinnvoll (besser als das Entstehen von "Benutzer-Leichen" und vor allem das erzwungene Wechseln der Poster-Identitäten, weil ein früherer Name eines Posters mit Vergessen seines Kennworts unbenutzbar wird).
ACK, ich würde zu diesem Zweck schlichtweg ein neues Kennwort vergeben (siehe Christians Posting), mit der von dir angesprochenen Möglichkeit, dass der Benutzer sein Passwort nach der automatischen Passwortvergabe selbst ändern kann, um vielleicht ein nicht weniger hexakryptisches aber durch die Anwendung eigener Bildungsregeln entstandenes Passwort zu wählen.
Bei einem Höchstmaß an Sicherheit muss man IMHO den Komfort vergessen und dem Benutzer von Anfang an sichere Passwörter zuweisen, wie du schreibst, und ihm nicht erlauben, dieses Passwort zu ändern.
Wie aber realisierst Du diese Funktion, ohne das Kennwort in einer irgendwie decodierbaren Form zu speichern?
Ich dachte daran (Spinnerei), dass der Server die das Passwort beim Registrieren mit dem OpenPGP (GnuPG/PGP...) Public Key des Users verschlüsselt, sofern ein Keyserver diesen führt, und dies bei jeder Authentifizierung wiederholt (urgs!) und die entstehende Cipher mit der bei der Registration erzeugten abgleicht.
Falls der Benutzer das Passwort vergisst, schickt ihm das System den Cipher per Mail zu, wodurch nur er durch den Private Key und sein Mantra den Cipher entschlüsseln.
(Die Übertragung könnte im Idealfall durch SSL gesichert werden, damit hätte man das Teilproblem vom Tisch. Im Übrigen weiß ich nicht, ob sich der Cipher bei einem sich ändernden Public Key durch Unterschriften etc. auch ändert, dadurch wäre ein Abgleich unmöglich. Ein Reimport des Public Keys wäre deshalb höchstens bei einer revocation sinnvoll.)
Das System hat nur leider keine Methode für die tatsächlichen persönlichen Daten vorgesehen, aus dem Grund, dass sie durch einen dem Server unbekannten, aber dem Benutzer bekannten Schlüssel verschlüsselt werden sollten. (Ein Falltüralgorithmus wäre natürlich Fehl am Platze.) Es ist wie gesagt nur möglich, diese symmetrisch mit dem Passwort zu verschlüsseln... Soweit ich es überblicken kann, wären beide Modelle theoretisch kompatibel. Da es in erster Linie um die Benutzerdaten geht, ist der ständige Abgleich mit dem Passwortcipher durch erneute Verschlüsselung mit dem Public Key nicht nötig, das Passwort muss auf den Cipher der persönlichen Daten passen und mehr nicht.
Der grundlegende Nachteil ist, dass der Admin root ist und deshalb die Plaintext-Passwörter an vielen Stellen abfangen kann. Dadurch wird jede serverseitige Verschlüsselung nutzlos - wenn der Admin das Passwort (und damit die persönlichen Daten) in Erfahrung bringen will, dann wird er es schaffen, denn das Passwort beziehunsweise der Schlüssel für die Benutzerdaten muss bei jedem Benutzerzugriff im Klartext übertragen werden, dies bedeutet auch die Eintrittskarte für die persönlichen Daten.
Dem Admin beziehungsweise dem Admin-Team muss man folglich bedingungslos trauen, dass der/die Verantwortliche/n die Daten nicht im Klartext abfangen, sodass die Verschlüsselungsmechanismen überhaupt greifen. Dann kommt man jedoch zu der Frage, für wen oder was die serverseitige Verschlüsselung nötig ist, denn ein Cracker hat ebenso die Möglichkeit, den Netzwerkverkehr aufzuzeichnen, wodurch er an die Passwörter und damit an die Benutzerdaten kommt...
Im Endeffekt läuft alles mehr oder weniger auf blindes Vertrauen heraus... ;)
Grüße,
Mathias
--
Remember: KING KONG Died For Your Sins!
"Wie ein gefoppter Nachtmahr der auf Tücke sinnt..." (Hugo Ball, "Die Katze")