Chinese (People's Republic of China)  English  Français


Supinfo-Projects.com
Tous les projets des élèves ingénieurs de Supinfo



Projets
  Dernier Projet
  Les plus populaires
  Tous les Projets

2 Visiteurs
3168 Projets


My Supinfo-Projects

   Connectez-vous
   Créez un Compte


Synopsis

   846 Visites
   Note INTERNET : 13.3
    (6 Votants)
   0 Commentaires

   Lire l'article

Evaluez cet article

20
18
16
14
12
10
8
6
4
2
0


Commentez cet article

Auteur :

Email :

Votre commentaire :



 
2004 - Note de Synthèse Stage
Solution de contrôle d'accès
[15 mn de lecture - paru le 11/5/2003 - Public : Débutant]

Auteur

divoux_pPhilippe DIVOUX
Elève-Ingénieur Supinfo Paris
Promotion SUPINFO 2006

   Lui écrire
   Tous les projets de cet auteur
   Le mini-CV de cet auteur

 

5. Système d’authentification du client sous Windows pocket pc 2002

5.1. Organisation du développement

Le but est de développer un moyen de faire du contrôle d’accès embarqué en mettant au point un logiciel. Ce logiciel permet de vérifier si une personne est autorisée à accéder à un lieu par exemple.

Nous devions développer ce logiciel pour un PDA sans limite de temps ou d’argent. Nous avons développé pour un HP5450 (empreinte digitale, wireless 802.11b…), ayant pour système d’exploitation Pocket PC2002. Le choix se porta sur ce modèle pour la simple et bonne raison qu’il comportait un périphérique d’authentification biométrique : le lecteur d’empreinte digitale.

         Création du programme : récupération de l’empreinte

Avant toute chose, nous nous devons de savoir quelques petites choses sur les implémentations de périphériques Biométriques. Un consortium (BioAPI) s’est crée pour mettre en place les spécifications relatives à la biométrie et les moyens de stockage de données biométriques.

Ils ont mis en place le « Biometric Identification Record » (BIR) pour récupérer n’importe données biométriques venant d’une application : incluant des données brutes, des données intermédiaires prêt pour la vérification ou l’identification. Voici la structure d’un BIR :

 

 

Pour utiliser le périphérique d’acquisition d’empreinte digital il nous faut tout d’abord initialiser le périphérique avec la fonction:

BioAPI BioAPI_Init(const BioAPI_Version *Version, uint32 Reserved1,

const void * Reserved2,

uint32 *Reserved3,

const void * Reserved4);

Versionétant une variable de type BioAPI_Version.

Les variables Reservedx sont des valeurs d’entrées réservées qui sont à 0 ou NULL.

Puis nous voulions essayer de récupérer une empreinte et de l’afficher. Pour cela nous avons initialisé le périphérique, puis avons appelé la fonction :

BioAPI BioAPI_Capture(BioAPI_HANDLE ModuleHandle,

BioAPI_BIR_PURPOSE Purpose,

BioAPI_BIR_HANDLE_PTR CapturedBIR, BioAPI_BIR_HANDLE_PTR AuditData,

sint32 Timeout

);

ModuleHandle est mis à 0 par défaut.

Purposeindique le but de la saisie de données biométrique. (Dans notre cas ça sera BioAPI_PURPOSE_ENROLLpour la capture de l’empreinte)

CapturedBIRest une structure dans laquelle les données seront utilisées pour une identification ou une vérification.

AuditDataest structure dans laquelle les données serviront pour d’autres choses. (Affichage de l’empreinte par exemple)

Timeout, comme son nom l’indique, spécifie le temps que le périphérique doit attendre avant d’arrêter l’acquisition

En ce qui concerne l’affichage, il faut rajouter à notre fenêtre une frame. Puis créer une fonction qui va appliquer un objet CPaintDC à notre fenêtre, et qui lui affichera l’empreinte en question.

Jusque là ce que nous avons fait est de récupérer l’empreinte puis la stocker dans un fichier binaire grâce à la fonction fopen en mode binaire et la fonction write qui nous permet d’écrire dans le fichier.

Puis ce que nous avons fait, est de comparer une empreinte stockée sur le disque dur du PDA et une empreinte acquise par le périphérique pour pouvoir dire si une personne est enregistrée ou pas. Pour ce faire, nous lançons une acquisition de l’empreinte avec la fonction BioAPI_Capture, récupérons les données dans le fichier de stockage, et appelons la fonction

BioAPI BioAPI_VerifyMatch

(BioAPI_HANDLE ModuleHandle,

const BioAPI_FAR *MaxFARRequested,

const BioAPI_FRR *MaxFRRRequested,

const BioAPI_BOOL *FARPrecedence,

const BioAPI_INPUT_BIR *ProcessedBIR,

const BioAPI_INPUT_BIR *StoredTemplate,

BioAPI_BIR_HANDLE *AdaptedBIR,

BioAPI_BOOL *Result

ModuleHandle est mis à 0 par défaut.

Pour les variables MaxFARRequested, MaxFRRRequested, FARPrecedence sont mis à NULL car les critères FAR et FRR ne sont pas nécessaires.

ProcessedBIRest le BIR à vérifier.

StoredTemplateest le BIR avec lequel le ProcessedBIR sera analysé.

AdaptedBIR est un paramètre qui peut être a NULL si une BIR particulier n’est pas demandé.

Resultest une variable indiquant si les deux empreintes correspondent ou pas.

Pour le moment nous en sommes à un système de contrôle d’accès embarqué, mais ce que nous voulons faire c’est que toute la partie vérification, identification se fasse sur un serveur distant, car la capture et vérification d’empreinte demande beaucoup de ressources matériel ce qui entraîne un temps de réponse un peu long. (De l’ordre de 2-5 secondes)

Gestion des erreurs

Dans la gestion des erreurs, il fallait que nous sachions si l’empreinte acquise était de bonne qualité ou pas pour être traiter. Pour cela il fallait regarder dans l’en-tête du Biometric identification record, dans le champ header puis le champ quality, si la valeur de ce champ était égale à 0,1, ou 2. Nous considérons que si la valeur est 0, la capture n’a pas eu une image de bonne qualité et que la procédure d’acquisition doit être recommencée. Dans les autres cas, 1 et 2, l’image est traitable et nous pouvons par la suite enchaîner sur d’autres fonctions.

Toutes les fonctions de la BioAPI retourne une variable :

       Typedef uint32 BioAPI_Return ;

      #define BioAPI_OK

Dans cette variable, on y stocke le BioAPI_OK, toutes les valeurs d’erreurs des valeurs spécifiques à BSP et retourné par un fournisseur de service de haut niveau, toutes les erreurs concernant le périphériques.

5.2. Problèmes rencontrés

 Le plus gros problème que nous ayons rencontré fut un manque considérable de documentations sur les pocket pc, la programmation embarquée. Problème due à la jeunesse de la technologie (en comparaison avec les ordinateurs de bureau. De plus, nous n’avons pas rencontré autant de personnes qui développent sur PDA que de personnes développant sur un PC. Les seules solutions que nous pourrions fournir : les forums et les newsletters.

La stabilité de l’OS fut et l’est toujours un problème. Car par moment, le système « freeze » et on se retrouve dans l’obligation de rebooter la machine. Rebooter qui peut parfois provoquer un reset et  tout ce qui a été fait est perdu, et il faut recommencer la configuration de la machine. Pour le moment aucune solution trouvé. (Peut-être passer à pocket pc 2003)

 Un des problèmes récurrents sur les forums et même quand on développe : Certaines classes ou fonctions ne sont pas implémenter ou ne le sont que partiellement. Pour ce la, soit on trouve les sources sur Internet ou soit on se met à les coder.



Articles de la même catégorie

 Pages : Top


464 Visites
0 Commentaires
Développement d’un job board
[20 mn de lecture - paru le 11/5/2003 - Public : Débutant]

En savoir plus


544 Visites
0 Commentaires
L'ASP, quelques points essentiels
[20 mn de lecture - paru le 11/5/2003 - Public : Confirmé]

En savoir plus


930 Visites
0 Commentaires
Création de site internet
[10 mn de lecture - paru le 11/5/2003 - Public : Débutant]

En savoir plus

   Tous les Articles


SUPINFO Training Center peut vous proposer une formation ...

   Devenez Ingénieur Système Microsoft en 35 jours avec SUPINFO Training Center
   Devenez Certifiés Cisco en 13 jours avec SUPINFO Training Center
   Devenez Administrateur Système Microsoft avec SUPINFO Training Center
   Devenez Développeur Microsoft .NET en 13 jours avec SUPINFO Training Center



Powered by Campus-Booster Technology
Conditions d'utilisation & Copyright | Respect de la vie privée
© Copyright 1965-2006 Supinfo Paris, Paris Academy of Computer Science
Supinfo, Ecole Supérieure d'Informatique et Paris Academy Of Computer Science are trade marks.
23, rue de Château LANDON - 75010 PARIS - Phone : +33 (0) 153359 700 Fax : +33 (0) 153359 701

Web site autided by :