Кайталануучулук — жеткирүү чынжырынын касиети: бирдей жарыяланган кирүүлөр бирдей артефактты өндүрүшү керек. VPN кардары үчүн бул билдирүү жүктөп алган орноткучту каалаган адам кайра кура ала турган булак жана куралдар чынжыры менен байланыштырат. Ал кардар туташкан кызмат жөнүндө эч нерсе айтпайт.

Ошондуктан пайдалуу суроо тар жана жообу бар. Долбоор жол-жобону жарыялайбы, жана сиздин так артефактыңыз ага дал келеби?

Куруу кайсы жерде детерминисттик болуудан токтойт

Компиляторлор убакыт белгилерин, абсолюттук жолдорду жана куруу хостторунун аттарын киргизишет, эгер аларга буга тыюу салынбаса. Архивдер файлдардын тартибин жана өзгөртүү убакыттарын жазат, линкерлер чыгышын куралдар чынжырынын версиясына жараша өзгөртөт, ал эми параллелдүү кысуу блокторду кайра иреттей алат. Ушулардын кайсынысы болбосун бир булактан эки куруунун байттар боюнча айырмаланышына алып келет, бирок эч кандай коркунучтуу нерсе болбойт. Детерминизм курууга инженерия аркылуу киргизилет, ал эч качан демейки боюнча мураска берилбейт.

Кайталануучулукту билдирген долбоор колдонулган нормалдаштырууну атоого тийиш: туруктуу убакыт белгилери, салыштырылган жолдор, иреттелген архив жазуулары, бекитилген компилятор жана көз карандылык версиялары. Бул тизме жок болсо, дал келбестикти чечмелөө мүмкүн эмес, анткени мыйзамдуу вариация мейкини аныкталган эмес.

Жарыяланган кирүүлөр да толук болушу керек. Теги жок кампа URL'и ревизия эмес, hash жок кулпулоо файлы көз карандылыктар топтому эмес, ал эми иштөө убагында курал жүктөгөн куруу скриптинин эч ким беките албаган кирүүсү бар. Ар бир кемтик кийин айырмачылыкка айланат. Бир нерсени салыштырганга чейин тизмени толуктаңыз, анткени толук эмес тизме мааниси бар түрдө ишке ашпай кала албайт.

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

Салыштыруу чындыгында эмнени текшерет

Көз карандысыз тарап жарыяланган чөйрөдө кайра курат жана чыгышты жарыяланган артефакт менен салыштырат. Биттик дал келүү — күчтүү форма; жазылган айырмачылык кайтарылып, натыйжалар андан кийин дал келген документтелген нормалдаштыруу кадамы — алсызыраак, бирок дагы эле пайдалуу форма.

Салыштыруу бинардык файлга тиешелүү. Кол тамга башка суроого жооп берет: ал чыгарылышты ачкыч менен, ачкычты инсандык менен байланыштырат, жана долбоордо эч ким кайра курбаган артефактыларга жарактуу кол тамгалар болушу мүмкүн. Эки текшерүү бири-бирин алмаштыруунун ордуна катмарланат.

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

Орнотуудан мурун экөөнү тең иштетиңиз жана hash'ты ошол эле чыгарылыш жана платформа үчүн жарыяланган hash менен салыштырыңыз. Жеткирүүчүнүн бетине дал келген hash жүктөөнүн бүтүн жеткенин далилдейт; жеткирүүчү жарыялаган hash'ка дал келген кайра курулган бинардык файл анын кантип жасалганы жөнүндө күчтүүрөөк нерсени далилдейт.

Эмне үчүн дал келбестик кийлигишүүнүн далили эмес

Дал келбестиктердин көбү эч ким көзөмөлдөбөгөн кирүүдөн келет. Компилятордун башка патч чыгарылышы, жөндөө белгилерине сиңип кеткен куруу жолу, иреттөө тартибин өзгөрткөн локал, же салыштыруудан кийин колдонулган таңгактоо кадамы — баары чынчыл иштен башка hash берет.

Ошондуктан дал келбестикти окуяга айланганга чейин документтелген жол-жобого каршы окуу керек. Эгер жол-жобо баарын бекитип, айырмачылык түшүндүрүлбөй калса, бул долбоорго жеткирүүгө татыктуу чыныгы табылга. Эгер жол-жобо таңгактоо жөнүндө үнсүз болсо, айырмачылык толугу менен күтүлүүчү болушу мүмкүн.

Бул жерде симметрия да маанилүү: дал келүү булактын кемчиликсиз экенин далилдебейт, болгону бинардык файл ага дал келерин далилдейт. Жакшы аудиттелген код менен кайталануучу код — ар башка касиеттер, жана долбоор бирин экинчисинсиз ээлей алат.

Билдирүү колдонмонун артындагы кызмат жөнүндө эмне дейт

Кардар — түзмөгүңүздөгү программа; кызмат — башка жердеги серверлер, эсеп системалары жана сактоо саясаттары. Кайталануучулук биринчисин чектейт жана экинчиси жөнүндө эч нерсе айтпайт, орноткуч канчалык кылдат текшерилсе да.

Акыркы чекиттин конфигурациясы орнотуудан кийин да өзгөрүшү мүмкүн: алыскы жөндөөлөр же жеткирүүчү көзөмөлдөгөн профиль аркылуу. Бул өзгөрүүлөр тармак аркылуу келет жана туташуудан мурун эсептеген эч кандай hash менен камтылбайт.

Билдирүүнү анын чыныгы көлөмүндө окуп, анан коңшу суроону өзүнчө текшериңиз: жеткирүүчү эмнени жазат жана кайсы юрисдикцияда суроолорго жооп берет. Текшерилген бинардык файл менен текшерилбеген кызмат катар жашай алат, жана дал ушул учурду жеткирүү чынжырын текшерүү көрүнүктүү кылуу үчүн арналган, оңдоо үчүн эмес.

Тектеш макалалар