Te whakaraerae i roto i te whare pukapuka me te whakatinanatanga matua o te SHA-3 algorithm

Kua kitea he whakaraeraetanga (CVE-3-2022) i roto i te whakatinanatanga o te mahi hash cryptographic SHA-37454 (Keccak) e tukuna ana i roto i te kete XKCP (eXtended Keccak Code Package), ka taea te arai ki te puhake parepare i te wa e tukatuka ana i etahi raraunga. Ko te raruraru i puta mai i te bug i roto i te waehere o te whakatinanatanga motuhake o SHA-3, a ehara i te whakaraerae i roto i te algorithm ake. Ko te kete XKCP e kiia ana ko te whakatinanatanga mana o SHA-3, i whakawhanakehia me te whakauru mai i te roopu whanaketanga Keccak, a ka whakamahia hei turanga mo nga mahi SHA-3 i roto i nga momo reo whakamaarama (hei tauira, ka whakamahia te waehere XKCP i te Python hashlib kōwae, te Ruby digest mōkihi sha3 me PHP hash_* mahi).

E ai ki te kairangahau nana i tautuhi te raruraru, i taea e ia te whakamahi i te whakaraeraetanga ki te takahi i nga ahuatanga cryptographic o te mahi hash me te kimi i nga whakaahua tuatahi me te tuarua, me te kite i nga tukinga. I tua atu, i panuitia ka hangaia he mahinga tauira e taea ai te mahi waehere i te wa e tatau ana i te hash o tetahi konae i hangaia motuhake. Ka whakamahia pea te whakaraeraetanga ki te whakaeke i nga tohu tohu tohu tohu tohu mamati e whakamahi ana i te SHA-3 (hei tauira, Ed448). Ko nga korero mo nga tikanga whakaeke kua whakamaheretia kia whakaputaina i muri mai, i muri i te whakakorenga o te whakaraerae i nga waahi katoa.

Kaore ano i te maarama he aha te nui o te whakaraeraetanga e pa ana ki nga tono o naianei i roto i nga mahi, na te mea ka puta mai te raru ki roto i te waehere, me whakamahi nga tatauranga o te huringa i roto i nga poraka me tetahi o nga poraka tukatuka me tata ki te 4 GB te rahi (i te iti rawa. 2^32 - 200 paita). I te wa e tukatuka ana i nga raraunga whakauru i te wa kotahi (kaore i te tatau i nga waahanga o nga waahanga), kaore te raruraru e puta. I te mea ko te tikanga whakamarumaru ngawari rawa atu, e whakaarohia ana kia whakawhäitihia te rahinga o nga raraunga ka uru ki roto i te whitiwhitinga o te taitatanga hash.

Ko te whakaraeraetanga he hapa i te tukatuka poraka o nga raraunga whakauru. Na te he o te whakatauritenga o nga uara me te momo "int", ka whakatauhia te rahinga he o nga raraunga e tatari ana, e arai atu ai ki te tuhi i te hiku ki tua atu o te parapara kua tohaina. Ina koa, i whakamahia e te whakataurite te kii "partialBlock + instance->byteIOIndex", i puta ai te waipuke o te integer mo nga uara nui o nga waahanga whakauru. I tua atu, i he te momo maka "(unsigned int)(dataByteLen - i)" i roto i te waehere, i puta te waipuke ki runga i nga punaha me te momo 64-bit size_t.

Tauira waehere e puhake ana: kawemai hashlib h = hashlib.sha3_224() m1 = b"\x00" * 1; m2 = b"\x00" * 4294967295; h.whakahōu(m1) h.whakahōu(m2) tā(h.hexdigest())

Source: opennet.ru

Tāpiri i te kōrero