VPN klijent otvorenog koda: što kod dokazuje, a što ne može
Javni repozitorij dokaz je o izvornom kodu, ne o build-u koji ste instalirali ni o poslužiteljima iza njega. Uparite izdanje, pa proširite pregled.
Izvorni je kod objavljen, licenca je čista, a veza se i dalje ne može provjeriti od početka do kraja. Taj je jaz uobičajen i nije skandal. Objavljivanje koda čini jednu komponentu provjerljivom ljudima koji nisu bili pozvani, a to je stvarno i neobično svojstvo. Iz toga ne slijedi da binarna datoteka koju ste instalirali dolazi iz tog koda, ni da je ikakva provjera napravljena na onome što pružatelj pokreće na drugoj strani.
Odvojite komponentu od proizvoda
Četiri stvari mogu nositi oznaku otvorenog koda i rijetko su sve otvorene. Klijentska je aplikacija ono što ljudi misle. Implementacija protokola ispod nje drugi je artefakt, ponekad biblioteka, a ponekad kod u stablu. Serverski softver treći je, a pružateljeva vlastita infrastruktura, portal za račune i alati za podršku četvrti. Svaki može biti otvoren ili zatvoren neovisno.
Zato tvrdnje poput "naša aplikacija je otvorenog koda" opisuju prvu stavku i ostavljaju ostalo bez odgovora, što nije neiskrenost koliko zamjena kategorije. Korisno je pitanje koji repozitorij, na kojoj oznaci, odgovara komponenti na koju se oslanjate.
Ta razlika objašnjava i zašto dva proizvoda s identičnim otvorenim klijentima mogu nuditi vrlo različita jamstva. Klijent je dio koji možete provjeriti; ponašanje operatora dio je koji morate procijeniti drugim sredstvima.
Uparite instalirani build s objavljenom oznakom
Repozitorij je zapis namjere; binarna datoteka na vašem disku ono je što se izvršava. Zatvaranje tog jaza mehanička je vježba i počinje utvrđivanjem što je točno instalirano, a ne što je stranica za preuzimanje reklamirala.
| Component | What inspection can show | What it leaves untouched |
|---|---|---|
| Client source | How profiles, packets and optional telemetry are handled | Whether the shipped binary matches that source |
| Build output | Whether a declared build reproduces a matching artefact | Whether the source is correct or the toolchain is clean |
| Server software | What the implementation is capable of logging | What the operator actually configures and retains |
| Account and support systems | Almost nothing, unless they are separately published | Everything about how those systems treat your data |
Metapodaci paketa govore vam verziju i podrijetlo, što isključuje jednostavan slučaj zastarjelog ili zamijenjenog paketa. Ne govore vam kako je taj paket kompajliran, a upravo na to pitanje postoje reproducibilni buildovi. Reproducibilni buildovi omogućuju neovisnoj strani da ponovno izgradi iz istog izvora i usporedi rezultat bajt po bajt, pa nesklad postaje dokaz, a ne sumnja.
Čak i savršeno podudaranje dokazuje manje nego što ljudi priželjkuju. Ono pokazuje da artefakt odgovara izvoru i receptu za build, ali ne da je izvor bez nedostataka, niti da je korišteni lanac alata bio pouzdan. Oboje vrijedi znati, ali to su različite tvrdnje.
dpkg -S /usr/bin/wg
apt-cache policy wireguard-tools
sha256sum /usr/bin/wgGdje simptom obično počinje
Pritužba koja pokreće ovo čitanje rijetko je "kod je zatvoren". Obično je to konkretno zapažanje: klijent koji zove negdje neočekivano, verzija koja se razlikuje od bilješki o izdanju, ili proces podrške koji traži više nego što tunelu treba. Svaka od tih točaka upućuje na drugu komponentu.
Neočekivani mrežni promet s klijenta pitanje je klijentskog izvora i na njega se može odgovoriti čitanjem putanje koda koja otvara vezu. Nesklad verzija pitanje je pakiranja. Proces podrške koji traži identifikacijske dokumente pitanje je sustava računa i nijedan klijentski audit to neće riješiti.
Imenovanje komponente pretvara nejasno nepovjerenje u konkretnu provjeru. Na konkretnu se provjeru može odgovoriti, s njom raspravljati ili je zatvoriti. Alternativa je trajna sumnja bez sljedećeg koraka.
Što pregled ne može dosegnuti i što umjesto toga učiniti
Čuvanje na poslužiteljima pružatelja izvan je dosega klijenta. Isto vrijedi za ponašanje portala za naplatu, dobavljača za provjeru prijevara ili podrške koja čuva privitke. Pregled klijenta koji se rastegne na "auditirali smo uslugu" daje tvrdnju koju dokazi ne podupiru.
Pročitajte što operator objavljuje o čuvanju i zahtjevima, zabilježite datum i tretirajte to kao izjavu zainteresirane strane, a ne kao mjerenje. To je slabiji oblik dokaza, a izričitost o razlici korisnija je od podizanja mu vrijednosti u prepričavanju.
Zatim iskoristite ono što imate kao jedan od nekoliko ulaza: identitet instaliranog izdanja, održava li se softver, kako je klijent konfiguriran i što operator govori o vlastitim sustavima. Otvoreni kod jača tu procjenu na jednom mjestu. On ne zamjenjuje ostatak.
Tvrdnja o auditu uvijek treba imenovati svoje komponente i verzije. Ako izvještaj ne može reći koji je repozitorij i koji build pregledao, on opisuje namjeru, a ne proizvod.