Pilih Bahasa

Ke Arah Pengesahan Formal Algoritma Penjanaan Kata Laluan dalam Pengurus Kata Laluan

Kertas penyelidikan mencadangkan pelaksanaan rujukan yang disahkan secara formal untuk penjana kata laluan rawak dalam pengurus kata laluan, menggunakan EasyCrypt untuk pembuktian ketepatan fungsi dan keselamatan.
computationalcoin.com | PDF Size: 0.1 MB
Penilaian: 4.5/5
Penilaian Anda
Anda sudah menilai dokumen ini
Sampul Dokumen PDF - Ke Arah Pengesahan Formal Algoritma Penjanaan Kata Laluan dalam Pengurus Kata Laluan

1. Pengenalan

Pengurus Kata Laluan (PKL) adalah alat kritikal yang disyorkan oleh pakar keselamatan untuk mengurangkan kelemahan yang berkaitan dengan pengesahan kata laluan. Ia memudahkan penggunaan kata laluan yang kuat dan unik, meringankan beban kognitif pengguna. Walau bagaimanapun, penerimaan meluas pengguna terhalang oleh kekurangan kepercayaan terhadap aplikasi ini. Kertas kerja ini mengenal pasti ciri penjanaan kata laluan rawak (PKR) sebagai faktor utama yang mempengaruhi kepercayaan pengguna. Penulis berhujah bahawa pelaksanaan PKR yang disahkan secara formal dan terbukti selamat adalah penting untuk merapatkan jurang kepercayaan ini dan menggalakkan penggunaan PKL. Sumbangan teras kertas kerja ini adalah mencadangkan pelaksanaan rujukan sedemikian, dengan bukti formal ketepatan fungsi dan sifat keselamatan menggunakan rangka kerja EasyCrypt.

2. Algoritma Penjanaan Kata Laluan Semasa

Kertas kerja ini menyelidik 15 pengurus kata laluan, menumpukan kepada tiga contoh sumber terbuka yang digunakan secara meluas: pengurus terbina dalam Google Chrome, Bitwarden, dan KeePass. Analisis mendedahkan corak biasa dan kelemahan kritikal dalam pelaksanaan sedia ada.

2.1 Polisi Komposisi Kata Laluan

PKL membenarkan pengguna menentukan polisi yang menyekat kata laluan yang dijana. Polisi ini menentukan panjang, set aksara yang dibenarkan (cth., huruf kecil, huruf besar, nombor, aksara khas), dan kejadian minimum/maksimum setiap set. Kertas kerja ini menyediakan jadual perbandingan terperinci (Jadual 1 dalam PDF) yang menunjukkan pilihan polisi merentasi tiga PKL yang dikaji. Pemerhatian utama termasuk panjang maksimum yang berbeza (sehingga 30,000 dalam KeePass), definisi "aksara khas" yang berbeza, dan pengendalian yang tidak konsisten terhadap "aksara serupa" (seperti 'l', '1', 'O', '0') untuk mengelakkan kekaburan visual. KeePass menawarkan kawalan paling terperinci, membenarkan set penyertaan/pengecualian tersuai dan penyingkiran pendua.

2.2 Penjanaan Kata Laluan Rawak

Algoritma yang diselidik umumnya mengikuti proses dua fasa: 1) Menjana aksara rawak untuk memenuhi kejadian minimum yang diperlukan bagi setiap set aksara yang ditentukan. 2) Mengisi baki panjang kata laluan dengan aksara rawak dari mana-mana set yang belum mencapai had kejadian maksimumnya. Akhirnya, jujukan aksara disusun secara rawak. Kertas kerja ini membayangkan bahawa walaupun logik ini mudah, pelaksanaannya—terutamanya sumber kerawakan dan penguatkuasaan kekangan kompleks—jarang ditentukan atau disahkan secara formal, meninggalkan ruang untuk pepijat halus yang boleh melemahkan keselamatan.

3. Pendekatan Pengesahan Formal

Penulis menggalakkan penggunaan kaedah formal untuk menghapuskan ralat pelaksanaan. Mereka memilih EasyCrypt, rangka kerja untuk membina dan mengesahkan bukti kriptografi berasaskan permainan. Pendekatan ini melibatkan:

  1. Spesifikasi: Mentakrifkan secara formal keperluan fungsi PKR (polisi input -> kata laluan output yang memenuhi polisi).
  2. Pelaksanaan: Menulis kod algoritma dalam EasyCrypt.
  3. Pengesahan: Membuktikan bahawa pelaksanaan dengan betul memperhalusi spesifikasi (ketepatan fungsi).
  4. Bukti Keselamatan: Memodelkan algoritma sebagai permainan kriptografi untuk membuktikan sifat seperti taburan seragam output dari ruang yang ditakrifkan (keselamatan).

Metodologi ini memberikan kepastian matematik bahawa kod berkelakuan tepat seperti yang dimaksudkan dan memiliki sifat keselamatan yang diingini, dengan andaian primitif kriptografi asas (penjana nombor rawak) adalah selamat.

4. Pelaksanaan Rujukan yang Dicadangkan

Kertas kerja ini mencadangkan reka bentuk PKR modular baharu yang bertujuan untuk berfungsi sebagai rujukan yang disahkan. Walaupun kod penuh tidak ditunjukkan dalam petikan yang disediakan, reka bentuk ini secara logik memisahkan:

  • Penganalisis & Pengesah Polisi: Memastikan polisi yang ditentukan pengguna konsisten secara dalaman (cth., minimum tidak melebihi maksimum, jumlah minimum tidak melebihi panjang kata laluan).
  • Pensampel Terkekang: Enjin teras yang melaksanakan penjanaan dua fasa di bawah kekangan polisi.
  • Susunan Rawak: Menggunakan kocokan akhir pada jujukan aksara.

Setiap modul akan mempunyai spesifikasi formal dan pelaksanaan yang disahkan dalam EasyCrypt.

5. Butiran Teknikal & Formulasi Matematik

Keselamatan PKR bergantung pada entropi dan taburan seragam outputnya. Biarkan $\mathcal{P}$ menjadi set semua kata laluan yang ditakrifkan oleh polisi (panjang $l$, set aksara $C_1, C_2, ..., C_n$ dengan kekangan min/maks). PKR ideal adalah fungsi $G$ yang mengambil sampel secara seragam dari $\mathcal{P}$.

Kebarangkalian mana-mana kata laluan tertentu $p \in \mathcal{P}$ dijana sepatutnya: $$Pr[G() = p] = \frac{1}{|\mathcal{P}|}$$ di mana $|\mathcal{P}|$ adalah saiz ruang kata laluan. Kecacatan biasa dalam pelaksanaan naif adalah memperkenalkan bias, menjadikan sesetengah kata laluan lebih berkemungkinan daripada yang lain. Contohnya, jika algoritma pertama kali memilih aksara untuk set wajib dan kemudian mengisi selebihnya, kata laluan dengan aksara wajib di permulaan terlebih diwakili melainkan kocokan sempurna digunakan. Pengesahan formal membuktikan ketiadaan bias sedemikian.

Entropi $H$ kata laluan yang dijana (dalam bit) adalah: $$H = \log_2(|\mathcal{P}|)$$ Pengesahan memastikan pelaksanaan tidak mengurangkan entropi ini di bawah maksimum teori untuk polisi tersebut.

6. Keputusan Eksperimen & Penerangan Carta

Walaupun petikan PDF yang disediakan tidak mengandungi keputusan eksperimen tradisional atau carta, "keputusan" terasnya adalah bukti formal itu sendiri. Pengesahan berjaya dalam EasyCrypt berfungsi sebagai bukti muktamad. Seseorang boleh mengkonsepsikan carta yang membandingkan tahap jaminan:

Carta Hipotesis: Tahap Jaminan vs. Kaedah Pembangunan

  • Ujian Tradisional: Keyakinan tinggi untuk kes yang diuji, tetapi tidak diketahui untuk kes tepi yang tidak diuji (konflik polisi, nilai sempadan). Liputan adalah terhad.
  • Semakan Kod: Keyakinan sederhana. Sangat bergantung pada kemahiran penyemak. Mungkin terlepas ralat logik halus atau isu saluran sisi.
  • Pengesahan Formal (seperti yang dicadangkan): Jaminan tertinggi yang mungkin. Menyediakan bukti matematik ketepatan untuk semua input yang mungkin dan sifat keselamatan eksplisit. "Carta" akan menunjukkan ini sebagai titik maksimum pada paksi "Jaminan".

Sumbangan kertas kerja ini adalah mengalihkan PKR dari dua kategori pertama ke kategori ketiga.

7. Kerangka Analisis: Kajian Kes Bukan Kod

Pertimbangkan polisi: Panjang=8, perlukan sekurang-kurangnya 1 huruf besar, 1 nombor, 1 aksara khas. Algoritma yang cacat mungkin:

  1. Kedudukan 1: Pilih huruf besar rawak.
  2. Kedudukan 2: Pilih nombor rawak.
  3. Kedudukan 3: Pilih aksara khas rawak.
  4. Kedudukan 4-8: Isi dengan aksara rawak dari semua set.
  5. Kocok semua 8 aksara.

Kecacatan: Susunan tetap awal (U, N, S) sebelum kocokan mencipta bias. Walaupun kocokan merawakkan kedudukan akhir, proses bermula dari taburan tidak seragam keadaan pertengahan. Algoritma yang disahkan secara formal akan membina keseluruhan kata laluan melalui proses pensampelan tunggal, tidak berat sebelah dari ruang terkekang $\mathcal{P}$, atau akan membuktikan bahawa proses berbilang langkahnya setara dengan pensampelan seragam sedemikian.

8. Inti Pati & Perspektif Penganalisis

Inti Pati: Kertas kerja ini dengan betul mengenal pasti permukaan serangan kritikal, namun sering diabaikan, dalam pengurus kata laluan: kebolehpercayaan penjana kata laluan itu sendiri. Tidak cukup untuk mempunyai peti besi yang kuat; jika bahan sumber (kata laluan) lemah atau boleh diramal kerana penjana yang bermasalah, keseluruhan sistem gagal. Langkah penulis untuk menggunakan kaedah formal—teknik yang lebih biasa dalam perkakasan atau perisian penerbangan—untuk masalah keselamatan pengguna ini adalah kedua-duanya bercita-cita tinggi dan perlu.

Aliran Logik: Hujahan adalah kukuh: 1) Kepercayaan adalah halangan kepada penerimaan PKL. 2) PKR adalah komponen kritikal kepercayaan. 3) PKR semasa dilaksanakan secara ad-hoc tanpa jaminan ketat. 4) Pengesahan formal menyediakan tahap jaminan tertinggi. 5) Kami menyediakan pelan untuk PKR yang disahkan menggunakan EasyCrypt. Logik ini merapatkan masalah berpusatkan pengguna (kepercayaan) dengan penyelesaian teknikal mendalam (kaedah formal).

Kekuatan & Kelemahan:
Kekuatan: Fokus pada PKL sumber terbuka adalah pragmatik. Analisis perbandingan polisi adalah berharga. Mencadangkan pelaksanaan rujukan adalah lebih berguna daripada hanya mengkritik orang lain; ia menetapkan piawaian. Menggunakan EasyCrypt mengikat kerja ini dengan amalan pengesahan kriptografi yang mantap, serupa dengan pengesahan algoritma seperti dalam "The Security of Cryptographic Primitives" (M. Bellare, P. Rogaway).
Kelemahan: Petikan yang disediakan adalah titik permulaan. Ujian sebenar adalah kerumitan bukti EasyCrypt penuh untuk polisi dunia sebenar. Pendekatan ini mengandaikan PRN yang sempurna; kelemahan di sana memintas semua jaminan formal. Ia juga tidak menangani serangan saluran sisi (masa, ingatan) dalam binari terkompil akhir, satu batasan yang diperhatikan dalam projek pengesahan formal lain seperti pengesahan mikrokernel seL4.

Wawasan Boleh Tindak:
1. Untuk Pembangun PKL: Integrasikan teras yang disahkan ini, atau yang serupa, sebagai perpustakaan. Kos pengesahan formal adalah tinggi pada mulanya tetapi mengurangkan beban semakan keselamatan jangka panjang dan liabiliti.
2. Untuk Juruaudit & Penyelidik: Gunakan kerja ini sebagai templat untuk menganalisis PKL lain. Jadual perbandingan polisi adalah senarai semak siap untuk penilaian keselamatan.
3. Untuk Badan Piawaian (cth., NIST, FIDO): Pertimbangkan pengesahan formal sebagai keperluan untuk mengesahkan modul penjanaan kata laluan, serupa dengan cara Common Criteria mewajibkan proses pembangunan ketat untuk produk jaminan tinggi.
4. Untuk Pengguna: Tuntut ketelusan. Utamakan PKL yang menerbitkan algoritma PKR mereka dan, idealnya, bukti pengesahan mereka. Kertas kerja ini menyediakan perbendaharaan kata untuk memintanya.

Pada dasarnya, penyelidikan ini adalah seruan untuk meningkatkan piawaian kejuruteraan untuk komponen keselamatan asas. Ia mengalihkan matlamat dari "diharapkan selamat" kepada "terbukti betul," yang merupakan penanda aras satu-satunya yang boleh diterima untuk alat yang menjaga identiti digital kita.

9. Aplikasi Masa Depan & Hala Tuju Penyelidikan

Implikasi melangkaui pengurus kata laluan:

  • Token API & Perkhidmatan: Perkhidmatan awan dan seni bina mikroperskizmatan sering memerlukan token yang dijana. Penjana yang disahkan memastikan rahsia ini kuat secara kriptografi.
  • Penjanaan Kunci Kriptografi: Prinsip ini terpakai untuk menjana kod pemulihan boleh baca manusia atau frasa laluan (melalui kaedah seperti diceware) untuk kunci kriptografi, di mana bias sama berbahaya.
  • Integrasi dengan Keselamatan Perkakasan: Kerja masa depan boleh mengesahkan interaksi antara perisian PKR dan Penjana Nombor Rawak Benar (TRNG) perkakasan atau Persekitaran Pelaksanaan Dipercayai (TEE).
  • Analisis Polisi Automatik: Bina alat yang menganalisis secara formal polisi yang ditentukan pengguna untuk kelemahan (cth., ruang carian berkesan kecil walaupun kerumitan ketara) sebelum penjanaan pun berlaku.
  • Pemiawaian: Hala tuju masa depan terbesar adalah mengubah pelaksanaan rujukan ini menjadi piawaian yang diterima pakai secara meluas, mungkin sebagai perpustakaan berdiri sendiri (seperti libsodium untuk kripto) yang mana-mana aplikasi boleh gunakan untuk penjanaan rahsia yang disahkan.

10. Rujukan

  1. Grilo, M., Ferreira, J. F., & Almeida, J. B. (2021). Towards Formal Verification of Password Generation Algorithms used in Password Managers. arXiv preprint arXiv:2106.03626.
  2. Bellare, M., & Rogaway, P. (2005). Introduction to Modern Cryptography. Bab mengenai Fungsi dan Susunan Pseudorawak.
  3. Klein, G., et al. (2009). seL4: Formal verification of an OS kernel. Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles.
  4. National Institute of Standards and Technology (NIST). (2017). Digital Identity Guidelines (SP 800-63B).
  5. Common Criteria Recognition Agreement (CCRA). Common Criteria for Information Technology Security Evaluation.
  6. Chiasson, S., van Oorschot, P. C., & Biddle, R. (2006). A second look at the usability of click-based graphical passwords. Proceedings of the 3rd symposium on Usable privacy and security.
  7. EasyCrypt Proof Assistant. Dokumentasi Rasmi dan Tutorial. https://easycrypt.info/