Isinulat ni Liam 'Akiba' Wright
Isinalin ni Saoirse, Foresight News
Bago pa man ma-connect ang hardware wallet sa network, maaari nang mabigo ang seguridad nito. Maaaring i-isolate ang isang air-gapped hardware wallet mula sa internet sa loob ng maraming taon, ngunit mula sa pagkakalikha ng mnemonic seed, ang panganib ay naka-imbak na.
Ang bagong ipinahayag na butas sa random number ng Coldcard ay perpektong ipinapatotohanan ang safety trap na ito. Ang mga wallet na naapektuhan ay makakagawa ng isang set ng 12 o 24-word recovery mnemonic na tila lubos na normal, kung saan ang user ay maaaring maingat na i-save ang mnemonic at i-sign ang transaksyon nang offline. Gayunpaman, ang saklaw ng ilalim na random number generator ay talagang napakaliit. Ang mga attacker ay maaaring mag-exhaustive search sa lahat ng posibleng seed combinations sa ibang device, muling i-reconstruct ang mga candidate seed; at pagkatapos ay i-match sa public Bitcoin ledger upang filtarin ang mga effective seed na tumutugma sa totoong address.
Sa palagay ko, ang kaligtasan ng wallet ay nasukat na sa pagkakalikha ng seed. Bago ang mga pagsisiguro tulad ng PIN code, steel mnemonic backup board, tamper-evident seals, at air-gapped systems ay magsimula na magtrabaho, kailangan muna ng seed na mabuo mula sa isang totoong maaasahang pinagmulan ng random.
Ang isang mahusay na modernong generator ng random numbers ay makakapaglabas ng sapat na entropy. Ngunit kung ang isang attacker ay may kamalayan sa lohika ng pagpapatakbo ng generator ng random numbers, maaari itong mag-reverse engineer sa buong proseso ng paggawa.
Ang paghuhulog ng dice nang manu-manong nagbibigay sa mga user ng isang set ng random source, kung saan ang randomness ay direktang kontrolable at independiyente sa code na isinulat ng vendor.
Mga mahinaan sa kaligtasan ng Bitcoin wallet
Ang pagbuo ng seed ng Coldcard ay may nakatago na panganib sa seguridad. Maaaring magbuo ng mga kandidatong seed ang mga attacker sa labas ng device, i-convert sa public key address, at i-match at i-scan sa mga transaksyon sa public ledger ng Bitcoin upang isagawa ang pag-atake.
Ang teknikal na ugat ng vulnerability ay maliit na nakakatakot. Isang pagbabago sa code noong Marso 1, 2021, ay naglilipat ng seed generation function ng Coldcard sa isang bagong codebase. Sa production firmware, ang configuration item na MICROPY_HW_ENABLE_RNG ay itinakda bilang 0, na nangangahulugan na pinagpapalabas ang hardware random number generator; ngunit ang logic ng code integration ay tanging sinusuri kung umiiral ang configuration item, at hindi binabasa ang halaga nito. Kung umiiral ang configuration item, iiwanan ng sistema ang hardware random number generator at papasukin ang deterministikong algorithm na Yasmarang mula sa MicroPython bilang backup. Ayon sa Block joint analysis report, ang may defekto na logic na ito ay ipinakalabas sa publiko noong Marso 17 kasama ang firmware version 4.0.0.
Ang generated mnemonic ay tila walang anumang anomali, ngunit ang search space na maaaring i-brute-force sa likod nito ay napakalaki ng pagbaba. Ayon sa paunang pagkalkula ng Coinkite, ang epektibong search space ng seed para sa mga affected na Mk2 at Mk3 models ay lamang halos 40 bits; ang epektibong search space ng seed para sa mga affected na Mk4, Mk5, at Q-series models ay halos 72 bits.
Ang Block team ay nagtataguyod ng mga partikular na limitasyon para sa mga susunod na modelo: kapag ang estado ng backup algorithm ay fixed at ang kasaysayan ng pagtawag ay fixed, mayroon lamang 2^32 na natatanging random stream. Ang data na ibinigay ng Coinkite ay nagbibigay ng estima sa epektibong saklaw ng paghahanap na maaaring maibigay ng isang attacker.
Ang parehong dalawang pagsusuri ay nagpatotoo na ang lahat ng huling modelo bago ang firmware repair ay nasa sakop ng panganib. Sinasabi ng safety advisory ni Coinkite: ang mga firmware ng Mk4 at Mk5 na mas mababa sa standard 5.6.0 at Edge 6.6.0X; at ang mga firmware ng Q-series na mas mababa sa standard 1.5.0Q at Edge 6.6.0QX ay nakaaapekto. Para sa Mk2 at Mk3, tinukoy ni Coinkite ang mga panganib na bersyon bilang 4.0.1 hanggang 4.1.9, samantalang ang Block team ay naniniwala na ang vulnerability ay umiiral na mula sa bersyon 4.0.0. Para sa kontrobersyal na hangganan ng bersyon, inirerekomenda na maging konservatibo ang mga user.
Nagpapakita ang insidente na ito nang buong pagkakataon: hindi lamang ang pag-install ng bagong firmware ang nakakatulong upang ayusin ang mga安全隐患 sa umiiral na wallet. Ang pag-upgrade sa patched version ay nagpapanatili lamang ng kaligtasan para sa mga bagong seed na gagawin; ang lahat ng lumang seed na nai-generate ay magpapanatili lamang ng entropy na natanggap sa oras ng paglikha, at ang lahat ng address na nagmumula sa seed na ito ay nagbabahagi ng iisang pangunahing key.
Dapat suriin ng lahat ng gumagamit ng risk firmware ang opisyal na safety advisory. Kung hindi mo ma-verify na ang seed ay ginawa ng sapat na manual dice rolls, kailangan mong gamitin ang fixed firmware, gumamit ng tiwalaang random source upang lumikha ng bagong seed, at ilipat ang iyong pera sa bagong wallet. Kung gagamitin mo lang ang lumang mnemonic upang lumikha ng bagong address, mananatili ang orihinal na security flaw.
Ipinahayag ng Bitcoin Optech noong Hulyo 31 ang isang pagsasabay na pagtatantiya na higit sa 1,000 BTC ang nasasakop ng mga apektadong asset. Hanggang Agosto 2, tinantiya ng Galaxy Research na mayroong halos 1,367 BTC sa risk sa loob ng 4,585 mga address. Isang user sa X na may username na Graham_Quantum ay nagsabi na noong Hulyo 29, may 18.25245043 BTC na inilipat mula sa kaugnay na wallet.
Pagkatapos ma-expose ang mensahe, naglipat ng ari-arian ang malaking bilang ng mga user para sa pag-iingat, na nagdulot ng mas malaking paggalaw ng pera. Pagkatapos ma-disclose ang balita tungkol sa漏洞, naglipat ang 77,402 BTC mula sa luma at hindi pa ginagamit na UTXO pool.
Kailangan panghiwalayin ang dalawang uri ng data:

Ang insidente sa seguridad na ito ay nagdulot ng dalawang malaking epekto: una, ang pagkakawala ng mga asset ng hacker, at pangalawa, ang mas malaking alon ng mga user na aktibong lumipat para sa kanilang sariling pagprotekta.
Ang butas sa wallet ng Coldcard na may halagang humigit-kumulang sa $89 milyon ay nagdulot ng pinakamalaking paglipat ng bitcoin sa chain mula pa noong ang FTX ay nabigo, at malubhang nagkakalituhan sa pagpapaliwanag ng mga signal ng merkado. Ang mga libo-libong gumagamit ay naglipat nang may kagalakan ang kanilang bitcoin mula sa kanilang lumang wallet, na nagresulta sa pagkakalito sa katotohanan ng mga babaeng signal na inilabas ng mga pangunahing指标 sa chain.
Ano ang mga pagbabago na maaaring dala ng paghuhulog ng dice nang manu-manu?
Ayon sa pagsusuri ng opisyal na dokumentasyon ng Coldcard Dice: Ang isang patas na anim-sidong dice, bawat hiwalay na paghuhulog ay nagbibigay ng halos 2.585 bit ng entropy. Ang paghuhulog ng 50 beses ay nagpapagawa ng halos 129.25 bit ng orihinal na entropy, na sapat para sa karaniwang 128-bit na antas ng seguridad; ang paghuhulog ng 99 beses ay nagpapagawa ng halos 255.91 bit ng orihinal na entropy, na halos tumutugma sa 256-bit na antas ng seguridad (hindi pa ito pinroseso ng built-in conversion algorithm ng wallet).
Ang mga halagang ito ay tumutugma sa malawakang ginagamit na pamantayan ng BIP-39 mnemonic: ang 12-word mnemonic ay nag-e-encode ng 128-bit entropy kasama ang 4-bit checksum; ang 24-word mnemonic ay nag-e-encode ng 256-bit entropy kasama ang 8-bit checksum.

Ang offline isolation mechanism ng hardware wallet ay nagpaprotekta lamang sa mnemonic na nabuo, hindi nito maiaayos ang mga kahinaan sa randomization sa proseso ng pagbuo; kailangan ng pribadong paghuhulog ng dice upang makakuha ng independiyenteng entropy upang makabuo ng ligtas na BIP-39 mnemonic.
Ang checksum ay ginagamit lamang para makatukoy sa mga pagkakamali sa pagsusulat ng mnemonic phrase. Ang tunay na nagpapasya sa kaligtasan ay ang pangunahing orihinal na random data. Ang hashing at standard formatting ay maaaring magbigay ng mas magandang anyo sa mababang entropy input, ngunit ang kabuuang espasyo ng lahat ng posibleng key ay hindi lalawig. Ang mga 12 salita na tila nagbibigay ng kapanatagan ay maaaring galing sa napakaliit na pool ng random.
Ang kondisyon para sa paggamit ng manual na paghagis ng dice bilang pagsisiguro: ang lohika ng wallet ay dapat tama at tanggapin ang random na data na ginawa ng dice. Ang dice mismo ay dapat sapat, at bawat hagis ay dapat totoo at walang ugnayan sa isa’t isa, at ang buong sequence ng hagis ay dapat manatiling lihim. Ang paggamit muli ng pattern ng hagis, pagkuha ng rekord, pag-iimbak ng sequence sa cloud, o pagpapakilala ng resulta sa computer na may koneksyon sa internet, ay magpapabagsak sa independensya at lihim ng randomness.
Tungkol sa pangyayaring seguridad ng Coldcard na ito, sinabi ng Coinkite: Ang mga user ay maaaring iwasan ang paglipat ng mga ari-arian kung sila ay makakatotoo na ginawa ang hindi bababa sa 50 na patas, independiyente, at lihim na paghagis ng dice noong pagbuo ng huling seed; sa anumang kaso ng pag-aalinlangan, inirerekomenda ng opisyal na ilipat ang pera.
Para sa akin, ang pangunahing halaga ng manual dice ay: ang pagkakabatay sa loob na random number ng device ay nangangahulugan na kailangan mong tiwalaan nang walang kondisyon ang buong chain ng hardware, firmware, compilation process, at integrated code.
Ang tamang proseso ng pag-input ng dice ay maaaring magdala ng entropy na nasa labas ng tiwalaang chain at kontrolado ng user. Ang halos 50 na patas na pag-hipo ng dice ay tumutugma sa 128-bit na antas ng seguridad, habang ang 99 ay tumutugma sa 256-bit na antas ng seguridad. Ngunit kailangang sundin ng user nang maayos ang opisyal na proseso ng device at huwag magdisenyo ng sariling solusyon para sa pag-convert ng random number.
I-set ang isang malakas at natatanging BIP-39 passphrase upang pataasin ang hadlang sa pag-atake mula sa isang iba’t ibang dimensyon. Ang passphrase ay katumbas ng isang hiwalay na key; kahit na makakuha ang isang attacker ng mnemonic phrase, kailangan pa rin niyang i-decrypt ang passphrase upang ma-access ang mga ari-arian. Tandaan: Ang entropy ng mnemonic phrase mismo ay hindi papataasin dahil sa pagdaragdag ng passphrase. Anumang passphrase (kahit na isang character lang ang mali) ay magdadala sa isang legal na set ng wallet address, at kung nawala ang passphrase, ang mga ari-arian ay magiging permanenteng nakakulong. Ang papel ng PIN code sa hardware wallet ay iba sa passphrase.
Ang pagpapagana ng password ng pagpasok ay may sariling kompromiso: kung kayang mong pangalagaan at muling ipakita nang tama ang password ng pagpasok, ito ay magiging malakas na pangalawang pader; ngunit kung ang iyong plano para sa back-up ay hindi sapat, ang tampok na ito ay maaaring magdulot ng pagkawala ng pag-access sa iyong mga ari-arian.
Muling umuulit ang mga panganib mula sa mahinang randomisasyon
Ang vulnerability sa Coldcard ay muli'y nagpapaalala sa lahat: ang pundasyon ng seguridad ng Bitcoin wallet ay ang sapat na malakas na randomness sa sandaling pagbuo ng seed. Ang katulad na base defect ay nangyari nang paulit-ulit sa iba't ibang produkto ng wallet.
Noong 2023, inilabas ng Ledger Donjon ang impormasyon: ang partikular na bersyon ng Trust Wallet browser extension ay gumagamit ng 32-bit Mersenne Twister algorithm upang lumikha ng random seed sa WebAssembly execution path. Ang lahat ng mga mnemonic na ito, na tila normal, ay nagmula sa halos 4 bilyong initial values. Ang sakop ng panganib ay malinaw: ang browser extensions na may bersyon 0.0.172 hanggang 0.0.182 na may Trust Wallet Core na bersyon bago 3.1.1. Ipinapakita ng National Vulnerability Database ng Estados Unidos na ginamit ang vulnerabilities na ito noong Disyembre 2022 at Marso 2023.
Ang insidente ng “Milk Sad Vulnerability” ay direktang ipinakita ang katulad na panganib. Ang bx seed command sa Libbitcoin Explorer 3.x ay gumagamit ng 32-bit Mersenne Twister algorithm na batay sa sistemang oras; sa parehong kondisyon ng oras, maaaring mag-generate ang software ng magkakaparehong mnemonic phrase. Kung alam ng attacker ang halos kung kailan ginawa ang seed, mas maliit ang hanapin kaysa sa espasyo na ipinapakita ng mnemonic phrase.
Nakatuklas ang mga mananaliksik sa loob ng risk zone ng higit sa 2,600 aktibong Bitcoin wallet; batay sa presyo noong Agosto 2023, ang halaga ng mga ari-arian na nasakop ay hihigit sa $900,000 sa iba’t ibang blockchain. Higit sa 2,550 sa mga wallet na ito ay nagpapakita ng mga katangian ng automation at malamang ay nasa ilalim ng iisang owner. Pinagtibay din ng mga mananaliksik na ang ilang pagkakasakop ay maaaring nagkaroon ng iba pang security vulnerabilities.
Ang mga butas na ito ay laging dumating sa iba’t ibang anyo: ang Coldcard ay nagsanhi ng pagpapalit sa backup na algorithm ng firmware; ang Trust Wallet browser extension at ang Libbitcoin command-line tool ay nagkakaroon ng mahinang random number dahil sa pagkakasalig sa system clock. Ang mga key ng wallet na nabuo ay tila walang kapintasan, ngunit ang sukat ng pool ng mga key na maaaring i-scan ay sapat na maliit upang magdulot ng malubhang panganib.
Ang karamihan sa mga rekomendasyon sa pagtatago ng bitcoin sa merkado ay nagsisimula pagkatapos ng pagbuo ng seed: pagsasagawa ng offline sa mnemonic phrase, paggamit ng matibay na medium para sa backup, paghihiwalay ng mga pahintulot, at pagsubok sa proseso ng pagbabalik. Ang mga hakbang na ito ay patuloy na may halaga. Ngunit ang insidente sa Coldcard ay nagpapaalala sa atin na kailangan nating i-advance ang mga pader ng seguridad isang hakbang pa unahan.
Ang air gap ay nagpaprotekta lamang sa mga key na iyong naisulat sa device. Dahil dito, ang seguridad ng Bitcoin wallet ay dapat magsimula sa isang tiwalaang pinagmulan ng random.

