Le rôle du matériel dans la sécurité de l’IoT

Les appareils connectés à Internet et à d’autres appareils afin de collecter des données sont de plus en plus nombreux. Leur influence sur notre sécurité augmente, tout comme l'importance de la sécurisation des systèmes informatiques, et plus particulièrement les systèmes IoT. Pour un appareil, il est dès lors essentiel de posséder une identité robuste et vérifiable. La confidentialité, l’intégrité et la disponibilité des informations échangées dans un système IoT reposent en effet sur cette identité. L’établissement et la protection de l'identité d’un appareil sont vitaux et le matériel joue un rôle essentiel dans ce contexte.

Gartner, IDC et McKinsey prévoient que de 20 à 50 milliards d’appareils seront connectés à Internet d’ici 2020. La plupart d’entre eux collecteront des données privées et/ou confidentielles et seront en mesure d’accéder directement à d’autres appareils par l’intermédiaire de protocoles Internet. Jusqu’à présent, la sécurité de l’information se focalisait principalement sur la protection des données personnelles et la confidentialité des données commerciales. Toutefois, comme l’explique un document récent, le nombre d’appareils connectés influant directement sur notre sécurité et notre vie quotidienne va exploser : voitures connectées et autonomes, appareils médicaux et infrastructures essentielles comme les compteurs intelligents et les sous-systèmes de réseaux électriques. Des événements récents relatifs à ces systèmes essentiels (des pirates désactivent à distance une jeep sur l’autoroute, alors que son conducteur était présent, les fonctionnalités du véhicule LEAF de Nissan commandées de l’autre bout du monde via des API vulnérables, une équipe de pirates prend les commandes d’un Tesla Model S, un risque de piratage entraîne le rappel de 500.000 pacemakers en raison de craintes pour la survie des patients et une cyberattaque à l’origine d’une coupure de courant en Ukraine) montrent tous que la menace est bien réelle et qu’elle requiert une attention significative.

Sécurité des systèmes IoT

Si l’on suit la trinité courante en matière de sécurité (confidentialité, intégrité et disponibilité, comme l’indique la publication spéciale du NIST « An Introduction to Information Security ») , on peut définir les éléments qui composent la sécurité d’un système IoT. Un système IoT rassemble des appareils connectés qui jouent chacun un rôle précis : collecte de données environnementales via des capteurs et/ou réaction sur l’environnement, sur la base des règles du système. L’intégrité d’un système IoT entier implique donc que ce système ne comprenne que les composants adéquats, sans appareils non autorisés qui échangent des informations avec le système ; seuls les appareils authentiques peuvent en faire partie.

Lorsque l’identité des appareils a été établie, les communications au sein du système peuvent être rendues confidentielles. Les informations ne sont donc échangées qu’entre les appareils prévus (authentifiés), ce qui empêche toute écoute clandestine. La protection de l’intégrité des informations suit également l’authentification, car l’identité d’un appareil authentifié peut servir à signer les informations échangées, de façon à les protéger contre toute modification illicite. Enfin, la disponibilité comprend une résistance à l’acceptation de tentatives de connexions illicites depuis des appareils non authentifiés qui pourraient nuire à leurs performances et à leur aptitude à entamer des communications de bonne foi avec le reste du système IoT.

Identité des appareils

Comme nous l’avons montré, l’identité robuste et vérifiable des appareils est essentielle pour la sécurité IoT. La confidentialité, l’intégrité et la disponibilité des informations échangées dans un système IoT reposent en effet sur cette identité. Comment cette identité des appareils peut-elle donc être établie et prouvée ? 

Dans la communication entre humains et machines, les humains s'identifient souvent sur la machine à l’aide d’un secret partagé : le mot de passe. L’emploi d’un mot de passe présente toutefois un inconvénient : non content de devoir être partagé au préalable, il doit en outre être transmis à chaque fois que l'authentification est effectuée, ce qui le rend vulnérable à une écoute clandestine.
Par conséquent, pour protéger le mot de passe, la machine utilisée par l’humain doit avoir déjà établi une communication approuvée et confidentielle sur la base d’une autre primitive de sécurité. 

Au contraire, les appareils utilisent des méthodes cryptographiques qui prouvent indirectement la connaissance d’un secret : après avoir reçu une entrée, ils effectuent un calcul qui ne peut être fait correctement que s'ils possèdent le secret correct. En pratique, ceci peut être réalisé à l’aide de cryptographie symétrique ou asymétrique. La cryptographie symétrique peut être utilisée si un secret est préalablement partagé entre les parties qui communiquent. Par exemple, un appareil IoT et un hub d’appareils peuvent s’authentifier mutuellement en laissant chaque partie décrypter un message crypté par l’autre (p. ex. à l’aide d’AES). Après avoir établi leurs identités réciproques, ils peuvent continuer à communiquer de façon sécurisée à l'aide du secret partagé. Ils peuvent en outre protéger l'intégrité des messages en les signant (p. ex. à l’aide de HMAC). 

La cryptographie asymétrique ne nécessite pas de partager les secrets au préalable. Au contraire, les parties génèrent une paire de clés publique/privée et publient les clés publiques tout en gardant la clé privée secrète. Les parties de notre exemple, un appareil IoT et un concentrateur, peuvent donc effectuer l'authentification et déterminer la confidentialité et l’intégrité de leurs messages à l’aide d’algorithmes de cryptographie asymétrique (p. ex. ECDSA ou ECDH) sans devoir partager préalablement un secret. 

Protection des secrets

Comme nous l’avons dit, dans le scénario à secret partagé tout comme dans celui à clé publique/privée, il existe une clé secrète qui est étroitement associée à l'appareil et qui doit être protégée. Il s’agit toutefois d’une tâche complexe pour une raison bien précise : la sécurité des appareils connectés est mise en œuvre dans les logiciels. Les choses se compliquent encore à cause du fait que, tout comme le secteur des logiciels de consommation courante par le passé, le secteur IoT est jusqu'à présent animé par une volonté de maximiser la valeur perçue par le client (fonctionnalités) tout en réduisant les coûts et les délais de commercialisation. Bien entendu, ceci amène le secteur IoT à adopter des plates-formes informatiques génériques et économiques capables de faire tourner du code de sécurité ouvert, à usage général et prêt à l’emploi, conçu initialement pour faire face à un modèle de menace tout à fait différent. Ces appareils stockent souvent les clés dans leur espace de stockage permanent (générique), avec leur firmware et leurs données. Si un tel appareil est compromis par l’exploitation d’une vulnérabilité logicielle, les clés secrètes peuvent être aisément extraites à distance. En cas d’attaque physique, son auteur peut détacher le stockage permanent de l'appareil et obtenir les clés secrètes en le lisant directement. 

Les secrets des appareils peuvent être protégés dans les logiciels en employant la cryptographie structurelle, où la mise en œuvre réelle de primitives cryptographiques (comme AES) est obscurcie avec les clés secrètes d’une façon qui rend malaisée l’application de techniques standard d’ingénierie à rebours, comme le désassemblage, pour tenter de récupérer les clés. Toutefois, jusqu’à présent, les déploiements de cryptographie structurelle connus ont tous été vaincus

Avantages des éléments sécurisés

Les éléments sécurisés, parfois baptisés éléments cryptographiques ou « cryptoprocesseurs », sont des composants électroniques (coprocesseurs) conçus spécifiquement pour la génération et le stockage sécurisés des secrets cryptographiques et leur emploi dans les opérations cryptographiques. Des déploiements typiques (p. ex. d’Atmel, Gemalto ou Maxim) comprennent un PRNG (générateur de nombres pseudo-aléatoires) à génération matérielle, un déploiement de fonction de hachage (p. ex. SHA-256), un déploiement de chiffrage symétrique (p. ex. AES), une signature symétrique (HMAC), un échange de clés (ECDH) et une signature asymétrique (ECDSA). 

En outre, les éléments sécurisés sont souvent rendus inviolables, ce qui rend la lecture des secrets difficile par des techniques de rétro-ingénierie silicium, ou conçus de façon à ce que toute intrusion physique soit signalée au reste du système. 

Des éléments sécurisés mis en œuvre correctement comprennent aussi une protection contre la cryptanalyse par canal auxiliaire, comme l’analyse du courant, l’analyse temporelle ou l’analyse d’émanations acoustiques et électromagnétiques qui pourrait, dans le cas contraire, être exploitée afin d’obtenir les clés stockées. 

La durée de vie des secrets cryptographiques d’identité d’appareil à l’aide d’éléments sécurisés est la suivante : lors de la mise en service de l’appareil, l’élément sécurisé génère la clé aléatoire.
Selon qu’on aura opté pour une cryptographie symétrique ou asymétrique, la clé secrète est partagée entre les participants (p. ex. entre l’appareil et le concentrateur IoT) ou ne quitte jamais l’appareil, et c’est sa contrepartie publique qui est partagée. 

Les clés peuvent être révoquées pendant la durée de vie de l'appareil et de nouvelles clés peuvent être générées, de façon à répéter le processus. Les clés secrètes peuvent être dérivées d’une fonction physique inclonable, une « empreinte digitale électronique » de l’appareil qui emploie des imperfections physiques amplifiées, propres à chaque puce fabriquée, pour dériver son identité. 

Parmi les autres avantages du déploiement d’éléments sécurisés dans les concepts IoT, citons une consommation électrique typique basse, un faible courant de veille, leur débit et leurs performances cryptographiques (qui déchargent le processeur/microcontrôleur incorporé dont les ressources sont généralement limitées) et la relative facilité d’intégration dans des designs matériels existants (via une interface SWI ou I²C). 

Limitations des éléments sécurisés

Les éléments sécurisés sont généralement fabriqués de sorte que les primitives cryptographiques, ainsi que leurs paramètres de sécurité, comme la longueur de clé, les vecteurs d'initialisation, les définitions de courbe elliptique et les modes de fonctionnement soient incorporées au design du processeur. Dès lors, si un déploiement précis s’avère non sécurisé, il est difficile de mettre à jour les appareils (à distance) pour corriger le problème.  

Conclusion

L’établissement et la protection de l’identité des appareils sont vitaux pour la sécurité d’un système IoT. Ces opérations impliquent la génération et la protection sécurisées de secrets cryptographiques. Il a été prouvé que des techniques de pointe pour protéger les déploiements de chiffres logiciels à l'aide d’un obscurcissement logiciel (cryptographie structurelle) n’étaient pas sûres. 

L’emploi d’éléments sécurisés étroitement intégrés au matériel et au logiciel de l’appareil fournit une assise de sécurité viable. Il protège les secrets et fournit des garanties au sujet de l’identité de l’appareil, ainsi que de la confidentialité et de l’intégrité des communications, et se montre résistant aux intrusions, qu’il peut rendre apparentes.  

Ce thème vous intéresse ? Sirris possède un vaste savoir-faire et des connaissances approfondies en matière de sécurité IOT. Conctactez-nous pour en savoir plus !

(Source photo : https://www.dreamstime.com/)

Share