Page suivante > Accueil > Authentification avec clé usb sous Linux






S'authentifier avec une clé usb sous linux

Chercher :    

Introduction

  • Vous disposez d'un clé usb et souhaitez l'utiliser pour vous authentitifier sous linux. Rien de plus simple avec le projet "pam_usb" qui permet une telle authentification à travers l'algorithme DSA de clé privée/publique (cf. notre page sécurité pour plus d'infos).
  • Nous vous allons vous détailler ci-dessous comment procéder pour mettre en place cette authentification. A noter que cette page a été concue en grande part à partir de la traduction de la procédure d'installation du site original de pam_usb.

Authentification par clé usb sous linux

  • S'assurer tout d'abord que la clé usb est bien reconnue sous linux et créer un point de montage tel que /mnt/uskbey par exemple.
  • Télécharger le module "pam_usb" à l'adresse http://sig11.org/~al/pam_usb/.
  • Se connecter en tant que root.
    • tar zxvf pam_usb-0.2_rc2.tar.gz
    • cd pam_usb-0.2_rc2
    • make
    • make install

    Remarque : il se peut que la compilation échoue si vous n'avez pas installé au préalable les modules de développement de pam dont dépend "pam_usb".

  • Editer le fichier /etc/pam.d/login et alors 3 choix sont possibles :
    • pour utiliser uniquement votre clé usb pour vous connecter, mettre en commentaire la ligne (par un # en début de ligne) auth required pam_unix.so ou auth required pam_stack.so (selon les distrib. linux) et ajouter la ligne auth required pam_usb.so.
    • pour utiliser soit votre clé usb soit votre password habituel pour vous connecter, ajouter la ligne auth sufficient pam_usb.so avant la ligne auth required pam_unix.so ou auth required pam_stack.so (selon les distrib. linux).
    • pour être obliger d'utiliser à la fois votre clé usb et votre password habituel pour vous connecter, ajouter la ligne auth required pam_usb.so avant la ligne auth required pam_unix.so ou auth required pam_stack.so (selon les distrib. linux).

    Remarques :
    • Des options sont disponibles, notamment l'option debug=1 qu'il est recommandé d'ajouter lors de la 1ère connexion à la fin de la ligne auth required/sufficient pam_usb.so pour permettre de passer en mode "bavard". N'hésitez donc pas à consulter la documentation sur le site de "pam_usb".
    • . Pour ma part j'ai dû mettre la ligne auth sufficient pam_usb.so force_device=/dev/sda4 fs=vfat check_if_mounted=1 pour que cela fonctionne, sachant que ma clé usb est reconnue sous le device /dev/sda4.

  • Monter la clé usb
    • mount /dev/sda4 /mnt/usb (/dev/sda4 est le device de ma clé usb).
  • Générer la paire de clé privée/publique par :
    • usbadm keygen /mnt/usb mon_login 2048 (mon_login est le nom du login qui bénéficie de l'authentification par clé usb, 2048 est la taille choisie pour la clé)
      [!] Directory /root/.auth/ not found, creating one...
      [!] Directory /mnt/usb/.auth/ not found, creating one...
      [!] Generating 2048 DSA key pair for root@host
      [!] Extracting private key...
      [+] Private key extracted.
      [+] Private key successfully written.
      [!] Writing public key...
      [+] Public key successfully written.

  • Voilà, c'est fait... Simple non ? Il ne vous reste plus qu'à faire un essai de login en mode console avec le compte "mon_login".

  • Pour renforcer la sécurisation de l'authentification par clé usb :
    • # usbadm cipher /mnt/usb mon_login
      [!] Importing the private key...
      [+] Private key imported
      [!] Encrypting the private key may prevent someone to authenticate with
      your key. The drawback is that pam_usb will prompt you for password
      every time you authenticate.
      [?] Which algorithm want you to use ? (none/blowfish/des3): blowfish
      Enter PEM pass phrase:
      Verifying - Enter PEM pass phrase:
      [+] Private key successfully written using cipher blowfish


    • permet de crypter la clé privée par un algorithme symétrique en utilisant une "passphrase". Cette "passphrase" vous sera donc demandée à chaque authentification afin de pouvoir décrypter la clé privée.

      Remarque : usbadm cipher /mnt/usb mon_login none permet de supprimer le cryptage de la clé privée.

    • # usbadm addserial
      [+] procfile: /proc/scsi/usb-storage-0/0
      [+] serial number: 69S258Q3BP2E2201
      [+] attached: yes
      Allowing serial number 69S258Q3BP2E2201...done.


    • permet de n'autoriser que cette clé usb (utilisation pour cela de son numéro de série).
Voilà c'est fait. A noter que vous pouvez utiliser ce type d'authentification également pour X11 en modifiant cette fois-ci le fichier /etc/pam.d/xdm.

(Double-cliquer pour revenir en haut de la page)

Copyright 2024 © Envoyer un mail à Pariscyber