Hallo liebes Internet,
ich habe eine Frage an Dich, die mich seit wirklich langer Zeit beschäftigt. Du kennst ja das Problem, dass Du eine Webseite schreibst, vielleicht in Perl oder PHP, und dass Du normalerweise Dein Passwort möglichst gut versteckst, wenn Du dabei eine MySQL-Datenbank betreibst.
Liebes Internet, im Quelltext lege ich dieses Passwort grundsätzlich nicht ab, meist in einem externen File, das nicht in einem für www-data erreichbaren Pfad liegt. Doch das reicht mir nicht. Man kann nicht an alles denken und auch ein kleines Bug in einem kleinen Tool kann dazu führen, dass jemand eventuell Zugriff auf dieses File erlangt und dann sensible Daten aus meiner Datenbank stehlen und in aller Ruhe analysieren kann.
Mich beschäftigt nun also der Gedanke, eine Art Passwort-Server zu schreiben. Ein kleines Programm, dass ich als Admin manuell starte und am Leben halte. Es soll die Passworte im Arbeitsspeicher halten, nachdem ich sie ihm übergeben habe. So liegen die Passworte nicht mehr als Datei vor. Und wenn das Programm, vielleicht durch eine Automatisierung glaubt, es würde angegriffen, killt es sich selbst und die Passworte sind für einen Angreifer nicht mehr erreichbar.
Nun, meine Frage ist, wie kann ich soetwas möglichst sinnvoll anstellen? Gibt es eine Möglichkeit, die mir erlaubt, von einem laufenden C- oder vorzugsweise Perl-Programm aus, Anfragen entgegen zu nehmen und zu schauen, was das für ein Programm ist, was da die Anfrage an den hier fiktiven Passwort-Server stellt? Ich habe mir vorgestellt, dass das Programm die MD5-Summe einer Perl-Datei bilden könnte, um seine Identität zu prüfen. Außerdem kann ich mir vorstellen, dass man den Apache-Server oder besser noch die einzelnen Aufrufe über Prozess-IDs identifizieren könnte, um sicher zu stellen, dass es auch "mein" Perl-Skript ist, was mich da nach dem Passwort fragt.
Was meint ihr dazu? Ich betreibe einen Debian-Server. Eigentlich denke ich ja daran, etwas selbst zu schreiben, aber da gibts ja auch lustige Keyrings für "normale" User. Könnte man sowas umfunktionieren? Gibt es ggf. schon andere Ansätze in dieser Richtung, die ich einfach nicht gegooglet kriege?
Viele Grüße
0l1
p.s. ich habe in den letzten Tagen viele Ratschläge erhalten. Die meisten gehen in die Richtung: "Das brauchst Du nicht, schau Dir doch mal die Riesen an, die machen es auch nicht" oder andere Verschlüsselungsmechanismen an anderer Stelle. Ich habe große Firmen fallen sehen, mein liebes Internet, und es geht mir hier eigentlich mehr um das Prinzip als eine "bequeme, schnelle und praktische" Lösung.