Kandungan
1. Pengenalan
Penyelidikan ini menangani isu berterusan kebocoran kata laluan dan risiko pendedahan data peribadi yang terhasil. Walaupun keselamatan laman web adalah satu faktor, kekuatan semula jadi kata laluan itu sendiri adalah paling penting. Kelemahan biasa termasuk kata laluan berdasarkan kata kunci, frasa popular, maklumat pengguna, dan penggunaan semula kata laluan. Kebangkitan AI dan model bahasa besar seterusnya memperkasakan penyerang untuk meneka kata laluan dengan lebih berkesan.
Sebagai tindak balas, kertas ini mencadangkan penjana kata laluan selamat yang dibina di atas Penjana Nombor Rawak Pseudo (PRNG) yang selamat. Teras PRNG dibina menggunakan primitif kriptografi seperti HMAC, CMAC, atau KMAC untuk menjana nombor rawak berkualiti tinggi, yang kemudiannya digunakan untuk mencipta kata laluan. Sistem ini membenarkan input pengguna pilihan (Mesej Untuk Di-Hash, TBHM) untuk dijadikan benih proses. Sumbangan utama adalah:
- Pembinaan PRNG selamat berasaskan HMAC, CMAC, dan KMAC.
- Analisis keselamatan kata laluan yang dijana di bawah set aksara dan panjang yang berbeza, membandingkan kekuatannya dengan AES-128 dan AES-256.
- Pengesahan empirikal kerawakan menggunakan NIST SP 800-90B, menumpukan pada ujian Entropi dan Taburan Bebas dan Serupa (IID).
2. Sorotan Literatur
2.1. Penjana Nombor Rawak Pseudo Berasaskan Penjana Kongruen Linear
Bahasa pengaturcaraan biasa (C, Java) menggunakan Penjana Kongruen Linear (LCG). Diberi benih $k$, jujukan dijana sebagai: $f_0(k) \equiv a \oplus k \ (\text{mod} \ m)$ dan $f_i(k) \equiv a \times f_{i-1}(k) + c \ (\text{mod} \ m)$. Kaedah ini 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 Selamat
PRNG selamat adalah berdasarkan primitif kriptografi seperti yang digariskan dalam NIST SP 800-108 Rev. 1.
2.2.1. 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))$. Untuk menjana aliran bit rawak panjang $L$, mod pembilang digunakan: $M_i = i \ || \ \text{KDF} \ || \ 0x00 \ || \ M \ || \ L$, menghasilkan output $r_{hmac,i}$.
2.2.2. Berasaskan CMAC
Keselamatan bergantung pada penyekat cipher AES dalam mod CBC. Mesej $M$ dibahagikan kepada blok $M'_1, M'_2, ...$. Proses berulang: $c_{i+1} = AES(k, c_i \oplus M'_{i+1})$ dengan $c_0 = Pad0(0)$. Output akhir $r_{cmac}$ diperoleh daripada blok cipher terakhir selepas padding khusus (Pad1).
2.2.3. Berasaskan KMAC
Menggunakan fungsi span KECCAK (asas SHA-3), menawarkan fungsi MAC yang fleksibel dan teguh sesuai untuk menjana bit rawak deterministik.
2.3. Kaedah untuk Mengesahkan Kerawakan
Kertas ini menggunakan kerangka NIST SP 800-90B, yang merupakan piawaian de facto untuk mengesahkan sumber entropi. Ia termasuk dua suite pengesahan kritikal:
- Penilaian Entropi: Menganggarkan jumlah min-entropi dalam aliran bit yang dijana, menunjukkan ketidakramalannya.
- Ujian IID (Taburan Bebas dan Serupa): Satu suite ujian statistik (contohnya, Chi-Square, Kolmogorov-Smirnov) untuk menentukan sama ada bit output adalah bebas secara statistik dan mengikut taburan yang serupa.
3. Penjana Kata Laluan Selamat yang Dicadangkan
Seni bina sistem yang dicadangkan adalah mudah tetapi berkuasa:
- Input/Benih: Menerima TBHM yang disediakan pengguna secara pilihan. Jika disediakan, ia diproses; jika tidak, benih selamat yang dijana sistem digunakan.
- Teras PRNG Selamat: TBHM/benih dimasukkan ke dalam salah satu daripada tiga pembinaan PRNG kriptografi (berasaskan HMAC, berasaskan CMAC, berasaskan KMAC) untuk menjana jujukan bit pseudo-rawak yang kuat secara kriptografi.
- Pembinaan Kata Laluan: Bit rawak dipetakan ke set aksara yang ditakrifkan pengguna atau sistem (contohnya, alfanumerik + simbol) untuk menghasilkan kata laluan dengan panjang yang dikehendaki.
Analisis Keselamatan: Kertas ini berhujah bahawa keselamatan kata laluan yang dijana bergantung secara langsung pada entropi output PRNG dan saiz set aksara. Ia melakukan analisis perbandingan, menunjukkan bahawa kata laluan 16 aksara daripada set 94 aksara yang dijana oleh kaedah ini boleh menawarkan rintangan serangan brute-force yang setanding atau melebihi kunci AES-128 atau AES-256, dengan andaian output PRNG adalah benar-benar rawak.
4. Keputusan Eksperimen dan Analisis
Pengesahan eksperimen adalah kekuatan utama kertas ini.
- Pengesahan Entropi: Jujukan rawak yang dijana daripada ketiga-tiga jenis PRNG (HMAC-SHA256, CMAC-AES256, KMAC256) lulus penilaian entropi NIST SP 800-90B, menunjukkan min-entropi tinggi hampir dengan nilai ideal 1 bit per bit output.
- Pengesahan IID: Jujukan juga lulus suite ujian IID, mengesahkan bahawa bit adalah bebas secara statistik dan bertaburan serupa, tanpa corak atau bias yang dapat dikesan.
- Prestasi: Walaupun bukan fokus utama, kertas ini mencatatkan kecekapan pengiraan. HMAC-SHA256 dan KMAC256 menunjukkan kelajuan yang setanding, manakala CMAC-AES256 sedikit lebih perlahan disebabkan operasi penyekat cipher, tetapi semua berada dalam had praktikal untuk penjanaan kata laluan.
Penerangan Carta (Tersirat): Carta bar akan berkesan membandingkan anggaran min-entropi (dalam bit per bit) untuk tiga kaedah PRNG berbanding nilai ideal 1.0. Semua bar akan sangat hampir dengan 1.0. Carta kedua boleh menunjukkan nilai-p daripada ujian IID utama (contohnya, Chi-Square, Kolmogorov-Smirnov), dengan semua nilai jauh melebihi ambang kepentingan tipikal (contohnya, 0.01), menunjukkan kelulusan.
5. Kesimpulan dan Kerja Masa Depan
Penyelidikan ini berjaya menunjukkan kerangka penjanaan kata laluan selamat berdasarkan PRNG kriptografi. Kaedah yang dicadangkan menjana kata laluan dengan kerawakan yang mencukupi, seperti yang disahkan dengan ketat oleh piawaian NIST. Hala tuju kerja masa depan termasuk:
- Mengintegrasikan penjana ke dalam sambungan pelayar atau pengurus kata laluan.
- Meneroka algoritma kriptografi pasca-kuantum (contohnya, berasaskan kekisi, hash) sebagai asas untuk PRNG untuk memastikan keselamatan jangka panjang.
- Membangunkan bukti keselamatan formal di bawah model kriptografi piawai.
6. Analisis Asli & Pandangan Pakar
Pandangan Teras: Kertas ini bukan tentang mencipta primitif kriptografi baharu; ia adalah tentang aplikasi dan pengesahan berdisiplin primitif sedia ada yang telah disahkan (HMAC, CMAC, KMAC) untuk menyelesaikan masalah penjanaan kata laluan yang biasa tetapi kritikal. Nilai sebenarnya terletak pada merapatkan jurang antara kriptografi teori dan kebersihan keselamatan praktikal, membuktikan dengan ketat bahawa outputnya sesuai untuk tujuan menggunakan suite ujian piawai emas NIST.
Aliran Logik: Hujah adalah kukuh: 1) LCG piawai telah dipecahkan secara kriptografi. 2) PRNG selamat yang dibina daripada MAC kriptografi terbukti teguh. 3) Oleh itu, kata laluan yang diperoleh daripada PRNG tersebut mewarisi keteguhan itu. 4) Tuntutan ini disahkan bukan hanya oleh teori, tetapi dengan lulus ujian empirikal yang ketat (NIST SP 800-90B). Pengesahan hujung ke hujung ini adalah apa yang kurang pada banyak alat "penjana kata laluan selamat".
Kekuatan & Kelemahan:
Kekuatan: Ketegasan metodologi adalah terpuji. Menggunakan NIST SP 800-90B untuk pengesahan serta-merta meningkatkan kredibilitinya, sama seperti bagaimana algoritma kriptografi disahkan melalui CAVP (Cryptographic Algorithm Validation Program). Perbandingan dengan kekuatan kunci AES adalah metrik keselamatan yang praktikal dan mudah difahami untuk pasukan keselamatan.
Kelemahan: Kertas ini beroperasi dalam persekitaran terkawal dan ideal. Ia mengandaikan benih/TBHM awal mempunyai entropi yang mencukupi—pautan kritikal dan sering lemah dalam sistem sebenar. Input pengguna "pilihan" adalah pedang bermata dua; frasa pengguna yang lemah dan boleh diramal (contohnya, "katasayalaluan") boleh melemahkan keseluruhan pembinaan kriptografi, risiko yang tidak dikuantifikasi sepenuhnya. Tambahan pula, seperti yang dinyatakan dalam ulasan 2023 "Post-Quantum Cryptography: A Ten-Year Journey" oleh NIST, bidang ini sedang bergerak ke arah algoritma rintang kuantum. Pembinaan kertas ini, walaupun selamat terhadap komputer klasik, bergantung pada SHA2/AES, yang ketahanan kuantum jangka panjangnya tidak pasti.
Pandangan Boleh Tindak: Untuk arkitek keselamatan, kertas ini menyediakan pelan. Jangan bina PRNG sendiri. Gunakan binaan kriptografi yang mantap sebagai blok binaan. Lebih penting lagi, sahkan, sahkan, sahkan. Integrasikan pengesahan entropi berterusan (seperti ujian NIST) ke dalam sistem penjanaan nombor rawak kritikal anda, amalan yang ditekankan oleh organisasi seperti usaha CCC (Common Criteria Certification) Yayasan Linux. Untuk pembangunan produk, pengambilan segera adalah untuk menggantikan sebarang penjanaan kata laluan berasaskan LCG dalam sistem anda dengan penjana berasaskan KMAC atau HMAC-SHA256, menggunakan benih yang diperoleh dengan selamat. Langkah persediaan masa depan adalah untuk memulakan prototaip dengan reka bentuk berasaskan SHA-3/KECCAK (seperti KMAC) dan memantau evolusi piawaian kriptografi pasca-kuantum NIST untuk integrasi akhirnya.
7. Butiran Teknikal & Formulasi Matematik
Operasi matematik teras ditakrifkan dalam Sorotan Literatur (Seksyen 2). Formula utama termasuk:
- LCG (Tidak Selamat): $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))$
- HMAC dalam Mod Pembilang untuk PRNG: $M_i = i \ || \ \text{KDF} \ || \ 0x00 \ || \ M \ || \ L$
- CMAC (CBC-MAC) lelaran: $c_{i+1} = AES(k, c_i \oplus M'_{i+1})$
Penjanaan kata laluan memetakan integer rawak $R$ (daripada output PRNG) kepada indeks aksara: $\text{index} = R \ \text{mod} \ |S|$, di mana $|S|$ adalah saiz set aksara.
8. Kerangka Analisis & Contoh Kes
Contoh Kes: Menilai Penjana Kata Laluan Sistem Warisan
Skenario: Aplikasi web warisan menggunakan LCG yang diubah suai untuk menjana kata laluan sementara pengguna. Audit keselamatan diperlukan.
Aplikasi Kerangka:
- Kenal pasti Jenis PRNG: Periksa kod sumber. Cari:
seed = (a * seed + c) % m;Sahkan ia adalah varian LCG. - Nilai Keselamatan Kriptografi: LCG adalah deterministik dan boleh diterbalikkan. Penyerang yang memperoleh beberapa kata laluan berturut-turut boleh menyelesaikan untuk benih dan meramalkan semua kata laluan masa depan, melanggar garis panduan NIST SP 800-63B mengenai kerawakan pengesah.
- Cadangkan Pemulihan Menggunakan Kaedah Kertas:
- Sumber Benih: Gantikan benih masa sistem dengan CSPRNG (contohnya,
/dev/urandompada Linux, CryptGenRandom pada Windows). - Penjana Teras: Laksanakan PRNG berasaskan HMAC-SHA256 mengikut reka bentuk kertas.
- Pengesahan: Jana sampel besar (1,000,000 bit) daripada penjana baharu dan jalankan NIST STS (Statistical Test Suite) atau penganggar entropi daripada SP 800-90B untuk mengesahkan kerawakan sebelum penyebaran.
- Sumber Benih: Gantikan benih masa sistem dengan CSPRNG (contohnya,
9. Aplikasi Masa Depan & Hala Tuju Pembangunan
Prinsip ini melangkaui kata laluan pengguna:
- Penjanaan Kunci API & Token: Jana kunci API dan token sesi yang rawak secara kriptografi dalam seni bina mikropersediaan secara automatik.
- Konfigurasi Lalai Selamat: Benamkan penjana sedemikian dalam peranti IoT atau pemasang perisian untuk mencipta kata laluan admin lalai yang unik dan kuat, mengurangkan serangan kelayakan lalai yang meluas.
- Evolusi Pasca-Kuantum: Pembinaan berasaskan KMAC pada asasnya adalah berdasarkan SHA-3 (KECCAK), yang dianggap rintang kuantum. Penjana ini boleh menjadi asas untuk sistem "kripto-lincah". Kerja masa depan harus mengintegrasikan PRNG berasaskan algoritma pasca-kuantum piawai NIST seperti CRYSTALS-Kyber atau tandatangan berasaskan hash, kerana komuniti kriptografi bersiap untuk era pengkomputeran kuantum.
- Integrasi dengan Pengurus Kata Laluan & SSO: Penjana ini boleh menjadi komponen teras pengurus kata laluan sumber terbuka atau sistem Log Masuk Tunggal (SSO), menyediakan sumber kerawakan kata laluan yang boleh diaudit dengan telus.
10. Rujukan
- 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. [Online]. Available: https://csrc.nist.gov/projects/post-quantum-cryptography
- Linux Foundation, “Common Criteria Certification and Open Source”, 2023. [Online]. Available: https://www.linuxfoundation.org/