Randstorm / BitcoinJS

Randstorm: celah browser di balik dompet Bitcoin lama

Perangkat lunak mana yang didokumentasikan, versi mana yang penting, dan cara meninggalkan dompet lama tanpa membawa kunci rentannya bersamamu.

Pembaruan Terakhir 18/09/2026

Apa yang sebenarnya salah

Randstorm berkaitan dengan pembuatan kunci di perangkat lunak browser lama. SecureRandom() dari JSBN bisa menggabungkan sumber entropi yang tidak memadai dengan Math.random() browser yang dapat diprediksi. Unciphered mengungkap masalah ini pada 14 November 2023 dan melaporkan dompet rentan yang dibuat antara 2011–2015. Itu adalah periode yang diamati, bukan putusan untuk setiap dompet dari tahun-tahun tersebut.

Math.random()Nilai awal yang bergantung pada browser
SecureRandom()Kolam entropi memberi makan PRNG
Kunci privatFormat valid, asal yang berpotensi dapat diprediksi

Nama SecureRandom bukan jaminan keamanan. Dalam sumber yang diperiksa Coinpunk, fallback mengisi kolam 256 byte menggunakan Math.random(), mencampurkan jam, dan memberi makan generator Arcfour. Kolam besar tidak dapat menyediakan ketidakpastian yang tidak dimiliki inputnya. Sumber yang sama juga berisi jalur Web Crypto dan Node.js yang lebih kuat: mencapai fallback adalah pembeda penting.

Ini adalah cacat dalam cara kunci privat dipilih. Ini bukan pelanggaran verifikasi tanda tangan Bitcoin. Membuka cadangan lama di aplikasi baru mempertahankan kunci tersebut; memindahkan dana ke kunci yang dibuat secara independen mengubah apa yang mengotorisasi pengeluaran.

Dompet, versi, dan batas bukti

Baca versi perpustakaan terpisah dari versi dompet. Untuk situs web yang dihosting, kode yang disajikan pada hari pembuatan kunci lebih penting daripada versi aplikasi hari ini. Tabel membedakan insiden yang didokumentasikan dari temuan kode sumber.

Bukti diperiksa pada 19 September 2026
ProyekVersi atau periodeApa yang dibuktikan ini
BitcoinJS / bitcoinjs-lib0.1.3Disebut sebagai contoh dalam pengungkapan. JSBN digunakan hingga Maret 2014; ini tidak menetapkan rentang versi terdampak lengkap untuk setiap turunan.
Blockchain.info
Blockchain.com
Dompet web historis; tidak ada rentang terdampak bernomor yang diverifikasiDompet pelanggan adalah titik awal investigasi Unciphered. Ini tidak menuduh setiap dompet Blockchain.com atau aplikasi saat ini.
bitaddress.org2.6.5 · 2.8.0
2013-12-01 · 2014-01-18
2.6.5 memperbarui JSBN ke 1.4. 2.8.0 menambahkan inisialisasi Web Crypto seluruh kolam dan entropi mouse/keyboard wajib. Ini adalah perubahan yang didokumentasikan, bukan batas "semua versi sebelumnya rentan / semua versi berikutnya aman" yang terbukti.
Coinpunk0.2.1
63ca325be538
Snapshot repositori yang diperiksa memberi label 0.2.1 dan berisi fallback Math.random()/Arcfour di samping jalur yang lebih kuat. Ini adalah temuan kode, bukan bukti bahwa setiap penyebaran menggunakan fallback. Pengembangan telah berhenti.

Ikhtisar ini mencakup implementasi yang diverifikasi di sini; ini bukan daftar dompet terdampak yang lengkap. Produk yang tidak tercantum tidak otomatis tidak terdampak. Tanggal pembuatan lama atau alamat yang dimulai dengan 1 tidak cukup untuk mengidentifikasi generatornya.

Siapkan tujuan sekali saja

Tiga rute di bawah menggunakan dompet Electrum Desktop baru sebagai tujuan. Nama menu merujuk pada antarmuka desktop bahasa Inggris 4.8.2 yang diperiksa untuk artikel ini. Unduh rilis saat ini dari situs resmi; 4.8.2 adalah referensi untuk instruksi, bukan versi minimum permanen.

Dompet perangkat keras yang kami rekomendasikan sebagai tujuan baru →

Electrum — unduhan resmi dan pemeriksaan tanda tangan ↗

  1. Di komputer yang tepercaya dan diperbarui, unduh Electrum untuk sistem operasi Anda. Ikuti instruksi tanda tangan resmi dan periksa sidik jari penandatangan secara mandiri sebelum instalasi.
  2. Pilih File → New/Restore, beri nama dompet randstorm-new, lalu pilih Standard wallet → Create a new seed. Catat dan konfirmasi kata-kata baru di kertas dan atur kata sandi file dompet. Jangan impor rahasia lama.
  3. Sebelum menyetor, buat recovery-check dengan File → New/Restore → Standard wallet → I already have a seed, hanya menggunakan cadangan kertas BARU. Bandingkan alamat penerima pertama di kedua dompet melalui View → Addresses dan tab Addresses. Simpan kedua dompet selama pemeriksaan ini.
  4. Di randstorm-new, gunakan Receive → Request (Onchain jika Lightning diaktifkan). Salin alamat Bitcoin. Rute khusus dompet di bawah harus mengirim ke alamat ini, dengan biaya dan tujuan penuh diperiksa sebelum persetujuan.

Blockchain.info: gunakan dompet yang memegang alamat lama

Rute ini untuk dompet Blockchain.info historis yang masih dapat Anda akses melalui Blockchain.com. Instruksi pengiriman saat ini menggambarkan antarmuka web hari ini, bukan layar 2012 yang tidak diverifikasi. Saldo Trading Account adalah produk berbeda.

  1. Simpan cadangan terenkripsi asli dan catatan login. Di dompet web, periksa Settings → Wallets & Addresses → Bitcoin untuk alamat yang diimpor terpisah. Cocokkan alamat publik lama yang Anda kenal dengan saldo yang ditampilkan; frasa pemulihan baru tidak boleh diasumsikan mencakup kunci impor.
  2. Buka Send di dasbor Dompet, pilih Bitcoin dan masukkan alamat Electrum baru sebagai tujuan eksternal. Mulai dengan jumlah kecil, pilih Continue, tinjau alamat, jumlah dan biaya, lalu Send.
  3. Tunggu konfirmasi di History Electrum. Kemudian kirim sisa saldo yang dapat dibelanjakan, memperhitungkan biaya. Periksa setiap alamat impor yang didanai secara terpisah; uji yang berhasil saja tidak mengosongkan dompet lama. Berhenti menggunakan semua alamat penerima yang sudah tidak aktif.

Blockchain.com: instruksi pengiriman saat ini ↗

bitaddress.org: transfer dompet kertas dengan Sweep

Cetakan bitaddress biasanya mewakili satu kunci, bukan frasa pemulihan modern. Simpan kertas dan file HTML asli apa pun: nama file atau footer-nya mungkin mengidentifikasi rilis. Riwayat versi membantu merekonstruksi pengaturan; ini tidak mengesahkan kunci individu.

  1. Identifikasi kunci privat, bukan alamat penerima publik. WIF mainnet biasanya dimulai dengan 5, K, atau L; kunci terenkripsi BIP38 dimulai dengan 6P. Prefiks hanya petunjuk format. Simpan bentuk kompresi asli karena menentukan alamat yang sesuai.
  2. Untuk BIP38, pertama dekripsi secara lokal dan offline menggunakan salinan terverifikasi dari repositori resmi bitaddress: Wallet Details → masukkan kunci terenkripsi → View Details → masukkan passphrase → Decrypt BIP38. Bandingkan alamat hasil dengan kertas sebelum membawa WIF yang cocok. Jangan pernah memasukkan kunci di situs web langsung atau membuat dompet pengganti dengan alat lama ini.
  3. Di dompet tujuan Electrum BARU, buka Wallet → Private keys → Sweep. Masukkan hanya WIF yang tidak terenkripsi di dialog lokal ini. Periksa bahwa tujuan milik randstorm-new, lalu tinjau transaksi dan biaya sebelum disiarkan.
  4. Sweep mentransfer saldo yang dapat dibelanjakan yang dikendalikan oleh kunci yang diberikan dalam satu transaksi. Ini bukan impor dan bukan urutan uji kecil di atas. Ulangi untuk kunci dompet kertas yang didanai lainnya dan simpan aslinya sampai semua penerimaan yang diharapkan dikonfirmasi.

bitaddress.org — repositori resmi dan file yang ditandatangani ↗

Coinpunk: amankan cadangan sebelum menyentuh server lama

Coinpunk dihosting sendiri, jadi tidak ada situs login saat ini universal atau layanan pemulihan. Label ini berasal dari snapshot repositori 63ca325be538, yang package.json-nya menyatakan versi 0.2.1. Penyebaran yang dimodifikasi mungkin berbeda.

  1. Jika instalasi tepercaya asli Anda masih berfungsi, buka Backup → Download dan simpan beberapa salinan dompet terenkripsi. Simpan juga pengenal login, kata sandi, dan cadangan server. Jangan perbarui atau instal ulang satu-satunya instance yang masih hidup terlebih dahulu.
  2. Formulir Send Bitcoins historis berisi Bitcoin address to send to, Amount, dan biaya yang ditampilkan. Gunakan hanya jika instance asli masih berfungsi dengan andal dan mendukung alamat tujuan. Jangan paksa alamat bc1 ke perangkat lunak lama ini; parser alamat yang diperiksa menggunakan Base58Check.
  3. Untuk tujuan yang tidak kompatibel atau server offline, simpan cadangan dan pulihkan kuncinya secara lokal dengan bantuan yang memahami versi Coinpunk ini. Model dompet menyimpan keyPairs, termasuk kunci perubahan, di dalam payload terenkripsi. Ini bukan seed Electrum atau wallet.dat Bitcoin Core; mengganti nama file tidak dapat mengonversinya.
  4. Setelah kunci WIF yang dipulihkan dicocokkan dengan alamat asli, gunakan prosedur Sweep Electrum di atas untuk setiap kunci yang didanai. Periksa set lengkap, termasuk alamat perubahan. Simpan cadangan terenkripsi dan kata sandinya sampai penerimaan tujuan sesuai dengan saldo yang diharapkan.

Dompet perangkat keras yang kami rekomendasikan sebagai tujuan baru

Untuk migrasi ini, kami merekomendasikan Trezor Safe 3 jika Anda lebih suka tombol fisik, atau Trezor Safe 5 jika layar sentuh yang lebih besar memudahkan pemeriksaan alamat. Keduanya dapat menyimpan kunci tanda tangan baru di perangkat terpisah. Membeli satu tidak memperbaiki kunci lama: buat dompet baru sepenuhnya di perangkat.

Sebagai Rekanan Amazon, saya mendapatkan penghasilan dari pembelian yang memenuhi syarat.

Trezor Safe 3

Dua tombol dan layar monokrom: pilihan kami untuk pembaca yang menginginkan konfirmasi tombol yang disengaja. Verifikasi alamat penerima penuh di perangkat sebelum mentransfer saldo lama.

Lihat Trezor Safe 3 di Amazon

Trezor Safe 5

Layar sentuh warna 1,54 inci dengan umpan balik haptik: pilihan kami saat ukuran layar dan kontrol sentuh paling penting. Tampilan yang lebih nyaman tidak membuat kunci yang digunakan ulang atau terekspos menjadi aman.

Lihat Trezor Safe 5 di Amazon

Tautan Amazon membuka pencarian produk regional, bukan daftar penjual terverifikasi. Periksa penjual terhadap toko resmi Amazon Trezor atau reseller resmi. Gunakan pemeriksaan autentikasi perangkat selama pengaturan; jangan pernah menggunakan cadangan dompet yang sudah ditulis sebelumnya yang disediakan.

  1. Mulai di trezor.io/start dan instal Trezor Suite. Ikuti pengaturan dan pemeriksaan autentikasi khusus perangkat, pilih Create a new wallet dan selesaikan pemeriksaan cadangan di perangkat. Simpan cadangan secara offline. Jangan pulihkan dompet lama atau seed dompet perangkat lunak dari contoh di atas ke perangkat ini.
  2. Untuk pengiriman normal, pilih akun Bitcoin di Trezor Suite, pilih Receive dan verifikasi alamat penuh di perangkat yang terhubung. Gunakan alamat ini sebagai pengganti alamat dompet perangkat lunak dalam rute Blockchain.com. Periksa transfer masuk dan konfirmasinya di Trezor Suite, bukan di History pada Electrum.
  3. Untuk rute Sweep Electrum, sambungkan Trezor yang baru dikonfigurasi dan buat dompet Electrum dengan File → New/Restore → Standard wallet → Use a hardware device. Ikuti panduan Electrum Trezor dan gunakan akun Bitcoin dan tipe alamat yang cocok. Verifikasi alamat penerima di Trezor, lalu gunakan sebagai tujuan sweep. Masukkan hanya kunci WIF LAMA di Sweep; jangan pernah mengetik kata cadangan Trezor ke Electrum atau situs web.

Trezor: sambungkan perangkat ke Electrum ↗

Sumber dan cakupan

Studi kasus ini mencakup implementasi browser historis dan berbagai rute migrasinya. Untuk hubungan yang lebih luas antara entropi, frasa seed, dan dompet perangkat keras, lanjutkan dengan artikel latar belakang.

Latar belakang: bagaimana seed dompet lemah muncul →

Diperiksa pada 19 September 2026 terhadap dokumentasi utama dan kode sumber. Tidak ada dana nyata atau kunci privat yang digunakan dalam pengujian. Tabel ini bukan daftar lengkap atau diagnosis dompet Anda.

FAQ

Apakah BitcoinJS 0.1.3 mengidentifikasi versi dompet saya?

Tidak. Ini mengidentifikasi contoh perpustakaan yang dikutip dalam pengungkapan Randstorm. Dompet dapat menggabungkan atau memodifikasi perpustakaan itu tanpa mengekspos versinya ke pengguna. Build dompet asli dan lingkungan browser masih perlu diidentifikasi.

Apakah bitaddress.org 2.8.0 membuktikan bahwa dompet kertas saya aman?

Changelog mendokumentasikan pengumpulan entropi yang lebih kuat di 2.8.0. Ini tidak mengesahkan bagaimana kunci individu dibuat, fitur browser mana yang tersedia, atau apakah file dimodifikasi. Artikel ini memperlakukannya sebagai perubahan yang didokumentasikan, bukan batas keamanan universal.

Mengapa rute dompet kertas menggunakan Sweep bukan Import?

Import mempertahankan kunci privat asli yang digunakan. Sweep membuat transaksi yang mentransfer dana yang dapat dibelanjakan ke dompet tujuan yang disiapkan. Dompet baru harus memiliki kunci yang dibuat secara independen, dan tujuan serta biaya harus diperiksa sebelum disiarkan.

Bisakah Electrum membuka cadangan Coinpunk secara langsung?

Versi Coinpunk yang diperiksa menyimpan payload dompet terenkripsi, bukan seed Electrum. Simpan cadangan, pengenal login, dan kata sandi. Pulihkan kunci secara lokal dengan keahlian versi-spesifik, lalu cocokkan dengan alamat asli sebelum menggunakan rute sweep.