Preuzimanje VPN klijenta je jednokratna odluka; dodavanje njegovog APT repozitorija nije. Drugo govori upravitelju paketa odakle budući softver može dolaziti, a to je stalni prenos ovlaštenja, a ne preuzimanje. To može biti ispravan aranžman kada dobavljač ispravno održava repozitorij. Ipak zaslužuje svjesnu odluku, a većina vodiča za instalaciju to preskače.

Potpis potvrđuje arhivu, a ne njen kod

APT provjerava potpisane metapodatke repozitorija, a zatim vjeruje kontrolnim sumama unutar tih metapodataka za pakete koje preuzima. To dokazuje da arhiva odgovara onome što je vlasnik ključa objavio, i ništa o kodu unutar nje. Ispravno potpisan paket i dalje može nositi nesigurne skripte održavatelja, a te skripte se izvršavaju kao root dok se paket instalira. apt-secure priručnik povlači upravo tu granicu između provjere arhive i pregleda softvera.

Dakle, korisno pitanje nije da li se potpis validira, jer pokvaren potpis ionako zaustavlja instalaciju. Pitanje je čijem potpisu od sada birate vjerovati. Ukradeni ključ za potpisivanje gori je od ukradenog paketa, jer napadač nastavlja proizvoditi valjane metapodatke dugo nakon prvog lošeg izdanja. Rotacija je jedini popravak i zavisi od toga da dobavljač objavi novi ključ kroz kanal koji možete neovisno provjeriti.

Zato identitet ključa zaslužuje jednaku pažnju kao URL repozitorija. Ključ uzet s adrese u starom odgovoru na forumu ne dokazuje ništa o izdavaču, dok HTTPS štiti prijenos do onoga ko je odgovorio na telefon. Sigurnost prijenosa i identitet izdavača su odvojena pitanja, i samo prvo rješava certifikat.

Ograničite ključ na izvor, a ne na sistem

Savremeni APT prihvata referencu Signed-By specifičnu za izvor. Ključ kojim upravlja operater može živjeti u /etc/apt/keyrings/, a unos izvora imenuje ključ koji smije potvrditi tu arhivu. To je uže od bacanja istog ključa u globalno pouzdan skup, gdje može jamčiti za izvore koje nikada niste namjeravali dopustiti. Slijedite instaliranu verziju APT-a i aktualne upute dobavljača umjesto miješanja fragmenata iz različitih generacija vodiča.

curl -fsSL https://repo.example.com/vpn-key.gpg -o /etc/apt/keyrings/vpn.gpg
echo "deb [signed-by=/etc/apt/keyrings/vpn.gpg] https://repo.example.com/debian stable main" > /etc/apt/sources.list.d/vpn.list

Nikada ne popravljajte neuspjeh potpisa isključivanjem provjere ili označavanjem nepoznate arhive pouzdanom. To mijenja vidljivu grešku za nevidljivu, a nevidljiva traje dok neko ne pregleda listu izvora. Ako se ključ ne podudara, ispravan popravak je pronaći pravi ključ, a ne ukloniti provjeru.

Nabavite pojedinosti o repozitoriju i identitet ključa od projekta ili upravljanog administratora. Ključ kopiran s blog posta je tvrdnja o autorstvu, a ne dokaz o njemu. Kada dobavljač objavi kanal rotacije, zapišite ga zajedno s ključem, jer taj kanal omogućuje sljedeću rotaciju.

Prikivanje izvora nije lista dopuštenih paketa

Ograničavanje ključa na jedan izvor ograničava koju arhivu može potvrditi, a ne koje pakete ta arhiva smije objaviti. Repozitorij može isporučiti mnogo više od VPN klijenta koji ste željeli, a odabir kandidata i prioriteti APT-a odlučuju koja podobna verzija pobjeđuje. Pregledajte predloženu transakciju prije potvrde, uključujući listu zavisnosti, jer zavisnosti dolaze iz iste arhive. Opseg ključa ne može izraziti ’samo ovaj paket’.

Ako trebate jaču kontrolu, izrazite je kao politiku o imenima ili verzijama paketa i držite tu politiku pod upravljanjem konfiguracijom. Čitanje transakcije traje minutu; otkrivanje neočekivanog paketa šest mjeseci kasnije traži pregled.

Neočekivani paketi su trenutak da stanete, a ne da nastavite, a pitanje za vlasnika arhive je zašto su potrebni. Repozitorij koji objavljuje desetak paketa oko jednog klijenta normalan je za dobavljača koji isporučuje desktop paket. To je i veća površina nego što je vodič za instalaciju implicirao, i upravo taj dio vrijedi zabilježiti. Nijedan od dva ishoda nije razlog za nepovjerenje prema potpisu; oba su razlog da zapišete šta ste prihvatili.

Zabilježite ovlaštenje i kako ga ukloniti

Zapišite vlasnika arhive, podržano izdanje operativnog sistema, kanal rotacije ključa i postupak uklanjanja. Te četiri činjenice trebaju nasljedniku kada se klijent povuče ili dobavljač rotira ključ. Bez njih sljedeća osoba nasljeđuje liniju izvora i datoteku ključa bez ikakve priče.

Uklanjanje je korak koji se preskače, pa ga zapišite pri instalaciji. Izbrišite unos izvora i njegov namjenski ključ zajedno i provjerite da li se taj ključ spominje negdje drugdje prije nego što uklonite datoteku. Dijeljeni ključ izbrisan bez te provjere pretvara čišćenje u nepovezani prekid, što je najgori ishod za rutinsku promjenu. Zatim potvrdite da se uobičajena ažuriranja i dalje rješavaju nakon što unos nestane.

Jedna stvar ostaje nakon uklanjanja repozitorija: svaki paket već instaliran iz njega nastavlja raditi dok ga nešto ne zamijeni. Iskreno pitanje je koje ste ovlaštenje dodali i koliko je usko njegova uloga izražena.

Povezani članci