Dil Seçin

Sahte Rastgele Sayı Üreteci (PRNG) Tabanlı Güvenli Parola Oluşturucu

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

İçindekiler

1. Giriş

Bu araştırma, süregelen parola sızıntıları ve bunun sonucunda ortaya çıkan kişisel veri ifşası riskini ele almaktadır. Web sitesi güvenliği bir faktör olsa da, parolanın kendi içsel gücü en önemli unsurdur. Yaygın güvenlik açıkları arasında anahtar kelimelere, popüler ifadelere, kullanıcı bilgilerine dayalı parolalar 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.

Buna karşılık olarak, bu makale güvenli bir Sahte Rastgele Sayı Üreteci (PRNG) üzerine inşa edilmiş güvenli bir parola oluşturucu önermektedir. Temel PRNG, yüksek kaliteli rastgele sayılar üretmek için HMAC, CMAC veya KMAC gibi kriptografik ilkeller kullanılarak oluşturulur ve bu sayılar daha sonra parola oluşturmak için kullanılır. Sistem, işlemi tohumlamak için isteğe bağlı kullanıcı girdisini (Hash'lenecek Mesaj, TBHM) kabul eder. Ana katkılar şunlardır:

2. Literatür Taraması

2.1. Doğrusal Kongrüansiyel Üreteç Tabanlı Sahte Rastgele Sayı Üreteci

Yaygın programlama dilleri (C, Java) Doğrusal Kongrüansiyel Üreteçler (LCG) kullanır. Bir tohum $k$ verildiğinde, dizi şu şekilde oluşturulur: $f_0(k) \equiv a \oplus k \ (\text{mod} \ m)$ ve $f_i(k) \equiv a \times f_{i-1}(k) + c \ (\text{mod} \ m)$. Bu yöntem güvensizdir çünkü durum tersine çevrilebilir: $f_{i-1}(k) \equiv (f_i(k) - c) \times a^{-1} \ (\text{mod} \ m)$, bu da tohumu ve tüm diziyi ifşa eder.

2.2. Güvenli Sahte Rastgele Sayı Üreteci

Güvenli PRNG'ler, NIST SP 800-108 Rev. 1'de özetlendiği gibi kriptografik ilkellere dayanır.

2.2.1. HMAC Tabanlı

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

2.2.2. CMAC Tabanlı

Güvenlik, CBC modundaki AES blok şifresine dayanır. Mesaj $M$, $M'_1, M'_2, ...$ bloklarına ayrılır. İşlem yinelenir: $c_{i+1} = AES(k, c_i \oplus M'_{i+1})$, $c_0 = Pad0(0)$. Son çıktı $r_{cmac}$, belirli bir dolgudan (Pad1) sonraki son şifre bloğundan türetilir.

2.2.3. KMAC Tabanlı

KECCAK sünger fonksiyonunu (SHA-3'ün temeli) kullanır, deterministik rastgele bitler üretmeye uygun esnek ve sağlam bir MAC fonksiyonu sunar.

2.3. Rastgeleliği Doğrulama Yöntemleri

Makale, entropi kaynaklarını doğrulamak için fiili standart olan NIST SP 800-90B çerçevesini benimsemektedir. İki kritik doğrulama paketi içerir:

3. Önerilen Güvenli Parola Oluşturucu

Önerilen sistem mimarisi basit ancak güçlüdür:

  1. Giriş/Tohum: İsteğe bağlı kullanıcı tarafından sağlanan bir TBHM kabul eder. Sağlanırsa işlenir; aksi takdirde sistem tarafından oluşturulan güvenli bir tohum kullanılır.
  2. Güvenli PRNG Çekirdeği: TBHM/tohum, kriptografik olarak güçlü bir sahte rastgele bit dizisi üretmek için üç kriptografik PRNG yapısından birine (HMAC tabanlı, CMAC tabanlı, KMAC tabanlı) beslenir.
  3. Parola Oluşturma: Rastgele bitler, kullanıcı tanımlı veya sistem tanımlı bir karakter kümesine (örn. alfasayısal + semboller) eşlenerek istenen uzunlukta bir parola üretilir.

Güvenlik Analizi: Makale, oluşturulan parolanın güvenliğinin doğrudan PRNG çıktısının entropisine ve karakter kümesinin boyutuna bağlı olduğunu savunmaktadır. Karşılaştırmalı bir analiz yaparak, PRNG çıktısının gerçekten rastgele olduğu varsayıldığında, bu yöntemle 94 karakterlik bir kümeden oluşturulan 16 karakterlik bir parolanın, AES-128 veya AES-256 anahtarlarınınkine benzer veya onu aşan kaba kuvvete karşı direnç sunabileceğini göstermektedir.

4. Deneysel Sonuçlar ve Analiz

Deneysel doğrulama, makalenin önemli bir gücüdür.

Grafik Açıklaması (İma Edilen): Bir çubuk grafik, üç PRNG yöntemi için minimum entropi tahminlerini (bit/bit cinsinden) ideal 1.0 değerine karşı etkili bir şekilde karşılaştırabilir. Tüm çubuklar 1.0'a çok yakın olurdu. İkinci bir grafik, temel IID testlerinden (örn. Ki-Kare, Kolmogorov-Smirnov) elde edilen p-değerlerini gösterebilir ve tüm değerler tipik anlamlılık eşiğinin (örn. 0.01) çok üzerinde olarak, bir geçişi gösterir.

5. Sonuç ve Gelecek Çalışmalar

Araştırma, kriptografik PRNG'ler tabanlı güvenli bir parola oluşturma çerçevesini başarıyla göstermektedir. Önerilen yöntemler, NIST standartları tarafından titizlikle doğrulanmış yeterli rastgeleliğe sahip parolalar üretir. Gelecek çalışma yönleri şunları içerir:

6. Özgün Analiz ve Uzman Görüşü

Temel İçgörü: Bu makale yeni bir kriptografik ilkel icat etmekle ilgili değildir; sıradan ancak kritik bir sorun olan parola oluşturmayı çözmek için mevcut, test edilmiş ilkellerin (HMAC, CMAC, KMAC) disiplinli uygulanması ve doğrulanması ile ilgilidir. Gerçek değeri, teorik kriptografi ile pratik güvenlik hijyeni arasındaki boşluğu kapatmasında ve çıktısının amaca uygun olduğunu altın standart NIST test paketi kullanarak titizlikle kanıtlamasında yatar.

Mantıksal Akış: Argüman sağlamdır: 1) Standart LCG'ler kriptografik olarak kırılmıştır. 2) Kriptografik MAC'lerden oluşturulan güvenli PRNG'ler kanıtlanabilir şekilde sağlamdır. 3) Bu nedenle, bu tür PRNG'lerden türetilen parolalar bu sağlamlığı miras alır. 4) Bu iddia sadece teoriyle değil, aynı zamanda katı deneysel testleri (NIST SP 800-90B) geçerek doğrulanmıştır. Bu uçtan uca doğrulama, birçok "güvenli parola oluşturucu" aracının eksikliğidir.

Güçlü ve Zayıf Yönler:
Güçlü Yönler: Metodolojik titizlik takdire şayandır. Doğrulama için NIST SP 800-90B kullanmak, kriptografik algoritmaların CAVP (Kriptografik Algoritma Doğrulama Programı) ile doğrulandığı gibi, güvenilirliğini hemen yükseltir. AES anahtar gücüyle karşılaştırma, güvenlik ekipleri için pratik, ilişkilendirilebilir bir ölçüttür.
Zayıf Yönler: Makale kontrollü, idealize edilmiş bir ortamda çalışır. Başlangıç tohumunun/TBHM'nin yeterli entropiye sahip olduğunu varsayar—gerçek sistemlerde kritik ve genellikle zayıf bir halka. "İsteğe bağlı" kullanıcı girdisi iki tarafı keskin bir kılıçtır; zayıf, tahmin edilebilir bir kullanıcı ifadesi (örn. "parolam") tüm kriptografik yapıyı baltalayabilir, bu risk tam olarak ölçülmemiştir. Ayrıca, NIST'in 2023 incelemesi "Post-Quantum Cryptography: A Ten-Year Journey"da belirtildiği gibi, alan kuantum dirençli algoritmalara doğru ilerlemektedir. Makalenin yapıları, klasik bilgisayarlara karşı güvenli olsa da, uzun vadeli kuantum direnci belirsiz olan SHA2/AES'e dayanmaktadır.

Uygulanabilir İçgörüler: Güvenlik mimarları için bu makale bir şablon sağlar. Kendi PRNG'nizi yazmayın. Yapı taşları olarak yerleşik kriptografik yapıları kullanın. Daha da önemlisi, doğrulayın, doğrulayın, doğrulayın. Kritik rastgele sayı üretim sistemlerinize, Linux Vakfı'nın CCC (Ortak Kriter Sertifikasyonu) çabaları gibi kuruluşlar tarafından vurgulandığı gibi, sürekli entropi doğrulamasını (NIST testleri gibi) entegre edin. Ürün geliştirme için, acil çıkarım, sistemlerinizdeki LCG tabanlı herhangi bir parola oluşturmayı, güvenli bir şekilde elde edilmiş bir tohum kullanarak KMAC veya HMAC-SHA256 tabanlı bir oluşturucu ile değiştirmektir. Geleceğe yönelik adım, SHA-3/KECCAK tabanlı tasarımlarla (KMAC gibi) prototiplemeye başlamak ve nihai entegrasyon için NIST'in kuantum sonrası kriptografi standartlarının evrimini izlemektir.

7. Teknik Detaylar ve Matematiksel Formülasyon

Temel matematiksel işlemler Literatür Taraması (Bölüm 2) bölümünde tanımlanmıştır. Ana formüller şunları içerir:

Parola oluşturma, rastgele bir tamsayı $R$'yi (PRNG çıktısından) bir karakter indeksine eşler: $\text{index} = R \ \text{mod} \ |S|$, burada $|S|$ karakter kümesinin boyutudur.

8. Analiz Çerçevesi ve Örnek Vaka

Örnek Vaka: Eski Bir Sistemin Parola Oluşturucusunun Değerlendirilmesi
Senaryo: Eski bir web uygulaması, geçici kullanıcı parolaları oluşturmak için değiştirilmiş bir LCG kullanmaktadır. Bir güvenlik denetimi gereklidir.
Çerçeve Uygulaması:

  1. PRNG Türünü Belirle: Kaynak kodunu incele. Bul: seed = (a * seed + c) % m; Bunun bir LCG varyantı olduğunu doğrula.
  2. Kriptografik Güvenliği Değerlendir: LCG deterministiktir ve tersine çevrilebilir. Bir saldırgan birkaç ardışık parola elde ederse, tohumu çözebilir ve gelecekteki tüm parolaları tahmin edebilir, bu da NIST SP 800-63B kimlik doğrulayıcı rastgelelik kılavuzlarını ihlal eder.
  3. Makalenin Yöntemini Kullanarak İyileştirme Öner:
    • Tohum Kaynağı: Sistem zamanı tohumunu bir CSPRNG ile (örn. Linux'ta /dev/urandom, Windows'ta CryptGenRandom) değiştir.
    • Çekirdek Oluşturucu: Makalenin tasarımına göre bir HMAC-SHA256 tabanlı PRNG uygula.
    • Doğrulama: Yeni oluşturucudan büyük bir örnek (1.000.000 bit) oluştur ve dağıtımdan önce rastgeleliği doğrulamak için NIST STS (İstatistiksel Test Paketi) veya SP 800-90B'den entropi tahmincilerini çalıştır.
Bu çerçeve, değerlendirmeyi "rastgele görünüyor mu?"dan "standartlaştırılmış kriptografik doğrulamayı geçiyor mu?"ya kaydırır.

9. Gelecek Uygulamalar ve Geliştirme Yönleri

İlkeler kullanıcı parolalarının ötesine uzanır:

10. Kaynaklar

  1. M. Bishop, “Computer Security: Art and Science”, Addison-Wesley, 2019.
  2. NIST, “Special Publication 800-63B: Digital Identity Guidelines”, 2020.
  3. NIST, “Special Publication 800-90B: Recommendation for the Entropy Sources Used for Random Bit Generation”, 2018.
  4. NIST, “Special Publication 800-108 Rev. 1: Recommendation for Key Derivation Using Pseudorandom Functions”, 2022.
  5. NIST, “FIPS 202: SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions”, 2015.
  6. J. Kelsey, B. Schneier, D. Wagner, “Secure Applications of Low-Entropy Keys”, Information Security Workshop, 1997.
  7. M. Dworkin, “Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication”, NIST SP 800-38B, 2005.
  8. NIST, “Status Report on the Third Round of the NIST Post-Quantum Cryptography Standardization Process”, 2022. [Çevrimiçi]. Mevcut: https://csrc.nist.gov/projects/post-quantum-cryptography
  9. Linux Foundation, “Common Criteria Certification and Open Source”, 2023. [Çevrimiçi]. Mevcut: https://www.linuxfoundation.org/