Den nøgle, der beviser, at din gateway er sig selv, og den legitimation, der siger, at en person må tilslutte sig, er begge hemmeligheder, og det er her ligheden slutter. Den ene identificerer en tjeneste over for hver klient; den anden identificerer én bruger over for den tjeneste. At blande dem sparer et trin under opsætningen og koster en eftermiddag under en hændelse, fordi gendannelsen for hver af dem ikke er den samme operation. Opdelingen er kedelig at sætte op og mindeværdig at springe over.

To hemmeligheder, to forskellige ejere

Gatewayen holder en privat nøgle eller et certifikat, hvis eneste opgave er at bevise sin identitet under håndtrykket. Klienter har brug for det matchende offentlige materiale for at verificere den, og de har aldrig brug for den private halvdel. Det er denne asymmetri, der gør servergodkendelse mulig uden at give hver bruger evnen til at efterligne serveren.

Brugermateriale går den anden vej. En klients private nøgle, et klientcertifikat eller en adgangskode viser, at netop denne person eller enhed har fået adgang. Det forventes at blive distribueret, kopieret mellem enheder og til sidst tilbagekaldt.

WireGuard gør opdelingen åbenlys, fordi hver deltager har et nøglepar: serverens private nøgle bliver på serveren, og en konfigurationsfil, du giver en bruger, indeholder deres egen private nøgle plus serverens offentlige nøgle. En profil, der indeholder serverens private nøgle, er ikke en genvej, den er et kompromis, der venter på en fildeling.

Tre spørgsmål, der afgør opdelingen

Spørg, hvem der skal kunne læse hemmeligheden, hvad en eksponering ville give en angriber mulighed for, og om rettelsen er én tilbagekaldelse eller en genopbygning af tjenesten.

Hvis en bruger kan læse den, og den beviser gatewayens identitet, er svaret på det andet spørgsmål, at angriberen kan efterligne din server over for hver klient — det værste udfald, fordi klienter er designet til at stole på den identitet. Hvis den kun beviser én bruger, giver eksponeringen den brugers adgang til én peer, og tilbagekaldelse er en rutineoperation. Hvis det er en certifikatmyndighedsnøgle, er eksponeringen værre end begge, da angriberen kan skabe identiteter, som hvert endepunkt stoler på.

De tre svar giver opbevaringsreglen: CA-nøglen bor offline eller i et pengeskab, gatewaynøglen bor på gatewayen, og brugernøgler bor hos brugerne. Enhver opsætning, der lægger alle tre i én mappe for nemheds skyld, har gjort en beslutning til et uheld.

Hvad en klient faktisk har brug for

En klient har brug for det offentlige certifikat eller den offentlige peernøgle, det CA-materiale eller fingeraftryk, den skal stole på, sin egen private nøgle og endepunktets detaljer. Den liste indeholder intet, der tilhører gatewayens private identitet.

Dokumentationen er, hvor dette lækker. En vejledning, der siger, at du skal kopiere servermappen og slette det, du ikke har brug for, har allerede lært den forkerte model, fordi den fil, der er tilbage efter sletningstrinnet, sjældent bliver kontrolleret af nogen.

Tilbagekald én bruger uden at røre gatewayen

Fordi brugeridentiteter udstedes separat, kan de trækkes tilbage separat. En certifikatbaseret udrulning tilbagekalder klientcertifikatet og offentliggør en opdateret tilbagekaldelsesliste; en WireGuard-udrulning fjerner peer-posten fra serverkonfigurationen. Ingen af disse operationer ændrer gatewayens egen nøgle.

Gem udstedelsesregistret, ellers ved du ikke, hvilken identitet der skal trækkes tilbage. Et regneark er nok, forudsat at det navngiver personen, enheden, serienummeret eller den offentlige nøgle og datoen, og forudsat at nogen ejer det, efter at personen, der byggede det, er rejst.

Kommandoerne nedenfor inspicerer et klientcertifikat og tilbagekalder det derefter gennem en myndighed i OpenSSL-stil, hvilket er den proces, easy-rsa pakker ind:

openssl x509 -in client.crt -noout -subject -serial
openssl ca -config openssl.cnf -revoke client.crt
openssl ca -config openssl.cnf -gencrl -out crl.pem

Offentliggør den nye liste, hvor klienter kontrollerer den, ellers er tilbagekaldelsen en note i en fil, der ikke ændrer noget. Hvis din gateway accepterer klientcertifikater uden at konsultere en tilbagekaldelsesliste, så sig det eksplicit i stedet for at antyde, at tilbagekaldelse virker.

Hold sikkerhedskopier lige så adskilt som hemmelighederne

Et genopbygningsarkiv indeholder med rette gatewaynøglen og CA-materialet, fordi en gendannelse uden dem ikke kan genskabe tjenesten. En klientopsætningspakke må ikke, og de to må ikke opbevares sammen. Mærk hvert arkiv efter, hvem der må holde det, ikke efter datoen, det blev lavet. Det mærke er det, en træt administrator læser klokken to om natten.

Den sondring fastlægger også, hvem der må hente hver af dem. At administrere gatewayen, udstede brugeridentiteter og læse sikkerhedskopier er tre forskellige beføjelser, og en person, der har brug for én, har ikke automatisk brug for de andre. Skriv de tilladelser ned, og kontroller dem derefter mod det, din opbevaring faktisk tillader, fordi mappearv giver stiltiende mere, end politikken tilsigter.

Relaterede artikler