Oporavak WireGuard tunela s mrtvog Windows računara
Profili su DPAPI blobovi vezani za račun i mašinu koja ih je napravila. Kopiranje datoteke na novi računar ostavlja vam bajtove koje nijedan lokalni ključ ne može otvoriti.
Laptop umre s tri konfigurisana WireGuard tunela, a konfiguracijske datoteke su još na disku. Kopiranje na zamjensku mašinu daje servis koji se pokrene i zatim odbije da se podigne. Datoteke su zaštićene ključem koji pripada računu i mašini koji su ih stvorili, pa bajtovi putuju, a sposobnost da ih čitate ne. Postupak ispod ide od pronalaženja datoteke do opcije koja zaista vraća servis.
Gdje se sada nalazi datoteka tunela
Pohrana se mijenjala između izdanja. Starije instalacije držale su profile u lokalnim podacima aplikacija sistemskog profila u fascikli WireGuard\Configurations, a trenutne verzije koriste direktorij podataka unutar stabla programskih datoteka. Svaki tunel je jedna datoteka s dvostrukim proširenjem koje imenuje zaštitu:
Get-ChildItem "C:\Program Files\WireGuard\Data\Configurations"
Nastavak .dpapi nije ukras. Datoteka je zaštićeni blob, a servis je napravljen da ga troši upravo u tom obliku. Podržani način da iz njega instalirate tunel je poziv s povišenim pravima koji pokazuje na blob:
$blob = "C:\Program Files\WireGuard\Data\Configurations\hq.conf.dpapi"
wireguard.exe /installtunnelservice $blob
Ta komanda uspijeva samo u kontekstu koji može otvoriti blob. Ona instalira servis; ne dešifruje ništa za vas.
Zašto se blob ne otvara drugdje
Zaštita izvodi svoj ključ iz korisnikovih prijavnih akreditiva i, zavisno od odabranog opsega, iz mašine. Microsoftova dokumentacija za poziv zaštite kaže da zadani način pripada korisniku i mašini koji su ga šifrirali, a opcija na nivou mašine mijenja ko ga smije otvoriti. U oba slučaja ključ živi u akreditivnom materijalu operativnog sistema, ne unutar datoteke. Šifrat je prenosiv; ključ nije.
Preuzimanje vlasništva nad fasciklom mijenja ACL i ništa drugo. Montiranje starog diska u kućištu i kopiranje bloba na novi računar ostavlja vam šifrat čiji ključ nikada nije kopiran. Kvar je kriptografski i nikakvo ponovno instaliranje servisa ga ne mijenja. Nova mašina nema glavni ključ za taj račun, a staro skladište ključeva ne putuje s datotekom.
Proizvodi koji čuvaju postavke u zamućenoj datoteci jasno pokazuju razliku. Konfiguracija koja je samo obfuscirana postaje čitljiva kada nađete zastavicu koja isključuje obfuskaciju; zaštićeni blob ostaje zatvoren bez ključa. Miješanje to dvoje navodi ljude da traže dekoder koji ne postoji.
Šta pokušati dok se stari sistem još podiže
Ako se instalacija još pokreće, izvezite tunele iz klijenta dok ste prijavljeni kao račun koji ih je stvorio. Izvoz pravi obične konfiguracijske datoteke, i tada rezervna kopija postaje prenosiva.
Ako je disk čitljiv ali Windows se ne podiže, zaštićene datoteke su praktično izgubljene. Alati koji obećavaju da će ih vratiti ili rade u izvornom kontekstu koji više nemate, ili traže da im predate blob i sliku starog diska, što je odluka o kojoj vrijedi zastati.
Zapišite šta ste naučili u oba slučaja: imena tunela, krajnje tačke i javne ključeve. Imena i krajnje tačke vam omogućavaju brzu ponovnu izgradnju, a javni ključevi omogućavaju drugoj strani da prepozna koji unos treba ukloniti.
Umjesto toga, ponovo izgradite s druge strane
Za drugu stranu koju kontrolišete, generišite novi par ključeva i dodajte novi javni ključ na listu druge strane. Za korporativnu ili hostovanu krajnju tačku, zamolite administratora da izda novi ključ i ukloni stari. Taj zahtjev je isti onaj koji biste uputili nakon krađe, jer izgubljeni disk znači da se stari privatni ključ mora tretirati kao izložen.
Zatim ponovo izgradite tunel iz vrijednosti koje ste zapisali i potvrdite rukovanje prije nego što obrišete bilo šta drugo. Stari unos na drugoj strani treba da nestane u istoj promjeni, kako ukradeni disk ne bi mogao kasnije da se ponovo poveže.
Naučeno pripada politici rezervnih kopija, a ne alatu za oporavak. WireGuard konfiguracija je akreditiv: ko god drži privatni ključ, drži identitet druge strane, i na putu nema druge lozinke. Ili namjerno izvezite konfiguraciju i čuvajte je s ostalim tajnama, ili prihvatite da oporavak znači ponovno izdavanje ključeva, i zapišite koja opcija vrijedi za svaki tunel.