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
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. 2Assiduité, respect strict des délais et motivation constante.
Qualité Technique
Coef. 1Pertinence des solutions, propreté du code et capacité d'innovation.
Travail d'Équipe
Coef. 1Communication, aide et partage de connaissances.
Ludovic
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. 2Assiduité, délais, motivation.
Qualité Technique
Coef. 1Solutions, code, innovation.
Travail d'Équipe
Coef. 1Communication, aide, partage.
Mattéo Chef de Projet
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
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