Klient VPN me kod të hapur: çfarë provon kodi dhe çfarë nuk mundet
Një depo publike është provë për kodin burimor, jo për ndërtimin që instaloni ose për serverat pas tij. Përputhni lëshimin dhe pastaj zgjeroni shqyrtimin.
Kodi burimor është publikuar, licenca është e pastër, dhe lidhja ende nuk mund të verifikohet nga fillimi në fund. Ky hendek është i zakonshëm dhe nuk është skandal. Publikimi i kodit e bën një komponent të inspektueshëm nga njerëz që nuk u ftuan, dhe kjo është një veti reale dhe e pazakontë. Nga kjo nuk rrjedh që binari që instaloni vjen nga ai kod, as që çdo gjë që ofruesi drejton në anën tjetër është shqyrtuar fare.
Ndani komponentin nga produkti
Katër gjëra mund të mbajnë etiketën e kodit të hapur, dhe rrallë janë të gjitha të hapura. Aplikacioni klient është ai që njerëzit nënkuptojnë. Implementimi i protokollit poshtë tij është një artefakt tjetër, ndonjëherë bibliotekë dhe ndonjëherë kod brenda pemës. Programi i serverit është i treti, dhe infrastruktura e vetë ofruesit, portali i llogarisë dhe mjetet e mbështetjes janë i katërti. Secili mund të jetë i hapur ose i mbyllur në mënyrë të pavarur.
Prandaj deklarata si "aplikacioni ynë është me kod të hapur" përshkruajnë artikullin e parë dhe lënë pjesën tjetër pa përgjigje, çka nuk është pandershmëri por më shumë një rrëshqitje kategorie. Pyetja e dobishme është cila depo, në cilën etiketë, korrespondon me komponentin ku mbështeteni.
Ky dallim shpjegon gjithashtu pse dy produkte me klientë të hapur identikë mund të ofrojnë garanci shumë të ndryshme. Klienti është pjesa që mund të kontrolloni; sjellja e operatorit është pjesa që duhet të vlerësoni me mjete të tjera.
Përputhni ndërtimin e instaluar me etiketën e publikuar
Një depo është një regjistrim i qëllimit; binari në diskun tuaj është ai që ekzekutohet. Mbyllja e këtij hendeku është një ushtrim mekanik, dhe fillon me identifikimin e saktë të asaj që është instaluar, jo të asaj që reklamoi faqja e shkarkimit.
| 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 |
Metadata e paketës ju tregon versionin dhe origjinën, çka përjashton rastin e thjeshtë të një pakete të vjetruar ose të zëvendësuar. Nuk ju tregon se si u kompilua ajo paketë, dhe pikërisht kësaj pyetjeje i përgjigjen ndërtimet e riprodhueshme. Ndërtime të riprodhueshme i lejojnë një pale të pavarur të rindërtojë nga i njëjti burim dhe të krahasojë daljen bajt pas bajti, kështu që mospërputhja bëhet provë dhe jo dyshim.
Edhe një përputhje e përsosur provon më pak nga sa shpresojnë njerëzit. Ajo tregon se artefakti korrespondon me burimin dhe recetën e ndërtimit, jo se burimi është pa defekte dhe jo se zinxhiri i mjeteve i përdorur ishte i besueshëm. Të dyja ia vlen t'i dish, por janë pohime të ndryshme.
dpkg -S /usr/bin/wg
apt-cache policy wireguard-tools
sha256sum /usr/bin/wgKu zakonisht fillon një simptomë
Ankesa që nxit këtë lexim rrallë është "kodi është i mbyllur". Zakonisht është një vëzhgim konkret: një klient që telefonon diku të papritur, një version që ndryshon nga shënimet e lëshimit, ose një proces mbështetjeje që kërkon më shumë nga sa tuneli duhet të ketë nevojë. Secila prej këtyre pikave tregon një komponent tjetër.
Trafiku i papritur i rrjetit nga klienti është çështje e kodit burimor të klientit, dhe mund të përgjigjet duke lexuar rrugën e kodit që hap lidhjen. Mospërputhja e versionit është çështje paketimi. Një proces mbështetjeje që kërkon dokumente identiteti është çështje e sistemit të llogarive, dhe asnjë auditim klienti nuk do ta zgjidhë.
Emërtimi i komponentit e kthen një mosbesim të paqartë në një kontroll konkret. Një kontrolli konkret mund t'i përgjigjesh, të debatosh ose ta mbyllësh. Alternativa është një dyshim i përhershëm pa hap tjetër.
Çfarë nuk arrin dot shqyrtimi, dhe çfarë të bëhet në vend të tij
Ruajtja në serverat e ofruesit është jashtë shtrirjes së klientit. E njëjta gjë vlen për sjelljen e një portali faturimi, të një furnizuesi për kontroll mashtrimi ose të një tavoline mbështetjeje që mban bashkëngjitje. Një shqyrtim klienti i shtrirë deri në "audituam shërbimin" bën një pohim që provat nuk e mbështesin.
Lexoni çfarë publikon operatori për ruajtjen dhe kërkesat, shënoni datën, dhe trajtojeni si deklaratë të një pale të interesuar dhe jo si matje. Kjo është një formë më e dobët prove, dhe të jesh i qartë për dallimin është më e dobishme sesa ta ngresh atë kur e ritregon.
Pastaj përdorni atë që keni si një nga disa hyrje: identitetin e lëshimit të instaluar, nëse programi mbahet, si është konfiguruar klienti dhe çfarë thotë operatori për sistemet e veta. Kodi i hapur e forcon atë vlerësim në një pikë. Nuk e zëvendëson pjesën tjetër.
Një pohim auditimi duhet gjithmonë të emërojë komponentët dhe versionet e tij. Nëse një raport nuk mund të thotë cilën depo dhe cilin ndërtim shqyrtoi, ai përshkruan një qëllim dhe jo një produkt.