Ditulis oleh Liam 'Akiba' Wright
Diterjemahkan oleh: Saoirse, Foresight News
Sebelum dompet peranti keras disambungkan ke rangkaian, pertahanan keselamatan dompet sudah boleh gagal. Sebuah dompet peranti keras yang terpisah sepenuhnya mungkin dapat mengasingkan kunci peribadi daripada internet selama bertahun-tahun, tetapi risiko sudah ditanam sejak saat benih ingatan dihasilkan.
Lubang keamanan nombor rawak yang baru-baru ini diumumkan oleh Coldcard membuktikan perangkap keselamatan ini dengan sempurna. Dompet yang terjejas mampu menghasilkan satu set frasa pemulihan 12 atau 24 perkataan yang kelihatan sepenuhnya normal, di mana pengguna boleh menyimpan frasa tersebut dengan selamat dan menandatangani transaksi secara luar talian. Namun, julat penghasilan nombor rawak asas sebenarnya jauh lebih kecil. Penyerang boleh mencuba semua kemungkinan kombinasi benih pada peranti lain, memulihkan benih calon; kemudian membandingkannya dengan buku besar Bitcoin yang terbuka untuk menyaring benih yang betul yang sepadan dengan alamat sebenar.
Menurut saya, nasib keselamatan dompet sudah ditentukan pada masa penciptaan benih. Sebelum langkah-langkah perlindungan seperti PIN, papan simpanan mnemonik logam, begul tertutup anti-penggubahan, dan isolasi udara berfungsi, benih terlebih dahulu harus dihasilkan daripada sumber rawak yang benar-benar boleh dipercayai.
Sebuah penghasil nombor rawak moden yang berkualiti tinggi mampu menghasilkan entropi yang mencukupi. Namun, jika penyerang menguasai logik operasi penghasil nombor rawak, mereka mungkin boleh menyelesaikan semula keseluruhan proses penghasilan.
Menggulung dadu secara manual memberikan pengguna satu sumber rawak, di mana kerawakan adalah intuitif dan boleh dikawal, serta bebas daripada kod yang ditulis oleh pembuat.
Lubang keamanan tersembunyi dalam dompet Bitcoin
Penghasilan benih Coldcard menyembunyikan risiko keselamatan. Penyerang boleh menghasilkan benih calon di luar peranti, menukarnya kepada alamat kunci awam, dan menyamakan dengan rekod transaksi alamat di buku besar Bitcoin untuk melaksanakan serangan.
Akar teknikal lubang keamanan ini begitu kecil sehingga menakutkan. Pada 1 Mac 2021, perubahan kod memindahkan fungsi penghasilan benih Coldcard ke perpustakaan kod baharu. Dalam firmware pengeluaran, tetapan MICROPY_HW_ENABLE_RNG ditetapkan sebagai 0, yang bermaksud penghasil rawak peranti dilumpuhkan; tetapi logik integrasi kod hanya memeriksa sama ada tetapan ini wujud, tanpa membaca nilai tetapan tersebut. Selagi tetapan ini wujud, sistem akan meninggalkan penghasil rawak peranti dan beralih ke algoritma deterministik Yasmarang dalam MicroPython sebagai penyelesaian simpanan. Menurut laporan analisis bersama Block, logik bercacat ini telah dikeluarkan secara rasmi pada 17 Mac bersama firmware versi 4.0.0.
Kata sandi yang dihasilkan kelihatan tanpa sebarang keanehan, tetapi ruang carian yang boleh dijajah di belakangnya telah dikurangkan secara ketara. Menurut pengiraan awal Coinkite, ruang carian berkesan untuk benih pada model Mk2 dan Mk3 yang terjejas hanyalah sekitar 40 bit; ruang carian berkesan untuk benih pada model Mk4, Mk5, dan siri Q yang terjejas adalah sekitar 72 bit.
Pasukan Block mengenakan syarat khas untuk model seterusnya: apabila keadaan algoritma simpanan dan sejarah panggilan tetap, hanya terdapat 2^32 aliran rawak yang boleh dibezakan. Data yang diberikan oleh Coinkite menganggarkan julat carian berkesan yang boleh dilalui oleh penyerang.
Kedua-dua laporan analisis mengesahkan bahawa semua model akhir sebelum pembaikan firmware berada dalam lingkungan risiko. Pengumuman keselamatan Coinkite menyatakan bahawa firmware Mk4 dan Mk5 sebelum versi standard 5.6.0 dan Edge 6.6.0X; serta firmware siri Q sebelum versi standard 1.5.0Q dan Edge 6.6.0QX turut terjejas. Bagi Mk2 dan Mk3, Coinkite menyenaraikan versi berisiko sebagai 4.0.1 hingga 4.1.9, manakala pasukan Block berpendapat bahawa lubang kelemahan sudah wujud sejak versi 4.0.0. Untuk sempadan versi yang kontroversial ini, pengguna disarankan untuk mengambil pendekatan berhati-hati.
Peristiwa ini menunjukkan dengan jelas: hanya memasang firmware versi terbaru tidak dapat memperbaiki celah keselamatan dompet yang sudah ada. Peningkatan ke versi yang diperbaiki hanya menjamin keselamatan benih yang dihasilkan seterusnya; semua benih lama yang telah dihasilkan hanya akan menyimpan nilai entropi yang diperoleh pada masa penciptaan, dan semua alamat yang diturunkan daripada benih tersebut berkongsi kunci bawah yang sama.
Semua pengguna yang menggunakan versi firmware berisiko harus merujuk kepada pengumuman keselamatan rasmi. Kecuali anda dapat mengesahkan bahawa benih dihasilkan sepenuhnya melalui lambungan dadu manual, anda mesti menggunakan firmware yang telah diperbaiki, menghasilkan benih baharu berdasarkan sumber rawak yang boleh dipercayai, dan memindahkan dana anda ke dompet baharu. Jika anda hanya menghasilkan alamat baharu menggunakan mnemonic lama, kelemahan keselamatan asal akan kekal tanpa perubahan.
Bitcoin Optech mempublikasikan anggaran dinamik pada 31 Julai, dengan aset yang terancam melebihi 1,000 BTC. Sehingga 2 Ogos, Galaxy Research menganggarkan bahawa sebanyak 1,367 BTC berada dalam risiko di 4,585 alamat. Seorang pengguna X dengan nama pengguna Graham_Quantum menyatakan bahawa 18.25245043 BTC telah dipindahkan dari dompet berkaitan pada 29 Julai.
Selepas berita itu terbongkar, ramai pengguna memindahkan aset mereka demi keselamatan, menghasilkan aliran dana yang jauh lebih besar. Selepas berita lubang keamanan diumumkan, 77,402 BTC telah dipindahkan dari kolam UTXO lama yang belum dibelanjakan.
Dua jenis data perlu dibezakan:

Keselamatan yang gagal ini memicu dua kesan utama: pertama, perompak mencuri aset, dan kedua, gelombang pengguna yang secara aktif berpindah untuk melindungi diri mereka sendiri dalam skala yang lebih besar.
Lubang keamanan dompet Coldcard bernilai sekitar US$89 juta menyebabkan perpindahan dana Bitcoin terbesar sejak kegagalan FTX, serta mengganggu pembacaan isyarat pasaran. Ribuan pengguna memindahkan Bitcoin dari dompet lama mereka secara mendadak, membuat isyarat utama di rantai Bitcoin yang bersifat bearish sukar untuk dibezakan antara yang asli dan yang palsu.
Manually rolling the dice can bring about what changes?
Dokumen rasmi Coldcard dadu: Sebuah dadu enam muka yang adil, setiap lambungan bebas menghasilkan kira-kira 2.585 bit entropi. Lambungan 50 kali menghasilkan kira-kira 129.25 bit entropi mentah, memenuhi piawai keselamatan 128-bit biasa; lambungan 99 kali menghasilkan kira-kira 255.91 bit entropi mentah, hampir mencapai piawai keselamatan 256-bit (nilai ini belum melalui algoritma penukaran dalaman dompet).
Nilai-nilai ini selari dengan piawaian kata ingatan BIP-39 yang digunakan secara meluas: 12 kata ingatan mengkodkan 128 bit entropi ditambah 4 bit semakan; 24 kata ingatan mengkodkan 256 bit entropi ditambah 8 bit semakan.

Mekanisme isolasi luar talian untuk dompet keras hanya boleh melindungi frasa pemulihan yang telah dihasilkan, tetapi tidak boleh memperbaiki kelemahan rawak semasa proses penghasilan; untuk menghasilkan frasa BIP-39 yang selamat, anda perlu menggunakan dadu sulit untuk mendapatkan entropi bebas.
Semakan jumlah hanya digunakan untuk mengenal pasti kesilapan penyalinan frasa pemulihan. Yang benar-benar menentukan keselamatan ialah data rawak asal di bawahnya. Pengiraan hash dan pemformatan piawai boleh mempercantik input entropi rendah, tetapi ruang keseluruhan kemungkinan kunci tidak akan bertambah. Frasa 12 perkataan yang kelihatan menenangkan mungkin berasal dari kolam rawak yang sangat kecil.
Syarat untuk penggunaan dadu manual sebagai langkah perlindungan: proses binaan dompet mesti menerima data rawak yang dihasilkan oleh dadu dengan betul. Dadu itu sendiri mestilah sah, setiap lambungan harus benar-benar rawak dan tidak saling mempengaruhi, serta urutan lambungan mesti dikecualikan sepenuhnya. Penggunaan semula pola lambungan, merekam gambar, menyimpan urutan di awan, atau memasukkan keputusan ke dalam komputer yang terhubung ke internet akan merosakkan kebebasan dan kerahsiaan rawak.
Mengenai insiden keselamatan Coldcard ini, Coinkite menyatakan: hanya pengguna yang dapat membuktikan bahawa sekurang-kurangnya 50 kali lontaran dadu yang adil, bebas, dan sulit telah dilakukan semasa penghasilan benih akhir boleh mengecualikan pemindahan aset; bagi mana-mana situasi yang tidak pasti, pihak rasmi menyarankan agar dana dipindahkan.
Bagi saya, nilai utama dadu manual ialah: bergantung pada nombor rawak yang dibina dalam peranti bermaksud anda harus mempercayai sepenuhnya rantai keseluruhan, termasuk peranti keras, firmware, proses kompilasi, dan kod terintegrasi.
Prosedur pengisian dadu yang terstandardisasi dapat memperkenalkan entropi yang bebas daripada rantai kepercayaan ini dan dikendalikan sepenuhnya oleh pengguna. Sekitar 50 kali lemparan dadu yang adil setara dengan tahap keselamatan 128 bit, dan 99 kali setara dengan tahap keselamatan 256 bit. Namun, pengguna mesti mengikuti prosedur operasi rasmi peranti dengan ketat, dan jangan merancang skema transformasi nombor rawak sendiri.
Tetapkan kata laluan BIP-39 yang kuat dan unik untuk meningkatkan paras serangan dari sudut yang berbeza. Kata laluan bertindak sebagai kunci tersendiri; walaupun penyerang mendapat kata ingatan, mereka masih perlu memecahkan kata laluan untuk mengakses aset. Perhatikan: entropi kata ingatan itu sendiri tidak meningkat kerana penambahan kata laluan. Sebarang kata laluan (walaupun hanya satu aksara salah) akan menghasilkan satu set alamat dompet yang sah; sekiranya kata laluan hilang, aset akan terkunci selamanya. Kod PIN dompet keras berfungsi secara berbeza daripada kata laluan.
Mengaktifkan kata laluan akses sendiri melibatkan kompromi: jika anda mampu menyimpannya dengan baik dan mengulanginya dengan tepat, ia akan membina garis pertahanan kedua yang kuat; tetapi jika cadangan simpanan tidak lengkap, fungsi ini malah boleh menyebabkan anda benar-benar tidak dapat mengakses aset anda.
Masalah kerentanan rawak lemah berulang kali muncul
Lubang Coldcard sekali lagi mengingatkan semua orang: dasar keselamatan dompet Bitcoin ialah keacakan kuat yang ada pada ketika benih dihasilkan. Cacat asas serupa pernah berlaku berturut-turut pada pelbagai produk dompet yang berbeza.
Pada tahun 2023, Ledger Donjon mengumumkan bahawa ekstensi pelayar Trust Wallet versi tertentu menggunakan algoritma Mersenne Twister 32-bit untuk menghasilkan benih rawak dalam laluan pengendalian WebAssembly. Semua frasa pemulihan yang kelihatan normal ini berasal daripada sekitar 4 miliar nilai awal. Lingkungan risiko jelas: ekstensi versi 0.0.172 hingga 0.0.182 yang membawa Trust Wallet Core versi sebelum 3.1.1. Pangkalan Data Kekerapan Nasional Amerika Syarikat mencatat bahawa lubang ini telah dimanfaatkan pada Disember 2022 dan Mac 2023.
Peristiwa "Lubang Milk Sad" secara langsung menunjukkan risiko sejenis. Perintah bx seed pada Libbitcoin Explorer 3.x menggunakan algoritma Mersenne Twister 32-bit yang disemai berdasarkan masa sistem; dalam keadaan jam yang sama, perisian mungkin menghasilkan frasa pemulihan yang identik. Penyerang hanya perlu mengetahui masa penciptaan benih dengan kasar, maka julat percubaan akan jauh lebih kecil daripada ruang yang disiratkan oleh frasa pemulihan itu sendiri.
Penyelidik menemui lebih daripada 2,600 dompet Bitcoin yang masih aktif digunakan dalam julat risiko; berdasarkan harga pada Ogos 2023, nilai aset yang dicuri berkaitan di pelbagai rantai awam melebihi US$900,000. Lebih daripada 2,550 dompet menunjukkan ciri-ciri operasi automatik, kemungkinan besar dimiliki oleh pemegang yang sama. Penyelidik juga menunjukkan bahawa beberapa kes pencurian aset mungkin berkaitan dengan kelemahan keselamatan lain.
Lubang keselamatan semacam ini sentiasa muncul dengan rupa yang berbeza: Coldcard secara tidak sengaja memicu algoritma rawak alternatif firmware; ekstensi browser Trust Wallet dan alat baris arahan Libbitcoin menghasilkan nombor rawak lemah kerana bergantung pada jam sistem. Kunci dompet yang dihasilkan kelihatan tanpa cacat, tetapi jumlah ruang kunci yang boleh disemak sangat kecil sehingga membawa risiko mematikan.
Sebahagian besar cadangan pengurusan Bitcoin di pasaran berfokus selepas penjanaan benih: menyimpan frasa pemulihan secara luar talian, menggunakan media simpanan yang tahan lama, pemisahan kuasa, dan menguji prosedur pemulihan. Langkah-langkah ini masih mempunyai nilai. Namun, insiden Coldcard mengingatkan kita bahawa garis pertahanan keselamatan perlu digerakkan sedikit ke hadapan.
Pemisahan udara hanya melindungi kunci yang telah anda masukkan ke dalam peranti. Oleh itu, keselamatan dompet Bitcoin mesti bermula daripada sumber rawak yang boleh dipercayai.

