Sumber entropi apa yang digunakan oleh kernel Linux?


14

man 4 random memiliki deskripsi sumber entropi kernel Linux yang sangat kabur:

Generator angka acak mengumpulkan kebisingan lingkungan dari driver perangkat dan sumber lain ke dalam kumpulan entropi.

Transfer Entropy kertas di Linux Random Number Generator juga tidak jauh lebih spesifik. Ini daftar:

  • add_disk_randomness(),
  • add_input_randomness(), dan
  • add_interrupt_randomness().

Fungsi ini berasal random.c, yang mencakup komentar berikut:

Sumber keacakan dari lingkungan termasuk waktu antar-keyboard, waktu antar-interupsi dari beberapa interupsi, dan peristiwa lain yang keduanya (a) non-deterministik dan (b) sulit bagi pengamat luar untuk mengukur.

Lebih jauh ke bawah, ada fungsi yang add_hwgenerator_randomness(...)menunjukkan dukungan untuk generator nomor acak perangkat keras.

Semua informasi itu agak kabur (atau, dalam hal kode sumber, memerlukan pengetahuan mendalam tentang kernel Linux untuk memahami). Apa sumber entropi aktual yang digunakan, dan apakah kernel Linux mendukung generator nomor acak perangkat keras apa pun?

Jawaban:


4

Sebagian besar perangkat keras PC komoditas memiliki generator angka acak hari ini. VIA Semiconductor telah menempatkan mereka di prosesor mereka selama bertahun-tahun; kernel Linux memiliki driver via-rng untuk itu. Saya menghitung 34 modul sumber dalam drivers/char/hw_random/direktori di pohon sumber terbaru, termasuk driver untuk perangkat keras Intel dan AMD, dan untuk sistem yang memiliki perangkat TPM. Anda dapat menjalankan daemon rng (rngd) untuk mendorong data acak ke kumpulan entropi kernel.


Ini sepertinya bagian besar dari jawaban yang saya cari. Saya akan melihat lebih dalam pada apa yang terkandung di sana segera setelah saya melakukannya. Bersama dengan informasi yang sudah terkandung dalam pertanyaan ini rasanya seperti daftar sumber entropi yang komprehensif.
Jens Erat

Dan untuk melihat apa yang tersedia pada pc run tertentu cat /sys/devices/virtual/misc/hw_random/rng_available.
hlovdal

0

Ya, itu mendukung generator entropi perangkat keras di luar kotak. Ini diperlukan untuk server SSL beban tinggi dengan banyak koneksi simultan yang dimulai per detik (Gmail, Facebook, Microsoft, dll). Ini benar-benar tidak perlu untuk server rumah atau server organisasi kecil. Perlu diingat generator entropi perangkat keras biasanya menggunakan antarmuka PCI, tidak ada yang mewah di sana, sehingga dapat didukung dengan mudah. Tidak yakin apakah ada generator entropi perangkat keras yang memerlukan driver sumber tertutup, mungkin tidak, karena tidak terlalu sulit dan bukan industri yang sangat menguntungkan (tidak seperti kartu grafis sebaliknya).

http://en.wikipedia.org/wiki/Hardware_random_number_generator


2
Server volume tinggi tidak memerlukan RNG perangkat keras lebih dari server volume rendah. Setelah mesin diunggulkan dengan entropi yang cukup, mesin dapat terus berjalan pada PRNG selamanya (atau setidaknya selama milyaran tahun, yang dalam praktiknya sama). Jenis komputer yang benar-benar membutuhkan perangkat keras RNG adalah perangkat tertanam yang tidak dapat menyimpan status RNG saat ini dengan aman saat dimatikan.
Gilles 'SO- stop being evil'

@Gilles: apakah ini berlaku untuk sistem selain Linux? Saya tahu Linux melakukan ini, tetapi tidak pernah mendengar tentang * BSD termasuk OS X (atau Windwos) yang melakukannya.
Jens Erat

1
@JensErat, saya tidak tahu. Ini mudah diimplementasikan dan sangat berguna, jadi saya akan terkejut jika BSD tidak melakukannya.
Gilles 'SO- stop being evil'
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.