VPN:n APT-lähde: mitä se myöntää ja miten sitä rajataan
VPN:n APT-lähde on pysyvä lupa, ei lataus. Rajaa avain tuohon lähteeseen, lue tapahtuma ja kirjoita poistovaihe ennen kuin lisäät sen.
VPN-asiakkaan lataaminen on kertaluonteinen päätös; sen APT-varaston lisääminen ei ole. Jälkimmäinen kertoo paketinhallinnalle, mistä tuleva ohjelmisto voi tulla, ja se on pysyvä vallan siirto eikä lataus. Se voi olla oikea järjestely, kun toimittaja ylläpitää varastoa asianmukaisesti. Se ansaitsee silti tietoisen päätöksen, ja useimmat asennusohjeet ohittavat sen.
Allekirjoitus todentaa arkiston, ei sen koodia
APT tarkistaa allekirjoitetut varaston metatiedot ja luottaa sitten näiden metatietojen sisältämiin tarkistussummiin noutamiensa pakettien osalta. Se todistaa, että arkisto vastaa sitä, mitä avaimen haltija julkaisi, eikä mitään sen sisällä olevasta koodista. Asianmukaisesti allekirjoitettu paketti voi silti sisältää turvattomia ylläpitäjäskriptejä, ja ne skriptit ajetaan root-oikeuksin paketin asennuksen aikana. apt-secure-käsikirja vetää juuri tämän rajan arkiston todentamisen ja ohjelmiston tarkastamisen välille.
Hyödyllinen kysymys ei siis ole, validoituuko allekirjoitus, koska rikkinäinen allekirjoitus pysäyttää asennuksen joka tapauksessa. Kysymys on, kenen allekirjoitukseen valitset luottaa tästä eteenpäin. Varastettu allekirjoitusavain on pahempi kuin varastettu paketti, koska hyökkääjä tuottaa kelvollisia metatietoja vielä kauan ensimmäisen huonon julkaisun jälkeen. Vain avaimen vaihto korjaa tilanteen, ja se riippuu siitä, julkaiseeko toimittaja uuden avaimen kanavaa pitkin, jonka voit tarkistaa itsenäisesti.
Siksi avaimen identiteetti ansaitsee yhtä paljon huomiota kuin varaston URL-osoite. Vanhasta foorumivastauksesta otettu avain ei todista julkaisijasta mitään, kun taas HTTPS suojaa siirron sille, joka vastasi puhelimeen. Siirron turvallisuus ja julkaisijan identiteetti ovat erillisiä kysymyksiä, ja vain ensimmäisen ratkaisee sertifikaatti.
Rajaa avain lähteeseen, ei järjestelmään
Nykyaikainen APT hyväksyy lähdekohtaisen Signed-By-viittauksen. Ylläpitäjän hallitsema avain voi sijaita hakemistossa /etc/apt/keyrings/, ja lähdemerkintä nimeää avaimen, joka saa todentaa kyseisen arkiston. Tämä on kapeampi kuin saman avaimen heittäminen maailmanlaajuisesti luotettuun joukkoon, jossa se voi taata lähteitä, joita et koskaan halunnut sallia. Noudata asennettua APT-versiota ja toimittajan nykyisiä ohjeita sen sijaan, että sekoittaisit katkelmia eri sukupolvien oppaista.
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Älä koskaan korjaa allekirjoitusvirhettä kytkemällä tarkistusta pois tai merkitsemällä tuntematonta arkistoa luotetuksi. Se vaihtaa näkyvän virheen näkymättömään, ja näkymätön kestää, kunnes joku auditoi lähdeluettelon. Jos avain ei täsmää, oikea korjaus on löytää oikea avain, ei poistaa tarkistusta.
Hanki varaston tiedot ja avaimen identiteetti projektista tai hallinnoidulta ylläpitäjältä. Blogikirjoituksesta kopioitu avain on väite tekijyydestä, ei todiste siitä. Kun toimittaja julkaisee vaihtokanavan, kirjaa se yhdessä avaimen kanssa, sillä juuri se kanava mahdollistaa seuraavan vaihdon.
Lähteen kiinnitys ei ole pakettien sallittujen luettelo
Avaimen rajaaminen yhteen lähteeseen rajaa, minkä arkiston se voi todentaa, ei sitä, mitä paketteja kyseinen arkisto saa julkaista. Varasto voi toimittaa paljon muutakin kuin haluamasi VPN-asiakas, ja APT:n ehdokasvalinta ja prioriteetit päättävät, mikä kelvollinen versio voittaa. Tarkista ehdotettu tapahtuma ennen vahvistamista, myös riippuvuusluettelo, sillä riippuvuudet tulevat samasta arkistosta. Avaimen laajuus ei voi ilmaista ’vain tämä paketti’.
Jos tarvitset vahvempaa hallintaa, ilmaise se käytäntönä pakettien nimistä tai versioista ja pidä käytäntö konfiguraationhallinnassa. Tapahtuman lukeminen vie minuutin; odottamattoman paketin löytäminen kuusi kuukautta myöhemmin vie tarkastuksen.
Odottamattomat paketit ovat hetki pysähtyä eikä jatkaa, ja kysymys arkiston omistajalle on, miksi ne tarvitaan. Varasto, joka julkaisee tusinan paketteja yhden asiakkaan ympärille, on normaalia työpöytäpakettia toimittavalle toimittajalle. Se on myös suurempi pinta-ala kuin asennusohje antoi ymmärtää, ja juuri se osa kannattaa kirjata. Kumpikaan lopputulos ei ole syy epäillä allekirjoitusta; molemmat ovat syitä kirjoittaa muistiin, mitä hyväksyit.
Kirjaa valtuus ja miten se poistetaan
Kirjoita arkiston omistaja, tuettu käyttöjärjestelmäjulkaisu, avaimen vaihtokanava ja poistomenettely. Ne neljä tosiasiaa ovat se, mitä seuraaja tarvitsee, kun asiakas poistuu käytöstä tai toimittaja vaihtaa avaimensa. Ilman niitä seuraava henkilö perii lähderivin ja avaintiedoston ilman mitään tarinaa.
Poistaminen on vaihe, joka ohitetaan, joten kirjoita se asennuksen yhteydessä. Poista lähdemerkintä ja sen oma avain yhdessä ja tarkista ennen tiedoston poistamista, viitataanko kyseiseen avaimeen muualla. Ilman tätä tarkistusta poistettu jaettu avain muuttaa siivouksen asiattomaksi katkokseksi, mikä on rutiinimuutoksen huonoin lopputulos. Vahvista sitten, että tavalliset päivitykset ratkeavat edelleen, kun merkintä on poissa.
Yksi asia jää, kun varasto on poistettu: jokainen siitä jo asennettu paketti toimii edelleen, kunnes jokin korvaa sen. Rehellinen kysymys on, minkä valtuuden lisäsit ja miten kapeasti sen rooli ilmaistiin.