Trije telefoni, usmerjevalnik in eno preverjanje spremljanja še vedno hranijo staro geslo, eno od njih pa se znova poveže vsakih devetdeset sekund. Geslo računa se je spremenilo pred desetimi minutami, zato vsak od teh odjemalcev zdaj pošilja vrednost, ki jo strežnik zavrne. Takrat se mit zlomi: sprememba gesla se dotakne računa, ne kopij stare vrednosti na vsaki napravi. Sledi delo, ki ga sprememba ni opravila.

Mit: ena sprememba, povsod hkrati

Prepričanje je, da sprememba gesla odjavi vse in zahteva čisto novo prijavo. Ni tako, ker strežnik spremlja le, katere poverilnice je nazadnje sprejel, medtem ko odjemalci hranijo, kar so shranili. Naprava s shranjenim geslom ga poskusi znova po svojem urniku in tiho ne uspe, dokler nekdo ne opazi, da je račun zaklenjen. Ko sprejmemo, da kopije živijo zunaj računa, rotacija ne izgleda več kot eno dejanje.

Nič od tega ne govori proti rotaciji. Govori za to, da shranjene kopije obravnavamo kot del spremembe in ne kot poznejšo misel. Zaklep običajno izhaja iz vzporednih ponovnih poskusov: vsaka naprava pošilja staro vrednost po svojem urniku, dokler števec ne sproži. Račun je potem videti napaden, čeprav se mu ponujajo le poverilnice, ki jih nihče ni zamenjal. Ta razlika je pomembna, ker je rešitev seznam naprav in ne strožja politika zaklepanja.

Popiščite kopije pred rotacijo

Napišite popis, preden odprete obrazec za geslo. Naštejte vsakega odjemalca, skript, avtomatizacijo in upravljani profil, ki se preverja kot ta račun: telefon, ki se poveže sam, usmerjevalnik, nastavljen pred dvema letoma, prenosnik, ki se zbudi le ob ponedeljkih, in preverjanje spremljanja, ki poskuša vsako minuto. Za vsakega zapišite, kje so shranjene poverilnice, ali je naprava med spremembo dosegljiva in katera pot obnovitve obstaja, če se ne more znova povezati. Prav ta seznam spremeni tvegano spremembo v načrtovano in mora obstajati, preden staro geslo preneha delovati.

Naprave brez povezave so klasičen spregled. Prenosnik v predalu se vrne tri tedne pozneje in predstavi zastarelo vrednost v najslabšem možnem trenutku. Zapišite tudi njegovo lokacijo in urnik, ker mu boste morali slediti, namesto da bi ga čakali.

V vozlišču Linux je iskanje mehansko in ne pametno. Iščite profile, ki se sklicujejo na datoteko s poverilnicami, nato same datoteke s poverilnicami, ker je drugi seznam tisti, ki ga je treba prepisati. Vajo ponovite za namizne odjemalce in telefone, kjer je shramba profil ali vnos v zbirki ključev in ne pot. Cilj je seznam, po katerem lahko delate, ne skeniranje, ki trdi, da najde vsako kopijo.

grep -rl auth-user-pass /etc/openvpn /etc/NetworkManager
grep -rl auth-user-pass ~/.config 2>/dev/null

Primerjajte kopije z ljudmi, ki jih imajo v lasti. Naprava, ki je nihče ne zahteva, je naprava, ki je nihče ne bo posodobil, in prav ta bo najverjetneje nadaljevala s ponovnimi poskusi.

Katero skrivnost pravzaprav rotirate

Geslo računa je le ena poverilnica v uvedbi VPN. Geslo ključa, identiteta potrdila in neobvezna skrivnost partnerja imajo vsak svojo pot zamenjave in svojega lastnika. Sprememba gesla računa ne naredi ničesar za napravo, ki se preverja s potrdilom, ponovna izdaja potrdila pa ne naredi ničesar za odjemalca s shranjenim geslom. Poimenujte skrivnost, preden poimenujete rešitev.

Če rotacijo vodi sum in ne politika, ima postopek incidenta prednost pred načrtom udobja. Prekličite, kar zahtevajo dokazi, in sprejmite dodatno delo na seznamu naprav. Ta odločitev pripada lastniku incidenta, ne tistemu, ki slučajno drži obrazec za ponastavitev gesla.

Zamenjajte shranjeno vrednost tam, kjer živi

Spremenite poverilnice z mehanizmom, ki ga storitev dokumentira, nato posodobite shranjeno kopijo ali izvedite prijavni tok na vsaki napravi, ki jo želite obdržati. Ne urejajte ustvarjene konfiguracije za upraviteljem, ki jo prepisuje, ker upravitelj ob naslednjem zagonu obnovi starejšo vrednost in urejanje postane odložena okvara. Posodobite vir, ki ga upravitelj bere, ali uporabite odjemalčevo lastno shrambo poverilnic. Kakor koli, naprava mora končati z novo vrednostjo na mestu, kjer odjemalec resnično bere.

Odjemalec, ki shranjuje datoteko z geslom, potrebuje prepisano datoteko, medtem ko odjemalec, ki vpraša, potrebuje dokončano prijavo. NetworkManager hrani skrivnost v profilu povezave, zato gre sprememba skozi nmcli in ne skozi urejevalnik besedila:

nmcli connection modify work vpn.secrets "password=NEW"
nmcli connection up work

Profil, ki bere datoteko s poverilnicami, je tretji primer. Zamenjajte vsebino te datoteke, obdržite njene pravice zaprte in znova naložite odjemalca, namesto da bi urejali profil, ki nanjo kaže. Profil se ni spremenil; spremenila se je le skrivnost, ki jo bere.

Znova povežite vsako predvideno napravo enkrat, namerno, in glejte, katere ne uspejo. Če naprava kar naprej ne uspeva, poglejte račun, na katerega kaže, in shrambo, ki jo bere, preden znova spremenite geslo, ker druga sprememba pomnoži kopije, ki jih je treba posodobiti. Naprava, ki ne uspe dvakrat, običajno kaže na napačen račun ali bere shrambo, ki je še niste našli. Popravite to in se nato znova povežite.

Seje in žetoni preživijo geslo

Sprememba gesla ne dokazuje, da so bile obstoječe seje ali ločena potrdila preklicana. Nekatere storitve držijo sejo živo, dokler ne poteče ali ni izrecno končana, izdani žetoni pa nosijo svojo življenjsko dobo. Preverite, kaj storitev v resnici počne, namesto da predpostavljate, da je bila sprememba globalna. Če je spremembo vodil sum, izrecno končajte seje in potrdite rezultat.

Smernice o življenjskem ciklu poverilnic v NIST SP 800-63B držijo preverjevalnike in seje v ločenih kategorijah, zato sta sprememba gesla in globalna odjava različni operaciji. Obravnavajte ju kot dve nalogi z dvema meriloma dokončanja. Prva se konča, ko nova vrednost deluje, druga pa, ko starih sej ni več.

Zabeležite dokončanje, ne da bi novo geslo zapisali v zapis. Dnevnik rotacije, ki vsebuje poverilnice, je nov incident, ki čaka na skupnem disku. Zapišite datum, posodobljene naprave in naprave, ki še niso končane.

Sorodni članki