Die bron is gepubliseer, die lisensie is skoon, en die verbinding kan steeds nie van punt tot punt geverifieer word nie. Daardie leemte is gewoon, en dit is nie ’n skandaal nie. Om kode te publiseer maak een komponent ondersoekbaar deur mense wat nie genooi is nie, en dit is ’n werklike en ongewone eienskap. Dit volg nie dat die binêre lêer wat jy geïnstalleer het uit daardie kode kom nie, of dat enigiets wat die diensverskaffer aan die ander kant bedryf, hoegenaamd nagegaan is nie.

Skei die komponent van die produk

Vier dinge kan die oopbron-etiket dra, en hulle is selde almal oop. Die kliëntprogram is die een wat mense bedoel. Die protokolimplementering daaronder is ’n ander artefak, soms ’n biblioteek en soms kode in die boom. Die bedienerprogrammatuur is ’n derde, en die diensverskaffer se eie infrastruktuur, rekeningportaal en ondersteuningsgereedskap is ’n vierde. Elkeen kan onafhanklik oop of gesluit wees.

Uitsprake soos "ons program is oopbron" beskryf dus die eerste item en laat die res onaangeraak, wat nie oneerlikheid is nie maar eerder ’n kategorieglip. Die nuttige vraag is watter bewaarplek, by watter etiket, ooreenstem met die komponent waarop jy staatmaak.

Daardie onderskeid verduidelik ook waarom twee produkte met identiese oop kliënte baie verskillende versekerings kan bied. Die kliënt is die deel wat jy kan nagaan; die operateur se gedrag is die deel wat jy op ander maniere moet beoordeel.

Pas die geïnstalleerde bou by die gepubliseerde etiket

’n Bewaarplek is ’n rekord van bedoeling; die binêre lêer op jou skyf is die ding wat hardloop. Om daardie leemte te sluit is ’n meganiese oefening, en dit begin deur presies te identifiseer wat geïnstalleer is eerder as wat die aflaai-bladsy geadverteer het.

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

Pakketmetadata vertel jou die weergawe en die oorsprong, wat die eenvoudige geval van ’n verouderde of vervangde pakket uitsluit. Dit vertel jou nie hoe daardie pakket saamgestel is nie, en dit is juis die vraag wat reproduceerbare bou bestaan om te beantwoord. Reproduceerbare bou laat ’n onafhanklike party toe om uit dieselfde bron te herbou en die uitset byte vir byte te vergelyk, sodat ’n verskil bewyse word eerder as vermoede.

Selfs ’n perfekte ooreenkoms bewys minder as wat mense hoop. Dit wys die artefak stem ooreen met die bron en die bouresep, nie dat die bron foutloos is nie, en nie dat die gereedskapketting wat gebruik is, betroubaar was nie. Albei bly die moeite werd om te weet, maar dit is verskillende bewerings.

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

Waar ’n simptoom gewoonlik begin

Die klagte wat hierdie leeswerk aanleiding gee, is selde "die kode is gesluit". Dit is gewoonlik ’n spesifieke waarneming: ’n kliënt wat op ’n onverwagte plek bel, ’n weergawe wat van die vrystellingnotas verskil, of ’n ondersteuningsproses wat meer vra as wat die tonnel nodig behoort te hê. Elkeen van dié punte wys na ’n ander komponent.

Onverwagte netwerkverkeer van die kliënt is ’n kliëntbron-vraag, en dit is beantwoordbaar deur die kodepad te lees wat die verbinding oopmaak. ’n Weergaweverskil is ’n verpakkingsvraag. ’n Ondersteuningsproses wat identiteitsdokumente versoek, is ’n rekeningstelsel-vraag, en geen hoeveelheid kliëntoudit sal dit oplos nie.

Om die komponent te benoem verander ’n vae wantroue in ’n spesifieke kontrole. ’n Spesifieke kontrole kan beantwoord, betwis of gesluit word. Die alternatief is ’n permanente vermoede sonder ’n volgende stap.

Wat die oorsig nie kan bereik nie, en wat om eerder te doen

Bewaring op die diensverskaffer se bedieners is buite die kliënt se bereik. So ook die gedrag van ’n faktureringsportaal, ’n bedrogkontrole-verskaffer of ’n ondersteuningsbalie wat aanhegsels hou. ’n Kliëntoorsig wat uitgerek word tot "ons het die diens geoudit" maak ’n bewering wat die bewyse nie steun nie.

Lees wat die operateur publiseer oor bewaring en versoeke, let op die datum, en behandel dit as ’n verklaring deur ’n belanghebbende party eerder as ’n meting. Dit is ’n swakker vorm van bewyse, en om die verskil eksplisiet te maak is nuttiger as om dit in die hervertelling op te gradeer.

Gebruik dan wat jy het as een insette onder verskeie: die identiteit van die geïnstalleerde vrystelling, of die sagteware onderhou word, hoe die kliënt gekonfigureer is, en wat die operateur oor sy eie stelsels sê. Oop kode versterk daardie beoordeling op een punt. Dit vervang nie die res daarvan nie.

’n Ouditbewering behoort altyd sy komponente en weergawes te noem. As ’n verslag nie kan sê watter bewaarplek en watter bou dit ondersoek het nie, beskryf dit ’n bedoeling eerder as ’n produk.

Verwante artikels