Déployer rapidement un réseau sécurisé de dispositifs IoT connectés au cloud avec des capacités edge computing

Par Stephen Evanczuk

Avec la contribution de Rédacteurs nord-américains de DigiKey

Le déploiement d'un réseau Internet des objets (IoT) avec des ressources edge computing est très demandé, mais peut être une entreprise décourageante car il existe de multiples exigences en matière de points d'extrémité, de systèmes edge computing et de connectivité cloud sécurisée. Bien que les éléments discrets de la solution requise soient déjà disponibles, leur intégration dans une application IoT transparente et efficace requiert une immersion dans les tâches complexes de mise en œuvre non seulement des plateformes matérielles périphériques et des points d'extrémité, mais également des interfaces de service, des méthodes de communication et des protocoles de sécurité requis par les fournisseurs de cloud IoT.

Récemment, un flux constant de solutions IoT plus intégrées a émergé pour aider les développeurs à commercialiser plus rapidement leurs produits. Par exemple, un ensemble de produits edge computing et de points d'extrémité compatibles avec le cloud de Microchip Technology fournit une solution prête à l'emploi conçue pour la connexion aisée aux services IoT Amazon Web Services (AWS) et au service edge computing AWS IoT Greengrass.

Cet article étudie brièvement les raisons pour lesquelles l'intelligence devrait être déployée en périphérie. Il présente ensuite les cartes qualifiées AWS de Microchip qui servent de systèmes de points d'extrémité de capteurs compatibles avec le cloud. Cet article montre ensuite comment ces points d'extrémité peuvent être combinés avec une plateforme edge computing basée sur un système sur module (SOM) sans fil pré-chargé avec un logiciel de service et des références AWS pour fournir une connectivité quasi transparente au cloud AWS.

Combinaison d'un système périphérique et de points d'extrémité

La disponibilité immédiate de systèmes économiques et basse consommation a simplifié la mise en œuvre des systèmes de points d'extrémité, qui sont les dispositifs de capteurs et d'actionneurs qui constituent les points les plus éloignés de la périphérie des applications IoT. Bien que ces systèmes de points d'extrémité se connectent directement au cloud dans de nombreuses applications IoT, les applications plus complexes nécessitent souvent le déploiement de systèmes dits de périphérie, qui sont positionnés de manière fonctionnelle entre les points d'extrémité et le cloud IoT.

En fournissant des capacités de traitement local à proximité d'un ensemble de points d'extrémité IoT, les systèmes de périphérie peuvent réduire la latence dans les boucles de rétroaction étroites, ou répondre aux exigences de synchronisation pour les contrôles de processus industriels. Les systèmes de périphérie fournissent les ressources locales nécessaires au traitement d'algorithmes plus complexes tels que l'inférence d'apprentissage automatique, ou des routines de pré-traitement sophistiquées utilisées pour nettoyer les données et réduire le volume et la vitesse des données acheminées vers le cloud. Cette capacité de traitement local s'avère essentielle pour soutenir les politiques de sécurité et les exigences de confidentialité avancées telles que la minimisation des données avant leur transfert sur l'Internet public.

Améliorer les applications IoT avec AWS IoT Greengrass

Amazon Web Services (AWS) formalise les capacités de traitement en périphérie avec son service AWS IoT Greengrass, qui fournit une partie de ses services cloud fonctionnant en tant que Greengrass Core sur le dispositif en périphérie. Conçu pour fonctionner étroitement avec les services cloud s'exécutant sur des ressources cloud AWS évolutives, Greengrass offre une voie relativement simple pour le déploiement et la mise à jour de modèles d'inférence d'apprentissage automatique développés avec des outils tels que la plateforme d'apprentissage automatique entièrement administrée AWS SageMaker (Figure 1).

Schéma d'AWS IoT GreengrassFigure 1 : AWS IoT Greengrass simplifie le traitement local et le déploiement en périphérie de fonctionnalités avancées, notamment les modèles d'apprentissage automatique formés dans l'environnement d'apprentissage automatique AWS SageMaker. (Source de l'image : Amazon Web Services)

Le traitement local ne constitue que l'un des avantages d'un service de périphérie tel qu'AWS Greengrass. En fournissant une sorte de tampon d'interface entre les systèmes de points d'extrémité et les ressources cloud, les systèmes de périphérie jouent également un rôle clé dans la satisfaction des exigences des applications IoT en matière de réduction de la latence, d'amélioration de la confidentialité et de la sécurité, et d'amélioration de la disponibilité. AWS Greengrass constitue la base pour fournir ces capacités.

Dans le modèle AWS Greengrass, après une phase de découverte unique avec les services cloud, les points d'extrémité d'un groupe Greengrass défini interagissent entre eux en utilisant la messagerie MQTT (MQ Telemetry Transport) gérée par un dispositif Greengrass Core (Figure 2).

Schéma du groupe AWS IoT Greengrass, avec les points d'extrémité pouvant communiquer entre euxFigure 2 : Au sein d'un groupe AWS IoT Greengrass, les points d'extrémité peuvent communiquer entre eux et avec le cloud en utilisant la messagerie MQTT gérée par un dispositif Greengrass Core. (Source de l'image : Amazon Web Services)

Une fois déployés dans un groupe Greengrass, les dispositifs peuvent coopérer pour éviter les longs délais aller-retour fréquents dans les déploiements IoT utilisant des dispositifs IoT qui communiquent directement avec le cloud. Au lieu de cela, les dispositifs peuvent se signaler directement via les canaux MQTT grâce aux capacités de traitement local du dispositif Greengrass Core.

Si la connectivité cloud est perdue, les dispositifs peuvent continuer à fonctionner sous la gestion du dispositif Greengrass Core. À l'inverse, si un dispositif se déconnecte, les autres dispositifs et l'application basée cloud peuvent continuer à fonctionner en utilisant les données maintenues par un dispositif virtuel associé à chaque dispositif physique (Figure 3).

Schéma des architectures de services edge computing comme AWS IoT GreengrassFigure 3 : Les architectures de services edge computing comme AWS IoT Greengrass contribuent à maintenir la disponibilité en fournissant des dispositifs virtuels qui peuvent conserver les dernières données d'état des dispositifs, permettant aux applications IoT de continuer à fonctionner même si le dispositif physique associé est hors ligne. (Source de l'image : Amazon Web Services)

Bien que le concept soit simple, la mise en œuvre de cette coordination parmi un ensemble de dispositifs IoT peut s'avérer difficile. Pour un développeur IoT typique, tirer pleinement parti de cette capacité edge computing présente une combinaison redoutable de défis en matière de matériel, de logiciels et d'administration des systèmes. Au niveau matériel, il faut construire et déployer un réseau de points d'extrémité et de dispositifs edge computing appropriés. Des logiciels doivent être écrits pour implémenter des communications sécurisées dans le réseau local de points d'extrémité IoT et de dispositifs de périphérie, ainsi qu'avec les services cloud. Enfin, ces dispositifs doivent être configurés de manière appropriée, dotés de clés privées et de certifications appropriées, et authentifiés entre eux et avec le service IoT cloud.

Pour simplifier le processus, un ensemble de cartes de Microchip fournit des solutions directes qualifiées AWS pour les points d'extrémité et les dispositifs de périphérie, capables de se connecter simplement et en toute sécurité à AWS Greengrass Core localement, et à AWS IoT Core dans le cloud.

Systèmes de points d'extrémité prêts pour le cloud

Conçues pour un déploiement rapide en tant que systèmes de points d'extrémité, les cartes PIC-IoT WA et AVR-IoT WA de Microchip sont conçues pour fournir une connectivité prête à l'emploi avec AWS IoT Core. Les deux cartes offrent les mêmes fonctionnalités générales mais sont conçues pour fournir des plateformes familières aux développeurs habitués à travailler avec la gamme de microcontrôleurs PIC de Microchip et à ceux qui travaillent avec la famille de microcontrôleurs AVR ATmega de Microchip. Basée sur le microcontrôleur 8 bits ATMEGA4808 de Microchip, la carte AVR-IoT WA utilise le même ensemble de composants que la carte PIC-IoT WA (Figure 4), qui est basée sur le microcontrôleur 16 bits PIC24FJ128GA705 de Microchip.

Image des cartes AVR-IoT WA et PIC-IoT WA de MicrochipFigure 4 : Les cartes AVR-IoT WA et PIC-IoT WA de Microchip fournissent des systèmes de points d'extrémité prêts pour le cloud qui incluent le même complément de dispositifs de support construits autour de différents microcontrôleurs Microchip, dont un microcontrôleur PIC 16 bits pour la carte PIC-IoT WA présentée ici. (Source de l'image : Microchip Technology)

Pour la connectivité, les cartes comprennent chacune un module Wi-Fi certifié ATWINC1510-MR210PB de Microchip, conçu spécifiquement pour les dispositifs IoT basse consommation. Le module intègre 8 mégabits (Mb) de mémoire Flash et une chaîne complète de signaux radiofréquences (RF) d'émission et de réception incluant un amplificateur de puissance (PA), un amplificateur à faible bruit (LNA), un commutateur RF, une gestion de l'alimentation et une antenne imprimée. Outre la mémoire morte (ROM) intégrée pour un démarrage rapide des microprogrammes, la pile réseau intégrée prend en charge les protocoles Internet standard avec des accélérateurs matériels pour accélérer les protocoles de sécurité Wi-Fi et TLS (Transport Layer Security).

En plus d'un capteur de température numérique de précision MCP9808 de Microchip et d'un capteur à photodiode TEMT6000X01 de Vishay, chaque carte inclut un connecteur mikroBUS. Grâce à ce connecteur, les développeurs peuvent facilement étendre la base matérielle en sélectionnant des cartes supplémentaires dans la vaste sélection de cartes Mikroe Click Board disponibles. Pour la gestion de l'alimentation et des batteries, les cartes comprennent chacune un dispositif MCP73871T-2CCI/ML de Microchip, qui fournit à la fois l'alimentation du système et la charge des batteries lithium-ion à partir d'une source d'alimentation USB ou d'un adaptateur mural.

Pour des raisons de sécurité, chaque carte est dotée d'un élément sécurisé ATECC608A de Microchip. Pour ces cartes, le dispositif est fourni avec des clés et des certificats pré-provisionnés qui permettent la prise en charge immédiate des mécanismes de sécurité et de l'authentification AWS IoT.

Grâce à leur collection de composants matériels embarqués et de micrologiciels pré-chargés, les cartes sont conçues pour se connecter avec un minimum d'efforts à AWS IoT Core. Les développeurs doivent simplement alimenter la carte en utilisant un câble micro USB connecté à leur ordinateur personnel. Une fois que le carte est connectée à un point d'accès Wi-Fi local en utilisant ses propres références ou celles du développeur, elle établit automatiquement une connexion MQTT avec AWS IoT Core en utilisant la pile TCP/IP intégrée du module Wi-Fi et les références de sécurité pré-provisionnées. Après avoir établi cette connexion MQTT, la carte commence immédiatement à transmettre les données de ses capteurs de température et de lumière. Les développeurs peuvent consulter les résultats sur une page spécifique au dispositif dans un compte sandbox Microchip.

Microchip fournit cette application de base dans des référentiels séparés pour le code PIC-IoT WA et le code AVR-IoT WA. En examinant ce code, les développeurs peuvent comprendre rapidement les schémas de conception de base, comme l'utilisation de connexions MQTT lors de la communication avec le cloud pour envoyer des données de capteurs et recevoir des commandes ou des données (Liste 1).

Copier
// This will get called every 1 second only while we have a valid Cloud connection
static void sendToCloud(void)
{
    static char json[PAYLOAD_SIZE];
    static char publishMqttTopic[PUBLISH_TOPIC_SIZE];
    ledTickState_t ledState;
    int rawTemperature = 0;
    int light = 0;
    int len = 0;    
    memset((void*)publishMqttTopic, 0, sizeof(publishMqttTopic));
    sprintf(publishMqttTopic, "%s/sensors", cid);
    // This part runs every CFG_SEND_INTERVAL seconds
    if (shared_networking_params.haveAPConnection)
    {
        rawTemperature = SENSORS_getTempValue();
        light = SENSORS_getLightValue();
        len = sprintf(json,"{\"Light\":%d,\"Temp\":%d.%02d}", light,rawTemperature/100,abs(rawTemperature)%100);
    }
    if (len >0) 
    {
        CLOUD_publishData((uint8_t*)publishMqttTopic ,(uint8_t*)json, len);        
        if (holdCount)
        {
            holdCount--;
        }
        else
        {
            ledState.Full2Sec = LED_BLIP;
            LED_modeYellow(ledState);
        }
        
    }
}
 
//This handles messages published from the MQTT server when subscribed
static void receivedFromCloud(uint8_t *topic, uint8_t *payload)
{
    char *toggleToken = "\"toggle\":";
    char *subString;
    ledTickState_t ledState;
   sprintf(mqttSubscribeTopic, "$aws/things/%s/shadow/update/delta", cid);
    if (strncmp((void*) mqttSubscribeTopic, (void*) topic, strlen(mqttSubscribeTopic)) == 0) 
    {
        if ((subString = strstr((char*)payload, toggleToken)))
        {
            if (subString[strlen(toggleToken)] == '1')
            {   
                setToggleState(TOGGLE_ON);
                ledState.Full2Sec = LED_ON_STATIC;
                LED_modeYellow(ledState);
            }
            else
            {
                setToggleState(TOGGLE_OFF);
                ledState.Full2Sec = LED_OFF_STATIC;
                LED_modeYellow(ledState);
            }
            holdCount = 2;
        }
    }
    debug_printer(SEVERITY_NONE, LEVEL_NORMAL, "topic: %s", topic);
    debug_printer(SEVERITY_NONE, LEVEL_NORMAL, "payload: %s", payload);
    updateDeviceShadow();
}

Liste 1 : Les développeurs peuvent examiner des échantillons de code dans les référentiels logiciels de Microchip afin de mieux comprendre les principaux schémas de conception tels que l'échange de messages MQTT avec les services cloud, comme illustré dans ces deux fonctions. (Source du code : Microchip Technology)

Les développeurs peuvent étendre ce code en utilisant une variété de ressources de développement. Microchip prend en charge le développement logiciel personnalisé avec son environnement de développement intégré (IDE) MPLAB X, son IDE basé cloud MPLAB Xpress et ses compilateurs MPLAB XC gratuits. Pour le débogage, chaque carte inclut le nano-débogueur Microchip PICkit On-Board (PKOB), qui élimine le recours à une interface matérielle de débogage supplémentaire. Les développeurs accèdent au débogueur PKOB via la connexion USB de leur ordinateur personnel lorsqu'ils travaillent dans l'IDE MPLAB X.

Solution AWS Greengrass prête à l'emploi

Grâce à Microchip, il est presque aussi simple d'étendre le réseau IoT avec des ressources edge computing basées sur AWS Greengrass que de déployer des points d'extrémité connectés au cloud.

Pour la plateforme edge computing, Microchip fournit le système sur module (SoM) sans fil (WL) ATSAMA5D27-WLSOM1 avec support AWS Greengrass qualifié AWS. Comme avec les cartes de points d'extrémité de Microchip, l'ATSAMA5D27-WLSOM1 fournit une plateforme matérielle complète conçue pour la connexion aisée aux services AWS IoT Core (Figure 5).

Schéma de l'ATSAMA5D27-WLSOM1 de Microchip (cliquez pour agrandir)Figure 5 : L'ATSAMA5D27-WLSOM1 de Microchip intègre un ensemble complet de dispositifs requis pour fournir un système edge computing qualifié AWS IoT Greengrass. (Source de l'image : Microchip Technology)

Pour son processeur hôte, le WLSOM1 utilise le système en boîtier (SiP) SAMA5D27 basse consommation ATSAMA5D27C-LD2G-CU qui intègre le SAMA5D27 basé sur le processeur Arm-Cortex-A5 hautes performances de Microchip, contenant deux gigabits (Gb) de mémoire LPDDR2-SDRAM.

Comme pour ses cartes de points d'extrémité, le WLSOM1 de Microchip inclut un module sans fil certifié. Dans ce cas, Microchip utilise l'ATWILC3000, qui prend en charge à la fois la connectivité Wi-Fi et Bluetooth avec coexistence en utilisant une combinaison d'accélérateurs matériels intégrés, de processeurs intégrés et de micrologiciels de pile. Le WLSOM1 offre également une connectivité filaire gérée par un émetteur-récepteur Ethernet KSZ8081RNAIA de Microchip. Microchip inclut 64 Mb de mémoire Flash SST26VF064BEUI, pré-provisionnée avec un identificateur unique étendu IEEE de 6 octets (EUI-48) et de 8 octets (EUI-64). Cela garantit une adresse MAC unique au monde afin de se connecter de manière fiable à l'Internet public. (Voir « Une mémoire Flash avec adresse MAC intégrée peut être d'une aide précieuse lors du développement ».)

Enfin, le WLSOM1 inclut l'élément sécurisé ATECC608A pour la sécurité basée sur le matériel. Grâce à son haut niveau d'intégration, le WLSOM1 requiert relativement peu de composants autres que des condensateurs de découplage et des résistances d'excursion haute pour mettre en œuvre l'interface matérielle dans une conception de carte.

La mise en place d'une carte basée WLSOM1 sur AWS IoT Greengrass demande très peu d'efforts. En fait, l'essentiel de l'effort consiste à configurer les services AWS pour son utilisation. Pour ce faire, Microchip fournit aux développeurs des guides détaillés, notamment sur la façon de créer un compte AWS et de définir un groupe Greengrass de dispositifs Greengrass Core et de points d'extrémité. Après avoir construit le système cible sur un système de développement Linux, les développeurs téléchargent l'image cible, le logiciel Greengrass Core et les certificats sur le WLSOM1, généralement à l'aide d'une clé USB SDCard.

L'authentification et les communications sécurisées fonctionnent de manière transparente pour le développeur grâce à la sécurité matérielle fournie par l'élément sécurisé ATECC608A. Pour les systèmes Greengrass en périphérie, cependant, l'ATECC608A joue un rôle plus important dans la protection des clés privées qui sous-tendent les communications sécurisées entre Greengrass Core fonctionnant sur le système en périphérie et le cloud AWS.

Les dispositifs d'un groupe Greengrass s'appuient sur des certificats numériques pour s'authentifier mutuellement et authentifier leurs messages au sein du groupe et avec les services AWS basés cloud (Figure 6). Si les protocoles et les mécanismes de sécurité sous-jacents sont compromis en raison de clés privées exposées ou de certificats frauduleux, le groupe et même les ressources basées cloud peuvent être compromis à leur tour.

Schéma de plusieurs certificats soutenus par des clés privées stockées dans les points d'extrémitéFigure 6 : Pour garantir la sécurité des transactions de communication, les services AWS cloud et les groupes AWS IoT Greengrass s'appuient sur de multiples certificats soutenus par des clés privées stockées dans les points d'extrémité et le dispositif Greengrass Core. (Source de l'image : Amazon Web Services

AWS se protège et protège les applications de ses utilisateurs en n'autorisant les interactions qu'avec des dispositifs de confiance qui intègrent un élément de sécurité matériel capable de protéger les clés privées utilisées pour les communications sécurisées entre le dispositif Greengrass Core et AWS IoT Core, et entre le dispositif Greengrass Core et les points d'extrémité (Figure 7).

Schéma du dispositif Greengrass Core reposant sur le stockage sécurisé de clés privéesFigure 7 : Un dispositif Greengrass Core repose sur le stockage sécurisé de clés privées avec des éléments sécurisés tels que le dispositif ATECC608A intégré dans le SOM sans fil ATSAMA5D27-WLSOM1 de Microchip. (Source de l'image : Amazon Web Services)

AWS a identifié le WLSOM1 ainsi que l'élément de sécurité ATECC608A comme des solutions qualifiées Greengrass capables de répondre à ses exigences de sécurité. En fait, l'ATECC608A prend en charge la capacité de sécurité améliorée d'AWS fournie dans IoT Greengrass Hardware Security Integration (HSI). HSI utilise les normes de cryptographie à clé publique n°11, qui définissent une interface de programmation (API) standard pour les communications entre un processeur et un module de sécurité matériel (HSM) utilisé pour stocker des clés privées. Dans le WLSOM1, l'ATECC608A est désigné comme HSM qualifié AWS Greengrass. La prise en charge pour cette interface de sécurité standard est particulièrement importante pour les systèmes basés sur Linux utilisés dans les systèmes de périphérie en général, et dans les dispositifs Greengrass Core en particulier

Grâce à cette base logicielle sécurisée, les développeurs peuvent étendre en toute sécurité leurs systèmes de périphérie Greengrass Core avec des capacités de traitement local en utilisant les fonctions AWS Lambda, qui fournissent un modèle de programmation par événement relativement simple. Alors que le code personnalisé exécuté sur le dispositif Greengrass Core peut prendre en charge des exigences d'application spécifiques, les fonctions AWS Lambda permettent à ces dispositifs d'interagir directement avec les services AWS cloud. Par exemple, les développeurs peuvent facilement implémenter des fonctions Lambda qui connectent les points d'extrémité aux services AWS, comme le système de gestion de base de données NoSQL DynamoDB d'Amazon pour le stockage des données ou d'autres services dans le vaste ensemble d'offres AWS (Figure 8).

Schéma d'AWS IoT Greengrass permettant aux systèmes de périphérie de fournir un traitement localFigure 8 : AWS IoT Greengrass permet aux systèmes de périphérie de fournir un traitement local, y compris l'utilisation des fonctions AWS Lambda pour une intégration simple avec les services AWS cloud pour le stockage de données, l'apprentissage automatique et d'autres capacités. (Source de l'image : Amazon Web Services)

Conclusion

Le déploiement d'un réseau IoT avec des ressources edge computing peut s'avérer une entreprise intimidante avec de multiples exigences en matière de points d'extrémité, de systèmes edge computing et de connectivité cloud sécurisée. Des éléments individuels pour la solution requise existent, mais leur intégration dans une application IoT coordonnée laisse aux développeurs la tâche complexe d'implémenter les interfaces de service, les méthodes de communication et les protocoles de sécurité requis par les fournisseurs de cloud IoT.

Comme démontré, un ensemble de produits edge computing et de points d'extrémité compatibles cloud de Microchip Technology fournit une solution prête à l'emploi conçue pour se connecter facilement aux services AWS IoT et au service edge computing AWS IoT Greengrass. Les développeurs peuvent utiliser les cartes de points d'extrémité qualifiées AWS de Microchip et une plateforme edge computing de système sur module sans fil pour fournir une connectivité quasi transparente à AWS cloud et accélérer le déploiement du réseau IoT.

Lectures complémentaires

  1. Une mémoire Flash avec adresse MAC intégrée peut être d'une aide précieuse lors du développement
DigiKey logo

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

À propos de l'auteur

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk affiche plus de 20 ans d'expérience dans la rédaction de contenu pour et sur l'industrie électronique, couvrant un large éventail de sujets, notamment le matériel, les logiciels, les systèmes et les applications, y compris l'IoT. Il a obtenu son doctorat (Ph.D.) en neurosciences sur les réseaux neuronaux et a travaillé dans l'industrie aérospatiale sur les systèmes sécurisés massivement distribués et les méthodes d'accélération par algorithmes. Actuellement, lorsqu'il n'écrit pas d'articles techniques, il travaille sur l'application de l'apprentissage approfondi pour les systèmes de reconnaissance et de recommandation.

À propos de l'éditeur

Rédacteurs nord-américains de DigiKey