Odjemalec VPN z odprto kodo: kaj koda dokazuje in česa ne
Javni repozitorij je dokaz o izvorni kodi, ne o gradnji, ki ste jo namestili, ali o strežnikih za njo. Ujemite izdajo in nato razširite pregled.
Izvorna koda je objavljena, licenca je čista, povezave pa še vedno ni mogoče preveriti od začetka do konca. Ta vrzel je običajna in ni škandal. Objava kode naredi eno komponento pregledno ljudem, ki niso bili povabljeni, in to je resnična ter nenavadna lastnost. Iz tega ne sledi, da nameščena binarna datoteka izvira iz te kode, niti da je bilo karkoli, kar ponudnik poganja na drugi strani, sploh pregledano.
Ločite komponento od izdelka
Štiri stvari lahko nosijo oznako odprte kode in redko so vse odprte. Odjemalska aplikacija je tisto, kar ljudje mislijo. Izvedba protokola pod njo je drug artefakt, včasih knjižnica in včasih koda v drevesu. Strežniška programska oprema je tretja, ponudnikova lastna infrastruktura, portal za račune in orodja za podporo pa četrta. Vsaka je lahko odprta ali zaprta neodvisno.
Zato izjave, kot je "naša aplikacija je odprtokodna", opisujejo prvo postavko, ostalo pa pustijo brez odgovora, kar ni nepoštenost, ampak prej zdrs kategorije. Koristno vprašanje je, kateri repozitorij, na kateri oznaki, ustreza komponenti, na katero se zanašate.
Ta razlika pojasnjuje tudi, zakaj lahko dva izdelka z enakimi odprtimi odjemalci ponujata zelo različna zagotovila. Odjemalec je del, ki ga lahko preverite; vedenje operaterja je del, ki ga morate oceniti z drugimi sredstvi.
Ujemite nameščeno gradnjo z objavljeno oznako
Repozitorij je zapis namere; binarna datoteka na vašem disku je tisto, kar se izvaja. Zapreti to vrzel je mehanska vaja in se začne z ugotavljanjem, kaj je natančno nameščeno, ne s tem, kar je oglaševala stran za prenos.
| 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 |
Metapodatki paketa povedo različico in izvor, kar izključuje preprost primer zastarelega ali zamenjanega paketa. Ne povedo, kako je bil paket preveden, in prav na to vprašanje odgovarjajo ponovljive gradnje. Ponovljive gradnje omogočajo neodvisni strani, da znova zgradi iz istega vira in primerja izhod bajt za bajtom, tako da neskladje postane dokaz in ne sum.
Tudi popolno ujemanje dokaže manj, kot ljudje upajo. Pokaže, da artefakt ustreza viru in receptu gradnje, ne pa da je vir brez napak in ne da je bila uporabljena orodjarna verodostojna. Oboje je vredno vedeti, a to so različne trditve.
dpkg -S /usr/bin/wg
apt-cache policy wireguard-tools
sha256sum /usr/bin/wgKje se običajno začne simptom
Pritožba, ki sproži to branje, je redko "koda je zaprta". Običajno je konkretno opažanje: odjemalec, ki kliče nekam nepričakovano, različica, ki se razlikuje od opomb ob izdaji, ali proces podpore, ki zahteva več, kot bi tunel moral potrebovati. Vsaka od teh točk kaže na drugo komponento.
Nepričakovan omrežni promet odjemalca je vprašanje izvorne kode odjemalca in nanj je mogoče odgovoriti z branjem kodne poti, ki odpre povezavo. Neskladje različic je vprašanje pakiranja. Proces podpore, ki zahteva osebne dokumente, je vprašanje sistema računov in noben pregled odjemalca tega ne bo rešil.
Poimenovanje komponente spremeni nejasno nezaupanje v konkretno preverjanje. Na konkretno preverjanje je mogoče odgovoriti, se z njim prepirati ali ga zapreti. Alternativa je trajen sum brez naslednjega koraka.
Česa pregled ne more doseči in kaj storiti namesto tega
Hramba na ponudnikovih strežnikih je zunaj dosega odjemalca. Enako velja za vedenje obračunskega portala, ponudnika preverjanja goljufij ali podporne službe, ki hrani priloge. Pregled odjemalca, raztegnjen do "izvedli smo revizijo storitve", daje trditev, ki je dokazi ne podpirajo.
Preberite, kaj operater objavlja o hrambi in zahtevah, zapišite datum in to obravnavajte kot izjavo zainteresirane strani, ne kot meritev. To je šibkejša oblika dokaza, in izrecno povedati razliko je bolj koristno kot jo pri pripovedovanju povišati.
Nato uporabite, kar imate, kot enega od več vhodov: identiteto nameščene izdaje, ali se programska oprema vzdržuje, kako je odjemalec konfiguriran in kaj operater pravi o svojih sistemih. Odprta koda to oceno okrepi na eni točki. Ne nadomesti preostanka.
Trditev o reviziji bi morala vedno navesti svoje komponente in različice. Če poročilo ne more povedati, kateri repozitorij in katero gradnjo je pregledalo, opisuje namero in ne izdelka.