So-leòntachd anns an leabharlann le prìomh bhuileachadh an algairim SHA-3

Chaidh so-leòntachd (CVE-3-2022) a chomharrachadh ann a bhith a’ buileachadh gnìomh hash criptografach SHA-37454 (Keccak) a tha air a thabhann anns a’ phacaid XKCP (Pasgan Còd eXtended Keccak), a dh’ fhaodadh leantainn gu tar-shruth bufair rè làimhseachadh cuid dàta cruth. Tha an duilgheadas air adhbhrachadh le bug ann an còd buileachadh sònraichte de SHA-3, agus chan ann le so-leòntachd san algairim fhèin. Thathas a ’toirt iomradh air a’ phacaid XKCP mar bhuileachadh oifigeil SHA-3, air a leasachadh le taic bho sgioba leasachaidh Keccak, agus air a chleachdadh mar bhunait airson gnìomhan SHA-3 ann an grunn chànanan prògramaidh (me, tha còd XKCP air a chleachdadh anns an hashlib Python modal, am pasgan Ruby digest sha3 agus PHP hash_ *).

A rèir an neach-rannsachaidh a chomharraich an duilgheadas, bha e comasach dha so-leòntachd a chleachdadh gus feartan criptografach gnìomh hash a bhriseadh agus a ’chiad agus an dàrna ro-shealladh a lorg, a bharrachd air a bhith a’ lorg thubaistean. A bharrachd air an sin, chaidh ainmeachadh gun tèid prototype brath a chruthachadh a leigeas le còd a chuir gu bàs nuair a thathar a’ tomhas hash faidhle a chaidh a dhealbhadh gu sònraichte. Dh’ fhaodadh an so-leòntachd a bhith air a chleachdadh cuideachd gus ionnsaigh a thoirt air algorithms dearbhaidh ainm-sgrìobhte didseatach a bhios a’ cleachdadh SHA-3 (mar eisimpleir, Ed448). Thathas an dùil mion-fhiosrachadh mu na dòighean ionnsaigh fhoillseachadh nas fhaide air adhart, às deidh don so-leòntachd a bhith air a chuir às anns a h-uile àite.

Chan eil e soilleir fhathast dè an ìre gu bheil an so-leòntachd a’ toirt buaidh air tagraidhean a tha ann an-dràsta, oir airson an duilgheadas nochdadh sa chòd, feumar àireamhachadh hash cearcallach ann am blocaichean a chleachdadh agus feumaidh aon de na blocaichean giullaichte a bhith timcheall air 4 GB ann am meud (co-dhiù 2^32 - 200 bytes). Nuair a bhios tu a ’giullachd an dàta cuir a-steach aig an aon àm (gun a bhith ag obrachadh a-mach an hash ann am pàirtean), chan eil an duilgheadas a’ nochdadh. Mar an dòigh dìon as sìmplidh, thathas a ’moladh meud an dàta as motha a tha an sàs ann an aon tionndadh den àireamhachadh hash a chuingealachadh.

Tha an so-leòntachd air adhbhrachadh le mearachd ann an giullachd bloca dàta cuir a-steach. Mar thoradh air coimeas ceàrr de luachan leis an t-seòrsa “int”, tha meud ceàrr an dàta a tha ri thighinn air a dhearbhadh, a tha a’ leantainn gu bheil an earball air a sgrìobhadh nas fhaide na am bufair ainmichte. Gu sònraichte, chleachd an coimeas an abairt “partialBlock + instance->byteIOIndex”, a lean gu thar-shruth iomlan airson luachan mòra de na pàirtean co-phàirteach. A bharrachd air an sin, bha seòrsa ceàrr air a thilgeil “(gun ainm-sgrìobhte)(dataByteLen - i)" anns a’ chòd, a dh’ adhbhraich cus thar-shruth air siostaman le seòrsa 64-bit size_t.

Còd eisimpleir a dh'adhbhraicheas thar-shruth: cuir a-steach hashlib h = hashlib.sha3_224() m1 = b "\x00" * 1; m2 = b" \x00" * 4294967295; h.update(m1) h.update(m2) print(h.hexdigest())

Source: fosgailtenet.ru

Cuir beachd ann