Repositori ini berisi ekstensi Chrome yang mengintegrasikan pengelola kata sandi sandi dengan Chrome.
Ada dua folder dalam repositori ini yang berisi:
Untuk menggunakan ekstensi, Anda perlu menginstal ekstensi di browser chrome atau chromium Anda dan aplikasi asli python (chrome_pass).
Instruksi ini telah diuji di Ubuntu 24.04 dan Debian 12 (kutu buku):
sudo apt-get install pass python3 python3-pip
pip install --user chrome-pass==1.0.1
chrome_pass install
Dapatkan ekstensi dari Toko Web Chrome.
Untuk mengurangi kompleksitas kode ekstensi ini, ada beberapa asumsi mengenai bagaimana penyimpanan kata sandi disusun. Agar ekstensi ini dapat membuat daftar dan mendekripsi kata sandi Anda, asumsi berikut harus diikuti:
Ekstensi ini mengasumsikan penyimpanan kata sandi terletak di dalam folder .password-store di dalam direktori home Anda:
$HOME/.password-store
Jika Anda memiliki penyimpanan kata sandi yang berlokasi di tempat lain, Anda dapat mencoba menggunakan tautan simbolis untuk mengatasi batasan ini atau mengatur variabel env PASSWORD_STORE_DIR
untuk menunjuk ke lokasi penyimpanan kata sandi.
Plugin ini mengasumsikan bahwa dua bagian terakhir dari setiap jalur kata sandi mengikuti struktur ini:
[Service URL]/[Username]
Misalnya untuk menyimpan beberapa akun Gmail dan Amazon:
~/.password-store/
├── mail.google.com
│ ├── me@gmailcom
│ ├── [email protected]
│ └── [email protected]
└── Amazon
├── www.amazon.com
│ ├── [email protected]
│ └── [email protected]
└── www.amazon.co.jp
├── [email protected]
└── [email protected]
Jalur Anda dapat memiliki bagian sebanyak yang Anda inginkan selama dua bagian terakhir mengikuti struktur di atas. Dan bagian [URL Layanan] harus cocok dengan URL halaman yang Anda lihat karena digunakan untuk memilih kata sandi yang sesuai dari toko.
Jika file pass telah mengkonfigurasi pass-otp, maka chrome-pass akan menghasilkan kode TOTP dan mengisi input teks numerik apa pun di formulir dengannya.
Untuk akun IAM kita tidak hanya memerlukan login pengguna dan kata sandi tetapi juga 12 digit ID atau alias akun. Untuk akun-akun tersebut, chrome-pass memiliki beberapa logika khusus untuk dapat mengisi semua informasi di halaman login.
Password Store
├── signin.aws.amazon.com
│ ├── [email protected]
│ ├── [email protected]
│ ├── 183413992345
│ ├── 550312930456-username1
│ ├── 550312930456-username2
│ └── accountalias
signin.aws.amazon.com
yang merupakan URL untuk masuk ke konsol.pass edit ...
dan tambahkan dua pasangan kunci/nilai di mana saja setelah baris kata sandi:username=[IAM username]
account=[12 digit AWS account id or alias]
username
untuk mengisi kolom nama pengguna, account
untuk mengisi kolom id akun, dan password
yang didekripsi untuk mengisi kolom kata sandi. Ekstensi chrome-pass mencari pasangan kunci/nilai apa pun dalam file pass gpg dan mengisi kolom input HTML apa pun dengan ID yang sama dengan key
dengan value
yang sesuai.
Selain itu, jika value
diatur ke nilai placeholder khusus berikut, nilai tersebut akan diganti dengan:
pass__user
: Diganti dengan [Username]
yang diekstraksi dari bagian terakhir jalur pass.pass__password
: Diganti dengan kata sandi sandi yang didekripsi.pass__otpauth
: Diganti dengan kode pass-otp jika tersedia. Catatan
Kunci placeholder khusus memiliki karakter garis bawah ganda __
.
Hal ini memungkinkan chrome-pass berfungsi dengan beberapa formulir masuk non-standar seperti formulir masuk Id Apple. Halaman login ini tidak memiliki elemen formulir dan bergantung pada javascript untuk berfungsi. Untungnya, kolom input HTML nama pengguna dan kata sandi memiliki ID yang ditentukan dengan baik yang dapat kita atur di file chrome-pass agar dapat berfungsi:
# chrome-pass for Apple ID login from.
account_name_text_field=pass__user
password_text_field=pass__password
Menambahkan pasangan kunci/nilai di atas ke file pass akun Apple akan menginstruksikan ekstensi chrome-pass untuk mengisi kolom input HTML apa pun dengan id account_name_text_field
dengan nama pengguna dan kolom input HTML apa pun dengan id password_text_field
dengan kata sandi yang didekripsi.
Ini hanya untuk pengembang atau orang yang ingin melihat kode sumber sebelum mempercayakan kata sandi mereka ke beberapa ekstensi yang ditulis oleh orang tak dikenal.
Di dalam Chrome buka URL chrome://extensions, periksa mode Pengembang dan kemudian muat jalur ke folder ekstensi menggunakan tombol Muat ekstensi yang belum dibongkar . Setelah ekstensi dimuat ke Chrome, catat ID ekstensinya .
Selanjutnya kita perlu menginstal skrip wrapper chrome_pass dan menginstal manifes Aplikasi Native Host:
cd application
pip install --upgrade setuptools build --user
python -m build
pip install . --user
chrome_pass install [extension ID]
Ganti bidang khusus otpoauth
dengan pass__otpauth
di file pass Anda. Bidang khusus otpoauth
akan dihapus dan tidak akan berfungsi pada rilis mendatang.
Aplikasi asli dan ekstensi 0.5.1 tidak kompatibel dengan versi sebelumnya. Pastikan keduanya 0.5.1 agar dapat berfungsi dengan baik.
Skrip nativePass
telah diubah namanya menjadi chrome_pass
.
Chrome-pass versi 0.5.0 menggunakan setuptools alih-alih distutils untuk mengemas dan menginstal aplikasi asli. Saat menginstal Anda mungkin mendapatkan kesalahan seperti:
ERROR: Cannot uninstall 'chrome-pass'. It is a distutils installed project and
thus we cannot accurately determine which files belong to it which would lead
to only a partial uninstall.
Dalam situasi ini perlu untuk menghapus versi paket yang lebih lama secara manual:
nativePass
. Temukan menggunakan which nativePass
.chrome_pass-0.X.0...
Jika karena alasan tertentu ekstensi tidak dapat memperoleh daftar nama pengguna dari penyimpanan kata sandi Anda, alasan yang paling mungkin adalah:
Ditemukan bahwa aplikasi chrome_pass tidak dapat mendekripsi kata sandi gpg dengan beberapa versi python-gnupg yang lebih baru. Saya dapat memverifikasi bahwa plugin berfungsi tanpa masalah saat menggunakan modul gnupg versi 0.3.9 yang ditemukan secara default di Ubuntu 16.04LTS.
Lihat masalah terkait untuk detailnya di: Github.
Jika plugin berfungsi saat Anda meluncurkan chrome dari dalam terminal, namun tidak berfungsi saat diluncurkan dari Spotlight atau peluncur lainnya, pastikan variabel lingkungan PATH disetel dengan benar oleh peluncur.
Lihat masalah terkait untuk detailnya di: Github