web-dev-qa-db-fra.com

Connexion sans mot de passe avec Yubikey 5 NFC

Je viens d'acheter un Yubikey 5 NFC et je l'ai configuré par leurs instructions sur Ubuntu 19.04. Mais mon cas d'utilisation préféré est d'utiliser la clé comme option sans mot de passe (si il est branché; autorisez l'accès - sinon, entrez le mot de passe).

J'ai trouvé quelques sujets à ce sujet ici et ici mais les deux ne sont pas pour un Yubikey ou pas pour Ubuntu. Et je suis trop inexpérimenté avec ces choses pour jouer aveuglément avec les paramètres car il y a de fortes chances que je sois bloqué pour toujours si je fais quelque chose de mal.

Je sais donc que le Yubikey 5 prend en charge la connexion sans mot de passe pour Windows, je pense qu'il doit être disponible sur Ubuntu d'une manière ou d'une autre, non? Quelqu'un a-t-il une astuce pour moi?

Edit: Pour donner un peu de contexte à l'argument valable ci-dessous, cette configuration n'augmenterait pas la sécurité, en fait, elle l'abaisserait: Oui, je sais, très vrai en effet. Cependant, dans mon cas, je travaille principalement à partir de ma propre maison (sécurisée), mais je suis un adepte des mots de passe très compliqués. Cependant, cela me ralentit, je dois entrer un mot de passe très long chaque fois que mon ordinateur portable tourne trop longtemps au ralenti, donc quand je suis à la maison, j'aimerais pouvoir utiliser uniquement la clé, et si je suis absent , laissez la clé à la maison et utilisez simplement un mot de passe.

Edit2: Grâce à la réponse de hackerb9 et en exécutant à nouveau les étapes d'installation de Yubico, je l'ai fait fonctionner. Essentiellement, tout ce que j'ai fait était d'ajouter auth sufficient pam_u2f.so aux deux /etc/pam.d/gdm-password et /etc/pam.d/Sudo au lieu de @include common-u2f (ce qui entraînerait auth sufficient pam_u2f.so authfile=/etc/u2f_mappings cue). Donc, tout simplement supprimé authfile=/etc/u2f_mappings cue a fait l'affaire. Je ne suis pas sûr à 100%, mais je pense que cela est dû à un `` conflit de configuration '' lorsque j'ai configuré la clé avant d'essayer.

2
Alex Timmer

Vous avez raison de vous inquiéter de vous enfermer. Si votre répertoire personnel est chiffré et que vous y conservez un fichier de mappage d'autorisation d'authentification à deux facteurs, vous ne pourrez pas vous connecter! C'est pourquoi j'utilise toujours un fichier d'authentification central (/etc/u2f_mappings).

Je suggère de créer un deuxième compte lors des tests afin de ne pas vous bloquer sur votre compte principal. Assurez-vous également d'obtenir une deuxième clé 2FA et de l'enregistrer en tant que sauvegarde au cas où vous perdriez la première.

Comment activer la connexion sans mot de passe

Bien que vous deviez faire attention, le processus est simple et direct. Pour le rendre encore plus facile, j'ai écrit ceci afin que vous puissiez simplement couper et coller les commandes suivantes dans un terminal:

  1. Sudo -i
  2. apt install libpam-u2f
  3. pamu2fcfg | tee /etc/u2f_mappings

    # (À ce stade, appuyez sur le bouton. Vous devriez voir une longue chaîne de chiffres. Sinon, assurez-vous que udev est correctement configuré.)

  4. cd /etc/pam.d

  5. echo 'auth sufficient pam_u2f.so authfile=/etc/u2f_mappings cue' > common-u2f

  6. for f in gdm-password lightdm Sudo login; do

    mv $f $f~

    awk '/@include common-auth/ {print "@include common-u2f"}; {print}' $f~ > $f

    done

  7. exit

Remarques

  • Lors de la connexion, vous serez invité à toucher votre appareil s'il est détecté. Sinon, vous serez invité à saisir un mot de passe.

  • Nous utilisons le terme "suffisant" ci-dessus pour que soit le mot de passe ou la clé U2F soient suffisants pour se connecter (comme demandé dans la question). Pour une connexion d'authentification à deux facteurs plus typique, "suffisant" serait remplacé par le mot "requis" afin que les deux soient toujours nécessaires.

  • La ligne u2f dans les fichiers pam.d doit précéder @include common-auth, sinon vous devrez saisir un mot de passe avant de vérifier la clé U2F.

  • Je m'en voudrais de ne pas souligner que l'utilisation d'une clé "2FA" de cette manière, bien que pratique, n'augmente pas votre sécurité. En fait, vous n'avez ouvert qu'une deuxième façon d'accéder à votre compte. Mais ce n'est pas nécessairement mauvais; tout le monde n'a pas besoin de haute sécurité et un dongle comme celui-ci peut vous éviter d'avoir un mot de passe facile à taper, court et vulnérable.

Et bien plus!

Soit dit en passant, ces instructions ne concernent pas uniquement les appareils de Yubico. J'utilise une clé de Solokeys et cela fonctionne très bien. En outre, la configuration fonctionne pour les clés USB et NFC.

Si vous avez besoin de plus d'informations, instructions de Yubico - comme mentionné dans la question d'origine - sont assez informatifs. Consultez également les pages de manuel de pam_u2f et pamu2fcfg.

2
hackerb9

Je sais que cela existe depuis un certain temps, mais je voulais faire un carillon ici pour m'assurer que tout est terminé. De sorte que si quelqu'un d'autre arrive, il sait comment le faire fonctionner.

Je veux dire que c'est génial et je le cherche depuis un certain temps et je l'ai rencontré il y a quelques jours et je n'ai vu aucun moyen de le faire en plus de celui-ci. Je suis sûr que c'est là-bas.

La seule chose qui, je crois, a été manquée est ...

pamu2fcfg sorties dans le fichier /etc/u2f_mappings via pamu2fcfg | tee /etc/u2f_mappings sous l'utilisateur actuel, qui dans ce cas est root. Si vous essayez de l'utiliser pour un autre utilisateur que root, cela ne fonctionnera pas.

Le fichier devra être mis à jour pour refléter le nom d'utilisateur correct dans ce cas.

Sudo nano /etc/u2f_mappings

Remplacez root dans la ligne par le nom d'utilisateur souhaité.

Donc, à partir de quelque chose comme root:xxxxxxx..... à USERNAMEHERE:xxxxxxxx..... ou quel que soit le nom d'utilisateur.

OR

Une autre façon, probablement meilleure, de l’aborder est de

changement pamu2fcfg | tee /etc/u2f_mappings

à

pamu2fcfg -u USERNAME | tee /etc/u2f_mappings

ou changez-le en

pamu2fcfg -u USERNAME >> /etc/u2f_mappings

où USERNAME est le nom de l'utilisateur qui va l'utiliser. Avec le >> il crée ou ajoute à la fin du fichier ce qui permet plusieurs utilisateurs.

Je vais en retirer la majorité et quelques autres éléments d'autres pages et les déposer dans git afin de ne pas perdre cela dans l'abîme qu'est Internet. Ce n'est pas entièrement configuré, mais voici le lien https://github.com/vanderblugen/yubico_password_less_ubunt . Si je peux vous taguer, tirez-moi un message et je le ferai.

Cette partie m'a pris du temps. Chaque utilisateur du fichier doit être sur sa propre ligne. Si plusieurs clés pour un seul utilisateur mettent un : entre chacune des touches.

1
vanderblugen