Construire une solution Yocto sécurisée avec les SoC NXP i.MX et PKCS#11

Pourquoi sécuriser dès la conception pour l'IoT?

Les appareils IoT sont de plus en plus vulnérables aux cybermenaces, ce qui souligne la nécessité d’une sécurité robuste, de la conception au déploiement. Sans mesures de sécurité appropriées, les conséquences des appareils IoT vulnérables peuvent être graves :

  • Violations de données : Les appareils IoT vulnérables peuvent conduire à un accès non autorisé et à une fuite de données sensibles.
  • Armée de zombies : Les appareils IoT non sécurisés sont souvent ciblés pour être inclus dans des « botnets », qui peuvent lancer des attaques par déni de service distribué (Distributed Denial-of-Service ou DDoS) à grande échelle.
  • Sécurité physique : Les acteurs malveillants peuvent exploiter les vulnérabilités des appareils IoT pour manipuler les systèmes critiques.

Les fonctionnalités sécurisées telles que l’authentification des services infonuagiques, la communication réseau sécurisée et les mises à jour par les ondes (Over-the-Air ou OTA) doivent être prioritaires depuis la phase d’idéation jusqu’à la production. Cette approche proactive est cruciale pour atténuer les risques, les coûts et protéger les utilisateurs et les organisations.

Les SoC NXP i.MX : Alimentent des appareils IoT sécurisés

La famille i.MX propose des processeurs ARM basse consommation, qui sont idéaux pour les applications multimédias. Ces appareils système sur puce (System-on-Chip ou SoC) intègrent diverses unités de traitement, notamment un processeur, une unité de traitement vidéo et une carte graphique.

À partir de la série i.MX6, ces SoC disposent d’une fonctionnalité « High Assurance Boot » (HAB) bien prise en charge. La fonctionnalité HAB déverrouille de nombreuses fonctionnalités de sécurité, améliorant l’efficacité de la nomenclature et renforçant la sécurité tout au long de votre processus de conception.

Construire une chaîne de confiance (Chain of Trust ou CoT) : Le fondement de la sécurité

Une CoT protège votre produit IoT contre diverses menaces telles que le vol d’adresse IP, les accès non autorisés et le piratage. Elle garantit l’intégrité et l’inviolabilité de votre système.

Les SoC i.MX exploitent la fonctionnalité HAB pour établir une CoT. Cette CoT vérifie l’authenticité de chaque composant logiciel (chargeur de démarrage, noyau, arborescence des périphériques et propriété intellectuelle [IP]) via des verrous matériels OEM et des vérifications de signature. Cet environnement sécurisé permet l’utilisation d’applications de confiance (Trusted Applications ou TA) OP-TEE pour créer un module de plate-forme de confiance (software-based Trusted Platform Module ou fTPM) basé sur un logiciel accessible via la PKCS#11 à partir d’un monde sécurisé.

Pourquoi utiliser la PKCS#11?

La norme de chiffrement à clé publique PKCS#11 (Public Key Cryptography Standards #11) est un projet à code ouvert largement pris en charge qui facilite les opérations cryptographiques sécurisées. Elle fournit une interface standardisée pour accéder aux jetons cryptographiques tels que les modules de plate-forme de confiance (Trusted Platform Modules ou TPM) et les modules de sécurité matérielle (Hardware Security Modules ou HSM).

Dans les environnements sans prise en charge PKCS#11, les clés cryptographiques sont souvent stockées directement sur les appareils ou dans des logiciels, ce qui les rend vulnérables à un accès non autorisé ou à une compromission. La prise en charge PKCS#11 résout ce problème en faisant abstraction des opérations cryptographiques et en gérant de manière sécurisée les clés au sein des jetons matériels. Elle garantit que les clés sensibles sont protégées contre toute exposition, réduisant ainsi le risque de violation de données et garantissant le respect des normes de sécurité.

Les principales plates-formes infonuagiques IoT telles qu’AWS et Azure prennent en charge PKCS#11 pour faciliter l’authentification des appareils et sécuriser les connexions infonuagiques sans exposer les clés secrètes de l’infrastructure infonuagique. De même, les clients de mises à jour, tels que SWUpdate et Mender, prenent en charge PKCS#11 pour gérer en toute sécurité les clés cryptographiques utilisées dans le processus de mise à jour, en les protégeant contre la falsification et les accès non autorisés.

En adoptant la norme PKCS#11, les organisations peuvent améliorer la sécurité de leurs déploiements IoT et infonuagiques, en garantissant une protection robuste des actifs cryptographiques sensibles et en maintenant la conformité aux normes de sécurité du secteur.

Exemple d'utilisation courante de PKCS#11

Gestion des clés dans les appareils IoT NXP

Contrairement aux appareils basés sur l’utilisateur, les appareils IoT s’appuient sur des clés et des certificats pour l’authentification et la communication sécurisée. La norme PKCS#11 permet aux fournisseurs d’agir comme des magasins de clés, prenant en charge des opérations cryptographiques sécurisées sans exposer les clés privées aux utilisateurs finaux.

Les processeurs i.MX (à partir de la série i.MX6) offrent une gamme de fonctionnalités de sécurité pour implémenter un fTPM en tant que fournisseur PKCS#11. Cette fonctionnalité combine la technologie ARM TrustZone avec un système d’exploitation sécurisé à code ouvert comme OP-TEE pour obtenir des fonctionnalités similaires aux HSM/TPM/Secure Elements. OP-TEE OS peut exécuter divers TA, y compris un fTPM, à diverses fins.

Exemple d'utilisation de fTPM PCKS#11 TA avec OP-TEE

Notes importantes :

  • Un OP-TEE sécurisé nécessite une CoT préétablie pour la sécurité (par exemple, Secure Boot)
  • Un OP-TEE sécurisé nécessite une clé matérielle unique (Hardware Unique Key ou HUK) prise en charge par SoC (par exemple, NXP i.MX avec CAAM ou EdgeLock) pour un stockage sécurisé.

Défis clés de la gestion de la chaîne d’approvisionnement

La création d’une CoT sécurisée pour vos solutions IoT nécessite une réflexion approfondie tout au long du processus de développement. La mise en œuvre du démarrage sécurisé sur les SoC NXP i.MX implique une arborescence d’infrastructure à clé publique (Public Key Infrastructure ou PKI) avec quatre clés privées qui doivent rester confidentielles. NXP i.MX Secure Boot est une option programmable une seule fois. En cas de compromission, l’ensemble de votre parc d’appareils devient vulnérable.

La mise en œuvre d’une gestion sécurisée des clés au sein de la chaîne d’approvisionnement est un autre aspect crucial. L’utilisation d’un HSM en tant que fournisseur PKCS#11 offre un magasin de clés sécurisé avec une sécurité physique, réseau et matérielle pour votre CoT. Les clés et les certificats résident dans un élément sécurisé, empêchant l’exposition des clés privées.

Projet Yocto : Rationalisation du développement sécurisé

Le projet Yocto, combiné avec l’outil de signature de code NXP, facilite la signature des clés du système de fichiers pendant le processus de conception de Yocto. Chez Rational Minds, nous avons implémenté une couche qui exploite le support PKCS#11 au sein de la solution Yocto. Ceci permet d’intégrer des fonctionnalités de sécurité au sein de la chaîne d’approvisionnement et s’intègre parfaitement aux flux de travail d’intégration/développement continu (Continuous Integration/Development ou CI/CD) en permettant aux conceptions Yocto de signer tous les composants nécessaires. En fin de compte, PKCS#11, ainsi que PKCS#11-Proxy, permettent à des outils tels que GitLab Runner d’utiliser un HSM partagé au sein de votre réseau privé ou d’une connexion sécurisée.

Exemple d'utilisation de PKCS#11 dans une conception Yocto/Chaîne d’approvisionnement

Conclusion

Tirer parti d’OP-TEE en tant que fournisseur PKCS#11 renforce la sécurité de vos appareils IoT et élimine le besoin de puces de sécurité dédiées, réduisant ainsi les coûts de nomenclature. De plus, l’utilisation d’un HSM en tant que fournisseur PKCS#11 pour votre chaîne d’approvisionnement répond aux exigences minimales de sécurité pour la gestion des clés entre différentes équipes, services et systèmes.

RMDS Innovation propose différentes couches pour répondre aux exigences PKCS#11 et HSM au sein d’une solution Yocto en exploitant les fonctionnalités et applications de sécurité NXP i.MX. Planifiez une consultation de sécurité gratuite avec nous pour en savoir plus.

Image de Walter Bonetti
Walter Bonetti

Développeur logiciels senior