Jusqu’à récemment, les réseaux étaient majoritairement composés d’ordinateurs. Depuis 1969, et l’avènement du premier réseau à transfert de paquets nommé « Advanced Research Projects Agency Network » (ARPAnet), le nombre de machines n’a cessé d’augmenter. En 2003, plus de 500 millions de machines étaient déployées sur Internet dans le monde. L’avancée de la technologie a permis l’émergence de nouveaux périphériques comme les smartphones et les tablettes. La miniaturisation des composants et l’électronique bon marché ont également permis la création massive de tout petits ordinateurs pouvant communiquer, les personnes et les objets sont désormais connectés. Depuis 2008, nous avons plus d’appareils connectés que d’êtres humains sur terre, et nous parlons maintenant de réseaux d’ordinateurs et d’objets : l’Internet des Objets (IoT).
L’IoT inclut les ordinateurs (portables, fixes) mais aussi des appareils contraints (en énergie, puissance de calcul, ou mémoire). Certains de ces appareils peuvent récupérer des informations via des capteurs, puis communiquer entre eux, cela forme un réseau de capteurs. Ces réseaux ont des applications améliorant notre qualité de vie en automatisant des tâches à la maison, en surveillant la qualité de l’air, ou nous permettent des économies d’énergie en éteignant les lampadaires dans les rues sans piétons, ou encore nous permettent la détection de feux de forêt. . . Ces réseaux sont parfois critiques, par exemple pour l’ouverture d’une porte d’entreprise, le lancement d’une alerte, ou encore les applications médicales. Cette criticité implique la sécurisation des communications et des appareils, une communication rapide notamment lorsqu’il y a une interaction humaine en direct (par exemple pour allumer ou éteindre une lampe), et un code simple pour éviter des erreurs.
Couches réseau physique et liaison
Dans cette section, nous détaillons le choix de IEEE 802.15.4 comme couches physique et liaison. Ce choix est basé sur le fait qu’il s’agisse de couches standardisées, ouvertes et répandues. Le débit recherché est faible, pour limiter la consommation d’énergie. La portée nécessaire est de l’ordre de cent mètres, afin de pouvoir facilement déployer des nœuds par exemple dans un entrepôt ou une maison. Enfin, nous souhaitons étudier une architecture indépendante des couches physique et liaison : la technologie fournissant ces couches doit permettre d’utiliser des protocoles standards de plus haut niveau pour fournir les couches réseau, transport, application et la sécurité.
La couche physique permet d’échanger des octets sur un médium (sur un fil, ou dans l’air). Cela se traduit par une carte réseau ou une puce radio, ce que nous retrouvons souvent dans les réseaux contraints. Dans ces réseaux, nous qualifions la radio employée comme « low power radio » [10]. Les problèmes liés à cette couche physique sont nombreux. Par exemple, la distance entre les nœuds et la qualité du lien ne sont pas corrélées : des nœuds proches peuvent avoir une mauvaise communication (un débit faible, voire une absence de connectivité), et inversement pour des nœuds éloignés. De plus, la qualité des liens est très dépendante de l’environnement (humidité, température, nombre de nœuds communiquant, présence humaine, obstacles, etc.). Enfin, l’usage de fréquences dans la bande des 2,4 GHz implique des interférences possibles avec d’autres réseaux, tels que 802.11 (WiFi). La couche liaison apporte l’adressage des nœuds , et gère le médium partagé. Cette gestion implique de savoir qui peut accéder au médium et quand, de gérer les collisions et les interférences. La couche liaison est également responsable de l’énergie consommée par la radio, qui constitue une part non négligeable de l’énergie d’un objet contraint. Par exemple, si on sait à l’avance qui doit communiquer et à quel moment, les autres nœuds peuvent être éteints. Cette économie d’énergie est importante dans les réseaux avec des objets sur batteries ; certaines technologies annoncent une durée de vie des objets supérieure à 10 ans (comme NB-IoT, EC-GSM-IoT, LoRaWAN) sur une batterie modeste (équivalente à deux piles AAA).
6LoWPAN
IPv6 over Low power Wireless Personal Area Networks (6LoWPAN) [15] [16] est une introduction de IPv6 dans les réseaux contraints. 6LoWPAN permet à un routeur de diminuer la taille des en-têtes IP et UDP dans un réseau contraint, les adresses IP utilisées sont donc différentes (plus courtes) que celles utilisées sur un réseau IP non contraint, mais les deux sont compatibles. Les adresses utilisées sont dérivées des adresses de couche liaison de 802.15.4, permettant à 6LoWPAN d’omettre complètement les adresses de l’en-tête IPv6 (car déduite de l’adresse MAC). L’en-tête IP est ainsi réduit jusqu’à 2 octets, et à 20 octets dans le cas le plus défavorable (préfixe du client non connu à l’avance). 6LoWPAN implique une passerelle spécialisée, qui traduit les paquets pour le réseau contraint, appelée « routeur de bordure 6LoWPAN ».
Les tailles des en-têtes 6LoWPAN varient dans les messages échangés selon plusieurs critères. des protocoles de transport différents (aucun, UDP avec optimisation 6LoWPAN et TCP) et le contexte de la communication (appareils dans le même réseau, ou dans des réseaux différents). Par exemple, pour la communication entre deux objets du même réseau, les préfixes d’origine et de destination peuvent être retirés : les adresses de la couche liaison suffisent à identifier les nœuds, l’en-tête IP est donc réduit à 2 octets. Si le message provient d’un client, et que le préfixe est connu par l’objet destinataire, alors le préfixe de ce client n’est pas envoyé : l’en-tête IP est alors de 12 octets (2 octets de couche réseau, 1 octet de contexte, 1 octet hop-limit, et 8 octets d’adresse source), 20 si le préfixe du client n’est pas connu.
Plusieurs optimisations sur la taille des messages existent et sont liées à 6LoWPAN :
— une version tronquée de UDP, avec un en-tête de 4 octets (mais toujours 20 octets pour TCP) ;
— 6LoWPAN-GHC [17], un mécanisme qui utilise un algorithme de compression pour diminuer la taille des en-têtes ; 6LoWPAN-GHC implique des calculs supplémentaires et nécessite de la mémoire vive pour réduire la taille des messages. La compression est efficace même quand un message est chiffré avec DTLS puisqu’il supprime une redondance dans l’en-tête DTLS.
— le partage de « contextes », mécanisme consistant à échanger des préfixes réseau utilisés par les clients, afin de ne pas les transmettre par la suite dans les messages.
|
Table des matières
1 Introduction
1.1 L’Internet des Objets
1.2 Problématique de sécurité : la terminaison de la connexion
1.3 Motivation et hypothèses
1.4 Structure du document
1.5 Contributions
2 Environnements contraints
2.1 Contraintes sur les objets
2.2 Couches réseau physique et liaison
2.2.1 Introduction
2.2.2 État de l’art
2.2.3 IEEE 802.15.4
2.2.4 Conclusion
2.3 Couche réseau
2.3.1 6LoWPAN
2.3.2 Routing Protocol for Low-Power and Lossy Networks (RPL)
2.3.3 Conclusion
2.4 Couche applicative
2.4.1 MQTT-SN
2.4.2 Constrained Application Protocol
2.4.3 Conclusion
2.5 Architecture
2.6 Résumé de notre cible
2.7 Conclusion
3 Sécurité
3.1 Communication sécurisée : principes généraux
3.1.1 Protection des messages
3.1.2 Modes de chiffrement
3.1.3 Authentification des pairs
3.1.4 Autorisation
3.1.5 Partage de clés
3.1.6 Courbes Elliptiques (ECC)
3.1.7 Chiffrement de bout-en-bout
3.1.8 Modes de communication
3.1.9 Suite cryptographique
3.1.10 Autres mécanismes de protection des communications
3.1.11 DTLS : protocole de sécurité
3.2 Sécurité dans les environnements contraints
3.2.1 Algorithmes utilisés dans les environnements contraints
3.2.2 Attaques sur les réseaux contraints
3.2.2.1 La couche physique
3.2.2.2 La couche liaison
3.2.2.3 La couche réseau
3.2.2.4 La couche transport
3.2.2.5 Résumé des attaques
3.2.3 Phases de déploiement
3.2.4 Conclusion
3.3 Conclusion
4 Architecture de sécurité
4.1 Manque de définition
4.2 Composants de base d’une architecture de sécurité
4.3 Fonctionnalités de base
4.4 Définition formelle
4.4.1 Entités (E)
4.4.2 Autorités (A)
4.4.3 Domaines de sécurité (D)
4.4.4 Relations (R)
4.4.5 Conclusion
4.5 Propriétés minimales de sécurité
4.5.1 Protection des données
4.5.2 Authentification mutuelle
4.5.3 Autorisation
4.5.4 Gestion des clés
4.5.5 Autres mécanismes
4.5.6 Conclusion
4.6 Exemple d’architecture de sécurité
4.7 Forces et faiblesses de cette définition
4.8 Conclusion
5 Conclusion
Télécharger le rapport complet