Pusat kepercayaan
Metodologi keamanan dan pembuatan
Detail teknis, batasan ancaman, penanganan keacakan, dan pemeriksaan yang dapat direproduksi untuk generator kata sandi.
Sumber keacakan
Generator meminta nilai yang kuat secara kriptografis dari crypto.getRandomValues(). Ia tidak pernah menggunakan Math.random(), yang keluarannya tidak ditentukan untuk penggunaan kriptografis. Spesifikasi Web Crypto menjelaskan CSPRNG yang diisi dengan entropi berkualitas tinggi, biasanya disediakan oleh sistem operasi. Browser dan sistem operasi memilih penyedia yang mendasarinya; PwdGen tidak mengklaim bahwa setiap panggilan membaca langsung sumber entropi perangkat keras CPU.
Indeks acak menggunakan rejection sampling. Nilai di atas kelipatan lengkap terbesar dari ukuran alfabet dibuang sebelum operasi modulo, menghindari bias yang akan ditimbulkan oleh pemetaan randomValue % alphabetSize langsung.
Cakupan karakter dan pengacakan
Generator pertama-tama memilih satu karakter dari setiap sumber yang diaktifkan. Ia mengisi posisi yang tersisa dari kumpulan gabungan dan kemudian melakukan pengacakan Fisher–Yates yang didorong secara kriptografis. Filter untuk karakter yang mirip dan ambigu diterapkan sebelum pemilihan.
Aliran data
Nilai yang dihasilkan hanya ada di memori halaman saat ini dan node hasil yang terlihat. Nilai tersebut tidak ditulis ke URL, cookie, penyimpanan lokal, penyimpanan sesi, log server, atau artefak build. Preferensi lokal adalah satu-satunya preferensi aplikasi yang disimpan di penyimpanan lokal dan cookie fungsional.
Model ancaman dan batasan
Desain ini melindungi dari situs web yang sengaja mengumpulkan kata sandi yang dihasilkan. Ia tidak dapat menjamin integritas perangkat pengguna, ekstensi browser, clipboard, sistem operasi, atau layanan tujuan. Ia juga tidak dapat membuat kata sandi yang digunakan kembali menjadi aman atau mencegah pengguna memasukkan kata sandi ke halaman phishing.
Tinjauan yang dapat direproduksi
Browser, API publik, dan pwdgen-cli@1.0.0 berbagi inti rejection sampling Web Crypto yang sama. Tes otomatis memeriksa cakupan karakter yang diaktifkan, karakter yang dikecualikan, konfigurasi yang tidak valid, dan tidak adanya Math.random(). Tes browser memverifikasi bahwa regenerasi dan penyalinan tidak mengeluarkan permintaan jaringan yang membawa kata sandi. Sumber publik dan hasil CI ditautkan di atas; ini adalah bukti rekayasa yang dapat direproduksi, bukan klaim audit keamanan independen.
Untuk penjelasan protokol yang lebih mendalam, baca whitepaper pembuatan kata sandi sisi klien.