Güvenlik

/dev/random vs /dev/urandom ve bunlar güvenli mi??

/dev/random vs /dev/urandom ve bunlar güvenli mi??

Başlarken

Rastgele bir sayı üretmenin böyle bir karışıklık olacağını kim düşünebilirdi, belirli bir aralık arasında herhangi bir yerde bir sayı tahmin etmek kadar basit olması gerekiyordu. Ancak göründüğü kadar basit değil ve şimdiye kadar tüm makinelerin kendi başına gerçek bir rastgele sayı üretemediği kanıtlandı.

Makineler neden kendi başına gerçek rastgele sayı üretemez??

Makineler henüz sadece talimat verilmiş mekanizma ve devre kümeleridir ve bu nedenle herhangi bir yardım almadan rastgele bir sayıyı kendi başlarına düşünmeleri öğretilemez. Ve bu yüzden şimdiye kadar ve daha ileri, gerçek bir rastgele sayı üretmek için doğayı veya insanları makinelere dahil ettik. Burada gerçek bir rasgele sayının nasıl üretileceğini tartışmayacağız, ancak halihazırda uygulanmış rasgele sayı üreteçleri ve bunların çalışmaları ve zayıflıkları hakkında tartışacağız.

Gerçek bir rastgele sayı üretmek neden bu kadar önemlidir??

Soru, gerçek rasgele sayıların üretilmesinin neden önemli olduğu ve bunun cevabının güvenlik endişeleri nedeniyle ortaya çıktığıdır. Çoğu kriptografik algoritma, bu rastgele sayılar kriptografik anahtarlar oluşturmak için kullanıldığından rastgele sayıların oluşturulmasına dayanır ve üretilen rastgele sayılar doğası gereği gerçekten rastgele değilse, bunlar tüm bu şifreleme tekniklerini zayıflatır ve bu anahtarlar nispeten daha kolay tahmin edilebilir bu rastgele anahtarları oluşturmak için kullanılan algoritmayı kullanarak. Bu, kumar gibi uygulamalar dışında gerçek bir rastgele sayının en önemli nedenidir.

Linux Çekirdeklerinde Rastgele Sayı Üreticisi:

Bugünkü tartışmamızın konusu Linux Random Number Generator'a, bu üretecin hangi faktörlere dayandığına ve gerçekten bu kadar rastgele mi yoksa sadece tipik olarak güvenilmez bir rastgele sayı mı?.

Linux, Sözde Rastgele Sayı Üreticisi (PRNG) veya Kriptografik Olarak Güvenli Sözde Rastgele Sayı Üreticisi (CSPRNG) kullanır; bu, maksimum rastgelelik elde etmek için karmaşık matematiksel formüller ve çevresel özellikler kullandığı anlamına gelir. Linux, PRNG'yi çekirdek alanına dahil eden ilk işletim sistemiydi. Bu, 1994 yılında Theodore Ts'o tarafından uygulandı.

Linux'un üç rastgele sayı üreteci kategorisi vardır, /dev/random, /dev/urandom, /dev/arandom. Bunların üçü de Linux'un rasgele sayıları depoladığı dosyalardır. Bu dosyalardaki rastgele sayılar, aygıt sürücülerinden ve diğer kaynaklardan gelen çevresel gürültü kullanılarak oluşturulur. Ayrıca, rastgele sayılarında rastgeleliği sağlamak için linux, aralarındaki belirsizliğin veya düzensizliğin derecesi olan entropiyi kullanır. Linux Rastgele Sayı Üreticisi (RNG) için kılavuz sayfasını da burada bulabilirsiniz:

http://man7.org/linux/man-pages/man4/random.4.html

/dev/rastgele e karşı /dev/urandom e karşı /dev/random:

/dev/random, /dev/urandom ve /dev/arandom arasındaki temel fark, entropi yeterli rastgelelik göstermiyorsa /dev/random'u bloke etmesidir, /dev/urandom sözde rastgele sayı üreteci olsa bile hiç engellemez başlatıldığında tam olarak eklenmez ve son olarak /dev/arandom yalnızca sözde rastgele sayı üreteci henüz tam olarak eklenmediğinde bloklar. Kısacası, /dev/random en güvenlisidir, ardından /dev/arandom gelir ve en az güvenlisi /dev/urandom'dur. Normalde /dev/random ve /dev/urandom kullanılır çünkü /dev/arandom birçok açıdan /dev/urandom'a benzer. Kısaca rastgele sayı havuzu için entropi tahmini, üretilen sayıların rastgeleliğini belirlemek için kullanılır. Entropi ne kadar fazlaysa, o kadar fazla rastgelelik elde edilir ve daha iyi olur. Mevcut entropi miktarı ve entropi havuzunun boyutu, sırasıyla entropy_avail ve pool_size olarak adlandırılan /proc/sys/kernel/random/ dizininde bulunur ve bunlar, komutlar kullanılarak terminalde görüntülenebilir:

cat /proc/sys/kernel/random/entropy_avail

Ve:

cat /proc/sys/kernel/random/pool_size

Hem urandom hem de rastgele farklı senaryolarda kullanılır. 'Urandom' sürekli rasgele sayılara ihtiyaç duyulan ve rasgeleliği çok önemli olmayan yerlerde kullanılırken, 'rastgele' bir güvenlik endişesinin olduğu ve rasgeleliği güvenilir olmalıdır, çünkü entropi yüksek değilse rasgele sayıların çıktısını engellediğinden rastgeleliği güvenilir olmalıdır. işaret. urandom (Unlimited Random) için entropi çok daha zayıf olmasa da, urandom tarafından üretilen sayılara saldırı olasılığı nedeniyle daha fazla güvenlik gerektiğinde rastgele kullanılması önerilir.

Linux Rastgele Sayı Üreticilerindeki Zayıf Yönler

Kalıcı Bellek Donanımı için:

Linux çekirdekleri için, rasgele sayı üreteci, önyüklenebilir durumun tahmin edilebilir olduğu ve yeterli entropi kaynağının sınırlı olduğu yönlendiriciler gibi gömülü donanımlar için iyi değildir. Bu tür donanımlar için, bir sonraki önyüklemede kullanılacak olan, kapatmadan önce Rastgele Sayı Üreticisi (RNG) durumunun kaydedilmesi ve kullanılması önerilir. Bu tür yönlendirici durumlarında, saldırganlar yalnızca tüm yönlendirici bağlantılarına erişimleri varsa ve iletişim bağlantılarını gizlice dinliyorlarsa veya yönlendiricinin kendisinden kaydedilen RNG durumuna doğrudan eriştiyse, oluşturulan rastgele sayıları tehlikeye atabilir ve tahmin edebilir.

Donanım durumunda RNG'nin bu kusuru için üçüncü taraf entropi üreteçleri kurtarmaya geliyor. 'Haged' gibi bu entropi üreteçleri, entropiyi kabul edilebilir bir dereceye yükseltmek için işlemci önbellek zamanlamasını, harici ses ve video giriş cihazlarını kullanır.

Entropi Tahmini:

Daha önce belirtildiği gibi, Linux çekirdeği entropi açısından rastgeleliği belirler, ancak aslında her seferinde entropiyi hesaplamaz ve bunun yerine entropi tahminlerini kullanır. Çeşitli araştırmalar, Linux'ta kullanılan rastgele sayıların entropi tahmininin uygun veya daha yakın tahminler olmadığını, dolayısıyla sayıların genel rastgeleliğini zayıflattığını ortaya koymuştur.

Linux Random Number Generator'da bazı zayıflıklar olmasına rağmen, diğer RNG'lere kıyasla çok daha iyi bir seçenektir, Linux katkıda bulunanlar ve geliştiriciler tarafından sağlanan devam eden yamaları unutmamak gerekir.

Sonuç:

Bunların hepsi Linux çekirdeğindeki Rastgele Sayı Üreticisi hakkında benim tarafımdandı. Bu bilgiyi seninle yaymak için iyi zaman geçirdim. Umarım bu sayede yeni bir şeyler öğrenmişsinizdir ve ayrıca bilgiyi dünyayla daha fazla paylaşacaksınız. Son olarak, bu makaleye zaman ayırdığınız için teşekkürler.

Linux'ta GameConqueror Cheat Engine Nasıl Kullanılır
Makale, Linux'ta GameConqueror hile motorunu kullanma hakkında bir kılavuzu kapsar. Windows'ta oyun oynayan birçok kullanıcı, oyun deneyimini geliştir...
Linux için En İyi Oyun Konsolu Emülatörleri
Bu makale, Linux için kullanılabilen popüler oyun konsolu öykünme yazılımını listeleyecektir. Öykünme, oyun konsollarının, komut setlerinin ve ilgili ...
Best Linux Distros for Gaming in 2021
The Linux operating system has come a long way from its original, simple, server-based look. This OS has immensely improved in recent years and has no...