Ažuriranje ne uspije, a prijedlog u temi ide poznatom linijom: promet prolazi kroz VPN, pa preuzimanje mora biti pouzdano, i provjera potpisa se olabavi da bi se prošlo pored greške. Dvije odvojene ideje spojene su u jednu rečenicu. Šifriranje štiti put između krajnjih točaka; provjera autentičnosti odlučuje jesu li bajtovi došli od izdavača kojeg ste namjeravali. Tunel daje prvo i ne govori ništa o drugom.

Simptom je obično greška provjere na jednom hostu, u jednom repozitoriju, dok se sve ostalo normalno ažurira. Taj oblik već govori da mrežni put radi i da se neslaganje tiče povjerenja.

Dvije kontrole koje odgovaraju na različita pitanja

Sigurnost prijenosa odgovara ko je na drugoj strani ove veze i može li je neko na putu čitati ili mijenjati. Provjera autentičnosti paketa odgovara je li ovaj artefakt objavila ustanova koju ste konfigurisali, i mora preživjeti preuzimanje preko ogledala koje ne kontrolišete.

Ta pitanja se preklapaju samo na rubovima. Ispravan certifikat na ogledalu dokazuje da je ogledalo ogledalo; ne dokazuje da ogledalo drži neizmijenjen sadržaj izdavača. Potpisan paket dokazuje da ga je izdavač potpisao; ne govori vam da je mreža dostavila najnoviju verziju ili da je repozitorij na koji ste pokazali onaj koji je vaša organizacija odobrila.

Način neuspjeha koji ljudi stvaraju isključivanjem provjera trajni je gubitak drugog jamstva u zamjenu za jedno uspješno preuzimanje. Ta razmjena je nevidljiva do dana kada je važna.

Šta apt zapravo provjerava

APT-ov model je lanac ovjerenog arhiva. Potpisani metapodaci izdanja vode preko kontrolne sume do indeksa paketa, a ti indeksi vode preko kontrolne sume do pojedinačnih datoteka paketa. Provjera lanca je ono što ogledalo čini nepouzdanim ali upotrebljivim: ogledalo može poslužiti što god želi, a potpis metapodataka odlučuje hoće li APT to prihvatiti.

To namjerno nije isto kao provjera potpisa održavaoca na svakom instaliranom paketu, i ta razlika objašnjava zašto se u izvještajima o greškama «paket je potpisan» i «arhiv je ovjeren» koriste kao zamjenjivi kad znače različite stvari.

apt-get update
apt-cache policy
apt-config dump | grep -iE 'AllowInsecure|AllowDowngrade'

Čitajte izlaz ažuriranja, a ne samo izlazni kod. APT imenuje repozitorij čiji metapodaci nisu prošli, i to ime je granica koju treba istražiti. Repozitorij označen kao pouzdan bez provjere potpisa, ili nadjačavanje za nesiguran repozitorij, konfiguracijska je odluka koju je neko donio i treba je moći objasniti.

Svježina je opet zasebno svojstvo. Ispravno potpisana datoteka metapodataka može biti starija od one koju ste vidjeli prošle sedmice, zato metapodaci izdanja nose rok trajanja i zato problem sa satom na klijentu može proizvesti greške provjere koje izgledaju kao problemi s ključem.

Šta dnf5 provjerava odvojeno

RPM strana izlaže dva različita prekidača, a njihovo miješanje daje istu vrstu greške u drugom smjeru. Jedan kontroliše moraju li datoteke paketa nositi valjan potpis; drugi kontroliše moraju li metapodaci repozitorija biti potpisani. Mogu se postaviti nezavisno, i sistem može biti strog prema jednom a popustljiv prema drugom.

dnf5 config-manager --dump 2>/dev/null | grep -iE 'gpgcheck|repo_gpgcheck'
rpm -q --qf '%{NAME} %{SIGPGP:pgpsig}\n' bash

Upit paketa pokazuje kako izgledaju metapodaci potpisa instalirane kopije, što je korisna provjera stvarnosti prema konfiguracijskoj datoteci koja tvrdi strogost. Ono što vam ne kaže jest podržana politika distribucije, a upravo nju treba slijediti umjesto općeg «uključite GPG» uputstva s foruma.

Gdje se dva upravitelja razlikuju, razlika je arhitektonska, a ne znak da je jedan slabiji. Oba ovjeravaju sadržaj izdavača; potpis postavljaju na različita mjesta u lancu.

Šta tunel dodaje, a šta ne

VPN može osigurati potrebnu rutu, držati promet ažuriranja izvan nepouzdane pristupne mreže i smanjiti ono što lokalni posmatrač vidi. To su stvarne operativne prednosti, i nijedna od njih nije provjera autentičnosti izdavača.

HTTPS dodaje vlastito jamstvo, i ono je uže nego što se osjeća. On ovjerava TLS odredište na koje ste se povezali. Ako je to odredište ogledalo, ovjerili ste ogledalo, a ne sadržaj arhiva koji ono poslužuje. Upravo je to slučaj za koji postoji lanac potpisanih metapodataka.

Nijedna kontrola ne obećava dostupnost. Mreža može odbiti dostavu, a ovjereni objekat nije automatski najnoviji. Koristite vlastitu politiku svježine upravitelja paketa umjesto da je zaključujete iz prisustva ikone katanca.

Dijagnostikujte granicu koja nije prošla

Imenujte fazu prije nego što bilo šta promijenite: DNS razrješavanje, proxy ili rutu, identitet TLS odredišta, ovjeru arhiva, provjere potpisa paketa ili instalaciju. Svaka ima poseban oblik greške i posebnog vlasnika.

Popravljanje mrežnog puta nikada ne bi smjelo uključivati proglašavanje nepoznatog ključa za potpisivanje pouzdanim, ignorisanje certifikata ili prihvatanje konfiguracije repozitorija koju niste tražili. Ako je ključ zaista rotiran, distribucija ili vlasnik repozitorija objavljuje novi ključ kroz kanal koji možete provjeriti, i to je ispravka koju treba primijeniti.

Zapišite koja granica nije prošla i ko je vlasnik. Sljedeći neuspjeh ažuriranja bit će na drugoj granici, a postojanje liste čini ga dijagnozom od pet minuta umjesto još jedne rasprave o tome čini li tunel ažuriranja sigurnim.

Povezani članci