IMA5 2021/2022 P29 : Différence entre versions

De Wiki de Projets IMA
(Semaine 0)
()
 
(47 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 32 : Ligne 32 :
 
===Matériel :===
 
===Matériel :===
  
nRF52
+
nRF52 et son IDE
  
==Liste non exhaustive des tâches à effectuer==
+
Accès au salle de TP afin d'avoir accès à une nanoboard, des ordinateurs avec Altium et une alimentation
 +
 
 +
==Liste des tâches à effectuer==
 +
* Bibliographie
 +
* Choix et commande du matériel
 +
* Ecriture d'un programme sur le microcontrôleur
 +
* Réalisation du banc de test
 +
* Test des différentes attaques
 +
* Mise en place d'un protocole d'attaque
 +
* Test du protocole d'attaque sur un objet connecté
  
 
==Calendrier prévisionnel==
 
==Calendrier prévisionnel==
 +
 +
====semaine 1====
 +
 +
Commande du matériel et écriture du programme sur le nRF52
 +
 +
Documentation sur les attaques en fautes non invasives et la récupération des données
 +
 +
Lecture de la datasheet du microcontrôleur
 +
 +
Bibliographie à remplir
 +
 +
====semaine 2====
 +
 +
Mise en place du banc de test :
 +
 +
écriture programme en vhdl pour changer la clock
 +
 +
====semaine 3====
 +
 +
Premiers tests d'attaques avec perturbation de l'horloge
 +
 +
====semaine 4====
 +
 +
Premiers tests d'attaques avec perturbation de la tension
 +
 +
====semaine 5====
 +
 +
Mise en place du protocole
 +
 +
Choix et commande de l'objet connecté ( si possible)
 +
 +
====semaine 6====
 +
 +
Test du protocole sur un objet connecté
  
 
=Réalisation du projet=
 
=Réalisation du projet=
==Semaine 0==
 
  
Réalisation du cahier des charges
+
*Réalisation du cahier des charges
 +
 
 +
[[Fichier:PI_DELABRE_CDC1.PNG]]
 +
 
 +
[[Fichier:PI_DELABRE_CDC2.PNG]]
 +
 
 +
[[Fichier:PI_DELABRE_CDC3.PNG]]
 +
 
 +
== ==
 +
 
 +
*Lecture de document/Visionnage de vidéo afin d'en savoir plus sur la nRF52.
 +
 
 +
*Rédaction du cahier des spécifications :
 +
 
 +
[[Fichier:PI_DELABRE_CDS1.PNG]]
 +
 
 +
[[Fichier:PI_DELABRE_CDS2.PNG]]
 +
 
 +
[[Fichier:PI_DELABRE_CDS3.PNG]]
 +
 
 +
== ==
 +
 
 +
*Lecture de document, ajout à la bibliographie.
 +
*Choix du nRF52xxx à acheter, et demande à l'école pour la commande :
 +
 
 +
[[Fichier:PI_DELABRE_NRF52840.jpg]]
 +
[1]
 +
 
 +
 
 +
*Rédaction du premier code à tester sur la nRF52, exemple de code fourni sur NordicSemiconductor ainsi que les librairies et drivers nécessaire :
 +
https://www.nordicsemi.com/Products/Development-software/nRF5-SDK
 +
 
 +
*Recherches bibliographiques
 +
 
 +
== ==
 +
*Installation logiciel pour piloter carte nRF52840, ce dernier permet de téléverser le code sur la NRF52840 ( le code doit être en format ".hex" ), il permet aussi un suivi de l'alimentation de la carte lorsqu'elle est connecté à l'ordinateur ainsi qu'un suivi de la puissance de réception Bluetooth :
 +
 
 +
 
 +
https://www.nordicsemi.com/Products/Development-software/nRF-Connect-SDK
 +
 
 +
[[Fichier:PI_DELABRE_NRFCONNECT.PNG]]
 +
 
 +
Pour obtenir le code en C en .hex j'ai utilisé "Keil µVision5"
 +
 
 +
== ==
 +
 
 +
*Mise en pratique de la théorie vu sur les différents documents, l'attaque Clock glitch doit être réalisé en injectant un glitch dans le signal d'horloge de la NRF52840, j'ai donc pensé à utiliser un fpga qui me permettrait de générer un signal d'horloge comme je le souhaite.
 +
 
 +
*Installation Vivado sur mon ordinateur perso ( problème de détection du FPGA sur les PC de l'école ).
 +
 
 +
*Le FPGA que l'école me permet d'utiliser est le Basys 3 Artix-7 :
 +
 
 +
[[Fichier:PI_DELABRE_B3A7.jpg]]
 +
[2]
 +
 
 +
== ==
 +
 
 +
*Rédaction code VHDL permettant d'envoyer un signal de clock générant un glitch
 +
 
 +
== ==
 +
*A la réception de la commande des NRF52840 il était nécessaire d'installer le firmware
 +
 
 +
*Test du code commencé plus tôt, modification jusqu'à obtenir quelque chose de fonctionnelle
 +
 
 +
== ==
 +
[1] https://fr.farnell.com/
 +
 
 +
[2] https://www.lextronic.fr/
  
Choix du matériel
+
== ==
  
==Semaine 1==
 
==Semaine 2==
 
==Semaine 3==
 
==Semaine 4==
 
==Semaine 5==
 
 
=Documents Rendus=
 
=Documents Rendus=

Version actuelle datée du 14 janvier 2022 à 12:30


Présentation générale

Description

De nos jours, les objets connectés font partie de notre quotidien avec des prix de moins en moins élevés, ces objets sont souvent connectés en bluetooth. Ce projet a pour but de mettre en place un protocole d’attaque permettant de récupérer le programme sur des objets connectés de la vie de tous les jours.

Objectifs

L’objectif de ce projet est, dans un premier temps, de comprendre et de tester des attaques en perturbant le comportement du microcontrôleur afin de récupérer ses données. Puis, dans un second temps, de mettre en place un protocole détaillant les différentes étapes d’une attaque ainsi que les méthodes utilisées afin de pouvoir la reproduire sur divers objets connectés.

Préparation du projet

Cahier des charges

Choix techniques

Attaques

Attaques en fautes non invasives :

- perturbation de l’horloge

- perturbation de la tension d’alimentation

Matériel :

nRF52 et son IDE

Accès au salle de TP afin d'avoir accès à une nanoboard, des ordinateurs avec Altium et une alimentation

Liste des tâches à effectuer

  • Bibliographie
  • Choix et commande du matériel
  • Ecriture d'un programme sur le microcontrôleur
  • Réalisation du banc de test
  • Test des différentes attaques
  • Mise en place d'un protocole d'attaque
  • Test du protocole d'attaque sur un objet connecté

Calendrier prévisionnel

semaine 1

Commande du matériel et écriture du programme sur le nRF52

Documentation sur les attaques en fautes non invasives et la récupération des données

Lecture de la datasheet du microcontrôleur

Bibliographie à remplir

semaine 2

Mise en place du banc de test :

écriture programme en vhdl pour changer la clock

semaine 3

Premiers tests d'attaques avec perturbation de l'horloge

semaine 4

Premiers tests d'attaques avec perturbation de la tension

semaine 5

Mise en place du protocole

Choix et commande de l'objet connecté ( si possible)

semaine 6

Test du protocole sur un objet connecté

Réalisation du projet

  • Réalisation du cahier des charges

PI DELABRE CDC1.PNG

PI DELABRE CDC2.PNG

PI DELABRE CDC3.PNG

  • Lecture de document/Visionnage de vidéo afin d'en savoir plus sur la nRF52.
  • Rédaction du cahier des spécifications :

PI DELABRE CDS1.PNG

PI DELABRE CDS2.PNG

PI DELABRE CDS3.PNG

  • Lecture de document, ajout à la bibliographie.
  • Choix du nRF52xxx à acheter, et demande à l'école pour la commande :

PI DELABRE NRF52840.jpg [1]


  • Rédaction du premier code à tester sur la nRF52, exemple de code fourni sur NordicSemiconductor ainsi que les librairies et drivers nécessaire :

https://www.nordicsemi.com/Products/Development-software/nRF5-SDK

  • Recherches bibliographiques

  • Installation logiciel pour piloter carte nRF52840, ce dernier permet de téléverser le code sur la NRF52840 ( le code doit être en format ".hex" ), il permet aussi un suivi de l'alimentation de la carte lorsqu'elle est connecté à l'ordinateur ainsi qu'un suivi de la puissance de réception Bluetooth :


https://www.nordicsemi.com/Products/Development-software/nRF-Connect-SDK

PI DELABRE NRFCONNECT.PNG

Pour obtenir le code en C en .hex j'ai utilisé "Keil µVision5"

  • Mise en pratique de la théorie vu sur les différents documents, l'attaque Clock glitch doit être réalisé en injectant un glitch dans le signal d'horloge de la NRF52840, j'ai donc pensé à utiliser un fpga qui me permettrait de générer un signal d'horloge comme je le souhaite.
  • Installation Vivado sur mon ordinateur perso ( problème de détection du FPGA sur les PC de l'école ).
  • Le FPGA que l'école me permet d'utiliser est le Basys 3 Artix-7 :

PI DELABRE B3A7.jpg [2]

  • Rédaction code VHDL permettant d'envoyer un signal de clock générant un glitch

  • A la réception de la commande des NRF52840 il était nécessaire d'installer le firmware
  • Test du code commencé plus tôt, modification jusqu'à obtenir quelque chose de fonctionnelle

[1] https://fr.farnell.com/

[2] https://www.lextronic.fr/

Documents Rendus