Aktualizácia zlyhá a návrh vo vlákne ide známou líniou: prevádzka ide cez VPN, takže sťahovanie musí byť dôveryhodné, a kontrola podpisu sa uvoľní, aby sa chyba obišla. Dve oddelené myšlienky sa zliali do jednej vety. Šifrovanie chráni cestu medzi koncovými bodmi; overenie pravosti rozhoduje, či bajty prišli od vydavateľa, ktorého ste mali na mysli. Tunel dáva prvé a o druhom nehovorí nič.

Príznakom býva chyba overenia na jednom hostiteľovi, v jednom úložišti, zatiaľ čo všetko ostatné sa aktualizuje normálne. Tento tvar už hovorí, že sieťová cesta funguje a že spor je o dôvere.

Dve kontroly, ktoré odpovedajú na rôzne otázky

Zabezpečenie prenosu odpovedá, kto je na druhom konci tohto spojenia a či ho niekto na ceste môže čítať alebo meniť. Overenie balíka odpovedá, či tento artefakt vydala autorita, ktorú ste nastavili, a musí prežiť stiahnutie cez zrkadlo, ktoré neovládate.

Tieto otázky sa prekrývajú len na okrajoch. Správny certifikát na zrkadle dokazuje, že zrkadlo je zrkadlo; nedokazuje, že zrkadlo drží nezmenený obsah vydavateľa. Podpísaný balík dokazuje, že ho vydavateľ podpísal; nehovorí vám, že sieť doručila najnovšiu verziu alebo že úložisko, na ktoré ste ukázali, je to, ktoré schválila vaša organizácia.

Režim zlyhania, ktorý ľudia vytvárajú vypnutím kontrol, je trvalá strata druhej záruky výmenou za jedno úspešné stiahnutie. Táto výmena je neviditeľná až do dňa, keď na nej záleží.

Čo apt skutočne overuje

Model APT je reťaz overeného archívu. Podpísané metadáta vydania vedú cez kontrolný súčet k indexom balíkov a tieto indexy vedú cez kontrolný súčet k jednotlivým súborom balíkov. Práve overenie reťaze robí zrkadlo nedôveryhodným, ale použiteľným: zrkadlo môže poslúžiť čokoľvek chce a podpis metadát rozhoduje, či to APT prijme.

To zámerne nie je to isté ako kontrola podpisu správcu na každom nainštalovanom balíku, a tento rozdiel vysvetľuje, prečo sa v hláseniach chýb „balík je podpísaný“ a „archív je overený“ používajú zameniteľne, hoci znamenajú rôzne veci.

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

Čítajte výstup aktualizácie, nielen návratový kód. APT pomenuje úložisko, ktorého metadáta zlyhali, a to meno je hranica na vyšetrenie. Úložisko označené ako dôveryhodné bez overenia podpisu alebo prepis pre nezabezpečené úložisko je konfiguračné rozhodnutie, ktoré niekto urobil a mal by ho vedieť vysvetliť.

Čerstvosť je opäť samostatná vlastnosť. Platne podpísaný súbor metadát môže byť starší než ten, ktorý ste videli minulý týždeň, preto metadáta vydania nesú expiráciu a preto problém s hodinami na klientovi môže spôsobiť chyby overenia, ktoré vyzerajú ako problémy s kľúčom.

Čo dnf5 kontroluje oddelene

Strana RPM ponúka dva odlišné prepínače a ich zámena dáva rovnakú triedu chyby v opačnom smere. Jeden riadi, či súbory balíkov musia niesť platný podpis; druhý, či metadáta úložiska musia byť podpísané. Dajú sa nastaviť nezávisle a systém môže byť prísny v jednom a benevolentný v druhom.

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

Dotaz na balík ukazuje, ako vyzerajú metadáta podpisu nainštalovanej kópie, čo je užitočná kontrola reality voči konfiguračnému súboru, ktorý tvrdí prísnosť. Čo vám nepovie, je podporovaná politika distribúcie, a práve tú by ste mali nasledovať namiesto všeobecného pokynu „zapnite GPG“ z fóra.

Kde sa obaja správcovia líšia, je rozdiel architektonický, nie znak toho, že jeden je slabší. Obaja overujú obsah vydavateľa; podpis umiestňujú na rôzne miesta reťaze.

Čo tunel pridáva a čo nie

VPN môže zabezpečiť požadovanú trasu, udržať prevádzku aktualizácií mimo nedôveryhodnej prístupovej siete a znížiť to, čo vidí miestny pozorovateľ. To sú skutočné prevádzkové výhody a žiadna z nich nie je overením vydavateľa.

HTTPS pridáva vlastnú záruku a tá je užšia, než sa zdá. Overuje koncový bod TLS, ku ktorému ste sa pripojili. Ak je tým koncovým bodom zrkadlo, overili ste zrkadlo, nie obsah archívu, ktorý poskytuje. To je presne prípad, pre ktorý reťaz podpísaných metadát existuje.

Ani jedna kontrola nesľubuje dostupnosť. Sieť môže odmietnuť doručenie a overený objekt nie je automaticky najnovší. Používajte vlastnú politiku čerstvosti správcu balíkov, namiesto toho, aby ste ju odvodzovali z prítomnosti ikony zámku.

Diagnostikujte hranicu, ktorá zlyhala

Pomenujte fázu, než čokoľvek zmeníte: preklad DNS, proxy alebo trasu, identitu koncového bodu TLS, overenie archívu, kontroly podpisu balíkov alebo inštaláciu. Každá má odlišný tvar chyby a odlišného vlastníka.

Oprava sieťovej cesty by nikdy nemala zahŕňať vyhlásenie neznámeho podpisového kľúča za dôveryhodný, ignorovanie certifikátov alebo prijatie konfigurácie úložiska, o ktorú ste nežiadali. Ak sa kľúč skutočne vymenil, distribúcia alebo vlastník úložiska zverejní nový kľúč kanálom, ktorý môžete overiť, a to je oprava, ktorú treba použiť.

Zapíšte, ktorá hranica zlyhala a kto ju vlastní. Ďalšie zlyhanie aktualizácie bude na inej hranici a mať zoznam z neho robí diagnózu na päť minút namiesto ďalšieho sporu o tom, či tunel robí aktualizácie bezpečnými.

Súvisiace články