P17 Sécurité de l'internet des objets : Différence entre versions
(→Étapes du projet) |
(→Étapes du projet) |
||
Ligne 19 : | Ligne 19 : | ||
==Étapes du projet== | ==Étapes du projet== | ||
− | + | '''<span style="color: green;">Étape 1 </span>- Etat de l'art V1 ''' | |
* Prise en main des protocoles | * Prise en main des protocoles | ||
* Description du fonctionnement global | * Description du fonctionnement global | ||
[[Fichier:Etat_Art_LoRa_V0.1.pdf]] | [[Fichier:Etat_Art_LoRa_V0.1.pdf]] | ||
− | + | '''<span style="color: green;">Étape 2 </span>- Etude des risques V1 ''' | |
* Détail du fonctionnement | * Détail du fonctionnement | ||
* Revue des menaces | * Revue des menaces | ||
[[Fichier:Lora_Scénarios_Menace.pdf]] | [[Fichier:Lora_Scénarios_Menace.pdf]] | ||
− | + | '''<span style="color: green;">Étape 3 </span>- LoRa ping-pong ''' | |
* Implémenter sur les board NUCELO le protocole LoRa | * Implémenter sur les board NUCELO le protocole LoRa | ||
* Faire communiquer les deux boards | * Faire communiquer les deux boards | ||
* Pas de surcouche LoRaWAN | * Pas de surcouche LoRaWAN | ||
− | + | '''<span style="color: darkorange;">Étape 4 </span>- Sniffeur LoRaWAN ''' | |
− | |||
* LoRaWAN officiel sur émetteur | * LoRaWAN officiel sur émetteur | ||
* Récepteur générique pour sniffer tous les paquets | * Récepteur générique pour sniffer tous les paquets | ||
− | + | '''<span style="color: red;">Étape 5 </span>- Implémentation processus OTA ''' | |
* Implémenter OTA LoRaWAN officiel | * Implémenter OTA LoRaWAN officiel | ||
* Gestion des clés, déchiffrer paquets | * Gestion des clés, déchiffrer paquets | ||
− | + | '''<span style="color: red;">Étape 6 </span>- ''' | |
<br> | <br> | ||
Version du 13 février 2017 à 11:43
Sommaire
Informations générales
Étudiants Jérémie Denéchaud
Tuteurs Alexandre Boé / Xavier Redon / Thomas Vantroys
Les fichiers sources du projet sont disponibles sur le Git de l'IRCICA
Présentation du projet
Objectifs
L'Internet des objets est un secteur en plein accroissement. De nouveaux objets connectés sont disponibles tous les jours. Cependant, cette rapidité de mise en oeuvre se fait souvent au détriment de la sécurité. Les objectifs de ce projet sont de :
- Effectuer un état de l'art sur les protocoles LoRa (Long Range) et LoRaWAN (Long Range Wide-area network ou Réseau étendu à longue portée)
- Concevoir et réaliser une plate-forme d'analyse et de tests du comportement d'objets connectés selon l'ANSSI.
Étapes du projet
Étape 1 - Etat de l'art V1
- Prise en main des protocoles
- Description du fonctionnement global
Fichier:Etat Art LoRa V0.1.pdf
Étape 2 - Etude des risques V1
- Détail du fonctionnement
- Revue des menaces
Fichier:Lora Scénarios Menace.pdf
Étape 3 - LoRa ping-pong
- Implémenter sur les board NUCELO le protocole LoRa
- Faire communiquer les deux boards
- Pas de surcouche LoRaWAN
Étape 4 - Sniffeur LoRaWAN
- LoRaWAN officiel sur émetteur
- Récepteur générique pour sniffer tous les paquets
Étape 5 - Implémentation processus OTA
- Implémenter OTA LoRaWAN officiel
- Gestion des clés, déchiffrer paquets
Étape 6 -
Matériel
Produit | Quantité |
---|---|
Capteur LoRa | 5 |
Raspberry Pi | 1(2?) |
Avancée du projet
Semaine 16 Jan 2017
Prise de contact avec les tuteurs de projet. Définition des attentes et discussion sur le projet. Dans un premier temps, il est nécessaire de fournir un état de l'art sur la technologie LoRa et LoRaWAN. J'ai donc débuté la rédaction d'un document, en m'aidant des sources suivantes :
Référence 802.15.4: http://www.ieee802.org/15/pub/TG4.html
Guide du développeur et retour d'expérience d'Orange https://partner.orange.com/wp-content/uploads/2016/04/LoRa-Device-Developer-Guide-Orange.pdf
LoRa Application Note (quasiment le seul document technique sur la couche physique LoRa) http://www.semtech.com/images/datasheet/an1200.22.pdf
LoRaWAN Specifications (couche liaison) https://www.lora-alliance.org/portals/0/specs/LoRaWAN%20Specification%201R0.pdf
LoRa Design Guide https://www.semtech.com/images/datasheet/LoraDesignGuide_STD.pdf
Etudes déjà réalisées sur LoRa par reverse-engineering https://revspace.nl/DecodingLora
Matt Knight full reverse-engineering https://github.com/matt-knight/research/tree/master/2016_12_29_ccc-33c3
Semaine 23 Jan 2017
Réception du matériel :
- Deux émetteurs/récepteurs LoRa (mbed - SX1273MB1)
- Deux cartes programmables Nucleo (NUCLEO - F401RE)
Première version de l'état de l'art :
Fichier:Etat Art LoRa V0.1.pdf
J'ai commencé la rédaction d'une spécification technique autour de la sécurité des protocoles : limites, risques, menaces etc. Comme il est difficile de trouver des documentations assez précises et fiables, je me base sur le code source officiel : https://github.com/Lora-net
J'ai également commencé à prendre en main les boards programmables. Pour un hello-world basique à travers un port série par USB, j'ai rencontré quelques soucis de compatibilité (USB2.0 != USB3.0). Je programme et je compile dans l'IDE mbed prévu à cet effet.
Semaine 30 Jan 2017
Détail de l'identification du problème USB2.0 / USB3.0 :
[13966.109866] usb 3-9: new full-speed USB device number 22 using xhci_hcd [13966.239940] usb 3-9: New USB device found, idVendor=0483, idProduct=374b [13966.239946] usb 3-9: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [13966.239950] usb 3-9: Product: STM32 STLink [13966.239952] usb 3-9: Manufacturer: STMicroelectronics [13966.239955] usb 3-9: SerialNumber: 0670FF575056805087031133 [13966.240229] usb 3-9: ep 0x84 - rounding interval to 1024 microframes, ep desc says 2040 microframes [13966.295683] usb-storage 3-9:1.1: USB Mass Storage device detected [13966.295954] scsi16 : usb-storage 3-9:1.1 [13966.296267] cdc_acm 3-9:1.2: This device cannot do calls on its own. It is not a modem. [13966.296287] cdc_acm 3-9:1.2: ttyACM2: USB ACM device [13967.295646] scsi 16:0:0:0: Direct-Access MBED microcontroller 1.0 PQ: 0 ANSI: 2 [13967.296255] sd 16:0:0:0: Attached scsi generic sg2 type 0 [13967.296562] sd 16:0:0:0: [sdb] 1072 512-byte logical blocks: (548 kB/536 KiB) [13967.296841] sd 16:0:0:0: [sdb] Write Protect is off [13967.296847] sd 16:0:0:0: [sdb] Mode Sense: 03 00 00 00 [13967.297101] sd 16:0:0:0: [sdb] No Caching mode page found [13967.297107] sd 16:0:0:0: [sdb] Assuming drive cache: write through [13967.304706] sdb: [13967.307414] sd 16:0:0:0: [sdb] Attached SCSI removable disk [13984.989018] cdc_acm 3-9:1.2: failed to set dtr/rts [13999.024323] cdc_acm 3-9:1.2: failed to set dtr/rts [14016.061852] cdc_acm 3-9:1.2: failed to set dtr/rts [14017.951574] usb 3-9: reset full-speed USB device number 22 using xhci_hcd
Lorsqu'on branche la carte programmable, le noyau la reconnaît bien et lui attribue un téléscripteur (ttyACMX). Cependant la dernière ligne (environ 2 sec après branchement) indique que le module du noyau responsable de l'USB3.0 a reset la connexion. La carte se reconnecte sous peu mais le problème est toujours le même. Lorsque la limite du nombre d'ACMX à allouer est atteinte (31) le module alloue un disque scsi.
[10095.392845] cdc_acm 3-1:1.2: no more free acm devices [10096.391780] scsi 12:0:0:0: Direct-Access MBED microcontroller 1.0 PQ: 0 ANSI: 2 [10096.392246] sd 12:0:0:0: Attached scsi generic sg2 type 0 [10096.392639] sd 12:0:0:0: [sdb] 1072 512-byte logical blocks: (548 kB/536 KiB) [10096.392848] sd 12:0:0:0: [sdb] Write Protect is off [10096.392854] sd 12:0:0:0: [sdb] Mode Sense: 03 00 00 00 [10096.393026] sd 12:0:0:0: [sdb] No Caching mode page found [10096.393030] sd 12:0:0:0: [sdb] Assuming drive cache: write through [10096.400133] sdb: [10096.401628] sd 12:0:0:0: [sdb] Attached SCSI removable disk
Aucun soucis une fois passé sur un port USB2.0.
Semaine 6 Feb 2017
Fichier:Lora Scénarios Menace.pdf