Ou comment remplacer ce que l’on sait (le mot de passe) par ce que l’on possède (une clé USB particulière). Cela permet de donner une seconde vie à des clés USB totalement obsolètes de par leur taille vraiment faible (inférieure à 1Go).
Pamusb permet de se connecter sans avoir à taper un mot de passe. Pour cela un module PAM est ajouté et la sécurité repose sur la possession de cette fameuse clé. Bien que cela ne soit pas impossible, il est très difficile de remplacer cette clé, qui sera reconnue par son ID (iSerial) et qui possédera le même secret partagé que l’ordinateur. C’est cette dernière partie qui est très difficile à reproduire car le secret partagé est changé à chaque utilisation.
Pour obtenir ce numéro de série, on fait la différence de la commande lsusb
avant et après l’insertion de la clé pour en déduire le numéro du bus et de device. Pour moi c’est ça
Bus 002 Device 007: ID 04e8:1623 Samsung Electronics Co., Ltd
J’interroge donc lsusb (en tant que superutilisateur root) sur ce périphérique et je vais comparer ce chiffre à celui que me proposera pam-usb lors de la configuration de ma clé USB.
sudo lsusb -s 002:007 -v | grep iSerial iSerial 3 0123456789AB
L’installation de pam-usb est triviale
sudo dnf install pam_usb
On branche ensuite notre clé USB, si ce n’est pas déjà fait, (sans montage de partition) et on la déclare comme clé utilisable par pam-usb en lui donnant un nom
sudo pamusb-conf --add-device masterkey Please select the device you wish to add. * Using "Samsung Mighty Drive (0123456789AB)" (only option) Which volume would you like to use for storing data ? * Using "/dev/sdh1 (UUID: 99899601-c7de-4086-bc81-f2ff36a0b509)" (only option) Name : masterkey Vendor : Samsung Model : Mighty Drive Serial : 0123456789AB UUID : 99899601-c7de-4086-bc81-f2ff36a0b509 Save to /etc/pamusb.conf ? [Y/n]
sudo mv/etc/pamusb.conf /etc/pamusb.conf.orig sudo echo '<configuration><defaults></defaults><devices></devices><users></users><services></services></configuration>' > /etc/pamusb.conf
On ajoute notre utilisateur
sudo pamusb-conf --add-user tartarefr Which device would you like to use for authentication ? * Using "masterkey" (only option) User : tartarefr Device : masterkey Save to /etc/pamusb.conf ? [Y/n]
On modifie les fichiers /etc/pam.d/system-auth et /etc/pam.d/system-auth-ac pour ajouter la ligne autorisant l’authentification par le module pam-usb avant celle de l’authentification unix (ligne existante qui ne doit pas être modifiée)
auth sufficient pam_usb.so auth sufficient pam_unix.so ....
On vérifie
pamusb-check tartarefr * Authentication request for user "tartarefr" (pamusb-check) * Device "masterkey" is connected (good). * Performing one time pad verification... * Access granted
sudo cat /etc/fedora-release * pam_usb v0.5.0 * Authentication request for user "didier" (sudo) * Device "masterkey" is connected (good). * Performing one time pad verification... * Access granted. Fedora release 28 (Twenty Eight)
Au secours, ça ne fonctionne plus
Il suffit de supprimer le répertoire local comportant le secret partagé (en se connectant avec le mot de passe unix). Le secret partagé sera réinitialisé avec la commande pamusb-check.
rm -rf ~/.pamusb pamusb-check $USER
Leave a Reply