Pada pertengahan Januari lalu, beberapa peneliti menemukan bahwa digital signature rentan Lattice Attack pada beberapa kripto seperti Bitcoin, ETH, dan juga XRP. Kerentanan ini disebutkan karena adanya kesalahan implementasi ECDSA di beberapa platform.
Makalah tersebut disusun oleh Joachim Breitner dan juga Nadia Heninger, berjudul “Biased Nonce Sense: Lattice Attacks against Weak ECDSA Signatures in Cryptocurrencies”. Kerentanan pada implementasi ECDSA untuk tanda tangan digital (digital signature) tersebut terjadi baik pada Bitcoin, Ethereum, dan juga Ripple.
Peneliti mengamati sekian block tertentu dalam rentang waktu di sekitar tahun 2014. Hasil scanning pada block tertentu yang dilakukan, peneliti dapat mengetahui jumlah pasti berapa banyak digital signatur pada block tersebut, dan juga berapa banyak private key yang berelasi pada digital signature itu.
Dengan celah tersebut, memungkinkan penyerang untuk membuat kalkulasi private keys dan ada potensi untuk bisa mengakses sejumlah aset yang ada di dalam wallet kripto tersebut. Kurang lebihnya, disebutkan di makalah itu bahwa peneliti berhasil menghitung hingga ratusan private keys yang berhasil ditemukan.
Sedangkan untuk Ethereum, Ripple, SSH dan juga HTTPS ada kurang lebih hingga puluhan private key berhasil ditemukan melalui cryptanalytic attack itu. Peneliti menyebut awalnya bahwa penelitian itu dilakukan pertama kali untuk Bitcoin. Namun kemudian teknik itu berhasil pula diterapkan pada Ethereum dan juga Ripple.
Baik Bitcoin, Ethereum, dan juga Ripple, memang menggunakan pola digital Signature ECDSA menggunakan secp256k1.
Pola yang digunakan oleh Joachim Breitner dan juga Nadia Heninger adalah menggunakan Lattice Attack. Sedangkan Lattice Attack adalah berbasis algoritma untuk memulihkan private key dari digital signature dalam blockchain Bitcoin.
Karena pola implementasi yang dilakukan untuk menghasilkan digital signature tersebut lemah, maka proses generate digital signature itu juga menjadi tidak aman (biased nonces). Hasil dari percobaan yang dilakukan sekitar rentang waktu 26 Juli 2014 hingga 1 Juni 2015, ditemukan 5.863 digital signature menggunakan script multisig dengan ukuran 64bit.
Hasil analisa yang dilakukan pada total jumlah digital signature tersebut, satu key kerap kali digunakan untuk membuat digital signature hingga berulang kali. Key yang kerap digunakan berulang kali tersebut, menjadi kian mudah untuk menemukan nonce aktual yang benar-benar digunakan untuk private key itu. Hasilnya juga menjadi lebih punya probabilitas yang tinggi.
Sementara di satu sisi lainnya, penggunaan nonce kecil yang punya digital signature banyak hanya sedikit berbeda saja. Nonce yang kecil ternyata juga cukup rentan karena bisa diserang melalui brute force sederhana. Meskipun itu tanpa memerlukan sekian banyak digital signature.
Dalam hal ini, peneliti mampu melakukan serangan menjadi jauh lebih cepat menggunakan Lattice Attack ketimbang brute force. Hal itu karena brute force diniai tidak realistis jika digunakan untuk menyerang 110 – 160 bit nonce.
Satu hal yang tidak bisa dijelaskan lebih spesifik oleh peneliti adalah, pada platform apakah generating digital signature itu dilakukan. Peneliti memang tidak dapat mengetahui secara pasti hal tersebut; mengingat obyek yang dilakukan berdasarkan pada sejumlah block dengan time frame tertentu.
Bitpay Copay Menjadi Latar Belakang Masalah Saat itu
Peneliti tidak mampu untuk menjelaskan secara spesifik terkait platform apakah yang digunakan untuk generating digital signature pada block yang diteliti. Namun terkait dengan sekitar jarak waktu yang diambil sampel dalam penelitian itu, adalah dilakukan di sekitar tahun 2014.
Satu-satunya yang menjelaskan pada sekitar rentang waktu mulai banyak yang mengembangkan wallet bitcoin dengan fitur multisignature. Sebut saja seperti pada bulan Juli 2014 BitPay merilis wallet bitcoin multisig dengan nama Copay.
Besar kemungkinan yang banyak menggunakan multisig di wallet yang digunakan di sekitar waktu itu adalah dari Copay. Indikasi adanya implementasi yang salah pada wallet Copay dirasa cukup meyakinkan, karena belakangan pihak Copay juga membuat perbaikan pada code mereka.
Pada wallet Copay, dibangun menggunakan Javasricpt. Hal ini mungkin dirasa menjadi kurang bagus untuk mengimplementasikan multisig di dalam platformnya. Pada code tersebut, sebenarnya sudah memilih menggunakan nonce 8 bit, namun kesalahan yang terjadi adalah dengan mengirim argumen sebagai 32 bit. Hal tersebut selayaknya harus memastikan untuk benar-benar menggunakan deterministik nonce RFC6979 untuk proses generatingnya.
Kerentanan yang ditemukan peneliti untuk Bitcoin dalam makalah tersebut, kurang lebihnya sudah dapat dipastikan tidak berelasi langsung dengan kesalahan implementasi ECDSA di Bitcoin. Hal itu terjadi hanya karena ada platform wallet tertentu yang kurang bisa mengimplementasikan multisig dengan baik.
Kedua peneliti dalam makalah tersebut juga memberikan pernyataan di salah satu media kripto. Peneliti menerangkan bahwa pengguna kripto tidak perlu khawatir. “Satu-satunya alasan ini akan terjadi jika ada beberapa jenis bug dalam pengkodean digital signature”.
Lantas bagaimana dengan Ethereum dan XRP?