1. Pengenalan
Pengurus kata laluan (PM) adalah alat penting untuk menjana dan menyimpan kata laluan rawak yang kuat, menangani kelemahan dalam pengesahan kata laluan. Walau bagaimanapun, kepercayaan pengguna masih menjadi halangan kepada penerimaan. Kertas kerja ini mencadangkan pelaksanaan rujukan yang disahkan secara formal untuk Penjana Kata Laluan Rawak (RPG) menggunakan persekitaran pembuktian EasyCrypt, dengan fokus pada ketepatan fungsi dan sifat keselamatan.
2. Jadual Kandungan
- 1. Pengenalan
- 2. Jadual Kandungan
- 3. Algoritma Penjanaan Kata Laluan Semasa
- 4. Rangka Kerja Pengesahan Formal
- 5. Butiran Teknikal dan Perumusan Matematik
- 6. Keputusan Eksperimen dan Gambarajah
- 7. Contoh Rangka Kerja Analisis
- 8. Analisis Asal
- 9. Aplikasi Masa Depan dan Tinjauan
- 10. Rujukan
3. Algoritma Penjanaan Kata Laluan Semasa
Penulis mengkaji 15 PM, dengan fokus pada tiga sumber terbuka yang digunakan secara meluas: Google Chrome (v89.0.4364.1), Bitwarden (v1.47.1), dan KeePass (v2.46). Ini dipilih kerana populariti dan kod sumber yang mudah diakses.
3.1 Dasar Komposisi Kata Laluan
PM membenarkan pengguna menentukan dasar komposisi kata laluan termasuk panjang, kelas aksara (huruf kecil, huruf besar, nombor, aksara khas), kejadian minimum/maksimum bagi setiap set, pengecualian aksara serupa, dan set aksara tersuai. Jadual 1 meringkaskan dasar untuk Chrome, Bitwarden, dan KeePass.
3.2 Penjanaan Kata Laluan Rawak
Algoritma teras menjana aksara rawak daripada set yang ditentukan sehingga panjang kata laluan dipenuhi, dengan mematuhi kekangan kejadian minimum/maksimum. Algoritma Chrome mula-mula menjana aksara daripada set dengan kejadian minimum, kemudian daripada gabungan semua set yang tidak melebihi maksimum, dan akhirnya menggunakan pilih atur pada rentetan.
4. Rangka Kerja Pengesahan Formal
4.1 Gambaran Keseluruhan EasyCrypt
EasyCrypt adalah pembantu pembuktian untuk bukti keselamatan kriptografi menggunakan pendekatan berasaskan permainan. Ia membolehkan spesifikasi pelaksanaan rujukan dan pengesahan formal ketepatan fungsi dan sifat keselamatan.
4.2 Sifat Keselamatan
Formalisasi merangkumi sifat seperti keseragaman rawak, ketahanan terhadap serangan saluran sisi, dan pematuhan kepada kekangan dasar. Pendekatan berasaskan permainan memodelkan keupayaan musuh dan membuktikan ketidakbezaan daripada penjanaan rawak ideal.
5. Butiran Teknikal dan Perumusan Matematik
Keselamatan RPG dimodelkan menggunakan konsep ketidakbezaan pengiraan. Biarkan $\mathcal{G}$ menjadi algoritma penjanaan kata laluan dan $\mathcal{U}$ menjadi penjana rawak seragam. Kelebihan musuh $\mathcal{A}$ ditakrifkan sebagai:
$$\text{Adv}_{\mathcal{G}}(\mathcal{A}) = |\Pr[\mathcal{A}^{\mathcal{G}} = 1] - \Pr[\mathcal{A}^{\mathcal{U}} = 1]|$$
Matlamatnya adalah untuk membuktikan bahawa $\text{Adv}_{\mathcal{G}}(\mathcal{A})$ adalah diabaikan untuk semua musuh kebarangkalian polinomial-masa. Bukti formal dalam EasyCrypt melibatkan pembinaan urutan permainan, setiap satu berbeza sedikit daripada yang sebelumnya, dan menghadkan perbezaan dalam kebarangkalian kejayaan musuh.
6. Keputusan Eksperimen dan Gambarajah
Pengesahan formal telah dijalankan pada pelaksanaan rujukan RPG. Bukti terdiri daripada kira-kira 500 baris kod EasyCrypt, meliputi ketepatan fungsi (kata laluan yang dijana memenuhi dasar) dan keselamatan (output tidak dapat dibezakan daripada rawak seragam). Masa pembuktian adalah di bawah 10 saat pada komputer riba standard. Gambarajah struktur bukti berasaskan permainan ditunjukkan di bawah:
Rajah 1: Struktur bukti berasaskan permainan: Permainan 0 (algoritma sebenar) → Permainan 1 (gantikan PRG dengan rawak) → Permainan 2 (gantikan pemilihan aksara dengan seragam) → Permainan 3 (ideal). Setiap peralihan dibenarkan oleh andaian kriptografi atau pengurangan.
7. Contoh Rangka Kerja Analisis
Kajian Kes: Mengesahkan Penjanaan Kata Laluan KeePass
Pertimbangkan dasar yang memerlukan kata laluan 12 aksara dengan sekurang-kurangnya 2 huruf kecil, 2 huruf besar, 2 digit, dan 2 aksara khas. Spesifikasi formal dalam EasyCrypt mentakrifkan:
- Prasyarat: Parameter dasar (panjang, min/maks bagi setiap set, aksara dikecualikan).
- Pascasyarat: Kata laluan yang dijana memenuhi semua kekangan dan adalah rawak seragam ke atas set kata laluan yang sah.
- Keselamatan: Tiada musuh dapat membezakan output daripada rentetan rawak sebenar dengan panjang yang sama.
Bukti berjalan secara induksi pada panjang kata laluan, menunjukkan bahawa setiap aksara diambil secara seragam daripada set yang sesuai, dan pilih atur akhir memastikan tiada kecenderungan kedudukan.
8. Analisis Asal
Pandangan Teras: Kertas kerja ini menangani jurang kritikal dalam kepercayaan pengurus kata laluan dengan menggunakan pengesahan formal pada algoritma penjanaan kata laluan. Walaupun banyak PM mendakwa keselamatan, hanya sedikit yang memberikan jaminan matematik. Penggunaan EasyCrypt adalah langkah penting ke arah penjanaan kata laluan yang boleh dibuktikan selamat.
Aliran Logik: Penulis terlebih dahulu meninjau algoritma sedia ada, mengenal pasti corak biasa dan potensi kelemahan. Mereka kemudian mencadangkan pelaksanaan rujukan dan mengesahkan secara formal ketepatan dan keselamatannya menggunakan bukti berasaskan permainan. Alirannya adalah logik: pengenalpastian masalah → reka bentuk penyelesaian → pengesahan formal → implikasi.
Kekuatan & Kelemahan: Kekuatan terletak pada pendekatan formal yang ketat, yang memberikan jaminan melangkaui ujian biasa. Walau bagaimanapun, kertas kerja ini memberi tumpuan kepada satu pelaksanaan rujukan, bukan pada pengesahan kod sebenar Chrome, Bitwarden, atau KeePass. Ini mengehadkan kesan praktikal. Selain itu, bukti menganggap penjana nombor rawak yang dipercayai, yang mungkin tidak berlaku dalam semua senario penggunaan. Seperti yang dinyatakan oleh Bellare dan Rogaway (1993) dalam kerja mani mereka mengenai oracle rawak, jurang antara model teori dan pelaksanaan praktikal masih menjadi cabaran.
Pandangan Boleh Tindak: Untuk pembangun PM, penggunaan alat pengesahan formal seperti EasyCrypt boleh meningkatkan kepercayaan dan mengurangkan kelemahan. Untuk penyelidik, melanjutkan kerja ini untuk mengesahkan kod sumber PM sebenar (contohnya, melalui penyahkompilasian atau pelaksanaan simbolik) akan menjadi bernilai. Pengguna harus menuntut ketelusan dan jaminan formal daripada penyedia PM. Pendekatan ini sejajar dengan trend yang lebih luas dalam kaedah formal dalam keselamatan, seperti yang disarankan oleh Institut Piawaian dan Teknologi Kebangsaan (NIST) dalam garis panduan mereka untuk pengesahan modul kriptografi.
9. Aplikasi Masa Depan dan Tinjauan
Rangka kerja pengesahan formal boleh diperluaskan kepada ciri PM lain, seperti penyimpanan kata laluan dan isi automatik. Integrasi dengan saluran paip integrasi berterusan boleh membolehkan pengesahan automatik kod penjanaan kata laluan. Kerja masa depan juga mungkin meneroka ketahanan saluran sisi dan penjanaan rawak selamat-kuantum. Apabila pengurus kata laluan menjadi meluas, jaminan formal akan menjadi penting untuk membina kepercayaan pengguna dan memenuhi keperluan peraturan (contohnya, GDPR, eIDAS).
10. Rujukan
- Bellare, M., & Rogaway, P. (1993). Random oracles are practical: A paradigm for designing efficient protocols. Proceedings of the 1st ACM Conference on Computer and Communications Security, 62-73.
- Barthe, G., et al. (2011). EasyCrypt: A tutorial. Foundations of Security Analysis and Design VII, 146-204.
- NIST. (2020). Cryptographic Module Validation Program (CMVP). National Institute of Standards and Technology.
- Shoup, V. (2004). Sequences of games: A tool for taming complexity in security proofs. IACR Cryptology ePrint Archive, 2004/332.
- Grilo, M., Ferreira, J. F., & Almeida, J. B. (2021). Towards Formal Verification of Password Generation Algorithms used in Password Managers. arXiv:2106.03626v2.