Penulis: Liam 'Akiba' Wright
Diterjemahkan oleh Saoirse, Foresight News
Sebelum dompet perangkat keras terhubung ke jaringan, lini pertahanan keamanan dompet sudah bisa jebol. Dompet perangkat keras yang terisolasi mungkin dapat mengisolasi kunci pribadi dari internet selama bertahun-tahun, tetapi risiko sudah tertanam sejak momen pembuatan seed mnemonic.
Kerentanan angka acak yang baru saja diungkapkan oleh Coldcard secara sempurna membenarkan jebakan keamanan ini. Dompet yang terpengaruh oleh kerentanan ini dapat menghasilkan satu set kata pemulihan 12 atau 24 kata yang tampak sepenuhnya normal, sehingga pengguna dapat menyimpan kata-kata tersebut dengan aman dan menandatangani transaksi secara offline. Namun, rentang generator angka acak di baliknya sebenarnya jauh lebih kecil. Penyerang dapat melakukan brute force terhadap semua kemungkinan kombinasi benih di perangkat lain, merekonstruksi benih kandidat; kemudian membandingkannya dengan buku besar Bitcoin yang terbuka untuk menyaring benih yang sesuai dengan alamat asli.
Menurut saya, nasib keamanan dompet sudah ditentukan sejak penciptaan seed. Sebelum langkah-langkah perlindungan seperti PIN, papan cadangan mnemonic logam, kantong segel anti-pengrusakan, dan isolasi udara berperan, seed terlebih dahulu harus dihasilkan dari sumber acak yang benar-benar andal.
Sebuah generator angka acak modern yang berkualitas tinggi dapat menghasilkan entropi yang cukup. Namun, jika penyerang menguasai logika operasi generator angka acak, mereka dapat membalikkan seluruh proses generasi.
Melempar dadu secara manual memberikan pengguna satu set sumber acak, di mana keacakan dapat dilihat dan dikendalikan secara langsung, serta terpisah dari kode yang ditulis oleh pabrikan.
Titik lemah tersembunyi dalam keamanan dompet Bitcoin
Pembuatan benih Coldcard menyembunyikan risiko keamanan. Penyerang dapat membuat benih kandidat di luar perangkat, mengubahnya menjadi alamat kunci publik, dan membandingkannya dengan catatan transaksi alamat di buku besar Bitcoin untuk melakukan serangan.
Akar teknis kerentanan ini sekecil yang menakutkan. Pada 1 Maret 2021, perubahan kode memindahkan fungsi pembuatan benih Coldcard ke repositori kode baru. Pada firmware produksi massal, opsi konfigurasi MICROPY_HW_ENABLE_RNG diatur ke 0, yang berarti generator acak perangkat keras dinonaktifkan; namun logika integrasi kode hanya memeriksa apakah opsi konfigurasi tersebut ada, tanpa membaca nilai konfigurasinya. Selama opsi konfigurasi ini ada, sistem akan meninggalkan generator acak perangkat keras dan beralih ke algoritma deterministik Yasmarang di MicroPython sebagai solusi cadangan. Menurut laporan analisis gabungan Block, logika cacat ini dirilis secara resmi pada firmware versi 4.0.0 pada 17 Maret.
Kata sandi yang dihasilkan tampak normal, tetapi ruang pencarian yang dapat dieksplorasi secara brute-force di belakangnya secara drastis diperkecil. Menurut perkiraan awal Coinkite, ruang pencarian efektif untuk seed pada model Mk2 dan Mk3 yang terdampak hanya sekitar 40 bit; sedangkan ruang pencarian efektif untuk seed pada model Mk4, Mk5, dan seri Q yang terdampak sekitar 72 bit.
Tim Block mengajukan batasan khusus untuk model berikutnya: ketika status algoritma cadangan dan riwayat pemanggilan tetap, hanya ada maksimal 2^32 aliran acak yang dapat dibedakan. Data yang diberikan Coinkite memperkirakan jangkauan pencarian efektif yang dapat dijelajahi oleh penyerang.
Kedua laporan analisis memastikan bahwa semua unit model terbaru sebelum perbaikan firmware berada dalam rentang risiko. Pengumuman keamanan Coinkite menyatakan bahwa firmware Mk4 dan Mk5 sebelum versi standar 5.6.0 dan Edge 6.6.0X; firmware seri Q sebelum versi standar 1.5.0Q dan Edge 6.6.0QX terdampak. Untuk Mk2 dan Mk3, Coinkite menetapkan versi berisiko sebagai 4.0.1 hingga 4.1.9, sementara tim Block berpendapat kerentanan sudah ada sejak versi 4.0.0. Untuk batas versi yang kontroversial ini, disarankan pengguna bersikap konservatif.
Insiden ini secara jelas menunjukkan: menginstal firmware versi baru saja tidak cukup untuk memperbaiki kerentanan keamanan dompet yang ada. Pembaruan ke versi yang diperbaiki hanya menjamin keamanan benih yang dihasilkan di masa mendatang; semua benih lama yang sudah dihasilkan hanya akan menyimpan nilai entropi yang diperoleh saat pembuatan, dan seluruh alamat yang diturunkan dari benih tersebut berbagi kunci dasar yang sama.
Semua pengguna yang menggunakan versi firmware berisiko harus membaca pengumuman keamanan resmi. Kecuali Anda dapat memastikan bahwa seed dihasilkan secara manual dengan lemparan dadu yang cukup, Anda harus menggunakan firmware yang telah diperbaiki, menghasilkan seed baru dengan sumber acak yang terpercaya, dan memindahkan dana Anda ke dompet baru. Jika Anda hanya menggunakan mnemonic lama untuk menghasilkan alamat baru, kerentanan keamanan lama akan tetap ada.
Bitcoin Optech merilis perkiraan dinamis pada 31 Juli, menunjukkan aset yang terancam melebihi 1.000 BTC. Hingga 2 Agustus, Galaxy Research memperkirakan sekitar 1.367 BTC berisiko berada di 4.585 alamat. Seorang pengguna X dengan nama pengguna Graham_Quantum menyatakan bahwa pada 29 Juli, 18,25245043 BTC telah ditransfer dari dompet terkait.
Setelah berita tersebut terungkap, sejumlah besar pengguna memindahkan aset mereka demi keamanan, menyebabkan arus dana yang jauh lebih besar. Setelah pengungkapan kerentanan, 77.402 BTC dipindahkan dari kumpulan UTXO lama yang belum dibelanjakan.
Dua jenis data perlu dibedakan:

Insiden keamanan ini memicu dua dampak besar: pertama, peretas mencuri aset, dan kedua, gelombang besar pengguna yang secara aktif memindahkan aset mereka untuk melindungi diri.
Kerentanan dompet Coldcard senilai sekitar $89 juta menyebabkan transfer dana Bitcoin terbesar sejak kejadian FTX, serta mengganggu interpretasi sinyal pasar. Ribuan pengguna secara mendesak memindahkan Bitcoin dari dompet lama mereka, sehingga sinyal bearish yang dikeluarkan oleh berbagai indikator inti blockchain menjadi sulit dibedakan keasliannya.
Manually rolling dice can bring about what changes?
Dokumentasi resmi Coldcard tentang dadu: Sebuah dadu enam sisi yang adil, setiap lemparan independen menghasilkan sekitar 2,585 bit entropi. Dengan melempar 50 kali, dapat menghasilkan sekitar 129,25 bit entropi mentah, memenuhi standar keamanan 128-bit umum; melempar 99 kali menghasilkan sekitar 255,91 bit entropi mentah, hampir mencapai standar keamanan 256-bit (nilai ini belum melalui proses konversi algoritma bawaan dompet).
Nilai-nilai ini sesuai dengan standar mnemonic BIP-39 yang banyak digunakan: 12 kata mnemonic mengkodekan 128 bit entropi ditambah 4 bit checksum; 24 kata mnemonic mengkodekan 256 bit entropi ditambah 8 bit checksum.

Mekanisme isolasi offline pada hardware wallet hanya dapat melindungi mnemonic yang telah selesai dibuat, tetapi tidak dapat memperbaiki kerentanan acak lemah selama proses pembuatan; untuk menghasilkan mnemonic BIP-39 yang aman, diperlukan entropi independen yang diperoleh melalui pelemparan dadu pribadi.
Checksum hanya digunakan untuk mengidentifikasi kesalahan penulisan mnemonic. Yang benar-benar menentukan keamanan adalah data acak asli di bawahnya. Operasi hash dan tata letak standar dapat mempercantik input entropi rendah, tetapi ruang total kemungkinan kunci tidak akan membesar. Kombinasi 12 kata yang tampaknya menenangkan bisa saja berasal dari pool acak yang sangat kecil.
Syarat agar lemparan dadu manual berfungsi sebagai perlindungan: proses bawaan dompet harus menerima data acak yang dihasilkan oleh dadu dengan benar. Dadu itu sendiri memenuhi syarat, setiap lemparan bersifat nyata dan saling tidak saling memengaruhi, serta urutan lemparan tetap rahasia sepanjang waktu. Penggunaan ulang pola lemparan, perekaman visual, penyimpanan urutan di cloud, atau memasukkan hasil di komputer yang terhubung ke internet akan merusak independensi dan kerahasiaan keacakan.
Terkait insiden keamanan Coldcard ini, Coinkite menyatakan: hanya pengguna yang dapat membuktikan bahwa setidaknya 50 kali lemparan dadu yang adil, independen, dan rahasia dilakukan saat menghasilkan seed akhir, yang boleh tidak memindahkan aset; untuk semua situasi yang tidak pasti, pihak resmi menyarankan untuk memindahkan dana.
Bagi saya, nilai inti dari dadu manual terletak pada: mengandalkan angka acak bawaan perangkat berarti Anda harus mempercayai sepenuhnya seluruh rantai, mulai dari perangkat keras, firmware, proses kompilasi, hingga kode terintegrasi.
Prosedur entri dadu yang terstandarisasi dapat memperkenalkan entropi yang terlepas dari rantai kepercayaan ini dan dikendalikan secara mandiri oleh pengguna. Sekitar 50 kali lemparan dadu yang adil setara dengan tingkat keamanan 128 bit, sedangkan 99 kali setara dengan tingkat keamanan 256 bit. Namun, pengguna harus secara ketat mengikuti prosedur operasi resmi perangkat dan tidak merancang skema konversi angka acak sendiri.
Atur kata sandi BIP-39 yang kuat dan unik untuk meningkatkan ambang serangan dari sudut pandang lain. Kata sandi berfungsi seperti kunci independen; bahkan jika penyerang mendapatkan mnemonic, mereka masih perlu memecahkan kata sandi untuk mengakses aset. Perhatikan: entropi mnemonic itu sendiri tidak meningkat karena penambahan kata sandi. Setiap kata sandi (bahkan jika hanya satu karakter salah) akan menghasilkan satu set alamat dompet yang valid; jika kata sandi hilang, aset akan terkunci selamanya. Kode PIN dompet perangkat keras memiliki fungsi yang sama sekali berbeda dari kata sandi.
Mengaktifkan kata sandi akses sendiri melibatkan kompromi: jika Anda dapat menyimpannya dengan baik dan mengingatnya dengan tepat, ia akan menjadi garis pertahanan kedua yang kuat; namun jika solusi cadangan tidak memadai, fitur ini justru dapat membuat Anda sama sekali tidak dapat mengakses aset Anda.
Masalah kerentanan randomitas lemah muncul berulang-ulang
Kerentanan Coldcard kembali mengingatkan semua orang: fondasi keamanan dompet Bitcoin adalah keacakan kuat yang ada pada saat generasi seed. Cacat dasar sejenis pernah muncul berturut-turut pada berbagai produk dompet berbeda.
Pada tahun 2023, Ledger Donjon mengungkapkan: ekstensi browser versi tertentu dari Trust Wallet menggunakan algoritma Mersenne Twister 32-bit untuk menghasilkan benih acak dalam jalur eksekusi WebAssembly. Semua kata sandi yang tampak normal ini berasal dari sekitar 4 miliar nilai awal. Rentang risiko jelas: ekstensi browser versi 0.0.172 hingga 0.0.182 yang menggunakan Trust Wallet Core versi sebelum 3.1.1. Database Kerentanan Nasional Amerika Serikat mencatat bahwa kerentanan ini dimanfaatkan pada Desember 2022 dan Maret 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 waktu sistem; dalam kondisi jam yang sama, perangkat lunak dapat menghasilkan kata bantuan yang identik. Penyerang hanya perlu memperkirakan waktu pembuatan benih, sehingga ruang pencarian brute-force jauh lebih kecil daripada yang tampak dari ruang yang diimplikasikan oleh kata bantuan.
Para peneliti menemukan lebih dari 2.600 dompet Bitcoin yang masih aktif digunakan dalam rentang risiko; berdasarkan perkiraan pasar Agustus 2023, nilai aset tercuri terkait di berbagai blockchain melebihi $900.000. Lebih dari 2.550 dompet menunjukkan ciri-ciri operasi otomatis, kemungkinan besar dimiliki oleh satu pihak yang sama. Para peneliti juga menunjukkan bahwa beberapa insiden pencurian aset mungkin terkait dengan kerentanan keamanan lainnya.
Kerentanan semacam ini selalu muncul dengan berbagai bentuk: Coldcard secara tidak sengaja memicu algoritma acak cadangan firmware; ekstensi browser Trust Wallet dan alat baris perintah Libbitcoin menghasilkan angka acak lemah karena bergantung pada jam sistem. Kunci dompet yang dihasilkan tampak tanpa cacat, tetapi ukuran kumpulan kunci yang dapat dijelajahi sangat kecil hingga menimbulkan risiko mematikan.
Sebagian besar saran pengelolaan Bitcoin di pasar berfokus pada langkah-langkah setelah seed dihasilkan: menyimpan mnemonic secara offline, menggunakan media cadangan yang tahan lama, isolasi izin, dan menguji proses pemulihan. Langkah-langkah ini tetap bernilai. Namun, insiden Coldcard mengingatkan kita bahwa garis pertahanan keamanan perlu diperdalam lebih jauh.
Isolasi udara hanya melindungi kunci yang telah Anda masukkan ke perangkat. Karena itulah, keamanan dompet Bitcoin harus dimulai dari sumber acak yang dapat dipercaya.

