ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ืื™ืŸ ื“ืขืจ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืžื™ื˜ ื“ื™ ื”ื•ื™ืคึผื˜ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ SHA-3 ืึทืœื’ืขืจื™ื“ืึทื

ื ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ (CVE-3-2022) ืื™ื– ื™ื™ื“ืขื ืึทืคื™ื™ื“ ืื™ืŸ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ SHA-37454 (Keccak) ืงืจื™ืคึผื˜ืึธื’ืจืึทืคื™ืง ื”ืึทืฉ ืคื•ื ืงืฆื™ืข ื’ืขืคึฟื™ื ื˜ ืื™ืŸ ื“ื™ XKCP ืคึผืขืงืœ (eXtended Keccak Code Package), ื•ื•ืึธืก ืงืขื ืขืŸ ืคื™ืจืŸ ืฆื• ืึท ื‘ืึทืคืขืจ ืึธื•ื•ื•ืขืจืคืœืึธื• ื‘ืขืฉืึทืก ื“ื™ ืคึผืจืึทืกืขืกื™ื ื’ ืคื•ืŸ ื–ื™ื›ืขืจ. ืคืึธืจืžืึทื˜ื˜ืขื“ ื“ืึทื˜ืŸ. ื“ืขืจ ืคึผืจืึธื‘ืœืขื ืื™ื– ื’ืขืคึฟื™ืจื˜ ื“ื•ืจืš ืึท ื–ืฉื•ืง ืื™ืŸ ื“ื™ ืงืึธื“ ืคื•ืŸ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ SHA-3, ืื•ืŸ ื ื™ืฉื˜ ื“ื•ืจืš ืึท ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ืื™ืŸ ื“ื™ ืึทืœื’ืขืจื™ื“ืึทื ื–ื™ืš. ื“ื™ XKCP ืคึผืขืงืœ ืื™ื– ื˜ืึทื•ื˜ื™ื“ ื•ื•ื™ ื“ืขืจ ื‘ืึทืึทืžื˜ืขืจ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ SHA-3, ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืžื™ื˜ ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘ ืคื•ืŸ ื“ื™ Keccak ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืžืึทื ืฉืึทืคึฟื˜, ืื•ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ื•ื•ื™ ื“ื™ ื™ืงืขืจ ืคึฟืึทืจ SHA-3 ืคืึทื ื’ืงืฉืึทื ื– ืื™ืŸ ืคืึทืจืฉื™ื“ืŸ ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทื›ืŸ (ืœืžืฉืœ, XKCP ืงืึธื“ ืื™ื– ื’ืขื ื™ืฆื˜ ืื™ืŸ ื“ื™ Python hashlib ืžืึธื“ื•ืœืข, ื“ื™ ืจื•ื‘ื™ ื“ื™ื™ื“ื–ืฉืขืกื˜ ืคึผืขืงืœ sha3 ืื•ืŸ PHP hash_* ืคืึทื ื’ืงืฉืึทื ื–).

ืœื•ื™ื˜ ื“ืขืจ ืคืึธืจืฉืขืจ ื•ื•ืึธืก ื”ืึธื˜ ืื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจื˜ ื“ืขื ืคึผืจืึธื‘ืœืขื, ื”ืึธื˜ ืขืจ ื’ืขืงืขื ื˜ ื ื•ืฆืŸ ื“ื™ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ืฆื• ืึธื ืจื™ืจืŸ ื“ื™ ืงืจื™ืคึผื˜ืึธื’ืจืึทืคื™ืง ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืคื•ืŸ ื“ื™ ื”ืึทืฉ ืคึฟื•ื ืงืฆื™ืข ืื•ืŸ ื’ืขืคึฟื™ื ืขืŸ ื“ื™ ืขืจืฉื˜ืขืจ ืื•ืŸ ืฆื•ื•ื™ื™ื˜ืข ืคึผืจื™ื™ืžืึทื“ื–ืฉืึทื–, ื•ื•ื™ ืื•ื™ืš ื“ืขื˜ืขืงื˜ ืงืึทืœื™ื–ืฉืึทื ื–. ืื™ืŸ ืึทื“ื™ืฉืึทืŸ, ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืžื•ื“ื™ืข ืึทื– ืึท ืคึผืจืึธื•ื˜ืึทื˜ื™ื™ืคึผ ืขืงืกืคึผืœื•ื™ื˜ ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ื‘ืืฉืืคืŸ ื•ื•ืึธืก ื•ื•ืึธืœื˜ ืœืึธื–ืŸ ืงืึธื“ ืฆื• ื–ื™ื™ืŸ ืขืงืกืึทืงื™ื•ื˜ืึทื“ ื•ื•ืขืŸ ืงืึทืœืงื™ืึทืœื™ื™ื˜ื™ื ื’ ื“ื™ ื”ืึทืฉ ืคื•ืŸ ืึท ืกืคึผืขืฉืœื™ ื“ื™ื–ื™ื™ื ื“ ื˜ืขืงืข. ื“ื™ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ืงืขืŸ ืื•ื™ืš ื–ื™ื™ืŸ ื’ืขื ื•ืฆื˜ ืฆื• ื‘ืึทืคืึทืœืŸ ื“ื™ื’ื™ื˜ืึทืœ ื›ืกื™ืžืข ื•ื•ืขืจืึทืคืึทืงื™ื™ืฉืึทืŸ ืึทืœื’ืขืจื™ื“ืึทืžื– ื•ื•ืึธืก ื ื•ืฆืŸ SHA-3 (ืœืžืฉืœ, Ed448). ื“ืขื˜ืึทื™ืœืก ืคื•ืŸ ื“ื™ ื‘ืึทืคืึทืœืŸ ืžืขื˜ืึทื“ื– ื–ืขื ืขืŸ ืคึผืœืึทื ื ืขื“ ืฆื• ื–ื™ื™ืŸ ืืจื•ื™ืก ืฉืคึผืขื˜ืขืจ, ื ืึธืš ื“ื™ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ืื™ื– ื™ืœื™ืžืึทื ื™ื™ื˜ืึทื“ ืื•ืžืขื˜ื•ื.

ืขืก ืื™ื– ื ืึธืš ื ื™ืฉื˜ ืงืœืึธืจ ื•ื•ื™ ืคื™ืœ ื“ื™ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ืึทืคืขืงืฅ ื™ื’ื–ื™ืกื˜ื™ื ื’ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื™ืŸ ืคื™ืจ, ื•ื•ื™ื™ึทืœ ืคึฟืึทืจ ื“ื™ ืคึผืจืึธื‘ืœืขื ืฆื• ื‘ืึทืฉื™ื™ึทืžืคึผืขืจืœืขืš ื–ื™ืš ืื™ืŸ ื“ื™ ืงืึธื“, ืกื™ื™ืงืœื™ืง ื”ืึทืฉ ื—ืฉื‘ื•ื ื•ืช ืื™ืŸ ื‘ืœืึทืงืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืื•ืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืคึผืจืึทืกืขืกื˜ ื‘ืœืึทืงืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ื•ื•ืขื’ืŸ 4 ื’ื™ื’ืื‘ื™ื™ื˜ ืื™ืŸ ื’ืจื™ื™ืก (ืœืคึผื—ื•ืช. 2 ^ 32 - 200 ื‘ื™ื™ื˜ืขืก). ื•ื•ืขืŸ ืคึผืจืึทืกืขืกื™ื ื’ ื“ื™ ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘ ื“ืึทื˜ืŸ ืื™ืŸ ืึทืžืึธืœ (ืึธืŸ ืกืึทืงื•ื•ืขื ื˜ืฉืึทืœื™ ืงืึทืœืงื™ืึทืœื™ื™ื˜ื™ื ื’ ื“ื™ ื”ืึทืฉ ืื™ืŸ ืคึผืึทืจืฅ), ื“ื™ ืคึผืจืึธื‘ืœืขื ื˜ื•ื˜ ื ื™ืฉื˜ ื“ืขืจืฉื™ื™ึทื ืขืŸ. ื•ื•ื™ ื“ื™ ืกื™ืžืคึผืœืึทืกื˜ ืื•ืคึฟืŸ ืคื•ืŸ ืฉื•ืฅ, ืขืก ืื™ื– ืคืืจื’ืขืœื™ื™ื’ื˜ ืฆื• ื‘ืึทื’ืจืขื ืขืฆืŸ ื“ื™ ืžืึทืงืกื™ืžื•ื ื’ืจื™ื™ืก ืคื•ืŸ ื“ื™ ื“ืึทื˜ืŸ ื™ื ื•ื•ืึทืœื•ื•ื“ ืื™ืŸ ืื™ื™ืŸ ื™ื˜ืขืจืึทื˜ื™ืึธืŸ ืคื•ืŸ ื“ื™ ื”ืึทืฉ ื›ืขื–ืฉื‘ืŸ.

ื“ื™ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ ืื™ื– ื’ืขืคึฟื™ืจื˜ ื“ื•ืจืš ืึท ื˜ืขื•ืช ืื™ืŸ ืคืึทืจืฉืคึผืึทืจืŸ ืคึผืจืึทืกืขืกื™ื ื’ ืคื•ืŸ ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘ ื“ืึทื˜ืŸ. ืจืขื›ื˜ ืฆื• ืคืึทืœืฉ ืคืึทืจื’ืœื™ื™ึทืš ืคื•ืŸ ื•ื•ืึทืœื•ืขืก ืžื™ื˜ ื˜ื™ืคึผ "ื™ื ื˜", ื“ื™ ืคืึทืœืฉ ื’ืจื™ื™ืก ืคื•ืŸ ืคึผืขื ื“ื™ื ื’ ื“ืึทื˜ืŸ ืื™ื– ื‘ืืฉืœืืกืŸ, ื•ื•ืึธืก ืคื™ืจื˜ ืฆื• ื“ื™ ืขืง ืื™ื– ื’ืขืฉืจื™ื‘ืŸ ื•ื•ื™ื™ึทื˜ืขืจ ืคื•ืŸ ื“ื™ ืึทืœืึทืงื™ื™ื˜ื™ื“ ื‘ืึทืคืขืจ. ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ, ื“ืขืจ ืคืึทืจื’ืœื™ื™ึทืš ื’ืขื ื™ืฆื˜ ื“ื™ ืื•ื™ืกื“ืจื•ืง "ืคึผืึทืจื˜ื™ืึทืœื‘ืœืึธืงืง + ื‘ื™ื™ึทืฉืคึผื™ืœ->ื‘ื™ื˜ืขื™ืึธื™ื ื“ืขืงืก", ื•ื•ืึธืก ื’ืขืคื™ืจื˜ ืฆื• ื™ื ื˜ืึทื“ื–ืฉืขืจ ืœื•ื™ืคืŸ ืคึฟืึทืจ ื’ืจื•ื™ืก ื•ื•ืึทืœื•ืขืก ืคื•ืŸ ื“ื™ ืงืึทื ืกื˜ื™ื˜ืฉื•ืึทื ื˜ ืคึผืึทืจืฅ. ืึทื“ื“ื™ื˜ื™ืึธื ืึทืœืœื™, ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืึท ืคืึทืœืฉ ื˜ื™ืคึผ ื•ื•ืึทืจืคืŸ "(ื•ื ืกื™ื’ื ืขื“ ื™ื ื˜) (dataByteLen - i)" ืื™ืŸ ื“ื™ ืงืึธื“, ื•ื•ืึธืก ื’ืขืคึฟื™ืจื˜ ืึท ืึธื•ื•ื•ืขืจืคืœืึธื• ืื•ื™ืฃ ืกื™ืกื˜ืขืžืขืŸ ืžื™ื˜ ืึท 64-ื‘ื™ืกืœ ื’ืจื™ื™ืก_ื˜ ื˜ื™ืคึผ.

ื‘ื™ื™ึทืฉืคึผื™ืœ ืงืึธื“ ื•ื•ืึธืก ื– ืึธื•ื•ื•ืขืจืคืœืึธื•: ืึทืจื™ื™ึทื ืคื™ืจ hashlib h = hashlib.sha3_224() m1 = b"\x00" * 1; ืž2 = ื‘"\ืงืก00" * 4294967295; h.update(m1) h.update(m2) print(h.hexdigest())

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’