Kandungan
1. Pengenalan
Laporan berterusan mengenai 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 Berkunci (HMAC), MAC Berasaskan Cipher (CMAC), atau KECCAK MAC (KMAC) untuk menjana nombor rawak yang selamat, yang kemudiannya digunakan untuk menghasilkan kata laluan. Kerawakan yang dijana disahkan terhadap piawaian NIST SP 800-90B melalui ujian entropi dan ujian Bebas dan Taburan Serupa (IID).
2. Sorotan Literatur
2.1. PRNG Berasaskan Penjana Kongruen Linear
Biasa digunakan dalam bahasa seperti C dan Java, LCG menjana jujukan melalui hubungan berulang: $f_i(k) \equiv a \times f_{i-1}(k) + c \ (\text{mod} \ m)$, disemai oleh $k$. Ia adalah tidak selamat kerana keadaan boleh diterbalikkan: $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
PRNG kriptografi direka untuk tidak dapat diramal, walaupun sebahagian output diketahui.
2.2.1. PRNG Berasaskan HMAC
Keselamatan bergantung pada sifat satu hala fungsi hash (contohnya, SHA2, SHA3). Untuk kunci $k$ dan mesej $M$, HMAC dikira sebagai: $r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$. Mod pembilang digunakan untuk menjana berbilang blok untuk output yang lebih panjang.
2.2.2. PRNG Berasaskan CMAC
Keselamatan adalah berdasarkan Standard Penyulitan Lanjutan (AES). Ia beroperasi dalam mod Rantaian Blok Cipher (CBC). Blok teks sifer terakhir selepas memproses mesej yang dipadat berfungsi sebagai MAC/output: $r_{cmac}(k, Split(M))$.
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.
2.3. Kaedah Pengesahan Kerawakan
NIST SP 800-90B menyediakan metodologi untuk menilai sumber entropi. Anggaran entropi mengukur ketidakramalan (min-entropi). Ujian IID memeriksa sama ada data adalah bebas dan bertaburan serupa, satu andaian utama untuk banyak ujian statistik. Lulus ujian ini mengesahkan kualiti sumber kerawakan.
3. Penjana Kata Laluan Selamat yang Dicadangkan
Seni bina sistem melibatkan: 1) Pengguna secara pilihan menyediakan Mesej Untuk Dihash (TBHM). 2) PRNG kriptografi (berasaskan HMAC/CMAC/KMAC) menggunakan TBHM (dan kunci) untuk menjana aliran bit entropi tinggi. 3) Aliran bit ini dipetakan ke set aksara yang ditakrifkan pengguna (contohnya, abjad angka + simbol) dengan panjang tertentu untuk menghasilkan kata laluan akhir. Keselamatan dianalisis dengan membandingkan ruang carian kata laluan terhadap kekuatan kunci AES-128 dan AES-256.
4. Eksperimen dan Keputusan
4.1. Persediaan Eksperimen
Melaksanakan tiga jenis PRNG (HMAC-SHA256, CMAC-AES-128, KMAC256). Menjana jujukan besar bit rawak untuk pengujian.
4.2. Keputusan Pengesahan Kerawakan
Keputusan Utama: Ketiga-tiga pembinaan PRNG yang dicadangkan (HMAC, CMAC, KMAC) berjaya lulus kedua-dua pengesahan entropi dan ujian IID mengikut NIST SP 800-90B. Ini secara empirikal menunjukkan bahawa nombor yang dijana mempunyai kerawakan dan kualiti statistik yang mencukupi untuk penjanaan kata laluan kriptografi.
4.3. Analisis Prestasi
Kecekapan pengiraan dinilai. Walaupun semua kaedah boleh dilaksanakan, KMAC dan HMAC mungkin menunjukkan profil prestasi berbeza bergantung pada platform, dengan CMAC berasaskan AES selalunya lebih pantas pada perkakasan dengan pecutan AES.
5. Kesimpulan dan Kerja Masa Depan
Kertas kerja ini membentangkan rangka kerja penjana kata laluan selamat yang dibina di atas PRNG kriptografi (HMAC, CMAC, KMAC). Kerawakan yang dijana disahkan menggunakan piawaian NIST, mengesahkan kesesuaiannya. Kerja masa depan termasuk mengintegrasikan penjana ke dalam sambungan pelayar atau pengurus kata laluan, meneroka penggunaannya dalam menjana kunci kriptografi selain kata laluan, dan menguji ketahanan terhadap serangan tekaan berasaskan AI yang baru muncul.
6. Analisis Asal & Ulasan Pakar
Pandangan Teras: Kertas kerja ini bukan tentang mencipta cipher baru; ia adalah penyelesaian kejuruteraan pragmatik yang mematuhi piawaian untuk masalah manusia yang meluas: penciptaan kata laluan lemah. Nilai terasnya terletak pada penggunaan primitif kriptografi yang mantap (HMAC, CMAC, KMAC) sebagai PRNG yang disyorkan NIST dan mengesahkan output secara ketat—satu langkah yang sering diabaikan dalam penjana kata laluan "DIY". Dalam era di mana AI boleh memodel corak data peribadi (seperti yang dilihat dalam penyelidikan mengenai tekaan kata laluan berkuasa AI seperti PassGAN), mengalihkan sumber kerawakan kata laluan dari otak manusia kepada algoritma kriptografi yang disahkan adalah peningkatan keselamatan yang tidak boleh dirunding.
Aliran Logik: Logiknya kukuh dan mengikut templat kriptografi gunaan klasik: 1) Kenal pasti kelemahan (kata laluan dijana manusia yang lemah). 2) Pilih alat kriptografi yang sesuai dan telah disaring (PRNG NIST SP 800-108). 3) Bina sistem (petakan output PRNG ke set aksara). 4) Sahkan komponen teras (output PRNG melalui NIST SP 800-90B). Metodologi ini mencerminkan amalan terbaik dalam reka bentuk sistem selamat, serupa dengan bagaimana pustaka moden seperti `libsodium` mengutamakan primitif yang teguh dan selamat secara lalai.
Kekuatan & Kelemahan:
Kekuatan: Pengesahan NIST yang ketat adalah kelebihan terbesar kertas kerja ini, memberikan kredibiliti empirikal. Penggunaan KMAC selari dengan persediaan pasca-kuantum. Input pengguna pilihan (TBHM) adalah ciri bijak, membolehkan penjanaan semula kata laluan deterministik jika diperlukan, tanpa menjejaskan keselamatan jika PRNG itu teguh.
Kelemahan: Batasan utama kertas kerja ini adalah skopnya sebagai bukti konsep. Ia kekurangan analisis pelaksanaan dunia sebenar yang menangani saliran sisi (serangan masa semasa pemetaan), pengurusan kunci selamat untuk PRNG, dan cabaran integrasi dengan polisi kata laluan sedia ada. Tambahan pula, walaupun ia membandingkan kekuatan kata laluan dengan AES, ia tidak menganalisis secara mendalam kehilangan entropi semasa proses pemetaan set aksara, yang merupakan butiran kritikal untuk kata laluan pendek.
Pandangan Boleh Tindak: Untuk pengamal keselamatan, pengajaran adalah jelas: Hentikan membenarkan pengguna atau fungsi rawak naif memilih kata laluan. Laksanakan penjana kata laluan backend seperti ini untuk tetapan semula "lupa kata laluan" atau persediaan pengguna awal. Pilihan khusus PRNG boleh disesuaikan: gunakan CMAC-AES untuk kelajuan pada pelayan biasa, KMAC untuk kebimbangan kuantum jangka panjang. Yang penting, sebarang penggunaan mesti termasuk mengurus benih/kunci PRNG dengan ketegasan yang sama seperti mana-mana kunci kriptografi. Kerja ini harus diintegrasikan ke dalam rangka kerja seperti Lembaran Panduan Pengesahan OWASP sebagai corak yang disyorkan untuk penjanaan kata laluan selamat.
7. Butiran Teknikal & Formulasi Matematik
Keselamatan bergantung pada formulasi PRNG. Untuk HMAC:
$r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$
di mana $h$ adalah hash seperti SHA-256, $ipad/opad$ adalah pemalar, dan $k$ adalah kunci. Untuk penjanaan kata laluan, pembilang $i$ digabungkan ke dalam $M_i$ untuk menjana berbilang blok: $M_i = i || \text{Label} || 0x00 || \text{Konteks} || L$. Bit output kemudian ditukar kepada indeks integer untuk memilih aksara dari set $C$ bersaiz $N$: $\text{indeks} = \text{bit_rawak} \mod N$.
8. Kerangka Analisis & Contoh Kes
Skenario: Perkhidmatan web perlu menjana kata laluan 12-aksara yang kuat untuk akaun pengguna baru.
Aplikasi Kerangka:
1. Takrif Parameter: Set aksara $C$ = 94 aksara ASCII boleh cetak. Panjang $L=12$. Pilihan PRNG: HMAC-SHA256.
2. Jana Kerawakan: Kumpulkan entropi untuk benih $k$. Gunakan TBHM = "perkhidmatanX_pengguna123". Jalankan PRNG berasaskan HMAC dalam mod pembilang untuk menghasilkan $\lceil log_2(94^{12}) \rceil \approx 79$ bit entropi.
3. Petakan ke Kata Laluan: Gunakan aliran 79-bit untuk menjana 12 indeks, setiap satu memilih aksara dari $C$.
4. Semakan Pengesahan: Entropi kata laluan yang dijana adalah ~78.5 bit, setanding dengan kunci simetri ~80-bit, jauh lebih kuat daripada mana-mana kata laluan pilihan manusia.
Aliran Kerja Tanpa Kod: Proses ini boleh dibungkus dalam panggilan API sisi pelayan, sepenuhnya mengabstrakkan kriptografi dari pengguna akhir.
9. Aplikasi Masa Depan & Hala Tuju
1. Enjin Teras Pengurus Kata Laluan: Integrasikan penjana ini sebagai enjin penciptaan kata laluan lalai dalam pengurus kata laluan sumber terbuka dan komersial (contohnya, Bitwarden, 1Password).
2. Peralihan Pasca-Kuantum: Penjanaan berasaskan KMAC adalah penyelesaian siap untuk penjanaan kata laluan dan token tahan kuantum, seperti yang disyorkan oleh projek Kriptografi Pasca-Kuantum NIST.
3. Keselamatan IoT & Terbenam: Versi CMAC-AES ringan boleh menjana kata laluan peranti dan kunci API yang unik dalam persekitaran terhad.
4. Blockchain & Web3: Jana benih frasa mnemonik rawak yang selamat untuk dompet mata wang kripto menggunakan sumber rawak yang boleh disahkan.
5. Pemiawaian: Cadangkan metodologi ini kepada badan piawaian seperti IETF atau FIDO untuk dimasukkan dalam protokol pengesahan generasi seterusnya.
10. Rujukan
- M. Bishop, "Computer Security: Art and Science", Addison-Wesley, 2018.
- NIST, "Special Publication 800-63B: Digital Identity Guidelines", 2017.
- M. L. Mazurek et al., "Measuring Password Guessability for an Entire University", IEEE S&P, 2013.
- B. Ur et al., "How Does Your Password Measure Up? The Effect of Strength Meters on Password Creation", USENIX Security, 2012.
- NIST, "Special Publication 800-108: Recommendation for Key Derivation Using Pseudorandom Functions", Rev. 1, 2022.
- NIST, "Special Publication 800-90B: Recommendation for the Entropy Sources Used for Random Bit Generation", 2018.
- J. Kelsey, B. Schneier, D. Wagner, "Secure Applications of Low-Entropy Keys", ISW, 1997.
- FIPS PUB 202, "SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions", 2015.
- B. Hitaj et al., "PassGAN: A Deep Learning Approach for Password Guessing", NeurIPS Workshop, 2017.
- D. J. Bernstein et al., "The Security Impact of a New Cryptographic Random Number Generator", 2020.