Iepenboarne-VPN-klant: wat de koade bewiist en wat net
In iepenbier bewarplak is bewiis oer boarnekoad, net oer de build dy't jo ynstallearre hawwe of oer de servers dêrefter. Koppelje de útjefte, en ferbreedzje dan de resinsje.
De boarne is publisearre, de lisinsje is skjin, en de ferbining kin noch hieltyd net fan begjin oant ein ferifiearre wurde. Dat gat is gewoan, en it is gjin skandaal. It publisearjen fan koade makket ien komponint ynspektearber foar minsken dy't net útnoege waarden, en dat is in echte en ûngewoane eigenskip. Dêr folget net út dat it binêre bestân dat jo ynstallearre hawwe út dy koade komt, of dat wat de oanbieder oan de oare kant draait hielendal neisjoen is.
Skied it komponint fan it produkt
Fjouwer dingen kinne it iepenboarne-label drage, en se binne selden allegear iepen. De kliïntapplikaasje is dejinge dy't minsken bedoele. De protokolymplemintaasje derûnder is in oar artefakt, soms in bibleteek en soms koade yn de beam. De serversoftware is de tredde, en de eigen ynfrastruktuer fan de oanbieder, it akkountportaal en de stipe-ark binne de fjirde. Elk kin ûnôfhinklik iepen of sletten wêze.
Utspraken lykas "ús app is iepenboarne" beskriuwe dêrom it earste item en litte de rest unbehannele, wat net ûnearlik is mar earder in kategoryglid. De nuttige fraach is hokker bewarplak, by hokker tag, oerienkomt mei it komponint dêr't jo op fertrouwe.
Dat ûnderskie ferklearret ek wêrom't twa produkten mei identike iepen kliïnten hiel ferskillende garânsjes biede kinne. De kliïnt is it diel dat jo kontrolearje kinne; it gedrach fan de operator is it diel dat jo op oare manieren beoardielje moatte.
Koppelje de ynstallearre build oan de publisearre tag
In bewarplak is in registraasje fan bedoeling; it binêre bestân op jo skiif is wat draait. It sluten fan dat gat is in meganyske oefening, en it begjint mei it krekt fêststellen wat ynstallearre is, ynstee fan wat de downloadside advertearre.
| 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 |
Pakketmetadata fertelle jo de ferzje en de oarsprong, wat it triviale gefal fan in ferâldere of ferfongen pakket útslút. Se fertelle jo net hoe't dat pakket kompilearre is, en krekt dy fraach besteane reprodusearbere builds foar. Reprodusearbere builds litte in ûnôfhinklike partij ta om fan deselde boarne wer te bouwen en de útfier byte foar byte te fergelykjen, sadat in ôfwiking bewiis wurdt ynstee fan fertinking.
Sels in perfekte oerienkomst bewiist minder as minsken hoopje. It lit sjen dat it artefakt oerienkomt mei de boarne en it buildresep, net dat de boarne frij fan flaters is, en net dat de brûkte arkketen betrouber wie. Beide bliuwe de muoite wurdich om te witten, mar it binne ferskillende bewearings.
dpkg -S /usr/bin/wg
apt-cache policy wireguard-tools
sha256sum /usr/bin/wgWêr't in symptoom meastentiids begjint
De klacht dy't dit lêzen triggeret is selden "de koade is sletten". It is meastentiids in konkrete observaasje: in kliïnt dy't earne ûnferwachts hinne skillet, in ferzje dy't ôfwykt fan de útjefte-notysjes, of in stipeproses dat mear freget as de tunnel nedich wêze soe. Elk fan dy punten wiist op in oar komponint.
Ûnferwachts netwurkferkear fan de kliïnt is in fraach oer de kliïntboarne, en it is te beantwurdzjen troch it koadepaat te lêzen dat de ferbining iepenet. In ferzje-ôfwiking is in fraach oer ferpakking. In stipeproses dat identiteitsdokuminten freget is in fraach oer it akkountsysteem, en gjin inkelde kliïntaudit sil dat oplosse.
It komponint beneame makket fan in ûndúdlik wantrouwen in konkrete kontrôle. In konkrete kontrôle kin beantwurde, bestriden of sletten wurde. It alternatyf is in permanint fermoeden sûnder folgjende stap.
Wat de resinsje net berikke kin, en wat jo ynstee dwaan moatte
Bewarring op de servers fan de oanbieder is bûten it berik fan de kliïnt. Dat jildt ek foar it gedrach fan in fakturaasjeportaal, in leveransier foar fraude-kontrôle of in stipetafel dy't taheakken bewarret. In kliïntresinsje dy't útlutsen wurdt ta "we hawwe de tsjinst audite" docht in bewearing dy't it bewiis net stypet.
Lês wat de operator publisearret oer bewarring en fersiken, notearje de datum, en behannelje it as in ferklearring fan in belanghawwende partij ynstee fan in mjitting. Dat is in swakkere foarm fan bewiis, en eksplisyt wêze oer it ferskil is nuttiger as it opwurdearje yn it neifertellen.
Brûk dan wat jo hawwe as ien ynput ûnder ferskate: de identiteit fan de ynstallearre útjefte, oft de software ûnderhâlden wurdt, hoe't de kliïnt konfigurearre is, en wat de operator oer syn eigen systemen seit. Iepen koade fersterket dy beoardieling op ien punt. It ferfangt de rest net.
In auditbewearing moat altyd syn komponinten en ferzjes neame. As in rapport net sizze kin hokker bewarplak en hokker build it ûndersocht hat, beskriuwt it in bedoeling ynstee fan in produkt.