Fiecare rețetă de reconectare nesupravegheată ajunge în cele din urmă la aceeași întrebare: unde locuiește parola. Răspunsul popular este acțiunea sarcinii în sine, care este și cel mai prost loc pentru ea. Există alte două modele. Care se potrivește depinde de dacă mașina se poate autentifica fără o persoană și dacă serverul acceptă certificate.

Ce lasă lizibil o acțiune de sarcină

Argumentele dintr-o sarcină programată fac parte din definiția ei, nu sunt o valoare ascunsă la rulare. Oricine poate citi sarcina, poate restaura o copie de rezervă a acesteia sau poate exporta XML-ul ei vede șirul exact așa cum l-ai tastat. În timpul unei rulări, același șir apare în lista de procese. Un agent de monitorizare îl poate copia într-un jurnal pe care nu îl verifici niciodată.

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

Verifică înainte de a presupune contrariul. Prima comandă tipărește definiția completă, inclusiv acțiunea și argumentele ei. A doua arată ce acreditări are în cache contul curent, ceea ce contează pentru modelele alternative de mai jos. Dacă parola apare în XML-ul sarcinii, rotirea ei este doar jumătate din reparație, pentru că sarcina păstrează încă valoarea veche.

Ce oferă de fapt o cheie prepartajată stocată

Add-VpnConnection -L2tpPsk scrie cheia în intrarea din agenda telefonică a conexiunii, nu într-o sarcină. Aceasta este o suprafață de expunere mai mică decât o acțiune de sarcină. Rămâne un secret recuperabil, pentru că un administrator de pe mașină poate citi agenda telefonică.

Pentru o legătură de laborator între două mașini pe care le controlezi, acel schimb poate fi acceptabil. Pentru o acreditare de utilizator pe un endpoint partajat, nu este. A o numi stocare criptată nu schimbă cine o poate citi. Agenda telefonică este un fișier de configurare. Planifică pentru persoana care îl poate deschide, nu doar pentru persoana care se poate autentifica drept utilizator.

Acreditările Winlogon elimină secretul și adaugă o dependență

-UseWinlogonCredential alege o altă cale. Conexiunea se autentifică cu MSCHAPv2 față de acreditările utilizatorului autentificat. Pentru acel cont nu se stochează nimic suplimentar.

Dependența pe care o adaugă este semnificativă. Trebuie să existe o autentificare interactivă de la care să se împrumute, ceea ce exclude un cont de serviciu și o sarcină înainte de autentificare. Conexiunea moștenește și tot ce pot atinge acreditările acelui utilizator pe server. Citește comutatorul ca o afirmație despre de unde provin acreditările, nu ca o setare de securitate. Schimbă sursa și nimic din felul în care serverul autorizează sesiunea după aceea.

Autentificarea cu certificate scalează pentru că nimic nu este stocat

Acolo unde serverul acceptă EAP-TLS, un certificat de mașină elimină complet secretul partajat, iar revocarea are loc la nivelul certificatului. O sarcină care rulează ca SYSTEM poate prezenta acel certificat fără o autentificare interactivă. Confirmă că serverul acceptă autentificarea cu certificate înainte de a construi pe ea. Un model care depinde de o metodă neacceptată este un plan, nu o soluție. Apoi decide unde locuiește cheia privată: depozitul mașinii pentru identitatea unui dispozitiv, depozitul utilizatorului pentru o persoană.

Acolo unde numele de utilizator și parola nu pot fi evitate, stochează-le în Credential Manager, limitate la contul propriu al sarcinii. Lasă clientul să le citească de acolo în loc de un argument. Un secret pe care sarcina îl poate obține fără a-l tipări este o problemă mai mică decât unul scris în definiția ei.

Revizuiește artefactele înainte de următoarea rotație

Uită-te la ce este stocat, nu la ce ai intenționat. Verifică agenda telefonică pe utilizator, copia pentru toți utilizatorii, XML-ul sarcinii și orice script care apelează comanda de formare. Apoi confirmă că certificatul sau acreditările din cache sunt limitate la contul pe care îl folosește sarcina, pentru că o acreditare stocată pentru contul tău interactiv este invizibilă pentru SYSTEM.

Notează metoda de autentificare și contul în notele sarcinii înseși. Următoarea persoană care va schimba politica serverului trebuie să știe ce model este în joc. Acel răspuns nu se vede doar din comportamentul de reconectare. Scrie-l acolo unde următoarea rotație se va uita mai întâi.

Articole similare