Windows-Passwörter speichern

8

Ich schreibe (in C # mit .NET 3.5) eine administrative Anwendung, die mehrere Windows-Systeme nach verschiedenen Datensätzen abfragt. In vielen Fällen wird WMI verwendet, aber in einigen Fällen muss möglicherweise die Remote-Registrierung gelesen oder ein Befehl oder Skript über das abgefragte System remote ausgeführt werden. Diese Abfrage wird in wiederholten Intervallen durchgeführt - normalerweise nachts, kann aber so konfiguriert werden, dass sie öfter (oder weniger) häufig geschieht. So könnte die Umfrage so oft wie alle 10 Minuten oder so selten wie einmal im Monat geschehen. Es muss automatisiert geschehen, ohne menschliche Eingriffe.

Diese Funktionen erfordern Administratorzugriff auf die abgefragten Systeme. Jetzt erwarte ich, dass es in den meisten Anwendungsfällen eine Domain geben wird und die Polling-Anwendung als Dienst mit Domain-Admin-Rechten (oder gleichwertigen Rechten) ausgeführt werden kann, was bedeutet, dass ich mich nicht um die Speicherung von Passwörtern kümmern muss Die App wird den Benutzernamen / das Passwort des Dienstes über Standard-Windows-Mechanismen definieren.

Aber da draußen sind immer ein paar schwarze Schafe. Das Programm kann in Nicht-Domänen-Umgebungen ausgeführt werden oder in Fällen, in denen einige abgefragte Systeme nicht Mitglieder der Domäne sind. In diesen Fällen müssen wir einen Benutzernamen und ein Passwort definieren, sie sicher speichern und dann dieses Benutzer / Pass-Paar aufrufen, wenn wir dieses System abfragen. Denken Sie also daran - in diesem Fall ist das Programm, das geschrieben wird, der Benutzer , der das Passwort an das Authentifizierungssystem sendet.

Ich bin mir nicht sicher, ob ich einen reversiblen Hash-Code verwenden muss, den ich dann zum Zeitpunkt der Verwendung in Klartext entschlüssle, oder ob es einen Windows-Mechanismus gibt, der es mir erlaubt, nur den Hash zu speichern und wiederzuverwenden. Offensichtlich ist der zweite Mechanismus vorzuziehen; Ich möchte, dass mein Programm entweder den Klartextwert des Passworts nicht kennt oder es für die kürzest mögliche Zeit kennt.

Ich brauche Vorschläge für intelligente und sichere Wege, dies zu erreichen.

Danke fürs Schauen!

    
quux 06.09.2008, 05:02
quelle

2 Antworten

6
0

Nun scheint es, dass Ihr Programm einen anderen Benutzer als den Kontext annehmen muss, unter dem es bereits läuft. Obwohl es wie ein ziemlich automatisierter Prozess aussieht, aber wenn nicht, können Sie den Administrator nicht einfach bitten, Benutzernamen und Passwort einzugeben, wenn dieser "Black-Sheep" -Computer abgefragt wird?

    
Vaibhav 06.09.2008 05:46
quelle

Tags und Links