1. Les spécificités de la menace sur les objets connectés

L’Internet des Objets présente des vulnérabilités critiques uniques :

  • Objets physiquement accessibles dans l’espace public (risques de rétro-ingénierie, vol de puces mémoire, lecture de clés non chiffrées).
  • Contraintes de ressources CPU interdisant l’usage d’antivirus ou d’agents lourds de surveillance.
  • Longévité opérationnelle importante (des capteurs déployés pour 10 ou 15 ans sans patch de sécurité).

2. Authentification mutuelle par certificats (mTLS – Mutual TLS)

Dans une connexion web classique (HTTPS), seul le serveur présente son certificat pour prouver son identité au navigateur. Dans les architectures IoT professionnelles, l’authentification mutuelle TLS (mTLS) est indispensable :

Poignée de main mTLS :
1. Le client ESP32 se connecte au Broker MQTT.
2. Le Broker présente son certificat X.509 signé par l'Autorité de Certification (CA) d'entreprise. L'ESP32 valide l'authenticité du serveur.
3. Le Broker exige à son tour que le client prouve son identité.
4. L'ESP32 présente son propre certificat client X.509 unique et signe une épreuve cryptographique avec sa clé privée protégée.
5. Si les certificats sont valides : Le canal de communication chiffré est établi. Aucun appareil non authentifié ne peut envoyer de fausses commandes.

3. Mises à jour distantes du microgiciel (Secure Firmware OTA)

La capacité de corriger des failles de sécurité logicielles à distance (OTA – Over The Air) sans intervention humaine physique sur site est obligatoire :

  1. Signature cryptographique du binaire : Le nouveau firmware compilé est signé avec une clé privée RSA/ECDSA détenue exclusivement par l’équipe d’ingénierie dans un environnement sécurisé (HSM).
  2. Vérification de signature par le Bootloader : Avant de flasher la nouvelle image dans la mémoire partitionnée de l’ESP32, le bootloader sécurisé vérifie mathématiquement la signature avec la clé publique ancrée dans le matériel (Secure Boot).
  3. Partitionnement A/B (Rollback automatique) : La mémoire Flash est divisée en deux partitions logicielles (ota_0 et ota_1). La mise à jour est écrite sur la partition inactive. Si le nouveau firmware ne réussit pas son auto-test de démarrage (Health Check), le système bascule automatiquement sur l’ancienne version opérationnelle, évitant tout blocage irrémédiable de l’objet (Brick).

Exigence fédérale suisse : Le Centre national pour la cybersécurité suisse (NCSC) recommande formellement l’utilisation de certificats mTLS et le chiffrement de bout en bout pour tous les dispositifs IoT connectés aux infrastructures critiques du pays.