PGP anahtarı için entropi üret


12

Uzaktan VM'ye giriş yaptım ve 4096bit PGP anahtarı üretmeye çalışıyorum, entropi olmadığı için sonsuza kadar asılı kalıyor ve uzak masaüstü aracılığıyla çalıştığımdan beri muhtemelen fare hareketini entropi olarak algılamıyor.

Nasıl üretebilirim?

Denedim cat /dev/urandom > /dev/nullama bu işe yaramıyor.

Yanıtlar:


13

Verileri alınıyor dışarı ait /dev/randomveya /dev/urandomkesinlikle edilir değil mesele daha da kötüsü yapım, bu yapacak tüm is your entropi havuzu tüketmek, yardım edecek. Bu iki dosya arasındaki ana fark, çekirdeğin entropiden tükenmesi urandomdurumunda bile , daha düşük kalitede rastgele veriler üretmeye devam ederken random, yeni yüksek kaliteli rastgele veriler toplanana kadar bloke edilmesidir. PGP, güvenli anahtarlar oluşturmak için mümkün olan en yüksek rastgele verileri gerektirir, bu nedenle her zaman kullanır /dev/random.

Etrafında iyi rastgele veriler var, ya da başka bir sunucunun bir miktar dışa aktarırsanız /dev/random, şunları yapabilirsiniz catbunu içine sunucunuzun /dev/randomalmak daha entropi. catAynı dosyayı asla iki kez kullanmamalısınız /dev/random.

Sık sık kendinizi entropiden kalmadıysanız , arka planda entropiyi yeniden üreten ve /dev/randomgerektiğinde yeniden dolduran bir daemon gibi bir şey yüklemeyi düşünebilirsiniz .

Ayrıca symlink /dev/randomyapmak cazip gelebilir /dev/urandom, ancak bunu kullanarak oluşturulan herhangi bir anahtar olması gerekenden daha az güvenli olabileceğinden, bu bir güvenlik riski olarak kabul edilmelidir. Daha az kritik olan bir uygulama için yardımcı olsa da, /dev/randomkendi anahtarlarını, CSR'yi vb. Üreten diğer kullanıcılar da dahil olmak üzere diğer her olası kullanımı dikkate almanız gerekir .


Not bu FreeBSD üzerinde, /dev/randoma, yüksek kaliteli PRNG ve normal kapatmamalıdır.
Kevin

@Kevin /dev/random, modern BSD ve Linux'ta yüksek kaliteli PRNG'dir . Ancak yeterli entropi yoksa bloke olur. Öte yandan, /dev/urandomyeterli miktar yoksa bloke olmaz, ancak bu durumda rasgele kalitesi düşebilir. Detaylarda Linux ve çeşitli BSD'ler arasında rastgele ve urandom uygulamaları arasında birçok incelik vardır, ancak yukarıdakilerin tüm AFAIK'te doğru olması gerekir.
Huygens

Linux'ta daha fazla entropi oluşturabilirsiniz, sadece bir ana bilgisayara (örneğin ping 8.8.8.8) başka bir ağ ana bilgisayarınız varsa, her 100ms'de ping yapmaya çalışın (RTT'niz <100ms ise). Ve / veya findsabit diskinizdeki dosyaları aramak ve her dosya araması arasındaki RAM önbelleğini temizlemek için kullanın.
Huygens

@Huygens: Bağlantı kurduğum man sayfasını ve Ctrl + F "kern.random.sys.seeded" dosyasını açın; varsayılan olarak, /dev/randomFreeBSD üzerinde engelleme yapmaz.
Kevin

1
@Kevin evet haklısın, entropi havuzu veya hasadı PRNG'yi "tohumlamanın" belki de iki farklı yoludur. Ve BSD kutumdaki bazı testlerden sonra, rastgele ve urandomun aynı şekilde davrandığını, yeterince iyi PRNG üretemediklerinde bloke olduklarını öğrendim. dd if=/dev/random of=/tmp/rndtest bs=64M count=1Yeni bir önyüklemeden sonra çalıştırmayı deneyin , 64 MB'lık dosya artışını oluşturmak için zamanı görmek için art arda 2 işlem yapıldı. Uurandom ile bu etkiyi girdi olarak görmeyeceğimi düşündüm, ancak FreeBSD, Linux'un aksine, onunla da engelliyor gibi görünüyor.
Huygens


4

Uzak makineden çok daha iyi bir rastgele olacak yerel makinenizde gpg anahtarları oluşturmak için tavsiye ederim. Ardından SSH kullanarak anahtarları uzak makinenize taşıyın.

Yerel olarak üretilmesi daha hızlı (entropi için daha fazla kaynak), daha güvenli olacaktır (makinenize virüs bulaşmamışsa kimse süreçte casusluk yapamaz, daha iyi rastgele).

Bunları hala uzaktan oluşturmak istiyorsanız: Linux'ta, sadece bir ana bilgisayara (örneğin ping 8.8.8.8) başka bir ağ ana bilgisayarınız varsa, her 100ms'de ping yapmaya çalışın (RTT'niz <100ms ise) daha fazla entropi üretebilirsiniz . Ve / veya findsabit diskinizdeki dosyaları aramak ve her dosya araması arasındaki RAM önbelleğini temizlemek için kullanın.

Ayrıca haveged, sanal bir ortamda çalıştırıyorsanız kısıtlamaları da okuyabilirsiniz: https://wiki.archlinux.org/index.php/Haveged#Virtual_machines


Bana göre bu doğru çözüm - benden +1.
MadHatter

3

Debian tabanlı sistemlerde, rng-toolspaketi atp-get kullanarak yükleyebilir ve ardından entropi oluşturmak için arka plan programını başlatabilirsiniz:

echo HRNGDEVICE=/dev/urandom >> /etc/default/rng-tools && service rng-tools restart

CentOS-6 sunucularında, rngarka plan programı temel araçlardan biri olarak yüklenir (en azından üzerinde çalıştığım çoğu sistemde) ve entropi oluşturmak için aşağıdaki komutu çalıştırabilirsiniz:

sed -i \'s|EXTRAOPTIONS=\"\"|EXTRAOPTIONS=\"-r /dev/urandom\"|g\' /etc/sysconfig/rngd && service rngd restart

Undomu rngd için kaynak olarak kullanmanın zeki olduğunu düşünmüyorum. Entropinin daha hızlı tüketilmesine yardımcı olacak ve tükendikten sonra entropi için önyargılı bir kaynak olacaktır. Bu yüzden bu çözümden kaçınırım.
Huygens

1
sudo yum install haveged && sudo systemctl start haveged

kesinlikle bir CentOS 7.2 VM üzerinde çalışıyor. Bazen bir grup oluşturuyorsanız ve anahtarlığınızın sağlam olmasını istiyorsanız, bir vm'de GPG anahtarları oluşturmak istersiniz.

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.