Sistem Anda mengumpulkan beberapa nomor acak "nyata" dengan mengawasi berbagai peristiwa: aktivitas jaringan, generator nomor acak perangkat keras (jika tersedia; misalnya prosesor VIA biasanya memiliki generator nomor acak "nyata"), dan seterusnya. Jika mengumpankannya ke pool entropy kernel, yang digunakan oleh / dev / random. Aplikasi yang membutuhkan keamanan ekstrim cenderung menggunakan / dev / acak sebagai sumber entropi mereka, atau dengan kata lain, sumber keacakan.
Jika / dev / random kehabisan entropi yang tersedia, itu tidak dapat melayani lebih banyak keacakan dan aplikasi menunggu untuk keacakan berhenti sampai lebih banyak barang acak tersedia. Contoh yang saya lihat selama karir saya adalah bahwa daemon Cyrus IMAP ingin menggunakan / dev / random untuk keacakan dan sesi POP-nya ingin menghasilkan string acak dalam koneksi APOP dari / dev / random. Dalam lingkungan yang sibuk ada lebih banyak upaya login daripada lalu lintas untuk memberi makan / dev / random -> semuanya terhenti. Dalam hal ini saya menginstal rng-tools dan mengaktifkan rngd yang dimilikinya - yang menyekop angka semi-acak dari / dev / urandom ke / dev / random dalam kasus / dev / random kehabisan entropi "nyata".
Entropy adalah istilah teknis untuk "Keacakan". Komputer tidak benar-benar menghasilkan entropi tetapi mengumpulkannya dengan melihat hal-hal seperti variasi kecepatan rotasi hard drive (Fenomena fisik yang sangat sulit diprediksi karena gesekan, dll.) Ketika komputer ingin menghasilkan data acak semu, ia akan seed formula matematika dengan entropi sejati yang ditemukan dengan mengukur mouse, variasi putaran hard drive dll. Secara kasar
entropy_avail
adalah ukuran bit yang saat ini tersedia untuk dibaca dari/dev/random
Butuh waktu bagi komputer untuk membaca entropi dari lingkungannya kecuali ia memiliki perangkat keras yang keren seperti dioda berisik atau sesuatu.
Jika Anda memiliki 4096 bit entropi yang tersedia dan Anda
/dev/random
dapat menggunakannya, Anda dapat berharap untuk dapat membaca 512 byte entropi (4096 bit) sebelum blok file sementara menunggu lebih banyak entropi.Misalnya jika Anda "
cat /dev/random
" entropi Anda akan menyusut ke nol. Pada awalnya Anda akan mendapatkan 512 byte sampah acak tetapi itu akan berhenti dan sedikit demi sedikit Anda akan melihat lebih banyak data acak mengalir.Ini bukan bagaimana orang harus beroperasi
/dev/random
. Biasanya pengembang akan membaca sejumlah kecil data, seperti 128 bit, dan menggunakannya untuk menyemai semacam algoritma PRNG. Adalah sopan untuk tidak membaca entropi lebih dari yang/dev/random
Anda butuhkan karena membutuhkan waktu lama untuk membangun dan dianggap berharga. Jadi jika Anda mengeringkannya dengancat
ting file seperti di atas Anda akan menyebabkan aplikasi lain yang perlu dibaca/dev/random
untuk diblokir. Pada satu sistem di tempat kerja kami memperhatikan bahwa banyak fungsi crypto sedang macet. Kami menemukan bahwa pekerjaan cron memanggil skrip python yang terus diinisialisasiramdom.random()
pada setiap lari yang berjalan setiap beberapa detik. Untuk memperbaikinya kami menulis ulang skrip python sehingga dijalankan sebagai daemon yang diinisialisasi hanya sekali dan tugas cron akan membaca data melalui XMLRPC sehingga tidak akan terus membaca dari/dev/random
saat startup.sumber
Anda dapat membaca lebih lanjut di: http://linux.die.net/man/4/random
sumber