İç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:
- HMAC, CMAC ve KMAC tabanlı güvenli PRNG'lerin oluşturulması.
- Farklı karakter kümeleri ve uzunluklar altında oluşturulan parolaların güvenlik analizi ve bunların gücünün AES-128 ve AES-256 ile karşılaştırılması.
- NIST SP 800-90B kullanılarak rastgeleliğin deneysel doğrulanması, özellikle Entropi ve Bağımsız ve Aynı Dağılımlı (IID) testlerine odaklanılması.
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:
- Entropi Değerlendirmesi: Üretilen bit akışındaki minimum entropi miktarını tahmin eder, bu da tahmin edilemezliğini gösterir.
- IID (Bağımsız ve Aynı Dağılımlı) Testi: Çıktı bitlerinin istatistiksel olarak bağımsız olup olmadığını ve aynı dağılımı izleyip izlemediğini belirlemek için bir dizi istatistiksel test (örn. Ki-Kare, Kolmogorov-Smirnov).
3. Önerilen Güvenli Parola Oluşturucu
Önerilen sistem mimarisi basit ancak güçlüdür:
- 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.
- 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.
- 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.
- Entropi Doğrulaması: Üç PRNG türünden (HMAC-SHA256, CMAC-AES256, KMAC256) elde edilen rastgele dizilerin tümü NIST SP 800-90B entropi değerlendirmesini geçerek, çıktının biti başına ideal 1 bite yakın yüksek minimum entropi gösterdi.
- IID Doğrulaması: Diziler ayrıca IID test paketini de geçerek, bitlerin istatistiksel olarak bağımsız ve aynı dağılımlı olduğunu, tespit edilebilir bir desen veya önyargı olmadığını doğruladı.
- Performans: Birincil odak olmasa da, makale hesaplama verimliliğine değinmektedir. HMAC-SHA256 ve KMAC256 benzer hız gösterirken, CMAC-AES256 blok şifre işlemleri nedeniyle biraz daha yavaştı, ancak tümü parola oluşturma için pratik sınırlar içindeydi.
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:
- Oluşturucuyu tarayıcı uzantılarına veya parola yöneticilerine entegre etmek.
- Uzun vadeli güvenliği sağlamak için PRNG'nin temeli olarak kuantum sonrası kriptografik algoritmaları (örn. kafes, hash tabanlı) araştırmak.
- Standart kriptografik modeller altında resmi bir güvenlik kanıtı geliştirmek.
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:
- LCG (Güvensiz): $f_i(k) \equiv a \times f_{i-1}(k) + c \ (\text{mod} \ m)$
- HMAC: $r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$
- PRNG için Sayaç Modunda HMAC: $M_i = i \ || \ \text{KDF} \ || \ 0x00 \ || \ M \ || \ L$
- CMAC (CBC-MAC) yinelemesi: $c_{i+1} = AES(k, c_i \oplus M'_{i+1})$
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ı:
- PRNG Türünü Belirle: Kaynak kodunu incele. Bul:
seed = (a * seed + c) % m;Bunun bir LCG varyantı olduğunu doğrula. - 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.
- 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.
- Tohum Kaynağı: Sistem zamanı tohumunu bir CSPRNG ile (örn. Linux'ta
9. Gelecek Uygulamalar ve Geliştirme Yönleri
İlkeler kullanıcı parolalarının ötesine uzanır:
- API Anahtarı ve Token Oluşturma: Mikroservis mimarileri içinde kriptografik olarak rastgele API anahtarları ve oturum token'ları otomatik olarak oluştur.
- Güvenli Varsayılan Yapılandırmalar: IoT cihazlarına veya yazılım yükleyicilerine, yaygın varsayılan kimlik bilgisi saldırılarını azaltmak için benzersiz, güçlü varsayılan yönetici parolaları oluşturan bu tür oluşturucuları göm.
- Kuantum Sonrası Evrim: KMAC tabanlı yapı, doğası gereği kuantum dirençli kabul edilen SHA-3 (KECCAK) tabanlıdır. Bu oluşturucu, "kripto-çevik" sistemler için bir temel olabilir. Gelecek çalışmalar, kriptografik topluluk kuantum bilgi işlem çağına hazırlanırken, CRYSTALS-Kyber veya hash tabanlı imzalar gibi NIST standartlaştırılmış kuantum sonrası algoritmalara dayalı PRNG'leri entegre etmelidir.
- Parola Yöneticileri ve SSO ile Entegrasyon: Oluşturucu, açık kaynaklı parola yöneticilerinin veya Tek Oturum Açma (SSO) sistemlerinin çekirdek bir bileşeni olabilir, şeffaf bir şekilde denetlenebilir bir parola rastgeleliği kaynağı sağlar.
10. Kaynaklar
- M. Bishop, “Computer Security: Art and Science”, Addison-Wesley, 2019.
- NIST, “Special Publication 800-63B: Digital Identity Guidelines”, 2020.
- NIST, “Special Publication 800-90B: Recommendation for the Entropy Sources Used for Random Bit Generation”, 2018.
- NIST, “Special Publication 800-108 Rev. 1: Recommendation for Key Derivation Using Pseudorandom Functions”, 2022.
- NIST, “FIPS 202: SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions”, 2015.
- J. Kelsey, B. Schneier, D. Wagner, “Secure Applications of Low-Entropy Keys”, Information Security Workshop, 1997.
- M. Dworkin, “Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication”, NIST SP 800-38B, 2005.
- 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
- Linux Foundation, “Common Criteria Certification and Open Source”, 2023. [Çevrimiçi]. Mevcut: https://www.linuxfoundation.org/