Wie Passwort "sicher" speichern?
-
Ho!
Es geht um einen Dienst auf einem Server. Der Server steht netzwerkmässig in einer eigenen Zone (kann aus dem Inet aus erreicht werden). Der Dienst soll unter dem SYSTEM Konto laufen oder ggf. auch unter einem eigenen lokalen Konto (der Server ist nicht Mitglied einer Domain).Dieser Dienst muss nun übers Netzwerk auf andere Rechner zugreifen die in einer Domain hängen (und das soll natürlich über einen Domänenuser passieren - daher der ganze Tanz). Dazu verwende ich LogonUser + ImpersonateLoggedOnUser. Die Frage ist bloss: wie kann ich das Passwort welches ich für LogonUser brauche "sicher" ablegen, also so dass falls sich jmd. "reinhacken" sollte dieser nicht sofort über ein ini File mit Usernamen + Passwort stolpert.
Wie macht das Windows z.B. wenn man für einen Dienst einstellt er soll unter einem Userkonto laufen - da kann man ja auch ein Passwort eingeben. Wo und wie wird das gespeichert?
Sonst irgendwelche Vorschläge?
-
schick das passwort samt MAC und IP adresse durch MD5, und speichere jenen generierten schlüssel ab, da von aussen kaum sowohl IP als auch MAC gefaked werden können ist dein Key als offen zugänglicher text gespeichert aber niemand kann das eigentliche Passwort zurückrechnen ... kann sein das ich dein problem nicht so ganz vertanden habe aber so sollte es funktionieren, wenn du nur einen "server" benutzt ... es ist natürlich notwendig auf clientseite anhand der ankommenden verbindung (hacker) den key neu zu berechnen und zu vergleichen.
als was der dienst gestartet wird kannst du doch in der computerverwaltung einstellen?!
-
Ja, genau, du hast es nicht verstanden...

Der Rechner um den es geht hängt nicht in einer Domäne, daher kann ich auch keinen Domänenuser in der Systemsteuerung für den Dienst einstellen.
Und da dieser Rechner nicht auf einen selbstgebastelten Server zugreift, sondern auf ein SMB/CIFS Netzwerklaufwerk, kann ich auch nicht kontrollieren wie da was authentifiziert wird. Ergo kann ich auch die MAC/IP des Rechners nicht verwenden.EDIT: Und der Fall gegen den ich mich absichern will ist nicht dass jmd. von einem *anderen* Rechner aus versucht sich irgendwo reinzuhacken, sondern dass jmd. den Rechner wo der Dienst läuft (der Zugriff auf die SMB/CIFS Share braucht) hackt.
Wobei mir gerade auffällt dass dann wahrscheinlich sowieso alles verloren ist, wenn der mit dem SYSTEM Konto auf dem Rechner drauf ist kann er auch einfach den Dienst austauschen (die .exe Datei), alles in der Registry lesen etc.
-
PGP:
- Überlege Dir irgendeine bijektive Abbildung von binären Strings
- Verschlüssle public und private key damit und pack sie in die EXE
- Verschlüssle Domainuser, Password, IP ud erste MAC (oder CPUID) und [EDIT] per PGP [/EDIT] kompiler die als Ressourcen in eine DLL
- Zur Laufzeit decodiert der Dienst seine Keys, verschlüsselt IP, MAC und/oder CPUID , vergleicht gegen die DLL und entschlusselt dann User und pass für das net logon.- Die Original-Keys ziehst Du vom Server runter und legst sie auf einer sicheren Maschine ab..
Wenn der Serveruser sich nur als Dienst anmelden darf, aber keine Console Login-Rechte hat kann er mit dem Domain-Token sonst eigentlich nichts anfangen!
Ohne Gewähr

*this