Linux et Yubikey - authentification

Linux et Yubikey - authentification

2019-04-01 Fred (lateo) 0 Mémos & Bidouilles

Matos utilisé : Yubico FIDO U2F Security key (25€ environ).

Distribution : Fedora Linux 29

La bouche en cœur, tu branches ta toute nouvelle Yubikey sur ton PC, et là c'est le drame : ce n'est pas « automagique ». Il va falloir bosser un peu.

J'ai arbitrairement choisi de passer par l'U2F (universal second factor, une norme libre sur l'authentification à deux facteurs), je ne garantis pas que ce soit la méthode la plus sûre : pour moi il s'agit de bidouiller et pas de protéger les plus précieux secrets de l'univers. Remarques et autres éclairages bienvenus.

Première étape, installer quelques paquets :

$ sudo dnf install pam-u2f pamu2fcfg

Note: j'ai aussi installé pam_yubico et ses dépendances mais ne m'en suis pas servi in fine. Je n'ai pas creusé l'intérêt de tel ou tel module.

Si ce n'est déjà fait, c'est le moment de connecter la Yubikey. On va maintenant créer la clef U2F de l'utilisateur :

$ mkdir ~/.config/Yubico && pamu2fcfg > ~/.config/Yubico/u2f_keys

La zone de contact de la Yubikey doit clignoter maintenant. Mets-y un doigt.

Le terminal rend la main ? Pas de message d'erreur ?
Félicitations ! La nouvelle clef U2F est prête à l'emploi pour cet utilisateur.

Maintenant, il s'agit de définir le comportement du système ; de choisir quand on souhaite utiliser la Yubikey et dans quelles conditions. Tout ça se gère via PAM (pluggable authentication module).

On va donc aller tripoter, selon nos besoins, différents fichiers que l'on trouve dans /etc/pam.d/

Pour le moment, je souhaite pouvoir m'authentifier indistinctement par ma phrase de passe ou avec ma Yubikey. Genre si j'ai oublié ma Yubikey, je ne me retrouve pas comme le blaireau qui se voit contraint de remettre son PC portable dans son sac aussi discrètement que possible. Bien entendu, l'hypothèse mettant en cause la fiabilité de ma mémoire est définitivement invraisemblable. Ou pas.

Le gestionnaire de session est GDM, c'est donc par le fichier PAM correspondant qu'on va attaquer :

$ sudo nano /etc/pam.d/gdm-password

Modifier le bloc « auth » pour qu'il ressemble à ça :

auth [success=done ignore=ignore default=bad] pam_selinux_permit.so

auth sufficient pam_u2f.so

auth substack password-auth

auth optional pam_gnome_keyring.so

auth include postlogin

    Sauvegarder les modifs (dans nano « Ctrl+O, entrée »). 
    Tester (par exemple en verrouillant l'écran). S'autocongratuler. 
    Se demander ce qu'on pourrait trouver comme autre utilisation de la Yubikey. 

NB :

  • La position de chaque instruction est primordiale dans les fichiers de configuration de PAM. Tâtonnements à prévoir dès qu'on y touche.
  • Ici on utilise le mot clef « sufficient » pour l'authentification par la Yubikey, de sorte que ce moyen ne soit ni obligatoire ni exclusif. Concrètement : ça continue de fonctionner comme avant, mais si la Yubikey est connectée alors on peut s'affranchir du mot de passe.
  • LIS-MOI : ça reste une bonne idée de commencer par un simple « sufficient » même si ton objectif est l'authentification à 2 facteurs (secret connu + secret détenu) : en cas d'interface chaise-clavier défaillante, tu pourras encore te connecter au système à l'ancienne et réparer ta connerie…


Commentaires

Pas encore de commentaire

Commenter

Note : pas de HTML. Modération a priori des commentaires des utilisateurs non inscrits.