web-dev-qa-db-fra.com

Puis-je utiliser un scanner d'empreintes digitales sur mon site Web?

Je fais une application Web et souhaite avoir une zone sécurisée dans laquelle vous ne pouvez vous connecter que avec votre imprimé des doigts. Mon idée originale était de simplement utiliser un lecteur de code à barres USB et vous numérisez cela, et il diffuse l'ID dans une zone de texte, mais ce n'est pas très sûr. Je souhaite donc utiliser un lecteur d'empreintes digitales USB pour générer un hash pour chaque personne et le stocker dans une zone de texte à la place. Qui va ensuite vérifier cela contre une base de données avec la valeur de la hachage de tout le monde. Est-ce que quelqu'un sait s'il existe un lecteur d'empreintes digitales qui peut le faire, ou d'une manière que je peux facilement intégrer un lecteur dans un site Web?

EDIT: L'idée de ce site Web est que c'est comme un système de connexion (comme si vous pouvez faire de l'horloge et sortir si vous êtes payé toutes les heures) L'idée est que personne ne peut signer quelqu'un d'autre dans et dehors. Si vous utilisez simplement un mot de passe, que quelqu'un peut simplement dire à son ami le mot de passe qui peut le taper. C'est pourquoi j'ai pensé à une empreinte digitale, ou quelque chose de similaire ... je suis ouvert à d'autres suggestions

Aussi, j'utilise php

Edit 2: L'idée de base, est que je dois trouver un moyen de prouver que quelqu'un était là en vérifiant. Je ne veux pas utiliser de mots de passe, car alors quelqu'un peut simplement dire à quelqu'un d'autre leur mot de passe de taper. Tout autre suggestions? Ce n'est pas obligé d'être des empreintes digitales.

22
Bill

Vous ne pouvez pas faire ce que vous voulez, exactement.

Empreintes digitales jamais Exactement Match. Même si vous analysez votre propre index droit deux fois de suite, les scans ne seront pas les mêmes. Donc, "hachage l'empreinte digitale" ne fonctionnera pas - deux hachages du même doigt seraient indiscernables de deux hachages de deux doigts différents (avec un bon hachage cryptographiquement fort).

Les lecteurs d'empreintes digitales fonctionnent en stockant des clés à bord et en laissant cette clé si et seulement si l'empreinte digitale donnée est suffisamment proche de ce qu'elles attendent. L'empreinte digitale elle-même n'est pas utilisée pour obtenir un accès direct à rien en dehors du lecteur.

L'envoi de l'empreinte digitale vue par le lecteur sur le réseau n'est pas acceptable - les gens sont nerveux de donner leurs empreintes à la police. Vous pensez qu'ils vont bien vous donner?

Aussi pas acceptable, le lecteur dit "le doigt 2 est ok". Cela pourrait être facilement spoofé.

Au lieu de cela, demandez à votre utilisateur d'utiliser des certificats clients X.509 (SSL) pour accéder à votre site. Ils peuvent, s'ils le souhaitent, contrôlent l'accès à leur clé privée via le lecteur d'empreintes digitales.

EDIT: Mise à jour de cette réponse. Il y a maintenant en 2014, une norme de l'Alliance Fido appelée "UAF" qui permet aux sites d'utiliser l'authentification des empreintes digitales de manière à fonctionner sur différents sites. La rumeur a-t-elle PayPal va commencer à l'utiliser bientôt.

15
Borealid

La biométrie pour l'authentification à distance est jamais Secure. Vous ne pouvez pas savoir si un vrai doigt avec cette empreinte digitale est dans un lecteur ou si l'utilisateur vous envoie uniquement une image. Donc, une empreinte digitale devient simplement un mot de passe que l'utilisateur ne peut jamais modifier, ce qui correspond à chaque service que vous vous connectez et qui reste sur chaque objet l'utilisateur touche.

La biométrie ne peut fonctionner que pour l'authentification locale où vous faites confiance au lecteur à ne pas être piraté (i.e. Vous avez un contrôle physique sur le lecteur) et le lecteur peut distinguer un vrai doigt/œil/... d'un faux. Lequel le plus ne peut pas.

Il est possible de créer un hasch à sens unique d'une impression de doigts. Vous devez d'abord extraire un certain nombre d'observables comme vous pourriez faire pour un match flou. Mais comme vous avez besoin d'une correspondance exacte pour un hachage, vous devez lancer des codes d'erreur aux valeurs que vous avez extraites, ce qui peut alors corriger les différences mineures de chaque mesure. Ce n'est pas facile à coder et ne résout pas les problèmes fondamentaux énumérés ci-dessus, mais cela devrait être possible.

4
CodesInChaos

Vous souhaitez donc utiliser un mécanisme d'authentification local pour authentifier une ressource distante? Il existe de nombreux problèmes pour suggérer que cela ne serait pas un choix intelligent. E.G. Comment l'application Web connaît-elle que le hachage appartient à l'utilisateur d'origine et non à une personne qui a un duplicata?

Ce que je suggérerais à la place, c'est d'aller la route des banques il y a plusieurs années lorsqu'ils avaient des lecteurs SmartCard envoyés aux clients de la carte de crédit. Utilisez le scanner d'empreintes digitales pour stocker une copie locale du nom de connexion de l'utilisateur, nécessitant une deuxième forme d'authentification telle qu'un mot de passe.

1
Cahit

C'est tellement faux. Pourquoi ne pouvez-vous pas crypter une empreinte digitale? Votre maître est stocké crypté, vous envoyez un chiffre crypté sur le serveur. Le logiciel du serveur n'a pas chiffré à la fois et fait la comparaison. Simple. Vos solutions "expert" sont des faux.

1
Doug Wolfgram