Ceci est une ancienne révision du document !
Lecteur d’empreintes digitales FPrint
FPrint est un projet visant à améliorer le support des lecteurs biométriques sous Linux. D'autres existent comme thinkfinger, qui fonctionnent pour certains mais pas pour d'autres. FPrint supporte un assez grand nombres de lecteurs d'empreintes du marché, notamment une grande partie des très répandus AES de AuthenTec.
Mon lecteur biométrique est-il pris en charge par FPrint ?
Pour savoir si votre lecteur est supporté par FPrint, commencez par trouver de quel modèle il s'agit précisément, via la commande lsusb
:
lsusb
Vous verrez quelque chose du genre :
Bus 003 Device 001: ID 0000:0000 Bus 002 Device 002: ID 08ff:2580 AuthenTec, Inc. Bus 002 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000
Ce qui nous intéresse sont les identifiants du vendeur (Vendor ID) et du modèle (Product ID), ici un AuthenTec, les identifiant sont 08ff et 2580.
Vous pouvez maintenant comparer les identifiants avec ceux listés sur le site du projet. S'il y a une correspondance, cela devrait fonctionner. Il existe aussi une page répertoriant les matériels connus pour ne pas fonctionner. Si votre matériel en fait partie, inutile de continuer, il ne va pas fonctionner. Vous pouvez alors essayer d'autres pilotes comme ThinkFinger.
Si votre matériel n'est listé sur aucune des deux pages, vous pouvez essayer, et voir par vous-même si cela fonctionne.
Installation
Pour "The Precise Pangolin"
Testé sur la version 12.04 LTS
$ sudo add-apt-repository ppa:fingerprint/fprint $ sudo apt-get update $ sudo apt-get install libpam-fprintd
pour unity, allez dans paramétrés système / comptes utilisateur/ et activez la connexion par reconnaissance d'empreintes. pas besoin de modifier manuellement les fichiers de configuration.
Pour Natty (et Oneiric ?)
Ajouter le dépôt FPrint , via la console :
sudo add-apt-repository ppa:fingerprint/fprint
- Installer les paquets : libpam-fprint, libfprint0 (normalement déjà installé avec libpam-fprint), fprint-demo, puis gksu-polkit.
- Passer ensuite à l'étape 3 : Teste de fonctionnement.
Pour Jaunty
installez les paquets libpam-fprint fprint-demo. Installez les paquets libmagickwand-dev ,libpam0g-dev Téléchargez ensuite les sources de lib_fprint sur le site officel.
Enfin, compilez :
tar xvf ~/libfprint-*.tar.bz2 ./configure --prefix=/usr make sudo make install
Pour Intrepid et Jaunty
Installez simplement les packages, ils sont déjà présents dans les dépots officiel d'intrepid.
Pour Hardy
Si vous utilisez Ubuntu Hardy, ajoutez le dépôt suivant :
deb http://ppa.launchpad.net/madman2k/ubuntu hardy main restricted universe multiverse
puis installez les paquets libpam-fprint libfprint fprint-demo.
Via les sources
S'il n'existe pas de paquet pour votre version ou votre architecture, il vous faudra compiler les sources pour faire fonctionner votre lecteur d'empreintes.
Récupérer les sources
Commencez par télécharger les sources de libfprint, pam_fprint et fprint_demo dans votre répertoire personnel depuis le site de fprint.
Une fois les sources téléchargées, créez un nouveau répertoire nommé par exemple fprint_build ; et décompressez-y les trois archives téléchargées. Par exemple en ligne de commande :
mkdir ~/fprint_build && cd ~/fprint_build tar xvf ~/libfprint-*.tar.bz2 tar xvf ~/pam_fprint-*.tar.bz2 tar xvf ~/fprint_demo-*.tar.bz2
Installer les dépendances requises
Pour pouvoir compiler fprint, il vous faut installer les paquets suivants : build-essential libusb-dev libssl-dev libglib2.0-dev libmagick9-dev libpam-dev
Compilation
libfprint
Ouvrez un terminal et rendez-vous dans le dossier créé lors de la décompression de libfprint. Si vous avez suivi les instructions, le dossier devrait être ~/fprint_build/libfprint-* :
cd ~/fprint_build/libfprint-*/
puis lancez la configuration :
./configure --prefix=/usr
si aucune erreur n'apparaît, lancez la compilation :
make
puis l'installation :
sudo make install
pam_fprint
Répétez l'opération avec pam_fprint :
cd ~/fprint_build/pam_fprint-*/ ./configure --prefix=/usr && make && sudo make install
fprint_demo
Si vous désirez pouvoir faire le test de fonctionnement avec l'utilitaire fprint_demo, installez le paquet libgtk2.0-dev puis lancez la compilation :
cd ~/fprint_build/fprint_demo-*/ ./configure && make && sudo make install
Test de fonctionnement
Natty 11.04 et Oneiric 11.10
Cependant, l'interface graphique restait grisée. Il semble impossible de l'utiliser autre qu'en root (à vérifier).
Pour le lancer nous allons donc utiliser la console.
- Lancer fprint_demo (mode administrateur):
sudo fprint_demo
- Au lancement de l'application (graphique), nous devons être dans l'onglet "Enroll". Il suffit ensuite de cliquer sur l'un des boutons "Enroll" (à droite) et de passer le doigt approprié pour enregistrer vos empreintes.
Lorsque votre empreinte sera "capturée", visualisez bien l'image. Votre empreinte doit être bien visible et nette, sans zone exagérément "noire", ou floue (qui aurait tendance à montrer que vous êtes allé trop vite ou trop lentement).
Au moment où je rédige ce tuto, fprint_demo est en anglais. Il y a donc 10 lignes à renseigner correspondantes à nos 10 doigts (du pouce à l'auriculaire (petit doigt) de la main gauche, puis de la même manière pour la main droite). - Une fois tous vos doigts enregistrés (enrollés), il sera désormais écrit "enrolled" pour chaque empreintes enregistrées.
Il est alors conseillé de vérifier vos empreintes en cliquant sur l'onglet "verifiy" en sélectionnant d'abord (à droite dans liste déroulante) le doigt que vous souhaitez vérifier. - Ensuite vous pouvez "jouer" un peu avec, afin de vérifier de nouveau que vos doigts sont reconnus, dans l'onglet "identify" : Cochez toutes les cases à droite (si vous avez enregistrés les empreintes correspondantes), puis cliquez sur le bouton (en bas à droite) : Identify.
Passez alors n'importe quel doigt sur votre lecteur d'empreintes.
Si fprint réussi la correspondance, il sera alors écrit le message :Matched nom_du_doigt(en anglais)
S'il est écrit :Could not identify finger.
retentez l'expérience 2 ou 3 fois.
S'il n'arrive toujours pas à trouver la correspondance, vous devrez alors recommencer l'enregistrement de cette empreinte (étape 2 de cette liste).
- Ensuite, lancez dans la console la commande :
sudo pam-auth-update
Un écran (fond bleu) dans la console devrait s'afficher, vous demandant d'activer les profils PAM.
Sélectionnez (avec les flèches du clavier "haut" ou "bas") "Fingerprint authentification by pam-fprint", s'il n'y a pas d'astérisque devant, alors appuyez simplement sur la touche <espace> pour l'activer.
Ensuite sur "Ok" (en utilisant la touche <Tab> (Tabulation)).
Cela va créer une nouvelle ligne de paramétrage dans le fichier common-auth (voir N°7 de cette liste).
- Ensuite, lancez dans la console la commande (pas certain que cette phase soit indispensable) :
fprintd-enroll
Il vous sera demandé de passer votre index. Ce processus permet d'enregistrer votre empreinte (index droit). - Vous pouvez également vérifier que l'authentification est bien gérée désormais par PAM (Module d'authentification), en éditant le fichier remplacez "kate" par "gedit" pour les utilisateurs Ubuntu/Gnome/Unity):
sudo kate /etc/pam.d/common-auth
Vérifier que la ligne suivante soit bien inscrite dans le fichier common-auth, sinon ajoutez la manuellement sous la ligne "here are the per-package modules (the "Primary" block)" :
auth [success=2 default=ignore] pam_fprint.so
- Si vous avez réussi toutes ses étapes, alors vos empreintes sont enregistrées et FPrint est prêt à fonctionner (nul besoin de suivre le reste du tutoriel).
Antérieur à Natty
Une fois les outils installés, vérifions si le lecteur d'empreintes fonctionne comme il doit.
Lancez fprint_demo
et essayez de scanner vos empreintes. Si ça fonctionne, vous pourrez l'utiliser pour l'authentification, sinon, posez une question sur le forum
Si problème (could not open device), faire
sudo fprint_demo
Configuration
Si la phase de test s'est bien passée (vous avez vu vos doigts, chouette !), passons à l'utilisation pratique du lecteur.
Pour pouvoir utiliser le lecteur dans GDM ou pour sudo, nous allons utiliser PAM. Commencez donc par installer les paquets libpam et libpam-fprint s'il ne l'est déjà.
Nous allons maintenant enregistrer une (ou plusieurs) empreinte(s). Lancez la commande suivante pour enregistrer votre 7ème doigt, c'est-à-dire l'index droit :
sudo pam_fprint_enroll --enroll-finger 7
Si vous préférez un autre doigt, changez 7 par un autre chiffre, les doigts étant numérotés du pouce à l'auriculaire gauche (doigts 1 à 5) puis du pouce à l'auriculaire droit (doigts 6 à 10).
Si vous désirez enregistrer plusieurs doigts, il vous suffit de répéter l'opération en changeant le numéro.
Pour toute authentification
Éditez le fichier de configuration /etc/pam.d/common-auth et cherchez la ligne
auth required pam_unix.so nullok_secure
et ajoutez la ligne ci-dessous juste avant :
auth sufficient pam_fprint.so
Si vous voulez avoir plusieurs tentatives, vous pouvez entrer cette ligne plusieurs fois. Si vous mettez cette ligne 3 fois vous aurez alors 3 essais avant de devoir rentrer votre mot de passe.
Pour l'identification dans GDM uniquement
Ouvriez le fichier de configuration /etc/pam.d/gdm et cherchez la ligne suivante :
@include common-auth
Et ajoutez la ligne ci-dessous juste avant :
auth sufficient pam_fprint.so
Pour SUDO uniquement
Ouvrez le fichier de configuration /etc/pam.d/sudo et cherchez la ligne suivante :
#%PAM-1.0
Et ajoutez la ligne ci-dessous juste après :
auth sufficient pam_fprint.so
Problèmes connus
Aucun prompt n'apparaît
Lors de l'utilisation de lecteurs d'empreintes via PAM avec gksudo, aucune boîte de dialogue n'apparaît pour vous demander de scanner votre doigt. Vous devrez donc simplement passer votre doigt sur le lecteur après avoir lancé une application faisant appel à gksudo ; comme par exemple la majorité des entrés de menu dans Système → Administration.
Pour cela, télécharger le script suivant : gksu.py.
Enfin, quelques lignes à taper dans le terminal :
sudo mv ./gksu.py /usr/local/bin/gksu sudo chmod 755 /usr/local/bin/gksu sudo apt-get install python-gnome2-extras python-pexpect
Liens
Contributeur principal : Ban (Créée à partir de http://www.geekplanet.fr/content/view/25/33/)
Contributeur : Thalyn pour les parties 2 & 3 (Natty et Oneiric) de ce tutoriel