Zdrojový kód je zveřejněn, licence je čistá a spojení stejně nelze ověřit od konce ke konci. Tahle mezera je běžná a není to skandál. Zveřejnění kódu činí jednu komponentu přezkoumatelnou lidmi, kteří nebyli pozváni, a to je skutečná a neobvyklá vlastnost. Z toho nevyplývá, že binárka, kterou jste nainstalovali, pochází z toho kódu, ani že cokoli, co poskytovatel provozuje na druhé straně, bylo vůbec zkontrolováno.

Oddělte komponentu od produktu

Označení otevřený kód mohou nést čtyři věci a málokdy jsou otevřené všechny. Klientská aplikace je ta, kterou lidé míní. Implementace protokolu pod ní je jiný artefakt, někdy knihovna a někdy kód ve stromu. Serverový software je třetí a vlastní infrastruktura poskytovatele, portál účtu a nástroje podpory jsou čtvrté. Každá může být otevřená nebo zavřená nezávisle.

Proto výroky jako „naše aplikace je s otevřeným kódem“ popisují první položku a zbytek nechávají bez odpovědi, což není nepoctivost, ale spíš posun kategorie. Užitečná otázka zní, který repozitář a na které značce odpovídá komponentě, na kterou se spoléháte.

Tento rozdíl také vysvětluje, proč dva produkty s totožnými otevřenými klienty mohou nabízet velmi odlišné záruky. Klient je část, kterou můžete zkontrolovat; chování provozovatele je část, kterou musíte posoudit jinými prostředky.

Spárujte nainstalované sestavení se zveřejněnou značkou

Repozitář je záznam záměru; binárka na vašem disku je to, co běží. Uzavřít tuto mezeru je mechanické cvičení a začíná zjištěním, co je přesně nainstalováno, nikoli tím, co inzerovala stránka ke stažení.

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

Metadata balíčku vám řeknou verzi a původ, což vylučuje triviální případ zastaralého nebo nahrazeného balíčku. Neřeknou vám, jak byl balíček zkompilován, a právě na tuto otázku existují reprodukovatelná sestavení. Reprodukovatelná sestavení umožňují nezávislé straně sestavit znovu ze stejného zdroje a porovnat výstup bajt po bajtu, takže neshoda se stane důkazem, nikoli podezřením.

I dokonalá shoda dokazuje méně, než lidé doufají. Ukazuje, že artefakt odpovídá zdroji a receptu sestavení, ne že je zdroj bez vad a ne že použitý nástrojový řetězec byl důvěryhodný. Obé stojí za to vědět, ale jsou to různá tvrzení.

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

Kde obvykle začíná symptom

Stížnost, která vede k tomuto čtení, zřídka zní „kód je zavřený“. Obvykle jde o konkrétní pozorování: klient, který volá někam nečekaně, verze, která se liší od poznámek k vydání, nebo proces podpory, který žádá víc, než by tunel měl potřebovat. Každý z těchto bodů ukazuje na jinou komponentu.

Neočekávaný síťový provoz z klienta je otázka klientského zdrojového kódu a lze ji zodpovědět čtením kódové cesty, která spojení otevírá. Neshoda verze je otázka balení. Proces podpory, který žádá doklady totožnosti, je otázka systému účtů a žádný audit klienta to nevyřeší.

Pojmenování komponenty mění mlhavou nedůvěru v konkrétní kontrolu. Na konkrétní kontrolu lze odpovědět, hádat se s ní nebo ji uzavřít. Alternativou je trvalé podezření bez dalšího kroku.

Kam kontrola nedosáhne a co místo toho dělat

Uchovávání na serverech poskytovatele je mimo dosah klienta. Stejně tak chování fakturačního portálu, dodavatele pro kontrolu podvodů nebo podpůrné linky, která ukládá přílohy. Kontrola klienta roztažená na „provedli jsme audit služby“ činí tvrzení, které důkazy nepodporují.

Přečtěte si, co provozovatel zveřejňuje o uchovávání a žádostech, poznamenejte datum a berte to jako prohlášení zainteresované strany, nikoli jako měření. To je slabší forma důkazu a výslovné pojmenování rozdílu je užitečnější než jeho povýšení při převyprávění.

Pak použijte to, co máte, jako jeden z několika vstupů: identitu nainstalovaného vydání, zda je software udržován, jak je klient nakonfigurován a co provozovatel říká o svých vlastních systémech. Otevřený kód toto hodnocení posiluje v jednom bodě. Nenahrazuje zbytek.

Tvrzení o auditu by mělo vždy pojmenovat své komponenty a verze. Pokud zpráva nedokáže říci, který repozitář a které sestavení zkoumala, popisuje záměr, nikoli produkt.

Související články