Schimbă parola VPN fără a bloca toate dispozitivele
Schimbarea parolei nu actualizează copiile salvate. Inventariază fiecare client, înlocuiește valoarea salvată la proprietarul ei și oprește bucla reîncercărilor.
Trei telefoane, un router și o verificare de monitorizare mai păstrează parola veche, iar unul dintre ele se reconectează la fiecare nouăzeci de secunde. Parola contului s-a schimbat acum zece minute, așa că fiecare dintre acești clienți trimite acum o valoare pe care serverul o respinge. Atunci se sparge mitul: o schimbare de parolă atinge contul, nu copiile valorii vechi de pe fiecare dispozitiv. Ce urmează este munca pe care schimbarea nu a făcut-o.
Mitul: o singură schimbare, peste tot deodată
Convingerea este că o schimbare de parolă deconectează tot și impune o autentificare curată. Nu este așa, pentru că serverul urmărește doar ce acreditare a acceptat ultima dată, în timp ce clienții păstrează ce au salvat. Un dispozitiv cu parolă salvată o reîncearcă după propriul calendar și eșuează în liniște până când cineva observă că contul este blocat. Odată ce accepți că copiile trăiesc în afara contului, rotația nu mai pare o singură acțiune.
Nimic din toate acestea nu argumentează împotriva rotației. Argumentează pentru tratarea copiilor salvate ca parte a schimbării, nu ca un gând de mai târziu. O blocare vine de obicei din reîncercări paralele: fiecare dispozitiv continuă să trimită valoarea veche după propriul calendar până când contorul se declanșează. Contul pare atunci atacat, deși i se oferă doar acreditări pe care nimeni nu le-a înlocuit. Această distincție contează, pentru că soluția este o listă de dispozitive, nu o politică de blocare mai strictă.
Inventariază copiile înainte de rotație
Scrie inventarul înainte de a deschide formularul parolei. Enumeră fiecare client, script, automatizare și profil gestionat care se autentifică drept acest cont: telefonul care se conectează singur, routerul configurat acum doi ani, laptopul care se trezește doar lunea și verificarea de monitorizare care încearcă în fiecare minut. Pentru fiecare, notează unde este stocată acreditarea, dacă dispozitivul poate fi atins în timpul schimbării și ce cale de recuperare există dacă nu se poate reconecta. Acea listă transformă o schimbare riscantă într-una planificată și trebuie să existe înainte ca parola veche să nu mai funcționeze.
Dispozitivele offline sunt omisiunea clasică. Un laptop într-un sertar revine trei săptămâni mai târziu și prezintă valoarea învechită în cel mai rău moment. Notează și locația și calendarul, pentru că va trebui să îl urmărești în loc să îl aștepți.
Într-o flotă Linux căutarea este mecanică, nu isteață. Caută profiluri care trimit la un fișier de acreditări, apoi fișierele de acreditări în sine, pentru că a doua listă este cea care trebuie rescrisă. Repetă exercițiul pentru clienții de birou și telefoane, unde depozitul este un profil sau o intrare din breloc, nu o cale. Scopul este o listă prin care poți lucra, nu o scanare care pretinde că găsește fiecare copie.
grep -rl auth-user-pass /etc/openvpn /etc/NetworkManager
grep -rl auth-user-pass ~/.config 2>/dev/null
Cântărește copiile față de oamenii care le dețin. Un dispozitiv pe care nimeni nu îl revendică este un dispozitiv pe care nimeni nu îl va actualiza și este și cel care cel mai probabil va continua reîncercările.
Ce secret rotești de fapt
O parolă de cont este doar o acreditare într-o implementare VPN. O frază de acces a cheii, o identitate de certificat și un secret de partener opțional au fiecare propria cale de înlocuire și propriul proprietar. Schimbarea parolei contului nu face nimic pentru un dispozitiv care se autentifică cu un certificat, iar reemiterea unui certificat nu face nimic pentru un client care păstrează o parolă salvată. Numește secretul înainte de a numi soluția.
Dacă rotația este condusă de suspiciune și nu de politică, procesul de incident are prioritate față de planul de confort. Revocă ce cer dovezile și acceptă munca suplimentară pe lista de dispozitive. Decizia aparține proprietarului incidentului, nu celui care ține din întâmplare formularul de resetare a parolei.
Înlocuiește valoarea salvată acolo unde trăiește
Schimbă acreditarea prin mecanismul documentat de serviciu, apoi actualizează copia salvată sau rulează fluxul de autentificare pe fiecare dispozitiv pe care vrei să îl păstrezi. Nu edita o configurație generată în spatele unui manager care o rescrie, pentru că managerul restaurează valoarea mai veche la următoarea rulare, iar editarea devine o defecțiune întârziată. Actualizează sursa pe care o citește managerul sau folosește depozitul propriu de acreditări al clientului. În orice caz, dispozitivul trebuie să ajungă cu valoarea nouă în locul în care clientul citește cu adevărat.
Un client care stochează un fișier de parolă are nevoie de fișierul rescris, în timp ce un client care întreabă are nevoie de o autentificare finalizată. NetworkManager ține secretul în profilul conexiunii, așa că schimbarea trece prin nmcli și nu printr-un editor de text:
nmcli connection modify work vpn.secrets "password=NEW"
nmcli connection up work
Un profil care citește un fișier de acreditări este un al treilea caz. Înlocuiește conținutul acelui fișier, ține permisiunile închise și reîncarcă clientul în loc să editezi profilul care trimite la el. Profilul nu s-a schimbat; doar secretul pe care îl citește s-a schimbat.
Reconectează fiecare dispozitiv vizat o dată, deliberat, și urmărește care eșuează. Dacă un dispozitiv continuă să eșueze, uită-te la contul către care indică și la depozitul pe care îl citește înainte de a schimba din nou parola, pentru că o a doua schimbare înmulțește copiile care trebuie actualizate. Un dispozitiv care eșuează de două ori indică de obicei contul greșit sau citește un depozit pe care încă nu l-ai găsit. Remediază asta, apoi reconectează.
Sesiunile și tokenurile supraviețuiesc parolei
Schimbarea parolei nu demonstrează că sesiunile existente sau certificatele separate au fost revocate. Unele servicii țin o sesiune activă până când expiră sau este terminată explicit, iar tokenurile emise au propria durată de viață. Verifică ce face de fapt serviciul în loc să presupui că schimbarea a fost globală. Dacă schimbarea a fost condusă de suspiciune, termină explicit sesiunile și confirmă rezultatul.
Ghidul privind ciclul de viață al acreditărilor din NIST SP 800-63B ține autentificatorii și sesiunile în categorii separate, motiv pentru care o schimbare de parolă și o deconectare globală sunt operațiuni diferite. Tratează-le ca două sarcini cu două criterii de finalizare. Prima se termină când valoarea nouă funcționează, iar a doua când sesiunile vechi au dispărut.
Înregistrează finalizarea fără a scrie parola nouă în registru. Un jurnal de rotație care conține acreditarea este un incident nou care așteaptă pe un disc partajat. Notează data, dispozitivele actualizate și dispozitivele încă în așteptare.