Kolizionet në identifikuesit e shkurtuar të komiteteve në kernelin Linux

Kees Cook, ish-administrator i përgjithshëm i sistemit kernel.org dhe lider i Ubuntu Security Team, tregoi mundësinë e krijimit të një commit-i, identifikuesi i shkurtuar i të cilit përputhet me një commit të dhënë më parë në bërthamën Linux. Eksperimenti u krye si një konfirmim të nevojës për të kaluar në identifikues të shkurtuar 16-shifrorë në bërthamën Linux, që ishte diskutuar më parë në listën e e-postave të zhvilluesve të bërthamës, por nuk ishte miratuar nga Linus Torvalds.

Identifikuesit e shkurtuar të commit-it formohen duke lënë 12 karakteret e para nga hash-i SHA-1 (48 bit nga 160 bit). Meqenëse numri i objekteve në bërthamë, që identifikohen përmes hash-it SHA-1, ka kaluar 13 milion, ndodhia e kolizionit me përdorimin e një prefiksi 12-shifror është bërë çështje kohe. Si shembuj u treguan already added objects në bërthamë që përputhen me identifikuesit e tyre 11-shifrorë. Gjithashtu, u përmend se ndodhia e përputhjes së identifikuesve 12-shifrorë tashmë ishte regjistruar në tetor, por para se të dërgohej patch-i, u zbulua nga utiliteti checkpatch.

Identifikuesit e shkurtuar pĂ«rdoren kur publikohen lidhje tĂ« shkurtra pĂ«r commits, si dhe tregohen kur dĂ«rgohen ndryshime me tag-un “Fixes”, si njĂ« referencĂ« nĂ« commit-in qĂ« problemi i tij u rregullua nĂ« patch-in e dĂ«rguar (p.sh., “Fixes: e21d2170f366”). Ndodhia e kolizionit, ku disa ndryshime tĂ« ndryshme lidhen me njĂ« identifikues tĂ« shkurtuar, mund tĂ« çojĂ« nĂ« probleme me mjetet pĂ«r analizĂ« dhe verifikim tĂ« ndryshimeve, duke marrĂ« parasysh pĂ«rmbajtjen e tag-eve “Fixes”. Si shembuj, kĂ«to tag-e merren parasysh nĂ« procesorin check_fixes, qĂ« pĂ«rdoret nĂ« degen linux-next, si dhe nĂ« skriptet pĂ«r analizimin e rregullimeve tĂ« dobĂ«sive dhe ndjekjen e ciklit tĂ« jetĂ«s sĂ« patch-eve.

Linus Torvalds shprehu skepticizëm ndaj propozimit për të rritur madhësinë minimale të identifikuesve të shkurtuar, pasi gjatë faktikisht numri i commits në repositor është dukshëm më i vogël se objekti (rreth 1/8). Në fakt, nëse ndodhin ndonjë përputhje rastësore, ato do të jenë mes një commit-i dhe një objekti të një tipi tjetër (p.sh., blob ose degë). Sipas tij, identifikuesit e shkurtuar janë të shkurtuar për të qenë vizualë, të lexueshëm dhe të lehtë për t'u cituar, dhe për të rritur madhësinë e tyre aktualisht nuk ka premisa objektive.

Një nga zhvilluesit propozi një reduktim të madhësisë me rritjen e numrit të bitëve të rëndësishëm, duke përdorur një format të ri bazuar në kodimin Base36 (karakteret 0-9a-z) në vend të shifrave hexadecimale. Sipas Linus-it, një ndryshim i tillë do të krijonte më shumë probleme se sa do të zgjidhte. Shembuj të tillë përfshin shtimin e mbështetjes për formatin e ri në utilitetet ekzistuese dhe futur një identifikues formati për të dalluar midis formatit të vjetër dhe atij të ri.

Për të demonstruar se problemi me identifikuesit e shkurtuar nuk është teorik dhe që zgjidhja e tij nuk duhet të shtyhet, Kees Cook formoi një ndryshim në dokumentacionin e bërthamës, identifikuesi i shkurtuar i të cilit (1da177e4c3f4) përputhej me identifikuesin e commit-it për krijimin e degës së bërthamës 2.6.12-rc2. Kjo kolizion ishte gjetur pas 6 orësh kalkulimesh në një sistem me GPU NVIDIA GeForce RTX 3080.

Identifikimi u krye duke pĂ«rdorur mjetin lucky-commit — nĂ« tekstin e patch-it tĂ« synuar u shtuan hapĂ«sira rastĂ«sore derisa prefiksi 12-shifror SHA-1 tĂ« pĂ«rputhej me prefiksĂ«t e njĂ« commit-i tĂ« ri qĂ« tashmĂ« ishte nĂ« bĂ«rthamĂ«. Sipas Kees-s problemi pĂ«rfaqĂ«sohet mĂ« tepĂ«r nga pĂ«rputhjet rastĂ«sore se sa nga mundĂ«sia e manipulimeve me identifikuesit e shkurtuar pĂ«r qĂ«llime tĂ« dĂ«mshme, p.sh., pĂ«r tĂ« anashkaluar ndonjĂ« kontroll.

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster