OpenVPN GUI hat mein Windows-Passwort gespeichert: wo es liegt
Häkchen bei „Angaben merken“ setzen, und das Login landet in der Benutzerregistrierung, einer Profildatei oder einem Skript, und jede Stelle braucht ihre eigene Bereinigung, wenn ein Laptop abhandenkommt.
Der Verbindungsdialog bietet ein Kontrollkästchen zum Merken des Logins, und wenn man es setzt, wandern die Kontodaten aus dem Kopf des Nutzers in den Rechner. Die Oberfläche verrät nie, wohin. Unter Windows kommen der Registrierungsbereich des aktuellen Benutzers, eine Profildatei, die das Login bereits enthält, und das, was ein Automatisierungsskript tut, infrage. Jeder Ort hat einen anderen Leser, eine andere Fehlerart und eine andere Bereinigung, daher lautet die nützliche Frage, welcher Prozess das Geheimnis wiederherstellen kann und wie lange. Folgen Sie dem Kontrollkästchen aus dem Dialog nach außen und entscheiden Sie dann, was ein verlorener Laptop tatsächlich preisgibt.
Beginnen Sie beim Kontrollkästchen im Verbindungsdialog
Gemerkte Werte werden pro Profil und pro Windows-Konto im Benutzer-Hive und nicht in einem gemeinsamen Maschinenspeicher gehalten. Deshalb sieht ein zweiter Benutzer am selben Rechner kein gespeichertes Login, und deshalb löscht eine Neuinstallation des Clients den gespeicherten Eintrag nicht zwangsläufig.
Die Profildatei selbst enthält Server, Port und Einstellungen, aber kein Geheimnis, weshalb man zuerst das falsche Artefakt untersucht. Das Löschen des Profils entfernt daher die Verbindung und lässt die Anmeldedaten zurück. Das ist die häufigste Überraschung beim Aufräumen. Entfernen Sie beide Artefakte, nicht nur eines.
Was der Registrierungswert verrät
Der Kontoname steht in lesbarem Text, sodass alles, was als dieser Benutzer läuft, ihn ohne besonderen Aufruf dekodieren kann. Das Passwort ist anders: Es ist mit Windows DPAPI versiegelt, an das Konto und je nach Flags an den konkreten Rechner gebunden. Den versiegelten Blob auf einen anderen Rechner zu heben und erneut abzuspielen ergibt daher kein nutzbares Geheimnis.
Das Auflisten der Werte beantwortet die betriebliche Frage, ohne das Geheimnis selbst zu berühren. Es muss nichts entschlüsselt werden, um zu bestätigen, dass ein Eintrag existiert. Die Auflistung dient zugleich als Vorher-nachher-Nachweis für die Bereinigung.
reg query "HKCU\Software\OpenVPN-GUI\configs" /s
cmdkey /list | findstr /i vpn
reg query "HKCU\Software\OpenVPN-GUI" /s | findstr /i "username password"
Zwei Grenzen verdienen es, klar benannt zu werden. Ein Prozess in derselben angemeldeten Sitzung kann dieselbe Entschutzungsroutine aufrufen, die der Client nutzt, sodass die Versiegelung ein Schutz im Ruhezustand und nicht gegen einen kompromittierten Desktop ist. Und ohne vollständige Festplattenverschlüsselung ist der versiegelte Wert nur so privat wie die Festplatte.
Wenn die Profildatei das Login bereits enthält
Manche Portale geben eine Konfiguration aus, in die Kontoname und Passwort geschrieben sind, sodass der Client still verbindet. Dann ist die Datei ein funktionierender Anmeldedatensatz, und jede Kopie davon ist ein weiterer Schlüssel zur selben Tür.
Solche Dateien landen in Sicherungen, Chatverläufen und synchronisierten Ordnern, und keine dieser Kopien hört auf zu funktionieren, wenn das Original gelöscht wird. Das Bearbeiten der lokalen Datei ändert nichts an den anderen. Zugriff zu entziehen bedeutet, das Passwort auf dem Server zu ändern, und zwar zügig. Die Bereinigung auf einem Laptop ist eine separate, kleinere Aufgabe.
Wo eine Abfrage akzeptabel ist, ziehen Sie sie vor und nutzen Sie die Zwischenspeicher-Steuerung des Clients. Wenn ein vorausgefülltes Profil wirklich nötig ist, halten Sie es aus synchronisierten Ordnern heraus und entfernen Sie es, wenn die Arbeit endet.
Automatisierung verschiebt das Geheimnis woandershin
Skripte führen zwei weitere Kanäle ein: Prozessargumente und synthetische Tastendrücke. Eine auf einer Befehlszeile genannte Datei ist für alles sichtbar, was Prozessargumente oder die Dateirechte lesen kann, und ein von einem Werkzeug getipptes Passwort geht an das Fenster, das gerade den Fokus hat. Ein veröffentlichtes Beispiel tippt das Desktop-Passwort auf diese Weise, bevor der Client startet. Ein gespeicherter Einmalkennwort-Seed verdient dieselbe Sorgfalt, denn er kann jeden künftigen Code erzeugen und überlebt ein einzelnes Login.
Das bessere Muster speichert das Geheimnis dort, wo nur das Dienstkonto es lesen kann, verlässt sich auf die dokumentierten Wiederholungs- und Anmeldeinformationsquellen-Optionen des Clients und vermeidet injiziertes Tippen bei Privilegienabfragen. Wenn das Skript das Desktop-Passwort für die Erhöhung braucht, ist das eine Frage des Privilegiendesigns und keine VPN-Frage.
Bereinigung nach einem verlorenen Gerät
Widerrufen oder deaktivieren Sie das Konto auf dem Server zuerst, denn lokales Löschen kann eine Kopie, die jemand bereits hat, nicht ungültig machen. Leeren Sie dann die gemerkten Registrierungswerte, entfernen Sie das Profil und alle Anmeldedatendateien und durchsuchen Sie die Shell-Historie und Skriptverzeichnisse nach eingefügten Passwörtern.
Notieren Sie, was entfernt wurde und wann der Zugriff endete. Dieses Paar beantwortet die einzige Frage, die eine Vorfallprüfung stellt: ob noch eine Kopie der Anmeldedaten funktionierte, nachdem das Gerät das Haus verlassen hatte.