VPN klient s otvoreným kódom: čo kód dokazuje a čo nie
Verejný repozitár je dôkaz o zdrojovom kóde, nie o zostavení, ktoré ste nainštalovali, ani o serveroch za ním. Spárujte vydanie a potom rozšírte kontrolu.
Zdrojový kód je zverejnený, licencia je čistá a spojenie sa stále nedá overiť od konca do konca. Tá medzera je bežná a nie je to škandál. Zverejnenie kódu robí jednu komponentu preskúmateľnou ľuďmi, ktorí neboli pozvaní, a to je skutočná a nezvyčajná vlastnosť. Z toho nevyplýva, že binárka, ktorú ste nainštalovali, pochádza z toho kódu, ani že čokoľvek, čo poskytovateľ prevádzkuje na druhej strane, bolo vôbec skontrolované.
Oddeľte komponentu od produktu
Označenie otvorený kód môžu niesť štyri veci a málokedy sú otvorené všetky. Klientska aplikácia je to, čo ľudia mienia. Implementácia protokolu pod ňou je iný artefakt, niekedy knižnica a niekedy kód v strome. Serverový softvér je tretí a vlastná infraštruktúra poskytovateľa, portál účtu a nástroje podpory sú štvrté. Každá môže byť otvorená alebo zatvorená nezávisle.
Preto výroky ako „naša aplikácia je s otvoreným kódom“ opisujú prvú položku a zvyšok nechávajú bez odpovede, čo nie je nečestnosť, ale skôr posun kategórie. Užitočná otázka znie, ktorý repozitár a na ktorej značke zodpovedá komponente, na ktorú sa spoliehate.
Tento rozdiel tiež vysvetľuje, prečo dva produkty s totožnými otvorenými klientmi môžu ponúkať veľmi odlišné záruky. Klient je časť, ktorú môžete skontrolovať; správanie prevádzkovateľa je časť, ktorú musíte posúdiť inými prostriedkami.
Spárujte nainštalované zostavenie so zverejnenou značkou
Repozitár je záznam zámeru; binárka na vašom disku je to, čo beží. Uzavrieť tú medzeru je mechanické cvičenie a začína zistením, čo je presne nainštalované, nie tým, čo inzerovala stránka na stiahnutie.
| 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 |
Metadáta balíka vám povedia verziu a pôvod, čo vylučuje triviálny prípad zastaraného alebo nahradeného balíka. Nepovedia vám, ako bol balík skompilovaný, a práve na túto otázku existujú reprodukovateľné zostavenia. Reprodukovateľné zostavenia umožňujú nezávislej strane zostaviť znova z toho istého zdroja a porovnať výstup bajt po bajte, takže nezhoda sa stane dôkazom, nie podozrením.
Aj dokonalá zhoda dokazuje menej, než ľudia dúfajú. Ukazuje, že artefakt zodpovedá zdroju a receptu zostavenia, nie že zdroj je bez chýb a nie že použitá reťaz nástrojov bola dôveryhodná. Oboje stojí za to vedieť, ale sú to rôzne tvrdenia.
dpkg -S /usr/bin/wg
apt-cache policy wireguard-tools
sha256sum /usr/bin/wgKde zvyčajne začína príznak
Sťažnosť, ktorá vedie k tomuto čítaniu, zriedka znie „kód je zatvorený“. Zvyčajne ide o konkrétne pozorovanie: klient, ktorý volá niekam nečakane, verzia odlišná od poznámok k vydaniu, alebo proces podpory, ktorý žiada viac, než by tunel mal potrebovať. Každý z týchto bodov ukazuje na inú komponentu.
Neočakávaná sieťová prevádzka z klienta je otázka klientskeho zdrojového kódu a dá sa zodpovedať čítaním kódovej cesty, ktorá otvára spojenie. Nezhoda verzií je otázka balenia. Proces podpory, ktorý žiada doklady totožnosti, je otázka systému účtov a žiadny audit klienta to nevyrieši.
Pomenovanie komponenty mení hmlistú nedôveru na konkrétnu kontrolu. Na konkrétnu kontrolu sa dá odpovedať, hádať sa s ňou alebo ju uzavrieť. Alternatívou je trvalé podozrenie bez ďalšieho kroku.
Kam kontrola nedosiahne a čo namiesto toho robiť
Uchovávanie na serveroch poskytovateľa je mimo dosahu klienta. Rovnako správanie fakturačného portálu, dodávateľa kontroly podvodov alebo podporného centra, ktoré ukladá prílohy. Kontrola klienta natiahnutá na „vykonali sme audit služby“ robí tvrdenie, ktoré dôkazy nepodporujú.
Prečítajte si, čo prevádzkovateľ zverejňuje o uchovávaní a žiadostiach, poznamenajte dátum a berte to ako vyhlásenie zainteresovanej strany, nie ako meranie. Je to slabšia forma dôkazu a výslovné pomenovanie rozdielu je užitočnejšie než jeho povýšenie pri prerozprávaní.
Potom použite to, čo máte, ako jeden z viacerých vstupov: identitu nainštalovaného vydania, či je softvér udržiavaný, ako je klient nakonfigurovaný a čo prevádzkovateľ hovorí o svojich vlastných systémoch. Otvorený kód toto hodnotenie posilňuje v jednom bode. Nenahrádza zvyšok.
Tvrdenie o audite by malo vždy pomenovať svoje komponenty a verzie. Ak správa nedokáže povedať, ktorý repozitár a ktoré zostavenie skúmala, opisuje zámer, nie produkt.