Mailinglisten-Archive |
Michael Renner wrote: > > $passwd = decrypt("hkvjhbewbhewbhbhewv", "decode_passwort"); > > # echo $passwd -> "geheim_aber_klartext" > > $link = mysql_connect("host", "user", $passwd); > > > > In meinen Augen ist das nicht richtig ein Gewinn. > Nun ja, was schlägst Du vor? Jeder im Haus kann sich hier > einloggen. Die Datei ist lesbar für renner.nobody (und root natürlich). > Aus Datenschutzgründen (die DB enthält viele personenbezogene > Daten) soll das alles sicher gemacht werden. Ein 'verschleiertes' Passwort > stellt zumindest eine Hürde dar. Je nach verlangter Schutzstufe: - Anwendung auf dediziertem Rechner laufen lassen. oder - Anwendung unter dedizierter UID mit CGI PHP laufen lassen, Rechte passend setzen. Außerdem: Anwendungen mit personenbezogenen Daten sollten ab einer bestimmten Schutzstufe auch nur mit verschlüsselten Netzwerkverbindungen arbeiten -> SSL Server einsetzen. Anwendungen mit personenbezogenen Daten sollten ab einer bestimmten Schutzstufe auf dedizierten Maschinen ablaufen; ggf. ist zu prüfen, inwieweit die Systemverwaltung unberechtigt in die Daten Einsicht nehmen kann -> Sondervergatterung, besonderer Admin mit besonderer Schutzstufe/Ausbildung. Was Du da oben verlangst ist eigentlich: "Ich habe eine verteilte Anwendung (Datenbankserver, Clientprogramme), deren Komponenten sich gegeneinander authentisieren sollen. D.h. meine Datenbank soll nur mit dem Originalclient reden und der Client soll nur mit der Originaldatenbank reden." Letztendlich willst Du ja auch verhindern, daß sich jemand den Client kopiert, modifiziert (etwa: Daten werden angeziegt und zusätzlich weggemailt) und dann mit dem modifizierten Client arbeitet. In einer feindlichen Umgebung (Angreifer hat auf demselben Rechner wie ich einen Account und kann meine Dateien lesen) kann das ein beliebig hartes Problem werden. Entweder der Client und der Server können sich ein Geheimnis teilen (geheimes Paßwort, daß nur die beiden kennen) - dann brauchst Du das Paßwort nicht zu verschlüsseln. Oder die beiden können kein Geheimnis teilen, weil jeder die Dateien kopieren kann. Dann muß der Server aber auch mit Connects von gefakten Clients rechnen und es muß ein Mechanismus vorhanden sein, um die Integrität des Clients zu überprüfen und zwar einer, der ohne Geheimnis im Client auskommt (das könnte man sich ja kopieren). Das ist sehr schwer, letztendlich müßte man das Client dann im Anwender speichern (Kennworteingabe manuell). Kristian -- Kristian Köhntopp, NetUSE Kommunikationstechnologie GmbH Siemenswall, D-24107 Kiel, Germany, +49 431 386 436 00 Using PHP3? See our web development library at http://phplib.netuse.de/ (We have moved! Update your bookmarks!)
php::bar PHP Wiki - Listenarchive