La sortie d’un iPhone sans capteur d’empreintes digitales a suscité quelques discussions sur l’utilisation des empreintes digitales pour l’authentification et la sécurité du stockage des données. C'est génial. Même si vous n'êtes pas préoccupé par la façon dont cela se fait, vous avez besoin de beaucoup d'autres personnes pour que ce soit fait de manière à ne pas vous inquiéter!
Pour commencer, Apple utilise une solution similaire et si vous possédez un ancien modèle doté d'un capteur d'empreintes digitales, vous pouvez l'utiliser en toute sécurité comme avant. Il en va de même pour les téléphones Samsung plus anciens qui ont lancé une version antérieure à Marshmallow et qui utilisent les propres méthodes de Samsung.
La façon dont Google stocke vos données d’empreintes digitales est la méthode la plus sécurisée possible avec les technologies actuelles. Il est également fascinant de voir à quel point la vue d'ensemble de l'ensemble est simple une fois que vous l'avez examinée. Simple et sécurisé est toujours un combo gagnant.
Le stockage est, par nature, peu sécurisé. C'est la même chose qu'écrire quelque chose sur un post-it et le mettre dans un classeur. Il est là parce qu'il doit être là et la meilleure chose à faire est de contrôler qui y a accès. Pour un classeur, vous utilisez un verrou et pour votre téléphone, un cryptage. Pour vos données d'empreinte digitale, les choses vont encore plus loin: un environnement d'exécution de confiance (TEE).
Un TEE est une zone séparée et isolée du matériel du téléphone. Un TEE peut utiliser son propre processeur et sa propre mémoire ou une instance virtualisée sur le processeur principal. Dans les deux cas, le TEE est entièrement isolé et protégé à l'aide d'une mémoire protégée par du matériel et d'une protection d'entrée / sortie. La seule façon pour vous d'entrer est que si le TEE vous laisse entrer, et il ne le fera jamais. Même si le téléphone est enraciné ou que le chargeur de démarrage est déverrouillé, le TEE est séparé et toujours intact.
Un processeur séparé doté de sa propre mémoire et de son système d'exploitation permet d'analyser et de stocker vos données d'empreinte digitale.
Google utilise ce qu'ils appellent Trusty TEE pour gérer cela. Un système d'exploitation très petit et efficace, nommé de manière appropriée Trusty OS, fonctionne sur le matériel TEE et les pilotes du noyau lui permettent de communiquer avec le système. Il existe des bibliothèques Android (vous l'avez deviné: l'API Trusty) que les développeurs peuvent utiliser pour pouvoir demander en quoi consiste une question à un oui ou à un non au TEE. Les données d'empreintes digitales ne sont pas simplement stockées dans le TEE. Des éléments tels que les clés DRM et les clés de chiffrement du chargeur de démarrage du fabricant résident également dans TEE et fonctionnent de la même manière que vos données d'empreintes digitales. Indiquez si les données qui lui sont présentées par une application correspondent aux bonnes données connues qu'elle stocke.
Les autres fabricants peuvent utiliser Trusty OS ou utiliser un autre système. Tant que tous les critères sont remplis (énumérés ci-dessous) et que le TEE est isolé, il respectera les normes de sécurité requises pour utiliser Pixel Imprint (anciennement Nexus Imprint).
Diagramme de bloc ARM TrustZone TEE.Lorsque vous enregistrez une empreinte digitale sur votre téléphone Android, le capteur saisit les données de l'analyse. Trusty OS analyse ces données à l'intérieur du TEE, puis crée deux éléments: un ensemble de données de validation et un modèle d'empreinte digitale crypté. Cela semble être des données indésirables à tout sauf le TEE qui a également la clé pour déchiffrer ces données indésirables. Ce modèle d'empreinte digitale crypté est stocké dans un conteneur crypté sur le TEE ou sur la mémoire cryptée de votre téléphone. Trois couches de cryptage signifient qu'il est presque impossible d'obtenir les données, et même si cela est inutile, il est inutile de les déchiffrer.
Android requiert que vos données d’empreintes digitales soient sécurisées avec une clé unique et vous ne pouvez pas les transférer sur un autre téléphone ni les réutiliser pour un autre utilisateur.
Les données de validation sont stockées dans le TEE. Lorsque vous placez votre doigt sur le scanner pour essayer de faire quelque chose, le scanner crée un profil de données. Via l’API Trusty, l’application associée demande au noyau de demander au TEE s’il est correct. La TEE vérifie les données de validation stockées à l'aide de son processeur et de sa mémoire distincts. Si suffisamment de données correspondent, elle répond par l'affirmative. S'il n'y a pas assez de données correspondantes, le message est non. Cette réponse positive ou négative est renvoyée au noyau sous forme de jeton logiciel que l'API peut lire pour voir le résultat.
Bien que le TEE utilise un système d’exploitation et un système d’exploitation autonomes pour rester sécurisé, le modèle d’empreintes digitales utilise un cryptage logiciel. Il doit être signé par une clé très spécifique pour être valide. Cette clé est créée à l'aide d'informations spécifiques à l'appareil, d'informations spécifiques à l'utilisateur et d'informations spécifiques à l'heure. En d'autres termes, si vous supprimez un utilisateur, changez de périphérique ou tentez de réenregistrer une empreinte digitale (le système peut indiquer si vous écrasez une empreinte digitale existante), la clé n'est plus reconnue et ne peut plus être déchiffrée. modèle.
Les règles de base que chaque entreprise fabriquant des téléphones Android avec un capteur d’empreintes digitales doivent suivre:
- Toutes les analyses d'empreintes digitales doivent être effectuées à l'intérieur du TEE
- Toutes les données associées à une empreinte digitale doivent être stockées dans le TEE ou dans une mémoire sécurisée (mémoire que l'UC principale ne peut même pas voir)
- Les données de profil d'empreintes digitales doivent être auto-cryptées, même si elles sont stockées dans le stockage crypté du téléphone.
- La suppression d'un compte d'utilisateur doit également effacer de manière sécurisée toutes les données associées aux empreintes digitales de cet utilisateur.
- Les profils d’empreintes digitaux stockés ne doivent être visibles pour aucune application, processus ou utilisateur, y compris l’utilisateur root.
- Les données d'empreintes digitales, de quelque type que ce soit, ne doivent pas être sauvegardées sur une autre source, y compris le cloud, votre ordinateur ou toute application.
- L'authentification d'empreinte digitale doit être utilisée par le processus qui l'a demandée (pas de partage des données d'empreinte digitale, même la réponse oui ou non pour voir si elle était correcte)
Lorsque vous avez défini quelques spécifications standard claires, il n’est pas difficile de les respecter. C’est ce qui garantit que, quel que soit le téléphone Android sur lequel vous utilisez vos données d’empreintes digitales, il sera stocké en toute sécurité et qu’aucun autre processus système ou application ne pourra y accéder. À mesure que la cryptographie évolue, en particulier le chiffrement sauvegardé sur le matériel, cette méthode de protection de vos données d'empreintes digitales le sera également. Il sera intéressant de revenir sur le lancement d'Android Z et de voir jusqu'où nous en sommes.