Passwort-Verteildienst

Hart codierte oder bei der Installation festgelegte Zugangskennungen für Datenbank-Accounts und Netzwerkressourcen sollten bei einem Kunden ersetzt werden durch im laufenden Betrieb zu ändernde Zugangskennungen. Berechtigte Anwendungen sollen diese veränderten Zugangskennungen automatisch erhalten, manipulierte Anwendungen sollen erkannt und abgewiesen werden. Ebenso sollen sicherheitskritsche DLLs der Anwendungen gegen Manipulation geschützt werden.

Es wurde ein Passwort-Verteildienst entwickelt, der sich bei der Installation ein Schlüsselpaar für asymmetrische Verschlüsselung erzeugt und seinen öffentlichen Schlüssel in eine Interessentenliste der Datenbank einträgt. Der Administrator schaltet dann den Verteildienst frei. Die Liste der Zugangskennungen wird mit dem aus der Interessentenliste erhaltenen öffentlichen Schlüssel für die frei geschalteten Verteildienste verschlüsselt und in die Datenbank eingetragen.

Der Verteildienst liest nun die für ihn verschlüsselte Liste der Zugangskennungen und entschlüsselt sie mit seinem privaten Schlüssel. Ebenso liest er aus der Datenbank die Liste der frei geschalteten Anwendungen. Er wartet dann auf Anfragen der Anwendungen.

Die Anwendungen ihrerseits erfragen ihre Zugangskennungen durch den Aufruf einer ebenfalls neu entwickelten DLL. Die DLL stellt nun fest, welches Programm den laufenden Prozess erzeugt hat und ermittelt seinen Namen und seine Signatur (MD5-Hash). Mit diesen Informationen wendet sich die DLL an den Passwort-Verteildienst, der in der Liste der frei geschalteten Anwendungen nachsieht, ob diese Anwendung überhaupt frei geschaltet ist und ob für diese Anwendung sicherheitskritische DLLs vorgeschrieben sind. Der Dienst liefert dann entweder direkt die für das anfragende Programm hinterlegte Zugangskennung, lehnt die Anfrage ab oder er erfragt die Signaturen (MD5-Hashes) der sicherheitskritischen Anwendungs-DLLs und überprüft, ob diese frei geschaltet sind, bevor er sich für Beantworten oder Ablehnen entscheidet.

Die gewählte Lösung hat den Vorteil, dass sie sehr schnell ist, weil der Passwort-Verteildienst alle benötigten Informationen in seinem Adressraum hält und so im laufenden Betrieb kein Datenbank-Zugriff nötig ist.

Nun kann es natürlich passieren, dass die Zugangskennungen verändert worden sind, entweder durch einen Menschen oder durch einen automatisierten Vorgang. Das dazu benutzte Administrationswerkzeug ändert aber nicht nur die Zugangskennungen, sondern es erstellt auch die neue Liste der Zugangskennungen und legt sie, für die frei geschalteten Verteildienste verschlüsselt, in der Datenbank ab.

Da der einzelne Verteildienst davon nichts mitbekommen hat liefert er nun im guten Glauben eine falsche Antwort an die nächste anfragende Anwendung. Alles, was die Anwendung dann tun muss ist einfach noch mal zu fragen. Der Verteildienst führt Buch über die an ihn gestellten Anfragen und betrachtet eine in einem kurzen Zeitfenster wiederholt gestellte Anfrage einer Anwendung als "Misstrauensvotum" und liest die für ihn verschlüsselte Liste der Zugangskennungen erneut aus der Datenbank. Diese zweite Anfrage beantwortet er dann richtig, mit der inzwischen neu festgelegten Zugangskennung. In der gleichen Weise erfährt der einzelne Verteildienst auch, wenn neue Anwendungen oder DLLs frei geschaltet wurden. Der Administrator muss sich nicht darum kümmern, dass die einzelnen Verteildienste die Freischaltlisten oder Listen der Zugangskennungen neu lesen, die verteilen sich automatisch.

Zur Speicherung der verschlüsselten Zugangslisten in der Datenbank wurden BLOBs gewählt, weil es dann keine Größenbeschränkungen gibt und die Listen mit einem einzigen Datenbankzugriff gelesen werden können.


zurück nach oben
Letzte Änderung: 19.05.2019 17:50