Ce référentiel contient une extension Chrome qui intègre le gestionnaire de mots de passe avec Chrome.
Il y a deux dossiers dans ce référentiel qui contiennent :
Pour utiliser l'extension, vous devez installer l'extension dans votre navigateur Chrome ou Chrome et l'application native Python (chrome_pass).
Ces instructions ont été testées dans Ubuntu 24.04 et Debian 12 (bookworm) :
sudo apt-get install pass python3 python3-pip
pip install --user chrome-pass==1.0.1
chrome_pass install
Obtenez l'extension sur le Chrome Web Store.
Pour réduire la complexité du code de cette extension, il existe certaines hypothèses concernant la structure du magasin de mots de passe. Pour que cette extension puisse répertorier et déchiffrer vos mots de passe, ces hypothèses doivent être respectées :
Cette extension suppose que le magasin de mots de passe se trouve dans le dossier .password-store de votre répertoire personnel :
$HOME/.password-store
Si le magasin de mots de passe est situé ailleurs, vous pouvez essayer d'utiliser un lien symbolique pour contourner cette limitation ou définir la variable d'environnement PASSWORD_STORE_DIR
pour qu'elle pointe vers l'emplacement du magasin de mots de passe.
Ce plugin suppose que les deux dernières parties de chaque chemin de mot de passe suivent cette structure :
[Service URL]/[Username]
Par exemple pour conserver certains comptes Gmail et 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]
Vos chemins peuvent comporter autant de parties que vous le souhaitez à condition que les deux dernières suivent la structure ci-dessus. Et la partie [URL du service] doit correspondre à l'URL de la page que vous consultez car elle est utilisée pour sélectionner le mot de passe correspondant dans la boutique.
Si le fichier pass a configuré pass-otp, alors chrome-pass générera le code TOTP et remplira toutes les entrées de texte numérique dans le formulaire avec.
Pour les comptes IAM, nous avons besoin non seulement de l'utilisateur de connexion et du mot de passe, mais également de l'identifiant ou de l'alias à 12 chiffres du compte. Pour ces comptes, chrome-pass a une logique particulière pour pouvoir renseigner toutes les informations sur la page de connexion.
Password Store
├── signin.aws.amazon.com
│ ├── [email protected]
│ ├── [email protected]
│ ├── 183413992345
│ ├── 550312930456-username1
│ ├── 550312930456-username2
│ └── accountalias
signin.aws.amazon.com
, c'est-à-dire l'URL de connexion à la console.pass edit ...
et ajoutez deux paires clé/valeur n'importe où après la ligne de mot de passe :username=[IAM username]
account=[12 digit AWS account id or alias]
username
pour remplir le champ du nom d'utilisateur, le account
pour remplir le champ d'identifiant du compte et le password
déchiffré pour remplir le champ du mot de passe. L'extension chrome-pass recherche toutes les paires clé/valeur dans les fichiers gpg pass et remplit tout champ de saisie HTML avec un ID égal à la key
avec la value
correspondante.
De plus, si la value
est définie sur les valeurs d'espace réservé spéciales suivantes, elles sont remplacées par :
pass__user
: remplacé par le [Username]
extrait de la dernière partie du chemin d'accès.pass__password
: Remplacé par le mot de passe déchiffré.pass__otpauth
: remplacé par le code pass-otp si disponible. Note
Les touches d'espace réservé spéciales comportent des caractères de soulignement doubles __
.
Cela permet à Chrome-pass de fonctionner avec certains formulaires de connexion non standard comme le formulaire de connexion Apple Id. Cette page de connexion ne dispose pas d'un élément de formulaire et s'appuie sur javascript pour fonctionner. Heureusement, les champs de saisie HTML du nom d'utilisateur et du mot de passe ont des identifiants bien définis que nous pouvons définir dans le fichier chrome-pass pour que cela fonctionne :
# chrome-pass for Apple ID login from.
account_name_text_field=pass__user
password_text_field=pass__password
L'ajout des paires clé/valeur ci-dessus au fichier d'accès au compte Apple demandera à l'extension Chrome-Pass de remplir tout champ de saisie HTML avec l'identifiant account_name_text_field
avec le nom d'utilisateur et tout champ de saisie HTML avec l'identifiant password_text_field
avec le mot de passe déchiffré.
Ceci est réservé aux développeurs ou aux personnes qui souhaitent voir le code source avant de confier leurs mots de passe à une extension écrite par une personne inconnue.
Dans Chrome, ouvrez l'URL chrome://extensions, vérifiez le mode développeur , puis chargez le chemin d'accès au dossier d'extension à l'aide du bouton Charger l'extension décompressée . Une fois l'extension chargée dans Chrome, notez l' ID de l'extension .
Ensuite, nous devons installer le script wrapper chrome_pass et installer le manifeste de l'application hôte native :
cd application
pip install --upgrade setuptools build --user
python -m build
pip install . --user
chrome_pass install [extension ID]
Remplacez les champs personnalisés otpoauth
par pass__otpauth
dans vos fichiers de transmission. Le champ personnalisé otpoauth
sera supprimé et ne fonctionnera pas dans les prochaines versions.
L'application native et l'extension 0.5.1 ne sont pas compatibles avec la version précédente. Assurez-vous que les deux sont à 0.5.1 pour qu’ils fonctionnent correctement.
Le script nativePass
a été renommé chrome_pass
.
La version 0.5.0 de chrome-pass utilise setuptools au lieu de distutils pour empaqueter et installer l'application native. Lors de l'installation, vous pouvez obtenir des erreurs telles que :
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.
Dans cette situation, il est nécessaire de désinstaller manuellement les anciennes versions du package :
nativePass
. Trouvez-le en utilisant which nativePass
.chrome_pass-0.X.0...
Si, pour une raison quelconque, l'extension ne parvient pas à obtenir la liste des noms d'utilisateur de votre magasin de mots de passe, les raisons les plus probables sont :
Il a été constaté que l'application chrome_pass est incapable de déchiffrer les mots de passe gpg avec certaines versions plus récentes de python-gnupg. Je peux vérifier que le plugin fonctionne sans problème lors de l'utilisation du module gnupg version 0.3.9 trouvé par défaut dans Ubuntu 16.04LTS.
Voir le problème connexe pour plus de détails sur : Github.
Si le plugin fonctionne lorsque vous lancez Chrome depuis un terminal, mais ne fonctionne pas lorsqu'il est lancé depuis Spotlight ou tout autre lanceur, assurez-vous que la variable d'environnement PATH est correctement définie par le lanceur.
Voir le problème connexe pour plus de détails sur : Github