Département GEII – IUT A – Université de Lille – Colloque GEII LONGWY – 23/05/19 1 [email protected]Colloque GEII 2019 – Commission IoT Administration/Exploitation de capteurs connectés avec Un exemple d’utilisation de plateforme de services pour l’IoT MCU ESP32 ca
27
Embed
Un exemple d’utilisation de plateforme de services pour l’IoT · Les échanges objet-plateforme GCP : protocole MQTT over TLS 1.2 over TCP. L’objet est un client MQTT, le point
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Département GEII – IUT A – Université de Lille – Colloque GEII LONGWY – 23/05/19
Volonté de réaliser dans ce contexte pédagogique un projet IoT quasi professionnel (mise en production et exploitation), intégrant la sécurité
Contexte : projet tuteuré de LPRO SARII
Nécessité d’une plateforme cloud pour l’IoT
Nécessité d’objets avec connectivité WiFi 802.11 b/g/n
Nécessité d’un « OS » pour chaque objet, ayant des API IoT (et lesutilitaires associés pour flasher, provisionner, mettre à jour, etc.)
Cas d’usage : Surveillance continue de la température et de l’humidité en différents points d’un bâtiment. Un OBJET / point. Chaque point a un accès WiFi.
Ensuite, on veut DES OUTILS pour :
• Déployer (to provision) 10, 100, 1000, etc. objets
• Exploiter les mesures : persistance des données + live plot
• Monitorer les objets (« last seen », activity, etc.) et les mettre à jour
Département GEII – IUT A – Université de Lille – Colloque GEII LONGWY – 23/05/19
Les échanges objet-plateforme GCP : protocole MQTT over TLS 1.2 over TCP.L’objet est un client MQTT, le point d’entrée de GCP est un serveur MQTT.TLS est adapté à ce mode client-serveur. Avec TLS :
• Le serveur, donc la plateforme, est authentifié auprès de l’objet.• Les données échangées sont chiffrées (confidentialité).• L’intégrité des données est vérifiée.
Cloud IoT Core
Devices
MQTT
Bridge
ESP32
&
DHT22
sensor
ESP32
&
DHT22
sensor
State
Telemetry
Configindoor
outdoor
State
Telemetry
Config
TLS
TLS
Département GEII – IUT A – Université de Lille – Colloque GEII LONGWY – 23/05/19
Inversement, l’objet s’authentifie auprès de la plateforme en lui envoyant initialement un JSON Web Token (JWT) comprenant 3 parties :
Devices
MQTT
Bridge
ESP32
&
DHT22
sensor
ESP32
&
DHT22
sensor
State
Telemetry
Configindoor
outdoor
State
Telemetry
Config
JWT
JWT
{"alg": "ES256", "typ": "JWT"}.
• Les 3 parties du JWT seront enfin encodées en base64url.
Sécurité : Une paire unique de clés par objet !
• Un header avec l’algorithme utilisé (alg) dans la signature et le type de jeton (typ),
• Un payload avec des claims : nom du projet GCP (aud), date d’émission (iat) du token et date d’expiration (exp),
• Une signature calculée par la clé privée de l’objet et l’algorithme précisé dans le header.
• GCP valide le token reçu et donc l’identité de l’objet en vérifiant la signature du tokengrâce à la clef publique de l’objet qui lui a été communiquée lors du provisionnement.
Initiation d’un cercle vertueux pour la sécurité (NB : surface d’attaque restant sous notre responsabilité = objet physique lui-même)
Chiffrer la mémoire flash des objets => reverse-engineering, obtentions des clés / des SSID & pwd WiFi, etc. rendus impossible
Empêcher un PC se connectant à l’objet (par JTAG, UART, etc.) d’obtenir des informations
Vérifier l’intégrité du code après chaque reset (secure boot), a fortiori après une MAJ du code, souvent faite Over The Air.
Sécurité de bout en bout ? serveurs back-end / front-end, appli. mobile…
• En aval de la plateforme, l’éventuelle infrastructure « classique » avec des technos très répandues pour le stockage des données et l’hébergement des applications, etc. est une surface d’attaque bien plus grande que celle d’objets désormais protégés et communiquant correctement avec la plateforme.
serveurs clients
réseaux
Département GEII – IUT A – Université de Lille – Colloque GEII LONGWY – 23/05/19
❶ indoor, d’id esp32_ABB3B4, publie sur son topic de télémétrie /devices/esp32_ABB3B4/eventsle message {"temperature": 22.4, "humidity": 43}. (Publication MQTT avec QoS de 1)
Ce topic Pub/Sub de télémétrie, de nom weather-telemetry-topic,a été créé pour tous les objets du registre weather-devices-registry.❸ Pub/Sub publie le message venant du MQTT bridge…
❹ …et les points qui sont abonnésà ce topic reçoivent le message.
MQTT bridge reçoit les messages de tous les topics de télémétrie des objets enregistrés.❷ Il transfère à un Pub/Sub de télémétrie le message qu’il a reçu.
Département GEII – IUT A – Université de Lille – Colloque GEII LONGWY – 23/05/19
• « Objets connectés : des radiofréquences aux réseaux », Université Fédérale Toulouse Midi-Pyrénées, MOOC, France Université Numérique
• E. Bajic, B. Auriac, G. Koenig : "Objets Connectés Industriels : Identification et Géolocalisation dans une Infrastructure Internet des Objets », http://www.koenigguillaume.me/portfolio2/files/PIDR.pdf
• Le modèle économique de l’IoT est un modèle de service.• La plateforme cloud permet de s’y consacrer rapidement et efficacement :
• Cadre & Sécurité• Outils de provisionnement et de monitoring• Briques de service diversifiées et multiples, s’intégrant bien ensemble
• À venir…• Tester freeRTOS / Mongoose OS. Idem AWS / GCP. Tester OTA updates.• Utiliser d’autres briques de GCP (Big Query, Data Studio).• Utiliser GCP avec un « vrai » protocole IoT comme LoRaWAN.