Passwortdatei in Windows-Umgebung?

370
Markus L

Ich suche nach einer Möglichkeit, ein Datenbankkennwort auf der Arbeitsmaschine zu speichern, sodass meine eigene Anwendung es lesen kann (um eine Verbindung zur Datenbank herzustellen), aber ein Benutzer ohne Administratorrechte kann es nicht lesen. Es muss für einen Administrator möglich sein, das Passwort vorzugsweise automatisch zu ändern.

Ich denke dabei an die .pgpass-Datei für PostgreSQL in einer Linux-Umgebung. Ist das auch in einer Windows-Umgebung möglich?

Ich denke, die Passwortdatei kann nur für Administratoren zugänglich gemacht werden. Kann ein Programm, das für den Benutzer ausführbar ist, auch auf diese Datei zugreifen? Kann man eine solche Datei mit Hilfe von Gruppenrichtlinien auch über das Netzwerk verteilen?


Andere Lösungen, an die ich denke (wahrscheinlich mit mehr Aufwand):

  1. Verschlüsseln Sie die Kennwortdatei. Nur die Anwendung und die Administratoren verfügen über die gültigen Schlüssel zum Entschlüsseln und Ändern / Lesen der Datei.
  2. Rufen Sie das Kennwort von einer Netzwerkressource ab, vermutlich auch verschlüsselt.
1
Sie können dies in Windows 8.0 und höher erreichen, indem Sie eine Bitlocker-verschlüsselte.VHDX-Datei einhängen. Ich bin nicht sicher, auf welche Anwendung Sie sich beziehen. Sie können dies auch erreichen, indem Sie EFS unter Windows-Editionen verwenden, die EFS unterstützen. Wenn Sie EFS verwenden, können Sie das Kennwort im Nur-Text-Format speichern, da alle Dateien im Benutzerprofil verschlüsselt sind und nur Benutzern mit dem Zertifikat zugänglich sind. Ramhound vor 6 Jahren 1
@Ramhound Ich beziehe mich auf * meine eigene * Anwendung, die ich entwickeln werde (Frage bearbeitet). Ich werde das Bitlocker-Thema untersuchen, wenn dies möglich ist. Es wäre cool, mit C # APIs darauf zuzugreifen. Markus L vor 6 Jahren 0

2 Antworten auf die Frage

1
Allen Howard

Als Antwort auf Ihre Frage zum Administratorzugriff

Windows führt Dienste mit den Berechtigungen des Benutzers aus (sofern Sie nicht ausdrücklich als Administrator oder als anderer Benutzer ausgeführt werden). Wenn der Benutzer keinen Zugriff auf eine Datei hat, wird auch das Programm dies nicht tun.

Als Antwort auf die Gruppenrichtlinienfrage

Ja, Sie können Gruppenrichtlinien verwenden, um Dateien über Gruppenrichtlinieneinstellungen zu verteilen. (Siehe: https://www.adamfowlerit.com/2016/07/group-policy-preferences-replace-existing-file/ )

Danke, dass Sie die Benutzerrechte geklärt haben - das klingt logisch. Danke auch für den Link - das bringt mich zum Start. Markus L vor 6 Jahren 0
0
Markus L

Wenn jemand interessiert ist: Ich habe die folgende Lösung gefunden.

Das Passwort wird verschlüsselt in einer XML-Datei (dem "Passwort-Container") gespeichert. Der Container kann mit einem Administratorkennwort geöffnet und bearbeitet werden. Die Verschlüsselung ist symmetrisch. Der Container befindet sich in einer Netzwerkressource, einfach in einem Netzwerkverzeichnis.

Die Anwendung erhält den Speicherort des Kennwortcontainers und kann den Kennwortcontainer öffnen, da das Administratorkennwort im Code hinterlegt ist.

Ich weiß, dass diese Lösung nicht zu 100% sicher ist, da Kennwörter nicht im Code gespeichert werden sollten. Für diese Anforderungen (das Datenbankkennwort muss für den Benutzer ausgeblendet werden, das Datenbankkennwort muss jedoch administrierbar sein), ist die Lösung gut genug.