VPN-portaalin latauspainike palauttaa täsmälleen yhden tiedoston, ja tuo tiedosto voi olla kahta hyvin erilaista asiaa: toimittajan valmis asennusohjelma, jonka rinnalla kulkee konfiguraatioprofiili, tai organisaation itse kokoama koontiversio. Sivu näyttää samalta molemmissa tapauksissa, joten painike ei voi kertoa, kumpi sinulla on. Sen takana on kolme kysymystä — kuka julkaisi suoritettavan tiedoston, mitä konfiguraatiota asennus kirjoittaa ja kuka korjaa sen, kun seuraava asiakasjulkaisu saapuu. Ensimmäiseen vastaat artefaktin metatiedoista, toiseen paketin sisällöstä ja kolmanteen vain käyttöönoton omistavalta tiimiltä.

Selaimen lukko kattaa siirron, ei artefaktia.

Mitä latauspäätepiste todella palauttaa

Useimmat portaalit antavat latauspyynnön pienelle käsittelijälle, joka joko striimaa tallennetun tiedoston tai kokoaa tiedoston lennossa, ja asettaa sitten tiedostonimen ja sisältötyypin ennen kuin vastaus lähtee. Saapuva asia on säiliö: MSI, PKG, DEB tai RPM tai itsepurkautuva kääre jonkin niistä ympärillä. Sisällä on asiakkaan binääri, eikä mikään tiedostonimessä kerro luotettavasti, tuliko tämä binääri toimittajalta vai sisäisestä koontiputkesta. Tiedosto nimeltä client-setup.exe tallentaa nimeämispäätöksen, ei alkuperän tosiasiaa.

Vertaa ladatut tavut toimittajan julkaisemaan tarkistussummaan. Epäjohdonmukaisuus ei todista pahantahtoisuutta; se todistaa, ettei tiedosto ole toimittajan koontiversio, ja juuri se on ero, jonka vuoksi kannattaa toimia.

Missä profiili tulee asiakkaaseen

Esitäytetyt asetukset kulkevat yleensä erillisenä tiedostona, jonka asennusohjelma kopioi käyttäjä- tai konekohtaiseen polkuun: JSON- tai XML-profiili Windowsissa, konfiguraatioprofiili macOS:ssa, katkelma /etc Linuxissa. Tuon tiedoston arvot — yhdyskäytävän isäntänimet, luottamuksen ankkurit, joskus rekisteröintimateriaali — tulevat asiakkaan oletuksiksi ensimmäisellä käynnistyksellä. Siksi yksi lataus voi kantaa sekä salaisuuksia että koodia.

Kysy, mitä päivityspolku tekee profiilille. Paketointitavasta riippuen se voi selvitä asiakaspäivityksestä, tulla sen ylikirjoittamaksi tai epäonnistua skeeman validoinnissa uudessa versiossa.

Mitä allekirjoitusketju ei todista

Koodin allekirjoitus sitoo julkaisijan identiteetin tiedoston tiivisteeseen, ja Windowsissa Authenticoden aikaleima antaa allekirjoituksen elää pidempään kuin sen tehneen varmenteen. Kelvollinen tulos vastaa kahteen kysymykseen: mikä julkaisija allekirjoitti nämä tavut ja muuttuivatko ne jälkeenpäin. Se ei luettele asennusohjelman palveluita, rekisterikirjoituksia tai mukana tulevia ajureita eikä päätä, pitäisikö tuohon julkaisijaan luottaa täällä. Microsoftin Authenticode-dokumentaatio kuvaa mekanismin ja on eksplisiittinen tuosta kapeasta laajuudesta.

Portaalin autentikointi vastaa kolmanteen kysymykseen: että istunto saavutti aiotun palvelimen. Kolme erilaista tarkistusta, kolme erilaista epäonnistumistilaa.

Vahvista artefakti ennen kuin kukaan ajaa sen

Aseta tiedosto eristetylle koneelle ja lue sen metatiedot ennen minkään suorittamista. Nämä komennot vastaavat julkaisijakysymykseen kolmella valtavirran alustalla.

# Windows PowerShell
Get-AuthenticodeSignature .\client-setup.exe | Format-List Status, SignerCertificate, TimeStamperCertificate

# macOS
pkgutil --check-signature ./Client.pkg
codesign -dv --verbose=4 /Applications/Client.app

# Debian/Ubuntu
dpkg-deb -I ./client_amd64.deb
sha256sum ./client_amd64.deb

Lue allekirjoittajan subjekti pelkän tilasanan sijaan. Sisäinen varmentaja, joka allekirjoittaa sisäisen koontiversion, on odotettua; sama varmenne paketissa, joka väittää olevansa toimittajan julkaisu, ei ole.

Pelkän profiilin paketissa avaa arkisto ja kohtele jokaista upotettua isäntänimeä ja avainta tietona, joka on otettava huomioon. Jos profiili sisältää jotain uudelleenkäytettävää, portaalijakelu muuttaa sen jaetuksi salaisuudeksi, jolla on käyttöönottoaikataulu.

Omistajuuden vahvistaminen ennen käyttöönottoa

Viimeisen kysymyksen takana ei ole komentoa. Selvitä, kuka päivittää artefaktin, kun toimittaja lähettää uuden asiakkaan, kenellä on sisäisen koontiversion allekirjoitusavain ja miten profiili kierrätetään, kun päätepiste siirtyy. Kirjoita nimet latauslinkin viereen.

Jos kukaan ei omista tuota vastausta, lataus on jakelukanava ilman ylläpitosopimusta, ja se on havainto, joka kannattaa raportoida.

Aiheeseen liittyvät artikkelit