WinFinger : Un lecteur d'emprintes digitales pour PC

Nous avons le plaisir de vous présenter un lecteur d’empreintes digitales, hautement fiable, fourni avec système de développement complet, documentation, logiciels et programme de démonstration en Visual Basic.


Ce système trouvera son application dans chaque cas où la sécurité doit être renforcée.


C’est un fait : l’identification et l’authentification sont devenues des problèmes d’actualité. Les applications pour lesquelles on nous demande un mot de passe ou une clé d’accès sont de plus en plus nombreuses.
Songez au nombre de codes que nous devons mémoriser dans une vie : distributeur de monnaie, carte bancaire, verrouillage de l’ordinateur, du téléphone portable, accès à l’entrée de l’immeuble… nous pourrions ainsi continuer longtemps. Sans parler du badge magnétique, de la carte à puce, du transpondeur, etc. Ce besoin ne date pas d’aujourd’hui : comment identifier une personne de manière absolument sûre et univoque ?
Une des solutions les plus fiables est sans aucun doute la reconnaissance de l’empreinte digitale, une caractéristique propre à chacun de nous.
En effet l’empreinte de notre doigt, qui n’a nulle part son pareil, est un “mot de passe” potentiel absolument sûr. Preuve en est l’utilisation, depuis longtemps, par toutes le polices du monde de la reconnaissance des empreintes digitales des criminels et des délinquants.
Récemment, on a également développé la technique de reconnaissance de l’iris (partie colorée de l’oeil), peut-être encore plus particulier à une personne et donc encore plus sûr mais ces recherches ne sont pas terminées et la technique n’est pas, pour l’instant, à la portée de tous.
Revenons à notre application. Sur le marché grand public, nous trouvons d’ores et déjà des lecteurs d’empreintes digitales, principalement destinés à l’authentification lors de la mise en route de l’ordinateur (par exemple le login sur le système multi-utilisateur WinNT ou Win2000) dont certains sont insérés dans le clavier ou dans la souris du PC.
Les prestations et le degré de fiabilité varient d’un produit à l’autre et selon le type d’application, surtout en fonction du prix. Un produit servant seulement à établir que l’empreinte de l’utilisateur actuel est bien celle, mémorisée, du propriétaire de l’appareil, sera moins sophistiqué qu’un autre destiné à identifier la personne parmi un grand nombre dont on a enregistré les empreintes.
Les produits économiques du commerce sont de bas de gamme.
Pour réaliser ce système de démonstration nous avons choisi un lecteur de faisceau plus professionnel : le Precise 100A de chez Precise Biometrics (http://www.precisebiometrics.com).
Comme ses caractéristiques sont supérieures par rapport aux produits similaires du commerce, il peut être également utilisé comme base de départ vers des applications plus évoluées.
Notre système ne se limitera donc pas à l’utilisation du senseur tel quel mais permettra d’approcher de ce que l’on peut appeler “programmation biométrique” et, par suite, de réaliser un programme adapté à n’importe quelle application réclamant un contrôle précis et fiable des empreintes digitales.



Le lecteur d’empreintes digitales

Figure 1 : Le lecteur d’empreintes digitales.



Caractéristiques
Protection de l’accès aux PC sous environnement Win 95/98/NT/2000. 
Economiseur d’écran protégé par reconnaissance d’empreinte. 
Simplicité d’utilisation. Reconnaissance de l’empreinte en temps réel. 
Sept niveaux de sécurité. Contrôle simple des fonctions. 
Protection de l’ordinateur par empreinte digitale ou mot de passe. 
Installation simple. 
Senseur au silicium pour une numérisation et une capture soignées 
de l’image de l’empreinte. Pas d’alimentation extérieure. 
Support pour Novell Net Ware. Protection File et disquettes. 
Protection sites Web.

Spécifications techniques
Dimensions             :  66,5 x 50,2 x 14,7 mm. Poids 
:  50 g. Résolution du senseur  :  500 dpi. Dimensions du senseur 
:  15 x 15 mm. Communication 
:  cryptée à sécurité élevée entre senseur et PC. Courant 
:  70 mA.

Réquisits du système
Port sériel USB. Processeur Pentium ou supérieur. MS WINDOWS 95/98/NT/2000.

Performances
Vérification  :  <1 sec. Acquisition   :  <5 sec. FAR 
:  <1 in 100 000. FRR           :  <1 in 100.


Figure 2 : L’ensemble opérationnel est constitué par le lecteur biométrique d’empreinte USB, et deux outils de développement logiciels subdivisés en deux CD.
Le premier contient tous les drivers Precise Biometrics nécessaires pour fonctionner sous WINDOWS avec des programmes (en anglais !) permettant de protéger l’accès au PC ou au File.
Le second contient le système de développement complet (SDK) du senseur Précise 100A USB et une démonstration en Visual Basic permettant de développer des applications personnalisées et de profiter du senseur au maximum.


Les empreintes digitales

Figure 3 : Les empreintes digitales.

La reconnaissance des empreintes digitales, par ses caractéristiques, peut être considérée comme un système d’identification personnel hautement fiable.
L’importance réelle des empreintes digitales est basée essentiellement sur le principe d’immutabilité (la configuration et les détails du dessin sont permanents et ne changent pas durant la vie), d’unicité (la possibilité de variation du dessin de l’empreinte est tellement étendue qu’on ne retrouve pratiquement jamais deux dessins identiques sur les différents doigts d’une même personne ou chez des personnes différentes) et de classification (les variations possibles du schéma sont limitées, c’est pourquoi une classification systématique de ces configurations est possible).
L’application des empreintes digitales aux deux problèmes : “identification” et “reconnaissance”, réclame des techniques de comparaison différentes.
Dans le premier cas, il s’agit de comparer deux empreintes seulement alors que dans le second, il faut une comparaison de type 1 : N, c’est-à-dire que l’échantillon d’entrée doit être retrouvé parmi un nombre élevé d’empreintes. Il en ressort évidemment que pour la simple vérification on n’est pas obligé de mettre en oeuvre de puissants algorithmes de comparaison (mais bien pour l’identification, en revanche).
En effet si une comparaison singulière entre deux empreintes prend seulement 10 msec., la recherche dans une archive (ou banque) de 30 millions d’empreintes prendrait 83,3 heures, soit plus de trois jours (temps inacceptable).
C’est pourquoi il faut concevoir des algorithmes limitant le nombre des comparaisons et, en outre, capables de reconnaître des images entachées de “bruit”.
Une empreinte digitale est constituée d’un ensemble de lignes, appelées “ridge line” (ligne de crête) se développant en lignes parallèles, produisant des intersections ou s’interrompant, en formant un dessin appelé “ridge pattern” (échantillon de sillons).
A partir du “ridge pattern” on peut extraire des informations comme “flow line” (ligne de flux), “ridge count” (comptage de sillons), image directionnelle, singularité, “pattern area” (aire de modèles) et détails.
Les détails constituent un facteur extrêmement important pour la discrimination des empreintes.
En effet, les détails sont des points où les lignes de crête ont un tracé inhabituel ou particulier.
Chacun peut être décrit comme un vecteur doté d’un attribut qui en décrit le type.
L’ENSI (Institut Américain de Standard National) donne une classification en quatre catégories principales : Terminaisons, Bifurcation, Trifurcation (“crossover”) ou Indéterminé.
Les sept types les plus communs de détails des empreintes digitales sont représentés dans la figure illustrant cet encadré.
Le modèle d’identification des détails coordonnés prévoit de mémoriser pour chaque détail le type (Teminaison ou Bifurcation), les coordonnées (x, y) et l’angle que la tangente au détail forme avec l’horizontale.
La majeure partie des techniques de comparaison des empreintes digitales basées sur les détails prévoient une première phase d’extraction complète des détails des deux empreintes à comparer et ensuite la comparaison des deux ensembles de détails extraits.
Si le tracé des lignes de crête est examiné avec soin, on aperçoit en outre des zones où ces lignes ont des tracés particuliers : courbes accentuées, terminaisons ou bifurcations fréquentes.
Ces zones sont appelées singularités et sont assimilables à trois classes distinctes : “Core” (coeur, caractérisé par un ensemble de crêtes formant un tracé en U), “Whorl” (structure en O) et Delta (crêtes structurées comme des parenthèses).
La partie centrale de l’empreinte, où sont normalement situées les singularités, est appelée “pattern area” et elle est constituée de deux lignes principales, appelées “type lines” (lignes types), individualisables comme les deux lignes internes qui la séparent du reste de l’empreinte.
Les singularités, en union avec la forme et la direction des lignes de crête de l’aire de modèles, constituent les macro-caractéristiques de l’empreinte sur lesquelles se fondent la plupart des systèmes de classification des empreintes digitales.
Une ligne de flux (“flow line”) est une ligne hypothétique se développant parallèlement à un ensemble de crêtes contigües. Il s’agit de lignes n’ayant pas de correspondance physique et dont la détermination n’est pas univoque mais dépend des hypothèses émises au moment de la localisation.
L’image directionnelle est, finalement, un ensemble de vecteurs non orientés obtenus par superposition d’une grille à l’image de l’empreinte.
Chaque vecteur (“ridge direction”) est placé sur un noeud de la grille et a une direction parallèle à cette ligne de flux qui la traverse.

Figure 4 : Liaison du senseur (lecteur) à l’ordinateur par le port USB.
Le raccordement du lecteur à l’ordinateur nécessite un port USB, ce qui rend la connexion au PC simple et immédiate. Il suffit de connecter la fiche au port USB disponible à l’arrière de l’ordinateur.


Le SDK
Le lecteur Precise 100A est fourni avec toute la documentation pour la réalisation des applications. Outre les drivers du périphérique, nous trouvons une librairie dynamique DLL appelée “pb.dll” contenant toutes les données pour la gestion du lecteur. Grâce à cette librairie, il est possible de réaliser n’importe quel programme exploitant toutes les possibilités de l’appareil.
Voyons, avant toute chose, comment se passe la lecture et la comparaison de l’empreinte du côté logiciel. Quand une nouvelle empreinte est mémorisée, l’image présente sur le senseur subit une première élaboration : l’image “originale” est analysée et on en extrait un “template” (gabarit), de dimensions plus petites, contenant seulement les informations concernant l’empreinte.
Cette opération s’appelle “enroll” (immatriculation). Du point de vue de la mise en oeuvre, les données sont organisées sous forme de suite binaire.
La reconnaissance se passe ensuite ainsi : au moyen de la fonction librairie, un “matching” (appairage) entre l’image actuelle de l’empreinte du doigt posé sur le senseur et tous les “templates” mémorisés, est effectué.
Si une correspondance est trouvée, l’usager reconnu est signalé. Dans le cas contraire apparaît un signal d’erreur indiquant que l’empreinte n’est pas archivée.
On le voit, c’est assez simple. Il faut encore signaler que tous les “templates” sont chargés dans la même centrale (RAM) au début du programme, pour accélérer le plus possible l’opération de reconnaissance. Chaque usager (template) occupe environ 2 ko de mémoire.
Toutes les opérations indiquées (essentiellement “enroll” et vérification) sont gérées à l’intérieur de la DLL, c’est pourquoi il suffit de les appeler à partir de l’environnement de programmation (dans notre cas Visual Basic, mais cela peut se faire en Visual C++, Delphi, Java, etc.). Le bouton “recharge template”, au début du programme, sert à rafraîchir tous les “templates” en mémoire et il est indispensable de l’utiliser après avoir apporté des modifications à l’archivage des “templates” des usagers.
Analysons maintenant plus en détails le programme de démonstration écrit en Visual Basic (en utilisant la librairie “pb.dll”) dont les sources sont fournies avec le senseur biométrique.

Figure 5 : Organigramme du programme du SDK.

Comme le montre l’organigramme, une fois présente une image (empreinte) sur le senseur, son “template” est vérifié par comparaison avec tous les templates en mémoire et, en cas de reconnaissance, la correspondance exacte est signalée. Dans le cas où aucune correspondance n’est trouvée, le message “d’usager non reconnu” est visualisé.

La présentation du programme
L’application que nous allons vous présenter est simplement une démonstration de la façon de gérer la reconnaissance d’un groupe de personnes au moyen du lecteur d’empreintes.
WinFinger (c’est le nom du programme en question), permet la configuration d’un certain nombre d’usagers et la reconnaissance de l’un d’eux à l’aide du senseur biométrique. L’application permet, grâce à un contrôle à fenêtre, style rubrique, la gestion de toutes les fonctionnalités du programme. Trois sections : Principale, Configuration usagers et Configuration système.
La première section, “Principale” (figure 6), est une fenêtre monitor sur l’activité du système. L’empreinte lue actuellement par le senseur y apparaît, ainsi que la “qualité” de l’empreinte au moyen d’un “progress bar” (thermomètre
- dont nous parlerons bientôt), un afficheur fournissant toutes les informations de fonctionnement et au moyen duquel il est demandé d’appliquer le doigt sur le senseur, éventuellement de le déplacer dans une direction et, si l’opération de reconnaissance débute, l’arrêt de cette opération.
Si l’empreinte d’un usager est disponible en mémoire, le nom et le prénom de celui-ci est visualisé. Sinon l’indication de non reconnaissance est visualisée.
En outre on trouve un bouton “RECHARGE TEMPLATE”, à utiliser après avoir introduit des modifications à la banque de “templates” des usagers (effacement, ajout, modification), avec une des opérations que nous présenterons bientôt.
Notez bien que tous les événements, reconnaissance d’une empreinte et identification d’un usager, sont soulignés par des sons ; respectivement :
- Un bip : empreinte relevée, on peut ôter le doigt du senseur.
- Deux bips : usager identifié.
- Trois bips : aucun usager n’est reconnu.
La section suivante, “Configuration usagers” (figure 7), on le devine, présente toutes les commandes pour la gestion des usagers : création, effacement, liste et régénération des empreintes (utile si par exemple on veut changer le doigt par lequel se faire reconnaître). En cliquant sur “Nouvel usager”, il est possible de créer une nouvelle empreinte.
Important : il faut d’abord insérer nom et prénom, ensuite, positionner le doigt et, quand la “qualité” est suffisante, cliquer sur “CREER” (figure 8). La commande “REENREGISTRER EMPREINTE” permet de réassocier une nouvelle empreinte à un usager déjà existant.
La troisième section, “Configuration système”, permet de régler deux paramètres : la qualité minimale de lecture et le degré de sécurité (figure 9).
Ces paramètres sont “extraits” directement du driver logiciel pilotant le dispositif et quelques-unes des ressources mises à disposition du SDK (Software Development Kit, kit de logiciels de développement) ne sont pas fournies avec le lecteur mais à part.
En substance, le paramètre “qualité” est un nombre entier compris entre 0 et 127, continuellement mis à jour, indiquant la qualité de l’empreinte en cours de lecture.
Le périphérique est donc une sorte de vidéo-caméra et c’est au logiciel de chercher à comprendre quand l’image “captée” est une bonne empreinte. Le contrôle pour le réglage du degré de sécurité est un nombre compris entre 0 et 7. Plus le nombre est élevé, plus la sécurité est grande. Si l’on augmente trop le niveau, on augmente aussi la probabilité qu’une empreinte ne soit pas reconnue car le système ne trouvera pas assez ressemblantes l’empreinte lue et l’empreinte mémorisée.
En revanche avec un niveau trop bas, le risque est de confondre deux empreintes distinctes mais qui se ressemblent.
Donc, comme disaient les anciens latins, In medio stat virtus*, la valeur prédéfinie (et conseillée) est 4.
Cette valeur aussi est contenue dans le driver du dispositif où l’on vous fait accéder par un bouton à la fonction de librairie dynamique (DLL) fournie avec le SDK du lecteur.

* La vertu est au milieu (c’est-à-dire : à égale distance des extrémités ou encore : le bien est dans le juste milieu).


Et voilà comment ce système relativement simple à mettre en oeuvre peut servir de base à des applications plus évoluées. Si cette technologie réussit à s’imposer, cela impliquera la résolution des problèmes juridiques, plus que techniques, qui se posent (voir figure 10).
Nous vous laissons la possibilité d’améliorer, en fonction de vos besoins, le programme présenté, sans oublier que toutes les instructions additionnelles comprises dans la DLL fournie, sont expliquées en détails (en anglais !) sur le CD. Après une lecture assidue, étant donnés les exemples proposés, vous n’aurez aucune difficulté pour créer vos propres applications, même les plus complexes.

Figure 6 : La fiche “Principale” (menu WinFinger, onglet “Principale”) du programme représente un moniteur visualisant l’activité du système : l’empreinte est affichée, sa “qualité” aussi, un bouton “Recharge Template” permet de rafraîchir les archives après qu’on y ait modifié les empreintes.



Figure 7 : La fiche “Configuration Usagers” comporte toutes les commandes pour la gestion des usagers : création, effacement, liste et régénération d’empreintes. En cliquant sur “Nouvel Usager”, il est possible d’insérer un nouvel usager (nom et prénom) et l’empreinte correspondante. Le bouton “Anagraphique” permet de visualiser la liste des usagers et des empreintes mémorisées.

Figure 8 : Avec la commande “Recréer Empreinte”, il est possible de réassocier une nouvelle empreinte à un usager déjà existant. Donc, si un usager est dans la nécessité de changer de doigt de reconnaissance (par exemple à cause d’une blessure interdisant la reconnaissance du doigt précédemment mémorisé), il suffit de sélectionner cette fiche, l’usager en question, et d’effectuer une nouvelle lecture de l’empreinte puis de la mémoriser.

Figure 9 : La fiche “Configuration Système” permet de régler les deux paramètres caractéristiques du lecteur ; la qualité minimale de lecture et le degré de sécurité. Ces paramètres sont gérés directement par le dispositif et déterminent la “qualité” (valeur 0 à 127) de l’empreinte que le lecteur relève actuellement et le degré de sécurité de la reconnaissance (0 à 7).

Figure 10 : Senseur biométrique et confidentialité
En décembre 2000, les media ont évoqué le cas d’une banque en Europe ayant adopté le procédé du senseur biométrique pour l’identification des clients. Sur une plainte de certains d’entre eux, les pouvoirs publics (en France, il se serait agi de la CNIL : Commission Nationale Informatique et Liberté) ont dû préciser les conditions d’utilisation d’un tel système : si aucune “situation concrète de risque” n’existe, il n’est pas possible de justifier l’emploi de senseurs biométriques. La banque a dû déposer les senseurs.
Comment se passait l’identification dans cette banque? Tous les clients sur le point d’entrer dans l’établissement étaient exposés à un double contrôle : la reconnaissance de l’empreinte digitale et l’enregistrement de leur image par une vidéo-caméra en circuit fermé.
Ces données étaient conservées sans que la clientèle en soit informée et sans effacement dès lors que le besoin de sécurité cessait, c’est-à-dire lorsque le client était sorti de la banque.
Les pouvoirs publics ont souligné que cet établissement n’avait donné aucune information sur ce double contrôle, ni sur le traitement des données, ni sur sa finalité et que le consentement des intéressés n’avait pas été obtenu, ce qui constituait une violation de la Loi statuant, entre autres choses, sur la nécessaire transparence devant accompagner le traitement de données personnelles.
Les pouvoirs publics ont, en outre, relevé que le comportement des responsables de la banque violait le principe de proportionnalité entre le système utilisé et le but poursuivi : le recueil des données constituait un véritable “sacrifice disproportionné de la sphère de liberté des personnes, lesquelles pouvaient se plaindre légitimement d’une considération inadéquate et préjudiciable de leur dignité personnelle”. En d’autres termes, moins ampoulés, s’il est juste et légitime de se protéger contre le danger de vol et d’agression, cela ne peut impliquer que l’on sacrifie la dignité personnelle des clients en les soumettant à un traitement excessif et illégitime.
En conclusion, la banque, pour équilibrer les deux exigences (sécurité et respect de la dignité personnelle), a dû abandonner le système biométrique de contrôle d’accès à son local et se contenter de la vidéo-surveillance classique de l’établissement avec effacement des images du client une fois sorti.
Néanmoins, les évènements du 11 septembre 2001 aux Etats Unis, risquent de changer rapidement et profondément la donne et le comportement de l’Administration face aux systèmes de sécurité multiples et sophistiqués. S’il est évident que chaque personne a le droit à la totale protection de sa “sphère de liberté”, il est également évident que chaque personne à droit à un niveau acceptable de sécurité lorsqu’il entre dans un établissement, qu’il soit bancaire ou non.
Les personnes qui n’ont rien à se reprocher ne verront certainement pas d’inconvénient à la multiplication des systèmes de protection, à condition qu’ils ne soient utilisés que, et uniquement pour cela.

Aucun commentaire:

Enregistrer un commentaire