it-swarm-tr.com

Besleme / dev / rasgele entropi havuzu?

Hangi yolla ek besleme /dev/random entropi havuzu rastgele şifreler üretmek için önerirsiniz? Veya yerel olarak tamamen rasgele şifreler oluşturmanın daha iyi bir yolu olabilir mi?

51
pootzko

Varsa, ses çipinizden beyaz gürültü ile besleyebilirsiniz. Bu makaleye bakın: http://www.linuxfromscratch.org/hints/downloads/files/entropy.txt

24
Henri

/dev/urandom Yerine /dev/random Kullanmalısınız. /dev/random Ve /dev/urandom Arasındaki iki fark (burada Linux hakkında konuşuyorum):

  • /dev/random Teorik olarak daha iyi olabilir bilgi teorik olarak güvenli bir algoritma bağlamında. Bu, günümüz teknolojisine ve ayrıca yarının teknolojisine ve uzaylılar tarafından kullanılan teknolojiye ve Tanrı'nın kendi iPad'ine karşı güvenli olan bir algoritma türüdür. Bilgi teorik olarak güvenli algoritma, sonsuz bilgi işlem gücüne karşı güvenlidir. Söylemeye gerek yok, bu tür algoritmalar oldukça nadirdir ve bir tane kullanıyorsanız, bunu bileceksiniz. Ayrıca, bu bir "olabilir": dahili olarak, /dev/random Geleneksel karma işlevlerini kullanır, bu nedenle sonsuz güçle saldırıya uğrarsa zaten zayıflıklara sahip olma olasılığı vardır (Dünya için endişelenecek bir şey yoktur) tabanlı saldırganlar olsa da).

  • /dev/urandom Engellenmezken /dev/random Bunu engelleyebilir. /dev/random, Ürettiği herhangi bir bitin kayıp bir entropi biti olduğu varsayılarak "hala ne kadar entropiye sahip olduğunu" karşılar. Engelleme çok gerçek sorunlara yol açar, ör. SSH sunucu anahtarı oluşturma işlemini durdurduğu için otomatik bir yüklemeden sonra önyükleme yapamayan bir sunucu (evet, bunu gördüm). /dev/urandom Kriptografik olarak güçlü bir sahte rastgele sayı üreteci kullanıyor, bu yüzden hiç engellemiyor.

Yani /dev/urandom Kullanmak ve bu entropi işi için endişelenmeyi bırakmak istiyorsunuz.

Şimdi Linux yükleyicisini yazıyorsanız entropi konusunda endişelenmek isteyebilirsiniz. İşin püf noktası, /dev/urandom Hiçbir zaman engellemeyecek olsa bile, asla engellememesidir: /dev/urandom, Son önyüklemeden bu yana yeterli miktarda "başlangıç ​​entropisi" aldığı sürece güvenlidir (32 rastgele bayt yeter). Normal bir Linux kurulumu, kurulumdan sonra rastgele bir tohum oluşturur (/dev/random 'Dan) ve diske kaydeder. Her yeniden başlatma sonrasında tohum okunacak, /dev/urandom İçine beslenecek ve yerini almak için hemen yeni bir tohum üretilecektir (/dev/urandom 'Dan). Böylece, bu /dev/urandom 'Un her zaman kriptografik olarak güçlü alea üretmek için yeterli başlangıç ​​entropisine sahip olacağını ve parola üretimi de dahil olmak üzere herhangi bir sıradan kriptografik iş için mükemmel şekilde yeterli olacağını garanti eder. Tek kritik nokta kurulum sırasında: yükleyicinin engelleyebileceği /dev/random 'Dan biraz entropi alması gerekir. Bu sorun ayrıca canlı CD ve okuma yazma kalıcı depolama alanı olmayan diğer varyantlarda da ortaya çıkar. Bu durumlarda, /dev/random Öğesinin iyi beslenmesini ve engellenmemesini sağlamak için bazı entropi kaynakları bulmak isteyebilirsiniz.

İşletim sisteminin kendisi ve daha kesin olarak çekirdek, donanımı ele aldığı için donanım olayından entropi toplamak için doğru yerdedir. Yani, çekirdeğin zaten kullanmadığı entropi için kullanabileceğiniz nispeten az şey var. Kalan kaynaklardan biri Web kamerası verileri: boş bir duvara bakan bir web kamerası, termal gürültü ile veri çıkışı yapacak ve çok veri çıkardığı için iyi bir entropi toplayıcı. Web kamerasından birkaç kare alın, güvenli karma işleviyle (SHA-256) hash edin ve bunu /dev/urandom İçine yazın. Bu hala büyük bir abartı.

50
Thomas Pornin

ses entropi daemon ve havegehasged daemon tarafından kullanılan, onları deneyin biliyorum.

13
krempita

HW rasgelelik cihazında gördüğüm en iyi değer simtec entropy anahtarı.
Başarısızlığa ve saldırılara karşı korunmak için yerleşik güvenlik önlemleri vardır. Örneğin, FIPS 140-2 20Kb'lik her parti üzerinde rasgele testler çalıştırır, istatistiksel olarak anlamlı sayıda test başarısız olursa kendini kapatır. Çok fazla anahtar yaparken bir tane aldım Nesil DNSSEC araştırma için nesil ve bu benim işimi büyük ölçüde hızlandırdı. Tüm dieharder testleri geçer.

7
spinkham

1) Şifrelerde kullanmak için /dev/random 'A daha fazla entropi eklemenize gerek yoktur. Sistem bunu sizin için zaten yapıyor.

2) Rastgele bir şifre oluşturmak için /dev/urandom Yerine /dev/random Kullanmak daha iyidir. (/dev/random Bazı sorunları var: engelliyor, entropi havuzunu diğer /dev/random Kullanıcılarının engellemesine neden olacak şekilde tüketiyor. /dev/urandom Daha iyi genel amaçlı arayüz .)

3) İşte rastgele bir şifre oluşturmak için kullandığım basit bir script. Kullanmak için bekliyoruz.

#!/bin/sh
# Make a 48-bit password (8 characters, 6 bits per char)
dd if=/dev/urandom count=1 2>/dev/null | base64 | head -1 | cut -c4-11 
7
D.W.

Rastgele veri oluşturmak için veri kaynakları ve iyi bir karma algoritma kombinasyonu kullanıyorum.

Bir web sunucusunda, sunucu verilerini (HW, SW, performans), istemci verilerini (kullanıcı aracısı, istek zamanı, çerez, URL değişkenleri, toplayabildiğiniz her şey), bazı harici verileri (random.org gibi), Let sha1 (mixed_data + time + some_secret_key) ile her şeyi karıştırın ve oldukça tahmin edilemeyen rastgele veri parçaları elde edin.

İstemcilerden ve sunucudan kolayca entropi toplamak için P2PEG kullanmayı da düşünebilirsiniz.

2
DUzun

Parolalar, kısasa, deneme hızı veya sayısı sınırlı değilse, her zaman kaba kuvvetle kırılabilir. Öte yandan, denemeler sınırlıysa (örn. İnteraktif giriş), küçük bir entropi bile temelde kırılmazsa - gerekli olan deneme miktarı çok yakında engelleyici hale gelir.

Bu nedenle, şifreler için gerçekten iyi bir entropi elde etmenin önemli olacağı hiçbir durum olmamalıdır.

Yani/dev/urandom'u kullanın, yeterince iyi değil.

Burada verilen diğer cevaplar,/dev/random'inizi gerekli entropi ile birlikte nasıl tutacağınıza dair iyi yorumlar.

1
Nakedible