Linux çekirdeği tarafından hangi entropi kaynakları kullanılır?


14

man 4 random Linux çekirdek entropi kaynaklarının çok belirsiz bir açıklaması var:

Rasgele sayı üreteci, aygıt sürücülerinden ve diğer kaynaklardan gelen çevresel gürültüyü entropi havuzuna toplar.

Linux Rastgele Sayı Üreticisi'nde kağıt Entropi aktarımı da çok daha spesifik değildir. Listeler:

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

Bu işlevler random.c, aşağıdaki yorumu içeren:

Ortamdan gelen rasgelelik kaynakları arasında klavyeler arası zamanlamalar, bazı kesmelerden kesme zamanlamaları ve (a) deterministik olmayan ve (b) dış gözlemcinin ölçmesi zor olan diğer olaylar yer alır.

Ayrıca, add_hwgenerator_randomness(...)donanım rasgele sayı üreteçleri için desteği gösteren bir işlev vardır .

Tüm bu bilgiler oldukça belirsizdir (veya kaynak kodu söz konusu olduğunda, anlamak için Linux çekirdeği hakkında derin bilgi gerektirir). Kullanılan gerçek entropi kaynakları nelerdir ve Linux çekirdeği kutudan çıkan herhangi bir donanım rastgele sayı üretecini destekliyor mu?

Yanıtlar:


4

Çoğu emtia PC donanımı bugünlerde rastgele bir sayı üretecine sahiptir. VIA Semiconductor bunları yıllarca işlemcilerine yerleştirdi; Linux çekirdeği bunun için via-rng sürücüsüne sahiptir. drivers/char/hw_random/Intel ve AMD donanım sürücüleri ve TPM aygıtı olan sistemler de dahil olmak üzere en son kaynak ağacındaki dizindeki 34 kaynak modülünü sayıyorum . Çekirdek entropi havuzuna rasgele veri göndermek için rng arka plan programını (rngd) çalıştırabilirsiniz.


Bu, aradığım cevabın büyük bir parçası gibi görünüyor. Etrafa gelir gelmez orada neler olduğuna daha yakından bakacağım. Soruda zaten yer alan bilgilerle birlikte bu, entropi kaynaklarının kapsamlı bir listesi gibi geliyor.
Jens Erat

Ve belirli bir pc çalıştırmak neler olduğunu görmek için cat /sys/devices/virtual/misc/hw_random/rng_available.
hlovdal

0

Evet, donanım entropi jeneratörlerini kutudan çıkarır. Bu, saniyede çok sayıda eşzamanlı bağlantı başlatılan (Gmail, Facebook, Microsoft, vb.) Yüksek yüklü SSL sunucuları için gereklidir. Ev sunucuları veya küçük kuruluş sunucuları için gerçekten gerekli değildir. Donanım entropi jeneratörlerinin genellikle PCI arayüzleri kullandığını, orada fantezi bir şey olmadığını, bu nedenle kolayca desteklenebileceğini unutmayın. Kapalı kaynak sürücüleri gerektiren özel donanım entropi jeneratörleri olup olmadığından emin değilim, muhtemelen değil, çünkü çok zor değil ve çok karlı bir endüstri değil (aksi halde grafik kartlarının aksine).

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


2
Yüksek hacimli sunucular, düşük hacimli sunuculardan daha fazla donanım RNG'si gerektirmez. Makine yeterli entropi ile tohumlandıktan sonra, sonsuza dek bir PRNG üzerinde çalışmaya devam edebilir (veya en azından milyarlarca yıl, bu da pratikte aynıdır). Gerçekten bir donanım RNG'sine ihtiyaç duyan bilgisayarlar, kapatıldıklarında mevcut RNG durumlarını güvenli bir şekilde kaydedemeyen gömülü aygıtlardır.
Gilles 'SO- kötü olmayı bırak'

@Gilles: Bu Linux dışındaki sistemler için geçerli mi? Linux'un bunu yaptığını biliyorum, ancak OS X (ne de Windwos) dahil * BSD'leri hiç duymadım.
Jens Erat

1
@JensErat Bilmiyorum. Uygulaması kolay ve çok kullanışlı, bu yüzden BSD bunu yapmazsa şaşırırdım.
Gilles 'SO- kötü olmayı bırak'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.