Įsilaužėlis per 41 minutę ištuštino 1 196 „Bitcoin“ pinigines ir pavogė 70 mln. dolerių

<? pb_alt_attr(); ?>

Įsilaužėlis per 41 minutę ištuštino 1 196 „Bitcoin“ pinigines todėl, kad taikiniu tapo ne pati „Bitcoin“ blokų grandinė, o piniginių raktų generavimo silpnumas. Tai priskiriama kriptovaliutų kibernetinių nusikaltimų ir privačių raktų kompromitavimo kategorijai: jei „seed“ frazė arba privatus raktas sugeneruojamas su per maža entropija, užpuolikas gali jį atspėti, atkurti piniginę ir pasirašyti teisėtas operacijas.

Kodėl šis atvejis nėra „Bitcoin“ tinklo nulaužimas?

„Bitcoin“ veikia pagal viešojo ir privataus rakto kriptografiją. Tinklas tikrina, ar operaciją pasirašė tas, kas turi privatų raktą. Jeigu raktas pavagiamas arba apskaičiuojamas, blokų grandinė tokios operacijos nelaiko neteisėta.

Dėl šios priežasties 1 196 piniginių ištuštinimas rodo raktų saugumo problemą. Užpuolikui nereikėjo keisti blokų grandinės istorijos, apeiti konsensuso taisyklių ar laužti „Bitcoin“ protokolo. Jam pakako gauti raktus, kurie kontroliavo lėšas.

Rodiklis Reikšmė Ką tai rodo
Ištuštintos piniginės 1 196 Ataka buvo automatizuota ir nukreipta į daug taikinių vienu metu.
Trukmė 41 minutė Užpuolikas greitai pasirašė ir išsiuntė operacijas.
Pavogta vertė apie 70 mln. JAV dolerių Rizika kyla, kai silpni raktai saugo didelės vertės turtą.
Pagrindinis pažeidžiamumas silpna „seed“ entropija Numatomas atsitiktinumas leidžia atkurti privačius raktus.

Kaip silpna entropija leidžia pavogti bitkoinus?

Entropija apibūdina, kiek nenuspėjamas yra raktas. Kriptografijoje ji dažnai matuojama bitais. Kuo daugiau bitų, tuo daugiau galimų kombinacijų turi patikrinti užpuolikas.

Matematiškai galimų variantų skaičius yra 2n, kur n yra entropijos bitų skaičius. 128 bitų entropija reiškia 2128 galimų variantų, o 32 bitai – tik 232, tai yra 4 294 967 296 variantai. Šiuolaikinei automatizuotai paieškai tai jau nėra ta pati saugumo klasė.

Praktiškai užpuolikas gali generuoti galimas „seed“ frazes, iš jų išvesti privačius raktus, apskaičiuoti „Bitcoin“ adresus ir tikrinti, ar juose yra nepanaudotų išėjimų, vadinamų UTXO. Radęs lėšų, jis pasirašo pervedimą savo adresu.

Kuo čia svarbios „seed“ frazės ir „Coldcard“?

„Seed“ frazė yra žmogui įskaitomas piniginės atkūrimo pagrindas. Pagal BIP39 standartą 12 žodžių frazė paprastai remiasi 128 bitų entropija, o 24 žodžių frazė – 256 bitų entropija. Tai saugu tik tada, kai pradiniai atsitiktiniai duomenys tikrai nenuspėjami.

„Coldcard“ yra „Bitcoin“ aparatinė piniginė, susijusi su privačių raktų saugojimu ir „seed“ frazių valdymu. Tačiau pati aparatinė piniginė negali pataisyti situacijos, jeigu vartotojas į ją importuoja anksčiau silpnai sugeneruotą frazę. Saugumas prasideda nuo raktų sukūrimo momento.

Kaip tokia ataka galėjo būti vykdoma?

Tokio tipo vagystė paprastai remiasi ne rankiniu spėliojimu, o automatizuota procedūra. Užpuoliko tikslas – sumažinti paieškos erdvę iki tokios, kurią galima peržiūrėti kompiuteriais.

  • sudaromas galimų silpnų „seed“ reikšmių sąrašas;
  • iš kiekvienos reikšmės išvedami privatūs raktai ir adresai;
  • adresai tikrinami blokų grandinėje;
  • radus lėšų, sukuriama ir pasirašoma operacija;
  • lėšos pervedamos į užpuoliko kontroliuojamus adresus.

41 minutės trukmė rodo, kad lemiama darbo dalis galėjo būti atlikta dar prieš pačias vagystes: paieška, adresų žemėlapiai ir operacijų paruošimas. Kai raktai jau žinomi, piniginių ištuštinimas tampa vykdymo, o ne įsilaužimo į tinklą klausimu.

Ką šis atvejis parodo apie kriptovaliutų saugumą?

Pagrindinė pamoka aiški: „Bitcoin“ saugumas priklauso ne tik nuo protokolo, bet ir nuo to, kaip vartotojas sukuria bei saugo privatų raktą. Silpna entropija paverčia net teisėtą piniginę nuspėjama.

Riziką didina piniginių kūrimas nepatikimais įrankiais, senomis programomis, naršyklės skriptais ar rankiniu būdu parinktais žodžiais. Saugiam raktui būtinas kriptografiškai patikimas atsitiktinumas, nes blokų grandinė neturi mechanizmo atšaukti jau pasirašytą ir patvirtintą operaciją.

Šaltinis: https://hackingpassion.com/coldcard-seed-entropy-bitcoin-theft/