Mittwoch, 25. Mai 2016, 11:14
Datenbank-Passwort löschen
Ich gebe zu, das folgende Thema kann man kontrovers diskutieren.
Bei unseren Webhosting-Paketen führen wir intern eine Liste der an unsere Kunden vergebenen Datenbanken - samt Passwort. Im Klartext. Aber verschlüsselt. Abgelegt in einer unserer internen, von außen nicht erreichbaren und sehr gut abgeschirmten Datenbank.
Hintergrund, warum wir das Passwort im Klartext speichern: Damit wir die einfache Installation von Anwendungen, z.B. WordPress & Co., überhaupt erst möglich machen können. Denn in jeder Anwendungs-Konfiguration, wie auch immer sie nun erstellt wurde (von Hand oder automatisch), muss das Datenbank-Passwort dauerhaft und im Klartext eingetragen werden.
Und genau da kann man entsprechend "pro Klartext" argumentieren: Das Datenbank-Passwort muss sowieso "irgendwo" im Klartext vorhanden sein. Da macht es eigentlich keinen Unterschied, ob der Webhoster dieses auch noch im Klartext behält.
Aber ich gebe zu, dass ich auch die Argumente der Kunden verstehe, die sich dabei nicht wohl fühlen. Egal, wie sicher wir das Passwort intern abschotten. Es ist eine weitere Stelle, an der es vorliegt.
Deshalb haben wir uns dazu entschieden, unseren Kunden die Möglichkeit zu geben, das Passwort im Kunden-Menü zu "löschen". Sprich wir haben noch die Information über die Datenbank an sich (Name und Benutzername), nicht aber mehr das Passwort. Wer dann eine Anwendung über den 1-Klick-Installer installieren will, muss es händisch eingeben.
Ich finde, das ist ein fairer Kompromiss.
Bei unseren Webhosting-Paketen führen wir intern eine Liste der an unsere Kunden vergebenen Datenbanken - samt Passwort. Im Klartext. Aber verschlüsselt. Abgelegt in einer unserer internen, von außen nicht erreichbaren und sehr gut abgeschirmten Datenbank.
Hintergrund, warum wir das Passwort im Klartext speichern: Damit wir die einfache Installation von Anwendungen, z.B. WordPress & Co., überhaupt erst möglich machen können. Denn in jeder Anwendungs-Konfiguration, wie auch immer sie nun erstellt wurde (von Hand oder automatisch), muss das Datenbank-Passwort dauerhaft und im Klartext eingetragen werden.
Und genau da kann man entsprechend "pro Klartext" argumentieren: Das Datenbank-Passwort muss sowieso "irgendwo" im Klartext vorhanden sein. Da macht es eigentlich keinen Unterschied, ob der Webhoster dieses auch noch im Klartext behält.
Aber ich gebe zu, dass ich auch die Argumente der Kunden verstehe, die sich dabei nicht wohl fühlen. Egal, wie sicher wir das Passwort intern abschotten. Es ist eine weitere Stelle, an der es vorliegt.
Deshalb haben wir uns dazu entschieden, unseren Kunden die Möglichkeit zu geben, das Passwort im Kunden-Menü zu "löschen". Sprich wir haben noch die Information über die Datenbank an sich (Name und Benutzername), nicht aber mehr das Passwort. Wer dann eine Anwendung über den 1-Klick-Installer installieren will, muss es händisch eingeben.
Ich finde, das ist ein fairer Kompromiss.
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt
dingens
"Dass wir dein Passwort im Klartext speichern ist alternativlos" ist ein Unding.
Andi
ednong
Dennis
ednong
1. Nur when des 1-click-Mechanismus? Find ich ja dann krass.
2. Wird irgendwie nicht durch den Post beantwortet.
protte
Aber anderre Frage warum überhaupt ein Passwort und nicht einfach ohne passwort und nur auf local oder IP stellen.
Ben
ednong
ich kenne 1-Click-Installationen bisher so, dass man vorher eine DB anlegen muß und die Zugangsdaten dann bei der 1-Click-Installation eingibt. Und vermutlich wird dabei das Passwort nicht noch irgendwo gespeichert.
Von daher mein Unverständnis.
Und ja, ich hab es vorher gelesen.
ednong
Dirk
Erst kostenloses SSL, jetzt das, und wenn nun noch PHP 7 kommt, dann buche ich ein Paket
Dennis
ednong
ednong
Es geht doch gar nicht darum, dass das Passwort im Klartext in irgendeiner Konfigurationsdatei steht. Das ist mir klar - wie wohl den meisten hier.
Es geht darum, dass das Passwort _zusätzlich_ (in diesem Fall in einer Datenbank) wie-auch-immer-kodiert steht. Darum geht es. Und dass der Kunde bisher darauf keinen Einfluß nehmen konnte.
Und dass ich genau diese Dinge nicht nachvollziehen konnte. Weder, warum es in der Datenbank stehen mußte (wohl wegen des 1-Click-Mechanismus, den ich nur anders kannte) noch warum der Kunde darauf keinen Einfluß nehmen konnte.
Und zusätzlich noch wissen wollte, ob es jetzt auch präventiv möglich ist, dass keines angelegt wird beim Einrichten einer neuen DB.
Echt jetzt - nicht gelesen scheint ja der neue Trollsatz zu werden, wenn ich das mal so überspitzen darf
Klar hab ich das alles gelesen.
Michael
Dennis
Man kann es echt übertreiben ey
Du kannst deine Passwörter übrigens aus dieser internen DB löschen lassen.
Warum spielt es so eine Rolle, ob der Hoster für seine Services das Passwort nochmal irgendwo gut abgesichert speichert? Fürchtest du dich vor dem Hoster? Dann brauchst du ne eigene Maschine ^^
ednong
Ich habe nirgendwo gesagt, dass ich mich fürchte, dass es noch mal irgendwo steht.
Vielleicht drücke ich es ja mal in einem Satz aus, der ggf. verständlicher ist:
Ich wollte einfach nur wissen, warum man das nochmal in einer weiteren DB gespeichert hat. Mir war zum Zeitpunkt der Frage nicht klar, dass der 1-Click-Mechanismus darauf zugriff, da ich den anders kenne.
Und nein, ich fürchte mich nicht vor dem Hoster meines Vertrauens. Denn sonst hätte er dieses Vertrauen ja nicht ...
Manuel Schmitt (manitu)
Es gibt mehrere Gründe, warum wir die Zugangsdaten bisher immer gespeichert haben:
1. (wie geschrieben) für den 1-Klick-Installer
Praktisch 100% aller unerfahrenen Kunden erwarten, dass Sie sich das Datenbank-Passwort nicht nochmal woher "zuppeln" müssen (sprich selbst irgendwo merken müssen). Sie erwarten, dass ein WordPress mit 1 Klick installiert ist, ohne großes Tam-Tam.
2. Das Datenbank-Passwort muss auch ohne Neu-Setzen verfügbar sein
Viele Kunden erwarten, dass sie das Passwort bei UNS einsehen können, ohne es Neu-Setzen zu müssen - z.B. für eine manuelle Installation einer Anwendung. Sie suchen für die Konfiguration ihrer Anwendung nach den Zugangsdaten, und wenn sie diese nicht direkt finden, fragen sie den Support. Wäre das Passwort nicht mehr vorhanden und müsste neu gesetzt werden, wären ggf. andere Anwendungen in derselben Datenbank betroffen.
Dass es mehrere Datenbanken und die Möglichkeit einer Trennung gibt, leuchtet nicht jedem ein, und hier wäre es eine Abstrafung unerfahrener Kunden. Mal abgesehen vom Verlust von Vertrauen von Kunden, die es gerne "einfach haben".
3. Kein zusätzliches Sicherheitsrisiko
Die Zugangsdaten müssen (mal abgesehen von seltenen, proprietären Lösungen) immer im Klartext vorliegen, damit PHP/Python/Perl/...-Anwendungen auf die Datenbank zugreifen können. Im Webspace ist das Passwort - sorry - praktisch am unsichersten. Dort, wo wir es speichern, ist es sicherer als sonstwo
Nun zu Deiner Frage bzgl. "zukünftig ohne speichern". Aufgrund des Prozesses, wie es derzeit gehandelt wird, geht das noch nicht, wird aber in einigen Monaten kommen. Derzeit sind die Prozesse "anlegen" und "Kunde informieren" getrennt, und müssen es aus technischen Gründen erst einmal auch so bleiben. Das werden wir ändern, sobald sich die Gelegenheit aufgrund geänderter interner Strukturen ergibt.
ednong
Die Erwartung von 1 würde ich so nicht haben, deshalb mein Unverständnis. Aber wahrscheinlich bin ich auch kein Kunde mehr, der unerfahren ist. Und auch für 2 bin ich nicht mehr unerfahren genug - bisher habe ich die Zugangsdaten immer gefunden.
Und ja, ich stimme dir zu - sie liegen auf dem Webspace am unsichersten. Läßt sich aber wohl (noch) nicht vermeiden. Ich fände es auch besser, wenn sie an sicherer Stelle liegen würden. Und dass sie bei euch in der DB sicherer liegen, war nie etwas, das ich angezweifelt habe - ich hatte lediglich die Notwendigkeit dafür nicht gesehen, weil ich da weniger Ansprüche (und wohl mehr Erfahrung) habe, als die Kunden, die so etwas notwendig machen. Danke daher für die ausführliche Erklärung.
Engywuck
das stimmt so nicht (mathematisch jedenfalls. Das zusätzliche Risiko mag vernachlässigbar sein, Null ist es nie.
ganz so arg gering ist es m.E. ohnehin nicht, denn immerhin muss es automatisch ausgelesen werden können für 1-Klick -- und es ist dem Kunden anzeigbar. Das heißt es gibt eine automatisierte Schnittstelle, die das Passwort abgreifen kann. Es liegt also nicht nur verschlüsselt auf einem USB-Stick im Tresor für den "Fall der Fälle" sondern ist Dauer-Online. Natürlich nicht auf demselben Server wie die Kundendatenbank, aber immerhin.
Im Falle einer Sicherheitslücke könnte also ein Angreifer gleich alle Passwörter auf einmal abgreifen. Das macht es ein potentiell lohnendes Ziel. Ebenso könnte jemand potentiell die DB "am Stück" klauen und entschlüsseln (wenn alles mit demselben Schlüssel verschlüsselt st, wenn es dagegen z.B. den hash des Kundenkennworts braucht...)
Schön wäre, wenn dem Kunden dies mitgeteilt werden würde bei der Einrichtung und er dort entscheiden könnte. Gerne mit dem Hinweis auf "liegt ohnehin prinzipbedingt unverschlüsselt auf 'deinem' Server". Passwort-Recovery durch den Support (das scheint ja eine Befürchtung zu sein) darf dann auch was kosten.
Tetja Rediske
Engywuck
Jens H.
Kunde
Und: Ein Mitarbeiter mit Berechtigung zum Datenbank -Server kann wh alle Daten lesen. Das geht auch ohne Passwort!
Und: Du kannst bei mysql dein Passwort ändern, dann kennt es Manitu auch nicht mehr.
Tetja Rediske