Utiliser des afficheurs e-papier pour signaler les erreurs fatales et les problèmes de sécurité dans les nœuds IoT stratégiques
Avec la contribution de Rédacteurs nord-américains de DigiKey
2020-08-27
Les nœuds Internet des objets (IoT) et Internet industriel des objets (IIoT) sont utilisés dans des systèmes de plus en plus sécurisés où la sécurité du réseau dans sa globalité est plus importante que les fonctionnalités des différents dispositifs de ce réseau. Cela signifie que si un nœud IoT détecte qu'il a été compromis, ou si une erreur micrologicielle irrécupérable se produit, l'action la plus sûre peut être de mettre le nœud hors tension dès qu'il est pratiquement possible de protéger le nœud et le réseau des conséquences potentiellement dangereuses.
Cependant, une fois que le nœud est mis hors tension, tout le contenu de la mémoire volatile est perdu. Le stockage des données de débogage dans une mémoire non volatile comme une mémoire EEPROM ou Flash prend du temps et consomme de l'énergie, ce qui augmente le risque de dommages potentiels. De plus, le système peut avoir été compromis à un point tel que la lecture des données à la mise sous tension peut ne pas fournir de données de confiance si la séquence de mise sous tension a également été compromise.
Cet article explique comment les afficheurs e-papier (EPD) peuvent être facilement connectés à un nœud IoT ou IIoT pour afficher la dernière erreur connue et fournir une indication visuelle de la raison de l'événement de mise hors tension afin que les techniciens puissent prendre les mesures appropriées. Il présente ensuite des exemples d'afficheurs e-papier de Pervasive Displays et de Display Visions, et explique comment ces afficheurs peuvent être interfacés avec un microcontrôleur et configurés pour fournir des informations de diagnostic tout en consommant peu ou pas d'énergie.
Nœuds IoT et IIoT haute sécurité
Il incombe de plus en plus aux concepteurs de nœuds IoT et IIoT de mettre en place des méthodes de sécurité de plus en plus sophistiquées pour garantir le bon fonctionnement du microcontrôleur hôte. De manière générale, il existe trois types de menaces de sécurité contre lesquelles se prémunir :
- Dysfonctionnement micrologiciel du microcontrôleur
- Données d'entrée non valides provenant des capteurs, des claviers, des périphériques série ou d'autres dispositifs externes
- Action d'un acteur malveillant
Un dysfonctionnement micrologiciel du microcontrôleur peut avoir plusieurs causes : erreurs de codage dans le micrologiciel installé, calculs incorrects entraînant un dysfonctionnement ou, dans des cas extrêmement rares, dysfonctionnement matériel du microcontrôleur. Les micrologiciels bien écrits détectent généralement ce phénomène en supprimant les entrées des sous-routines et des fonctions. Dans les cas extrêmes où le micrologiciel est verrouillé ou en boucle, une temporisation d'horloge de surveillance permet de récupérer le micrologiciel en le vectorisant vers une sous-routine de contrôle des erreurs ou en effectuant une réinitialisation matérielle du microcontrôleur.
Des données d'entrée non valides, par exemple si un capteur externe fonctionne mal ou est altéré, peuvent entraîner des données en dehors de la plage de mesure, qui n'ont peut-être pas été correctement prises en compte dans le code d'application. Par exemple, si le capteur de température ambiante dans une salle de contrôle enregistre incorrectement une température de 120°C, il peut s'agir d'un dysfonctionnement du capteur ou d'une altération intentionnelle. Un programmeur micrologiciel négligent peut ne pas avoir codé pour une température aussi élevée, ce qui peut conduire à un événement trivial tel qu'un enregistrement incorrect des données, à un événement plus grave tel que l'accès à une zone sécurisée par un intrus, ou à un événement critique tel qu'une erreur dans le calcul d'un algorithme de commande pouvant entraîner une défaillance de l'équipement ou des blessures corporelles graves. Les conséquences négatives potentielles sont nombreuses.
Les acteurs malveillants sont différents en ce sens qu'ils peuvent avoir l'intention délibérée de provoquer un dysfonctionnement du nœud IoT. Le dysfonctionnement causé par une tentative de piratage peut être détecté comme une intrusion par les routines de sécurité ; cependant, il peut également prendre la forme d'un dysfonctionnement micrologiciel ou de données d'entrée externes non valides. L'exemple d'une lecture de température ambiante de 120°C peut être causé par un acteur malveillant qui testerait le comportement du micrologiciel à une température aussi élevée dans l'intention de tester une méthode d'intrusion ; par exemple, les portes pourraient être automatiquement déverrouillées si la température ambiante de 120°C était interprétée à tort comme un incendie.
Réagir aux dysfonctionnements micrologiciels
Quelle que soit la source d'erreur, le micrologiciel du microcontrôleur pour les nœuds IoT et IIoT haute sécurité ne doit pas tolérer les erreurs. Toutes les erreurs doivent être codées et verrouillées. Les entrées des sous-routines et des fonctions doivent être nettoyées et toutes les données d'entrée des capteurs doivent être validées. Les horloges de surveillance doivent être programmées avec l'intention de détecter un code verrouillé ou en boucle qui prend trop de temps sur la base d'un temps d'exécution connu.
Lorsqu'un dysfonctionnement micrologiciel est détecté dans un nœud IoT ou IIoT haute sécurité, que le dysfonctionnement soit accidentel ou délibéré, le micrologiciel doit piéger l'événement au plus vite. Les actions communes consistent notamment à tenter de compenser le dysfonctionnement. Pour un capteur défectueux qui est constamment hors de portée, le micrologiciel peut fournir un mode de secours permettant à ce capteur de compenser les données défectueuses en attendant son remplacement. Une routine micrologicielle renvoyant des résultats incorrects peut être réinitialisée. Souvent, un code d'erreur est envoyé sur le réseau pour signaler le problème à l'hôte du réseau.
Toutefois, dans certains nœuds IoT ou IIoT haute sécurité, il existe une catégorie spéciale de dysfonctionnements pour lesquels il ne peut pas ou ne devrait pas y avoir de compensation ou de contre-mesures. Cette catégorie inclut la détection d'altération physique, l'échec de somme de contrôle interne, certaines défaillances d'autotest intégré (BIST) et toute défaillance pouvant être causée par un micrologiciel compromis ou un système piraté. Pour ces situations de haute sécurité, la seule option peut être de mettre le nœud hors tension immédiatement et en toute sécurité. L'hôte du réseau déterminera que le nœud a été mis hors tension lorsqu'il ne répond pas aux demandes du réseau. Si le nœud a été mis hors tension sans envoyer de rapport d'erreur à l'hôte, et si le nœud ignore les commandes du réseau pour redémarrer, cela indique qu'une défaillance fatale s'est produite et qu'un technicien doit être envoyé pour examiner physiquement le nœud afin de déterminer la cause du problème.
Cependant, une fois que le nœud a été mis hors tension, toutes les données volatiles d'état et de mémoire sont immédiatement effacées. Cela rend le diagnostic de la cause de l'arrêt très difficile, voire impossible. Optionnellement, avant de mettre le nœud hors tension, les données de diagnostic peuvent être stockées dans une mémoire non volatile telle qu'une mémoire EEPROM ou Flash. Le problème est que l'écriture dans ces types de mémoire prend du temps pendant lequel le nœud doit rester actif ce qui peut entraîner des dommages supplémentaires.
Diagnostiquer les erreurs fatales avec le papier électronique
Les afficheurs e-papier consomment très peu d'énergie et peuvent être utilisés pour stocker et afficher les informations d'erreur et de diagnostic juste avant de mettre le nœud hors tension. Une fois le nœud mis hors tension, l'afficheur e-papier peut maintenir son image d'affichage sans aucune alimentation pendant des jours ou des semaines. Les informations affichées sur l'écran donnent aux techniciens une indication visuelle de la raison de l'arrêt, leur permettant de décider s'il est sûr de mettre sous tension le nœud IoT ou s'il doit être retiré du réseau pour une analyse détaillée.
Un exemple d'afficheur e-papier adapté à l'affichage d'informations de diagnostic est le module EPD E2271CS091 de Pervasive Displays. Il interagit avec tout microcontrôleur compatible via une interface série SPI et il est doté d'un écran de 2,71 pouces à contraste élevé (Figure 1).
Figure 1 : Le module EPD E2271CS091 est doté d'un écran de 2,71 pouces à contraste élevé avec une résolution de 264 x 176 pixels. Il offre un grand angle de vision et interagit avec tout microcontrôleur compatible via une interface SPI. (Source de l'image : Pervasive Displays)
Le module EPD E2271CS091 utilise un écran TFT à matrice active avec une résolution native de 264 x 176 pixels à 117 points par pouce (ppp). Cela permet à l'écran de contenir beaucoup d'informations pour aider les techniciens dans leurs diagnostics. L'écran anti-reflet offre un grand angle de vision de près de 180°, ce qui permet une visualisation aisée dans des emplacements de montage inhabituels. L'afficheur e-papier nécessite une alimentation de 3,0 volts (V).
Le microcontrôleur hôte envoie des données à l'afficheur e-papier via une interface SPI sur le connecteur ruban à 24 broches de l'afficheur. La communication de données SPI est unidirectionnelle, du microcontrôleur hôte vers l'afficheur e-papier. La seule communication inverse de l'afficheur e-papier vers le microcontrôleur hôte est une broche « device busy » sur le connecteur ruban, ce qui simplifie grandement l'interface et augmente la confiance dans les données de diagnostic affichées.
Si une erreur ou une tentative de piratage est détectée, et si l'erreur est suffisamment grave pour nécessiter l'arrêt du nœud, l'erreur doit d'abord être bloquée par le micrologiciel, l'horloge de surveillance ou une autre méthode. Le contrôle doit ensuite être transféré à la routine d'enregistrement des erreurs qui envoie les données à l'afficheur e-papier. Cette routine d'enregistrement des erreurs doit avoir la plus haute priorité afin d'éviter l'interruption ou la corruption des données. Pour une fiabilité maximale, il est recommandé que la routine d'enregistrement des erreurs soit entièrement autonome, sans appel à des sous-routines ou des fonctions externes. Idéalement, la routine d'enregistrement des erreurs doit résider en mémoire Flash protégée en écriture en permanence pour garantir l'intégrité du code, même après les mises à jour micrologicielles.
Avant que l'afficheur e-papier ne soit mis à jour avec les données d'erreur, le microcontrôleur hôte doit d'abord envoyer une commande de réinitialisation logicielle via l'interface SPI à l'afficheur e-papier pour réinitialiser l'affichage. Il envoie ensuite les informations d'affichage en noir et blanc dans une série de séquences d'octets, où chaque bit d'un octet représente un pixel sur l'afficheur e-papier. Une fois la séquence terminée, la routine d'enregistrement des erreurs peut arrêter le microcontrôleur. Les microcontrôleurs ont différentes façons de s'arrêter, car cela dépend de l'architecture et du fabricant. Dans certaines situations, et pour des raisons de sécurité, le moyen de mise hors tension du microcontrôleur n'est pas documenté, et n'est disponible que sur demande auprès du fabricant. Alternativement, un circuit externe peut être utilisé pour interrompre l'alimentation du microcontrôleur ; cependant, cela augmente la complexité du système et réduit la fiabilité. Il est donc préférable de contrôler l'arrêt du microcontrôleur par micrologiciel.
Pour aider au développement avec l'afficheur e-papier, Pervasive Displays propose le kit d'extension EPD B3000MS034 (Figure 2). Il est doté d'une carte d'extension avec un connecteur pour l'écran EPD à 24 broches, et de connecteurs pour d'autres afficheurs e-papier de Pervasive Displays qui nécessitent des connecteurs à 40 broches et 26 broches. La carte d'extension est compatible avec les kits de développement et d'évaluation LaunchPad de Texas Instruments, mais elle peut également être utilisée avec d'autres kits de développement. Un câble de pontage à 20 broches peut être raccordé au connecteur à 90° à 20 broches, qui, lorsqu'il est soudé à la carte d'extension, permet de contrôler les signaux de commande vers l'afficheur e-papier pendant le développement.
Figure 2 : Le kit d'extension pour le module EPD E2271CS091 de Pervasive Displays inclut un connecteur à 24 broches sur la carte d'extension pour le câble ruban à 24 broches de l'écran. Il comprend également un câble de pontage et un connecteur à 90° à 20 broches. (Source de l'image : Pervasive Displays)
Une autre option EPD est l'EA EPA20-A de Display Visions (Figure 3).
Figure 3 : L'afficheur e-papier EA EPA20-A de Display Visions est un afficheur 172 x 72 qui peut maintenir l'état d'affichage sans alimentation électrique. (Source de l'image : Display Visions)
Cet afficheur e-papier a un affichage en niveaux de gris de 172 x 72 et utilise également une interface SPI pour la communication avec un microcontrôleur hôte. L'afficheur e-papier a une consommation extrêmement faible, ne requiert qu'une seule alimentation de 3,3 V et ne consomme que 40 milliwatts (mW) lors d'un changement d'affichage. L'afficheur e-papier EA EPA20-A de Display Visions peut également maintenir son affichage lorsque aucune alimentation n'est appliquée.
Conclusion
Les nœuds IoT et IIoT haute sécurité doivent parfois être mis hors tension en réponse à une erreur fatale du micrologiciel ou à une menace détectée. Cela peut entraîner la perte de toutes les données volatiles, y compris l'état interne du microcontrôleur hôte. Toutefois, les données d'état et de diagnostic peuvent être envoyées à un afficheur e-papier connecté avant la mise hors tension et rester affichées pendant des jours ou des semaines. Les techniciens disposent ainsi des informations dont ils ont besoin pour déterminer la cause de l'arrêt et pour prendre des précautions futures, si nécessaire, afin de protéger et de sécuriser le nœud et le réseau.
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é.

