Jedes Rezept für unbeaufsichtigtes Neuverbinden stößt irgendwann auf dieselbe Frage: Wo lebt das Kennwort. Die verbreitete Antwort ist die Aufgabenaktion selbst, die zugleich der schlechteste Ort dafür ist. Zwei andere Entwürfe existieren. Welcher passt, hängt davon ab, ob sich der Rechner ohne Person authentifizieren kann und ob der Server Zertifikate akzeptiert.

Was eine Aufgabenaktion lesbar hinterlässt

Argumente in einer geplanten Aufgabe sind Teil ihrer Definition, kein versteckter Laufzeitwert. Jeder, der die Aufgabe lesen, eine Sicherung davon wiederherstellen oder ihr XML exportieren kann, sieht die Zeichenkette genau so, wie Sie sie eingegeben haben. Während eines Laufs erscheint dieselbe Zeichenkette in der Prozessliste. Ein Überwachungsagent kann sie in ein Protokoll kopieren, das Sie nie prüfen.

schtasks /query /tn "VPN Reconnect" /xml
cmdkey /list

Prüfen Sie, bevor Sie das Gegenteil annehmen. Der erste Befehl gibt die vollständige Definition aus, einschließlich der Aktion und ihrer Argumente. Der zweite zeigt, welche Anmeldeinformationen das aktuelle Konto zwischengespeichert hat, was für die alternativen Entwürfe unten wichtig ist. Steht das Kennwort im XML der Aufgabe, ist die Rotation nur die halbe Reparatur, denn die Aufgabe hält noch den alten Wert.

Was ein gespeicherter vorab geteilter Schlüssel wirklich bringt

Add-VpnConnection -L2tpPsk schreibt den Schlüssel in den Telefonbucheintrag der Verbindung statt in eine Aufgabe. Das ist eine kleinere Angriffsfläche als eine Aufgabenaktion. Es bleibt ein wiederherstellbares Geheimnis, weil ein Administrator auf dem Rechner das Telefonbuch lesen kann.

Für eine Laberverbindung zwischen zwei Rechnern, die Sie kontrollieren, mag dieser Tausch akzeptabel sein. Für Anmeldeinformationen eines Benutzers auf einem gemeinsam genutzten Endpunkt ist er es nicht. Ihn verschlüsselte Speicherung zu nennen, ändert nicht, wer ihn lesen kann. Das Telefonbuch ist eine Konfigurationsdatei. Planen Sie für die Person, die es öffnen kann, nicht nur für die Person, die sich als Benutzer anmelden kann.

Winlogon-Anmeldeinformationen entfernen das Geheimnis und fügen eine Abhängigkeit hinzu

-UseWinlogonCredential nimmt einen anderen Weg. Die Verbindung authentifiziert sich mit MSCHAPv2 gegen die Anmeldeinformationen des angemeldeten Benutzers. Für dieses Konto wird nichts zusätzlich gespeichert.

Die Abhängigkeit, die er hinzufügt, ist erheblich. Es muss eine interaktive Anmeldung geben, von der geliehen werden kann, was ein Dienstkonto und eine Aufgabe vor der Anmeldung ausschließt. Die Verbindung erbt außerdem alles, was die Anmeldeinformationen dieses Benutzers auf dem Server erreichen können. Lesen Sie den Schalter als Aussage darüber, woher die Anmeldeinformationen stammen, nicht als Sicherheitseinstellung. Er ändert die Quelle und nichts daran, wie der Server die Sitzung danach autorisiert.

Zertifikatsauthentifizierung skaliert, weil nichts gespeichert wird

Wo der Server EAP-TLS unterstützt, beseitigt ein Maschinenzertifikat das gemeinsame Geheimnis vollständig, und der Widerruf erfolgt auf der Zertifikatsebene. Eine als SYSTEM laufende Aufgabe kann dieses Zertifikat ohne interaktive Anmeldung vorlegen. Bestätigen Sie, dass der Server die Zertifikatsauthentifizierung akzeptiert, bevor Sie darauf aufbauen. Ein Entwurf, der von einer nicht unterstützten Methode abhängt, ist ein Plan statt einer Lösung. Entscheiden Sie dann, wo der private Schlüssel lebt: der Maschinenspeicher für eine Geräteidentität, der Benutzerspeicher für eine Person.

Wo Benutzername und Kennwort nicht zu vermeiden sind, speichern Sie sie im Credential Manager, beschränkt auf das eigene Konto der Aufgabe. Lassen Sie den Client sie von dort lesen statt aus einem Argument. Ein Geheimnis, das die Aufgabe abrufen kann, ohne es auszugeben, ist ein kleineres Problem als eines, das in ihre Definition geschrieben wurde.

Prüfen Sie die Artefakte vor der nächsten Rotation

Sehen Sie auf das, was gespeichert ist, statt auf das, was Sie beabsichtigt haben. Prüfen Sie das Telefonbuch pro Benutzer, die Kopie für alle Benutzer, das XML der Aufgabe und jedes Skript, das den Wählbefehl aufruft. Bestätigen Sie dann, dass das Zertifikat oder die zwischengespeicherten Anmeldeinformationen auf das Konto beschränkt sind, das die Aufgabe verwendet, denn Anmeldeinformationen, die für Ihr interaktives Konto gespeichert sind, sind für SYSTEM unsichtbar.

Notieren Sie die Authentifizierungsmethode und das Konto in den Notizen der Aufgabe selbst. Die nächste Person, die die Richtlinie des Servers ändert, muss wissen, welcher Entwurf im Spiel ist. Diese Antwort ist nicht allein am Neuverbindungsverhalten sichtbar. Schreiben Sie sie dorthin, wo die nächste Rotation zuerst nachsieht.

Ähnliche Artikel