Sécuriser les dispositifs IoT basés sur microcontrôleur grâce à l'authentification des empreintes digitales
Avec la contribution de Rédacteurs nord-américains de DigiKey
2019-06-06
Les concepteurs connaissent une pression croissante quant à la sécurité de leur produit ou système, surtout dans le cas d'une connexion à l'Internet des objets (IoT). Des piratages très médiatisés ont démontré la vulnérabilité des mots de passe et la facilité avec laquelle les codes PIN peuvent être copiés et les badges NFC (communication en champ proche) peuvent être volés. Les concepteurs doivent investir davantage sur la sécurité, tout en limitant les coûts et les délais de conception. L'identification des empreintes digitales est une solution pour atteindre ces deux objectifs.
Cependant, l'implémentation de la sécurité grâce aux empreintes digitales a toujours été un défi. Les détails techniques de la conception intégrale d'un système d'analyse des empreintes digitales avec un microcontrôleur ou un processeur de signaux numériques (DSP) incluant un micrologiciel d'identification des empreintes digitales, la mise en forme et le traitement des données et les communications hôtes peuvent s'avérer complexes et impliquer une courbe d'apprentissage non négligeable.
Heureusement, il existe désormais des outils matériels et logiciels prêts à l'emploi et capables de prendre en charge la reconnaissance d'empreintes digitales. Cet article explique les principes de base de la reconnaissance des empreintes digitales avant de présenter le SEN0188, une unité autonome d'enregistrement et de vérification des empreintes digitales de DFRobot capable de communiquer avec n'importe quel microcontrôleur hôte doté d'une interface à émetteur-récepteur universel asynchrone (UART).
L'article explique ensuite comment utiliser le SEN0188 pour ajouter une sécurité par identification d'empreintes digitales dans un système utilisant un réseau IoT afin de renforcer sa protection contre le piratage et les attaques physiques.
Principes de base de l'identification des empreintes digitales
Les empreintes digitales sont une représentation des crêtes papillaires situées sur les doigts et le pouce de chaque main et qui facilitent la saisie d'objets. Résultant d'une part de l'ADN et d'autre part d'un processus aléatoire, les dessins des empreintes digitales sont propres à un individu en particulier. Les chances que deux personnes aient les mêmes empreintes digitales sont extrêmement faibles. Même les empreintes digitales de vrais jumeaux sont différentes. Par conséquent, l'identification des empreintes digitales est une excellente méthode de détection pour les systèmes de haute sécurité.
Les systèmes d'identification d'empreintes digitales sont divisés en deux opérations : enregistrement et vérification. L'enregistrement d'une empreinte digitale est un processus au cours duquel une empreinte digitale intacte est identifiée et stockée pour une utilisation ultérieure. L'empreinte digitale est scannée une ou plusieurs fois par un appareil spécialisé, puis numérisée. L'empreinte digitale numérisée est ensuite analysée pour vérifier sa validité. Si l'empreinte digitale est valide, elle est stockée dans une mémoire non volatile, comme une mémoire Flash ou EEPROM, avec les informations d'identification personnelle de l'individu (par exemple, son numéro de carte d'identité, son nom et son numéro de badge). Si l'empreinte digitale n'est pas valide, il faut scanner à nouveau le doigt.
La vérification d'une empreinte digitale est un processus au cours duquel une empreinte digitale intacte est scannée pour la comparer aux empreintes digitales numérisées stockées dans la mémoire non volatile. Le système d'analyse des empreintes digitales indique ensuite à l'hôte si l'empreinte digitale scannée correspond à une empreinte valide stockée dans la mémoire ou s'il n'y a aucune correspondance.
Sécurité d'accès dans le cadre de l'IoT
L'IoT relie de nombreux systèmes qui fonctionnaient auparavant de manière indépendante. Certains de ces systèmes nécessitent une sécurité moyenne, comme les écoles et les entreprises. Cependant, les intrusions illégales dans certains systèmes critiques comme les usines de traitement de l'eau et les réseaux électriques peuvent avoir des effets dévastateurs et nécessitent donc une sécurité renforcée. Pour ces systèmes, les développeurs recherchent constamment de meilleures solutions pour assurer la sécurité à un coût minimal, étant donné que de nombreux dispositifs IoT sont eux-mêmes abordables par nature. Dans ces cas-là, l'identification des empreintes digitales peut facilement s'ajouter aux badges de sécurité.
L'avantage de l'IoT dans ces réseaux repose sur la possibilité de transmettre la notification des résultats d'analyse de l'empreinte digitale via le réseau. Si un accès non autorisé est détecté, une alarme peut être déclenchée. Dans les cas extrêmes, le réseau IoT peut aussi bloquer tous les systèmes et même appeler les autorités.
L'enregistrement des empreintes digitales pour l'identification de sécurité doit être effectué de préférence en présence d'un technicien ou d'un professionnel de la sécurité afin que tout soit fait en bonne et due forme. Le scanner et le doigt doivent être propres. Le technicien doit vérifier l'identité de l'individu dont les empreintes sont scannées. Une fois l'enregistrement effectué, les éventuelles informations supplémentaires (comme le nom de l'individu ou son numéro d'employé) peuvent être ajoutées par le professionnel de la sécurité.
En raison des détails techniques impliqués dans la conception intégrale d'un système d'analyse d'empreintes digitales, son implémentation est rédhibitoire pour de nombreux concepteurs ayant un budget limité. Désormais, des solutions matérielles prêtes à l'emploi comme le capteur d'empreintes digitales SEN0188 de DFRobot, un appareil autonome d'enregistrement et de vérification des empreintes digitales, peuvent prendre en charge la reconnaissance des empreintes digitales (Figure 1).
Figure 1 : Le capteur d'empreintes digitales SEN0188 de DFRobot contient tous les outils matériels et micrologiciels nécessaires pour enregistrer et vérifier les empreintes digitales. Il communique avec un microcontrôleur via une interface UART. (Source de l'image : DFRobot)
Le SEN0188 peut fonctionner de 3,8 V à 7,0 V, et consomme 130 mA maximum. Il offre une vaste plage de températures de fonctionnement de -20°C à +60°C et peut résister à une humidité relative atteignant 80 %, ce qui permet de l'utiliser dans de nombreux environnements extérieurs.
Examinons la Figure 1 : un utilisateur place son doigt sur le capteur optique d'empreintes digitales (à gauche). Il faut alors moins d'une seconde pour capturer l'image de l'empreinte digitale à enregistrer ou à vérifier. Chaque empreinte digitale est stockée dans une mémoire Flash interne en tant que fichier modèle de 512 octets. La mémoire Flash interne du SEN0188 peut stocker jusqu'à 1000 empreintes digitales.
L'UART du SEN0188 est accessible sur la face inférieure du capteur (Figure 2).
Figure 2 : Les connexions UART se trouvent sur la face inférieure du capteur d'empreintes digitales SEN0188 de DFRobot. (Source de l'image : DFRobot)
Au démarrage, le débit par défaut du SEN0188 est de 57 600 bps. Il peut être ajusté de 9600 bps à 115 200 bps. La connexion UART utilise les signaux suivants :
|
Tableau 1 : Le brochage du SEN0188 utilise une connexion UART asynchrone pour communiquer avec l'hôte. (Source du tableau : DFRobot)
L'interface UART peut également se connecter au logiciel de DFRobot sur un PC ou un ordinateur portable pour faciliter le développement d'un système d'empreintes digitales, y compris le débogage de l'enregistrement et du micrologiciel de vérification.
Utilisation du SEN0188 de DFRobot dans un système avec microcontrôleur
Pour un système avec microcontrôleur autonome, le SEN0188 doit communiquer avec une carte dotée d'un microcontrôleur suffisamment puissant et d'un indicateur visuel du statut de l'empreinte digitale placée sur le capteur. Le kit de découverte STM32F7308-DK de STMicroelectronics présente toutes les fonctionnalités nécessaires d'un système d'identification d'empreintes digitales autonome. Il utilise un puissant microcontrôleur STM32F730I8K6, basé sur un cœur Arm® Cortex®-M7. La carte est dotée d'un oscillateur de 25 MHz pour l'horloge haute fréquence et d'un oscillateur de 32,768 kHz pour l'horloge basse fréquence. Elle est soutenue par une mémoire Flash programme intégrée de 64 ko, une mémoire Flash externe supplémentaire de 64 Mo et une SRAM système de 256 ko.
Pour la prise en charge de périphériques et les communications, la carte inclut plusieurs interfaces série, notamment trois interfaces I2C et cinq interfaces SPI. Elle comprend également quatre UART/USART qui lui permettent de communiquer facilement avec le SEN0188. Avec une alimentation de 3,6 V, le microcontrôleur STM32F730I8K6 est compatible avec l'interface de niveau logique TTL du capteur d'empreintes digitales de DFRobot.
La carte de découverte est équipée d'une carte fille compatible Arduino™ (Figure 3). Si cette carte peut être utile pendant le développement, elle n'est pas nécessaire lors de l'identification d'empreintes digitales et peut être débranchée de la carte principale.
Figure 3 : La carte de découverte STM32F7308-DK de STMicroelectronics présente toutes les fonctionnalités nécessaires pour un système d'identification d'empreintes digitales autonome. La carte reliée en haut à gauche prend en charge les cartes filles Arduino, tandis que le connecteur ESP-01 en bas à droite prend en charge n'importe quelle carte ESP8266 compatible. (Source de l'image : STMicroelectronics)
La carte inclut également un écran LCD TFT 240 x 240 pouvant fournir une indication visuelle de la validité ou de la non-validité de l'empreinte digitale.
Pour la connexion au réseau Wi-Fi, le kit de découverte STM32F7308-DK inclut un connecteur compatible avec les cartes Wi-Fi ESP8266 standard. Par exemple, le WRL-13678 est une carte compatible ESP8266 de SparkFun Electronics (Figure 4).
Figure 4 : Le module WRL-13678 de SparkFun Electronics est une carte compatible ESP8266 dotée d'une embase ESP-01. Il se branche sur la carte de découverte de STMicroelectronics pour fournir un accès Wi-Fi simplifié. (Source de l'image : SparkFun Electronics)
La carte se branche sur le connecteur ESP-01 en bas à droite de la carte de découverte illustrée à la Figure 3. Le WRL-13678 possède sa propre antenne embarquée et permet à la carte de découverte de se connecter facilement à un réseau Wi-Fi de 2,4 GHz.
Dans un système de sécurité IoT relié au réseau Wi-Fi, les accès sécurisés ou les refus d'accès peuvent être transmis à un nœud IoT. Cela peut s'avérer utile pour activer l'accès à d'autres zones ou systèmes hautement sécurisés. Par exemple, si une demande d'accès à une zone hautement sécurisée d'un bâtiment est envoyée, mais qu'aucun individu autorisé n'a été enregistré ni signalé par le scanner d'empreintes digitales à l'une des entrées, alors le système peut identifier cette tentative comme étant une violation de sécurité potentielle et ainsi prendre les mesures nécessaires.
Dans les bâtiments dotés d'un tel niveau de sécurité, une vérification de l'identité des personnes sortant du bâtiment peut également être effectuée. Cela fournit non seulement un journal de toutes les entrées et sorties, mais permet également de bloquer le personnel non autorisé à l'intérieur du bâtiment pendant que les professionnels de la sécurité sont avertis.
Implémentation de la sécurité grâce aux empreintes digitales
Le capteur SEN0188 communique avec la carte de découverte hôte de STMicroelectronics via l'interface UART à l'aide d'un simple jeu de commandes. Il existe en tout 22 commandes, notamment pour l'enregistrement, la vérification, la suppression des empreintes digitales, la recherche, la lecture et l'écriture directe sur la mémoire Flash interne, la lecture du statut, ainsi que le paramétrage de la sécurité du capteur. Le capteur peut également récupérer l'image bitmap stockée de n'importe quelle empreinte digitale et la transmettre à l'hôte, et la carte de découverte peut l'afficher sur son écran LCD TFT.
L'enregistrement des empreintes digitales peut être activé au niveau de la borne d'identification des empreintes digitales à l'aide d'un code PIN ou d'un mot de passe. Cependant, il est plus sûr de l'activer en transmettant une commande au point d'extrémité IoT de la carte de découverte à partir d'un emplacement réseau, comme un poste de surveillance de sécurité. Un dispositif mobile comme un téléphone ou une tablette peut également être utilisé pour autoriser l'enregistrement. L'activation de l'enregistrement peut elle aussi être vérifiée sur le dispositif mobile.
La zone du capteur optique d'empreintes digitales du SEN0188 inclut un rétroéclairage LED qui peut facilement être allumé et éteint par l'hôte à l'aide des commandes OpenLED et CloseLED. Cela peut être utile dans un environnement sécurisé pour éclairer le capteur d'empreintes digitales uniquement lorsque le système est prêt à lire une empreinte. Le rétroéclairage peut être éteint pendant un événement de sécurité pour indiquer que l'accès est bloqué à cet instant, même pour le personnel autorisé.
La structure UART par défaut du SEN0188 utilise 1 bit de départ, 8 bits de données et 1 bit d'arrêt. Le bit le moins significatif (LSB) des données est transmis en premier. Au démarrage, il faut 300 ms au SEN0188 pour s'initialiser et exécuter un autotest. Il transmet ensuite un octet 55h à l'hôte pour indiquer qu'il est prêt. L'hôte peut également envoyer une commande GetEcho au capteur pour demander le code de confirmation 55h. Si l'hôte ne reçoit pas cet octet, cela peut indiquer un dysfonctionnement du SEN0188, une interruption de la communication entre le SEN0188 et l'hôte, ou l'absence d'alimentation au niveau du SEN0188.
Le SEN0188 est conçu pour fournir un environnement sécurisé pour l'authentification des empreintes digitales et il offre de nombreuses fonctionnalités de sécurité, notamment une protection par mot de passe. Le mot de passe de quatre octets par défaut défini en usine est 00000000h et doit être modifié avant la mise en place du système sur le terrain. Le mot de passe est stocké dans la mémoire Flash interne du capteur à l'aide de la commande de configuration de mot de passe du capteur SetPwd.
Pour plus de sécurité, le jeu de commandes du capteur n'inclut pas de commande de lecture du mot de passe. En cas de perte du mot de passe du capteur, le capteur SEN0188 devient inutilisable. Aucune réinitialisation matérielle ou logicielle ne permet de récupérer le capteur ou les empreintes digitales qui y sont stockées.
Le capteur inclut également une adresse de quatre octets par défaut FFFFFFFFh qui est stockée dans la mémoire Flash interne et qui peut être modifiée à l'aide de la commande SetAddr.
Toutes les opérations d'authentification et de stockage d'empreintes sont exécutées en interne dans le capteur. Cela permet d'empêcher la falsification des empreintes digitales stockées ou du processus de vérification.
Avant la première utilisation, une mesure de sécurité judicieuse consiste à supprimer toutes les empreintes digitales stockées dans le scanner d'empreintes. Cette opération est prise en charge par la commande Empty, qui permet de supprimer tous les modèles d'empreintes digitales stockées dans la mémoire Flash interne du capteur.
Conclusion
La sécurité des accès est une application de plus en plus importante pour les systèmes embarqués et IoT, mais elle doit être correctement réalisée en équilibrant les coûts, la simplicité et l'efficacité. Comme indiqué ici, le capteur d'empreintes digitales SEN0188 de DFRobot permet aux concepteurs de rapidement prototyper et développer un système permettant de sécuriser les accès aux zones sensibles. Avec le kit de découverte STM32F7308-DK doté d'un écran LCD TFT et la carte Wi-Fi WRL-13678 de SparkFun Electronics, il est possible de développer un système de sécurité simple, fiable et facile à utiliser.
Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.


