Ir-riproduċibbiltà hija proprjetà tal-katina tal-provvista: l-istess inputs iddikjarati għandhom jipproduċu l-istess artefatt. Għal klijent VPN, dik id-dikjarazzjoni tgħaqqad l-installer li niżżilt mas-sors u l-katina tal-għodod li kulħadd jista' jerġa' jibni. Ma tgħid xejn dwar is-servizz li miegħu jgħaqqad il-klijent.

Għalhekk il-mistoqsija utli hija dejqa u tista' tiġi mwieġba. Il-proġett jippubblika proċedura, u l-artefatt speċifiku tiegħek jaqbel magħha?

Fejn bini jieqaf milli jkun deterministiku

Il-kompilaturi jdaħħlu timestampijiet, mogħdijiet assoluti u ismijiet ta' hosts tal-bini sakemm ma jingħidilhomx biex ma jagħmlux hekk. L-arkivji jirreġistraw l-ordni tal-fajls u l-ħinijiet tal-bidla, il-linkers ibiddlu l-output tagħhom mal-verżjoni tal-katina tal-għodod, u l-kompressjoni parallela tista' terġa' tordna l-blokki. Kull waħda minn dawn tagħmel żewġ biniijiet tal-istess sors differenti fil-bytes mingħajr ma jiġri xejn ta' ħsara. Id-determiniżmu jiġi inkorporat fil-bini bl-inġinerija, qatt ma jiġi wirt b'mod awtomatiku.

Proġett li jallega riproduċibbiltà għandu jsemmi n-normalizzazzjoni li japplika: timestampijiet fissi, mogħdijiet mappati, entrati tal-arkivju ordnati, verżjonijiet tal-kompilatur u tad-dipendenzi ffissati. Mingħajr dik il-lista, nuqqas ta' qbil ma jistax jiġi interpretat, għax l-ispazju tal-varjazzjoni leġittima mhuwiex definit.

L-inputs iddikjarati wkoll iridu jkunu sħaħ. URL ta' repożitorju mingħajr tag mhuwiex reviżjoni, fajl lock mingħajr hash mhuwiex sett ta' dipendenzi, u skript tal-bini li jniżżel għodda fil-ħin tal-eżekuzzjoni għandu input li ħadd ma jista' jiffissa. Kull vojt isir differenza aktar tard. Imla l-lista qabel ma tqabbel xejn, għax lista mhux kompluta ma tistax tonqos b'mod li jfisser xi ħaġa.

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

X'inhu verament jivverifika l-paragun

Parti indipendenti terġa' tibni fl-ambjent iddikjarat u tqabbel l-output mal-artefatt ippubblikat. L-identiċità bit ma' bit hija l-forma qawwija; pass ta' normalizzazzjoni dokumentat, fejn differenza rreġistrata tinqaleb u r-riżultati mbagħad jaqblu, hija l-forma aktar dgħajfa iżda xorta utli.

Il-paragun huwa dwar il-binariu. Firma twieġeb mistoqsija oħra: tassoċja rilaxx ma' ċavetta u ċavetta ma' identità, u proġett jista' jkollu firem validi fuq artefatti li ħadd ma reġa' bena. Iż-żewġ verifiki jingħaqdu fuq xulxin minflok ma jissostitwixxu lil xulxin.

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

Mexxi t-tnejn qabel ma tinstalla, u qabbel il-hash ma' dak ippubblikat għall-istess rilaxx u pjattaforma. Hash li jaqbel mal-paġna tal-fornitur jipprova li t-tniżżil wasal sħiħ; binariu mibni mill-ġdid li jaqbel mal-hash ippubblikat tal-fornitur jipprova xi ħaġa aktar qawwija dwar kif inbena.

Għaliex nuqqas ta' qbil mhuwiex prova ta' manipulazzjoni

Il-biċċa l-kbira tan-nuqqasijiet ta' qbil ġejjin minn input li ħadd ma kkontrolla. Rilaxx ta' garża differenti tal-kompilatur, mogħdija tal-bini li nixxet fis-simboli tad-debug, lokalità li bidlet l-ordni tal-għażla, jew pass tal-ippakkjar applikat wara l-paragun kollha jipproduċu hash differenti minn xogħol onest.

Għalhekk nuqqas ta' qbil irid jinqara kontra l-proċedura dokumentata qabel ma jsir storja. Jekk il-proċedura tiffissa kollox u d-differenza tibqa' mhux spjegata, dik hija skoperta reali li jistħoqqilha titqajjem mal-proġett. Jekk il-proċedura tiskot dwar l-ippakkjar, id-differenza tista' tkun kompletament mistennija.

Is-simmetrija hija importanti hawn ukoll: qbil ma jipprovax li s-sors huwa ħieles minn difetti, biss li l-binariu jaqbel miegħu. Kodiċi awditjat tajjeb u kodiċi riproducibbli huma proprjetajiet differenti, u proġett jista' jkollu waħda mingħajr l-oħra.

X'tgħid id-dikjarazzjoni dwar is-servizz wara l-app

Il-klijent huwa program fuq it-tagħmir tiegħek; is-servizz huwa servers, sistemi ta' kontijiet u politiki ta' żamma band'oħra. Ir-riproduċibbiltà tikkonċerna l-ewwel u ma tgħid xejn dwar it-tieni, kemm jekk l-installer jiġi vverifikat bl-akbar reqqa.

Il-konfigurazzjoni tal-endpoint tista' tinbidel wara l-installazzjoni wkoll, permezz ta' settings remoti jew profil ikkontrollat mill-fornitur. Dawk il-bidliet jaslu minn fuq in-netwerk u mhumiex koperti minn ebda hash li kkalkulajt qabel ma tqabbad.

Aqra d-dikjarazzjoni fl-ambitu reali tagħha, imbagħad iċċekkja l-mistoqsija biswit b'mod separat: x'jirreġistra l-fornitur, u taħt liema ġurisdizzjoni jwieġeb għat-talbiet. Binariu vverifikat u servizz mhux ivverifikat jistgħu jikkoeżistu, u dak huwa eżattament il-każ li verifika tal-katina tal-provvista hija mfassla biex tagħmel viżibbli, mhux biex tiffissa.

Artikli relatati