Racine de confiance pour l'IoT et les autres tendances de sécurité IoT

Le thème de la sécurité de l'information devient de plus en plus d'actualité chaque année. Le centre de sécurité de l'information occupe la première place dans le classement et le deuxième dans le nombre d'abonnés. Cependant, les documents sont principalement consacrés à diverses technologies de réseau, Web, cloud et autres technologies traditionnellement considérées dans le contexte de la sécurité. Et ne s'appliquent presque pas aux applications intégrées, en particulier avec des ressources limitées. Alors que le nombre de ces derniers est plus que des ordres de grandeur. Dans cet article, nous examinerons certaines des caractéristiques et tendances de la sécurité de l'Internet des objets qui trouvent leur origine dans le modèle de développement et de distribution.


Le développement d'applications embarquées a toujours comporté certaines fonctionnalités, et telles que la plupart des programmeurs "ordinaires" n'y pensent même pas, et le concept d'AQ et le processus de test dans de nombreux cas sont fondamentalement différents de ce qui est généralement compris.

L'un des sujets préférés et régulièrement discutés dans le grand canal informatique du Telegram Embedded Group est «pourquoi personne ne comprend les développeurs embarqués et paye si peu? (dans le contexte des programmeurs "ordinaires") ":) Un

système embarqué est un système qui fonctionnera en étant intégré directement dans l'appareil qu'il contrôle. Quelques photos pour plus de clarté: l'



image de gauche est tirée d'un article de Wikipedia sur les systèmes embarqués, est un exemple d'un grand système complexe. Sur la droite, une photo de l' examen de la maison intelligente de Redmond, tout est beaucoup plus simple et plus compact ici, en fait, l'ensemble de l'appareil est fabriqué sur une seule puce avec une liaison minimale. Il est important que les deux appareils fonctionnent comme des appareils complets (un ordinateur monocarte a toujours besoin d'un boîtier et de certains périphériques).

En règle générale, une entreprise de fabrication produit des appareils finis, qui comprennent principalement du matériel et des logiciels, en règle générale, sont regroupés et ne fonctionnent que sur ce matériel. Presque personne n'aurait l'idée d'acheter un smartphone «nu» sans logiciel, puis de l'installer sur le système d'exploitation et les applications nécessaires, tout devrait fonctionner hors de la boîte. En conséquence, les développeurs effectuent souvent l'ensemble du spectre des tâches pour le développement de périphériques, à la fois logiciels et matériels.

Une autre caractéristique du développement des systèmes embarqués est qu'ils ont presque toujours beaucoup moins de ressources, à la fois en puissance de calcul et en mémoire, en canal de données, ainsi qu'en consommation. La plupart des technologies familières à beaucoup sont impossibles à exécuter sur de tels systèmes, même le système d'exploitation n'est pas partout. Il est nécessaire de s'adapter aux ressources disponibles et d'économiser souvent de manière significative. Cela affecte également la sécurité - de nombreuses normes du Big World ne sont pas prises en charge ou sont prises en charge avec des restrictions.

C est toujours le langage le plus utilisé pour développer des systèmes embarqués. Il présente un certain nombre de lacunes dans l'utilisation de la mémoire qui affectent directement la sécurité. Pour les résoudre, Rust a été développé , il gagne en popularité (en premier lieu de vos langues préféréessur StackOverflow depuis plusieurs années, dépassant même Python et Kotlin, particulièrement populaire ces derniers temps), mais encore loin d'être le leader de l'applicabilité dans l'embarqué en raison des systèmes et bibliothèques pris en charge. Les langages de niveau supérieur sont rares pour les systèmes embarqués et devraient le rester si tôt.

Une caractéristique importante du développement de systèmes embarqués est la limitation des capacités matérielles de la plate-forme et du SDK fournis par le fabricant. Il est tout simplement impossible ou extrêmement coûteux de mettre en œuvre de nombreuses technologies à partir de zéro pour un seul projet. Par conséquent, il est impératif que le fabricant de puces prenne en charge les technologies de sécurité les plus avancées. Jusqu'à récemment, tant d'attention y était portée. Par exemple, si le matériel AES est apparu il y a assez longtemps pour presque tout le monde, alors beaucoup de gens ne savent toujours pas comment prendre en charge TLS / DTLS. La question est de savoir comment y parvenir. J'ai récemment écrit sur le nouveau Nordic Zephyr SDK qui résout ce problème en s'intégrant à un grand projet soutenu par la Linux Foundation. Ceci est une approche. Ci-dessous, nous en considérerons d'autres.

Dans le cadre de la prise en compte de la sécurité des systèmes embarqués, il convient de noter un ensemble d'applications qui répondent aux exigences des normes de sécurité fonctionnelle: médecine, automobile, équipement ferroviaire, automatisation industrielle. Ce sont des applications qui affectent directement la vie et la santé d'une personne, ainsi que des systèmes qui ne peuvent pas être arrêtés (par exemple, un réacteur nucléaire). Ici, tout est clairement réglementé à tous les stades de développement et le potentiel d'échec et l'effet sur le fonctionnement du système dans son ensemble sont pris en compte. Le développement est effectué sur des solutions matérielles et logicielles spécialisées, qui devront également être certifiées à l'avenir. En conséquence, cela s'avère long et coûteux. Par conséquent, ceux qui commencent le développement n'y pensent pas s'il n'y a pas de normes contraignantes.

Nous recommandons une série d'articles sur la sécurité fonctionnelle pour examen .

En plus du problème de développement, il est important de prêter attention aux conditions de fonctionnement des systèmes.

En règle générale, les grandes entreprises, fabricants de services cloud se soucient de la sécurité de leurs services pour plusieurs raisons:

  • Ils participent directement au développement et au soutien du fonctionnement du service
  • Ils ont un contact beaucoup plus étroit entre les développeurs et les ingénieurs de support.
  • L'équipement est directement accessible aux ingénieurs, même dans les nuages
  • De larges canaux de transmission de données et une grande capacité de calcul de l'équipement permettent l'utilisation de systèmes de surveillance et la détection d'une activité anormale

Les appareils de l'Internet des objets fonctionnent exactement à l'opposé:

  • En règle générale, ils sont la propriété du client final et les ingénieurs du client final, des compétences qui, dans la plupart des cas, sont inférieures pour des raisons objectives, sont engagées dans la configuration et le support.
  • Les ressources de chaque appareil sont limitées, tant en termes de performances que de transfert de données. En conséquence, un système de surveillance et de détection d'une activité anormale est pratiquement impossible dans ce cas.

Pour plus de clarté, je vais donner un tableau comparatif. Faites immédiatement une réservation qui:

  • Il existe de nombreuses options de livraison et d'assistance logicielles. Seuls les groupes généraux sont donnés à titre indicatif.
  • Le nombre d'appareils de l'Internet des objets est difficile à estimer avec précision, car tout le monde comprend quelque chose de différent en dessous, et il n'y a pas non plus de bonnes statistiques à leur sujet.

Serveurs et solutions cloud (SaaS et similaires)Appareils utilisateur (PC, smartphones, etc.)Internet des objets
Qui se développe?fournisseur de solution--
/ ?
/?
,
()( )
(Amazon, Google)2019 : ~266 K, ~1.379

En conséquence, il arrive périodiquement que les appareils soient piratés, et rien n'est connu à ce sujet pour des raisons objectives. Malheureusement, cette situation n'est pas rare et peut durer des mois, et parfois des années.

Les hacks de systèmes embarqués les plus célèbres de ces dernières années:

  • Mirai botnet en 2016, travaillant principalement sur les caméscopes. Selon diverses estimations, le nombre d'appareils infectés a dépassé 380 mille . Son successeur Satori en 2018 a déjà capturé 700 mille appareils, se concentrant principalement sur les mineurs de crypto-monnaie.
  • KRACK a lancé le WPA2 Wi-Fi en 2017 (presque tous les appareils Wi-Fi au cours des 15 dernières années) et son héritier Kr00k , avec plus d'un milliard d'appareils en 2019.
  • En 2018, Bleedingbit a frappé les puces BLE de Texas Instruments. Officiellement, seuls quelques modèles de points d'accès utilisant la famille CC26xx ont été affectés et le problème lui-même a été résolu dans la nouvelle version de la pile. Cependant, dans ce cas, il n'est pas tenu compte du fait que ces puces sont utilisées dans un nombre beaucoup plus important d'appareils (le deuxième plus grand producteur de BLE au monde, 16% de 3,9 milliards pour 2018).

La plupart des fabricants de matériel publient des correctifs pour leurs appareils. Cependant, ces corrections doivent encore être appliquées sur les appareils eux-mêmes, ce qui est difficile voire impossible dans certains cas pour les appareils de l'Internet des objets. Par conséquent, une partie importante des appareils reste potentiellement vulnérable. Et ils peuvent ne jamais en savoir plus à cause du manque de contrôle et de l'attention qu'ils méritent à ce sujet.

En conséquence, il est nécessaire d'utiliser des approches fondamentalement différentes pour prévenir les vulnérabilités et éliminer les conséquences pour les appareils Internet des objets. La sécurité doit résider dans la plate-forme elle-même dès le stade de sa conception et être effectuée à toutes les étapes du développement et du fonctionnement du terminal, mais en même temps être simple et peu coûteuse pour une mise en œuvre de masse (au moins en ce qui concerne la sécurité fonctionnelle et le TEE de processeurs puissants).

ARM en 2017 a parlé de la sécurité des systèmes embarqués basés sur CryptoCell et Cortex-M33, cependant, des échantillons en série de puces sur le M33 ne sont apparus que l'année dernière. La technologie présentée est appelée Platform Security Architecture (PSA).


L'essence de l'idée était de séparer les parties critiques du système (clés, droits, firmware) des composants potentiellement piratables, à la fois matériels et logiciels, pour les systèmes où la mise en œuvre complète de TEE est impossible ou difficile. La technologie est principalement axée sur Cortex-M, mais est compatible avec toutes les familles Cortex-A / -R / -M.



Considérez essentiellement 4 étapes de protection des appareils de l'Internet des objets. Considérez-les dans l'ordre où ils surviennent pendant le fonctionnement de l'appareil.

Démarrage sécurisé
  • Il est vérifié que le micrologiciel est authentique, n'a pas été modifié et ne peut pas être rétrogradé.

Mise à jour du micrologiciel sécurisée en direct (Secure FOTA)
  • Seules les mises à jour authentifiées et vérifiées peuvent être téléchargées.
  • ( )

API
  • , .
  • «» API.


  • (MITM)

Pour protéger l'appareil, il est proposé d'identifier / vérifier les données arrivant à chaque étape. Le concept est basé sur l'idée de la racine de confiance (Root-of-Trust, RoT). L'essentiel est qu'un certain identifiant (clé) est cousu dans l'appareil et une procédure matérielle est en cours pour vérifier que la clé est unique à la plate-forme actuelle et au code exécutable. À l'avenir, toutes les bibliothèques importantes utiliseront RoT pour leur propre travail.


En règle générale, cela se produit en 3 étapes principales:

  1. Fournir la confiance: inclusion de la racine de confiance au stade de la production dans la structure de la puce L'
    identifiant immuable de la puce et la racine matérielle de la confiance offrent une sécurité de base et une identification unique de l'appareil.
  2. :
    ,
  3. :
    , 2 .

La solution la plus courante sur le marché est TrustZone d'ARM. Beaucoup a été écrit sur sa mise en œuvre sur Habré, depuis que la technologie elle-même a été introduite depuis longtemps. Le plus clair à mon avis a été résumé dans l'une des dernières publications .

Dans le contexte de cet article, il convient de noter que TrustZone était auparavant le privilège des processeurs hautes performances de la famille Cortex-A. Et au cours de l'année écoulée, presque tous les fabricants de systèmes sans fil à base de cristal ont publié des solutions basées sur Cortex-M ; la plus populaire est Cortex-M33 .

Parlant de sécurité de l'information, il convient de rappeler le système de critères généraux(Critères communs), adopté à la fois au niveau international et en tant que norme nationale. Il vous permet de déterminer le niveau de confiance Evaluation Assurance Level (EAL) de 1 à 7 (EAL1 - EAL7), un chiffre plus élevé indique un niveau de sécurité plus élevé. Pour comprendre, la majorité des systèmes d' exploitation Windows ont un niveau EAL4 ou EAL4 + , LInux / Unix, EAL5 ont essentiellement des cartes à puce (banque, transport, y compris sans contact), EAL6 vous permet d'utiliser la solution dans des situations à haut risque, EAL7 dans des situations à risque extrême, par exemple, pour les réseaux unidirectionnels (diodes de données).

En Avril de cette année, le Cortex-M33 et M35P ont été certifiés à EAL6 +. Il s'agit d'un niveau très élevé qui vous permet d'appliquer des solutions dans des situations à haut risque.

ARM TrustZone Cryptocell dans le nouveau Cortex-M33 / M23 fournit un stockage de clé sécurisé (dont un avec un identifiant matériel unique), la vérification du firmware, à la fois pendant le téléchargement et la mise à jour en direct, l'accélération du chiffrement matériel AES, SHA, ChaCha, ECC, dans y compris avec DMA (par conséquent, toutes les données dans Flash et RAM peuvent être cryptées), des générateurs de nombres aléatoires (TRNG, PRNG).


Il est intéressant de noter que CryptoCell vous permet d'avoir plusieurs racines de confiance pour diverses tâches (par exemple, intégrer un RoT supplémentaire pour un client qui souhaite intégrer une solution de masse du marché dans son système informatique fermé, par exemple, une banque sans être liée au RoT principal du fabricant), ainsi que le débogage sécurisé (Secure Debug) avec des droits d'autorisation.

La série 300 de CryptoCell est spécifiquement destinée aux appareils à faible consommation de l'Internet des objets. La consommation du nouveau M33 est environ 20 à 40% inférieure à celle du M4, étant donné la perte de consommation d'énergie pour le travail de TrustZone de 20%, nous avons le même niveau de consommation ou moins qu'aujourd'hui. En conséquence, nous pouvons dire que la sécurité du matériel est venue au segment budgétaire le plus massif avec le Cortex-M33 / M23 et dans un avenir proche, le nombre de produits basés sur eux ne fera qu'augmenter.

Les alternatives de TrustZone incluent OpenTitan sponsorisé par Google. Cependant, il n'est pas encore répandu et axé sur d'autres applications que les terminaux de l'Internet des objets.

Il convient de noter que l'implémentation matérielle de la racine de confiance n'est pas une panacée et peut également être piratée. Un exemple est l'histoire récente avec Intel . Il est important de mentionner que dans ce cas, une erreur a été trouvée dans la ROM et qu'une clé a été utilisée pour toutes les générations de chipsets, elle peut donc être reproduite. Et même une telle implémentation complique considérablement le hack.

Considérons les 5 étapes de l'évolution de l'implémentation de Root-of-Trust dans les modules de communication cellulaire uBlox , développés en collaboration avec le Groupe Kudelski. Ceci est intéressant du point de vue de la tâche, car leurs solutions diffèrent considérablement des approches d'autres entreprises. Les modules cellulaires Cat-M Nb-IoT / LTE appartiennent aux classes de transition entre les 4e et 5e générations de LTE et sont destinés aux réseaux LPWAN de faible puissance. Dans la plupart des cas, les appareils devraient fonctionner pendant des années sans intervention humaine. Les solutions modernes vous permettent de travailler 7-10 ans sur une seule batterie (batterie). La durée de vie moyenne de l'appareil atteint souvent 15 ans. Pendant ce temps, les exigences de sécurité peuvent changer considérablement, de nouvelles menaces apparaîtront. Les appareils doivent fonctionner de manière stable sans intervention humaine pendant toute la durée de vie. En conséquence, il est nécessaire de protéger ces appareils en tenant compte de la durée et de la nature de leur travail.


Comme vous pouvez le voir sur la structure, à chaque génération suivante, la racine de la confiance change de position. Il s'agit d'un point clé affectant la sécurité de la solution dans son ensemble.

Les options 1 et 3 sont considérées comme non fiables selon uBlox / Kudelski en raison de l'implémentation logicielle de RoT et du piratage le plus probable. Y compris dans le cas de la création de la racine de confiance dans l'eSIM externe (eUICC), qui fournit une protection suffisante pour les applications bancaires d'entrée de gamme EAL4 (les clés dans eUICC ne peuvent pas être lues ou modifiées de sorte qu'elles ne deviennent pas visibles de l'extérieur). Cependant, cette approche comporte des failles et des vulnérabilités potentielles résultant du fait que la communication avec un composant externe peut être interceptée et potentiellement fausser, la complexité de l'interaction aux étapes initiales de l'initialisation du système (vérification du chargeur de démarrage), ainsi quemécanisme de programmation compliqué en raison de ressources de puces limitées dans UICC. De plus, le module externe peut être remplacé ou retiré du système (simplement en changeant la carte SIM) et ainsi laisser tout le système sans racine de confiance.

Par conséquent, la voie de développement ultérieure consiste à intégrer la racine de confiance dans la zone protégée de la puce. Cette approche est cohérente avec ARM TrustZone CryptoCell Composition.

La version avec implémentation de Root-of-Trust dans un OS sécurisé est la plus courante du marché et offre un niveau de sécurité suffisant pour la plupart des tâches. La solution la plus courante sur le marché est ARM TrustZone (à ce sujet ci-dessus), mais sans CryptoCell, qui stocke les clés dans une zone protégée.

La solution avec protection intégrée à l'intérieur du chipset, à laquelle il n'y a pratiquement pas d'accès depuis l'extérieur, a la plus grande protection. La solution actuelle utilise l'élément de sécurité intégré (Secure Element), certifié selon le niveau EAL5 + . Cela permet la certification Common Criteria pour l'ensemble de l'appareil dans son ensemble, et vous permet également de placer des fonctions de carte SIM et des profils d'opérateur de réseau mobile (MNO) dans l'appareil. Cela correspond au niveau de sécurité actuel.

La prochaine génération du chipset uBlox est en cours de développement, où Secure Element sera intégré dans le silicium du chipset modem lui-même. Cela réduit encore la surface d'attaque et améliore la sécurité au plus haut niveau. Il sera mis en œuvre via iUICC(Integrated Universal Integrated Circuit Card) - la prochaine génération d'UICC, dans laquelle l'intégralité du code et de l'identifiant SIM seront situés à l'intérieur du système sur une puce, la norme n'est pas encore terminée.

Résultats:

  • De plus en plus de fabricants de composants électroniques développent et fabriquent des appareils en pensant à la sécurité, dès les premiers stades de développement.
  • Les entreprises finales obtiennent des outils de gestion de la sécurité tout de suite. Le fait d'attirer des experts au stade du développement d'outils vous permet d'éviter les erreurs et également de réduire considérablement le coût de la solution dans son ensemble.
  • Le prix des nouvelles solutions est souvent proche des solutions actuelles, mais offre un niveau de protection fondamentalement différent, ce qui simplifie également considérablement la transition
  • Le nombre croissant d'appareils offrant un nouveau niveau de sécurité n'est qu'une question de temps.
  • Dans les nouvelles solutions d'éléments sécurisés, UICC est transféré à l'intérieur de la puce pour augmenter la sécurité et empêcher les attaques
  • Les solutions modernes offrent des niveaux de sécurité jusqu'à EAL6 + suffisants pour une utilisation dans des situations à haut risque.
  • Des solutions de niveau EAL7 sont en cours de développement, cependant, elles utilisent des technologies sans standard finalement approuvé, donc le terme pour leur disponibilité sur le marché n'est pas défini.

All Articles