İçindekiler
- 1. Giriş
- 2. Literatür Taraması
- 3. Güvenli PRNG Tabanlı Önerilen Güvenli Parola Oluşturucu
- 4. Deneysel Ortam ve Sonuçlar
- 5. Sonuç ve Gelecek Çalışmalar
- 6. Özgün Analiz ve Uzman Görüşü
- 7. Teknik Detaylar ve Matematiksel Formülasyonlar
- 8. Analiz Çerçevesi ve Kavramsal Örnek
- 9. Gelecek Uygulamalar ve Geliştirme Yönleri
- 10. Kaynaklar
1. Giriş
Son yıllarda web sitesi hesabı ve metin tabanlı parola sızıntılarına dair sürekli raporlar gelmekte olup, bu durum bilgi ve parola güvenliğinin kritik önemini vurgulamaktadır. Web sitesi güvenlik açıklarının ötesinde, parolanın kendi güvenliği de son derece önemlidir. Yaygın güvensiz parola uygulamaları arasında anahtar kelime tabanlı parolalar, popüler ifade tabanlı parolalar, kullanıcı bilgisi tabanlı parolalar ve parola tekrarı yer alır. Yapay Zeka ve Büyük Dil Modellerinin (LLM) hızlı gelişimi, saldırganların parolaları daha etkili bir şekilde tahmin etme gücünü daha da artırmaktadır.
Platformlar Tek Kullanımlık Parola (OTP), çok faktörlü kimlik doğrulama (MFA) ve şifreli parola depolama gibi savunmalar kullanırken, parolaların doğal güvenliğini artırmak kritik önemini korumaktadır. Bu araştırma, güvenli bir Sözde Rastgele Sayı Üreteci (PRNG) tabanlı güvenli bir parola oluşturucu önermektedir. PRNG, kriptografik olarak güvenli rastgele sayılar üretmek için Özet Tabanlı Mesaj Doğrulama Kodu (HMAC), Şifre Tabanlı Mesaj Doğrulama Kodu (CMAC) veya KECCAK Mesaj Doğrulama Kodu (KMAC) kullanılarak oluşturulmakta ve bu sayılar daha sonra parola üretmek için kullanılmaktadır.
Ana katkılar şunlardır:
- HMAC, CMAC veya KMAC tabanlı güvenli PRNG'ler kullanan bir güvenli parola oluşturucu çerçevesi önermek.
- Farklı karakter kümeleri ve parola uzunlukları altında güvenliği analiz etmek ve AES-128/256 ile karşılaştırmak.
- Üretilen sayıların rastgeleliğini NIST SP 800-90B entropi ve Bağımsız ve Özdeş Dağılımlı (IID) testleri kullanarak deneysel olarak doğrulamak.
2. Literatür Taraması
2.1. Doğrusal Kongrüansiyel Üreteç Tabanlı Sözde Rastgele Sayı Üreteci
Birçok programlama dili (ör. C, Java) Doğrusal Kongrüansiyel Üreteçler (LCG) tabanlı PRNG'ler uygular. Bir tohum $k$ verildiğinde, dizi şu şekilde üretilir:
$f_0(k) \equiv a \oplus k \ (\text{mod} \ m)$
$f_i(k) \equiv a \times f_{i-1}(k) + c \ (\text{mod} \ m)$ for $i \ge 1$
Ancak, LCG'ler güvensizdir çünkü bir sonraki durum bir öncekinden doğrusal olarak türetilir ($f_{i-1}(k) \equiv (f_i(k) - c) \times a^{-1} \ (\text{mod} \ m)$), bu da bir saldırganın tohum değerine geri dönmesine olanak tanır.
2.2. Güvenli Sözde Rastgele Sayı Üreteci
2.2.1. Özet Tabanlı Mesaj Doğrulama Kodu (HMAC) Tabanlı
HMAC'ın güvenliği, kriptografik özet fonksiyonlarının (ör. SHA-2, SHA-3) 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))$
Burada $ipad$ ve $opad$ sabit dolgu sabitleridir ve $h$ özet fonksiyonudur. $L$ uzunluğunda rastgele bir bit akışı üretmek için sayaç modu kullanılır ve her çıktı bloğu için mesaj değiştirilir: $M_i = i \ || \ \text{KDF} \ || \ 0x00 \ || \ M \ || \ L$, $r_{hmac,i}(k, M_i)$ üretilir.
2.2.2. Şifre Tabanlı Mesaj Doğrulama Kodu (CMAC) Tabanlı
CMAC'ın güvenliği Gelişmiş Şifreleme Standardı'na (AES) dayanır. $l_a$ uzunluğunda bloklara $M'_i$ bölünmüş bir anahtar $k$ ve mesaj $M$ için, Şifre Blok Zincirleme (CBC) modunda çalışır:
$c_{i+1} = AES(k, c_i \oplus M'_{i+1})$, $c_0 = Pad0(0)$ ile.
Son çıktı $r_{cmac}(k, Split(M))$, belirli bir dolgudan (Pad1) sonraki son şifreli metin bloğundan türetilir.
2.2.3. KECCAK Mesaj Doğrulama Kodu (KMAC) Tabanlı
KMAC, SHA-3 (KECCAK) sünger yapısına dayanır ve esneklik ve güvenlik sunar. NIST SP 800-108 Rev. 1'de özetlendiği gibi, PRNG amaçları için uygun deterministik, tahmin edilemez bir bit akışı üretmek için HMAC'a benzer şekilde sayaç modunda kullanılabilir.
2.3. Rastgeleliği Doğrulama Yöntemleri
Makale, rastgeleliği doğrulamak için NIST SP 800-90B çerçevesini benimsemekte ve iki temel yönüne odaklanmaktadır:
- Entropi Tahmini: Üretilen dizideki örnek başına ortalama tahmin edilemezliği (bit cinsinden) ölçer. Yüksek entropi, parola gücü için çok önemlidir.
- IID (Bağımsız ve Özdeş Dağılımlı) Testi: Örneklerin istatistiksel olarak bağımsız olup olmadığını ve özdeş bir dağılım izleyip izlemediğini belirler. Başarısızlık, desenler veya önyargılar olduğunu gösterir.
3. Güvenli PRNG Tabanlı Önerilen Güvenli Parola Oluşturucu
Önerilen sistem mimarisi şunları içerir:
- Girdi: İsteğe bağlı kullanıcı tarafından sağlanan "Özetlenecek Mesaj" (TBHM) ve parametreler (istenen parola uzunluğu, karakter kümesi).
- Güvenli PRNG Çekirdeği: NIST SP 800-108'e göre sayaç modunda üç MAC fonksiyonundan (HMAC, CMAC veya KMAC) biri kullanılarak oluşturulan bir PRNG. Bu çekirdek, kriptografik olarak güvenli sözde rastgele bit dizisi üretmek için TBHM'yi (ve dahili bir anahtar/tohum) alır.
- Parola Üretimi: Rastgele bitler, istenen uzunlukta bir parola oluşturmak için kullanıcı tarafından belirlenen karakter kümesine (ör. alfasayısal + semboller) eşlenir.
Güvenlik analizi, üretilen parolaların etkin anahtar uzayını (karakter kümesi boyutu $C$ ve uzunluk $L$'ye dayalı olarak $C^L$ olasılık) AES-128 ($2^{128}$) ve AES-256 ($2^{256}$) karşısındaki kaba kuvvet direnci ile karşılaştırır. Örneğin, 94 karakterlik bir kümeden 16 karakterli bir parola ~$94^{16} \approx 2^{105}$ olasılık sunar, bu AES-128'den daha zayıf olsa da birçok amaç için hala güçlüdür.
4. Deneysel Ortam ve Sonuçlar
4.1. Deneysel Kurulum
Önerilen HMAC, CMAC ve KMAC tabanlı PRNG'leri kullanarak büyük rastgele sayı dizileri üretmek için deneyler yapılmıştır. Bu diziler daha sonra NIST SP 800-90B test paketine tabi tutulmuştur.
4.2. Rastgelelik Doğrulama Sonuçları
Temel Bulgu: Deneysel sonuçlar, önerilen üç PRNG yöntemi (HMAC/SHA-256, CMAC/AES-256, KMAC) tarafından üretilen rastgele sayıların, NIST SP 800-90B'de belirtilen hem entropi doğrulama hem de IID doğrulama testlerini başarıyla geçtiğini göstermiştir.
Çıkarım: Bu, çıktı dizilerinin yüksek entropiye sahip olduğunu ve tespit edilebilir istatistiksel bağımlılıklar veya önyargılar göstermediğini doğrulayarak, parola üretiminde güvenli bir rastgelelik kaynağı için temel gereksinimi karşılamaktadır.
4.3. Hesaplama Verimliliği Analizi
Birincil odak olmasa da, makale bir denge olduğunu ima etmektedir. HMAC/SHA-256 ve KMAC genellikle yazılımda çok verimlidir. CMAC/AES, belirli platformlarda donanım hızlandırma avantajlarına sahip olabilir. Seçim, dağıtım ortamının performans kısıtlamalarına göre özelleştirilebilir.
5. Sonuç ve Gelecek Çalışmalar
Bu araştırma, kriptografik olarak güçlü PRNG'ler (HMAC, CMAC, KMAC) tabanlı bir güvenli parola oluşturucu çerçevesini başarıyla tasarlamış ve doğrulamıştır. Üretilen parolalar, güvenliklerini bu MAC fonksiyonlarının kanıtlanmış özelliklerinden ve temel alınan bit akışının doğrulanmış yüksek rastgeleliğinden türetmektedir.
Gelecek yönler şunları içerir:
- Oluşturucuyu tarayıcı uzantılarına veya parola yöneticisi arka uçlarına entegre etmek.
- Uzun vadeli güvenliği sağlamak için PRNG'nin temeli olarak kuantum sonrası kriptografik özet fonksiyonlarını (ör. kafes problemleri tabanlı) araştırmak.
- Standart kriptografik varsayımlar altında resmi bir güvenlik kanıtı geliştirmek.
- Kullanıcılara parola entropisinin önemi konusunda eğitim veren kullanıcı dostu bir arayüz oluşturmak.
6. Özgün Analiz ve Uzman Görüşü
Çekirdek Görüş: Chen'in çalışması, temel bir güvenlik sorununa (zayıf parola entropisi) yönelik pragmatik, standartlara uygun bir mühendislik çözümüdür. Birçok parola ihlalinin kök nedeninin sadece depolama hataları değil, aynı zamanda tahmin edilebilir üretim olduğunu doğru bir şekilde tespit etmektedir. Çözümü NIST onaylı yapılarda (HMAC, CMAC, KMAC) ve doğrulama çerçevelerinde (SP 800-90B) temellendirerek, araştırma kriptografik yenilik için yenilik yapmaktan kaçınmakta ve bunun yerine doğrulanabilir sağlam bir yöntem sunmaktadır. Bu yaklaşım, Linux'taki /dev/urandom arayüzü gibi iyi kurulmuş sistemlerin arkasındaki felsefeyi yansıtmaktadır (ki bu sistem olaylarından entropi toplar), ancak burada odak, yeniden üretilebilir parola üretimi için uygun deterministik, tohumlanabilir ve kullanıcı tarafından etkilenebilir bir süreçtir.
Mantıksal Akış: Argüman yöntemseldir: 1) Sorunu belirle (zayıf, tahmin edilebilir parolalar). 2) Yaygın ancak kusurlu çözümleri reddet (LCG tabanlı RNG'ler). 3) Kanıtlanmış güvenliğe sahip yapı taşları öner (kriptografik MAC'ler). 4) Mevcut standartlara göre bir araya getir (NIST SP 800-108 sayaç modu). 5) Çıktıyı titiz kıyaslama noktalarına karşı doğrula (NIST SP 800-90B). Bu akış sağlamdır ve uygulamalı kriptografi araştırmalarındaki en iyi uygulamaları yansıtır, tıpkı CycleGAN makalesindeki gibi yapılandırılmış değerlendirmeye benzer şekilde, görüntü çeviri kalitesini birden fazla alan ve metrik üzerinden sistematik olarak doğrulamıştır.
Güçlü ve Zayıf Yönler: Birincil gücü güvenilirliğidir. Savaşta test edilmiş kriptografik ilkelleri ve NIST rehberliğini kullanmak riski en aza indirir. İsteğe bağlı kullanıcı girdisi (TBHM), kişiselleştirilmiş ancak güvenli tohumlara izin veren akıllı bir özelliktir. Ancak, önemli bir kusur, en son parola oluşturuculara (benzer bağlamda anahtar uzatma için Argon2 veya bcrypt kullananlar gibi) karşı doğrudan, karşılaştırmalı bir güvenlik analizinin eksikliğidir. AES kaba kuvvet gücüyle karşılaştırma faydalıdır ancak basittir. Gerçek dünyadaki saldırı vektörü genellikle hashlenmiş parolaların çevrimdışı kırılmasıdır; makale, Hashcat gibi optimize edilmiş kurallı araçlara karşı direnci modelleyerek durumunu güçlendirebilir. Ayrıca, NIST testleri yetkili olsa da tüm kriptografik özellikler için kapsamlı değildir; PRNG uygulamasına yönelik yan kanal saldırılarına karşı direnç tartışması değerli olurdu.
Uygulanabilir Öngörüler: Güvenlik mimarları için bu makale hazır bir plan sunar. Öneri 1: KMAC tabanlı varyantı uygulayın. SHA-3 türevi olarak, teorik olarak SHA-2 tabanlı HMAC'ı belirli senaryolarda etkileyen uzunluk uzatma saldırılarına karşı dayanıklı olacak şekilde tasarlanmıştır ve daha geleceğe dönük bir seçimdir. Öneri 2: Bu oluşturucuyu, politika tabanlı parola oluşturmanın gerekli olduğu kurumsal parola kasaları veya SSO sistemleri için çekirdek motor olarak entegre edin. Deterministik doğası (aynı TBHM + parametreler = aynı parola), kurtarma senaryoları için bir özellik olabilir. Öneri 3: Bu teknik çözümü kullanıcı eğitimi ile tamamlayın. Oluşturucu 20 karakterlik rastgele bir dizi üretebilir, ancak kullanıcı kısa, hatırlanabilir bir TBHM ve 8 karakterlik bir uzunluk seçerse güvenlik düşer. Arayüz, makul varsayılanları (örn. minimum 12 karakter, tam karakter kümesi) zorunlu kılmalı ve NCC Group gibi kuruluşların araştırmalarından bilgilendirilen parola gücü göstergeleri gibi, entropi gücünü görsel olarak iletmelidir.
7. Teknik Detaylar ve Matematiksel Formülasyonlar
Çekirdek güvenlik, MAC'ların sözde rastgele fonksiyon (PRF) özelliğine dayanır. Sayaç modundaki PRNG şu şekilde soyutlanabilir:
$R_i = PRF(K, \text{Sayaç} \ || \ \text{Etiket} \ || \ 0x00 \ || \ \text{Girdi} \ || \ L)$
Burada $PRF$, $HMAC$, $CMAC$ veya $KMAC$'tır, $K$ gizli bir anahtardır ve $R_i$ son bit akışını oluşturmak için birleştirilen çıktı bloklarıdır.
Parola Eşleme: Bit akışından türetilen rastgele bir tamsayı değeri $v$ ve $C$ boyutunda bir karakter kümesi verildiğinde, karakter indeksi şu şekilde seçilir: $index = v \mod C$. Bu işlem $L$ kez tekrarlanır.
8. Analiz Çerçevesi ve Kavramsal Örnek
Senaryo: Bir web hizmeti, yeni kullanıcılar için yüksek güçlü, rastgele bir başlangıç parolası üretmek istemektedir.
Çerçeve Uygulaması:
- Parametre Seçimi: Hizmet, PRF olarak KMAC256'yı, güvenli bir şekilde saklanan sistem türevli bir kriptografik anahtar $K_{sys}$'yi ve kullanıcının benzersiz, değişmez Kullanıcı Kimliği ve bir zaman damgasından oluşan bir TBHM seçer.
- Süreç:
- Girdi: TBHM = "USER12345@2023-10-27T10:30:00Z", Uzunluk $L$ = 16, Karakter Kümesi = 94 yazdırılabilir ASCII.
- PRNG çekirdeği, bunu $K_{sys}$ ile sayaç modunda işleyerek 128 rastgele bit üretir (16 karakter * log2(94) ≈ 105 bit, dolayısıyla 128 bit yeterli entropi sağlar).
- Bitler şu şekilde bir dizgeye dönüştürülür:
s9*!Lq9@Pz%2m#X&
- Güvenlik Özellikleri:
- Tahmin Edilemezlik: $K_{sys}$ olmadan, TBHM bilinse bile çıktı tahmin edilemez.
- Determinizm: Aynı kullanıcı o tam anda aynı parolayı alır, bu da hata ayıklamaya yardımcı olur.
- Yüksek Entropi: Parola ~105 bit entropiye sahiptir, bu da kaba kuvvet saldırısını uygulanamaz kılar.
9. Gelecek Uygulamalar ve Geliştirme Yönleri
- Kuantum Sonrası Kriptografi (PQC) Entegrasyonu: Kuantum hesaplama ilerledikçe, SHA-2 ve AES-256, Grover algoritmasına karşı savunmasız hale gelebilir. Gelecek sürümler, temel PRF olarak PQC standartlaştırılmış özet fonksiyonlarını (ör. SPHINCS+ tabanlı) veya simetrik tasarımları (ör. ASCON) entegre edebilir. Çerçevenin modüler yapısı böyle bir değişime izin verir.
- Merkezi Olmayan Kimlik ve Web3: Oluşturucu, blok zinciri cüzdanları için deterministik, kurtarılabilir kriptografik tohumlar veya anımsatıcılar oluşturmak için uyarlanabilir. TBHM, kullanıcının biyometrik özeti + merkezi olmayan bir tanımlayıcı (DID) olabilir.
- Donanım Güvenlik Modülü (HSM) İyileştirmesi: Özellikle CMAC/AES kullanan çekirdek PRNG mantığı, bulut ve IoT ortamlarında güven kökü kimlik bilgileri üretmek için HSM'ler içine gömülebilir, böylece kurcalamaya dayanıklı anahtar üretimi sağlar.
- Uyarlanabilir Parola Üretimi: Sistem, politika motorları tarafından yönlendirilen, hedef hesabın hassasiyetine (ör. bankacılık vs. forum) göre karakter kümesini veya uzunluğu dinamik olarak ayarlayabilir.
10. Kaynaklar
- M. Bellare, R. Canetti, and H. Krawczyk, "Keying Hash Functions for Message Authentication," CRYPTO 1996.
- NIST, "Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication," SP 800-38B.
- NIST, "SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions," FIPS PUB 202.
- NIST, "Recommendation for the Entropy Sources Used for Random Bit Generation," SP 800-90B.
- NIST, "Recommendation for Key Derivation Using Pseudorandom Functions," SP 800-108 Rev. 1.
- J. Kelsey, B. Schneier, and N. Ferguson, "Yarrow-160: Notes on the Design and Analysis of the Yarrow Cryptographic Pseudorandom Number Generator," SAC 1999.
- J. Zhu, T. Park, P. Isola, A.A. Efros, "Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks," ICCV 2017. (Sıkı metodolojik değerlendirme örneği olarak alıntılanmıştır).
- NCC Group, "Password Storage Cheat Sheet," OWASP Foundation. (Pratik parola politikası rehberliği kaynağı olarak alıntılanmıştır).