Në zbatimin e algoritmit të kriptimit Kyber, i cili fitoi konkurrencën e algoritmeve kriptografike rezistente ndaj forcës brutale në një kompjuter kuantik, u identifikua një dobësi që lejon sulmet e kanaleve anësore të rikrijojnë çelësat sekretë bazuar në matjen e kohës së operacioneve gjatë dekriptimit të teksti shifror i ofruar nga sulmuesi. Problemi prek si zbatimin e referencës së mekanizmit të kapsulimit të çelësit CRYSTALS-Kyber KEM, ashtu edhe shumë biblioteka të enkriptimit të palëve të treta me mbështetje Kyber, duke përfshirë bibliotekën pqcrypto të përdorur në mesazherin Signal.
Thelbi i cenueshmĂ«risĂ«, i cili mori emrin e koduar KyberSlash, Ă«shtĂ« nĂ« pĂ«rdorimin e operacionit tĂ« ndarjes "t = (((t < 1) + KYBER_Q/2)/KYBER_Q) & 1;" nĂ« procesin e dekodimit tĂ« njĂ« mesazhi , nĂ« tĂ« cilĂ«n dividenti pĂ«rmban vlerĂ«n sekrete âtâ me tipin âdoubleâ, dhe pjesĂ«tues Ă«shtĂ« vlera e njohur publike KYBER_Q. Problemi Ă«shtĂ« se koha e njĂ« operacioni tĂ« ndarjes nuk Ă«shtĂ« konstante dhe nĂ« mjedise tĂ« ndryshme numri i cikleve tĂ« CPU-sĂ« qĂ« kryhen pĂ«r ndarje varet nga tĂ« dhĂ«nat hyrĂ«se. KĂ«shtu, bazuar nĂ« ndryshimet nĂ« kohĂ«n e funksionimit, mund tĂ« merret njĂ« ide pĂ«r natyrĂ«n e tĂ« dhĂ«nave tĂ« pĂ«rdorura nĂ« ndarje.
Daniel J. Bernstein, një ekspert i njohur në fushën e kriptografisë, ishte në gjendje të përgatiste një demonstrim pune të provës se sulmi mund të kryhej në praktikë. Në dy nga tre eksperimentet e kryera, gjatë ekzekutimit të kodit në tabelën Raspberry Pi 2, ishte e mundur të rikrijohej plotësisht çelësi privat Kyber-512 bazuar në matjet e kohës së deshifrimit të të dhënave. Metoda mund të përshtatet edhe për çelësat Kyber-768 dhe Kyber-1024. Për të kryer me sukses një sulm, është e nevojshme që teksti i koduar i specifikuar nga sulmuesi të përpunohet duke përdorur të njëjtin çift çelësash dhe që koha e ekzekutimit të operacionit të mund të matet me saktësi.
Një tjetër rrjedhje (KyberSlash2) është identifikuar në disa biblioteka, e cila gjithashtu ndodh për shkak të përdorimit të një vlere sekrete gjatë kryerjes së ndarjes. Dallimet nga opsioni i parë zbresin në thirrjen në fazën e enkriptimit (në funksionet poly_compress dhe polyvec_compress), dhe jo gjatë deshifrimit. Megjithatë, opsioni i dytë mund të jetë i dobishëm për një sulm vetëm në rastet kur procedura përdoret në operacionet e rikriptimit në të cilat dalja e tekstit të shifruar konsiderohet konfidenciale.
Dobësia tashmë është rregulluar në biblioteka:
- zig/lib/std/crypto/kyber_d00.zig (22 dhjetor),
- pq-crystals/kyber/ref (30 dhjetor),
- simbolicsoft/kyber-k2so (19 dhjetor),
- cloudflare/circl (8 janar),
- aws/aws-lc/crypto/kyber (4 janar),
- liboqs/src/kem/kyber (8 janar).
Bibliotekat që nuk janë prekur fillimisht nga cenueshmëria:
- boringssl/kripto/kyber,
- filippo.io/mlkem768,
- formosa-crypto/libjade/tree/main/src/crypto_kem,
- kyber/common/amd64/avx2,
- formosa-crypto/libjade/tree/main/src/crypto_kem/kyber/common/amd64/ref,
- pq-kristale/kyber/avx2,
- pqclean/crypto_kem/kyber*/avx2.
Dobësia mbetet e parregulluar në biblioteka:
- antontutoveanu/crystals-kyber-javascript,
- Argyle-Software/kyber,
- debian/src/liboqs/unstable/src/kem/kyber,
- kudelskisecurity/crystals-go,
- mupq/pqm4/crypto_kem/kyber* (Më 20 dhjetor, vetëm 1 version i cenueshmërisë u rregullua)
- PQClean/PQClean/crypto_kem/kyber*/aarch64,
- PQClean/PQClean/crypto_kem/kyber*/clean,
- randombit/botan (Më 20 dhjetor, vetëm 1 cenueshmëri u rregullua),
- rustpq/pqcrypto/pqcrypto-kyber (një rregullim u shtua në libsignal më 5 janar, por dobësia nuk është rregulluar ende në vetë pqcrypto-kyber).
Burimi: opennet.ru
