Garantir la sécurité des systèmes embarqués à l'aide de DSC et de microcontrôleurs
Avec la contribution de Rédacteurs nord-américains de DigiKey
2023-07-25
Avec la migration vers l'Internet des objets (IoT), la sécurité est devenue bien plus qu'une fonctionnalité optionnelle dans les applications embarquées, évoluant vers une capacité indispensable, nécessaire pour garantir l'intégrité du système. Pour répondre à un nombre croissant de spécifications de sécurité, les développeurs ont besoin de solutions qui non seulement correspondent aux exigences de basse consommation ou de hautes performances des applications, mais qui peuvent également fournir des fonctionnalités de sécurité basées sur le matériel, notamment l'authentification, le chiffrement, le stockage sécurisé et le démarrage sécurisé.
Cet article présente brièvement les principes de la sécurité embarquée. Il montre ensuite comment les développeurs peuvent utiliser les contrôleurs de signaux numériques (DSC) hautes performances et les microcontrôleurs (MCU) PIC24F basse consommation de Microchip Technology, ainsi que les dispositifs de sécurité spécialisés de Microchip, pour répondre à la demande émergente en matière de sécurité embarquée rigoureuse.
La sécurité embarquée repose sur quatre principes clés
Lorsqu'ils sont connectés à l'Internet public, les produits intelligents peuvent être reliés entre eux dans des applications sophistiquées que peu de produits autonomes peuvent égaler. Cependant, la menace de cyberattaques utilisant ces mêmes voies de connectivité non seulement limite potentiellement la valeur des produits intelligents, mais expose également ces produits, les applications associées et leurs utilisateurs à des sources de menaces apparemment infinies.
Outre la demande continue des consommateurs en matière de cybersécurité au niveau des systèmes, les développeurs doivent de plus en plus tenir compte des spécifications de sécurité des organisations nationales et régionales. Deux des spécifications les plus influentes, la norme européenne ETSI EN 303 645, « Cyber Security for Consumer Internet of Things: Baseline Requirements », et la norme américaine NIST IR 8259, « Foundational Cybersecurity Activities for IoT Device Manufacturers », suggèrent que les pratiques de cybersécurité dépendent de quatre principes clés :
- Utilisation de mots de passe uniques
- Disponibilité d'un stockage sécurisé sur le dispositif pour les paramètres de sécurité sensibles
- Communication sécurisée grâce à l'authentification mutuelle et à la communication cryptée
- Capacité à garantir l'intégrité et l'authenticité des micrologiciels grâce à un démarrage sécurisé et à des mises à jour sécurisées des micrologiciels
Le déploiement de systèmes basés sur ces principes fondamentaux nécessite l'utilisation d'une plateforme de confiance qui empêche les pirates d'injecter du code compromis pouvant altérer les communications, le stockage, les micrologiciels ou même les mécanismes de sécurité eux-mêmes.
Les plateformes de confiance contribuent à garantir la sécurité en créant une sécurité au niveau du système à partir de zéro à l'aide de mécanismes de sécurité matériels inaltérables. Bien que simple dans son concept, la mise en œuvre de la sécurité au niveau du système est complexe car une faille de sécurité dans n'importe quelle partie du système peut ouvrir la voie à une cyberattaque. En utilisant les DSC dsPIC33C hautes performances et les microcontrôleurs PIC24F basse consommation de Microchip Technology, en combinaison avec les dispositifs de sécurité complémentaires de Microchip, les développeurs peuvent plus facilement implémenter des conceptions embarquées qui garantissent la sécurité au niveau système.
Répondre aux exigences de performances et de puissance
Conçus pour prendre en charge un large éventail de cas d'utilisation, les dispositifs des familles de DSC dsPIC33C et de microcontrôleurs PIC24F de Microchip combinent chacun des plateformes d'exécution robustes avec des capacités spécifiques à l'application, y compris un ensemble complet de périphériques de contrôle de forme d'onde, de communications et analogiques intégrés. En utilisant la modulation de largeur d'impulsion (PWM) multiple, des amplificateurs à gain programmable (PGA), des convertisseurs analogique-numérique (CAN) et d'autres périphériques sur un DSC dsPIC33C, les développeurs peuvent mettre en œuvre des systèmes complexes avec un minimum de composants supplémentaires — généralement uniquement les dispositifs d'alimentation requis dans une telle conception. Un exemple est l'utilisation du DSC monocœur DSPIC33CK512MP608 pour implémenter une alimentation secourue (UPS) autonome (Figure 1).
Figure 1 : Comme les autres DSC dsPIC33C, le DSC monocœur DSPIC33CK512MP608 intègre un ensemble complet de périphériques, simplifiant la conception de systèmes complexes tels que l'alimentation secourue autonome illustrée. (Source de l'image : Microchip Technology)
Pour les applications exigeant à la fois des capacités de contrôle en temps réel et un traitement des signaux numériques, les DSC dsPIC33C combinent les capacités d'un microcontrôleur et d'un DSC avec les instructions spécialisées et les fonctionnalités matérielles. Pour les développements critiques en matière de sécurité, les DSC dsPIC33C sont compatibles avec la sécurité fonctionnelle CEI 60730 et conformes à la norme ISO 26262, offrant plusieurs fonctionnalités matérielles conçues pour simplifier la certification de sécurité fonctionnelle pour les applications automobiles et industrielles ASIL-B et SIL-2.
Alors que les DSC dsPIC33C sont conçus pour les applications dans lesquelles les performances sont primordiales, les microcontrôleurs PIC24F offrent un équilibre entre performances et rendement énergétique pour les systèmes embarqués à usage général, l'électronique grand public, l'automatisation industrielle, les dispositifs médicaux et d'autres applications qui requièrent un contrôle et une connectivité mais n'ont pas besoin de capacités DSP. Comme les DSC dsPIC33C, les microcontrôleurs PIC24F sont des dispositifs prêts pour la sécurité fonctionnelle CEI 60730 avec des bibliothèques de diagnostics de sécurité de classe B pour le développement d'applications domestiques.
Comme mentionné précédemment, l'intégrité des micrologiciels est un principe fondamental de la cybersécurité embarquée. Pour aider les développeurs à garantir l'intégrité des micrologiciels et la protection globale du code, Microchip propose une mémoire Flash programmable une seule fois (OTP) par ICSP Write Inhibit et la sécurité CodeGuard Flash dans les dispositifs DSC dsPIC33C, tels que le DSC monocœur DSPIC33CK512MP608 et le DSC double cœur DSPIC33CH512MP508, ainsi que les microcontrôleurs PIC24F tels que le microcontrôleur PIC24FJ512GU405, parmi beaucoup d'autres configurés avec différents ensembles de périphériques spécifiques à l'application.
Protéger les micrologiciels des dispositifs
La mémoire Flash OTP par ICSP Write Inhibit permet aux développeurs de configurer des parties de la mémoire Flash en tant que mémoire OTP et de protéger la mémoire Flash en lecture/écriture. La capacité ICSP propriétaire de Microchip permet à ces dispositifs d'être programmés en série via deux broches pendant l'exécution dans l'application finale. Grâce à cette capacité, les fabricants peuvent effectuer la programmation sur les cartes de production. Alors que l'ICSP nécessite l'utilisation d'un dispositif de programmation externe pour contrôler le processus Flash OTP, l'ICSP amélioré permet à un chargeur d'amorçage intégré de contrôler le processus Flash OTP. Ces dispositifs prennent également en charge l'auto-programmation pendant l'exécution (RTSP), qui permet au code d'application utilisateur Flash de se mettre à jour pendant l'exécution.
Après avoir programmé leur dispositif de production, les développeurs peuvent activer ICSP Write Inhibit, qui empêche tout autre effacement ou programmation ICSP. Néanmoins, les opérations d'effacement et de programmation Flash RTSP peuvent se poursuivre même lorsqu'ICSP Write Inhibit est activé si le code de mise à jour Flash approprié est programmé dans le dispositif avant son activation. Par conséquent, les développeurs peuvent utiliser un chargeur d'amorçage de confiance pour modifier la mémoire Flash même lorsqu'ICSP Write Inhibit est activé, ce qui leur permet de mettre à jour les micrologiciels en toute sécurité, tout en atténuant les tentatives externes de mise à jour Flash dans les systèmes de production.
La sécurité CodeGuard Flash offre une protection fine de la mémoire Flash programme grâce à l'utilisation de segments d'amorçage et généraux distincts. Les développeurs déterminent la taille de ces segments en définissant l'adresse de la limite du segment d'amorçage (BS) (BSLIM) dans le registre BSLIM du dispositif ; le segment général (GS) occupe la mémoire restante. Pour mieux protéger les informations sensibles, chaque segment contient des partitions supplémentaires. Par exemple, le segment BS contient la table de vecteurs d'interruption (IVT), la table de vecteurs d'interruption alternatifs (AIVT) optionnelle et l'espace de mot d'instruction (IW) supplémentaire. Le segment de configuration (CS), qui contient les données de configuration utilisateur critiques du dispositif, se trouve dans l'espace d'adresse utilisateur dans le segment GS (Figure 2).
Figure 2 : Les familles de DSC dsPIC33C et de microcontrôleurs PIC24F prennent en charge la protection du code dans des partitions séparées telles que BS et GS. (Source de l'image : Microchip Technology)
Après avoir défini les partitions de segment, les développeurs peuvent utiliser le registre de sécurité du micrologiciel (FSEC) du dispositif pour éventuellement activer la protection en écriture et définir le niveau de protection de code requis pour chaque segment. Pendant l'exécution, le dispositif empêche le code contenu dans un segment avec un niveau de protection de code inférieur d'accéder au code contenu dans un segment avec un niveau de protection de code supérieur. Dans un système typique, les développeurs protègent en écriture le BS et définissent sa protection de code à un niveau élevé, atténuant les tentatives externes de modification du BS, y compris le chargeur d'amorçage.
Implémenter les mises à jour de micrologiciels OTA sécurisées
Les développeurs de logiciels sont inévitablement confrontés à la nécessité de mettre à jour les logiciels en réponse à la combinaison de bogues logiciels récemment découverts, d'améliorations concurrentielles ou de menaces de sécurité émergentes. Contrairement aux mises à jour d'applications mobiles, l'exécution de mises à jour sécurisées des micrologiciels dans les systèmes embarqués risque au mieux d'interférer avec les applications en cours d'exécution, ou au pire de « faire disjoncter » le système. Les familles de DSC dsPIC33C et de microcontrôleurs PIC24F basse consommation de Microchip fournissent un mécanisme à partition double destiné à aider les développeurs à éviter ces problèmes.
En mode de fonctionnement standard, ces dispositifs utilisent toute la mémoire physique disponible comme un espace mémoire continu à partition simple (Figure 3, à gauche) qui peut être configuré en BS et GS séparés. En mode de partition double, les développeurs divisent la mémoire physique en partitions actives et inactives distinctes (Figure 3, à droite).
Figure 3 : Les développeurs peuvent utiliser les familles de DSC dsPIC33C et de microcontrôleurs PIC24F en mode de partition simple par défaut ou en mode de partition double. (Source de l'image : Microchip Technology)
En mode de partition double, ces dispositifs peuvent continuer à exécuter du code d'application dans la partition active tout en programmant la partition inactive. Une fois la programmation terminée, l'exécution de l'instruction BOOTSWP amène le dispositif à basculer la cible d'amorçage vers la partition mise à jour. Si le code dans la partition mise à jour échoue ou s'avère défectueux, une réinitialisation du dispositif entraîne automatiquement l'amorçage du dispositif dans la partition d'origine (Figure 4).
Figure 4 : En mode de partition double, les DSC dsPIC33C et les microcontrôleurs PIC24F peuvent charger le code d'application dans une partition tout en continuant à exécuter le code d'application dans l'autre partition. (Source de l'image : Microchip Technology)
Une fois la réussite de la partition mise à jour garantie, la séquence d'amorçage Flash (FBTSEQ) de la partition mise à jour peut être définie sur une valeur inférieure à celle de la partition d'origine. Lors des réinitialisations suivantes du dispositif, le dispositif démarre dans la partition mise à jour avec la valeur FBTSEQ inférieure (Figure 5).
Figure 5 : Le mode de partition double permet aux développeurs de spécifier la séquence d'amorçage dans la partition souhaitée après la réinitialisation du dispositif. (Source de l'image : Microchip Technology)
La mémoire Flash OTP par ICSP Write Inhibit et la sécurité CodeGuard Flash fournissent une prise en charge essentielle pour la sécurité du code statique et d'exécution, mais une sécurité embarquée complète requiert des mécanismes supplémentaires, notamment le stockage sécurisé des clés, l'authentification du code et les communications sécurisées.
Utiliser des dispositifs de sécurité complémentaires pour garantir la sécurité des systèmes embarqués
En combinant les DSC dsPIC33C et les microcontrôleurs PIC24F avec le circuit intégré de sécurité CryptoAuthentication ATECC608 ou CryptoAutomotive TrustAnchor100 (TA100) de Microchip, les développeurs peuvent déployer plus facilement l'ensemble des fonctionnalités de sécurité basées sur le matériel.
Ces circuits intégrés de sécurité fournissent des mécanismes de sécurité matériels inviolables, notamment un stockage sécurisé, des moteurs de cryptographie à accélération matérielle, des générateurs de nombres véritablement aléatoires et d'autres mécanismes requis par les algorithmes cryptographiques. Conçus spécifiquement comme dispositifs complémentaires, les circuits intégrés peuvent être facilement ajoutés aux conceptions de systèmes de microcontrôleur ou DSC pour finaliser la mise en œuvre de la sécurité complète des systèmes embarqués (Figure 6).
Figure 6 : Les circuits intégrés de sécurité tels que l'ATECC608 ou le TA100 complètent les fonctionnalités de sécurité des DSC dsPIC33C et des microcontrôleurs PIC24F, simplifiant la mise en œuvre de systèmes embarqués sécurisés. (Source de l'image : Microchip Technology)
L'exécution d'une opération critique telle que la mise à jour sécurisée des micrologiciels illustre les fonctionnalités de sécurité additionnelles des DSC dsPIC33C et des microcontrôleurs PIC24F en conjonction avec ces circuits intégrés de sécurité complémentaires. Les développeurs utilisent des techniques de signature de code pour vérifier l'authenticité et l'intégrité du code avant la fin des opérations de mise à jour des micrologiciels. Ici, les développeurs utilisent leurs systèmes de développement pour créer un pack de mise à jour contenant le code, les métadonnées du code et une signature utilisée pour la vérification (Figure 7).
Figure 7 : La signature de code fournit un protocole essentiel souvent utilisé pour vérifier l'authenticité et l'intégrité du code avant la mise à jour sur un système cible. (Source de l'image : Microchip Technology)
Sur le système cible, la vérification de signature basée sur le matériel élimine le risque de protocoles de vérification compromis, ce qui était possible avec le type de vérification de signature basée sur logiciel utilisée dans le passé. À la place, un circuit intégré de sécurité complémentaire, tel que l'ATECC608 et le TA100 de Microchip, effectue rapidement et en toute sécurité des opérations de vérification de signature sans risque de compromission (Figure 8).
Figure 8 : Dans un système cible, la vérification basée sur le matériel fournie par un circuit intégré de sécurité tel que l'ATECC608 ou le TA100 est essentielle pour garantir la vérification du code avant la mise à jour du micrologiciel par le chargeur d'amorçage. (Source de l'image : Microchip Technology)
Pour accélérer la mise en œuvre de systèmes sécurisés, Microchip fournit une combinaison d'outils de développement logiciel et matériel.
Accélérer le développement logiciel et matériel
Tandis que l'environnement de développement intégré (IDE) MPLAB X fournit aux développeurs un environnement de développement logiciel complet, le compilateur C MPLAB XC fournit un support de développement pour les chaînes d'outils existantes. Pour accélérer le développement dans l'un ou l'autre environnement, le configurateur de code MPLAB (MCC) de Microchip permet aux développeurs d'utiliser une interface graphique pour générer automatiquement des initialiseurs, créer des pilotes, affecter les broches, implémenter des bibliothèques et autrement aider à accélérer de nombreuses procédures et processus de configuration de bas niveau critiques associés à tout projet de développement logiciel embarqué.
Pour accélérer l'implémentation d'un chargeur d'amorçage sécurisé adapté, le chargeur d'amorçage pour DSC dsPIC33 et microcontrôleurs PIC24 de Microchip fournit une interface graphique qui aide les développeurs à configurer et à générer rapidement les chargeurs d'amorçage personnalisés requis pour leur application. Une application hôte de chargeur d'amorçage associée simplifie davantage le transfert du code d'application vers le dispositif cible.
Pour le développement matériel, Microchip propose plusieurs cartes de développement associées pour la construction de systèmes basés sur des DSC dsPIC33C ou des microcontrôleurs PIC24F. La carte PIC-IoT EV54Y39A et la Carte PIC-IoT AC164164 de Microchip (Figure 9) incluent des circuits intégrés de sécurité qui sont déjà équipés d'informations de connexion de sécurité pour Amazon Web Services (AWS) et Google Cloud, respectivement.
Figure 9 : Des cartes telles que la carte PIC-IoT AC164164 aident à accélérer le développement de la sécurité embarquée en intégrant des circuits intégrés de sécurité déjà équipés d'informations de connexion pour AWS ou Google Cloud. (Source de l'image : Microchip Technology)
Pour les conceptions personnalisées, Microchip propose une carte de développement Curiosity dsPIC33CH (DM330028-2), basée sur le DSC double cœur dsPIC33CH512MP508. Alternativement, les développeurs peuvent connecter le module plug-in basé sur le dsPIC33CH128MP508 de Microchip (MA330040) à une carte d'évaluation Microchip Explorer Embedded (DM240001-2) pour accélérer le développement de systèmes embarqués sécurisés.
Conclusion
La sécurité des systèmes embarqués repose sur la disponibilité de mécanismes matériels, capables de prendre en charge les principes clés de la cybersécurité, notamment l'intégrité des micrologiciels, l'authentification, le chiffrement et le stockage sécurisé. Tandis que les DSC dsPIC33C et les microcontrôleurs PIC24F de Microchip simplifient la protection du code, les circuits intégrés de sécurité ATECC608 et TA100 fournissent les mécanismes de sécurité supplémentaires requis dans une plateforme de sécurité efficace. En combinant ces dispositifs, les développeurs peuvent répondre aux exigences de sécurité niveau système dans les solutions embarquées pour l'IoT et les applications automobiles, industrielles, grand public et médicales.

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é.