Šaltinis paskelbtas, licencija švari, o ryšio vis tiek negalima patikrinti nuo galo iki galo. Šis atotrūkis yra įprastas ir tai ne skandalas. Kodo paskelbimas leidžia vieną komponentą patikrinti žmonėms, kurie nebuvo pakviesti, ir tai yra tikra bei neįprasta savybė. Iš to neišplaukia, kad jūsų įdiegtas dvejetainis failas kilęs iš to kodo, ar kad tai, ką paslaugų teikėjas vykdo kitoje pusėje, apskritai buvo peržiūrėta.

Atskirkite komponentą nuo produkto

Keturi dalykai gali nešti atvirojo kodo žymą, ir retai visi jie yra atviri. Kliento programa yra tai, ką žmonės turi omenyje. Žemiau esantis protokolo įgyvendinimas yra kitas artefaktas, kartais biblioteka, o kartais kodas medyje. Serverio programinė įranga yra trečia, o paties teikėjo infrastruktūra, paskyros portalas ir palaikymo įrankiai yra ketvirta. Kiekvienas jų gali būti atviras arba uždaras nepriklausomai.

Todėl teiginiai kaip "mūsų programėlė yra atvirojo kodo" apibūdina pirmą elementą ir palieka kitus neatsakytus, o tai ne nesąžiningumas, o greičiau kategorijos slydimas. Naudingas klausimas yra, kuri saugykla, prie kurios žymos, atitinka komponentą, kuriuo pasitikiate.

Šis skirtumas taip pat paaiškina, kodėl du produktai su identiškais atvirais klientais gali siūlyti labai skirtingas garantijas. Klientas yra dalis, kurią galite patikrinti; operatoriaus elgsena yra dalis, kurią turite vertinti kitomis priemonėmis.

Suderinkite įdiegtą kompiliaciją su paskelbta žyma

Saugykla yra ketinimo įrašas; dvejetainis failas jūsų diske yra tai, kas vykdoma. Užpildyti šį atotrūkį yra mechaninis pratimas, ir jis prasideda nuo tikslaus nustatymo, kas įdiegta, o ne ką reklamavo atsisiuntimo puslapis.

ComponentWhat inspection can showWhat it leaves untouched
Client sourceHow profiles, packets and optional telemetry are handledWhether the shipped binary matches that source
Build outputWhether a declared build reproduces a matching artefactWhether the source is correct or the toolchain is clean
Server softwareWhat the implementation is capable of loggingWhat the operator actually configures and retains
Account and support systemsAlmost nothing, unless they are separately publishedEverything about how those systems treat your data

Paketo metaduomenys nurodo versiją ir kilmę, o tai pašalina paprastą pasenusio ar pakeisto paketo atvejį. Jie nenurodo, kaip tas paketas buvo sukompiliuotas, ir būtent į šį klausimą atsako atkuriamosios kompiliacijos. Atkuriamosios kompiliacijos leidžia nepriklausomai šaliai perkompiliuoti iš to paties šaltinio ir palyginti rezultatą baitas po baito, todėl neatitikimas tampa įrodymu, o ne įtarimu.

Net tobulas sutapimas įrodo mažiau, nei žmonės tikisi. Jis parodo, kad artefaktas atitinka šaltinį ir kompiliavimo receptą, bet ne tai, kad šaltinis be trūkumų, ir ne tai, kad naudota įrankių grandinė buvo patikima. Abi žinios vertingos, bet tai skirtingi teiginiai.

dpkg -S /usr/bin/wg
apt-cache policy wireguard-tools
sha256sum /usr/bin/wg

Kur paprastai prasideda simptomas

Skundas, dėl kurio imamasi šio skaitymo, retai būna "kodas uždarytas". Paprastai tai konkretus pastebėjimas: klientas, kuris skambina kažkur netikėtai, versija, kuri skiriasi nuo leidimo pastabų, arba palaikymo procesas, kuris prašo daugiau, nei tuneliui reikėtų. Kiekvienas iš šių punktų rodo kitą komponentą.

Netikėtas tinklo srautas iš kliento yra kliento šaltinio kodo klausimas, ir į jį galima atsakyti perskaičius kodo kelią, kuris atveria ryšį. Versijų neatitikimas yra pakavimo klausimas. Palaikymo procesas, prašantis asmens dokumentų, yra paskyrų sistemos klausimas, ir joks kliento auditas to neišspręs.

Komponento įvardijimas paverčia neaiškų nepasitikėjimą konkrečiu patikrinimu. Į konkretų patikrinimą galima atsakyti, ginčytis ar jį uždaryti. Alternatyva yra nuolatinis įtarimas be kito žingsnio.

Ko peržiūra negali pasiekti, ir ką vietoj to daryti

Duomenų saugojimas teikėjo serveriuose yra už kliento ribų. Taip pat elgsena atsiskaitymo portalo, sukčiavimo tikrinimo paslaugų teikėjo ar palaikymo tarnybos, kuri saugo priedus. Kliento peržiūra, ištempta iki "mes atlikome paslaugos auditą", pateikia teiginį, kurio įrodymai nepalaiko.

Perskaitykite, ką operatorius skelbia apie saugojimą ir užklausas, pažymėkite datą ir traktuokite tai kaip suinteresuotos šalies pareiškimą, o ne matavimą. Tai silpnesnė įrodymų forma, ir aiškiai įvardyti skirtumą naudingiau nei pakelti jį perpasakojant.

Tada naudokite tai, ką turite, kaip vieną iš kelių įėjimų: įdiegto leidimo tapatybę, ar programinė įranga palaikoma, kaip sukonfigūruotas klientas ir ką operatorius sako apie savo sistemas. Atviras kodas sustiprina šį vertinimą viename taške. Jis nepakeičia likusios dalies.

Audito teiginys visada turėtų įvardyti savo komponentus ir versijas. Jei ataskaita negali pasakyti, kurią saugyklą ir kurią kompiliaciją ji ištyrė, ji apibūdina ketinimą, o ne produktą.

Susiję straipsniai