Aller au contenu

Bilan Ludovic

Mise en place d’une communication LoRa chiffrée (AES-256-CTR) avec stockage sécurisé des clés via Secure Element (ATECC608B) et interface M5Stack pour visualiser les échanges.

Résultats finaux & Objectifs

Communication LoRa point-à-point chiffrée, avec racine de confiance assurée par un Secure Element (ATECC608B).

Objectifs de ma partie (LoRa & Crypto)

  • Architecture : communication LoRa robuste (format de trame).
  • Sécurité : intégration Secure Element via I²C + chiffrement AES-256-CTR.
  • Expérience utilisateur : dashboard M5Stack pour visualiser chiffrement/déchiffrement.
  • Preuve de concept : code source + documentation via le site.

Résultats obtenus (livrables validés)

Étape 1 — Intégration hardware

  • Validation du bus I²C + détection ATECC608B à 0x35.
  • Outil de diagnostic Scan_SE.ino : lecture config, numéro de série, état des locks.

Étape 2 — Moteur cryptographique

  • Implémentation AES-256-CTR via mbedTLS.
  • IV aléatoire par message : 16 octets.
  • Encapsulation Base64 (IV + CT) pour transport LoRa.

Étape 3 — Protocole & UI

  • Protocole strict : SRC=...;DST=...;MSG=SEC1:IV=...:CT=...
  • Dashboard M5 : affichage du mode secure, message clair, et état “Key loaded”.

Preuves Techniques

Agrandir
Moniteur Série

Preuve 1 : Intégration I²C

Capture du moniteur série de Scan_SE.ino : confirmation “ATECC608B detected at 0x35” + affichage du numéro de série unique. Valide la couche physique avant toute crypto.

Preuves 3 & 4 : Confidentialité + Déchiffrement

Chiffrement effectif : le RX affiche un payload illisible sous forme SEC1:IV=...:CT=... tant que la clé n’est pas chargée.
Chaîne complète : le dashboard M5 affiche le message clair (ex : “HELLO”), confirmant : SE → clé → AES → LoRa → AES → UI.

Problèmes Rencontrés & Solutions

Les défis techniques majeurs rencontrés sur l’intégration Secure Element et la fiabilité LoRa.

Incompatibilité des librairies Secure Element

Le Symptôme Initialisation difficile de l’ATECC608B avec les librairies Arduino “classiques”.

La Solution Adoption de SparkFun ATECCX08a (plus bas niveau) : accès direct Read/Write aux zones, manipulation des slots mémoire, et fonctionnement stable avec notre version de puce.

Fiabilité LoRa (pertes de paquets)

Le Symptôme Messages chiffrés perdus/corrompus → Base64 invalide → déchiffrement impossible.

La Solution Mise en place d’un ACK logiciel avec réémission automatique (3 tentatives) + validation du format Base64 avant tentative de déchiffrement.

Bilan Global : Satisfaction du Cahier des Charges

Analyse honnête de la réussite par rapport aux objectifs initiaux (fonctionnel + démo).

Validé

Communication LoRa point-à-point fonctionnelle, chiffrement AES-256-CTR, IV 16 octets par message, et clé stockée côté Secure Element. Démo complète : émission, réception, déchiffrement et affichage (UI).

Moyens & choix techniques

Matériel M5Stack + LoRa + ATECC608B adapté. Le point critique a été logiciel : trouver une librairie SE compatible et stable, résolu avec SparkFun ATECCX08a.

Améliorations

Sécurité avancée : AES-CTR chiffre mais n’assure pas l’intégrité (pas de TAG). Évolution visée : Ajout d’une fonctionnalité de vérification de l’intégrité des messages
Aléa : utiliser le TRNG de l’ATECC608B pour l’IV/nonce au lieu du random() ESP32.

Organisation & coopération

Répartition claire des tâches : j’ai suivi les consignes du chef de projet et j’ai communiqué quand un blocage apparaissait (notamment sur le Secure Element). La coordination a permis de converger vers une démo stable.

Synthèse Personnelle & Autoévaluation

Mon rôle, mes points forts, axes d’amélioration et justification de ma note.

Implication & Sérieux

Coef. 2

Assiduité, respect strict des délais et motivation constante.

Qualité Technique

Coef. 1

Pertinence des solutions, propreté du code et capacité d'innovation.

Travail d'Équipe

Coef. 1

Communication, aide et partage de connaissances.

L
Ludovic

Ludovic

LoRa & Crypto
Implication & Sérieux 18/20
Qualité Technique 14/20
Travail d'Équipe 14/20
Note Attribuée
16 /20

Justification de la note

  • Livraison d’un prototype complet

    Intégration I²C de l’ATECC608B (0x35), outil de diagnostic Scan_SE.ino et chaîne LoRa sécurisée : IV 16 octets, AES-256-CTR, Base64, parsing strict, affichage UI (message clair).

  • Résolution de problèmes “Secure Element”

    Recherche et tests de plusieurs librairies avant stabilisation sur SparkFun ATECCX08a, permettant l’accès direct aux slots mémoire (base pour le stockage de clés).

  • Robustesse & démo

    Implémentation d’un ACK logiciel + retries (3 tentatives) pour limiter les pertes LoRa. Résultat : une démo stable et explicable en soutenance.

  • Limites identifiées + évolutions proposées

    AES-CTR = confidentialité sans intégrité : Ajout d'une fonctionnalité d'intégrité des messages et génération IV/nonce via TRNG ATECC608B.

Évaluation par les Pairs

Notes attribuées aux autres membres du groupe selon la grille d'évaluation choisie.

Implication & Sérieux

Coef. 2

Assiduité, délais, motivation.

Qualité Technique

Coef. 1

Solutions, code, innovation.

Travail d'Équipe

Coef. 1

Communication, aide, partage.

Mattéo Chef de Projet

Implication & Sérieux 19/20
Qualité Technique 18/20
Travail d'Équipe 17/20
Note Finale
18 /20
Justification
Points Forts
  • Leadership : bonne répartition des tâches, suivi et coordination qui ont permis d’avancer vite.

  • Vision : cohérence globale et validation des choix techniques. Réel moteur !

Axe d'Amélioration
  • Délégation : déléguer un peu plus de tâches (doc, intégration)

Thomas Tests

Implication & Sérieux 16/20
Qualité Technique 16/20
Travail d'Équipe 16/20
Note Finale
16 /20
Justification
Points Forts
  • Analyse : comparaison solide Flipper Zero vs M5StickC Plus2 + tests concrets.

  • Rigueur : protocoles de tests pour valider portée et stabilité LoRa.

Axe d'Amélioration
  • Lien tests ↔ code : approfondir davantage la recherche et la compréhension au niveau du secure element