Pusat kepercayaan
Metodologi keselamatan dan penjanaan
Butiran teknikal, sempadan ancaman, pengendalian rawak, dan semakan boleh ulang untuk penjana kata laluan.
Sumber rawak
Penjana meminta nilai kriptografi yang kuat daripada crypto.getRandomValues(). Ia tidak pernah menggunakan Math.random(), yang outputnya tidak ditentukan untuk penggunaan kriptografi. Spesifikasi Web Crypto menerangkan CSPRNG yang disemai dengan entropi berkualiti tinggi, biasanya dibekalkan oleh sistem pengendalian. Pelayar dan sistem pengendalian memilih pembekal asas; PwdGen tidak mendakwa bahawa setiap panggilan membaca sumber entropi perkakasan CPU secara langsung.
Indeks rawak menggunakan pensampelan penolakan. Nilai di atas gandaan lengkap terbesar saiz abjad dibuang sebelum operasi modulo, mengelakkan bias yang akan diperkenalkan oleh pemetaan randomValue % alphabetSize langsung.
Liputan aksara dan shuffle
Penjana mula-mula memilih satu aksara daripada setiap sumber yang diaktifkan. Ia mengisi baki kedudukan dari kolam gabungan dan kemudian melakukan Fisher–Yates shuffle yang dipacu secara kriptografi. Penapis untuk aksara serupa dan kabur digunakan sebelum pemilihan.
Aliran data
Nilai yang dijana hanya wujud dalam memori halaman semasa dan nod hasil yang kelihatan. Ia tidak ditulis ke URL, kuki, storan tempatan, storan sesi, log pelayan, atau artifak binaan. Keutamaan locale adalah satu-satunya keutamaan aplikasi yang disimpan dalam storan tempatan dan kuki berfungsi.
Model ancaman dan had
Reka bentuk ini melindungi daripada laman web yang sengaja mengumpul kata laluan yang dijana. Ia tidak dapat menjamin integriti peranti pengguna, sambungan pelayar, papan klip, sistem pengendalian, atau perkhidmatan destinasi. Ia juga tidak dapat menjadikan kata laluan yang digunakan semula selamat atau menghalang pengguna daripada memasukkan kata laluan ke halaman pancingan data.
Semakan boleh ulang
Pelayar, API awam, dan pwdgen-cli@1.0.0 berkongsi teras pensampelan penolakan Web Crypto yang sama. Ujian automatik menyemak liputan aksara yang diaktifkan, aksara dikecualikan, konfigurasi tidak sah, dan ketiadaan Math.random(). Ujian pelayar mengesahkan bahawa penjanaan semula dan penyalinan tidak mengeluarkan permintaan rangkaian yang membawa kata laluan. Sumber awam dan hasil CI dipautkan di atas; ini adalah bukti kejuruteraan yang boleh dihasilkan semula, bukan tuntutan audit keselamatan bebas.
Untuk penjelasan peringkat protokol yang lebih mendalam, baca kertas putih penjanaan kata laluan sebelah klien.