Keamanan

/dev/random vs /dev/urandom dan apakah mereka aman?

/dev/random vs /dev/urandom dan apakah mereka aman?

Mulai

Siapa yang mengira menghasilkan angka acak akan sangat berantakan, itu seharusnya sama mudahnya dengan menebak angka di mana saja di antara rentang yang diberikan. Tetapi tidak sesederhana kelihatannya dan juga sampai sekarang semua mesin terbukti tidak dapat menghasilkan angka acak yang sebenarnya sendiri.

Mengapa mesin tidak dapat menghasilkan angka acak yang sebenarnya sendiri?

Namun mesin hanyalah seperangkat mekanisme dan sirkuit yang diinstruksikan, dan karenanya mereka tidak dapat diinstruksikan untuk memikirkan angka acak sendiri tanpa bantuan apa pun. Dan itulah mengapa sampai sekarang dan selanjutnya, kami telah melibatkan alam atau manusia dengan mesin untuk menghasilkan angka acak yang sebenarnya. Disini kita tidak akan membahas bagaimana cara membangkitkan bilangan acak yang sebenarnya tetapi kita akan membahas tentang pembangkit bilangan acak yang sudah diimplementasikan beserta cara kerja dan kelemahannya.

Mengapa menghasilkan angka acak yang benar sangat penting?

Timbul pertanyaan bahwa mengapa pembangkitan bilangan acak yang benar penting dan jawabannya adalah karena masalah keamanan. Sebagian besar algoritma kriptografi didasarkan pada pembuatan angka acak karena angka acak ini digunakan untuk membuat kunci kriptografi dan jika angka acak yang dihasilkan tidak benar-benar acak, ini membuat seluruh teknik kriptografi lebih lemah dan kunci tersebut dapat diprediksi relatif lebih mudah. menggunakan algoritma yang digunakan untuk menghasilkan kunci acak itu. Ini adalah alasan paling penting untuk angka acak yang sebenarnya, selain aplikasi seperti perjudian.

Generator Angka Acak di Kernel Linux:

Topik diskusi kita hari ini didasarkan pada Generator Angka Acak Linux, pada faktor apa generator ini didasarkan dan apakah itu benar-benar acak atau hanya angka acak yang biasanya tidak dapat diandalkan.

Linux menggunakan Pseudo Random Number Generator (PRNG) atau Cryptographically Secure Pseudo Random Number Generator (CSPRNG) yang berarti menggunakan rumus matematika yang kompleks dan sifat lingkungan untuk mencapai keacakan maksimum. Linux adalah OS pertama yang menyertakan PRNG di ruang kernelnya. Ini diterapkan oleh Theodore Ts'o pada tahun 1994.

Linux memiliki tiga kategori generator angka acak, /dev/random, /dev/urandom, /dev/arandom. Ketiganya adalah file di mana Linux menyimpan nomor acak. Angka acak dalam file ini dihasilkan menggunakan kebisingan lingkungan dari driver perangkat dan sumber lainnya. Juga, untuk memastikan keacakan dalam angka acaknya, linux menggunakan entropi yang merupakan tingkat ketidakpastian atau ketidakteraturan di antara mereka. Anda juga dapat menemukan halaman manual untuk Linux Random Number Generator (RNG) di sini:

http://man7.org/linux/man-pages/man4/random.4.html

/dev/acak melawan /dev/urandom melawan /dev/random:

Perbedaan utama antara /dev/random, /dev/urandom dan /dev/arandom adalah bahwa /dev/random memblokir jika entropi tidak menunjukkan keacakan yang cukup, /dev/urandom tidak pernah memblokir, bahkan ketika generator angka acak semu tidak sepenuhnya diunggulkan saat di-boot dan terakhir /dev/arandom memblokir hanya ketika generator nomor acak semu belum sepenuhnya diunggulkan. Singkatnya, /dev/random adalah yang teraman dari semuanya, kemudian muncul /dev/arandom dan yang paling tidak aman adalah /dev/urandom. Biasanya /dev/random dan /dev/urandom digunakan karena /dev/arandom dalam banyak hal mirip dengan /dev/urandom. Estimasi entropi untuk kumpulan angka acak singkatnya digunakan untuk menentukan keacakan angka yang dihasilkan. Semakin banyak entropi, semakin banyak keacakan yang dicapai dan semakin baik. Jumlah entropi dan ukuran kumpulan entropi saat ini tersedia di /proc/sys/kernel/random/ masing-masing bernama entropy_avail dan pool_size, yang dapat ditampilkan di terminal dengan menggunakan perintah:

cat /proc/sys/kernel/random/entropy_avail

Dan:

cat /proc/sys/kernel/random/pool_size

Baik urandom dan acak digunakan dalam skenario yang berbeda. 'Urandom' digunakan di mana ada kebutuhan konstan angka acak dan keacakannya tidak terlalu penting sementara 'acak' digunakan di mana ada masalah keamanan dan keacakannya harus dapat diandalkan karena memblokir keluaran angka acak jika entropi tidak sampai Tanda. Meskipun entropi untuk urandom (Unlimited Random) tidak jauh lebih lemah tetapi disarankan untuk menggunakan acak ketika keamanan lebih diperlukan karena kemungkinan serangan pada nomor yang dihasilkan oleh urandom.

Kelemahan di Linux Random Number Generator

Untuk Perangkat Keras Memori Non-volatil:

Untuk kernel Linux, generator nomor acak tidak baik untuk perangkat keras tertanam seperti router, di mana status bootable dapat diprediksi dan sumber untuk entropi yang cukup terbatas. Untuk hardware jenis ini, disarankan untuk menyimpan dan menggunakan status Random Number Generator (RNG) sebelum shutdown yang akan digunakan pada boot berikutnya. Dalam kasus router seperti itu, penyerang hanya dapat berkompromi dan memprediksi nomor acak yang dihasilkan jika mereka memiliki akses ke semua tautan router dan mereka menguping tautan komunikasinya atau jika mereka telah langsung mengakses status RNG yang disimpan dari router itu sendiri.

Untuk kelemahan RNG ini dalam hal perangkat keras, generator entropi pihak ketiga datang untuk menyelamatkan. Generator entropi ini seperti 'haveged' menggunakan waktu cache prosesor, perangkat input audio dan video eksternal untuk meningkatkan entropi ke tingkat yang dapat diterima.

Estimasi Entropi:

Seperti disebutkan sebelumnya kernel Linux menentukan keacakan dalam hal entropi tetapi tidak benar-benar menghitung entropi setiap kali dan sebagai gantinya menggunakan estimasi entropi. Beberapa penelitian juga mengungkapkan bahwa estimasi entropi angka acak yang digunakan di Linux tidak sesuai atau mendekati estimasi, sehingga membuat keacakan angka secara keseluruhan menjadi lebih lemah.

Meskipun ada beberapa kelemahan di Linux Random Number Generator, tetapi ini adalah pilihan yang jauh lebih baik dibandingkan dengan RNG lain, tidak ketinggalan patch yang sedang berlangsung yang disediakan oleh kontributor dan pengembang Linux.

Penutup:

Ini semua dari sisi saya tentang Random Number Generator di kernel Linux. Saya bersenang-senang dalam menyebarkan pengetahuan ini dengan Anda. Semoga Anda belajar sesuatu yang baru melaluinya dan juga Anda akan berbagi pengetahuan lebih jauh ke dunia. Terakhir, terima kasih telah menginvestasikan waktu di artikel ini.

Shadow of the Tomb Raider untuk Tutorial Linux
Shadow of the Tomb Raider adalah tambahan kedua belas untuk seri Tomb Raider - waralaba game aksi-petualangan yang dibuat oleh Eidos Montreal. Permain...
Cara Meningkatkan FPS di Linux?
FPS adalah singkatan dari Bingkai per detik. Tugas FPS adalah mengukur kecepatan bingkai dalam pemutaran video atau pertunjukan game. Dengan kata sede...
Game Lab Aplikasi Oculus Teratas
Jika Anda adalah pemilik headset Oculus maka Anda harus tahu tentang sideloading. Sideloading adalah proses menginstal konten non-toko di headset Anda...