Les fonctionnalités de mises à jour OTA disponibles avec les ESP8266 apportent une grande souplesse dans le développement et surtout l'évolution de vos projets. Inutile dès lors de devoir désinstaller un matériel déjà confortablement en place pour le connecter en USB, puisque tout se passe, in situ, au travers de la connexion wifi. Mais contrairement à une liaison USB nécessitant un accès physique, l'OTA constitue un risque en termes de sécurité : quiconque trouve, espionne ou devine le mot de passe est en mesure de remplacer votre code par le sien. Mais le support ESP8266 pour Arduino propose une solution à cette faiblesse...
Précisons de suite que l'objectif du mécanisme qui va être décrit n'est pas de protéger le firmware, mais d'empêcher une mise à jour non autorisée et donc le remplacement du code par quelque chose de potentiellement nuisible. Les ESP32, eux, proposent des solutions plus poussées comme le chiffrement du firmware et un mécanisme de boot sécurisé couvrant ce type de fonctionnalité, mais pas les ESP8266.
Comme nous l'avons vu dans le numéro 31 [1], l'accès au contenu de la mémoire flash, qu'il s'agisse de la zone dédiée à SPIFFS ou au programme exécuté, n'est pas très difficile. Pour l'heure, les outils de reverse engineering comme Ghidra en version stable [2] n'intègrent pas le support pour le processeur Tensilica Xtensa utilisé par les ESP8266, mais cela ne saurait tarder [3]. Même sans un tel outil, la simple analyse des données en flash, comme les chaînes qui s'y trouvent, peut suffire à comprendre des éléments importants de votre projet ou...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première