Dil Seçin

Sözde Rastgele Sayı Üreteci (PRNG) Tabanlı Güvenli Bir Parola Oluşturucu

Bu makale, HMAC, CMAC veya KMAC tabanlı PRNG'ler kullanan, NIST SP 800-90B entropi ve IID testleri ile doğrulanmış güvenli bir parola oluşturucu önermektedir.
computationalcoin.com | PDF Size: 0.5 MB
Değerlendirme: 4.5/5
Değerlendirmeniz
Bu belgeyi zaten değerlendirdiniz
PDF Belge Kapağı - Sözde Rastgele Sayı Üreteci (PRNG) Tabanlı Güvenli Bir Parola Oluşturucu

İçindekiler

1. Giriş

Web sitesi hesap ve parola sızıntılarına dair sürekli raporlar, bilgi ve parola güvenliğinin kritik önemini vurgulamaktadır. Web sitesi güvenlik açıkları bir faktör olsa da, parolanın kendi iç güvenliği en önemli unsurdur. Yaygın güvensiz parola uygulamaları arasında anahtar kelime tabanlı parolalar, popüler ifade kullanımı, kişisel bilgilerin dahil edilmesi ve parola tekrarı yer alır. Yapay zeka ve büyük dil modellerinin yükselişi, saldırganların parolaları daha etkili bir şekilde tahmin etme gücünü daha da artırmaktadır.

Bu araştırma, kriptografik olarak güvenli Sözde Rastgele Sayı Üreteçleri (PRNG) tabanlı güvenli bir parola oluşturucu önermektedir. Anahtarlı Özet Mesaj Doğrulama Kodu (HMAC), Şifre Tabanlı Mesaj Doğrulama Kodu (CMAC) veya KECCAK Mesaj Doğrulama Kodu (KMAC) kullanarak güvenli PRNG'ler oluşturur ve bu üreteçlerden elde edilen güvenli rastgele sayılar parola oluşturmak için kullanılır. Üretilen sayıların rastgeleliği, NIST SP 800-90B standardına göre entropi ve Bağımsız ve Aynı Dağılımlı (IID) testleri ile doğrulanmıştır.

Ana Katkılar:

2. Literatür Taraması

2.1. Doğrusal Kongrüansiyel Üreteç Tabanlı PRNG

C ve Java gibi dillerde yaygın olarak kullanılan LCG'ler, doğrusal bir yineleme ilişkisi kullanarak bir sayı dizisi üretir. Bir tohum $k$ verildiğinde, başlangıç değeri $f_0(k)$, $f_0(k) \equiv a \oplus k \ (\text{mod} \ m)$ olarak hesaplanır. Sonraki sayılar $f_i(k) \equiv a \times f_{i-1}(k) + c \ (\text{mod} \ m)$ ile üretilir. Ancak, LCG'ler güvensizdir, çünkü durum $f_{i-1}(k) \equiv (f_i(k) - c) \times a^{-1} \ (\text{mod} \ m)$ kullanılarak tersine çevrilebilir, bu da tohumu ve tüm diziyi açığa çıkarır.

2.2. Güvenli Sözde Rastgele Sayı Üreteci

LCG güvenlik açıklarını gidermek için, kriptografik olarak güvenli PRNG'ler gereklidir. Bu makale, NIST tarafından önerilen üç yapıya odaklanmaktadır.

2.2.1. HMAC Tabanlı PRNG

Güvenlik, özet fonksiyonlarının (örn. SHA2, SHA3) tek yönlü özelliğine dayanır. Bir anahtar $k$ ve mesaj $M$ için HMAC, $r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$ olarak hesaplanır; burada $ipad$ ve $opad$ sabitlerdir. Uzun bir bit akışı üretmek için sayaç modu kullanılır: $M_i = i \ || \ KDF \ || \ 0x00 \ || \ M \ || \ L$, $r_{hmac,i}$ çıktılarını üretir.

2.2.2. CMAC Tabanlı PRNG

Güvenlik, Gelişmiş Şifreleme Standardı'na (AES) dayanır. Anahtar $k$ ile Şifre Blok Zincirleme (CBC) modu kullanılarak, mesaj $M$ bloklara ayrılır: $M'_1, M'_2, ...$. Şifreli metin yinelemeli olarak hesaplanır: $c_{i+1} = AES(k, c_i \oplus M'_{i+1})$, $c_0 = Pad0(0)$. Son çıktı $r_{cmac}$ son bloktan türetilir.

2.2.3. KMAC Tabanlı PRNG

SHA-3 (KECCAK) özet fonksiyonuna dayanan KMAC, değişken uzunlukta çıktı sağlar ve kuantum sonrası kriptografi için güçlü bir aday olarak kabul edilir. Yapısı benzer bir kimlik doğrulamalı özetleme ilkesini izler ve yüksek güvenlik garantileri sunar.

2.3. Rastgelelik Doğrulama Yöntemleri

NIST SP 800-90B standardı, rastgele sayı üreteçlerinin kalitesini değerlendirmek için metodolojiler sağlar. İki temel yön değerlendirilir:

3. Önerilen Güvenli Parola Oluşturucu

Sistem mimarisi iki ana aşamadan oluşur:

  1. Güvenli Rastgele Sayı Üretimi: Kullanıcı isteğe bağlı olarak Özetlenecek Mesaj (TBHM) sağlayabilir. Bu, bir kriptografik anahtarla birlikte, seçilen güvenli PRNG (HMAC/CMAC/KMAC tabanlı) tarafından işlenerek kriptografik olarak güçlü bir rastgele bit dizisi üretilir.
  2. Parola Oluşturma: Rastgele bitler, kullanıcı tanımlı veya sistem tanımlı bir karakter kümesine (örn. alfasayısal artı semboller) belirli bir uzunlukta eşlenerek nihai metin tabanlı parola oluşturulur. Güvenlik gücü, karakter kümesi boyutu ve parola uzunluğu tarafından sağlanan entropi göz önünde bulundurularak AES-128/256'ya göre analiz edilir.

4. Deneyler ve Sonuçlar

4.1. Deneysel Kurulum

PRNG çıktılarının rastgeleliğini doğrulamak için deneyler yapılmıştır. Test paketi, her üç PRNG türünden üretilen büyük örneklemler üzerinde entropi tahmini ve IID testi için NIST SP 800-90B değerlendirme prosedürlerini uygulamıştır.

4.2. Rastgelelik Doğrulama Sonuçları

Sonuç Özeti: Önerilen HMAC, CMAC ve KMAC tabanlı PRNG'lerin tümü, NIST SP 800-90B entropi ve IID doğrulama testlerini başarıyla geçmiştir. Üretilen diziler, gerçek rastgelelikten istatistiksel olarak anlamlı bir sapma göstermemiş, bu da kriptografik parola oluşturma için uygunluklarını doğrulamıştır.

Grafik Açıklaması (Tasarlanmış): Üç PRNG türü için minimum entropi tahminlerini (bit/bit cinsinden) NIST geçme eşiği ile karşılaştıran bir çubuk grafik. Her üç çubuk da eşik çizgisinin önemli ölçüde üzerinde gösterilecektir; KMAC potansiyel olarak en yüksek değeri gösterirken, onu HMAC-SHA3 ve CMAC-AES256 yakından takip eder.

4.3. Performans Analizi

Hesaplama verimliliğinin (örn. saniyedeki üretim sayısı) karşılaştırmalı analizi yapılmıştır. CMAC tabanlı üreteçler (AES-NI donanım hızlandırması kullanarak) tipik olarak en yüksek verimi göstermiş, bunu HMAC tabanlı (SHA2/SHA3) üreteçler izlemiş, KMAC ise hesaplama açısından daha ağır olmakla birlikte sağlam kuantum sonrası güvenlik özellikleri sunmuştur.

5. Sonuç ve Gelecek Çalışmalar

Bu araştırma, kriptografik olarak güvenli PRNG'ler (HMAC, CMAC, KMAC) üzerine inşa edilmiş güvenli bir parola oluşturucuyu başarıyla tasarlamış ve doğrulamıştır. Üretilen parolaların güvenliği, bu temel kriptografik ilkellerin kanıtlanmış sağlamlığından ve PRNG çıktısının doğrulanmış yüksek rastgeleliğinden kaynaklanmaktadır. Gelecek çalışmalar arasında, oluşturucuyu tarayıcı uzantılarına veya parola yöneticilerine entegre etmek, parolaların ötesinde kriptografik anahtar üretmek için kullanımını araştırmak ve tam sistem üzerinde yan kanal saldırısı direnci analizi yapmak yer almaktadır.

6. Özgün Analiz ve Uzman Yorumu

Temel İçgörü: Bu makale, siber güvenlikteki kalıcı zayıf halkaya (insan seçimi parolalar) pratik, mühendislik odaklı bir yanıttır. Temel değeri, yeni bir kriptografi sunmasında değil, mevcut, savaşta test edilmiş yapıların (HMAC, CMAC, KMAC) belirli, yüksek etkili bir kullanım durumu için doğru uygulanması ve titiz doğrulanmasındadır. Parola oluşturmayı kullanıcı beyninden doğrulanmış bir kriptografik sürece taşımanın, anahtar değişimi için simetrikten asimetrik kriptoya geçişe benzer şekilde temel bir güvenlik yükseltmesi olduğunu doğru bir şekilde tespit etmektedir.

Mantıksal Akış: Mantık sağlamdır ve klasik bir uygulamalı araştırma modelini izler: problem tanımı (zayıf parolalar) → yaygın çözümlerin eleştirisi (güvensiz LCG'ler) → sağlam bir çözüm önerisi (CSPRNG tabanlı oluşturucu) → deneysel doğrulama (NIST testleri). Doğrulama kriteri olarak NIST SP 800-90B'nin seçilmesi mükemmeldir, çünkü bu, kriptografik bağlamlarda rastgeleliği değerlendirmek için fiili standarttır ve sonuçlara anında güvenilirlik kazandırır.

Güçlü ve Zayıf Yönler:
Güçlü Yönler: Makalenin en büyük gücü pratik doğrulamasıdır. Birçok öneri tasarım aşamasında kalır. Çıktıyı NIST'in katı testlerine tabi tutarak, yazarlar benimsenmesi için çok önemli olan somut güvenlik kanıtı sağlarlar. SHA-3 tabanlı KMAC'ın dahil edilmesi, NIST'in devam eden kuantum sonrası kriptografi standardizasyon sürecinde de belirtildiği gibi, kuantum sonrası hususlara ilişkin öngörüyü göstermektedir.
Zayıf Yönler/Eksiklikler: Analiz biraz izole edilmiştir. Önemli bir eksiklik, tohum yönetimi üzerine bir tartışmanın olmamasıdır. Herhangi bir PRNG'in tohumu tahmin edilebilir veya sızdırılırsa güvenliği çöker. Sistem, HMAC/CMAC/KMAC için başlangıç kriptografik anahtarını nasıl üretir, saklar ve korur? Bu, algoritmanın kendisi kadar kritiktir. Ayrıca, parola gücünü AES ile karşılaştırmak yararlı olsa da, mevcut parola oluşturucularla (KeePass veya 1Password'takiler gibi) ve bunların temel PRNG'leriyle (örn. ChaCha20 kullanarak) daha doğrudan bir karşılaştırma, rekabet avantajı için daha iyi bir bağlam sağlardı.

Uygulanabilir İçgörüler: Güvenlik uygulayıcıları için bu makale bir şablon görevi görür. Eylem 1: Güvenlik açısından hassas görevler için LCG'lerin veya benzeri kriptografik olmayan RNG'lerin (örn. `rand()`) herhangi bir kullanımını derhal kullanımdan kaldırın. Eylem 2: Bir parola oluşturucu oluştururken veya denetlerken, birincil kontrol listesi maddeleri şunlar olmalıdır: 1) Bir CSPRNG kullanın (NIST SP 800-90A'dan HMAC_DRBG, CTR_DRBG veya buradaki yapılar), 2) Çıktısını NIST SP 800-90B veya Dieharder gibi bir paketle doğrulayın ve 3) Yüksek entropili bir kaynaktan (örn. Linux'ta `getrandom()`) sağlam bir tohum üretimi uygulayın. Makale başarılı bir şekilde 2. noktaya odaklanmıştır, ancak 1. ve 3. noktalar da bütünsel resmin eşit derecede hayati parçalarıdır.

7. Teknik Detaylar ve Matematiksel Formülasyon

Önerilen oluşturucunun güvenliği, temel kriptografik fonksiyonlara bağlıdır. Temel matematiksel işlemler şunlardır:

8. Analiz Çerçevesi ve Vaka Örneği

Vaka Örneği: Bir Web Uygulamasının Parola Sıfırlama İşlevinin Denetlenmesi
Senaryo: Bir web uygulaması, "Parolamı Unuttum"a tıklayan kullanıcılar için geçici bir parola oluşturur.
Çerçeve Uygulaması:

  1. RNG'yi Tanımla: Sunucu tarafı kodunu inceleyin. `Math.random()` (JavaScript) veya PHP'de basit bir LCG bulmak kritik bir başarısızlık olur.
  2. Entropi Kaynağını Değerlendir: PRNG nasıl tohumlanıyor? Sistem entropisi mi kullanıyor (`/dev/urandom`, `CryptGenRandom`)?
  3. Önerilen Çözüme Eşle: Hatalı RNG'yi, bu makalenin tasarımını uygulayan bir modülle değiştirmeyi önerin—örneğin, `os.urandom(32)`'den bir tohumla SHA256 kullanan `hmac.new` kullanan bir Python fonksiyonu.
  4. Çıktıyı Doğrula (Uygulama Sonrası): 1.000.000 geçici paroladan oluşan bir örneklem üretin, bit akışına dönüştürün ve rastgeleliği sağlamak için NIST STS paketini (ilgili bir test paketi) çalıştırın.
Bu çerçeve, makalenin teorisini somut bir denetim ve iyileştirme kontrol listesine dönüştürür.

9. Gelecek Uygulamalar ve Yönelimler

Çekirdek teknolojinin, kullanıcı parolası oluşturmanın ötesinde uygulamaları vardır:

10. Kaynaklar

  1. M. Bishop, "Computer Security: Art and Science," Addison-Wesley, 2003.
  2. NIST, "Special Publication 800-63B: Digital Identity Guidelines," 2017.
  3. NIST, "Special Publication 800-90A: Recommendation for Random Number Generation Using Deterministic Random Bit Generators," 2015.
  4. NIST, "Special Publication 800-90B: Recommendation for the Entropy Sources Used for Random Bit Generation," 2018.
  5. J. Kelsey, B. Schneier, D. Wagner, "Secure Applications of Low-Entropy Keys," ISW '97.
  6. D. D. Hwang, B. B. Gupta, "A Study of Password Security and Its Implications," JIS, 2019.
  7. NIST, "FIPS 202: SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions," 2015.
  8. NIST, "SP 800-185: SHA-3 Derived Functions: cSHAKE, KMAC, TupleHash and ParallelHash," 2016.
  9. M. S. Turan, E. Barker, J. Kelsey, "Recommendation for Random Bit Generator (RBG) Constructions," NIST SP 800-90C, 2016.
  10. P. G. Neumann, "Illustrative Risks to the Public in the Use of Computer Systems and Related Technology," ACM SIGSOFT, 1995.