idNSA.id - Kerentanan kritis telah diungkapkanpada random number generator perangkat keras yang digunakan pada miliaran perangkat Internet of Things (IoT) di mana itu gagal menghasilkan nomor acak dengan benar, sehingga merusak keamanan dan menempatkan pada risiko serangan.
"Ternyata angka-angka 'acak' dipilih tidak selalu acak seperti yang diinginkan ketika datang ke perangkat IOT," Uskup Fox peneliti Dan Petro dan Allan Cecil mengatakan dalam sebuah analisis yang dipublikasikan pekan lalu. "Faktanya, dalam banyak kasus, perangkat memilih kunci enkripsi 0 atau lebih buruk. Ini dapat menyebabkan kehancuran keamanan yang dahsyat untuk penggunaan apapun."
Random number generation ( RNG ) adalah proses penting yang mendasari beberapa aplikasi kriptografi, termasuk pembuatan key, nonces, dan salting. Pada sistem operasi tradisional, ini berasal dari generator number pseudorandom (CSPRNG) yang aman secara kriptografis yang menggunakan entropi yang diperoleh dari sumber seed berkualitas tinggi.
Ketika datang ke perangkat IoT, ini dipasok dari system-on-a-chip (SoC) yang menampung perangkat RNG perangkat keras khusus yang disebut true random number generator (TRNG) yang digunakan untuk menangkap keacakan dari proses fisik atau fenomena.
Menyatakan bahwa cara periferal dipanggil saat ini tidak benar, para peneliti mencatat kurangnya pemeriksaan untuk respons kode kesalahan di seluruh board, yang mengarah ke skenario di mana nomor acak yang dihasilkan tidak hanya acak, dan yang lebih buruk, dapat diprediksi, menghasilkan entropi parsial, memori yang tidak diinisialisasi, dan bahkan kunci kripto yang berisi nol biasa.
"Fungsi HAL ke periferal RNG dapat gagal karena berbagai alasan, tetapi sejauh ini yang paling umum (dan dapat dieksploitasi) adalah perangkat telah kehabisan entropi," tulis para peneliti. "Periferal RNG perangkat keras menarik entropi keluar dari alam semesta melalui berbagai cara (seperti sensor analog atau pembacaan EMF) tetapi tidak memiliki pasokan tak terbatas.
"Mereka hanya mampu menghasilkan begitu banyak bit acak per detik. Jika Anda mencoba memanggil fungsi RNG HAL ketika tidak memiliki nomor acak untuk diberikan kepada Anda, itu akan gagal dan mengembalikan kode kesalahan. Jadi, jika perangkat mencoba mendapatkan terlalu banyak nomor acak terlalu cepat, panggilan akan mulai gagal."
Masalahnya unik untuk lanskap IoT karena mereka tidak memiliki sistem operasi yang biasanya dilengkapi dengan API keacakan (misalnya, " /dev/random " di OS mirip Unix atau BCryptGenRandom di Windows), dengan para peneliti menyoroti manfaat dari yang lebih besar kumpulan entropi yang terkait dengan subsistem CSPRNG, sehingga menghilangkan "setiap titik kegagalan di antara sumber entropi".
Meskipun masalah dapat diatasi dengan pembaruan perangkat lunak, solusi ideal adalah bagi produsen dan pengembang perangkat IoT untuk menyertakan API CSPRNG yang diunggulkan dari serangkaian sumber entropi yang beragam dan memastikan kode tidak mengabaikan kondisi kesalahan, atau gagal memblokir panggilan ke RNG ketika tidak ada lagi entropi yang tersedia.
"Salah satu bagian yang sulit dari kerentanan ini adalah bahwa ini bukan kasus sederhana 'Anda zigged di mana Anda seharusnya zagged' yang dapat ditambal dengan mudah," kata para peneliti, menekankan perlunya menerapkan CSPRNG dalam sistem operasi IoT. "Untuk mengatasi masalah ini, fitur yang substansial dan kompleks harus direkayasa ke dalam perangkat IoT."