Pilih Bahasa

Penjana Kata Laluan Selamat Berdasarkan Penjana Nombor Rawak Pseudo (PRNG)

Kertas ini mencadangkan penjana kata laluan selamat menggunakan PRNG berasaskan HMAC, CMAC, atau KMAC, disahkan melalui ujian entropi dan IID NIST SP 800-90B.
computationalcoin.com | PDF Size: 0.5 MB
Penilaian: 4.5/5
Penilaian Anda
Anda sudah menilai dokumen ini
Sampul Dokumen PDF - Penjana Kata Laluan Selamat Berdasarkan Penjana Nombor Rawak Pseudo (PRNG)

Kandungan

1. Pengenalan

Laporan berterusan tentang kebocoran akaun dan kata laluan laman web menekankan kepentingan kritikal keselamatan maklumat dan kata laluan. Walaupun kelemahan laman web adalah satu faktor, keselamatan semula jadi kata laluan itu sendiri adalah paling utama. Amalan kata laluan tidak selamat yang biasa termasuk kata laluan berasaskan kata kunci, penggunaan frasa popular, penggabungan maklumat peribadi, dan penggunaan semula kata laluan. Kebangkitan AI dan model bahasa besar seterusnya memperkasakan penyerang untuk meneka kata laluan dengan lebih berkesan.

Penyelidikan ini mencadangkan penjana kata laluan selamat berdasarkan Penjana Nombor Rawak Pseudo (PRNG) yang selamat secara kriptografi. Ia membina PRNG menggunakan Kod Pengesahan Mesej Hash Berkekunci (HMAC), Kod Pengesahan Mesej Berasaskan Cipher (CMAC), atau Kod Pengesahan Mesej KECCAK (KMAC) untuk menghasilkan nombor rawak yang selamat, yang kemudiannya digunakan untuk menjana kata laluan. Kerawakan nombor yang dijana disahkan terhadap piawaian NIST SP 800-90B melalui ujian entropi dan ujian Bebas dan Taburan Serupa (IID).

Sumbangan Utama:

2. Sorotan Literatur

2.1. PRNG Berasaskan Penjana Kongruen Linear

Biasa digunakan dalam bahasa seperti C dan Java, LCG menjana jujukan nombor menggunakan hubungan berulang linear. Diberikan benih $k$, nilai awal $f_0(k)$ dikira sebagai $f_0(k) \equiv a \oplus k \ (\text{mod} \ m)$. Nombor seterusnya dijana oleh $f_i(k) \equiv a \times f_{i-1}(k) + c \ (\text{mod} \ m)$. Walau bagaimanapun, LCG adalah tidak selamat kerana keadaan boleh diterbalikkan menggunakan $f_{i-1}(k) \equiv (f_i(k) - c) \times a^{-1} \ (\text{mod} \ m), mendedahkan benih dan keseluruhan jujukan.

2.2. Penjana Nombor Rawak Pseudo yang Selamat

Untuk menangani kelemahan LCG, PRNG yang selamat secara kriptografi adalah penting. Kertas ini memberi tumpuan kepada tiga pembinaan yang disyorkan NIST.

2.2.1. PRNG Berasaskan HMAC

Keselamatan bergantung pada sifat satu hala fungsi hash (cth., SHA2, SHA3). Untuk kekunci $k$ dan mesej $M$, HMAC dikira sebagai $r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$, di mana $ipad$ dan $opad$ adalah pemalar. Untuk menjana aliran bit panjang, mod pembilang digunakan: $M_i = i \ || \ KDF \ || \ 0x00 \ || \ M \ || \ L$, menghasilkan output $r_{hmac,i}$.

2.2.2. PRNG Berasaskan CMAC

Keselamatan adalah berdasarkan Piawaian Penyulitan Lanjutan (AES). Menggunakan mod Rantaian Blok Cipher (CBC) dengan kekunci $k$, mesej $M$ dibahagikan kepada blok $M'_1, M'_2, ...$. Teks sifer dikira secara berulang: $c_{i+1} = AES(k, c_i \oplus M'_{i+1})$, dengan $c_0 = Pad0(0)$. Output akhir $r_{cmac}$ diperoleh daripada blok terakhir.

2.2.3. PRNG Berasaskan KMAC

Berasaskan fungsi hash SHA-3 (KECCAK), KMAC menyediakan output panjang berubah dan dianggap calon kuat untuk kriptografi pasca-kuantum. Pembinaannya mengikut prinsip penghashan disahkan yang serupa, menawarkan jaminan keselamatan tinggi.

2.3. Kaedah Pengesahan Kerawakan

Piawaian NIST SP 800-90B menyediakan metodologi untuk menilai kualiti penjana nombor rawak. Dua aspek utama dinilai:

3. Penjana Kata Laluan Selamat yang Dicadangkan

Seni bina sistem melibatkan dua peringkat utama:

  1. Penjanaan Nombor Rawak Selamat: Pengguna boleh secara pilihan menyediakan Mesej Untuk Dihash (TBHM). Ini, bersama-sama dengan kekunci kriptografi, diproses oleh PRNG selamat yang dipilih (berasaskan HMAC/CMAC/KMAC) untuk menghasilkan jujukan bit rawak yang kuat secara kriptografi.
  2. Penjanaan Kata Laluan: Bit rawak dipetakan ke atas set aksara yang ditakrifkan pengguna atau sistem (cth., alfanumerik ditambah simbol) dengan panjang yang ditentukan untuk menjana kata laluan berasaskan teks akhir. Kekuatan keselamatan dianalisis berbanding AES-128/256, dengan mengambil kira entropi yang disediakan oleh saiz set aksara dan panjang kata laluan.

4. Eksperimen dan Keputusan

4.1. Persediaan Eksperimen

Eksperimen dijalankan untuk mengesahkan kerawakan output PRNG. Suit ujian melaksanakan prosedur penilaian NIST SP 800-90B untuk anggaran entropi dan ujian IID ke atas sampel besar nombor rawak yang dijana daripada ketiga-tiga jenis PRNG.

4.2. Keputusan Pengesahan Kerawakan

Ringkasan Keputusan: PRNG berasaskan HMAC, CMAC, dan KMAC yang dicadangkan semuanya berjaya lulus ujian pengesahan entropi dan IID NIST SP 800-90B. Jujukan yang dijana tidak menunjukkan sisihan statistik yang signifikan daripada kerawakan sebenar, mengesahkan kesesuaiannya untuk penjanaan kata laluan kriptografi.

Penerangan Carta (Dibayangkan): Carta bar membandingkan anggaran min-entropi (dalam bit per bit) untuk tiga jenis PRNG berbanding ambang kelulusan NIST. Ketiga-tiga bar akan ditunjukkan dengan ketara di atas garisan ambang, dengan KMAC berpotensi menunjukkan nilai tertinggi, diikuti rapat oleh HMAC-SHA3 dan CMAC-AES256.

4.3. Analisis Prestasi

Analisis perbandingan kecekapan pengiraan (cth., penjanaan per saat) dilakukan. Penjana berasaskan CMAC (menggunakan pecutan perkakasan AES-NI) biasanya menunjukkan kadar pemindahan tertinggi, diikuti oleh berasaskan HMAC (SHA2/SHA3), dengan KMAC lebih berat dari segi pengiraan tetapi menawarkan sifat keselamatan pasca-kuantum yang teguh.

5. Kesimpulan dan Kerja Masa Depan

Penyelidikan ini berjaya mereka bentuk dan mengesahkan penjana kata laluan selamat yang dibina atas PRNG yang selamat secara kriptografi (HMAC, CMAC, KMAC). Kata laluan yang dijana memperoleh keselamatannya daripada keteguhan primitif kriptografi asas yang terbukti dan kerawakan tinggi output PRNG yang disahkan. Kerja masa depan termasuk mengintegrasikan penjana ke dalam sambungan pelayar atau pengurus kata laluan, meneroka penggunaannya dalam menjana kekunci kriptografi selain kata laluan, dan menjalankan analisis rintangan serangan saluran sisi pada sistem lengkap.

6. Analisis Asal & Ulasan Pakar

Pandangan Teras: Kertas ini adalah respons pragmatik, berfokuskan kejuruteraan kepada pautan lemah abadi dalam keselamatan siber: kata laluan pilihan manusia. Nilai terasnya bukan dalam kriptografi novel tetapi dalam aplikasi yang betul dan pengesahan yang ketat pembinaan sedia ada, teruji pertempuran (HMAC, CMAC, KMAC) untuk kes penggunaan khusus dan berimpak tinggi. Ia mengenal pasti dengan betul bahawa memindahkan penjanaan kata laluan dari otak pengguna kepada proses kriptografi yang disahkan adalah peningkatan keselamatan asas, setara dengan peralihan dari kripto simetri kepada asimetri untuk pertukaran kunci.

Aliran Logik: Logiknya kukuh dan mengikut corak penyelidikan gunaan klasik: definisi masalah (kata laluan lemah) → kritikan penyelesaian biasa (LCG tidak selamat) → cadangan penyelesaian teguh (penjana berasaskan CSPRNG) → pengesahan empirikal (ujian NIST). Pilihan NIST SP 800-90B sebagai penanda aras pengesahan adalah cemerlang, kerana ia adalah piawaian de facto untuk menilai kerawakan dalam konteks kriptografi, memberikan kredibiliti serta-merta kepada keputusan.

Kekuatan & Kelemahan:
Kekuatan: Kekuatan terbesar kertas ini adalah pengesahan praktikalnya. Banyak cadangan berhenti di fasa reka bentuk. Dengan menguji output kepada ujian ketat NIST, penulis memberikan bukti konkrit keselamatan, yang penting untuk penerimaan. Kemasukan KMAC, berasaskan SHA-3, menunjukkan pandangan jauh mengenai pertimbangan pasca-kuantum, seperti yang dinyatakan dalam proses pemiawaian kriptografi pasca-kuantum NIST yang sedang berjalan.
Kelemahan/Ketinggalan: Analisis agak terpencil. Kelemahan ketara ialah kekurangan perbincangan mengenai pengurusan benih. Keselamatan mana-mana PRNG runtuh jika benihnya boleh diramal atau bocor. Bagaimanakah sistem menjana, menyimpan, dan melindungi kekunci kriptografi awal untuk HMAC/CMAC/KMAC? Ini adalah setanding kritikal dengan algoritma itu sendiri. Tambahan pula, walaupun membandingkan kekuatan kata laluan dengan AES berguna, perbandingan lebih langsung dengan penjana kata laluan sedia ada (seperti dalam KeePass atau 1Password) dan PRNG asas mereka (cth., menggunakan ChaCha20) akan memberikan konteks yang lebih baik untuk kelebihan dayasaingnya.

Pandangan Boleh Tindak: Untuk pengamal keselamatan, kertas ini berfungsi sebagai pelan. Tindakan 1: Hentikan serta-merta sebarang penggunaan LCG atau RNG bukan kriptografi serupa (seperti `rand()`) untuk tugas sensitif keselamatan. Tindakan 2: Apabila membina atau mengaudit penjana kata laluan, item senarai semak utama haruslah: 1) Gunakan CSPRNG (HMAC_DRBG, CTR_DRBG dari NIST SP 800-90A, atau pembinaan di sini), 2) Sahkan outputnya dengan suit seperti NIST SP 800-90B atau Dieharder, dan 3) Laksanakan penjanaan benih teguh dari sumber entropi tinggi (cth., `getrandom()` pada Linux). Kertas ini berjaya memberi tumpuan kepada titik 2, tetapi titik 1 dan 3 adalah bahagian penting yang sama dalam gambaran lengkap.

7. Butiran Teknikal & Formulasi Matematik

Keselamatan penjana yang dicadangkan bergantung pada fungsi kriptografi asas. Operasi matematik utama adalah:

8. Kerangka Analisis & Contoh Kes

Contoh Kes: Mengaudit Fungsi Set Semula Kata Laluan Aplikasi Web
Skenario: Aplikasi web menjana kata laluan sementara untuk pengguna yang klik "Lupa Kata Laluan."
Aplikasi Kerangka:

  1. Kenal pasti RNG: Periksa kod sisi pelayan. Mencari `Math.random()` (JavaScript) atau LCG mudah dalam PHP akan menjadi kegagalan kritikal.
  2. Nilai Sumber Entropi: Bagaimanakah PRNG dibenihkan? Adakah ia menggunakan entropi sistem (`/dev/urandom`, `CryptGenRandom`)?
  3. Petakan kepada Penyelesaian Dicadangkan: Cadangkan menggantikan RNG yang rosak dengan modul yang melaksanakan reka bentuk kertas ini—contohnya, fungsi Python menggunakan `hmac.new` dengan SHA256 dan benih dari `os.urandom(32)`.
  4. Sahkan Output (Selepas Pelaksanaan): Jana sampel 1,000,000 kata laluan sementara, tukar kepada aliran bit, dan jalankan suit NIST STS (suit ujian berkaitan) untuk memastikan kerawakan.
Kerangka ini mengubah teori kertas kepada senarai semak audit dan pemulihan konkrit.

9. Aplikasi & Hala Tuju Masa Depan

Teknologi teras mempunyai aplikasi melampaui penjanaan kata laluan pengguna:

10. Rujukan

  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.