NIST SP 800-90A: DRBG Standartları
NIST DRBG çerçevesini anlayın: örneklendirme, yeniden tohumlama, tahmin direnci ve güvenlik düzeyleri.
NIST SP 800-90A: DRBG Standartları, CoddyKit'te ücretsiz bir Cryptology Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cryptology Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cryptology Academy kursu toplamda 4 dersten oluşur.
Belirlenimci Rastgele Bit Üreteçlerine Neden İhtiyaç Duyulur
Kriptografik işlemler yüksek kaliteli rastgele sayılara ihtiyaç duyar: anahtar üretimi, nonce değerleri, başlangıç vektörleri (IV'ler), tuzlar ve oturum belirteçleri. Gerçek rastgele sayı üreteçleri (TRNG'ler), fiziksel kaynaklardan (donanım gürültüsü, kesintiler, termal gürültü) entropi toplar; ancak yavaştır ve özellikle sanal makinelerde veya önyüklemenin ilk aşamalarında her zaman kullanılamaz. Belirlenimci Rastgele Bit Üreteçleri (DRBG'ler) bu sorunu çözer: Bir DRBG'yi az miktarda gerçek entropiyle tohumlar ve bunu, gerçek rastgele bitlerden hesaplama açısından ayırt edilemeyen büyük bir sözde rastgele bit akışına genişletmek için kriptografik bir algoritma kullanırsınız. NIST SP 800-90A, günümüzdeki neredeyse tüm kriptografik uygulamalarda kullanılan, onaylanmış üç DRBG mekanizmasını tanımlar.
DRBG Yaşam Döngüsü: Başlatma, Üretme, Yeniden Tohumlama
Bir DRBG üç temel işlemle çalışır. Başlatma: Bir entropi kaynağından alınan entropy_input, benzersizliği sağlayan tek kullanımlık bir değer olan nonce ve isteğe bağlı olarak uygulamaya özgü bağlamı belirten personalization_string kullanılarak DRBG'nin iç durumu başlatılır. Üretme: İstenen sayıda sözde rastgele bit üretilir ve geriye dönük iz sürmeyi önlemek için iç durum güncellenir. Yeniden tohumlama: Tahmin direnci sağlamak için DRBG durumuna taze entropi eklenir; yeniden tohumlamadan sonra önceki durumu bilen bir saldırgan bile gelecekteki çıktıları tahmin edemez. NIST, üç DRBG türünün tümü için en fazla üretim aralığını (reseed_interval) belirtir: zorunlu yeniden tohumlama yapılmadan önce 2^48 istek.
Güvenlik Güçleri ve Parametre Seçimi
NIST SP 800-90A dört güvenlik gücü düzeyi tanımlar: 112, 128, 192 ve 256 bit. Güvenlik gücü, başlatma sırasında gereken asgari entropiyi ve üretilen çıktının niteliğini belirler. 128 bit güvenlik için entropi girdisi en az 128 bit entropi sağlamalıdır. İlişki şöyledir: security_strength bitlik entropi -> DRBG çıktısı, 2^security_strength işlem gerçekleştirebilen bir saldırgan için rastgele çıktılardan hesaplama açısından ayırt edilemez. Anahtar uzunluğu seçimleri (AES-128 ve AES-256) ile özet seçimi (SHA-256 ve SHA-512), istenen güvenlik gücüne eşit veya ondan büyük olacak şekilde kısıtlanır. Gereğinden büyük parametreler kullanmak (128 bit güvenlik için SHA-512 kullanmak) güvenlidir ancak kaynak israfına yol açar; yetersiz parametre kullanmak güvenliği bozar.
Hash_DRBG Yapısı
Hash_DRBG iki durum değeri tutar: V (çıktı üreten bir değer) ve C (üretim sırasında eklenen bir sabit). Üretme: hash_gen, yeterli çıktı elde edilene kadar H(0x01 || V), H(0x01 || V+1), ... değerlerini art arda hesaplayarak bitler üretir; ardından V, V = V + H(0x03 || V) + C + reseed_counter formülüyle güncellenir. Yeniden tohumlama: Mevcut V değerini taze entropiyle birleştirerek yeni V ve C üretmek için Hash_df'yi (özet türetme işlevini) kullanır. Hash_DRBG'nin uygulanması kolay, güvenlik analizi basittir; bu nedenle kaynakları kısıtlı ortamlar için uygundur. NIST, SHA-256 veya SHA-512 ile başlatılmasını önerir. Hash_DRBG, Java'nın eski SHA1PRNG'sinde ve OpenSSL'in eski DRBG'sinde kullanılır.
HMAC_DRBG Yapısı
HMAC_DRBG, durumu (Anahtar K, Değer V) tutar. Üretme: Yeterli çıktı üretilene kadar V = HMAC(K, V) işlemini yineler; ardından K = HMAC(K, V || 0x00) ve V = HMAC(K, V) olarak günceller. Güncelleme: additional_input değerini alır ve HMAC işlemlerini kullanarak K ile V'yi yeniden tohumlar. HMAC_DRBG, HMAC güvenliğine dayanan temiz bir güvenlik kanıtına sahiptir (HMAC üzerindeki PRF varsayımı). En yaygın biçimde önerilen DRBG'dir: OpenSSL (1.1.1 sürümünden beri), mbedTLS, wolfSSL ve çoğu TLS yığını HMAC_DRBG kullanır. HMAC yapısı, art arda yapılan çağrılar arasında yerleşik karıştırma sağlar; bu da durum kısmen açığa çıksa bile geriye dönük iz sürme saldırılarının gerçekleştirilmesini zorlaştırır.
CTR_DRBG Yapısı
CTR_DRBG, sayaç kipinde bir blok şifresi (AES) kullanır. Durum: K anahtarı ve V sayacı. Üretme: Ardışık sayaç değerlerini E(K, V), E(K, V+1), ... biçiminde şifreler ve V'yi artırır. Güncelleme: additional_input değerinden yeni K ve V türetmek için Block_Cipher_df'yi kullanır. CTR_DRBG en hızlı DRBG'dir; AES-NI donanım hızlandırması, modern işlemcilerde onu özet tabanlı DRBG'lerden katlarca daha hızlı kılar. Windows CNG'nin varsayılan DRBG'sidir (CryptGenRandom, AES-256 ile CTR_DRBG kullanır); ayrıca OpenSSL 3.0'da ve Linux çekirdeğinin RNG'sinde (getrandom sistem çağrısı) kullanılır. CTR_DRBG'nin güvenliği, AES'in sözde rastgele bir permütasyon olmasına dayanır; bu özellik onlarca yıllık analizle güçlü biçimde desteklenmektedir.
Tahmin Direnci ve Yeniden Tohumlama
Tahmin direnci, yeniden tohumlama yoluyla taze entropi karıştırıldığı sürece, DRBG durumunu daha önce ele geçirmiş bir saldırganın bile DRBG çıktısını tahmin edememesi özelliğidir. prediction_resistance_flag=true olan bir DRBG, taze entropi eklemek için her Generate çağrısından önce entropi kaynağını çağırır. Tahmin direnci olmadan, T anındaki durum ele geçirildiğinde gelecekteki tüm çıktılar hesaplanabilir (ileriye dönük güvenlik bozulur). Geriye dönük güvenlik (geriye dönük iz sürme direnci olarak da adlandırılır), mevcut durum bilinse bile geçmiş çıktılarının tahmin edilememesi anlamına gelir; HMAC_DRBG ve CTR_DRBG, her Generate işleminden sonra mevcut durumdan yeni bir anahtar türeten güncelleme adımlarıyla bunu sağlar.
Entropi Kaynakları: NIST SP 800-90B ve 90C
SP 800-90A, DRBG algoritmalarını belirtir ancak entropi kaynağını belirtmez. SP 800-90B, entropi kaynakları için gereksinimleri tanımlar: Donanım gürültü kaynakları nitelendirilmeli ve doğrulanmalı, entropi tahminleri ihtiyatlı yapılmalı ve sağlık testleri entropi kaynağı arızalarını algılamalıdır. SP 800-90C, entropi kaynaklarının DRBG'lerle birleştirilerek eksiksiz rastgele bit üreteçleri oluşturulmasını belirtir. Tipik entropi kaynakları şunlardır: CPU RDRAND/RDSEED (2012'den beri Intel/AMD CPU'larında bulunan donanım RNG'si), OS entropisi (Linux'ta /dev/urandom, Windows'ta BCryptGenRandom), donanım güvenlik modülleri, TPM 2.0 RNG'si ve çevresel gürültü (disk zamanlaması, ağ titreşimi). Düşük entropili koşullar (sanal makineler, önyüklemenin ilk aşamaları), zayıf tohumlardan kaçınmak için özel işlem gerektirir.
FIPS 140-3 Sertifikasyon Gereksinimleri
FIPS 140-3 (kriptografik modül doğrulaması için güncel standart), sertifikalı modüller içindeki tüm rastgele sayı üretiminde NIST SP 800-90A DRBG'lerini zorunlu kılar. Modül şunları yapmalıdır: onaylanmış bir DRBG (Hash, HMAC veya CTR) kullanmak; SP 800-90B gereksinimlerini karşılayan onaylanmış bir entropi kaynağından tohum almak; DRBG işlemlerini doğrulayan açılışta öz testler (POST) gerçekleştirmek; sıfıra veya bire takılı kalma biçimindeki entropi arızalarını algılayan sürekli RNG testlerini (CRNGT) uygulamak ve entropi kaynağı kullanılabilir entropi olduğunu bildirdiğinde yeniden tohumlamayı desteklemek. HSM'ler (Thales Luna, AWS CloudHSM, Utimaco), TLS hızlandırıcı kartları ve ağ şifreleme cihazları genellikle FIPS 140-3 doğrulamasından geçmiş modüller gerektirir; bu da SP 800-90A'nın benimsenmesini yaygınlaştırır.
İşletim Sistemlerinde DRBG
Modern işletim sistemleri, donanım entropi kaynaklarından tohumlanan çekirdek düzeyinde bir DRBG bulundurur. Linux, RDRAND, kesintiler ve disk/ağ olaylarından tohumlanan ChaCha20 tabanlı bir DRBG kullanır (çekirdek 5.17'den beri eski Fortuna benzeri tasarımın yerini almıştır). /dev/urandom, DRBG çıktısını döndürür ve ilk tohumlamadan sonra beklemez. /dev/random, yeterli entropi kullanılabilir olana kadar bekler (eski davranış; son çekirdeklerde büyük ölçüde kaldırılmıştır). getrandom(2) sistem çağrısı modern arabirimdir ve yalnızca erken açılışta, DRBG tohumlanmadan önce bekler. Windows, çekirdekteki RNG'de TPM'den ve donanım olaylarından tohumlanan CTR_DRBG (AES-256) kullanır. Uygulamalar, kendi DRBG'lerini zaman damgalarından veya PID'lerden tohumlamak yerine yüksek düzeyli programlama arayüzleri aracılığıyla işletim sisteminin DRBG'sini kullanmalıdır.
Yaygın DRBG Uygulama Hataları
Gerçek dünyadaki DRBG açıkları, algoritma zayıflıklarından çok uygulama hatalarından kaynaklanır. (1) Yetersiz tohumlama: yalnızca geçerli zaman damgası veya PID ile tohumlamak, saldırganlara tahmin edilebilir bir tohum verir. (2) Çatallanma farkındalığının olmaması: bir süreç çatallandığında üst ve alt süreç aynı DRBG durumunu paylaşır; bu nedenle aynı rastgele sayıları üretirler. Çözüm: çatallamadan sonra yeniden tohumlayın (pthread_atfork veya açık bir getrandom çağrısı). (3) VM anlık görüntüsünün yeniden kullanılması: bir VM anlık görüntüsü geri yüklenirse DRBG durumu anlık görüntüsündeki duruma döner ve daha önce görülmüş çıktıyı üretir. Çözüm: VM başlatılırken benzersiz entropi ekleyin (VIRTIO RNG). (4) Sağlık sınamaları başarısız olduğunda sessizce devam etmek: entropi hatası algıladıktan sonra üretmeye devam eden bir DRBG, saldırganın tahmin edebileceği çıktı sağlar. (5) DRBG örnekleri arasında tek kullanımlık değerleri yeniden kullanmak.
DRBG'yi Yeniden Tohumlama Sınaması
Bir DRBG'nin taze entropiyle yeniden tohumlanması hangi özelliği sağlar?
NIST SP 800-90A Özeti
NIST SP 800-90A, onaylanmış üç DRBG mekanizması tanımlar: Hash_DRBG (yinelemeli karma, basit), HMAC_DRBG (HMAC tabanlı, yalın güvenlik kanıtı sunan ve yaygın olarak kullanılan) ve CTR_DRBG (AES sayaç kipi; AES-NI aracılığıyla en hızlı, Windows/OpenSSL'de varsayılan). Bu mekanizmaların tümü, 2^48 ile sınırlı bir reseed_interval değerine sahip Instantiate/Generate/Reseed yaşam döngüsünü paylaşır. Güvenlik gücü (112-256 bit), entropi gereksinimlerini belirler. Öngörü direnci, her Generate çağrısından önce yeniden tohumlama yapılmasını gerektirir. FIPS 140-3, SP 800-90B entropi kaynaklarıyla birlikte SP 800-90A DRBG'lerini zorunlu kılar. Çatallanma farkındalığının olmaması, VM anlık görüntüsünün yeniden kullanılması ve yetersiz tohumlama, gerçek dünyadaki başlıca uygulama tuzaklarıdır.
Yapay zeka eğitmeniyle Cryptology Academy öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 67
- Dersler
- 261
Sıkça Sorulan Sorular
“NIST SP 800-90A: DRBG Standartları” dersi ücretsiz mi?
Evet — “NIST SP 800-90A: DRBG Standartları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cryptology Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cryptology Academy kursu toplamda 4 dersten oluşur.
“NIST SP 800-90A: DRBG Standartları” dersinde ne öğreneceğim?
NIST DRBG çerçevesini anlayın: örneklendirme, yeniden tohumlama, tahmin direnci ve güvenlik düzeyleri. Cryptology Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Cryptology Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Cryptology Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“NIST SP 800-90A: DRBG Standartları” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Cryptology Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Cryptology Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- NIST SP 800-90A: DRBG Standartları
- Hash-DRBG, HMAC-DRBG ve CTR-DRBG İç Yapıları
- Dual EC DRBG Arka Kapı Olayı
- RNG Uygulamalarını Test Etme ve Doğrulama