0% ont trouvé ce document utile (0 vote)
74 vues118 pages

Mémoire en Vue de L'obtention Du Diplôme de

Le mémoire de RANDRIANJATOVO Heritiana présente une évaluation des vulnérabilités et des mises en œuvre pratiques pour la sécurité et la résilience des dispositifs IoT. Il aborde les fondements de l'Internet des Objets, les protocoles de communication, les vulnérabilités courantes et propose des recommandations de sécurité. Ce travail a été soutenu à l'Université d'Antananarivo dans le cadre de l'obtention d'un diplôme de Master en Télécommunication.

Transféré par

josemswernerlodwige
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
74 vues118 pages

Mémoire en Vue de L'obtention Du Diplôme de

Le mémoire de RANDRIANJATOVO Heritiana présente une évaluation des vulnérabilités et des mises en œuvre pratiques pour la sécurité et la résilience des dispositifs IoT. Il aborde les fondements de l'Internet des Objets, les protocoles de communication, les vulnérabilités courantes et propose des recommandations de sécurité. Ce travail a été soutenu à l'Université d'Antananarivo dans le cadre de l'obtention d'un diplôme de Master en Télécommunication.

Transféré par

josemswernerlodwige
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

N° d’ordre : 20 / STI / TCO Année Universitaire : 2019 / 2020

UNIVERSITÉ D’ANTANANARIVO
----------------------
ECOLE SUPÉRIEURE POLYTECHNIQUE
-----------------------
MENTION TELECOMMUNICATION

MÉMOIRE
en vue de l’obtention
du DIPLÔME de

Grade : Master
Titre : Ingénieur
Domaine : Sciences de l’Ingénieur
Mention : Télécommunication
Parcours : Système et Traitement de l’Information

par : RANDRIANJATOVO Heritiana

SÉCURITÉ ET RÉSILIENCE DES DISPOSITIFS IoT :


ÉVALUATION DES VULNÉRABILITÉS ET MISES EN OEUVRE
PRATIQUES
Soutenu le 16 Octobre 2023 à 09h30 devant la Commission d’Examen composée de :

Président :
M. RAKOTOMALALA Mamy Alain

Examinateurs :
M. RAVONIMANANTSOA Ndaohialy Manda-Vy
M. RATSIHOARANA Constant
M. RASOLOMANANA Jean Fanomezantsoa
Directeur de mémoire :
M. RATSIMBAZAFY Andriamanga

1
1
REMERCIEMENTS

Avant tout, il m’est particulièrement agréable d’exprimer mes remerciements au Seigneur de m’avoir
donné la force pour mener à bien l’élaboration de ce travail de mémoire.
Mes sincères remerciements s’adresse ensuite à Monsieur RAVELOMANANA Mamy Raoul,
Professeur Titulaire et Président de l’Université d’Antananarivo, à Monsieur RAKOTOSAONA
Rijalalaina, Professeur Titulaire, Responsable du Domaine Sciences de l’Ingénieur de l’Ecole
Supérieure Polytechnique d’Antananarivo, ainsi qu’à Monsieur RAJAONARISON Tianandrasana
Roméo, Maître de Conférences à l’Ecole Supérieure Polytechnique d’Antananarivo et Responsable de
la Mention Télécommunication, pour l’honneur de m’avoir accueilli au sein de l’établissement.
Je voudrais ensuite exprimer ma profonde reconnaissance à Monsieur RATSIMBAZAFY
Andriamanga, Maître de Conférences et Directeur de ce mémoire, qui malgré ses lourdes
responsabilités m’a toujours prodigué ses conseils et ses critiques durant l’élaboration de ce travail.
J’exprime également toute ma reconnaissance aux membres du jury présidé par Monsieur
RAKOTOMALALA Mamy Alain, Professeur, qui ont voulu examiner mon travail :
• Monsieur RAVONIMANANTSOA Ndaohialy Manda-Vy, Professeur ;
• Monsieur RATSIHOARANA Constant, Maître de Conférences ;
• Monsieur RASOLOMANANA Jean Fanomezantsoa, Maître de Conférences.
Je tiens à remercier tous les Enseignants Chercheurs et Personnels administratifs de l’Ecole Supérieure
Polytechnique d’Antananarivo en particulier ceux de la Télécommunication.
Je suis profondément reconnaissant envers ma famille qui m’ont soutenu tant bien moralement que
matériellement tout au long de mes années d’études et surtout lors de l’accomplissement de ce présent
mémoire. Je leur dédie ce mémoire.
A mes amis qui m’ont tenu compagnie avec une sincère fraternité, à toutes les personnes qui m’ont
donné leurs collaborations, que ce soit de près ou de loin, je vous remercie tous

i
TABLE DES MATIERES

REMERCIEMENTS ............................................................................................................................... i

TABLE DES MATIERES ..................................................................................................................... ii

NOTATIONS ET ABRÉVIATIONS ................................................................................................... vi

INTRODUCTION GENERALE ......................................................................................................... xii

CHAPITRE 1 FONDEMENTS DE L’INTERNET DES OBJETS....................................................... 1

1.1 Introduction .................................................................................................................................. 1

1.2 Généralités sur l’internet des objets ............................................................................................. 1

1.2.1 Historique et évolution.......................................................................................................... 1

1.2.2 Définition et principe ............................................................................................................ 2

1.3 Concepts clés de l’IoT ................................................................................................................. 4

1.3.1 Capteurs et Actionneurs........................................................................................................ 4

1.3.2 Connectivité .......................................................................................................................... 5

1.3.3 Cloud Computing .................................................................................................................. 6

1.3.4 Analyse de Données et Intelligence Artificielle .................................................................... 8

1.4 Architecture typique des systèmes IoT ........................................................................................ 8

1.4.1 Couche de Perception ou Couche de Capteurs .................................................................... 9

1.4.2 Couche de Réseau ou Couche de Transport ....................................................................... 10

1.4.3 Couche Middleware ou Couche de Traitement .................................................................. 10

1.4.4 Couche d’Application ......................................................................................................... 11

1.4.5 Couche Business ................................................................................................................. 11

1.5 Domaines d’application des systèmes IoT................................................................................. 12

1.5.1. Santé et Bien-être ............................................................................................................... 13

1.5.2. Villes Intelligentes et Domotique ....................................................................................... 13

1.5.3 Industrie et Fabrication ...................................................................................................... 15

1.5.4 Agriculture Intelligente ....................................................................................................... 15

ii
1.5.5 Logistique et Chaîne d'Approvisionnement ........................................................................ 16

1.5.6 Environnement et Conservation.......................................................................................... 17

1.6 Principaux acteurs de l’écosystème IoT .................................................................................... 17

1.6.1 Fabricants et Fournisseurs ................................................................................................. 17

1.6.2 Développeurs et Intégrateurs.............................................................................................. 17

1.6.3 Opérateurs de Réseau ......................................................................................................... 19

1.6.4 Utilisateurs Finaux ............................................................................................................. 19

1.6.5 Organisations de Normalisation ......................................................................................... 20

1.7 Conclusion ................................................................................................................................. 21

CHAPITRE 2 PROTOCOLES ET COMMUNICATIONS DANS L’IoT .......................................... 22

2.1 Introduction ................................................................................................................................ 22

2.2 Les systèmes de communications sans fil.................................................................................. 22

2.2.1 IEEE 802.15.4 ..................................................................................................................... 22

2.2.2 Bluetooth Low Energy ........................................................................................................ 22

2.2.3 Wi-fi ah ............................................................................................................................... 24

2.2.4 LTN ..................................................................................................................................... 26

2.2.5 Etude comparative des technologies................................................................................... 28

2.3 Protocoles de communications dans IoT ................................................................................... 32

2.3.1 Couche Application............................................................................................................. 33

2.3.2 Couche transport ................................................................................................................ 37

2.3.3 Couche réseau..................................................................................................................... 39

2.3.6 Couche physique ................................................................................................................. 40

2.4 Conclusion ................................................................................................................................. 40

CHAPITRE 3 SÉCURITÉ DES DISPOSITIFS IoT ........................................................................... 41

3.1 Introduction ................................................................................................................................ 41

3.2 Vulnérabilités courantes dans les dispositifs IoT ...................................................................... 41

iii
3.2.1 Faiblesses du matériel et du firmware ................................................................................ 41

3.2.2 Attaques logicielles courantes ............................................................................................ 43

3.2.3 Failles de sécurité matérielles ............................................................................................ 43

3.3 Sécurité des communications dans l’IoT ................................................................................... 45

3.3.1 Couche perception .............................................................................................................. 46

3.3.2 Couche réseau..................................................................................................................... 47

3.3.3 Couche application ............................................................................................................. 48

3.4 Méthodologies d'évaluation de la sécurité ................................................................................. 49

3.4.1 Revue des méthodes de test de sécurité pour les dispositifs IoT ......................................... 50

3.4.2 Évaluation des vulnérabilités par analyse statique ............................................................ 50

3.4.3 Évaluation des vulnérabilités par analyse dynamique ....................................................... 51

3.5 Mesures de sécurité pour renforcer la résilience des dispositifs IoT ......................................... 52

3.5.1 Protection matérielle et sécurisation des composants ........................................................ 53

3.5.2 Utilisation de protocoles de sécurité et de chiffrement ...................................................... 53

3.5.3 Mécanismes d'authentification et d'autorisation ................................................................ 53

3.5.4 Surveillance et Gestion des Mises à Jour ........................................................................... 56

3.5 Conclusion ................................................................................................................................. 56

CHAPITRE 4 MISE EN OEUVRE PRATIQUE SUR L’ESP8266.................................................... 57

4.1 Introduction à l'ESP8266 et son rôle dans l'IoT......................................................................... 57

4.1.1 Présentation de l'ESP8266 en tant que plateforme IoT ...................................................... 57

4.1.2 Utilisation de l'ESP8266 dans différents dispositifs IoT .................................................... 58

4.2 Position du problème ................................................................................................................. 58

4.2.1 Problématique de sécurité dans l'IoT et choix de la démonstration................................... 59

4.2.2 Choix de l’attaque MITM ................................................................................................... 59

4.3 Présentation des outils et technologies utilisés .......................................................................... 61

4.3.1 Arduino IDE ........................................................................................................................ 61

iv
4.3.2 Wireshark ............................................................................................................................ 62

4.3.3 Les bibliothèques nécessaires ............................................................................................. 62

4.4 Configuration de l'environnement expérimental........................................................................ 62

4.4.1 Installation des outils et logiciels nécessaires .................................................................... 63

4.4.2 Mise en place du matériel ................................................................................................... 70

4.4.3 Présentation des scenarios ................................................................................................. 74

4.5 Analyse des résultats .................................................................................................................. 89

4.6 Recommandations de sécurité pour les dispositifs IoT ............................................................. 91

4.6.1 Directives pour les fabricants et développeurs de dispositifs IoT ...................................... 91

4.6.2 Bonnes pratiques pour les utilisateurs et les administrateurs ............................................ 91

4.9 Conclusion ................................................................................................................................. 92

CONCLUSION GENERALE.............................................................................................................. 93

ANNEXE 1 OPEN HARDWARE ...................................................................................................... 94

A1.1 NodeMCU ESP8266 ............................................................................................................... 94

A1.2 BMP280 .................................................................................................................................. 95

ANNEXE 2 COMPARAISON DES CARTES PROGRAMMABLES .............................................. 96

ANNEXE 3 EXTRAIT DE CODE SUR IDE ARDUINO .................................................................. 97

A3.1 Extrait de code pour la connexion entre le dispositif et thingspeak ....................................... 97

A3.2 Extrait de code pour la connexion entre le dispositif et HiveMQ........................................... 98

BIBLIOGRAPHIE ............................................................................................................................... 99

FICHE DE RENSEIGNEMENTS ..................................................................................................... 103

RESUME

ABSTRACT

v
NOTATIONS ET ABRÉVIATIONS

1. Notations

𝜆 Longueur d’onde

ber Taux d’erreur binaire

dc Distance de crossover

D Distance entre émetteur et récepteur

Gr Gain de l’antenne de réception

Gt Gain de l’antenne d’émission

ht Hauteur de l’antenne d’émission

hr Hauteur de l’antenne de réception

L Perte en espace libre

Nd Taille de données

Nmp Taille maximale de données

Nos Taille overhead

Nerr Nombre d’erreurs

Ntxbits Nombre de bits transmis

Pr Puissance reçue

Pt Puissance transmise

Tbit Durée d’un bit

Tp Durée de propagation entre les deux

Ttx Durée de transmission

vi
2. Abréviations

2FA 2-Factor Authentication

AES Advanced Encryption Standard

AMQP Advanced Message Queuing Protocol

API Application Programming Interface

BLE Bluetooth Low Energy

CARP Channel-Aware Routing Protocol

CCTV Closed-Circuit Television

CoAP Constrained Application Protocol

CORPL Cognitive RPL

CRA Central Registration Authority

CVE Common Vulnerability Exposure

DCCP Datagram Congestion Control Protocol

DoS Denial of Service

DTLS Datagram Transport Layer Security

ECC Elliptic Curve Cryptography

ESP8266 Encapsulating Security Payload

EtherCAT Ethernet for Control Automation Technology

FIPS Federal Information Processing Standards

FTP File Transfer Protocol

GND Ground

vii
GPIO General Purpose Input Output

GPS Global Positioning System

HTTP HyperText Transfer Protocol

HTTPs HyperText Transfer Protocol secured

IA Intelligence Artificielle

ID IDentifiant

IDE Integrated Development Environment

IEEE Institute of Electrical and Electronics Engineers

IETF Internet Engineering Task Force

I2C Inter Integrated Circuit

IDE Integrated Development Environment

IoT Internet Of Things

IP Internet Protocol

IPv6 Internet Protocol version 6

IRTF Internet Research Task Force

ITU-T International Telecommunication Union-Telecommunication

LG Life’s Good

LoRaWAN Long Range Wide Area Network

LPWAN Low-power Wide Area Network

LTE Long Term Evolution

LTN Low Througput Network

viii
M2M Machine to Machine

MEMS Micro Electro Mechanical Systems

MIT Massachusetts Institute of Technology

MITM Man-in-the-Middle

MQTT Message Queuing Telemetry Transport

NB-IoT NarrowBand-Internet of Things

NFC Near Field Communication

NIST National Institute of Standards and Technology

NodeMCU Node Micro Controller Unit

NVD National Vulnerability Database

OSI Open Systems Interconnection

OQPSK Offset Quadrature Phase Shift Keying

P2P Peer-to-Peer

PSK Phase-Shift Keying

QAM Quadrature Amplitude Modulation

QoS Quality of Service

QUIC Quick UDP Internet Connections

UDP User Datagram Protocol

RAM Random Access Memory

REST Representational State Transfer

RFC Request For Comments

ix
RFID Radio Frequency Identification

RoT Root of Trust

RPL Routing Protocol for Low-Power and Lossy Networks

RPM Remote Patient Monitoring

RSA Rivest, Shamir, Adleman

RSVP Resource Reservation Protocol

SCK Serial Clock

SCL Serial Clock

SCTP Stream Control Transmission Protocol

SDA Serial Data

SIM Subscriber Indentify Module

SPI Serial Peripheral Interface

SSID Service Set IDentifier

SSL Secure Sockets Layer

TCP Transmission Control Protocol

TCP/IP Transmission Control Protocol/Internet Protocol

TEB Taux d’Erreur Binaire

TEE Trusted Execution Environment

TENG Triboelectric Nanogenerators

TIC Technologie de l'Information et de la Communication

TLS Transport Layer Security

x
TPM Trusted Platform Module

TSMP Time Synchronized Mesh Protocol

USB Universal Serial Bus

VCC Voltage Common Collector

VPL Visual Programming Language

Wi-Fi Wireless Fidelity

WPA Wi-Fi Protected Access

WS Web Socket

WSN Wireless Sensor Network

XML eXtensible Markup Language

XMPP eXtensible Messaging and Presence Protocol

xi
INTRODUCTION GENERALE

De nos jours, l'Internet des Objets ou IoT est devenu une réalité incontournable dans le domaine de la
technologie, offrant des perspectives infinies d'innovation et de transformation. L'IoT est un
écosystème interconnecté de dispositifs, de capteurs et d'objets intelligents qui collectent, échangent et
analysent des données, permettant ainsi de créer des systèmes intelligents et autonomes.

L'IoT a révolutionné notre façon d'interagir avec le monde qui nous entoure. Les dispositifs IoT sont
devenus omniprésents dans notre quotidien, allant des montres connectées et des assistants vocaux
intelligents aux voitures autonomes et aux infrastructures intelligentes des villes. L'impact de l'IoT se
ressent dans de nombreux secteurs, contribuant à la transformation numérique et à la création de
nouvelles opportunités commerciales.

Malgré les avantages et les opportunités qu'il offre, l'IoT fait face à des défis majeurs en matière de
sécurité. La prolifération rapide des dispositifs IoT a exposé de nouvelles surfaces d'attaque, rendant
ces dispositifs vulnérables aux cybermenaces. Il est donc crucial de comprendre les enjeux de sécurité
spécifiques aux dispositifs IoT et de développer des solutions pour les atténuer.

Ainsi, ce mémoire vise à étudier en profondeur la sécurité des dispositifs IoT, en se concentrant sur le
cas de l'ESP8266, une plateforme populaire utilisée dans de nombreux appareils connectés. Les
objectifs spécifiques de la recherche sont : d’identifier les vulnérabilités courantes dans l'ESP8266, de
concevoir des mesures de sécurité pratiques pour renforcer la résilience de l'ESP8266, de proposer un
cadre de sécurité pour les dispositifs IoT en intégrant les résultats de l'évaluation et de la mise en œuvre.

Les chapitres 1 et 2 fournissent le contexte théorique nécessaire pour comprendre l'IoT et ses protocoles
de communication, tandis que les chapitre 3 et 4 se penchent sur les questions de sécurité, examinant
l'évaluation des vulnérabilités et mettant en pratique ces concepts sur l'ESP8266.

L’étude va apporter une contribution significative à la recherche en matière de sécurité des dispositifs
IoT, en se concentrant sur l'identification et la résolution des problèmes de sécurité spécifiques à
l'ESP8266. En explorant les enjeux liés à la sécurité de l'IoT et en proposant des solutions concrètes,
nous espérons contribuer au développement d'un écosystème IoT plus sûr et plus fiable pour l'avenir.

xii
CHAPITRE 1
FONDEMENTS DE L’INTERNET DES OBJETS

1.1 Introduction

L'Internet des objets ou IoT représente un vaste réseau mondial d'objets connectés à Internet, dépassant
en nombre les individus, chacun possédant une adresse unique. Ces objets, tels que les ordinateurs, les
capteurs, les dispositifs RFID et les appareils mobiles, peuvent échanger des informations et
éventuellement recevoir des commandes. L'IoT est aujourd'hui considéré comme la prochaine étape
majeure dans l'évolution d'Internet, offrant une amélioration significative de sa capacité et ouvrant la
voie à une multitude de scénarios basés sur l'interconnexion entre le monde physique et le monde
virtuel. [1] Dans ce chapitre, nous explorerons la définition de cette technologie émergente, son
utilisation diversifiée dans différents domaines, son évolution depuis sa conception jusqu'à nos jours,
ainsi que son architecture, son fonctionnement et les divers domaines d'application, tout en abordant
les défis potentiels liés à l'IoT.

1.2 Généralités sur l’internet des objets

1.2.1 Historique et évolution

Le terme "Internet of Things" a été introduit en 1999 par Kevin Ashton, un chercheur britannique
travaillant au MIT (Massachusetts Institute of Technology) dans le domaine de l'IoT. Ashton et ses
collaborateurs ont lancé une initiative visant à promouvoir la connectivité ouverte des objets en utilisant
la technologie de la RFID (Radio Frequency Identification). L'avènement du protocole IPv6 a ensuite
permis à des secteurs tels que l'aéronautique de s'éloigner rapidement du concept de l'Internet des objets
et de participer activement à la recherche dans ce domaine. L'Internet des objets est devenu largement
populaire en 2007, marquant le début de la construction d'un Internet mondial des objets. [2]

En 1990, la première tentative de connecter des objets a été entreprise, notamment des appareils tels
que des grille-pains, des machines à café et d'autres objets courants. Puis, en l'an 2000, le fabricant
coréen LG a marqué une avancée significative en introduisant des appareils électroménagers connectés
à Internet. Cette même année a également vu les premières expérimentations d'appareils connectés à
Internet capables de rechercher automatiquement des informations en ligne. [2]

En 2003, la population mondiale comptait environ 6,3 milliards de personnes, tandis que le nombre
d'appareils connectés à Internet atteignait 500 millions. Le résultat de la division du nombre d'appareils

1
par la population mondiale indiquait un nombre relativement faible d'appareils connectés par habitant.
Selon la définition de Cisco, l'Internet des objets n'était pas encore une réalité en 2003 en raison du
faible nombre d'objets connectés. [2]

Cependant, avec l'essor des smartphones et des tablettes, le nombre d'appareils connectés et le nombre
de personnes connectées à Internet ont explosé, atteignant respectivement 12,5 milliards et 6,8
milliards en 2010. Cela a marqué la première fois dans l'histoire où il y avait plus d'un appareil connecté
par personne, soit une moyenne de 1,84 appareil par individu. Cisco a expliqué cette évolution dans
son livre blanc sur l'Internet des objets. Aujourd'hui, le nombre d'objets connectés dépasse largement
la population mondiale, et comme indiqué, il devrait continuer à croître pour atteindre 50 milliards
d'objets connectés. [2]

Figure 1.01: Evolution de l’internet des objets.

1.2.2 Définition et principe

La technologie de l'Internet des objets est souvent considérée comme une vision du futur d'Internet.
Certains la définissent comme la capacité d'un objet à posséder une identité et une personnalité
virtuelles, opérant au sein d'environnements intelligents et interagissant grâce à des interfaces
intelligentes dans divers contextes d'utilisation. D'autres insistent sur l'aspect omniprésent de l'IoT,
permettant aux individus de se connecter entre eux et avec n'importe quel objet, où qu'ils soient et à
tout moment. Ce nouveau paradigme informatique ne repose plus uniquement sur les ordinateurs

2
personnels et les périphériques, mais sur la capacité des objets de la vie quotidienne à être équipés de
capteurs, d'intelligence intégrée, et de la capacité de communiquer via Internet.

L'Internet des objets se compose de plusieurs éléments complémentaires, chacun possédant ses propres
caractéristiques distinctes. Il permet l'utilisation de dispositifs électroniques mobiles standard et sans
fil pour identifier de manière directe et non ambiguë les objets physiques, ainsi que la capacité à
collecter, stocker, transmettre et traiter de manière continue les données associées.

L'IoT représente une fusion d'innovations et de solutions technologiques récentes qui existent déjà.
Chaque objet dans ce contexte est équipé d'une identification électronique unique qui lui permet de lire
et de transmettre des données via les protocoles du réseau Internet. Cependant, pour établir un lien
entre le monde physique et le monde virtuel, il est nécessaire de définir la nature d'un objet, sa fonction,
sa localisation spatiale et son historique. Cela nécessite que les dispositifs technologiques modélisent
l'environnement réel et le rendent virtuel. [2]

Figure 1.02: Internet des objets.

3
1.3 Concepts clés de l’IoT

1.3.1 Capteurs et Actionneurs

1.3.1.1 Les Capteurs

Un capteur est un dispositif électronique ou mécanique conçu pour détecter et mesurer une quantité
physique ou un phénomène environnemental, puis convertir cette information en un signal électrique
ou numérique pouvant être utilisé pour diverses applications. Les capteurs sont largement utilisés dans
de nombreux domaines, tels que l'automatisation industrielle, la surveillance environnementale, la
médecine, l'automobile et bien d'autres, pour recueillir des données et contrôler des systèmes en
fonction de ces informations. [3]

Figure 1.03: Principe général d’un capteur.

Figure 1.04: Exemple d’un capteur : Le BMP 280 (Température, Pression, Altitude).

1.3.1.1 Les actionneurs

Un actionneur est un dispositif ou un mécanisme qui est conçu pour exécuter une action physique ou
mécanique en réponse à un signal électrique, pneumatique, hydraulique ou autre. Les actionneurs sont
couramment utilisés pour provoquer un mouvement, une rotation, une translation ou d'autres types de
réponses mécaniques dans divers systèmes et applications. Ils sont un composant essentiel dans de
nombreuses technologies, y compris l'automatisation industrielle, les robots, les véhicules, les systèmes

4
de contrôle, et bien d'autres, permettant de convertir des signaux de commande en mouvements ou en
actions précises. [3]

Figure 1.05: Relation entre le capteur et l'actionneur.

Figure 1.06: Exemple d’un actionneur : un servo moteur.

1.3.2 Connectivité

Les dispositifs IoT utilisent diverses technologies de communication telles que le Wi-Fi, Bluetooth,
les réseaux cellulaires pour échanger des informations entre eux et avec des serveurs distants. Trois
technologies clés dominent la connectivité IoT mondiale : le Wi-Fi, le Bluetooth et l'IoT cellulaire. [4]

● Le Wi-Fi représente 31 % de toutes les connexions IoT. En 2022, plus de la moitié des appareils
compatibles Wi-Fi expédiés dans le monde étaient basés sur les dernières technologies Wi-Fi
6 et Wi-Fi 6E, offrant une connectivité sans fil plus rapide et fiable. L'intégration de ces
avancées a amélioré l'efficacité de la communication entre les appareils IoT, entraînant une

5
meilleure expérience utilisateur et des performances globales accrues. La technologie Wi-Fi est
en tête de la connectivité IoT dans des secteurs tels que les maisons intelligentes, les bâtiments
et les établissements de santé.
● Le Bluetooth représente 27 % des connexions IoT mondiales. La technologie Bluetooth à faible
consommation d'énergie (BLE), également appelée Bluetooth Smart, a été continuellement
améliorée pour permettre aux appareils IoT de maintenir une connectivité fiable tout en
consommant peu d'énergie. Par conséquent, le BLE est devenu l'option privilégiée pour les
appareils IoT alimentés par batterie, tels que les capteurs des maisons intelligentes et les
dispositifs de suivi d'actifs. Même le secteur industriel montre un intérêt croissant pour la
technologie IO-Link Wireless, basée sur la norme technique IEEE 802.15.1 (la norme technique
du Bluetooth), permettant la communication sans fil entre les capteurs/actionneurs et un I/O
master (Entrée/Sortie).
● L'IoT cellulaire représente désormais près de 20 % des connexions mondiales IoT, en utilisant
des technologies telles que la 2G, la 3G, la 4G, la 5G, le LTE-M et le NB-IoT. Selon le Global
Cellular IoT Connectivity Tracker & Forecast (Mise à jour Q1/2023) d'IoT Analytics [4], les
connexions mondiales IoT cellulaires ont connu une croissance de 27 % d'une année sur l'autre
en 2022, surpassant largement le taux de croissance des connexions mondiales IoT. Cette
expansion est attribuée à l'adoption de technologies plus récentes telles que le LTE-M, le NB-
IoT, le LTE-Cat 1 et le LTE Cat 1 bis, tandis que les technologies plus anciennes telles que la
2G et la 3G sont progressivement éliminées. Bien que les expéditions de modules 5G aient
également augmenté de plus de 100 % d'une année sur l'autre en 2022, le taux de croissance
reste plus lent que ce que beaucoup avaient anticipé. En 2023, les cinq principaux opérateurs
de réseaux, à savoir China Mobile, China Telecom, China Unicom, Vodafone et AT&T, ont
géré 84 % de l'ensemble des connexions mondiales IoT cellulaires. En termes de revenus IoT,
ces cinq principaux opérateurs de réseaux représentent 64 % du marché des opérateurs de
réseaux IoT, avec China Mobile, AT&T, Deutsche Telekom (incluant T-Mobile), China
Unicom et Verizon en tête du marché.

1.3.3 Cloud Computing

Les données générées par les dispositifs IoT sont stockées, traitées et analysées dans le cloud. Le cloud
offre une capacité quasi illimitée pour gérer les données massives produites par l'IoT, et une
infrastructure évolutive, flexible et efficace pour gérer et traiter l'énorme flux de données généré par

6
les dispositifs IoT. Les dispositifs IoT produisent souvent d'énormes quantités de données qui
nécessitent des ressources informatiques considérables pour le stockage, l'analyse et le traitement en
temps réel. Le cloud computing offre la solution idéale en centralisant le stockage des données et les
capacités de traitement, permettant un accès et une gestion transparents depuis n'importe où dans le
monde. Les services cloud permettent également de déployer des applications et de gérer les dispositifs
à distance. Voici les raisons courantes pour lesquelles les organisations se tournent de plus en plus vers
les services de cloud computing : [5]

● Coût : Le cloud computing a éliminé les dépenses en capital liées à l'achat de matériel, de
logiciels, de centres de données, de serveurs, d'électricité pour l'alimentation et le
refroidissement. De plus, il a supprimé les coûts liés aux experts en informatique chargés de
gérer l'infrastructure.
● Performance : Les services cloud doivent offrir une performance élevée pour répondre aux
besoins de groupes importants et diversifiés d'utilisateurs. Assurer l'interopérabilité et la mise
à l'échelle entre des objets hétérogènes et distribués connectés à Internet (tels que des
actionneurs, des capteurs) représente toujours un défi complexe.
● Vitesse : La rapidité des services de cloud computing et la possibilité de mettre en place
rapidement d'importantes ressources informatiques pour les applications basées sur l'IoT en
quelques clics seulement ont conduit à son adoption par les organisations.
● Sécurité : Assurer la sécurité et la confidentialité des données des utilisateurs est un défi majeur
au sein du cadre de l'IoT. [6]

Figure 1.07: Architecture d'un écosystème IoT avec le cloud.

7
1.3.4 Analyse de Données et Intelligence Artificielle

Le volume impressionnant de données généré par les dispositifs interconnectés peut submerger les
méthodes d'analyse traditionnelles. Ici, l'analyse de données et l'Intelligence Artificielle (IA) assurent
l’extraction des informations significatives de ces flux de données, permettant une prise de décision
éclairée et libérant le véritable potentiel des applications IoT. L'analyse des données générées par l'IoT
permet de déduire des informations utiles et de prendre des décisions intelligentes.

L'intelligence artificielle (IA) et le machine learning permettent aux dispositifs de détecter des
tendances, d'anticiper des événements futurs et de prendre des décisions autonomes. L'apprentissage
automatique (Machine Learning) est apparu comme une technique d'intelligence artificielle (IA) à la
fin des années 1950 [7]. Depuis lors, ses algorithmes ont évolué progressivement pour devenir plus
robustes, efficaces et précis. L'apprentissage automatique pourrait être utilisé pour améliorer les
performances de différents systèmes IoT en exploitant l'historique des données collectées pour des
tâches spécifiques afin d'optimiser de manière autonome les performances sans avoir besoin de
reprogrammer le système.

Cependant, l'utilisation de l'apprentissage automatique dans les applications IoT doit encore relever
plusieurs défis qui nécessitent une considération attentive. Par exemple, les dispositifs IoT ont des
ressources limitées. L'utilisation de l'apprentissage automatique pour déduire des relations cohérentes
entre les échantillons de données collectées et prédire avec précision des hypothèses peut
considérablement épuiser l'énergie des dispositifs IoT. Cela nécessite un compromis entre la
complexité de calcul de l'algorithme d'apprentissage automatique et la précision ciblée du processus
d'apprentissage.

1.4 Architecture typique des systèmes IoT

Au cœur de l'efficacité et de l'efficience de l'écosystème IoT se trouve son cadre architectural, qui offre
une approche structurée pour concevoir, mettre en œuvre et gérer le réseau complexe d'appareils
interconnectés et de données. Les architectures IoT intègrent et unifient toutes les étapes de la
détection/l'activation des données depuis/vers les dispositifs, la transmission/réception de messages, le
stockage des données, le traitement, l'analyse et l'exploitation finale grâce à l'utilisation du cloud, du
“fog computing” et de “l’edge computing”, ainsi que des services et des applications. [8] Le
développement de plateformes IoT implique diverses technologies, les littératures actuelles proposent
des architectures fonctionnelles globales qui découlent d'une version simplifiée du modèle de référence

8
OSI, bien que selon des méthodologies distinctes. [8] Certaines études [9] [10] décrivent un cadre IoT
traditionnel composé de trois couches, allant du niveau physique le plus bas aux niveaux supérieurs
d’abstraction : la couche de perception/détection, la couche réseau, et la couche d'application. En
revanche, d'autres travaux [11] [12] développent cette idée en proposant une architecture à cinq
couches, englobant : la couche de perception/détection, la couche de transport/réseau, la couche
intermédiaire/traitements, la couche d'application, et la couche Business.

Figure 1.08 : Les architectures IoT les plus courantes.

1.4.1 Couche de Perception ou Couche de Capteurs

La fondation de l'architecture à cinq couches est la couche de perception, également connue sous le
nom de couche de capteurs. À ce niveau fondamental, l'écosystème IoT interagit avec l'environnement
physique grâce à une gamme de capteurs, d'actionneurs et de dispositifs intégrés. Ces entités servent
d'organes sensoriels de l'IoT, recueillant des données sur des paramètres tels que la température,
l'humidité, l'intensité lumineuse, le mouvement, et bien plus encore. Les capteurs sont conçus pour
interagir avec le monde physique et convertir les informations analogiques en données numériques qui
peuvent être traitées et analysées. Le rôle de cette couche est semblable au système sensoriel des

9
organismes vivants, capturant des phénomènes du monde réel qui servent de base à des actions et des
décisions ultérieures.

Le choix des capteurs est guidé par les exigences de l'application et les caractéristiques de
l'environnement. Ces capteurs varient en complexité, précision et capacité. Par exemple, les capteurs
de température tels que les thermistances et les capteurs infrarouges surveillent les conditions
ambiantes, tandis que les accéléromètres et les gyroscopes détectent le mouvement. Les données
acquises à cette couche nécessitent souvent un prétraitement pour éliminer le bruit, filtrer les valeurs
aberrantes et convertir les signaux analogiques bruts en mesures numériques significatives. En plus de
la simple détection, cette couche peut également inclure des actionneurs qui permettent aux dispositifs
d'interagir avec le monde physique, tels que des moteurs, des vannes et des servomoteurs.

1.4.2 Couche de Réseau ou Couche de Transport

Se situant au-dessus de la couche de perception, la couche de réseau établit l’élément fondamental de


la communication dans l'écosystème IoT. Cette couche facilite la transmission transparente des
données acquises par les capteurs vers les couches supérieures pour le traitement et l'analyse. Compte
tenu de la nature diversifiée des dispositifs IoT, les technologies réseau utilisées sont tout aussi variées,
répondant à différentes portées de communication, débits de données et exigences en matière de
consommation d'énergie.

1.4.3 Couche Middleware ou Couche de Traitement

Interfaçant entre les couches inférieures et les couches supérieures d'application se trouve la couche
middleware, un composant central qui joue un rôle critique dans le traitement, l'agrégation et la gestion
des données. Les données brutes collectées par les capteurs dans la couche de perception sont souvent
bruyantes, non structurées et fragmentées. La couche middleware sert de centre de raffinage des
données, effectuant des tâches telles que le filtrage des données, l'agrégation, la transformation et
l'intégration. Les capacités de cette couche s'étendent au traitement en temps réel des données,
permettant des aperçus et des réponses opportunes aux événements.

Les technologies middleware englobent un large éventail d'outils et de plates-formes, y compris les
“messages brokers”, les moteurs de traitement en continu et les solutions de stockage de données. Les
“messages brokers” facilitent la communication asynchrone entre les dispositifs et les applications,
rationalisant le flux de données et découplant les producteurs des consommateurs. Les moteurs de

10
traitement en continu permettent l'analyse en temps réel, permettant aux applications de tirer des
insights des données au fur et à mesure de leur arrivée. Les systèmes de stockage de données, qu'il
s'agisse de bases de données relationnelles, de bases de données NoSQL, offrent des mécanismes pour
stocker, organiser et récupérer les données collectées.

1.4.4 Couche d’Application

Cette couche est la plus visible pour les utilisateurs finaux. Elle offre aux utilisateurs un accès aux
données collectées et traitées dans les couches sous-jacentes. Cet accès permet aux utilisateurs
d'observer, d'examiner et d'agir en fonction des données du réseau. [9]

La couche d'application supervise tous les processus d'application dérivés des informations obtenues
par la couche middleware. Cela englobe des tâches telles que l'envoi d'e-mails, le déclenchement
d'alarmes, la gestion des systèmes de sécurité, le basculement des états des dispositifs, le
fonctionnement des montres intelligentes, la mise en œuvre de l'agriculture intelligente, et bien plus
encore. [8] Cette couche est directement liée aux cas d'utilisation spécifiques qui motivent la mise en
place de l'écosystème IoT. Que ce soit pour surveiller la santé des patients à distance, optimiser la
gestion des ressources énergétiques ou automatiser les processus industriels, la couche d'application
façonne l'impact de l'IoT sur les industries et la société.

Les applications IoT intègrent les fonctionnalités des couches inférieures pour offrir une expérience
utilisateur complète. Elles exploitent les données collectées, les capacités de traitement en temps réel
et les services IoT pour offrir des fonctionnalités pertinentes. Par exemple, une application de suivi de
la condition physique peut extraire les données des capteurs de fréquence cardiaque et de localisation,
les traiter pour fournir des informations sur les performances physiques en temps réel, et les présenter
à l'utilisateur via une interface conviviale. La couche d'application facilite une interaction sécurisée et
conviviale, une exigence essentielle pour la réalisation efficace de l'architecture IoT.

1.4.5 Couche Business

Les données décodées au niveau de l'application peuvent être utilisées pour extraire des informations
commerciales plus approfondies, prévoir les tendances futures et orienter les décisions opérationnelles
qui améliorent l'efficacité, la sécurité, la rentabilité, l'expérience client et d'autres aspects importants
de la fonctionnalité commerciale. [9]

11
La couche business est conçue pour superviser les modèles commerciaux et les transactions associés
aux dispositifs connectés. Cette couche englobe les “business rules”, les analyses commerciales et la
gestion des processus commerciaux. Elle est chargée de gérer la logique commerciale pour garantir
l'accomplissement de tous les objectifs commerciaux du système IoT. Cette couche joue aussi un rôle
important dans la protection de la vie privée. Elle garantit le stockage sécurisé des données collectées
et donne aux utilisateurs le contrôle sur l'utilisation de leurs données. De plus, elle peut améliorer
l'expérience utilisateur en fournissant des services personnalisés basés sur les profils et préférences des
utilisateurs.

L'introduction de la couche business avait pour objectif de classer l'ensemble des opérations et des
outils en frontal qui exploitent les données de la couche d'application pour générer des services avancés
d'analyse de données volumineuses et de visualisation. L'objectif principal est de construire des
modèles commerciaux, de faciliter les processus de prise de décision et d'exécuter des simulations et
des analyses de scénarios. Cet objectif peut être atteint en mettant en œuvre, par exemple, des modèles
prédictifs basés sur des techniques d'apprentissage automatique, d'apprentissage profond et
d'intelligence artificielle (IA), ainsi que des outils d'analyse visuelle avancée et interactive [9].

Figure 1.09 : L’architecture à cinq couches.1


1.5 Domaines d’application des systèmes IoT

L'Internet des Objets se déploie dans une multitude de domaines, transformant la manière dont nous
interagissons avec notre environnement. Les exemples suivants illustrent comment l'IoT transforme
divers domaines en offrant des solutions novatrices et des avantages tangibles. La diversité

12
d'applications reflète la polyvalence de l'IoT et son potentiel à améliorer notre qualité de vie
quotidienne. Voici un aperçu détaillé de quelques-uns des domaines clés où l'IoT a un impact
significatif :

1.5.1. Santé et Bien-être

L'IoT joue un rôle majeur dans la transformation du secteur de la santé. Des dispositifs portables tels
que les montres intelligentes et les moniteurs de fréquence cardiaque surveillent en temps réel les signes
vitaux des patients, permettant aux médecins de suivre de près leur état de santé. Les capteurs
implantables peuvent également collecter des données pour des diagnostics précoces et des traitements
ciblés. Par exemple, les patients atteints de diabète peuvent utiliser des pompes à insuline connectées
pour surveiller et ajuster leur glycémie automatiquement.

Ces applications ont pris une importance encore plus grande pendant la pandémie de COVID-19. Une
application importante est la surveillance à distance des patients (Remote Patient Monitoring, RPM),
qui implique l'utilisation de dispositifs portables ou implantés (comme les dispositifs cardiaques, les
moniteurs de flux d'air, les glucomètres sanguins, etc.). Ces dispositifs sont interconnectés grâce aux
technologies de réseau de capteurs sans fil (Wireless Sensor Network, WSN) et liés au cloud. Cela
facilite la surveillance des patients à distance.

Les hôpitaux intelligents exploitent largement les technologies de l'Internet des objets pour proposer
des services complets tant au personnel médical qu'aux patients. Ces services englobent l'identification
et la surveillance en temps réel des patients au sein des installations hospitalières, ainsi que la gestion
intelligente des instruments médicaux. Ces instruments contribuent aux processus de prise de décision
au sein de l'environnement hospitalier. [12]

1.5.2. Villes Intelligentes et Domotique

Les villes intelligentes exploitent l'IoT pour optimiser la gestion des ressources et améliorer la qualité
de vie des citoyens. Les capteurs surveillent la qualité de l'air, la circulation routière, les niveaux de
bruit et bien plus encore. Ces données sont utilisées pour une gestion plus efficace des transports, des
infrastructures et de l'énergie. Par exemple, les capteurs de stationnement intelligents aident à guider
les conducteurs vers des places de stationnement disponibles, réduisant ainsi la congestion et les
émissions.

13
L'IoT révolutionne également nos foyers en introduisant la domotique. Des dispositifs intelligents tels
que les thermostats connectés, les serrures intelligentes et les assistants vocaux permettent aux
utilisateurs de contrôler leurs maisons à distance. Les maisons intelligentes offrent une efficacité
énergétique accrue et une sécurité renforcée. Par exemple, un système de surveillance de domicile peut
envoyer des alertes en cas d'intrusion ou de fuite d'eau.

Les applications dans le domaine des maisons intelligentes se révèlent utiles pour détecter et surveiller
les activités des occupants du foyer, contribuant ainsi à la surveillance de leurs conditions de santé
[13]. Cela est particulièrement bénéfique pour les personnes âgées et les individus en situation de
handicap. Une gamme de capteurs trouve son utilité dans les scénarios de maisons intelligentes et de
détection en intérieur. Par exemple, les systèmes micro-électromécaniques (MEMS) sont déployés
pour la détection de fuites de gaz. Les dispositifs intégrant des nano-générateurs triboélectriques
(TENG) sont utilisés pour les fenêtres intelligentes et les systèmes intelligents d'éclairage intérieur
[14]. Les caméras vidéo et les systèmes de télévision en circuit fermé (CCTV) sont utilisés à des fins
de surveillance intelligente. La dernière génération d'appareils ménagers et d'appareils de
divertissement est souvent alimentée par l'IA et des services d'assistance, ce qui leur permet d'interagir
de manière harmonieuse tout en étant connectés via des réseaux sans fil. Cette connectivité est rendue
possible par des protocoles de communication réseau largement utilisés tels que Bluetooth, Zigbee,
infrarouge et Wi-Fi [13]. En conséquence, les utilisateurs bénéficient d'une vie et d'une expérience à
domicile améliorées, plus efficaces et agréables.

Les activités culturelles, telles que la gestion intelligente du tourisme, exploite les applications mobiles,
les services basés sur la géolocalisation et la géo-information, les flux multimédias, la réalité virtuelle
et augmentée, ainsi que les médias sociaux. Ces technologies facilitent la gestion et la prestation d'une
expérience améliorée pour divers acteurs de l'industrie du tourisme. Des applications notables dans ce
domaine englobent l'enrichissement des expériences touristiques, l'amélioration de la compétitivité et
de la durabilité des destinations grâce à la surveillance des comportements et des flux des utilisateurs
[15].

Le domaine de l'éducation connaît un processus de décentralisation notable, renforcé par l'intégration


de la technologie de l'information et de la communication (TIC) et des composants IoT. Cette transition
conduit à la création de nouveaux services éducatifs favorisant une interaction accrue dans les activités
d'apprentissage à distance et en situation réelle.

14
1.5.3 Industrie et Fabrication

L'IoT révolutionne la fabrication en permettant une automatisation avancée et une maintenance


prédictive. Les usines intelligentes intègrent des capteurs sur les machines pour surveiller les
performances en temps réel, prévenir les pannes et optimiser les processus de production. Les
entreprises peuvent réduire les temps d'arrêt non planifiés et augmenter l'efficacité globale. Par
exemple, l'IoT permet à une usine de produire exactement ce dont elle a besoin, réduisant ainsi le
gaspillage de matières premières.

Les concepts d'industrie intelligente et d'Industrie 4.0 définissent un processus de transformation dans
lequel les technologies de l'Internet des objets, les systèmes de communication machine-à-machine
(M2M) et la fabrication basée sur le cloud pour créer un environnement propice à l'innovation et à la
réduction de la dépendance à l'intervention humaine [13]. Dans le contexte de l'automatisation des
chaînes d'approvisionnement en biens, des technologies telles que l'identification par radiofréquence
(RFID) et la communication NFC permettent de suivre sans interruption les produits depuis leur stade
de fabrication jusqu'à leurs points de distribution finaux. Ces technologies de capteurs facilitent la
collecte et l'analyse en temps réel des informations, contribuant à un suivi efficace des expéditions et
à l'évaluation de la qualité et de l'utilisabilité des produits. [14]

Le champ d'application de l'industrie intelligente et de la production englobe divers secteurs où les TIC
favorisent l'automatisation des flux de production. Cela s'étend également à des domaines tels que
l'agriculture et l'exploitation agricole intelligentes, qui relèvent le défi de la production alimentaire
durable.

1.5.4 Agriculture Intelligente

L'IoT apporte des solutions innovantes à l'agriculture en améliorant la gestion des ressources et en
augmentant les rendements. Les capteurs surveillent l'humidité du sol, la météo, la croissance des
plantes, et aident les agriculteurs à prendre des décisions basées sur des données précises. Par exemple,
des systèmes d'irrigation intelligents ajustent automatiquement l'apport en eau en fonction des besoins
spécifiques des cultures. De plus, des solutions d'intelligence artificielle (IA) sont couramment
intégrées aux cadres IoT pour les applications agricoles. Par exemple, l'IA est utilisée pour des tâches
telles que la surveillance des conditions des cultures, la détection de bactéries et la gestion des
approvisionnements en cultures basée sur les données [15].

15
1.5.5 Logistique et Chaîne d'Approvisionnement

La gestion des chaînes d'approvisionnement est un processus complexe impliquant diverses étapes et
acteurs. Chaque participant peut exploiter les avantages spécifiques offerts par les technologies de
l'Internet des objets : [15]

• Les fournisseurs de matières premières utilisent des solutions IoT pour surveiller leurs
processus technologiques. Dans la foresterie, l'IoT aide à suivre les accidents d'incendie et les
opérations d'abattage. Dans l'extraction pétrolière, les pipelines sont surveillés pour la
composition de l'huile. Ces données permettent aux fournisseurs d'améliorer la production
réelle, la qualité des matières premières, de réduire la consommation d'énergie et d'assurer la
rentabilité.
• Les fabricants intègrent des solutions IoT pour surveiller en temps réel les opérations de
fabrication et l'état des équipements. Cette surveillance continue aide à identifier les
ajustements nécessaires, réduisant ainsi les temps d'arrêt, augmentant l'utilisation des actifs et
améliorant l'efficacité de la production. L'IoT favorise également la durabilité en suivant la
consommation d'énergie et d'eau et en surveillant les niveaux d'émissions, facilitant ainsi la
conformité aux réglementations environnementales et la mise en œuvre de stratégies
écologiques.
• La logistique gagne en transparence et en précision avec des données en temps réel sur
l'emplacement et l'état des actifs accessibles aux opérateurs. Ces données permettent le suivi et
l'optimisation des itinéraires de livraison en cas de changements ou de retards. Les solutions
IoT jouent également un rôle crucial dans la gestion des chaînes du froid et la préservation des
marchandises périssables en détectant les écarts par rapport aux conditions de transport
recommandées. L'IoT améliore le suivi des stocks et renforce la visibilité et la précision des
opérations de stockage. De plus, les solutions IoT contribuent à la préservation des articles
périssables grâce à la surveillance des conditions de stockage.
• Les détaillants bénéficient d'une optimisation du ramassage, du chargement et du
déchargement des marchandises facilitées par les solutions IoT. Ces solutions améliorent la
précision du ramassage et l'efficacité de la manipulation. L'IoT facilite le suivi des articles sur
les étagères, maximise la visibilité des stocks et surveille le trafic en magasin pour optimiser la
présentation des marchandises et l'utilisation de l'espace.

16
1.5.6 Environnement et Conservation

L'IoT joue un rôle crucial dans la surveillance de l'environnement et la conservation de la biodiversité.


Des capteurs sont déployés dans les écosystèmes naturels pour surveiller la qualité de l'air, de l'eau et
la santé des animaux. Les chercheurs peuvent utiliser ces données pour évaluer les effets du
changement climatique et mettre en œuvre des mesures de conservation. Par exemple, des capteurs
sous-marins surveillent les récifs coralliens pour détecter les signes de blanchissement dû au
réchauffement de l'eau.

1.6 Principaux acteurs de l’écosystème IoT

L'écosystème de l'IoT est composé d'acteurs variés, chacun jouant un rôle essentiel dans le
développement, la production et la gestion des dispositifs IoT.

1.6.1 Fabricants et Fournisseurs

Les fabricants conçoivent et fabriquent les dispositifs IoT, des thermostats intelligents aux capteurs
industriels, tandis que les fournisseurs proposent des solutions clés en main, des plateformes de
développement et des composants pour faciliter la création d'applications IoT. Ils doivent relever des
défis tels que la miniaturisation des composants, l'optimisation de la consommation d'énergie et la
résistance aux conditions environnementales variées.

Ces dernières années, la Chine a pris la tête en termes de nouvelles connexions d'appareils IoT, et le
nombre de connexions cellulaires IoT actives en Chine uniquement a dépassé les deux milliards en
2022. Cependant, l'ère de croissance rapide pourrait toucher à sa fin en raison de plusieurs défis
auxquels le pays est confronté. Ces défis comprennent des pénuries d'approvisionnement
technologique, principalement liées aux tensions commerciales renouvelées entre les États-Unis et la
Chine, en particulier dans l'industrie des semi-conducteurs. En octobre 2022, les États-Unis ont imposé
un embargo sur les exportations vers la Chine, entraînant d'importantes perturbations dans ces secteurs.
En conséquence, les entreprises de puces électroniques prennent la décision de délocaliser leurs
installations de fabrication en dehors de la Chine. [14]

1.6.2 Développeurs et Intégrateurs

Les développeurs sont responsables de la création d'applications et de solutions logicielles pour les
dispositifs IoT. Ils programment les capteurs, conçoivent les interfaces utilisateur et explorent les

17
données. Les intégrateurs par contre, sont chargés de combiner différents composants matériels et
logiciels pour construire des systèmes IoT complets.

1.6.2.1 Les langages de programmation dans l'IoT

Le choix du langage de programmation est essentiel pour les développeurs IoT, car il influence la
flexibilité, les performances et la facilité de développement des dispositifs connectés. Plusieurs
langages sont largement utilisés dans l'IoT, chacun ayant ses avantages et ses limitations : [14] [15]

• Langages de Programmation C et C++ : Ces langages sont parmi les plus utilisés dans l'IoT
en raison de leur efficacité et de leur faible empreinte mémoire. Ils sont souvent choisis pour
les dispositifs à ressources limitées, car ils permettent un contrôle précis du matériel et une
utilisation optimale des ressources.
• Python : Python gagne en popularité dans l'IoT en raison de sa simplicité et de sa flexibilité. Il
est apprécié pour le développement rapide de prototypes et d'applications, ainsi que pour sa
vaste gamme de bibliothèques et de frameworks adaptés à l'IoT.
• Java : Java est largement utilisé pour le développement d'applications IoT plus complexes et
pour les dispositifs disposant de ressources plus importantes. Sa portabilité et sa gestion
automatique de la mémoire en font un choix attrayant pour les solutions IoT évolutives.
• JavaScript : JavaScript, notamment avec Node.js, est utilisé pour le développement
d'applications côté serveur et côté client dans l'IoT. Il est particulièrement utile pour les
applications Web et les interfaces utilisateur.

1.6.2.2 Visual Programming Languages (VPL)

Les langages de programmation visuelle (VPL) sont de plus en plus utilisés dans l'IoT pour simplifier
le développement, en particulier pour les développeurs non techniques et les concepteurs
d'applications. Les VPL permettent aux utilisateurs de créer des applications IoT en assemblant des
blocs graphiques représentant des fonctions et des opérations. Cette approche visuelle réduit la
nécessité de maîtriser la syntaxe complexe des langages de programmation traditionnels, ce qui rend
le développement plus accessible.

● Node-RED : Une plateforme de développement IoT basée sur des flux visuels pour connecter
des dispositifs et des services.

18
● Scratch : Une plateforme de programmation visuelle conçue pour les débutants, souvent
utilisée pour l'enseignement de la programmation IoT aux enfants.

1.6.3 Opérateurs de Réseau

Les opérateurs de réseau fournissent l'infrastructure de communication pour connecter les dispositifs
IoT à Internet. Ils gèrent les réseaux cellulaires, Wi-Fi, et autres technologies de communication
nécessaires pour la connectivité.

1.6.4 Utilisateurs Finaux

Les utilisateurs finaux, qu'ils soient individus ou entreprises, profitent des avantages de l'IoT en
utilisant les dispositifs connectés. Les dispositifs IoT simplifient les tâches quotidiennes, améliorent
l'efficacité opérationnelle et créent de nouvelles expériences utilisateur. Ils sont les destinataires des
données collectées par les capteurs et les dispositifs IoT. Les utilisateurs finaux peuvent être des
individus, des entreprises, des villes ou même des gouvernements. Ils peuvent utiliser les données IoT
pour prendre des décisions éclairées, optimiser les processus, améliorer les services et créer de
nouvelles expériences.

Figure 1.10 : Nombre d’appareils IoT par région.


https://marketsplash.com/internet-of-things-statistics/

19
Figure 1.11 : Taux d’utilisation de l’IoT.

1.6.5 Organisations de Normalisation

La normalisation joue un rôle central dans l'établissement de spécifications et de protocoles


universellement reconnus, favorisant une véritable interopérabilité entre les dispositifs et les
applications.

L'adoption de normes sert à diverses fins : [13]

• Garantit l'interopérabilité et l'économie : Les normes veillent à ce que les solutions soient
non seulement compatibles, mais également économiquement viables. En respectant les normes
établies, les dispositifs et les applications peuvent communiquer et collaborer de manière
transparente, réduisant ainsi les problèmes de compatibilité et le gaspillage de ressources.
• Ouvre des opportunités dans les domaines émergents : L'adoption de normes crée des voies
d'innovation dans les domaines émergents. Ces références offrent une base sur laquelle de
nouvelles idées et technologies peuvent être développées, entraînant une fonctionnalité
améliorée et des applications plus larges.
• Libère le plein potentiel du marché : La normalisation permet au marché de prospérer. Elle
crée un terrain de jeu équitable où les entreprises peuvent développer et offrir des produits et
des services adaptés à un public plus large. Cette atmosphère dynamique stimule la concurrence
et la croissance.

20
Cependant, dans un paysage de plus en plus connecté, la prolifération des connexions amplifie
également les risques de sécurité. Par conséquent, les normes de sécurité sont tout aussi essentielles.
Elles protègent les intérêts des individus, des entreprises et des gouvernements qui s'engagent avec
l'IoT.

Les organismes de normalisation dans l’IoT incluent mais ne se limitent pas à : l’IETF (Internet
Engineering Task Force), IRTF (Internet Research Task Force), ITU-T (International
Telecommunication Union), IoT Acceleration Consortium. [11]

1.7 Conclusion

L'Internet des objets a révolutionné notre mode de vie en permettant une interaction avancée entre les
objets intelligents et leur environnement, grâce à l'évolution continue d'Internet. Dans ce chapitre, nous
avons détaillé les concepts fondamentaux qui sous-tendent l'IoT et exploré son impact sur une
multitude de domaines d'application. De plus, nous avons examiné en profondeur son architecture et
son mode de fonctionnement, jetant ainsi les bases de son avenir prometteur. Le prochain chapitre est
dédié sur les protocoles et les modes de communications de l’internet des objets

21
CHAPITRE 2
PROTOCOLES ET COMMUNICATIONS DANS L’IoT

2.1 Introduction

L'Internet des Objets repose sur une infrastructure de communication complexe qui permet aux
dispositifs de partager des données et de collaborer de manière transparente. Il existe plusieurs
protocoles IoT, et chacun d'entre eux possède des caractéristiques ou des capacités uniques qui le
distinguent des protocoles concurrents pour des installations IoT particulières. Tout protocole IoT
permet des connexions d'appareil à appareil (M2M), d'appareil à passerelle, d'appareil à cloud/data
center ou des combinaisons de ces connexions. Cette section explore en détail les protocoles et les
mécanismes de mise en réseau dans les communications dans l'IoT.

2.2 Les systèmes de communications sans fil

La communication sans fil est l’élément de base qui permet aux objets de communiquer. Cela permet
de ne pas encombrer les systèmes et de les déplacer plus facilement. Pourtant, toutes les technologies
existantes ne sont pas adaptées à l’usage de l’Internet des objets. Des critères doivent être respectés
pour ne pas gaspiller les ressources et pour avoir un système performant et efficace

2.2.1 IEEE 802.15.4

IEEE 802.15.4 est une technologie LP-WPAN (Low Power Wireless Area Network). Son utilisation
principale se trouve dans les réseaux de communication basse consommation et bas débit. Les objectifs
principaux de ce standard sont la fiabilité de la transmission de données, la simplicité du processus
d’installation, la flexibilité, le cout financier et la durée de vie raisonnable des batteries. Plusieurs
topologies réseaux peuvent être utilisées : étoile, maillé et arbre. Pour cette raison, les nœuds IEEE
802.15.4 peuvent être divisés en deux catégories : full-function devices (FFD) and reduced-function
devices (RFD). Les RFD sont utilisés dans les applications avec des topologies simples et ne peuvent
se connecter qu’avec un FFD. Les FFD peuvent travaillés en tant que coordinateurs de réseau et
peuvent se connecter avec plusieurs nœuds RFD et FFD. [16]

2.2.2 Bluetooth Low Energy

Bluetooth Low Energy (BLE) ou Bluetooth 4.0 ou encore Bluetooth Smart est une nouvelle technologie
sans fil à courte portée, optimisée pour des applications à faible consommation. Elle est différente du

22
Bluetooth classique avec les avantages d’être plus robuste, interopérable et libre pour l’usage avec les
ordinateurs et les smartphones. BLE n’est pas adaptée à la transmission de données mais elle est utilisée
pour la transmission d’information d’une taille de 200 octets max. Ce qui fait qu’elle est utilisée dans
l’internet des objets. [17]

2.2.2.1 Topologie

La topologie utilisée dans la technologie BLE est à peu près la même qu’avec a technologie Bluetooth
classique. Elle est basée sur le concept de « maître – esclave » qui est une topologie point à point. Un
maître peut avoir plusieurs esclaves et effectue les tâches suivantes : recherche d’esclaves en écoute,
détermination de l’algorithme de saut de fréquence. Un esclave ne peut posséder qu’un maitre.

Figure 2.01: Topologie BLE.

2.2.2.2 Bande de fréquence et canaux.

La technologie Bluetooth Low Energy utilise la bande de fréquence ISM 2.4 GHz (2402 MHz – 2480
MHz). Cette bande est divisée en 37 canaux de données et 3 canaux d’annonce avec 2 MHz
d’espacement.

23
Figure 2.02: Canaux BLE.

2.2.2.3 Structure des trames BLE

Les trames BLE sont constitué : d’un champ de préambule de 1 octet, d’un champ d’adresse d’accès
de 4 octets, d’un champ PDU de 39 octets et d’un champ CRC de 3 octets.

Figure 2.03: Structure BLE.

2.2.3 Wi-Fi ah

Wi-Fi ah est un nouveau standard introduit par la Wi-Fi Alliance et est basé sur la norme IEEE 802.11
ah. Cette nouvelle technologie existe pour promouvoir le Wi-Fi de l’internet des Objets. Elle opère
dans les bandes de fréquence inférieure à 1 GHz, pénètre plus les obstacles, offre une portée plus
étendue et travaille avec une consommation énergétique faible. [18]

2.2.3.1 Topologies

Le Wi-Fi ah fait partie des standard 802.11 qui utilise généralement la topologie en étoile en mode
infrastructure et la topologie point à point en mode ad-hoc.

24
Figure 2.04: Topologie en étoile (a) et point à point (b).

2.2.3.2 Bande de fréquence et canaux

La bande de fréquence utilisée par Wi-Fi ah varie selon les pays qui attribuent la bande de fréquence
libre. La largeur des canaux est alors effectuée selon la largeur des bandes de fréquences disponibles.
Selon les spécifications 802.11 ah, il existe différentes largeurs de canaux : 1 MHz, 2 MHz, 4 MHz, 8
MHz et 16 MHz.

Prenons l’exemple de la bande de fréquence disponible aux Etats-Unis pour voir comment varient le
nombre de canaux selon la largeur. Il y a plus de canaux de 1 MHz que de canaux de 16 MHz. Ainsi
on peut effectuer plus de communication quand le nombre de canaux augmente.

Figure 2.05: Spécifications 802.11 ah pour les canaux.

25
2.2.3.3 Structure des trames Wi-Fi ah

Les trames Wi-Fi ah sont constituées des champs suivants : un champ de contrôle ( Frame control de
2 octets), un champ indiquant la durée et l’identifiant des émetteurs de la trame (Duration/ID de 2
octets), des champs d’adresse (6 ou 12 ou 18 ou 24 octets), un champ de contrôle de séquence
(Sequence Control de 0 ou 2 octets), un champ de contrôle de qualité de service (QoS control de 0 ou
2 octets), un champ de contrôle de transmission (HT control de 0 ou 4 octets), un champ de données
(0 à 7959 octets) et un champ FCS (4 octets).

Figure 2.06: Trame 802.11 ah.

2.2.4 LTN

Low Throughput Networks (LTN) est une technologie de réseau sans fil à grande distance avec des
caractéristiques spécifiques, qui la distingue des réseaux radio existants. Les réseaux LTN permettent
un transport de données et possèdent la capacité de communiquer avec des équipements en sous terrain,
avec une consommation d’énergie minimum. Par ailleurs, la transmission bas débit combinée avec un
traitement du signal avancé permet une réelle protection contre les interférences. Par conséquent, LTN
est très particulièrement adapté pour des dispositifs M2M / IoT fonctionnant à bas débit, sur pile, et
qui émettent quelques octets par jour, semaine ou mois. [18] [19]

2.2.4.1 Architecture

Le principe des réseaux LTN est similaire à celui des réseaux cellulaires. Son architecture se présente
comme suit :

26
Figure 2.07 : Architecture LTN.

Un réseau LTN est constitué de :

• LEP (LTN End Point) : c’est le collecteur de données associé à module de communication LTN
(UNB ou OSSS).
• LAP (LTN Access Point) : c’est la station de base d’un réseau LTN.
• LTN Server : c’est le serveur en charge de la gestion des messages et du réseau.
• CRA (Central Registration Authority) : c’est le centre d’authentification en charge des
identifiants qui doivent être unique pour chaque module LTN.
• OSS/BSS (Operation Support System / Business Support System) : c’est pour la gestion du
réseau.

2.2.4.2 Structure des trames LTN

Les trames LTN sont constituées d’un champ de préambule de 4 octets, d’un champ de synchronisation
de 2 bytes, un champ d’identifiant de 4 octets, un champ de données de 12 octets maximales, un champ
d’authentification variable et champ FCS de 2 bytes.

Figure 2.08: Trame LTN.

27
2.2.5 Etude comparative des technologies

Les critères de choix d’une technologie sans fil dans l’internet des objets sont basés principalement sur
: la portée, le débit, la durée de transmission, la consommation d’énergie, le cout financier et
l’interopérabilité avec d’autres technologies.

Tableau 2.01: Caractéristiques des différentes normes.

2.2.5.1 Durée de transmission

La durée de transmission dépend du débit de données, de la taille du message et la distance entre les
deux nœuds. La formule peut être écrite comme suit :

𝑇𝑡𝑥 : Durée de transmission 𝑁𝑑 : Taille des données 𝑁

𝑚𝑝 : Taille maximale de données 𝑁 𝑜𝑠 : Taille overhead

𝑇𝑏𝑖𝑡 : Durée d’un bit 𝑇𝑝 : Durée de propagation entre les deux nœuds (Ici négligée)

28
Le temps de transmission est proportionnel à la taille de données payload 𝑁𝑑 et non pas au débit
maximal de données.

Figure 2.09: Temps de transmission.

2.2.5.2 Portée

Dans les communications sans fils, les relations entre la puissance reçue et la puissance émise sont
données par l’équation de Friis :

𝑃𝑟 : Puissance reçue 𝑃𝑡 : Puissance émise

𝐺𝑡 : Gain de l’antenne d’émission 𝐺𝑟 : Gain de l’antenne de réception

𝑑 : Distance entre les deux antennes 𝜆 : Longueur d’onde

L’équation de Friis ci-dessus nous permet d’écrire l’équation de la portée comme suit :

29
Il est à noter que plus la fréquence augmente, la portée diminue et plus la distance augmente, la
puissance à la réception diminue.

Figure 2.10: Portée en fonction de la fréquence.

2.2.5.3 Puissance reçue

La puissance reçue pour chaque paquet de données peut être prédit selon la distance d donnée par
l’équation Two-Ray Ground et de Friis comme suit :

𝐿 : Perte de parcours ℎ𝑡 : Hauteur de l’antenne d’émission

ℎ𝑟 : Hauteur de l’antenne de réception 𝑑 : Distance entre l’émetteur et le récepteur

𝑑𝑐 : Distance dite de crossover

30
Figure 2.11: Puissance reçue en fonction de la distance.

Selon la figure 2.11, on peut dire que plus la distance entre l’émetteur et le récepteur augmente, plus
la puissance à la réception diminue. Cela est dû à la perte causée par le parcours. On peut dire que
802.15.4 et Wi-Fi-ah sont moins gourmands vis-à-vis de BLE et LTN qui ont une portée plus grande.

2.2.5.4 Le taux d’erreur binaire

Pour mesurer la performance d’une transmission numérique, on calcule le TEB à partir du type de
modulation, en supposant que le signal transmis est corrompu par le bruit blanc gaussien AWGN
(Additive White Gaussian Noise). L’objectif des techniques de modulation n’est pas seulement
d’effectuer une transmission de données mais aussi d’achever cette action avec la meilleure qualité, le
minimum d’énergie et avec une bande passante minimale possible. Le TEB est un très bon indice pour
la mesure de la performance d’une modulation utilisé par les systèmes de transmissions et peut aider à
améliorer la robustesse. Ce taux peut être calculé par la formule suivante :

𝑏𝑒𝑟 : Taux d’erreur binaire 𝑁𝐸𝑟𝑟 : Nombre d’erreurs

𝑁𝑇𝑋𝐵𝑖𝑡𝑠 : Nombre de bits transmis

31
Figure 2.12: BER en fonction de SNR.

Un exemple de TEB est représenté sur la figure 2.12, selon trois types de modulation : QAM, OQPSK,
PSK

2.3 Protocoles de communications dans IoT

Les implémentations IoT utilisent une variété de protocoles, mais les protocoles de communication
doivent être présents pour les réseaux IoT. Pour une sélection optimale, il est important de tenir compte
de l'espace d'application requis, de la limite de consommation d'énergie, de la bande passante et de la
latence des informations, ainsi que de la qualité de service, tout en gardant à l'esprit la sécurité.

Les protocoles de réseau sont utilisés par des appareils individuels tels que les smartphones et les
ordinateurs personnels pour communiquer, mais ces protocoles généraux peuvent ne pas être en mesure
de répondre aux besoins uniques des solutions basées sur l'IoT en termes de bande passante, de latence
et de distance de couverture. Même si les appareils IoT sont simples à installer, ce sont les protocoles
de communication qui doivent surmonter les limites de l'infrastructure internet existante en termes de
puissance de traitement, de portée et de fiabilité.

Les solutions de réseau sans fil à faible consommation sont utilisées car la consommation d'énergie est
un élément clé lors de la construction de réseaux IoT. Ces technologies se répartissent généralement
en deux catégories : [15]

32
● Le Low Power Wide Area Networking (LPWAN), qui offre une portée plus longue, jusqu'à
plusieurs kilomètres, mais avec des débits de données généralement limités.
● Les technologies Wireless Personal Area Networking (WPAN), qui ont une portée maximale
de 100 mètres et des vitesses de données de 3 Mbit/s pour Bluetooth Low Energy et de 250
kbps pour Zigbee, respectivement.

La figure suivante illustre les protocoles de communication les plus couramment utilisés dans les mises
en œuvre de l'IoT dans une architecture à 4 couches :

Figure 2.13: Protocoles de communication les plus couramment utilisés dans les architectures à 4
couches.

2.3.1 Couche Application

2.3.1.1 MQTT

Le protocole de messagerie MQTT (Message Queuing Telemetry Transport) est un protocole de


messagerie conçu pour la publication et la souscription. Il fonctionne sur un modèle client/serveur
simple et s'exécute sur TCP/IP ou d'autres protocoles. MQTT est particulièrement adapté aux
environnements aux ressources limitées, tels que l'IoT, en raison de sa nature ouverte, de sa conception
légère et de sa facilité de mise en œuvre. Les exigences de sécurité dans les implémentations MQTT

33
comprennent l'authentification, l'autorisation et la communication sécurisée. Pour les infrastructures
critiques et les applications manipulant des informations sensibles, MQTT peut fournir des services de
sécurité avancés en utilisant des fonctionnalités spécifiques recommandées. [20]

Figure 2.14: Fonctionnement du protocole MQTT.

Un client, appelé publisher, établi dans un premier temps une connexion de type ‘publish’ avec le
serveur MQTT, appelé broker. Puis, le publisher transmet les messages au broker sur un canal
spécifique, appelé topic.

2.3.1.2 CoAP

Contrained Application Protocol (CoAP) est défini comme un protocole de transfert web spécialisé
dans la RFC 7252. Il se distingue par sa légèreté et son faible débit de transmission, ce qui le rend
adapté à une utilisation avec des nœuds et des réseaux contraints, comme son nom l'indique. Sa
conception est particulièrement adaptée aux applications machine-à-machine (M2M), telles que la
gestion de la chaîne d'approvisionnement et les compteurs intelligents pour le suivi de la consommation
d'énergie. Le CoAP s'intègre parfaitement avec HTTP, facilitant son intégration avec le World Wide
Web. Cependant, un inconvénient notable du CoAP est l'absence de fonctionnalités de sécurité

34
intégrées. La sécurité est traitée grâce au Datagram Transport Layer Security (DTLS).
Malheureusement, le DTLS est peu utilisé dans l'écosystème de l'IoT. [21]

Figure 2.15: Fonctionnement du protocole CoAP.

Pour transmettre une donnée, un client envoie à un serveur une requête CoAP, dans laquelle se trouve
: le type du message, l’identifiant du message (mid) et une action (GET, POST, PUT ou DELETE)
après le serveur va retourner une réponse.

2.3.1.3 REST

Representational State Transfer (REST) englobe un ensemble de règles qui décrivent les principes
directeurs de l'ingénierie logicielle pour la construction d'une application avec des contraintes
spécifiques. REST est couramment utilisé dans le développement de services web, souvent appelés
services RESTful. REST intègre plusieurs contraintes clés, notamment : [22]

● La contrainte client-serveur, qui sépare le client et le serveur pour améliorer la modificabilité


et la scalabilité du système.
● La contrainte sans état, qui garantit que chaque demande du client au serveur doit contenir
toutes les informations nécessaires, favorisant la visibilité, la fiabilité et la scalabilité.
● La contrainte de mise en cache, qui améliore l'efficacité du réseau en permettant la mise en
cache des réponses.
● Un ensemble de quatre contraintes pour une interface uniforme entre les composants.
● Les contraintes du système en couches, permettant une structure hiérarchique des composants.

35
● La contrainte optionnelle du code à la demande, qui permet au serveur de fournir du code ou
des applets à exécuter par le client, bien que cela ne soit pas obligatoire.

2.3.1.4 XMPP

The eXtensible Messaging and Presence Protocol (XMPP) est une technologie XML ouverte pour la
communication en temps réel. Il est utilisé pour la messagerie instantanée, la présence et la
collaboration. La présence indique qu'une entité est prête pour la messagerie. La messagerie utilise un
mécanisme de poussée efficace qui garantit la capacité en temps réel. La conception ouverte de XMPP
facilite les modifications et permet sa fonctionnalité extensible, ce qui est conforme à une
implémentation IoT. Un nombre significatif de codes CVE ont récemment été ajoutés dans les bases
de données NVD maintenues par le NIST, liés à des vulnérabilités connues de XMPP qui permettent
une série d'attaques à se produire. [23]

XMPP est constitué d'un protocole TCP/IP basé sur une architecture client-serveur permettant les
échanges décentralisés de messages instantanés ou non, entre clients, au format eXtensible Markup
Language (XML).

Figure 2.16: Fonctionnement du protocole XMPP.

Le protocole XMPP prend en charge les requêtes / réponses et publier / abonner des modèles ; demande
/ réponse qui permet les communications bidirectionnelles et le modèle de publication/abonnement qui
permet une communication multidirectionnelle (push et extraire les données). Une évolutivité élevée

36
dans XMPP est fournie par architecture décentralisée. Il existe de nombreuses extensions pour
Protocole XMPP, cela lui permet de travailler sur l'environnement sans infrastructure.

2.3.1.5 AMQP

Le protocole de messagerie avancé (AMQP), également connu sous le nom de protocole de file
d'attente de message avancé, est une norme ouverte conçue pour la messagerie commerciale entre
applications, fonctionnant de manière asynchrone au sein de différentes organisations et plates-formes.
La conception de l'AMQP intègre des fonctionnalités clés visant à garantir la sécurité, la fiabilité et
l'interopérabilité. [23]

Figure 2.17: Fonctionnement du protocole AMQP

2.3.2 Couche transport

Un nombre considérable de protocoles sont couramment utilisés au niveau de la couche transport,


comme décrit dans les paragraphes suivants : [24]

2.3.2.1 TCP

Le protocole de contrôle de transmission (TCP) est un protocole fiable orienté connexion qui
fonctionne en trois phases. Il fait partie de la suite de protocoles Internet et est largement utilisé pour
les connexions entre dispositifs. Cependant, il appartient à la catégorie des protocoles lourds en raison
de la grande surcharge de paquets qu'il génère, ce qui entraîne une forte consommation d'énergie.

2.3.2.2 UDP

Le protocole de datagramme d'utilisateur (UDP) est un protocole léger et sans connexion, adapté aux
situations où la perte de paquets est acceptable lors de la transmission de données. Il est souvent

37
privilégié pour la communication dans les réseaux de capteurs sans fil, mais il manque de fiabilité. Il
n'est pas nécessaire d'établir une connexion avant de transférer des données avec UDP.

2.3.2.3 DCCP

Le protocole de contrôle de congestion de datagramme (DCCP) est un protocole de transport conçu


pour les connexions unicast bidirectionnelles. Il est utilisé pour des applications telles que la diffusion
en continu de médias et la voix sur IP, où TCP a du mal à gérer les retards et à garantir une livraison
fiable dans l'ordre. En revanche, les applications UDP peuvent gérer les retards, mais le DCCP intègre
un mécanisme de contrôle de la congestion pour les éviter.

2.3.2.4 SCTP

SCTP (Stream Control Transmission Protocol), Connu pour sa fiabilité et sa résistance à certaines
attaques réseau, SCTP est souvent utilisé dans la signalisation des télécommunications.

2.3.2.5 RSVP

RSVP (Resource Reservation Protocol), utilisé pour demander des niveaux spécifiques de qualité de
service (QoS) au sein des réseaux IP, assurant l'allocation des ressources le long des chemins de
données.

2.3.2.6 TLS

TLS (Transport Layer Security) assure une communication sécurisée sur Internet, protégeant les
données grâce au chiffrement, à l'authentification et aux vérifications d'intégrité.

2.3.2.7 DTLS

DTLS (Datagram Transport Layer Security) est une variante de TLS adaptée à la communication basée
sur des datagrammes, abordant les problèmes de perte de paquets et de réorganisation.

2.3.2.8 RPL

RPL (IPv6 Routing Protocol for Low-Power and Lossy Networks) est conçu pour les réseaux Low-
Power and Lossy Networks (LLNs) économes en énergie, RPL utilise des graphes acycliques dirigés
(DAG) pour le routage.

38
2.3.2.9 CARP

CARP (Channel-Aware Routing Protocol) sert les réseaux de capteurs sans fil sous-marins, permettant
la livraison de données multi-sauts dans des environnements aquatiques difficiles.
2.3.2.10 TSMP

TSMP (Time Synchronized Mesh Protocol) est développé pour les réseaux de capteurs sans fil, TSMP
assure une transmission de données fiable, sécurisée et à faible consommation d'énergie au sein de
réseaux maillés synchronisés.

2.3.3 Couche réseau

2.3.3.1 Wi-Fi

Le Wi-Fi est la technologie de communication la plus couramment utilisée et la plus connue, basée sur
la norme de communication sans fil 802.11 (IEEE). Il fait l'objet d'améliorations constantes pour le
rendre plus rapide, avec moins de latence, et adapté à plusieurs types d'appareils différents. Selon la
génération du Wi-Fi, la sécurité est renforcée pour répondre aux exigences de l'authentification, de la
protection des données et de la disponibilité, garantissant la sécurité des connexions Wi-Fi. Les
appareils sont connectés sans fil en envoyant des signaux dans une plage de 100 mètres, mais en réalité,
cette portée est souvent plus courte.

2.3.5.2 Bluetooth Low Energy (BLE)

La technologie radio Bluetooth Low Energy (LE) est le choix privilégié pour l'intégration de l'IoT en
raison de son efficacité énergétique exceptionnelle. Elle fonctionne avec une consommation d'énergie
minimale, ce qui la rend hautement adaptée aux applications IoT. Bluetooth LE prend en charge une
large gamme de topologies de communication, notamment le point à point, la diffusion et les réseaux
maillés, ce qui la rend polyvalente pour différents scénarios de déploiement, y compris les réseaux de
dispositifs à grande échelle. De plus, elle offre des capacités de positionnement précis des dispositifs.
Cette technologie est largement adoptée, notamment dans les appareils mobiles contemporains tels que
les smartphones et les objets connectés, qui sont prévalents dans le monde entier.

2.3.5.3 ZigBee

ZigBee est un protocole présentant d'importantes similitudes avec Bluetooth dans les infrastructures
IoT. Il répond à des exigences de sécurité strictes tout en offrant une faible consommation d'énergie,

39
une portée de données limitée et une distance de communication étendue allant jusqu'à 200 mètres, soit
le double de Bluetooth. Cela le rend particulièrement adapté aux capteurs et aux dispositifs contraints
en ressources, facilitant la mise en place de vastes réseaux IoT avec de nombreux nœuds.

2.3.5.4 Z-wave

Z-Wave, quant à lui, est un protocole sans fil spécialement conçu pour l'automatisation domestique. Il
opère dans sa propre plage de fréquences radio, ce qui permet de résoudre efficacement les problèmes
d'interférences.

2.3.5.5 LoRaWAN

D'un autre côté, LoRaWAN est un protocole de réseau à faible consommation et à large portée (LPWA)
conçu pour la connectivité sans fil des dispositifs alimentés par batterie dans les mises en œuvre IoT.
Il répond à des exigences essentielles telles que la communication bidirectionnelle et la sécurité de bout
en bout.

2.3.6 Couche physique

Le protocole IEEE 802.15.4 a été spécialement conçu pour les couches physiques et MAC afin de
faciliter la communication entre des dispositifs dotés de ressources énergétiques limitées et de besoins
spécifiques en termes de services via des capteurs. Ce protocole prend en charge une communication
à courte portée et économique, encourageant les dispositifs à collaborer pour un routage multi-sauts et
une portée étendue. Il englobe des dispositions pour la création de réseaux personnels sans fil à faible
débit (LR-WPANs).

2.4 Conclusion

La compréhension approfondie des concepts clés, de l'architecture et des acteurs de l'écosystème IoT
est essentielle pour appréhender les enjeux de sécurité qui seront explorés dans ce mémoire. Nous
avons également exploré les protocoles de communication utilisés dans l'IoT, en mettant en évidence
leurs caractéristiques techniques et leurs applications spécifiques. En comprenant ces fondements, nous
sommes mieux préparés à plonger dans les enjeux cruciaux de sécurité auxquels font face les dispositifs
IoT que nous développerons tout de suite sur le chapitre suivant.

40
CHAPITRE 3
SÉCURITÉ DES DISPOSITIFS IoT

3.1 Introduction

L'avènement de l'Internet des Objets a marqué une révolution, en connectant des objets physiques au
monde numérique, mais avec cette expansion rapide viennent des défis complexes en matière de
sécurité. Dans ce chapitre, nous explorerons en détails les vulnérabilités courantes qui affectent les
dispositifs IoT et qui nécessitent des mesures de sécurité rigoureuses.

3.2 Vulnérabilités courantes dans les dispositifs IoT

Selon les statistiques des attaques basées sur l'IoT pour l'année 2019, en moyenne, un appareil IoT est
attaqué seulement cinq minutes après sa mise en service. [25] L'explosion de la popularité des appareils
intelligents devait entraîner une augmentation des cyberattaques, et malheureusement, cela s'est avéré
être vrai. Les dispositifs IoT, composés de matériel de firmware et de logiciels, sont exposés à un
éventail de vulnérabilités potentielles qui pourraient être exploitées par des attaquants malveillants.

Figure 3.01: Distribution des menaces avec l’IoT.

3.2.1 Faiblesses du matériel et du firmware

Les faiblesses dans le matériel et le firmware des dispositifs IoT représentent une catégorie majeure de
vulnérabilités. Le matériel IoT peut être sujet à des défauts de conception, des ports non sécurisés, et

41
des interfaces exposées. Cela crée des points d'entrée potentiels pour les attaquants. Les attaquants
peuvent exploiter ces failles pour accéder au dispositif et compromettre sa fonctionnalité.

Le firmware, le programme intégré qui contrôle le matériel, est également une cible pour les attaquants.
Les vulnérabilités du firmware peuvent être exploitées pour obtenir un accès non autorisé au dispositif.
Les problèmes tels que les débordements de tampon et les erreurs de validation sont courants. Les
attaquants peuvent manipuler le firmware pour exécuter du code malveillant, désactiver les
mécanismes de sécurité et prendre le contrôle complet du dispositif.

3.2.1.1 BlueBorne

L'attaque BlueBorne a ciblé les dispositifs utilisant la technologie Bluetooth. Les attaquants ont
exploité des vulnérabilités du firmware Bluetooth pour propager des logiciels malveillants à d'autres
dispositifs, même sans interaction de l'utilisateur. Cette attaque a souligné l'importance de maintenir à
jour les micrologiciels pour éviter les vulnérabilités. [26]

3.2.1.2 Supply Chain Attacks

Les attaques de la chaîne d'approvisionnement ou “Supply Chain Attacks” sont une préoccupation
croissante dans l'IoT. Ces attaques visent à compromettre les dispositifs dès leur fabrication ou lors de
leur distribution. Un exemple bien documenté est l'attaque SolarWinds en 2020, où des pirates ont
infiltré le processus de mise à jour de logiciels pour compromettre des milliers d'organisations. De
telles attaques ont des conséquences dévastatrices, compromettant des réseaux entiers. [27]

L'attaque SolarWinds aussi connu sous le nom de “Sunburst”, a compromis le logiciel Orion de
SolarWinds, qui était utilisé par de nombreuses organisations. Les pirates ont injecté un code
malveillant dans une mise à jour du logiciel, permettant l'accès à distance aux systèmes. Les
conséquences ont été massives, touchant des entreprises et des agences gouvernementales du monde
entier. Cette attaque a montré la nécessité d'une vigilance accrue tout au long de la chaîne
d'approvisionnement.

L'industrie reconnaît l'urgence de se prémunir contre les attaques de la chaîne d'approvisionnement.


Les entreprises renforcent les contrôles de sécurité pour identifier et atténuer les risques. Les méthodes
comprennent l'audit rigoureux des fournisseurs, la vérification du matériel et des logiciels à chaque
étape de la production, et l'utilisation de modules cryptographiques certifiés. De plus, les normes telles
que ISO 27001 et ISO 28000 fournissent des cadres pour sécuriser la chaîne d'approvisionnement.

42
3.2.2 Attaques logicielles courantes

Les attaques logicielles représentent une autre catégorie de vulnérabilités potentielles. Les dispositifs
IoT dépendent de logiciels pour fonctionner et interagir avec leur environnement. Cependant, les
logiciels peuvent contenir des vulnérabilités qui peuvent être exploitées par des attaquants. Les attaques
de type injection, où des données malveillantes sont injectées dans le logiciel, sont courantes et peuvent
compromettre la sécurité des dispositifs IoT.

Par exemple, la faille de conception Heartbleed dans la bibliothèque OpenSSL a exposé des millions
de dispositifs IoT à des risques. La vulnérabilité Heartbleed exploite une faille dans la bibliothèque
OpenSSL, un protocole cryptographique fondamental largement utilisé pour sécuriser les échanges de
données. Elle trouve son origine dans une lacune de la mise en œuvre de l'extension Heartbeat du
protocole de sécurité de la couche de transport (TLS), une fonctionnalité conçue pour vérifier
périodiquement l'état de la connexion entre le client et le serveur. Cependant, en raison d'une absence
de vérification adéquate des limites, les attaquants pouvaient manipuler le système pour révéler des
informations sensibles contenues dans la mémoire du serveur, contournant ainsi les protections mises
en place par la couche de chiffrement. En envoyant des demandes Heartbeat mal formées et en
spécifiant une longueur supérieure à la charge utile réelle, les attaquants pouvaient inciter le serveur à
divulguer des portions supplémentaires de données. Bien que ces fragments de données soient
cryptiques par nature, ils pouvaient contenir des informations hautement sensibles, allant des noms
d'utilisateur et des mots de passe aux clés cryptographiques. En substance, Heartbleed a transformé un
protocole de sécurité en un canal de fuite de données, mettant en évidence l'impact d'une faille en
apparence anodine. [28]

3.2.3 Failles de sécurité matérielles

Les dispositifs IoT modernes possèdent des architectures matérielles de plus en plus complexes,
englobant une multitude de capteurs, de processeurs et d'interfaces de communication. Chaque
composant de cette structure interconnectée peut potentiellement servir de point d'entrée pour des
attaques sophistiquées. Les dispositifs embarqués sont par nature limités en termes de ressources, ce
qui peut limiter la mise en œuvre de mesures de sécurité robustes. [29]

Les failles de sécurité matérielles sont une préoccupation majeure dans les dispositifs IoT. Ces failles
se produisent lorsque des attaquants exploitent des vulnérabilités au niveau du matériel lui-même. Les
attaques basées sur des "side-channel" sont un exemple de ce type de vulnérabilités. Les attaquants

43
peuvent exploiter les fuites d'information qui se produisent pendant les opérations du processeur pour
récupérer des données sensibles.

Par exemple, L'attaque basée sur l'analyse de consommation électrique est une illustration pertinente
des vulnérabilités matérielles potentielles. Imaginons un dispositif IoT qui effectue des opérations de
chiffrement, tel que l'AES (Advanced Encryption Standard), pour sécuriser les communications. Lors
de ces opérations, le dispositif effectue un ensemble de manipulations mathématiques sur les données,
avec l'utilisation d'une clé de chiffrement.

L'attaque par analyse de consommation électrique exploite le fait que différentes opérations
mathématiques requièrent des niveaux de consommation électrique distincts. Ces variations subtiles de
la consommation électrique peuvent être mesurées à l'aide d'instruments de haute précision, tels que
des oscilloscopes. L'idée clé est que les opérations de chiffrement spécifiques, comme les substitutions
de bits ou les permutations, provoquent des motifs distincts de consommation électrique.

En capturant et en analysant la consommation électrique pendant l'exécution de ces opérations, un


attaquant peut inférer des informations sur les opérations effectuées, y compris les valeurs
intermédiaires, et potentiellement déduire la clé de chiffrement utilisée. Les variations subtiles dans la
consommation électrique résultent des changements dans la configuration des transistors, qui reflètent
le flux des données à l'intérieur du circuit. [30]

Cette attaque démontre comment des vulnérabilités matérielles peuvent être exploitées pour
compromettre la sécurité d'un dispositif IoT. Pour se défendre contre ce type d'attaque, des contre-
mesures telles que la randomisation des opérations ou l'ajout de bruit électrique peuvent être mises en
œuvre pour rendre difficile l'inférence des données sensibles à partir des fluctuations de consommation
électrique. [31]

Pour atténuer ces vulnérabilités, des contre-mesures et solutions sont indispensables. La conception
sécurisée du matériel et du firmware est primordiale. Les concepteurs doivent intégrer des mécanismes
de sécurité tels que le chiffrement, la vérification d'intégrité et la gestion des droits d'accès. De plus,
des pratiques de développement sécurisé, telles que l'analyse statique et dynamique du code, peuvent
aider à identifier et corriger les vulnérabilités.

44
3.3 Sécurité des communications dans l’IoT

Étant donné que la technologie IoT est conçue pour s'appliquer à de nombreux secteurs cruciaux, en
particulier pour la sécurité nationale et l'économie, avec différentes normes et spécifications
industrielles, les problèmes de sécurité nécessitent une attention particulière pour réduire la surface
d'attaque et prévenir les problèmes de sécurité. Sur la base du protocole à 3 couches, nous discuterons
dans les problèmes et les préoccupations suivants qui traitent des menaces de sécurité de chaque
couche. [32] [33]

Les informations les plus précieuses peuvent être obtenues en examinant chaque type d'attaque et son
impact majeur sur la confidentialité, l'intégrité et la disponibilité. La figure suivante illustre, couche
par couche, les attaques décrites sur la figure 3.02 les relie pour montrer celles qui affectent deux ou
même trois des caractéristiques de sécurité que nous devons préserver. Nous distinguons la majorité
des attaques qui ont des effets sur ces trois caractéristiques de sécurité, un grand nombre d'entre elles
n'affectant que deux, principalement l'intégrité et la disponibilité, et seulement quelques-unes ayant un
impact sérieux sur la confidentialité des données stockées ou transmises. Ces résultats pourraient aider
les développeurs IoT à construire des implémentations IoT sécurisées qui protègent leurs utilisateurs
et facilitent le déploiement des applications IoT.

Figure 3.02: Les attaques courantes par couche.

45
3.3.1 Couche perception

Les cibles de attaques sont les dispositifs, un nœud, l'ensemble du réseau ou les informations
transférées lors d'une procédure d'authentification. Les faiblesses des dispositifs, des systèmes ou des
protocoles qui les facilitent sont principalement situées dans les limitations de puissance des dispositifs,
dans les problèmes inhérents des protocoles ou de l'infrastructure et de la construction IoT elle-même.
Les menaces les plus importantes qui mettent en danger la couche de perception ont été sélectionnées
et décrites ci-après : [34]

3.3.1.1 Écoute illégale (Eavesdropping)

Les dispositifs IoT sont vulnérables aux attaques d'écoute illégale car ils manquent de puissance de
traitement pour les techniques de chiffrement, contrairement aux dispositifs réseau non-IoT. De plus,
si les dispositifs fonctionnent dans un endroit éloigné avec une surveillance minimale ou nulle, les
attaques d'écoute illégale sont plus faciles à mettre en œuvre et plus difficiles à détecter.

3.3.1.2 Faux nœud malveillant

L’avantage de l'IoT de créer facilement un réseau peut devenir une faiblesse. Un adversaire peut
toujours installer un nœud dans le réseau qui envoie de fausses données, une action qui pourrait épuiser
les ressources des nœuds légitimes, compromettant ainsi le fonctionnement de l'ensemble du réseau.

3.3.1.3 Replay attack

Lors du “replay attack”, un intrus écoute les informations authentiques transférées sur la ligne de
communication entre l'expéditeur et un récepteur et les capture. Ensuite, il envoie les mêmes
informations authentifiées à la victime qui les avait déjà reçues dans sa communication, en montrant
la preuve de son identité et de son authenticité. Comme le message est chiffré, le récepteur peut le
traiter comme une demande légitime et y répondre en conséquence à l'intrus.

3.3.1.4 Attaque par synchronisation

L’attaque par synchronisation est plus efficace sur les dispositifs avec des capacités de calcul
minimales. Cette attaque permet à un adversaire de mettre en évidence des vulnérabilités et d'extraire
des informations maintenues dans la sécurité d'un système en mesurant le temps que met le système
pour répondre à différentes requêtes, entrées, algorithmes cryptographiques.

46
3.3.2 Couche réseau

La couche réseau est très sensible aux attaques avec des problèmes de sécurité principalement liés à
l'intégrité et à la disponibilité des informations échangées dans tout un réseau. Les cibles de ces attaques
sont les dispositifs, les ressources du réseau, les données de communication ou les données stockées.
Les vulnérabilités se trouvent désormais dans les protocoles, ainsi que dans les applications ou même
le matériel. Les menaces de sécurité sélectionnées de la couche réseau sont résumées ci-dessous : [36]

3.3.2.1 Attaques par déni de service (DoS)

Avec une attaque DoS, les utilisateurs sont empêchés d'accéder aux dispositifs ou à d'autres ressources
du réseau. Cette action est réalisée en inondant les dispositifs ciblés ou les ressources du réseau de
demandes superflues, ce qui rend impossible ou difficile la communication pour d'autres utilisateurs.

Figure 3.03: Illustration attaque DoS.

3.3.2.2 Attaques MITM

Dans une attaque MITM, l'attaquant, sans être observé, intercepte et altère les données de
communication entre deux parties. Comme elles sont toutes deux inconscientes de l'interception,
l'attaquant peut contrôler leur communication en modifiant les messages selon ses besoins. C'est une
menace sérieuse pour la sécurité du réseau car l'attaquant peut capturer et manipuler des informations
en temps réel, avant d'être exposé. [37]

47
Figure 3.04: Illustration attaque MITM.

3.3.2.3 Attaques de stockage

Comme toutes les données sont stockées sur des dispositifs de stockage (en local ou dans le cloud),
elles peuvent être attaquées en modifiant des données légitimes en données incorrectes, voire en les
supprimant définitivement. Par conséquent, si de nombreux groupes d'utilisateurs ont accès au
stockage, il est d'autant plus probable que ce type d'attaques se produise, même si le processus est basé
sur la technologie de la blockchain.

3.3.2.4 Attaques par exploitation

Les attaques par exploitation sont des attaques qui exploitent les vulnérabilités de sécurité dans les
applications, les systèmes ou le matériel. Leur objectif est de prendre le contrôle partiel ou total d'un
système et de voler ou d'altérer les informations stockées. Bien que l'administrateur du système puisse
corriger la vulnérabilité de sécurité, chaque modification apportée à l'application ou au matériel peut
créer de nouvelles vulnérabilités pour un attaquant.

3.3.3 Couche application

La couche application est plus sujette aux problèmes de sécurité par rapport aux deux autres couches,
en raison de sa diversité. La couche Application se compose des applications et des logiciels conçus

48
pour les mises en œuvre IoT, et comme elles sont innombrables, il en va de même pour les applications
qui leur sont destinées. Par exemple, lorsque l'IoT est utilisé pour des applications de maison
intelligente, les menaces et les vulnérabilités peuvent provenir de chaque application ayant accès au
matériel, que ce soit de l'intérieur (centre de contrôle ou même notre application mobile) ou de
l'extérieur (applications à distance). Les cibles de ces attaques sont les applications et les logiciels en
général. Les vulnérabilités se trouvent dans les applications et dans le système. Certaines des menaces
de sécurité les plus courantes de la couche Application dans l'IoT sont les suivantes : [34]

3.3.3.1 Cross Site Scripting (XSS)

Dans les attaques Cross Site Scripting, l'adversaire injecte des scripts malveillants, tels que des codes
Javascript, dans un site de domaine de confiance consulté par de nombreux autres utilisateurs. Avec
cette action, l'adversaire peut altérer le contenu d'une application selon ses objectifs et utiliser des
informations originales de manière malveillante.
3.3.3.2 Attaque par code malveillant

Chaque logiciel est construit avec du code, de même que les logiciels malveillants. Les chevaux de
Troie, les virus, les vers ou les portes dérobées sont des codes malveillants destinés à provoquer des
effets indésirables sur les opérations du système. En général, ces types d'attaques ne peuvent pas être
bloqués ou détectés par des logiciels antivirus et peuvent s'activer soit lorsque certains critères sont
remplis, soit après une interaction de l'utilisateur (par exemple, l'ouverture d'un fichier).

3.3.3.3 Gestion des Big Data

Les grands réseaux IoT avec de nombreux dispositifs interagissant créent une énorme quantité de
données. Si le matériel utilisé dans le réseau ne peut pas traiter les données selon les exigences actuelles
ou futures, cela peut entraîner des perturbations du réseau et des pertes de données.

3.4 Méthodologies d'évaluation de la sécurité

Nous allons maintenant se pencher sur les différentes méthodologies d'évaluation de la sécurité,
fournissant un aperçu complet des approches utilisées pour tester et analyser la robustesse des
dispositifs IoT face aux attaques potentielles.

49
3.4.1 Revue des méthodes de test de sécurité pour les dispositifs IoT

La complexité des dispositifs IoT exige des méthodes de test spécifiques pour évaluer leur sécurité.
Parmi ces méthodes, deux approches majeures se démarquent : les tests statiques et les tests
dynamiques. Les tests de sécurité statiques analysent le code source ou binaire sans l'exécuter,
identifiant les failles potentielles dans la logique du programme. Les tests de sécurité dynamiques, en
revanche, impliquent l'exécution du code pour identifier les vulnérabilités en temps réel. Les tests
statiques sont utiles pour détecter des vulnérabilités logiques, tandis que les tests dynamiques révèlent
des vulnérabilités liées au comportement réel du dispositif. [33]

3.4.2 Évaluation des vulnérabilités par analyse statique

L'analyse statique est une méthodologie qui consiste à analyser le code source ou binaire d'un dispositif
sans l'exécuter. Cela permet de détecter des vulnérabilités potentielles liées à la logique du programme,
comme les failles de type "injection" ou les dépassements de tampon. Ils analysent la structure, la
syntaxe et le flux de contrôle du code pour identifier les vulnérabilités potentielles, les erreurs de
codage et les violations de conformité. Ces outils utilisent la reconnaissance de motifs, des moteurs
basés sur des règles et l'analyse des flux de données pour repérer les problèmes susceptibles de conduire
à des violations de sécurité ou à des dysfonctionnements logiciels.

Par exemple, si un dispositif IoT utilise une bibliothèque avec des vulnérabilités connues, une analyse
statique peut les repérer. Cependant, l'analyse statique ne prend pas en compte les interactions
dynamiques du code et peut manquer des vulnérabilités subtiles.

Considérons une application IoT simple qui lit des données d'un capteur et les traite. Une vulnérabilité
courante dans le code IoT est le débordement de tampon, où un attaquant dépasse la taille du tampon
et injecte du code malveillant.

Les outils d'analyse statique examineraient le code et détecteraient des vulnérabilités potentielles de
débordement de tampon en analysant comment la mémoire est allouée, utilisée et désallouée dans le
code. Quelques exemples d’outils d’analyse statique pour l’IoT sont :

3.4.2.1 C-STAT

Un outil qui effectue une analyse statique complète du code C et C++, y compris les normes de codage
MISRA C et MISRA C++ pour les systèmes critiques en matière de sécurité.

50
3.4.2.2 Klocwork

Cet outil prend en charge plusieurs langages et dispose d'un ensemble de vérificateurs spécialisés pour
les vulnérabilités IoT, notamment les fuites de mémoire, les débordements de tampons.

3.4.2.3 Clang

Faisant partie de l'ensemble de compilateurs Clang, il fournit une analyse approfondie du code C et
C++, identifiant des problèmes tels que les référencements de pointeurs nuls et les fuites de mémoire.

3.4.2.4 Cppcheck

Un outil open source pour l'analyse de code C++, qui détecte les erreurs de programmation courantes
et propose des suggestions d'amélioration.

3.4.3 Évaluation des vulnérabilités par analyse dynamique

L'analyse dynamique consiste à exécuter le code d'un dispositif dans un environnement contrôlé pour
identifier les vulnérabilités en temps réel. Cette approche permet de détecter des vulnérabilités qui
pourraient ne pas être visibles lors de l'analyse statique. Elle consiste à exécuter l'application et à
analyser ses interactions avec les entrées, les systèmes externes et son environnement. Cette approche
fournit des informations sur la manière dont un attaquant pourrait exploiter les vulnérabilités et offre
un contexte réel pour les problèmes de sécurité. Dans la partie implémentation, nous allons faire une
évaluation par analyse dynamique. [36]

Considérons un scénario où le micrologiciel d'un dispositif IoT traite des entrées utilisateur sans
validation appropriée. Un attaquant pourrait injecter une entrée malveillante pour déclencher des
débordements de mémoire. Un outil d'analyse dynamique surveille l'exécution de l'application, y
compris les interactions avec les entrées. Si l'outil détecte un comportement inattendu, comme une
augmentation soudaine de la consommation de mémoire, il émet une alerte indiquant une tentative
potentielle de débordement de mémoire. Quelques exemples d’outils pour l’analyse dynamique :

3.4.3.1 Burp Suite

Bien qu'il soit principalement utilisé pour la sécurité des applications Web, le module Intruder de Burp
Suite peut être adapté aux protocoles IoT. Il permet le test de fuzzing et la détection de vulnérabilités
en temps d'exécution.

51
3.4.3.2 Wireshark

Cet analyseur de paquets peut aider à détecter les anomalies dans le trafic réseau en temps d'exécution.
Il est particulièrement utile pour surveiller les interactions entre les dispositifs IoT et les réseaux.

3.4.3.3 Qiling Framework

Cet outil simule les environnements et les comportements des dispositifs IoT, permettant d'identifier
les vulnérabilités par l'analyse en temps d'exécution.

3.4.3.4 Frida

Une trousse d'outils d'instrumentation dynamique open source, Frida permet l'analyse dynamique du
code pour les applications mobiles et les dispositifs IoT.

L'utilisation combinée d'analyses statiques et dynamiques peut aider à identifier un large éventail de
vulnérabilités dans les dispositifs IoT. Cependant, il est important de noter que ces méthodologies ont
leurs limites. Les analyses statiques peuvent manquer des vulnérabilités non évidentes, tandis que les
analyses dynamiques peuvent ne pas être représentatives de toutes les conditions d'utilisation du
dispositif. Par conséquent, les concepteurs et les développeurs doivent adopter une approche holistique
en combinant plusieurs méthodes de test et en considérant les spécificités de chaque dispositif.

3.5 Mesures de sécurité pour renforcer la résilience des dispositifs IoT

L'une des préoccupations majeures dans l'IoT est la sécurité des dispositifs interconnectés, et cette
section explore en profondeur les mesures de sécurité nécessaires pour renforcer la résilience de ces
dispositifs face aux menaces croissantes. En adoptant une approche multicouche, les concepteurs
peuvent atténuer les risques potentiels et garantir que les dispositifs IoT fonctionnent de manière
sécurisée et fiable. [37]

Toute architecture intégrant des solutions IoT devrait commencer par l'adoption de normes de sécurité
internationalement reconnues au sein des organisations, en particulier celles qui traitent d'opérations
critiques telles que les soins de santé ou l'énergie. L'utilisation d'outils de sécurité à des fins de
prévention et d'enquête, tels que les pares-feux, les systèmes de prévention des intrusions (IPS), les
systèmes de détection des intrusions (IDS) et les programmes antivirus et antimalwares, devrait
également être incluse lorsque cela est nécessaire. La mise en place de mesures en matière de recherche
légale, de correction et de mise à niveau, de sécurité physique, de contrôle d'accès et d'authentification

52
est également importante. Enfin, l'amélioration des capacités de réponse aux incidents devrait toujours
être une priorité pour tous les systèmes numériques modernes. [34]

Surtout pour l'IoT, les solutions devraient inclure des algorithmes de chiffrement légers, des
mécanismes de détection distribuée, de l'apprentissage fédéré, des méthodes d'apprentissage
adversarial et une authentification avancée à la fois des appareils et des utilisateurs. En raison de
l'hétérogénéité, de la scalabilité et de la nature dynamique de l'Internet des objets, la cryptographie
classique en matière de cybersécurité telle que l'AES (Advanced Encryption Standard), le RSA
(Rivest–Shamir–Adleman), le DES (Data Encryption Standard), le Blowfish et le RC6 ne peuvent pas
être immédiatement utilisés dans ces domaines.

3.5.1 Protection matérielle et sécurisation des composants

La protection matérielle est une première ligne de défense pour sécuriser les dispositifs IoT contre les
attaques physiques et électroniques. Cela implique l'intégration de dispositifs de sécurité matérielle,
tels que des éléments sécurisés, des puces à clé publique et des circuits intégrés de sécurité. Les
dispositifs sécurisés sont conçus pour stocker et gérer les clés de chiffrement, empêchant ainsi les
attaquants d'accéder aux informations sensibles.

L'industrie de la sécurité matérielle a évolué pour répondre aux besoins spécifiques de l'IoT. Des
normes telles que la norme FIPS 140-2 (Federal Information Processing Standards) définissent les
exigences de sécurité pour les modules cryptographiques utilisés dans les dispositifs IoT. Des
techniques telles que le « Secure Boot » garantit que seuls les logiciels authentiques et signés peuvent
être exécutés sur le dispositif. Les Trusted Execution Environments (TEE) fournissent des
environnements isolés pour l'exécution sécurisée de fonctions critiques.

3.5.2 Utilisation de protocoles de sécurité et de chiffrement

L'adoption de protocoles de sécurité robustes est essentielle pour sécuriser les communications entre
les dispositifs IoT et les serveurs distants.

3.5.3 Mécanismes d'authentification et d'autorisation

L'authentification et l'autorisation sont des mécanismes clés pour contrôler l'accès aux dispositifs IoT.
L'authentification vise à vérifier l'identité d'un dispositif IoT avant de lui accorder l'accès à des
ressources sensibles. Elle garantit que seuls les dispositifs autorisés peuvent accéder aux services et

53
aux données. L'autorisation, d'autre part, gère les permissions accordées à un dispositif une fois
authentifié. Par exemple, un dispositif IoT peut être autorisé à collecter des données de capteurs mais
pas à les modifier. L'authentification peut être renforcée avec des mécanismes comme l'authentification
à deux facteurs (2FA), qui exige des informations supplémentaires outre le mot de passe, comme une
empreinte digitale. L'utilisation de certificats numériques ou de jetons d'authentification permet aussi
d'établir l'identité d'un dispositif de manière sécurisée. Les protocoles d'authentification couramment
utilisés comprennent :[34]

3.5.3.1 OAuth 2.0

Ce protocole permet l'accès délégué, autorisant les applications à agir au nom des utilisateurs sans
exposer leurs identifiants. OAuth 2.0 convient aux scénarios où des services tiers nécessitent l'accès
aux données des utilisateurs.
3.5.3.2 Certificats X.50

En utilisant des certificats numériques, X.50 assure une authentification mutuelle entre les dispositifs
et les serveurs. Il renforce la sécurité en validant l'identité des deux parties.

3.5.3.3 Mécanismes d’authentification matérielles

Les méthodes d'authentification basées sur le matériel, comme le hardware RoT, le TEE et le TPM,
sont devenues des normes industrielles pour sécuriser les dispositifs IoT.

● Hardware RoT : Cette extension du modèle de sécurité RoT est un moteur de calcul distinct
qui gère les processeurs cryptographiques de la plateforme de confiance des dispositifs. Parfait
pour l'IoT, il protège contre les accès non autorisés et la manipulation matérielle.
● Environnement d'exécution de confiance (TEE) : Cette méthode d'authentification isole les
données d'authentification du processeur principal du dispositif IoT par un chiffrement de haut
niveau. Elle fonctionne en parallèle avec l'OS du dispositif sans impact sur la performance.
● Module de Plateforme de Confiance (TPM) : Une puce IoT spécialisée stockant des clés
d'authentification spécifiques à l'hôte. Les clés sont inaccessibles aux logiciels, garantissant une
protection contre les attaques numériques.

Le choix de la méthode dépend du type de dispositif, des données et de la localisation. L'industrie IoT
n'a pas encore de norme pour l'authentification, ce qui la rend fragmentée. Les fabricants intègrent ces

54
méthodes dans les dispositifs pour les rendre compatibles avec d'autres technologies de sécurité et de
surveillance.

Par exemple, L'authentification à deux facteurs (2FA) ajoute une couche de sécurité supplémentaire à
l'authentification traditionnelle. Prenons l'exemple d'un dispositif IoT qui contrôle l'accès à un
bâtiment. En plus d'un mot de passe, l'utilisateur doit également fournir une empreinte digitale pour
s'authentifier. Même si quelqu'un vole le mot de passe, il ne pourra pas accéder au bâtiment sans
l'empreinte digitale correspondante. Cela renforce considérablement la sécurité et rend plus difficile
l'accès non autorisé.

Trusted Execution Hardware Root of Digital Certificates Trusted Platform


Environment (TEE) Trust (ROT) Module (TPM)

- Appareils qui - Dispositifs qui - Les dispositifs qui - Les organisations qui
transmettent des transmettent des transmettent des construisent leurs
données de grande données de grande données de faible propres appareils IoT
valeur. valeur, telles que des valeur. ou qui ont de
données financières ou l'expérience dans la
- Appareils dotés de médicales. - Les appareils situés modification
CPU moins puissantes derrière d'autres d'appareils fournis par
et de caches mémoire - Dispositifs situés dispositifs de sécurité, des fournisseurs.
plus petits. dans des lieux tels que les pares-feux
éloignés. et les réseaux privés. - Les appareils de
- Passerelles IoT et grande valeur qui ont
autres appareils réseau - Dispositifs dans les - Les organisations qui une relation
sensibles qui lieux publics. doivent gérer une individuelle avec le
nécessitent une grande flotte réseau ou qui ne se
protection de sécurité d'appareils IoT en connectent qu'à des
élevée. toute sécurité. appareils et des
serveurs uniques.
- Les organisations qui
disposent déjà d'un
service de gestion
d'infrastructure pour
surveiller leur réseau,
leurs systèmes et leurs
appareils.

Tableau 3.01: Méthodes d'authentification pour l’IoT et leurs applications idéales.

55
3.5.4 Surveillance et Gestion des Mises à Jour

Les dispositifs IoT sont sujets à l'évolution constante des menaces. Par conséquent, la surveillance et
la gestion des mises à jour de sécurité sont vitales. Les fabricants doivent fournir des correctifs pour
les vulnérabilités nouvellement découvertes. Les mises à jour de sécurité doivent être régulièrement
diffusées pour garantir que les dispositifs IoT restent protégés. La gestion des mises à jour doit être
réalisée de manière transparente pour les utilisateurs, minimisant ainsi les risques d'exploitation.[35]

La sécurité des dispositifs IoT repose sur une combinaison de mesures techniques et organisationnelles.
La protection matérielle, les protocoles de sécurité, l'authentification renforcée et la surveillance
continue sont autant de composantes essentielles pour renforcer la résilience des dispositifs IoT. En
adoptant ces mesures, les concepteurs et les utilisateurs peuvent travailler ensemble pour minimiser les
risques de violations de sécurité, garantissant ainsi que les avantages offerts par l'IoT sont exploités en
toute sécurité et confiance.

3.5 Conclusion

Nous avons exploré en détail les aspects cruciaux de la sécurité, notamment les protocoles de
communication sécurisée, les vulnérabilités spécifiques à chaque couche de l'architecture IoT, ainsi
que les attaques potentielles auxquelles ces dispositifs sont exposés. Nous avons également examiné
des contre-mesures essentielles pour renforcer la sécurité des dispositifs IoT. Cette analyse souligne
l'importance vitale de la sécurité dans l'écosystème IoT et met en avant la nécessité d'adopter des
approches de sécurité proactives pour garantir la protection des données et la confidentialité des
utilisateurs dans un monde de plus en plus connecté. Dans le chapitre suivant, nous allons parler de la
phase de la mise en œuvre pratique sur un dispositif IoT.

56
CHAPITRE 4
MISE EN OEUVRE PRATIQUE SUR L’ESP8266

4.1 Introduction à l'ESP8266 et son rôle dans l'IoT

L'ESP8266 est un composant électronique qui a révolutionné le monde de l'Internet des Objets. En tant
que plateforme polyvalente, il offre une connectivité Wi-Fi intégrée à faible coût, ce qui en fait un
choix populaire pour une variété d'applications IoT. Dans cette section, nous examinerons en détail
l'ESP8266 en tant que plateforme IoT, son rôle dans cet écosystème, et son utilisation dans divers
dispositifs IoT.

Figure 4.01: L’ESP8266 NodeMCU.

4.1.1 Présentation de l'ESP8266 en tant que plateforme IoT

L'ESP8266 a été initialement développé par la société chinoise Espressif Systems et est rapidement
devenu un choix de prédilection pour les développeurs IoT. En associant un microcontrôleur puissant
et une interface Wi-Fi, il a ouvert la voie à une multitude de possibilités de développement. Cette
plateforme permet aux développeurs de créer des dispositifs IoT connectés au réseau sans fil, offrant
ainsi des fonctionnalités telles que la surveillance à distance, le contrôle à distance et la collecte de
données en temps réel.

L'ESP8266 peut être programmé en utilisant différents environnements de développement, tels que
l'IDE Arduino, MicroPython ou même le langage Lua. Cela donne aux développeurs la flexibilité de
choisir l'environnement qui correspond le mieux à leurs compétences et à leurs besoins spécifiques. En
raison de sa popularité et de sa facilité d'utilisation, il est devenu l'une des plates-formes les plus
couramment utilisées pour les projets IoT à petite échelle.

57
4.1.2 Utilisation de l'ESP8266 dans différents dispositifs IoT

L'ESP8266 est utilisé dans une variété d'applications IoT, allant des projets personnels aux applications
industrielles complexes. Sa polyvalence le rend adapté à de nombreuses utilisations, telles que les
capteurs environnementaux, les dispositifs de contrôle à distance, les serrures connectées, les
dispositifs de suivi, les systèmes d'automatisation domestique et bien plus encore.

En effet, de nombreuses entreprises et industries ont adopté l'ESP8266 pour leurs projets IoT en raison
de sa facilité de programmation, de sa connectivité Wi-Fi fiable et de sa compatibilité avec divers
capteurs et actuateurs. Des exemples concrets incluent la surveillance environnementale, où l'ESP8266
peut être utilisé pour collecter et transmettre des données telles que la température, l'humidité et la
qualité de l'air à des plates-formes cloud pour une analyse ultérieure.

Cette polyvalence en fait un choix de premier ordre pour les projets personnels, les applications
industrielles et même les projets de recherche. De plus, sa popularité a conduit à la création d'une
communauté active de développeurs qui partagent leurs connaissances et leurs projets.

L'utilisation de l'ESP8266 a considérablement augmenté au fil des ans. L'ESP8266 est largement utilisé
dans les projets IoT personnels, les prototypes et les expérimentations. Son prix abordable et sa grande
communauté de développeurs ont contribué à son adoption rapide. Plusieurs projets open source ont
été développés autour de l'ESP8266, offrant des solutions préconçues pour diverses applications.

4.2 Position du problème

L'univers de l'Internet des Objets a rapidement évolué, offrant une multitude de possibilités allant de
la domotique aux dispositifs de suivi de la santé. Cependant, cette croissance rapide n'a pas été sans
conséquences en matière de sécurité. Les dispositifs IoT sont désormais omniprésents dans notre
quotidien, de nos maisons à nos lieux de travail, et même dans les industries. Cela a ouvert une porte
gigantesque aux cybermenaces.

Les problèmes de sécurité dans l'IoT sont intensifiés par la nature hétérogène des dispositifs, leurs
ressources limitées et leur déploiement dans des environnements où la sécurité n'est pas toujours une
priorité. Par exemple, les caméras de surveillance connectées, les thermostats intelligents et les capteurs
industriels peuvent tous être la cible d'attaques malveillantes.

58
L'un des aspects les plus cruciaux de la sécurité dans le domaine de l'Internet des Objets, par contre,
est la protection des données sensibles échangées entre les dispositifs connectés et les serveurs. Alors
que l'IoT ouvre la voie à une connectivité accrue et à des avantages pratiques incontestables, il expose
également ces dispositifs à des risques de sécurité élevés. Les dispositifs IoT sont souvent déployés
dans des environnements non sécurisés, ce qui les expose à une multitude de menaces, allant des
attaques par déni de service aux violations de données.

4.2.1 Problématique de sécurité dans l'IoT et choix de la démonstration

C'est dans ce contexte que nous avons choisi de démontrer une vulnérabilité spécifique sur l'ESP8266.
Notre choix de dispositif ne s'est pas fait au hasard, mais plutôt pour représenter une grande part de
l'écosystème IoT. L'ESP8266 est largement utilisé pour sa polyvalence et sa capacité à se connecter à
des réseaux Wi-Fi, ce qui en fait une cible idéale pour des attaques. En exposant les failles de sécurité
potentielles dans un dispositif aussi courant, nous souhaitons sensibiliser à l'urgence de mettre en œuvre
des mesures de sécurité robustes dans tous les domaines de l'IoT.

La diversité des dispositifs, la distribution géographique et les contraintes de ressources imposent des
défis uniques. L'expansion rapide des dispositifs IoT a mis en évidence des vulnérabilités majeures,
souvent exploitées par les cybercriminels pour accéder à des données sensibles, perturber les opérations
et compromettre la vie privée des utilisateurs. Le choix de réaliser une démonstration de sécurité
spécifique sur l'ESP8266 découle de la nécessité de sensibiliser davantage à ces problématiques.

4.2.2 Choix de l’attaque MITM

Les attaques Man-in-the-Middle (MITM) sont des techniques d'attaques sophistiquées et dévastatrices.
Ce type d'attaque peut permettre à un attaquant d'intercepter, d'altérer et de voler les données échangées
entre deux parties légitimes. Dans le contexte de l'IoT, où des données sensibles sont fréquemment
échangées entre les dispositifs et les serveurs, les attaques MITM sont d'une importance capitale.

59
Figure 4.02: Exemple d’illustration d’une attaque MITM.

En démontrant une attaque MITM sur l'ESP8266, nous avons pour objectif de mettre en évidence le
potentiel destructeur de ces attaques et les conséquences potentielles pour la sécurité des dispositifs
IoT. En montrant comment un attaquant peut exploiter une faille de sécurité dans un dispositif aussi
répandu, nous aspirons à faire prendre conscience de l'urgence de la mise en place de solutions de
sécurité efficaces. L'attaque MITM est d'autant plus préoccupante dans l'IoT car les dispositifs
communiquent souvent avec des serveurs distants pour transmettre des données critiques. La
démonstration de cette attaque sur l'ESP8266 vise à exposer la vulnérabilité inhérente aux dispositifs
IoT et à souligner l'urgence d'implémenter des mesures de sécurité robustes.

Il est essentiel de souligner que, dans les attaques MITM, les victimes ne sont même pas conscientes
qu'elles soient attaquées, ce qui rend cette menace d'autant plus insidieuse. Cette démonstration vise à
sensibiliser au fait que ces attaques peuvent se produire sans que les utilisateurs en aient connaissance,
ce qui les rend d'autant plus dangereuses.

De plus, il est important de noter que cette situation est très réaliste, que ce soit dans un environnement
industriel ou avec des dispositifs domestiques personnels. Les utilisateurs ont souvent tendance à
installer ces dispositifs IoT sans modifier les configurations ou les identifiants par défaut, ce qui crée
des vulnérabilités potentielles. Par exemple, un utilisateur qui achète un réfrigérateur connecté peut ne
pas connaître toutes les fonctions techniques et les vulnérabilités de cet appareil. Cependant, ce
dispositif se connecte au réseau Wi-Fi domestique, et l'utilisateur ne sait généralement pas comment
les données sont transmises, car il suppose qu'étant chez lui, personne ne devrait pouvoir accéder ou

60
intercepter ces transmissions de données. Cette confiance dans la sécurité de l'environnement
domestique ajoute une couche de vulnérabilité souvent sous-estimée.

En mettant en lumière les failles potentielles dans la communication entre les dispositifs IoT et les
serveurs, notre démonstration offre une occasion unique d'apprendre comment des attaques
sophistiquées peuvent être menées, et comment les données sensibles peuvent être compromises. Cette
compréhension approfondie est cruciale pour les concepteurs de dispositifs IoT, les développeurs, les
administrateurs système et même les utilisateurs finaux. Elle les encourage à envisager des mesures de
sécurité solides et adaptées pour protéger leurs dispositifs et leurs données.

4.3 Présentation des outils et technologies utilisés

4.3.1 Arduino IDE

Pour écrire, compiler et téléverser notre code sur le microcontrôleur, nous utiliserons l'IDE Arduino.
Il offre une interface conviviale pour développer du code pour l'ESP8266.

Figure 4.03: L’Arduino IDE.

61
4.3.2 Wireshark

Pour analyser le trafic réseau lors de notre attaque MITM, Wireshark est un outil indispensable. Il nous
permettra d'examiner les paquets échangés entre le NodeMCU et le serveur.

Figure 4.04: Interface de Wireshark.

4.3.3 Les bibliothèques nécessaires

Comme notre projet implique la collecte de données à partir d'un capteur BMP280, nous devrons
installer la bibliothèque correspondante dans l'IDE Arduino.

4.4 Configuration de l'environnement expérimental

Dans cette partie, nous aborderons en détail la configuration des outils et des logiciels requis, ainsi que
la mise en place de l'environnement de test.

62
4.4.1 Installation des outils et logiciels nécessaires

Avant de plonger dans l'implémentation, nous devons nous assurer que tous les outils et logiciels
nécessaires sont correctement installés et configurés. Voici les étapes que nous avons suivi pour
l’installation des outils et logiciels nécessaires :

➢ Installation d’Arduino IDE : Il nous permet de programmer facilement le microcontrôleur et


de téléverser votre code. Arduino IDE est largement utilisé dans la communauté en raison de
sa simplicité d'utilisation et de sa grande bibliothèque de ressources. C'est le choix idéal pour
notre expérimentation, car il facilite la programmation de l'ESP8266 et l'intégration avec les
capteurs et les modules que nous utilisons.

Figure 4.05: Installation d’Arduino IDE.

➢ Lancer Arduino en tant qu’Administrateur : Notre projet nécessite l'installation de


bibliothèques et de pilotes qui requièrent des autorisations administratives. En exécutant
Arduino en tant qu'administrateur, nous nous assurons que nous avons les privilèges nécessaires
pour effectuer ces opérations en toute fluidité. Cela garantit également que notre environnement
de développement dispose de toutes les autorisations requises pour interagir avec l'ESP8266 et
les composants associés.

63
Figure 4.06: Lancement d’Arduino en tant qu’Administrateur.

➢ Editer les préférences pour télécharger le modèle de carte ESP8266 : En accédant à


"Fichiers>Préférences" (File > Preferences), nous ajoutons le lien suivant,
"http://arduino.esp8266.com/stable/package_esp8266com_index.json", dans la section "URL
de gestionnaire de cartes supplémentaires". Cette démarche permet d'installer un modèle de
carte compatible avec notre ESP8266.

Figure 4.07: Modification des paramètres de l’Arduino IDE.

64
Figure 4.08: Modification des paramètres de l’Arduino IDE.

➢ Attente du téléchargement des modèles de carte : Après avoir correctement modifié les
paramètres et cliqué sur "OK", l'IDE Arduino téléchargera automatiquement tous les modèles
de carte nécessaires.

Figure 4.09: Téléchargement des cartes nécessaires.

➢ Installation de la carte ESP8266 : Après avoir effectué les étapes précédentes, nous devons
maintenant aller dans "Outils > Carte > Gestionnaire de cartes" (Tool > Board > Board
Manager). Une barre latérale s'ouvrira à gauche de l'IDE Arduino, où nous pouvons rechercher

65
"ESP8266". Ensuite, nous cliquons sur "Installer" pour télécharger et installer la dernière
version, puis nous attendons que l'installation se termine avec succès.

Figure 4.10: Sélection du menu “Boards Manager” ou “Gestionnaire de cartes”.

Figure 4.11: Installation du modèle de carte ESP8266.

➢ Installation du Driver CH340 : Pour s’assurer que notre dispositif IoT est détecté et reconnu
avec succès par notre système Windows, nous devons installer le pilote CH340.

66
Figure 4.12: Installation du Driver CH340.

Figure 4.13: Installation du Driver CH340.

➢ Installation de Wireshark : Nous devons installer Wireshark qui sera utilisé pour analyser le
trafic sur notre réseau local.

67
Figure 4.14 : Installation de Wireshark.

➢ Installation des bibliothèques nécessaires : Installation de toutes les bibliothèques


nécessaires pour garantir que notre projet Arduino dispose de toutes les ressources requises
pour fonctionner correctement.

Figure 4.15: Installation de la bibliothèque ThingSpeak.

68
Figure 4.16: Installation de la bibliothèque BMP280.

Figure 4.17: Installation de la bibliothèque ArduinoJSON.

69
Figure 4.18 : Installation de la bibliothèque pubsubclient.

Nous sommes maintenant prêts à passer vers l’étape suivante qui est la mise en place de notre matériel
IoT.

4.4.2 Mise en place du matériel

4.4.2.1 Illustration

Figure 4.19 : Illustration de notre démonstration.

70
Notre architecture se présente comme sur la figure 4.19 :

➢ En marron la partie dispositif IoT.


➢ En vert le point d’accès pour accéder à un internet.
➢ En Violet la partie serveur.
➢ En rouge l’attaquant.

4.4.2.2 Partie dispositif IoT

Nous avons suivi les étapes suivantes pour la mise en place de notre dispositif :

➢ Connexion du capteur BMP280 : Le premier pas consiste à connecter physiquement le


capteur BMP280 au NodeMCU. Cela implique de connecter les broches SDA, SCL, VCC et
GND du capteur aux broches correspondantes du NodeMCU. Cette connexion permettra au
NodeMCU de collecter des données environnementales à partir du capteur.

Figure 4.20: Schéma de branchement du capteur BMP280 à l’ESP8266.

71
Figure 4.21: Branchement du capteur BMP280 à l’ESP8266.

➢ Sélection de la carte et du port : Sélection de la carte NodeMCU et du port auquel l'ESP8266


est connecté pour permettre à l'IDE Arduino de téléverser le code sur le bon dispositif cible.

Figure 4.22 : Sélection de la carte NodeMCU 1.0.

72
Figure 4.23 : Sélection de la carte NodeMCU 1.0 et du port COM auquel l’ESP8266 est
connecté.

4.4.2.3 Partie point d’accès

Pour notre démonstration, un smartphone est utilisé pour faire un point d’accès afin d’accéder à
l’internet et au serveur cloud.

4.4.2.4 Partie serveur

On a opté pour des plateformes de serveur cloud gratuit sur internet pour la visualisation des donnés
envoyer par notre dispositif IoT :

➢ ThingSpeak

ThingSpeak est une plateforme de l'IoT qui permet aux utilisateurs de collecter, stocker et visualiser
des données en temps réel à partir de capteurs et de dispositifs connectés. Elle offre également des
outils pour analyser et partager ces données. ThingSpeak est souvent utilisé dans des projets de
surveillance environnementale, de domotique et d'autres applications IoT. Vous pouvez créer des
canaux sur ThingSpeak pour collecter des données de différents capteurs et les afficher sous forme de
graphiques ou de tableaux de bord personnalisés. C'est un outil puissant pour la collecte et la gestion
de données dans le domaine de l'Internet des objets.

73
➢ HiveMQ

HiveMQ est une plateforme de messagerie MQTT (Message Queuing Telemetry Transport) qui permet
la communication entre les appareils IoT (Internet des objets). Cette plateforme est conçue pour
faciliter l'échange de données entre les appareils connectés, en particulier dans le contexte de l'IoT.

HiveMQ offre une gestion avancée des connexions MQTT, ce qui permet aux développeurs de créer
des applications IoT robustes et fiables. Elle permet également de mettre en place des mécanismes de
sécurité pour protéger les données sensibles échangées entre les appareils. En outre, HiveMQ propose
des fonctionnalités de surveillance et de gestion à distance des appareils connectés, ce qui facilite la
gestion de grands réseaux IoT.

4.4.2.4 Partie attaquant

Pour la partie attaquante on a utilisé un programme exécutable contenant des attaques spoofing qui
permet d’intercepter les donnes envoyer par le dispositif vers son serveur cloud et d’être l’homme au
milieu.

4.4.3 Présentation des scenarios

4.4.3.1 Scénario 1 : Attaque MITM entre l’ESP8266 et la plateforme ThingSpeak

➢ Configuration du réseau : Pour que notre expérience soit menée dans un environnement
réaliste, nous configurons un réseau local. Il est essentiel que le NodeMCU et l'ordinateur
exécutant Wireshark soient connectés au même réseau. Pour cela, il faut vérifier que le SSID
et le mot de passe du Wi-Fi auquel le NodeMCU est connecté, est le même que celui auquel
l’ordinateur est connecté.

Figure 4.24: Vérification du réseau Wi-Fi.

➢ Accès à la plateforme ThingSpeak : Nous allons accéder à la plateforme ThingSpeak pour


pouvoir visualiser les données envoyées par l’ESP8266. Nous allons aussi récupérer le
“Channel ID” ainsi que l’API key depuis la plateforme et mettre à jour notre code Arduino.

74
Site https://thingspeak.com/login?skipSSOCheck=true

Email gavexe5409@tipent.com

Password LLzp#GS7ZiW^p8b^

Figure 4.25: Accès à la plateforme ThingSpeak.

Figure 4.26: Récupération du Channel ID et de l’API key sur la plateforme ThingSpeak.

75
Channel ID 2241462

Write API Key ZTWQOO0LK8LF4EF7

Une fois le “Channel ID” et le “Write API Key” noté, nous allons mettre à jour ces variables dans notre
code Arduino.

Figure 4.27: Mise à jour du Channel ID et du Write API key dans le code Arduino.

➢ Programmation de l’ESP8266 : Avec l'IDE Arduino, nous allons téléverser le code pour
collecter les données du capteur et les envoyer au serveur distant ThingSpeak. Une fois
téléversé, le code devra également afficher les données collectées sur le moniteur série. Nous
prendrons note particulièrement de l'adresse IP de l’ESP8266 affiché sur le moniteur série, car
elle sera utilisée ultérieurement pour l’attaque MITM.

Figure 4.28: Téléversement du code vers l’ESP8266.

76
Figure 4.29: Affichage de l'adresse IP de l’ESP8266 et les données collectées du BMP280
via le moniteur série.

Nous pouvons voir depuis la plateforme ThingSpeak que les données sont bien mises à jour toutes les
15 secondes.

Unité utilisée :
Température en degré Celsius
Pression en Pascal
Altitude en Mètre
Date en Heure

Figure 4.30 : Données reçues par la plateforme ThingSpeak.

77
➢ Lancement de Wireshark : Pour capturer et analyser le trafic réseau, nous lancerons
Wireshark sur l'ordinateur. Il sera utilisé pour intercepter et analyser le trafic entre le NodeMCU
et le serveur distant. Nous analyserons l’interface Wi-Fi.

Figure 4.31: Interface de lancement de Wireshark

Après avoir sélectionné l’interface Wi-Fi, nous allons ajouter un filtre pour n’afficher seulement que
le trafic depuis/vers notre ESP8266 en ajoutant l'adresse IP que nous avons noté précédemment.

Figure 4.32: Écoute sur l’interface Wi-Fi avec un filtre sur l'adresse IP de l’ESP8266.

Nous pouvons remarquer qu’aucun trafic n’est affiché sur Wireshark, ceci est normal car l’ESP8266
envoie ses données directement vers le routeur local puis vers internet. Nous allons maintenant lancer
l’attaque MITM pour devenir “the man in the middle” ou l’homme du milieu. Ceci signifie que nous
allons envoyer des paquets ARP vers l’ESP8266 et vers le routeur pour que l’ESP8266 croit que nous

78
sommes le routeur, et pour que le routeur croit que notre ordinateur est l’ESP8266, comme dans la
figure 4.02.

➢ Exécution de l'Attaque MITM : Une fois que nous aurons mis en place Wireshark, nous
serons prêts à exécuter l'attaque MITM. Cela nous permettra d'observer comment un attaquant
potentiel peut intercepter et voler des données pendant leur transmission. Pour cela, nous allons
ouvrir une invite de commande dans le dossier où nous avons notre outil d’attaque
(arpspoof.exe), en indiquant l’adresse IP de notre ESP8266 que nous avons noté précédemment.

Figure 4.33: Lancement de l’attaque MITM.

➢ Interception des données : Une fois l’attaque lancée nous pouvons directement remarquer
que tout le trafic venant de l'adresse IP peut maintenant être visualisée sur Wireshark.

Figure 4.34: Interception des données.

79
Pour pouvoir visualiser de plus près les paquets en transit, nous allons sélectionner un paquet puis
suivre le flux TCP (Follow > TCP Stream).

Figure 4.35 : Interception des données.

Une nouvelle fenêtre (figure 4.36) s’ouvre alors où nous pouvons voir en texte brute les données
envoyées par notre capteur BMP280 : la température (field1), la pression (field2), et l’altitude (field3).

Figure 4.36 : Interception des données envoyées par le capteur BMP280.

80
4.4.3.2 Scénario 1 – Conclusion

Bien que notre démonstration puisse sembler être une expérience sans danger, cela met en lumière une
question cruciale. Dans le monde réel, ce capteur pourrait être intégré à des dispositifs essentiels tels
que des réfrigérateurs ou des portes et fenêtres connectées de notre domicile. Nous avons mis en
évidence comment les données d'un simple capteur pouvaient être interceptées et manipulées,
soulevant ainsi des inquiétudes quant à la sécurité des dispositifs IoT.

4.4.3.3 Scénario 2 : Attaque MITM entre l’ESP8266 et la plateforme HiveMQ

Maintenant, nous allons mettre en œuvre un protocole de communication plus robuste et sécurisé :
MQTT (Message Queuing Telemetry Transport). Avec MQTT, notre objectif est d'évaluer si des
mesures de sécurité renforcées peuvent contrecarrer les tentatives d'interception et protéger l'intégrité
des données transmises par notre capteur. Nous examinerons l'efficacité de MQTT pour préserver
l'intégrité des données et la confidentialité, mettant en lumière l'importance de l'adoption de protocoles
sécurisés dans l'écosystème IoT.

➢ Configuration du réseau : Comme pour l’expérience précédente, il est essentiel que le


NodeMCU et l'ordinateur exécutant Wireshark soient connectés au même réseau. Pour cela, il
faut vérifier que le SSID et le mot de passe du Wi-Fi auquel le NodeMCU est connecté, est le
même que celui auquel l’ordinateur est connecté. Nous allons aussi arrêter l’attaque MITM que
nous avons lancé précédemment via notre invite de commande, et arrêter Wireshark.

Figure 4.37: Vérification du réseau Wi-Fi

➢ Accès à la plateforme HiveMQ : Nous allons accéder à la plateforme HiveMQ pour pouvoir
visualiser les données envoyées par l’ESP8266.

Site https://info.hivemq.com/mqtt-broker

Email fehofi5620@viicard.com

Password fehofi5620@viicard.com

81
Figure 4.38: Accès à la plateforme HiveMQ.

Figure 4.39: Accès à la plateforme HiveMQ.

Figure 4.40: Tableau de bord de la plateforme HiveMQ.

82
➢ Programmation de l’ESP8266 : Avec l'IDE Arduino, nous allons téléverser le code pour
collecter les données du capteur et les envoyer au serveur distant HiveMQ. Une fois téléversé,
le code devra également afficher les données collectées sur le moniteur série.

Sur la plateforme HiveMQ, nous allons nous rendre sur la partie “Web Client” où nous entrerons les
informations suivantes, qui sont les mêmes que nous avons configurées dans notre programme Arduino
: Client Connection Settings (Paramètres de Connexion du Client)

Username Admin

Password d7Wl7S$&!Y

Figure 4.41: Connexion au client web.

Après connexion, nous allons nous assurer que nous souscrivons à tous les “topics” en cliquant sur
“Subscribe To All Topics”. Cela nous permettra de recevoir toutes les données venant de l’ESP8266.

83
Figure 4.42: Configuration du client web.

Une fois notre client web connecté, et avoir souscris à tous les “topics”, nous pouvons voir directement
les données envoyées par l’ESP8266.

Figure 4.43: Réception des données sur le client web.

84
Figure 4.44: Réception des données sur le client web.

➢ Lancement de Wireshark : Pour capturer et analyser le trafic réseau, nous lancerons


Wireshark sur notre ordinateur. Il sera utilisé pour intercepter et analyser le trafic entre le
NodeMCU et le serveur distant. Nous analyserons l’interface Wi-Fi.

Figure 4.45: Interface de lancement de Wireshark.

85
Après avoir sélectionné l’interface Wi-Fi, nous allons ajouter un filtre pour n’afficher seulement que
le trafic depuis/vers notre ESP8266 en ajoutant l'adresse IP que nous avons noté précédemment.

Figure 4.46: Écoute sur l’interface Wi-Fi avec un filtre sur l'adresse IP de l’ESP8266.

➢ Exécution de l'Attaque MITM : Une fois que nous aurons mis en place Wireshark, nous
serons prêts à exécuter l'attaque MITM. Cela nous permettra d'observer comment un attaquant
potentiel peut intercepter et voler des données pendant leur transmission. Pour cela, nous allons
ouvrir une invite de commande dans le dossier où nous avons notre outil d’attaque
(arpspoof.exe), en indiquant l’adresse IP de notre ESP8266 que nous avons noté précédemment.

Figure 4.47: Lancement de l’attaque MITM.

➢ Interception des données : Une fois l’attaque lancée nous pouvons directement remarquer
que tout le trafic venant de l'adresse IP peut maintenant être visualisée sur Wireshark.

86
Figure 4.48: Interception des données.

Pour pouvoir visualiser de plus près les paquets en transit, nous allons sélectionner un paquet puis
suivre le flux TCP (Follow > TCP Stream).

Figure 4.49: Visualisation du flux TCP.

Une nouvelle fenêtre où nous pouvons voir les données envoyées par notre capteur BMP280 s’ouvre :
la température, la pression, et l’altitude, sont maintenant cryptées et ne peuvent plus être lues comme
dans la démonstration précédente.

87
Figure 4.50: Données cryptées envoyées par l’ESP8266.

4.4.3.4 Scénario 2 - Conclusion

Au cours de cette deuxième démonstration, nous nous sommes penchés sur la sécurité renforcée offerte
par le protocole MQTT (Message Queuing Telemetry Transport). Notre objectif était de déterminer si
l'adoption de MQTT pouvait atténuer les vulnérabilités que nous avions exposées lors de notre
précédente démonstration, où les données d'un simple capteur avaient été interceptées et manipulées.

Les résultats de cette démonstration sont convaincants. En passant à MQTT, nous avons ajouté une
couche de sécurité robuste à notre communication IoT. Contrairement au scénario précédent, où les
attaquants pouvaient intercepter et manipuler les données, MQTT s'est révélé être un bouclier sécurisé.
Il empêche efficacement l'écoute de la communication entre notre dispositif IoT et la plateforme IoT
en ligne.

Ce résultat souligne l'importance cruciale du choix de protocoles de communication sécurisés dans


l'écosystème IoT. MQTT protège non seulement l'intégrité et la confidentialité de nos données, mais il
offre également un environnement plus sûr pour les dispositifs IoT dans notre monde de plus en plus
connecté.

88
4.5 Analyse des résultats

Notre analyse a été guidée par plusieurs facteurs clés, dont la connaissance des architectures IoT, la
recherche de vulnérabilités connues, et la compréhension des spécificités de l'ESP8266. Les principales
faiblesses et vulnérabilités identifiées dans l'ESP8266 incluent :

● Manque de chiffrement des données : L'ESP8266 peut échanger des données sensibles sans
chiffrement, ce qui les rend potentiellement vulnérables aux attaques MITM. Les informations,
une fois interceptées, sont exposées et potentiellement manipulées par des acteurs malveillants.
● Vulnérabilités dans le protocole Wi-Fi : L'ESP8266 repose sur des protocoles Wi-Fi pour la
communication, et par conséquent, toute vulnérabilité dans ces protocoles peut être exploitée
pour des attaques ciblées. Les protocoles Wi-Fi peuvent être sujets à des attaques de type déni
de service (DoS) ou des intrusions dans les communications.
● Faiblesse dans la gestion des certificats : Les certificats numériques sont essentiels pour
garantir l'authenticité et la confidentialité des données échangées. Cependant, les dispositifs
IoT, y compris l'ESP8266, peuvent rencontrer des problèmes dans la gestion correcte des
certificats, ce qui ouvre la porte à des attaques d'usurpation d'identité.

Dans notre première démonstration, nous avons pu facilement intercepter et lire les données envoyées
par l’ESP8266. Si un pirate informatique peut intercepter les données de ces dispositifs, il peut
potentiellement aller plus loin et les manipuler. Par exemple, il pourrait modifier les relevés de
température dans le réfrigérateur, entraînant la détérioration des aliments ou une consommation
excessive d'énergie. Plus inquiétant encore, un pirate pourrait prendre le contrôle des portes et fenêtres
connectées, nous empêchant d'entrer chez nous. Des cas concrets abondent où des pirates ont exploité
des vulnérabilités des dispositifs IoT pour compromettre la sécurité et porter atteinte à la vie privée.

Cas concrets :

● Piratage d’un compte Facebook via un bouilloire connecté vulnérable :

Les pirates informatiques ont démontré comment des appareils intelligents apparemment inoffensifs,
comme les bouilloires, peuvent être exploités pour accéder à l'ensemble de la vie numérique d'un
utilisateur. Ils ont réussi à obtenir le mot de passe Wi-Fi d'une maison à partir d'une bouilloire connectée
vulnérable. Avec ce mot de passe Wi-Fi volé, l'attaquant obtient un accès non autorisé au réseau
domestique de la victime. De là, il peut lancer des attaques sur tous les appareils connectés au réseau.

89
Le pirate a compromis les informations d'identification Facebook d’un utilisateur dans la maison.
Cependant, les conséquences pourraient être bien plus graves : le pirate pourrait s'infiltrer dans les
ordinateurs portables et les smartphones connectés au réseau, installer des logiciels malveillants, voler
des documents ou surveiller le trafic réseau afin de dérober les informations d'identification des
comptes de courrier électronique et de banque en ligne. [39]

Ce cas souligne l'importance cruciale de la sécurité des appareils IoT. Si les bouilloires intelligentes
peuvent sembler inoffensives, elles peuvent servir de points d'entrée pour les attaquants dans
l'écosystème numérique au sens large, mettant en péril les données personnelles, la vie privée et même
la sécurité financière. C'est un rappel brutal de la nécessité de mesures de sécurité robustes et de
sensibilisation lorsqu'il s'agit d'appareils IoT dans notre monde de plus en plus connecté.

● Vulnérabilité d’une voiture connectée :

Dans un incident largement médiatisé, des chercheurs ont désactivé à distance le moteur d'un Jeep
Cherokee alors qu'il roulait sur l'autoroute. Cet incident alarmant a conduit à un rappel massif et à une
attention accrue portée à la sécurité IoT dans l'industrie automobile.

Les chercheurs ont découvert une faille dans le système de divertissement connecté
(infodivertissement) du Jeep Cherokee, qui était connecté à Internet via une carte SIM intégrée. Cette
faille a permis aux pirates informatiques de prendre le contrôle du système, y compris de la
transmission et du moteur du véhicule. Ils ont pu accéder au système du Jeep Cherokee par le biais
d'une connexion Internet, ce qui a ouvert la voie à la prise de contrôle à distance. Cela signifiait qu'un
attaquant pouvait potentiellement manipuler la vitesse, la direction et d'autres fonctions cruciales du
véhicule, mettant ainsi en danger la vie du conducteur et des passagers. [40]

Ces conclusions réaffirment que, grâce aux protocoles appropriés et aux mesures de sécurité adéquates,
nous pouvons réduire de manière significative les risques liés aux dispositifs IoT. Notre exploration de
MQTT sert de témoignage de l'importance d'adopter des pratiques de sécurité robustes pour préserver
notre avenir interconnecté.

90
4.6 Recommandations de sécurité pour les dispositifs IoT

4.6.1 Directives pour les fabricants et développeurs de dispositifs IoT

La sécurité des dispositifs IoT doit être abordée dès la phase de conception et de développement des
dispositifs. Les fabricants et les développeurs ont un rôle primordial à jouer pour garantir que leurs
produits contribuent à un environnement connecté plus sûr. Voici quelques directives essentielles à
suivre pour assurer la sécurité des dispositifs IoT :

● Conception sécurisée : Intégrer des protocoles et des mécanismes de sécurité dès la conception
est fondamental. Cela inclut l'implémentation de protocoles de chiffrement robustes, de
mécanismes d'authentification et d'autorisation solides, ainsi que la gestion sécurisée des clés.
● Mises à jour régulières : Les dispositifs IoT doivent être conçus pour permettre des mises à
jour régulières du firmware. Cela permet de corriger les vulnérabilités découvertes après le
déploiement initial et de garantir que les dispositifs restent résilients face aux menaces
émergentes.
● Gestion des identifiants : Assurer que les identifiants d'accès et les clés de chiffrement sont
gérés de manière sécurisée. Les fabricants doivent encourager l'utilisation de mots de passe
forts et uniques pour chaque dispositif. Éviter les identifiants par défaut, qui sont souvent bien
connus des attaquants et encourager l'utilisation de mécanismes de génération aléatoire.
● Test de pénétration : Réaliser des tests de pénétration rigoureux avant la mise sur le marché
pour identifier les vulnérabilités potentielles. Les tests doivent être continus tout au long du
cycle de vie du dispositif.
● Protection de la vie privée : Les dispositifs IoT collectent souvent des données sensibles. Les
fabricants doivent mettre en place des mécanismes de protection de la vie privée, tels que le
chiffrement des données en transit et au repos, ainsi que des politiques de collecte de données
transparentes.

4.6.2 Bonnes pratiques pour les utilisateurs et les administrateurs

Outre les fabricants et les développeurs, les utilisateurs et les administrateurs jouent un rôle crucial
dans la sécurité des dispositifs IoT. Voici quelques bonnes pratiques à adopter :

● Mises à jour et correctifs : Veiller à installer régulièrement les mises à jour et correctifs fournis
par les fabricants. Les nouvelles vulnérabilités sont constamment découvertes, et les mises à

91
jour permettent de combler ces failles de sécurité. Il est essentiel de maintenir les dispositifs
IoT à jour en installant les dernières mises à jour de sécurité fournies par les fabricants. Cela
aide à prévenir les attaques basées sur des vulnérabilités connues.
● Gestion des identifiants : Utiliser des identifiants forts et uniques pour chaque dispositif IoT.
Éviter la réutilisation d'identifiants et de mots de passe pour plusieurs dispositifs, car une
compromission d'un dispositif pourrait affecter les autres.
● Sécurisation du réseau domestique : Les dispositifs IoT sont souvent connectés à un réseau
domestique. Assurer que le réseau est protégé par un mot de passe robuste pour le routeur, et
envisager de créer un réseau séparé dédié aux dispositifs IoT pour isoler les risques potentiels.
● Désactivation des fonctionnalités inutiles : Désactiver les fonctionnalités ou les ports
inutilisés sur les dispositifs IoT pour réduire les points d'entrée potentiels pour les attaquants.
● Surveillance du trafic réseau : Utiliser des outils de surveillance du trafic réseau pour détecter
toute activité suspecte. Les pares-feux et les systèmes de détection d'intrusion peuvent aider à
identifier les anomalies et les attaques potentielles.
● Éducation et sensibilisation : Éduquer les utilisateurs sur les risques liés à l'utilisation des
dispositifs IoT. Les utilisateurs doivent être conscients des menaces potentielles, comme les
attaques de phishing visant à voler des informations d'identification.

4.9 Conclusion

Ce chapitre explore en profondeur la mise en œuvre pratique sur l'ESP8266, mettant en évidence son
rôle central dans l'Internet des Objets et soulignant l'importance de la sécurité dans ce domaine. Il
commence par présenter l'ESP8266 comme une plateforme de choix pour les projets IoT, détaille la
configuration de l'environnement expérimental, et se concentre ensuite sur l'identification et
l'exploitation des vulnérabilités spécifiques à l'ESP8266, illustrant comment une attaque Man-in-the-
Middle (MITM) peut être réalisée sur cet IoT device non sécurisé. Ensuite, il aborde l'implémentation
de solutions de sécurité pour renforcer la protection contre de telles attaques. L'analyse des résultats
permet d'évaluer l'efficacité des mesures de sécurité, de réfléchir aux défis et aux limitations, et se
conclut par des recommandations pour des pratiques de sécurité standard dans l'écosystème IoT,
impliquant fabricants, développeurs, utilisateurs et administrateurs pour garantir la sécurité et la
résilience des dispositifs IoT.

92
CONCLUSION GENERALE

Notre étude s'est plongée en profondeur dans le vaste et complexe domaine de la sécurité dans l'Internet
des Objets, en mettant en évidence les vulnérabilités spécifiques et les défis auxquels sont confrontés
les dispositifs IoT. En examinant minutieusement les aspects théoriques, en explorant des méthodes de
sécurité avancées, et en démontrant leur mise en œuvre pratique sur la plateforme ESP8266, ce travail
vise à apporter une contribution significative à l'amélioration et à la compréhension de la sécurité dans
le contexte constamment en évolution de l'IoT.

Nous avons débuté par une analyse des bases théoriques de l'IoT et de la sécurité, mettant en évidence
la croissance exponentielle de l'IoT et l'urgence de garantir la protection des données et de la vie privée
des utilisateurs. Dans ce contexte en constante mutation, nous avons identifié les principaux défis liés
à la sécurité des dispositifs IoT, notamment les vulnérabilités matérielles et logicielles, les protocoles
d'authentification et d'autorisation, ainsi que les lacunes dans les meilleures pratiques de sécurité.

Une attention particulière a été accordée à la mise en pratique de la sécurité dans les dispositifs IoT,
en mettant en avant l'ESP8266 comme plateforme d'étude. À travers une méthodologie rigoureuse,
nous avons identifié et analysé les vulnérabilités spécifiques à l'ESP8266, en soulignant les risques liés
aux attaques Man-in-the-Middle (MITM). La démonstration pratique de l'exploitation de ces
vulnérabilités a mis en évidence l'importance cruciale de la sécurité dans le contexte de l'IoT et a révélé
les failles potentielles des dispositifs non sécurisés.

Notre contribution distinctive dans ce domaine réside dans notre approche globale de la sécurité IoT,
combinant une compréhension approfondie sur le plan théorique avec une mise en œuvre pratique
concrète. En identifiant les vulnérabilités, en illustrant leur exploitation, et en proposant des solutions
de sécurité concrètes, nous avons établi un lien entre la théorie et la pratique. De plus, nous avons
formulé des recommandations essentielles à l'intention des fabricants, des développeurs, des
utilisateurs et des administrateurs, visant à créer un environnement IoT sécurisé et résistant.

Ce mémoire met en exergue l'importance critique de la sécurité dans l'IoT et souligne la nécessité
d'adopter une approche proactive pour contrer les menaces émergentes. Ce travail aspire à susciter une
prise de conscience et une action renforcée dans le domaine de la sécurité IoT, tout en fournissant des
outils concrets pour renforcer la sécurité des dispositifs IoT. Nous nous sommes particulièrement
intéressés à la question de l'interception des données, mais qu’en est-il l’étendu du dégât si l’attaquant
a modifié les donner avant l’envoie vers le serveur ?

93
ANNEXE 1
OPEN HARDWARE

A1.1 NodeMCU ESP8266

L'ESP8266 est un microcontrôleur conçu par Espressif Systems. L'ESP8266 lui-même est une solution
de réseau Wi-Fi autonome qui fait office de pont entre un microcontrôleur existant et le Wi-Fi, et il est
également capable d'exécuter des applications autonomes. Ce module est équipé d'un connecteur USB
intégré et d'une large gamme de broches. Avec un câble micro USB, vous pouvez connecter le kit de
développement NodeMCU à votre ordinateur portable et le flasher sans aucun problème, tout comme
avec Arduino. Il est également immédiatement compatible avec les breadboards.

Figure A 1.01: NodeMCU ESP8266.

L’ESP8266 possède les spécifications techniques suivantes :

➢ Tension : 3,3 V
➢ Wi-Fi Direct (P2P), mode soft-AP
➢ Mémoire flash : maximum 16 Mo (512 Ko en mode normal).
➢ Protocole TCP/IP intégré
➢ Processeur : Tensilica L106 32 bits
➢ Vitesse du processeur : 80 à 160 MHz
➢ RAM : 32 Ko + 80 Ko
➢ GPIO : 17 (multiplexés avec d'autres fonctions)
➢ Conversion analogique-numérique : 1 entrée avec résolution de 1024 niveaux
➢ Puissance de sortie +19,5 dBm en mode 802.11b
➢ Prise en charge 802.11 : b/g/n
➢ Connexions TCP concurrentes maximales : 5

94
A1.2 BMP280

Le BMP280 est un capteur de pression barométrique absolue spécialement conçu pour les applications
mobiles. Le module capteur est logé dans un boîtier LGA métallique à 8 broches extrêmement compact
avec une empreinte de seulement 2,0 × 2,5 mm² et une hauteur de boîtier de 0,95 mm. Ses petites
dimensions et sa faible consommation d'énergie de 2,7 µA à 1 Hz permet son utilisation dans des
appareils alimentés par batterie tels que les téléphones mobiles, les modules GPS ou les montres.

Le capteur possède les spécifications techniques suivantes :

BROCHE FONCTION
Vcc Alimentation (3.6V max)
GND Masse
SDI Données, à relier à SDA dans le cas du bus I2C
SCK Horloge (clock), à relier à SCL dans le cas du bus I2C
CSB Permet de passer du mode SPI au mode I2C, par défaut, CSB=1 donc mode I2C. Si
CSB=0 au démarrage, alors le mode SPI est utilisé
SD0 Choix de l’adresse I2C, si SD0=0, alors l’adresse est 0x76, si SD0=1, alors l’adresse
est 0x77

Tableau A 1.01: Caractéristiques du capteur BMP280.

95
ANNEXE 2
COMPARAISON DES CARTES PROGRAMMABLES

L'ESP8266 est loin d'être le seul choix pour les projets IoT. Il existe d'autres dispositifs similaires tels
que le Raspberry Pi, l'Arduino avec un module Wi-Fi, et d'autres microcontrôleurs spécialisés.
L'ESP8266 se distingue par son équilibre entre performances et efficacité énergétique. Comparé à des
options plus puissantes comme le Raspberry Pi, il consomme moins d'énergie, ce qui le rend adapté
aux dispositifs à batterie. Cependant, l'ESP8266 se distingue par son coût abordable, sa facilité
d'utilisation et sa taille compacte.

Nom de la carte Arduino Méga Node MCU Raspberry PI B+


ESP8266
Naissance 2009 2013 2012

Prix (Ar) 60000.00 24616.97 194273.06

CPU Tensilica 32-bit BCM2835 sur un


Processeur ATmeg2560 8bits RISC CPU Xtensa ARM11 -CPU
LX106 intégrée

RAM 8 KB SRAM 64 kB 512 MB SDRAM

Mémoire Flash 256 KB 4000 kB Micro SD – 32 G

Consommation 50 mA (0.5 W) 70 mA 700 mA (3.5 W)

Ethernet Non Oui Oui

USB 1 1 4

Sortie vidéo Non Non HDMI, RCA

Langage de Langage de Langages Scratch,


Développement programmation programmation Squeak
Arduino Arduino

Tableau A2.01 : Comparaison des cartes programmable.

96
ANNEXE 3
EXTRAIT DE CODE SUR IDE ARDUINO

A3.1 Extrait de code pour la connexion entre le dispositif et Thingspeak

void loop()
{
if (Wi-Fi.status() != WL_CONNECTED) {
Serial.print("Tentative de connexion à l'SSID: ");
Serial.println(ssid);
Wi-Fi.begin(ssid, pass);
while (Wi-Fi.status() != WL_CONNECTED) {
Serial.print(".");
delay(5000);
}
Serial.println("\nConnecté.");
Serial.println("Addresse IP: ");
Serial.println(Wi-Fi.localIP());
}

float t = bmp.readTemperature();
float p = bmp.readPressure();
float a = bmp.readAltitude(1013.25);

Serial.print("Température: ");
Serial.print(t);
Serial.println(" deg. C");

Serial.print("Pression: ");
Serial.print(p);
Serial.println(" Pa");

Serial.print("Altitude: ");
Serial.print(a);
Serial.println(" m");

Serial.println("Envoi des données vers ThingSpeak...");

ThingSpeak.setField(1, t);
ThingSpeak.setField(2, p);
ThingSpeak.setField(3, a);

int writeStatus = ThingSpeak.writeFields(channelID, writeAPIKey);

if (writeStatus == 200)

97
A3.2 Extrait de code pour la connexion entre le dispositif et HiveMQ

void setup() {

Serial.begin(9600);

while (!Serial) delay(1);

setup_Wi-Fi();

if (!bmp.begin(0x76)) {

Serial.println(F("Could not find a valid BMP280 sensor, check wiring!"));

while (1);

/* Default settings from datasheet. */

bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */

Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */

Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */

Adafruit_BMP280::FILTER_X16, /* Filtering. */

Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */

#ifdef ESP8266

espClient.setInsecure();

#else

espClient.setCACert(root_ca); // enable this line and the the


"certificate" code for secure connection

#endif

client.setServer(mqtt_server, mqtt_port);

client.setCallback(callback);

98
BIBLIOGRAPHIE

[1] L. Theo, P. Takako, C. Ribeiro, « The Internet of Things : Definitions, Key Concepts, and
Reference Architectures », SpringerLink, 2022

[2] B. Naceur, A. Abdelhak, « La sécurité de l’Internet des Objets », Algérie, mémoire de fin
d’étude, 2021-2022

[3] M. A. Rakotomalala, « Optoélectronique », Cours M1 TCO, Département


Télécommunication, ESPA, 2018-2019

[4] P. Guillaume, N. Colomer, « Modèles d’architectures de l’internet des objets », ArticleWeb,


www.octo.org, Juillet 2023

[5] P. Roux, « Le Cloud et l’Internet des objets », article web, www.cloud-experience.fr, Juillet
2023

[6] Tyagi, Himani, R. Kumar. « Cloud computing for iot », Internet of Things (IoT) Concepts and
Applications, 2020

[7] Ayodele, T. Oladipupo, « Types of machine learning algorithms », New advances in machine
learning, 2020

[8] Hassan, J. Rondik, « State of art survey for iot effects on smart city technology », Asian
Journal of Research in Computer Science, 2021

[9] Zhong, Chang-Le, Z. Zhu, « Study on the IOT architecture and gateway technology »,
International Symposium on Distributed Computing and Applications for Business
Engineering and Science (DCABES). IEEE, 2015

[10] ITU-T, « Requirements for Internet of things devices and operation of Internet of things
applications during disaster », Recommandation Y2074, Janvier 2015

[11] ITU-T, « Overview of the Internet of things », Recommandation ITU-T Y2060, Juin 2012

99
[12] B. Muhammad, « IoT elements, layered architectures and security issues », A comprehensive
survey sensor, 2018

[13] Ray, P. Pratim, « A survey on Internet of Things architectures », Journal of King Saud
University-Computer and Information Sciences, 2018

[14] Pukkasenung, Pensri, « Improved generic layer model for IoT architecture », journal of
information science and technology, 2021

[15] Sethi, Pallavi, R. Sarangi, « Internet of things: architectures, protocols, and applications »,
Journal of electrical and computer engineering, 2017

[16] E. Khorov, A. Lyakhov, « A Survey on 802.11 ah : An enabling network technology for smart
cities », Revue Scientifique, Russie, 2014

[17] J. Decuir, « Bluetooth 4.0 : Low Energy », Présentation du BLE au csr, 2010

[18] W. Sun, M. Choi, « IEEE 802.11 ah : A long Range 802.11 WLAN at Sub 1 GHz », Article
Universitaire du Seoul National University, Corée du Sud, 2013

[19] N. Klugman, J. Adkins, « Bluetooth LE 4.0 and 4.1 », Présentation de la BLE, Université du
Michigan, 23 Avril 2014

[20] A. Hosheschule, « MQTT – Message Telemetry Queuing Transport », Document de séminaire


au Fakultat Electronik und Informatik, Allemagne, 2015

[21] Gomez, Carles, J. Oller, J. Paradells, « Overview and evaluation of bluetooth low energy »,
An emerging low-power wireless technology, 2012

[22] Ghazal, M. Taher, « IoT for smart cities : Machine learning approaches in smart healthcare
», Future Internet, 2021

[23] Martin, L. Sanchez, J. Song, « IoT : Evolution and outlook », Sensors Journal, 2021

[24] Yang, Deliang, « A first look at energy consumption of NB-IoT in the wild: Tools and large-
scale measurement », IEEE/ACM Transactions on Networking, 2021

100
[25] Mekki, Kais, « A comparative study of LPWAN technologies for large-scale IoT deployment
», ICT express, 2019

[26] K. Sriganesh, R. Prasad, « Impact of 5G technologies on smart city implementation », Wireless


Personal Communications, 2018

[27] https://dgtlinfra.com/internet-of-things-iot-security/, Consulté en Juillet 2023

[28] https://novotech.com/learn/m2m-blog/blog/2023/01/03/the-5-layers-of-iot-architecture-that-
give-it-super-power/, Consulté en Juillet 2023

[29] https://www.geeksforgeeks.org/5-layer-architecture-of-internet-of-things/, Consulté en Juillet


2023

[30] https://www.techaheadcorp.com/blog/top-6-programming-languages-for-iot-projects/,
Consulté en Aout 2023

[31] Gerodimos, Apostolos, « IoT: Communication protocols and security threats », Internet of
Things and Cyber-Physical Systems, 2023

[32] https://www.aitimejournal.com/ranked-top-5-programming-languages-for-iot-
devices/33878/, Consulté en Aout 2023

[33] https://www.hindawi.com/journals/sp/2017/1231430/, Consulté en Aout 2023

[34] Ghazal, M. Taher, « IoT for smart cities : Machine learning approaches in smart healthcare
», A review Future Internet, 2021

[35] Tian, Shuo, « Smart healthcare: making medical care more intelligent », Global Health
Journal, 2019

[36] https://www.researchgate.net/profile/KamalAlieyan/publication/320614944_Internet_of_Thi
ngs_IoT_Communication_Protocols_Review/links/59f06dfeaca272cdc7ca2a64/Internet-of-
Things-IoT-Communication-Protocols-Review.pdf, Consulté en Septembre 2023

101
[37] https://www.sciencedirect.com/science/article/pii/S26673452293, Consulté en Septembre
2023

[38] https://dataprot.net/statistics/iot-statistics/, Consulté en Septembre 2023

[39] https://www.packetlabs.net/posts/hackable-podcast-kettle/, Consulté en Septembre 2023

[40] https://www.wired.com/07/hackers-remotely-kill-jeep-highway/, Consulté en Septembre


2023

102
FICHE DE RENSEIGNEMENTS

Nom : RANDRIANJATOVO
Prénom : Heritiana
Tel : +261 34 83 764 18
E-mail : randrianjatovoheritiana3@gmail.com
Adresse de l’auteur : Lot IIB 105 Miakadaza Imerintsiatosika
Arivonimamo 105 – Madagascar

Titre du mémoire :
« SÉCURITÉ ET RÉSILIENCE DES DISPOSITIFS IoT : ÉVALUATION DES
VULNÉRABILITÉS ET MISES EN OEUVRE PRATIQUES »

Nombre de pages : 103


Nombre de tableaux : 4
Nombre de figures : 83

Directeur de mémoire :
Nom : RATSIMBAZAFY
Prénom : Andriamanga
Grade : Maître de Conférences
Téléphone : +261 34 48 426 82
E-mail : ndriamanga@gmail.com

103
RESUME

L'internet des objets s'est intégré profondément dans la technologie moderne, transformant la manière
dont nous interagissons avec notre monde. Néanmoins, cette rapide prolifération des appareils IoT
expose également à des problèmes significatifs de sécurité, les rendant vulnérables aux cybermenaces
et à des failles potentielles. Cette étude se concentre sur l'amélioration de la sécurité et de la robustesse
des dispositifs IoT, en mettant en avant l'ESP8266, une plateforme largement utilisée dans les
applications IoT. Elle fournit des informations précieuses sur le paysage de la sécurité des dispositifs
IoT, en particulier pour l'ESP8266, en identifiant les vulnérabilités et en proposant des solutions
pratiques dans le but de favoriser un écosystème IoT plus sécurisé et fiable pour les déploiements
futurs.

Mots-clés : IoT, Vulnérabilité, Sécurité, Protocole, ESP8266.

ABSTRACT

The Internet of Things has deeply integrated itself into modern technology, transforming how we
interact with our world. However, this rapid proliferation of IoT devices also exposes significant
security issues, making them vulnerable to cyber threats and potential vulnerabilities. This study
focuses on enhancing the security and robustness of IoT devices, with a particular emphasis on the
ESP8266, a widely used platform in IoT applications. It provides valuable insights into the IoT device
security landscape, especially for the ESP8266, by identifying vulnerabilities and proposing practical
solutions with the aim of promoting a more secure and reliable IoT ecosystem for future deployments.

Keywords : IoT, Vulnerability, Security, Protocol, ESP8266.

104

Vous aimerez peut-être aussi