Reprodusearberens is in eigenskip fan de leveringsketen: deselde ferklearre ynfier moat deselde artefakt opleverje. Foar in VPN-klant ferbynt dy útspraak de ynstallearder dy't jo downloade hawwe oan boarncode en ark dy't elkenien werbouwe kin. It seit neat oer de tsjinst dêr't de klant him mei ferbynt.

De nuttige fraach is dêrom smel en te beäntwurdzjen. Publisearret it projekt in proseduere, en past jo spesifike artefakt dêrby?

Wêr't in build ophâldt deterministysk te wêzen

Kompilators bouwe tiidstimpels, absolute paden en nammen fan build-hosts yn, útsein as har dat ferbean wurdt. Argiven registrearje bestânsfolchoarder en wizigingsfacetten, linkers feroarje har útfier mei de ferzje fan 'e arkkaai, en parallelle kompresje kin blokken omskikke. Elk fan dy dingen soarget derfoar dat twa builds fan deselde boarncode yn bytes ferskille sûnder dat der eat kweadaardichs bart. Determinisme wurdt yn in build ynekocht, it wurdt nea standert erfd.

In projekt dat reprodusearberens beweart, moat de tapaste normalisaasje neame: fêste tiidstimpels, mappte paden, sortearre argyfynfier, fêstleine ferzjes fan kompilator en ôfhinklikens. Sûnder dy list kin in ôfwiking net ynterpretearre wurde, om't de romte fan legitime fariaasje net definiearre is.

De ferklearre ynfier moat ek folslein wêze. In repository-URL sûnder tag is gjin revyzje, in lockbestân sûnder hash is gjin set fan ôfhinklikens, en in build-skript dat by it útfieren in ark downloadt hat in ynfier dy't nimmen fêstlizze kin. Elk gat wurdt letter in ferskil. Meitsje de list kompleet foardat jo eat ferlykje, want in ûnfolsleine list kin net mislearje op in manier dy't eat betsjut.

InputHow it driftsWhat pins it
SourceBranch moves after releaseCommit hash in the build metadata
ToolchainCompiler patch level differsContainer image digest
PackagingArchive order and mtimes varyNormalised archive settings

Wat de ferliking eins kontrolearret

In ûnôfhinklike partij bout op 'e nij yn 'e ferklearre omjouwing en ferliket de útfier mei de publisearre artefakt. Bit-identyk is de sterke foarm; in dokumintearre normalisaasjestap, wêrby't in registrearre ferskil weromdraaid wurdt en de resultaten dan oerienkomme, is de swakkere mar noch nuttige foarm.

De ferliking giet oer it binêre bestân. In hantekening beäntwurdet in oare fraach: it ferbynt in útjefte oan in kaai en in kaai oan in identiteit, en in projekt kin jildige hantekeningen hawwe oer artefakten dy't nimmen werboud hat. De twa kontrôles steapelje ynstee fan inoar te ferfangen.

sha256sum wireguard-installer.msi
gpg --verify wireguard-installer.msi.sig wireguard-installer.msi

Rin beide foar it ynstallearjen en ferlykje de hash mei dy't publisearre is foar deselde útjefte en platfoarm. In hash dy't mei de side fan 'e leveransier oerienkomt, bewiist dat de download yntakt oankaam; in werboud binêr bestân dat mei de publisearre hash fan 'e leveransier oerienkomt, bewiist eat sterkers oer hoe't it makke is.

Wêrom't in ôfwiking gjin bewiis fan manipulaasje is

De measte ôfwikings komme fan in ynfier dy't nimmen kontrolearre. In oare patchútjefte fan 'e kompilator, in build-pad dat yn debug-symbolen lekte, in locale dy't de sortearfolchoarder feroare, of in ferpakkingsstap nei de ferliking jouwe allegear in oare hash as earlik wurk.

Dêrom moat in ôfwiking tsjin 'e dokumintearre proseduere lêzen wurde foardat it in ferhaal wurdt. As de proseduere alles fêstleit en it ferskil bliuwt ûnferklearre, dan is dat in echte befinning dy't it wurdich is om by it projekt oan te kaartsjen. As de proseduere stil is oer ferpakking, kin it ferskil hielendal ferwachte wêze.

Symmetry telt hjir ek: in oerienkomst bewiist net dat de boarncode frij fan flaters is, allinnich dat it binêre bestân derby past. Goed auditsje koad en reprodusearbere koad binne ferskillende eigenskippen, en in projekt kin de iene hawwe sûnder de oare.

Wat de bewearing seit oer de tsjinst efter de app

De klant is in programma op jo apparaat; de tsjinst is servers, akkountsystemen en bewaringsbelied earne oars. Reprodusearberens beheint it earste en seit neat oer it twadde, hoe soarchfâldich de ynstallearder ek ferifiearre wurdt.

De konfiguraasje fan it einpunt kin nei it ynstallearjen ek feroarje, fia ôfstânsynstellingen of in profyl dat de oanbieder kontrolearret. Dy feroarings komme oer it netwurk en wurde net dekt troch in hash dy't jo foar it ferbinen berekkene hawwe.

Lês de bewearing yn har werklike omfang en kontrolearje dan apart de neistlizzende fraach: wat de oanbieder registrearret, en ûnder hokker jurisdiksje hy op fersiken antwurdet. In ferifiearre binêr bestân en in net-ferifiearre tsjinst kinne njonken inoar bestean, en dat is krekt it gefal dat in leveringsketenkontrôle ûntwurpen is om sichtber te meitsjen, net om it te reparearjen.

Relatearre artikelen