Sven Rautenberg: Daten nur manchen Besuchern zugänglich machen

Beitrag lesen

Moin!

Ist mir jetzt nicht ganz klar. Ich weiß, dass es einen Max Mustermann gibt und biete ein Angebot speziell für eben diesen Max Mustermann an. Max Mustermann steht mit seiner Adresse im Telefonbuch und existiert demnach auch.

Nein, du weißt nicht, dass _ein_ Max Mustermann im Telefonbuch steht, da Namen keine eindeutigen Identifikationsmerkmale sind. Ein Max Mustermann wäre zwar mit relativ hoher Wahrscheinlichkeit einzigartig, weil so ein blöder Name eher selten auftritt, ein "Peter Müller" hingegen käme mit hoher Wahrscheinlichkeit doppelt oder mehrfach vor.

Sollten sich also zwei "Peter Müller" in deiner Datenbasis befinden, wirst du den Benutzer ohnehin fragen müssen, welcher "Peter Müller" denn genau gemeint ist. Wenn der richtige "Peter Müller" dir jetzt die Geheiminformation gegeben hat, und der zweite "Peter Müller" nur mal aus Jux schaut, was der erste "Peter Müller" denn so eingegeben hat, wird dein System ihm dies ohne Widerworte mitteilen.

Und auch jeder andere Benutzer muß als Namen nur "Peter Müller" eingeben und würde dann wissen können, was über ihn öffentliches und geheimes gespeichert ist.

Du hast einen Benutzer A, der dir ein Geheimnis über sich mitteilt, und das andere Benutzer nicht wissen sollen. Das bedeutet für dich, dass du den Benutzer eindeutig authentifizieren mußt. Und der einzige Weg, dies zu tun, ist über eine wie auch immer geartete Passwortabfrage, in der der wahre Benutzer A dir ein nur dir und ihm bekanntes Geheimnis (Passwort, digitale Signatur, etc.) mitteilt als Beweis, dass er es wirklich ist. Alle falschen Benutzer, die sich als A ausgeben, kennen das vereinbarte Geheimnis nicht und scheitern - erhalten also auch keinen Zugriff auf die geheimen Informationen.

Das, was du auf deiner Webseite planst, wäre keine Authentifikation, sondern eine Identifikation. Der Unterschied: Bei der Authentifikation sagt der Benutzer dir, wer er angeblich ist (Username), und beweist das durch Übermittlung des vereinbarten Geheimnisses (Passwort).

Bei der Identifikation hingegen scannst du den Benutzer auf eindeutige Merkmale und suchst damit in der Datenbank aller Benutzer den richtigen heraus. Diese Methode ist unter der Überschrift "Biometrie" derzeit in der Diskussion: Anhand eines Kamerabildes, eines Fingerabdrucks oder eines Irisscans wird ein Benutzer automatisch erkannt und entsprechend reingelassen oder draußengelassen.

Das Problem auf deiner Seite: Dort gibt es keinerlei Kamerabilder oder Fingerabdruckscanner, sondern nur die Eingabemöglichkeit des Namens. Selbst wenn die Probleme mit Namensgleichheiten nicht aufträten, so hast du doch immer noch das Problem, dass du keinerlei Kontrolle über die Echtheit des eingegebenen Namens hast.

Es gibt da keinerlei Ausweg. Wenn du die Daten zentral speichern möchtest, damit der wahre Benutzer von überall her Zugriff darauf hat, mußt du ihn sicher authentifizieren -> Username + Passwort.

Wenn du auf Username und Passwort verzichten willst, könntest du die geheimen Informationen in einem Cookie speichern. Dann würde nur der echte Benutzer beim Zugriff von seinem richtigen Computer diese Daten an dich mitschicken, jeder andere Benutzer hätte diese Daten nicht - damit fällt aber der beliebige Zugriff von überall her weg. Außerdem passen in ein Cookie nur begrenzt Daten hinein, und sie können auch relativ leicht unbeabsichtigt wieder gelöscht werden, weil die Cookie-Verwaltung grundsätzlich Sache des Browsers ist, und die Menge an Cookies insgesamt ebenfalls begrenzt ist. Selbst wenn dein Cookie sehr lange gültig wäre, würde es vielleicht gelöscht, wenn es selbst sehr groß wäre (max. 4 KB), der Cookie-Speicher aber von neu hinzukommenden Cookies benötigt wird.

- Sven Rautenberg