2016-12-12 4 views
-1

Kontext: Ich versuche, ein benutzerdefiniertes Windows-Konto für Anwendungspool zu verwenden, und Oracle-Authentifizierung aktivieren, so dass wir DB Benutzername und Kennwort in einer Konfigurationsdatei nicht speichern müssen.Sichern von IIS AppPool Identitätskennwort

Problem: Diese Einrichtung funktioniert, aber ich habe festgestellt, dass ich in der Lage bin, das Passwort unter Verwendung appcmd.exe 'wiederherzustellen'. Gibt es eine Möglichkeit, sicherzustellen, dass jemand mit administrativem und physischem Zugriff das Passwort nicht im Klartext lesen kann?

Dies ist eine Windows 2016 Maschine, IIS 10. Passwort sieht verschlüsselt beim Blick in applicationHost.config Datei. folgenden Befehl zeigt das Passwort:

%systemroot%\system32\inetsrv\appcmd.exe list apppool "ImoAppPool" /text:* 

enter image description here

Antwort

0

die Frage zu beantworten: „Gibt es eine Möglichkeit, dass jemand mit administrativen und physischen Zugriff machen kann das Passwort im Klartext nicht lesen“

Speichern Sie die Passwörter nicht so, dass sie wiederhergestellt werden können, iterieren Sie über einen HMAC mit einem zufälligen Salz für etwa 100ms und speichern Sie das Salz mit dem Hash. Verwenden Sie Funktionen wie PBKDF2 aka Rfc2898DeriveBytes, password_hash, Bcrypt und ähnliche Funktionen. Speichern Sie diesen Hash-Wert in der Datenbank. Es geht darum, den Angreifer dazu zu bringen, viel Zeit mit der Suche nach Passwörtern zu verbringen.

Wenn dies nicht möglich ist, ist die Lösung nicht sicher und sollte nicht verwendet werden.

Der Schutz Ihrer Benutzer ist wichtig, verwenden Sie bitte sichere Passwortmethoden.

+0

Vielleicht verstehe ich die Antwort nicht, oder ich habe die Frage nicht klar gestellt. IIS muss unter einem bestimmten Benutzerkonto ausgeführt werden. Ich muss es mit dem richtigen Passwort geben, es gibt keine Möglichkeit (denke ich), ich kann es mit einem transformierten Passwort versehen und es laufen lassen. Anschließend wird festgelegt, wie das Passwort gespeichert wird. Wenn ich in die Konfigurationsdatei schaue, wird das Passwort transformiert ('password =" [enc: IISWASOnlyCngProvider: cNM0PbFgUgr ... '). Wenn ich jedoch den Befehl aus der Frage ausführe, kann ich den einfachen Text sehen. –

+0

Der Punkt ist Speichern Sie Kennwörter nicht so, dass sie wiederhergestellt werden können, das ist nicht sicher. Man muss davon ausgehen, dass ein Angreifer Administratorzugriff auf den Server erhält und Sie müssen Kennwörter dagegen schützen. – zaph

+0

Wie sie gespeichert werden, ist außerhalb meiner Kontrolle. Sie werden vom Webserver gespeichert. Meine Frage war, ob es eine Möglichkeit gibt, den Server so zu konfigurieren, dass er sich gegen das Betriebssystem authentifizieren kann und dass das Passwort nicht im Klartext wiederhergestellt werden kann. Sie können dies auf verschiedene Arten implementieren (z Authentifizierungs-Token), aber wir implementieren keinen Web-Server, aber konfigurieren ihn –

Verwandte Themen