Thomas
Ibrahim

Ingénieur systèmes embarquésFirmware & sécurité IoT

Je parle plus aux microcontrôleurs qu'à la plupart des gens. Ils écoutent mieux.

Disponible immédiatementAutorisé à travailler en FranceValence, France

Fig. 1. Une puce de microcontrôleur illustrative, annotée avec ce que j'ai construit sur chaque type de bloc. Ce n'est pas un vrai composant. Le tracé rouge est le chemin de télémétrie signée de SecureVitals, qui pulse à 1 Hz comme les vrais nœuds.

SecureVitalsune flotte IoT sécurisée de suivi de santé

Étude de cas
Stage systèmes embarqués & sécurité IoT, Jelecom · 2026

Le problème

Des capteurs de santé répartis sur une flotte d'appareils produisent des données qui doivent être fiables. Une mesure falsifiée ou rejouée, ou un nœud qui se fait passer pour un autre, présente de fausses valeurs à ceux qui s'y fient. L'objectif : des nœuds programmables à distance qui transmettent des signes vitaux en temps réel, avec chaque message authentifié de l'appareil jusqu'au tableau de bord.

Résultats

Mesuré sur la flotte SecureVitals et son intégration continue.
ParamètreValeur
nœuds transmettant simultanément à 1 Hz4
tests automatisés couvrant firmware, ingestion, web et mobile202
contrats de format de données figés et versionnés3

Architecture

Les données partent des capteurs (MAX30102, BMP280, DS18B20) vers le firmware ESP32 sous FreeRTOS, puis passent en BLE GATT et en MQTT 5 sur TLS jusqu'à un service d'ingestion Python qui vérifie chaque message, lequel alimente un tableau de bord Next.js et une application React Native.

Conception sécurité

  • HMAC-SHA256 par appareil

    Chaque message est signé avec la clé propre à son nœud, sur un ordre canonique des champs : le backend peut prouver quel appareil l'a envoyé et que rien n'a changé en transit.

  • Vérification en temps constant

    Les signatures sont comparées en temps constant : le temps de réponse ne donne aucune prise à un attaquant qui tenterait de forger une signature.

  • Protection anti-rejeu persistante

    Les messages rejoués sont rejetés, et l'état de la protection survit aux redémarrages du backend : un redémarrage ne rouvre jamais la fenêtre de rejeu.

  • D'une clé globale à des clés par appareil

    La première conception partageait un seul secret, ce qui permettait à n'importe quel nœud d'usurper un autre. Migration vers une résolution de clé par appareil, avec rejet des clés en double dès la configuration.

  • Modèle de menaces STRIDE

    Menaces et contre-mesures documentées avec STRIDE et rattachées à l'IEC 62443 et à l'article 32 du RGPD.

Projets

  • SecureVitals : plateforme IoT sécurisée de suivi de santé

    ESP32 / Python / Next.js / React NativeÀ la une

    Flotte IoT de quatre nœuds de suivi de santé transmettant à 1 Hz des données de capteurs signées (SpO2, fréquence cardiaque, pression, température). Chaîne complète : firmware FreeRTOS avec pilotes de capteurs sur mesure et BLE GATT, MQTT 5 sur TLS avec authentification HMAC par appareil et protection anti-rejeu, service d'ingestion Python, tableau de bord Next.js et application iOS React Native, le tout couvert par 202 tests automatisés.

    Lire l'étude de cas
    • ESP32
    • FreeRTOS
    • BLE
    • MQTT
    • TLS
    • HMAC-SHA256
    • IoT security
    • Next.js
    • React Native
  • Implémentation matérielle de l'arithmétique modulaire pour RSA

    FPGA Basys-3À la une

    Implémentation en VHDL de l'addition, de la multiplication et de l'exponentiation modulaires (MSB en premier), vérifiées par des testbenches auto-vérifiants, puis synthèse d'un cœur complet de chiffrement/déchiffrement RSA 16 bits. Démonstration d'une attaque matérielle par force brute sur un petit espace de clés RSA.

    • FPGA
    • VHDL
    • cryptography
    • RTL
    • verification
    • security
  • Robot suiveur de ligne

    Arduino Uno

    Robot autonome utilisant des capteurs infrarouges et une boucle de régulation PID des moteurs, pilotés en PWM, pour un suivi stable dans les virages.

    • Arduino
    • PID
    • real-time
    • control
  • Régulateur de niveau d'eau via UART

    Arduino Uno

    Système à deux nœuds : un maître piloté au clavier envoie des consignes de niveau via un protocole UART sur mesure à un esclave qui commande une pompe et une vanne, avec entrées/sorties sur interruption et régulation de niveau en boucle fermée.

    • Arduino
    • UART
    • embedded
    • control
  • TP d'attaques par canaux auxiliaires : DPA et analyse EM

    Microcontrôleurs embarqués

    Expériences d'analyse différentielle de consommation (DPA) et de fuites électromagnétiques sur des microcontrôleurs embarqués, avec chaînes d'acquisition automatisées à l'oscilloscope et évaluation de contre-mesures matérielles.

    • DPA
    • EM analysis
    • side-channel
    • fault injection
    • security
  • Vérification RTL d'un arbitre et injection de fautes

    VHDL / ModelSim

    Arbitre à priorités en VHDL avec un environnement de vérification complet : vérificateur de protocole, vérificateur de propriétés, pilote aléatoire avec entrées/sorties fichier et assertions PSL. Injection de fautes SEU et implémentation d'une contre-mesure matérielle, avec une couverture fonctionnelle complète de la logique d'arbitrage.

    • VHDL
    • RTL
    • verification
    • PSL
    • fault injection
    • SEU
  • Implémentation matérielle d'AES avec capteur de température I2C

    FPGA Zybo-Z7

    Pipeline complet de chiffrement AES en VHDL (SubBytes, ShiftRows, MixColumns, AddRoundKey, expansion de clé) sur une Zybo-Z7, chiffrant en direct les données d'un capteur de température I2C. Toutes les étapes du pipeline vérifiées sur le matériel.

    • FPGA
    • VHDL
    • AES
    • cryptography
    • I2C
    • Zynq
  • Analyse de performance SIMD ARM NEON

    SoC Zynq-7020 (Zybo Z7-20)

    Comparaison de noyaux scalaires et SIMD NEON à 667 MHz à l'aide des compteurs de cycles du CPU : accélérations de 2,05x (somme de tableau), 1,46x (multiplication de matrices 4x4) et 2,51x (détection de contours). GCC -O3 apporte un gain de 10x par rapport au code scalaire non optimisé.

    • SoC
    • ARM
    • NEON
    • SIMD
    • performance
    • C
  • Signatures post-quantiques Falcon avec AES sur FPGA

    FPGA

    Implémentation du schéma de signature post-quantique Falcon, fondé sur les réseaux euclidiens, aux côtés d'un chiffrement AES dans une même conception FPGA.

    • FPGA
    • post-quantum cryptography
    • Falcon
    • AES
    • security
  • Co-vérification d'un UART

    RTL / ModelSim

    Module UART vérifié par co-vérification face à un modèle logiciel de référence, couvrant la structure des trames, le timing du débit, le contrôle de parité et la gestion des erreurs, avec des vecteurs de test dirigés et aléatoires.

    • UART
    • RTL
    • verification
    • testbench
  • Cryptanalyse par IA de chiffrements par blocs légers

    Python / ML

    Analyse de la sécurité de S-AES et S-SPECK par cryptanalyse assistée par IA, avec démonstration de faiblesses exploitables dans des variantes à nombre de tours réduit.

    • cryptanalysis
    • AI
    • machine learning
    • research

Expérience

  1. 02/2026 – 09/2026Stagiaire systèmes embarqués & sécurité IoTJelecom
    • Conception et mise en service de SecureVitals, une flotte de quatre nœuds IoT de suivi de santé programmables à distance, transmettant simultanément à 1 Hz par un canal de télémétrie signé unique, avec développement de toute la chaîne : firmware ESP32, service d'ingestion Python, tableau de bord d'exploitation Next.js et application iOS React Native (Expo).
    • Développement du firmware ESP32 en C++ avec des tâches FreeRTOS, des pilotes MAX30102 (SpO2/fréquence cardiaque), BMP280 (pression) et DS18B20 (température) en I2C et 1-Wire, et un service BLE GATT notifiant à 1 Hz dans un budget de 180 octets par message ; passage du prototype sur breadboard à un processus de compilation et de flashage reproductible sur les quatre unités.
    • Sécurisation de la frontière entre l'appareil et le cloud avec MQTT 5 sur TLS vérifié, un HMAC-SHA256 par appareil sur un ordre canonique des champs, une vérification en temps constant et une protection anti-rejeu persistante qui survit aux redémarrages du backend, afin qu'aucun message falsifié ou rejoué n'atteigne l'état de l'application.
    • Suppression d'une faiblesse liée au secret partagé, qui permettait à n'importe quel nœud d'en usurper un autre, par la migration d'une clé globale unique vers une résolution de clé par appareil, avec rejet des clés en double dès la configuration.
    • Plateforme rendue maintenable par une équipe : 202 tests automatisés couvrant les suites firmware, ingestion, web et mobile sous Git et intégration continue, trois contrats de format de données figés et versionnés, et une documentation incluant un modèle de menaces STRIDE rattaché à l'article 32 du RGPD et à l'IEC 62443.
  2. 12/2024 – 08/2025Développeur full-stack (freelance)Veeyra AI – Private Clinic
    • Seul développeur : livraison d'un système complet de gestion des patients, utilisé au quotidien en production dans une clinique médicale pendant 8 mois, en prenant en charge le recueil des besoins auprès des utilisateurs, le déploiement, la mise en service et la documentation de passation.
    • Développement d'un back-end FastAPI avec authentification JWT, contrôle d'accès par rôles et PostgreSQL, permettant l'accès simultané de plusieurs rôles à un jeu de données clinique partagé, et d'un front-end React.js couvrant les dossiers patients, les tableaux de bord financiers et la génération automatique de reçus.
    • Intégration d'un assistant conversationnel IA qui répond en langage naturel aux questions sur les données patients, via l'API Anthropic.
  3. 05/2024 – 12/2024Stagiaire en tests d'intrusionDEPI
    • Réalisation de tests d'intrusion en boîte noire et en boîte grise sur des applications web et une infrastructure réseau interne, et rédaction de rapports de vulnérabilités structurés avec étapes de reproduction, niveaux de sévérité et recommandations de correction.
    • Réduction de l'effort manuel de reconnaissance et de scan grâce à l'automatisation de ces deux phases en Python sous GNU/Linux, en s'appuyant sur Nmap, Metasploit et Burp Suite.
  4. 08/2023 – 09/2023Stagiaire ingénieur intégrationNational Bank of Egypt
    • Déploiement de deux répartiteurs de charge BizTalk Server pour gérer le routage des messages entre les serveurs de bases de données.
    • Configuration de pipelines d'orchestration, supervision des flux de messages entre les services back-end et documentation des causes des échecs d'intégration pour l'équipe infrastructure.
  5. 06/2022 – 07/2022Stagiaire en tests d'intrusionTelecom Egypt
    • Assistance à l'équipe sécurité pour les tests manuels de portails web internes et de services réseau.
    • Écriture de scripts Python pour automatiser l'analyse des en-têtes et l'énumération des ports, réduisant le temps de test manuel.

Compétences

Embarqué & RTOS
  • ESP32
  • STM32
  • FreeRTOS
  • bare-metal C
  • interrupt-driven I/O
  • sensor drivers
  • PlatformIO
  • Arduino
  • Raspberry Pi
Protocoles
  • I2C
  • UART
  • SPI
  • 1-Wire
  • BLE GATT
  • MQTT 5
  • TLS 1.3
  • HMAC-SHA256
Sécurité
  • Secure Boot
  • Cryptography
  • mbedTLS
  • DPA
  • EM analysis
  • fault injection
  • STRIDE
  • IEC 62443
  • GDPR Art. 32
  • penetration testing
HDL & FPGA
  • VHDL
  • Verilog
  • SystemC
  • Vivado
  • Vitis
  • ModelSim/Questa
  • Xilinx Basys-3
  • Zybo-Z7
  • Zynq SoC
Langages de programmation
  • C
  • C++
  • Python
  • TypeScript
  • VHDL
  • Verilog
Outils
  • Git
  • CI
  • GNU/Linux
  • Oscilloscope
  • Nmap
  • Metasploit
  • Burp Suite
Méthodologies
  • Hardware/software co-design
  • RTL verification
  • PSL assertions
  • Testbench development
  • Threat modelling

Formation & langues

Formation

  • 08/2025 – 09/2026

    MSc, Sécurité des systèmes embarqués (Master international)

    Grenoble INP – Esisar, Valence, France

    • Conception et vérification de systèmes embarqués
    • Travaux pratiques de sécurité des systèmes embarqués
    • Travaux pratiques de sécurité matérielle
  • 2019 – 2024

    BSc, Génie informatique

    British University in Egypt (BUE)

    • Projet de recherche : cryptanalyse par IA de chiffrements par blocs légers (S-AES, S-Speck), noté A+

Langues

Arabe
Langue maternelle
Anglais
Courant
Français
Intermédiaire (B1)

Contact

Vous recrutez pour un poste en embarqué, firmware ou sécurité IoT ? Échangeons.

thomas.e.ibrahim@gmail.com

Thomas Ibrahim
Thomas IbrahimIngénieur systèmes embarqués · Firmware & sécurité IoT