HTTPS ir VPN neautentifikuoja jūsų diegiamo paketo
Šifruotas pristatymas saugo kelią, o ne leidėją. Palyginkite, ką iš tikrųjų tikrina apt ir dnf5, o tada išsiaiškinkite, kuri riba nepavyko, prieš liesdami raktus.
Atnaujinimas nepavyksta, o siūlymas gijoje eina pažįstama linija: srautas eina per VPN, tad atsisiuntimas turi būti patikimas, ir parašo patikra sušvelninama, kad apeitumėte klaidą. Dvi atskiros idėjos buvo sulietos į vieną sakinį. Šifravimas saugo kelią tarp galinių taškų; autentifikavimas nusprendžia, ar baitai atėjo iš leidėjo, kurį turėjote omenyje. Tunelis suteikia pirmąjį ir nieko nesako apie antrąjį.
Simptomas paprastai yra patikros klaida viename hoste, vienoje saugykloje, o visa kita atnaujinama normaliai. Ši forma jau sako, kad tinklo kelias veikia ir kad nesutarimas yra dėl pasitikėjimo.
Dvi kontrolės, atsakančios į skirtingus klausimus
Transporto saugumas atsako, kas yra kitame šio ryšio gale ir ar kas nors kelyje gali jį skaityti ar keisti. Paketo autentifikavimas atsako, ar šį artefaktą paskelbė jūsų sukonfigūruota institucija, ir jis turi atlaikyti atsisiuntimą per veidrodį, kurio nekontroliuojate.
Šie klausimai persidengia tik kraštuose. Teisingas sertifikatas veidrodyje įrodo, kad veidrodis yra veidrodis; jis neįrodo, kad veidrodis laiko nepakeistą leidėjo turinį. Pasirašytas paketas įrodo, kad leidėjas jį pasirašė; jis nepasako, kad tinklas pristatė naujausią versiją arba kad jūsų nurodyta saugykla yra ta, kurią patvirtino jūsų organizacija.
Nesėkmės režimas, kurį žmonės sukuria išjungdami patikras, yra nuolatinis antrosios garantijos praradimas mainais į vieną sėkmingą atsisiuntimą. Šis mainas nematomas iki dienos, kai jis tampa svarbus.
Ką apt iš tikrųjų autentifikuoja
APT modelis yra autentifikuota archyvo grandinė. Pasirašyti leidimo metaduomenys per kontrolinę sumą veda prie paketų indeksų, o tie indeksai per kontrolinę sumą veda prie atskirų paketų failų. Būtent grandinės patikra daro veidrodį nepatikimu, bet naudojamu: veidrodis gali tiekti ką nori, o metaduomenų parašas nusprendžia, ar APT tai priims.
Tai sąmoningai nėra tas pats, kas tikrinti prižiūrėtojo parašą kiekviename įdiegtame pakete, ir šis skirtumas paaiškina, kodėl klaidų ataskaitose „paketas pasirašytas“ ir „archyvas autentifikuotas“ vartojami pakaitomis, nors reiškia skirtingus dalykus.
apt-get update
apt-cache policy
apt-config dump | grep -iE 'AllowInsecure|AllowDowngrade'
Skaitykite atnaujinimo išvestį, o ne vien išėjimo kodą. APT įvardija saugyklą, kurios metaduomenys nepavyko, ir tas vardas yra tiriama riba. Saugykla, pažymėta kaip patikima be parašo patikros, arba nesaugios saugyklos perrašymas yra kažkieno priimtas konfigūracijos sprendimas, kurį jis turėtų mokėti paaiškinti.
Šviežumas vėl yra atskira savybė. Tinkamai pasirašytas metaduomenų failas gali būti senesnis už tą, kurį matėte praėjusią savaitę, todėl leidimo metaduomenys turi galiojimo pabaigą ir todėl kliento laikrodžio problema gali sukelti patikros klaidas, kurios atrodo kaip raktų problemos.
Ką dnf5 tikrina atskirai
RPM pusė pateikia du skirtingus jungiklius, ir jų sumaišymas sukuria tą pačią klaidų klasę priešinga kryptimi. Vienas kontroliuoja, ar paketų failai turi turėti galiojantį parašą; kitas – ar saugyklos metaduomenys turi būti pasirašyti. Juos galima nustatyti nepriklausomai, ir sistema gali būti griežta viename ir nuolaidi kitame.
dnf5 config-manager --dump 2>/dev/null | grep -iE 'gpgcheck|repo_gpgcheck'
rpm -q --qf '%{NAME} %{SIGPGP:pgpsig}\n' bash
Paketo užklausa parodo, kaip atrodo įdiegtos kopijos parašo metaduomenys, o tai yra naudinga realybės patikra prieš konfigūracijos failą, kuris teigia griežtumą. Ko ji nepasako, yra palaikoma platinimo politika, ir būtent ja reikėtų vadovautis, o ne bendru „įjunkite GPG“ nurodymu iš forumo.
Ten, kur du tvarkyklės skiriasi, skirtumas yra architektūrinis, o ne ženklas, kad viena silpnesnė. Abi autentifikuoja leidėjo turinį; jos deda parašą skirtinguose grandinės taškuose.
Ką tunelis prideda ir ko ne
VPN gali suteikti reikiamą maršrutą, laikyti atnaujinimų srautą už nepatikimo prieigos tinklo ir sumažinti tai, ką mato vietinis stebėtojas. Tai realūs operaciniai privalumai, ir nė vienas jų nėra leidėjo autentifikavimas.
HTTPS prideda savo garantiją, ir ji siauresnė, nei atrodo. Jis autentifikuoja TLS galinį tašką, prie kurio prisijungėte. Jei tas galinis taškas yra veidrodis, jūs autentifikavote veidrodį, o ne jo tiekiamą archyvo turinį. Tai būtent tas atvejis, kuriam egzistuoja pasirašytų metaduomenų grandinė.
Nė viena kontrolė nežada prieinamumo. Tinklas gali atsisakyti pristatyti, o autentifikuotas objektas nebūtinai yra naujausias. Naudokite paties paketų tvarkyklės šviežumo politiką, o ne spręskite iš spynos piktogramos buvimo.
Diagnozuokite ribą, kuri nepavyko
Įvardykite etapą prieš ką nors keisdami: DNS sprendimas, tarpinis serveris ar maršrutas, TLS galinio taško tapatybė, archyvo autentifikavimas, paketo parašo patikros ar diegimas. Kiekvienas turi skirtingą klaidos formą ir skirtingą savininką.
Tinklo kelio taisymas niekada neturėtų apimti nežinomo parašo rakto paskelbimo patikimu, sertifikatų ignoravimo ar jūsų neprašytos saugyklos konfigūracijos priėmimo. Jei raktas tikrai pasikeitė, platinimas ar saugyklos savininkas paskelbia naują raktą kanalu, kurį galite patikrinti, ir tai yra taisymas, kurį reikia taikyti.
Užsirašykite, kuri riba nepavyko ir kas už ją atsakingas. Kitas atnaujinimo nepavykimas bus prie kitos ribos, o sąrašo turėjimas paverčia jį penkių minučių diagnoze, o ne dar vienu ginču, ar tunelis padaro atnaujinimus saugius.