web-dev-qa-db-fra.com

Comment stocker / chiffrer l'empreinte digitale?

Le mot de passe de stockage est une évidence: utilisez un hasher de mot de passe. Mais..

Comment stockez-vous des empreintes digitales de manière sécurisée sur votre serveur? Signification que même si votre serveur et toutes les données sont volées, une personne ne peut pas récupérer les empreintes digitales.

D'après ce que je comprends, la photo de votre empreinte digitale que le scanner obtient est toujours différent d'une fois à une autre et de vérifier que vous êtes propriétaire, ils vérifient simplement que l'empreinte digitale correspond à un pourcentage suffisant. Donc, il n'est pas possible de faire un HASH de mot de passe direct de l'image que le scanner vous donne et le comparez à celui de la base de données.

Y a-t-il une sorte de pré-traitement pour extraire certaines données qui changent "jamais" même si l'ensemble change un peu chaque fois que vous numérisez votre doigt?

Lien associé: http://www.extremetech.com/mobile/211985-HTC-Cautrice-storing-fingerprint-Data-in-uncrypted-plain-text

11
Gudradain

Vous ne pouvez pas stocker de manière sécurisée d'un modèle d'empreintes digitales sur un serveur. Les modèles sont soumis à une attaque. Les tentatives de résolution de ces attaques n'ont pas trouvé de balance similaire à celles des mots de passe. Le premier laboratoire de recherche essayant de changer, c'est à l'état du Michigan, http://biometrics.ca/secure_biomometrics.html

En outre, si vous lisez des empreintes digitales à distance, vous êtes soumis à des attaques sur le matériel, des attaques de port gommeux, etc. Vous n'avez donc pas la sécurité que vous souhaitez, et la personne étant authentifiée ne peut pas utiliser un authentificateur différent par système.

6
Adam Shostack

En fait, il y a des recherches sur le problème. Nous devrions reconnaître que le fait stocker les informations d'empreintes digitales au client (comme suggéré par d'autres) pourrait ne pas être une solution viable dans des cas spécifiques. Cela peut être correct pour un téléphone portable, mais insuffisant pour une entreprise ou un service distribué.

Il existe des fonctions de hachage (non cryptographiques) qui peuvent créer le même hachage pour une entrée similaire. Il est appelé hachage sensible à la localité (LSH) et largement utilisé dans les algorithmes de recherche. Ces fonctions peuvent "réduire les différences se produisant entre des données similaires avec une probabilité élevée, tandis que les données distantes doivent rester considérablement distantes". Ensuite, vous pouvez essayer de crypto-hachage le LSH pour un résultat tolérant plus d'erreur. Vous pouvez le combiner avec un filtre de floraison tel que décrit dans cet article de cet article que je suggère de lire si vous êtes intéressé par le sujet. Malheureusement, je ne suis au courant d'aucune implémentation existante de la méthode décrite là-bas.

En résumé, la réponse est que vous pouvez le faire avec des méthodes de cryptage à tolérance de pannes (comme ci-dessus), mais si vous n'êtes pas à peu près, vous serez peut-être mieux avec un fournisseur sécurisé dédié séparé pour la conversion digitale-UID (avec un mitrailleuse assis sur elle).

5
goteguru