Cours connexes :


Security for Connected Objects - Semestre 9

Annee academique : 2024-2025
Semestre : S9
Enseignants : E. Alata, V. Migliore
Categorie : Securite IoT et Cryptographie


PART A : PRESENTATION GENERALE

Vue d'ensemble

Le cours "Security for Connected Objects" dispense par E. Alata et V. Migliore constitue un pilier essentiel de ma formation en securite des systemes connectes. Ce module couvre de maniere exhaustive les mecanismes de securite indispensables aux dispositifs IoT : cryptographie symetrique et asymetrique, fonctions de hachage, protocoles TLS/SSL, certificats numeriques et infrastructure a cles publiques (PKI), securite materielle, menaces specifiques a l'IoT, et methodologie d'analyse de risques EBIOS.

Le cours allie theorie approfondie et mise en pratique intensive a travers des travaux de laboratoire concrets : challenges CTF (Capture The Flag), attaques par injection SQL, attaques Man-in-the-Middle (MITM), migration TLS, et experimentation quantique. Cette approche m'a permis de developper une comprehension operationnelle de la securite des objets connectes.

Objectifs pedagogiques :

  • Comprendre les fondements de la cryptographie moderne (symetrique, asymetrique, hachage)
  • Maitriser les protocoles de securite pour les communications IoT (TLS/SSL, PKI)
  • Identifier les faiblesses de securite dans une architecture IoT (OWASP IoT Top 10)
  • Evaluer l'impact de l'exploitation d'une vulnerabilite de securite
  • Proposer des contre-mesures de securite adequates
  • Realiser une analyse de risques avec la methodologie EBIOS
  • Apprehender la securite materielle : attaques par canaux auxiliaires, injection de fautes, elements securises

Position dans le cursus

Ce module s'inscrit dans une continuite pedagogique :

  • Securite Materielle (S7) : attaques par canaux auxiliaires, buffer overflow, analyse de consommation
  • Microcontroleurs et Hardware (S9) : systemes embarques, FPGA, architecture materielle
  • Middleware for IoT (S9) : protocoles de communication securises (MQTT, TLS)
  • Emerging Network Technologies (S9) : securite reseau SDN/NFV

Il prepare directement a :

  • Projet Innovant (S9) : implementation AES et securisation d'un systeme IoT complet
  • Carriere en cybersecurite : audit de securite, pentest, conception securisee
  • Recherche : cryptographie post-quantique, securite hardware avancee

PART B : EXPERIENCE ET CONTEXTE

Organisation et ressources

Le module etait structure en cours magistraux et travaux pratiques intensifs :

Cours magistraux :

  • Cryptographie symetrique (AES, DES, modes de chiffrement par blocs)
  • Cryptographie asymetrique (RSA, ECC, Diffie-Hellman)
  • Fonctions de hachage (SHA-256, MD5, fonctions legeres pour IoT)
  • Certificats numeriques et PKI (Public Key Infrastructure)
  • Protocoles TLS/SSL et securisation des communications
  • Securite materielle (attaques par canaux auxiliaires, injection de fautes)
  • Menaces specifiques IoT (OWASP IoT Top 10)
  • Methodologie d'analyse de risques EBIOS

Travaux pratiques :

  • Lab 1 : Injection SQL et Cross-Site Scripting (XSS)
  • Lab 2 : Chiffrement symetrique et asymetrique (AES, RSA)
  • Lab 3 : Attaque Man-in-the-Middle, migration TLS, certificats
  • Lab 4 : Challenges CTF cryptographiques (flags)
  • Lab Quantique : Distribution quantique de cles (QKD), protocole NEC

Ressources :

  • Supports de cours : cryptography.pdf, Hardware-Security.pdf, ebios.pdf
  • Outils : mbedTLS, pycryptodome, OpenSSL
  • Rapports : Rapport Lab1 (injection SQL, XSS)

Environnement et contexte

Au cours de ce module, j'ai travaille sur les aspects theoriques et pratiques de la securite IoT. La pertinence de la securisation des dispositifs IoT dans le monde interconnecte actuel est evidente : chaque objet connecte represente une surface d'attaque potentielle. Les laboratoires pratiques m'ont permis d'appliquer les concepts appris en cours a des scenarios realistes, passant de la theorie cryptographique a l'exploitation concrete de vulnerabilites.

Mon role

Dans ce cours, j'ai ete responsable de :

  • Comprendre et implementer divers protocoles de securite et techniques cryptographiques
  • Mettre en oeuvre des mesures de securite pour les dispositifs IoT
  • Mener des experimentations pour identifier et attenuer les vulnerabilites de securite
  • Analyser et prevenir les attaques Man-in-the-Middle (MITM) sur les protocoles de communication IoT
  • Realiser des challenges CTF pour tester mes competences en cryptanalyse
  • Travailler avec la distribution quantique de cles (QKD) pour explorer la securite post-quantique

PART C : ASPECTS TECHNIQUES

Cette section explore en detail les aspects techniques de la securite des objets connectes, couvrant la cryptographie, les protocoles de securite, la securite materielle, les menaces IoT, et les travaux pratiques realises.


1. Cryptographie symetrique

La cryptographie symetrique utilise la meme cle pour le chiffrement et le dechiffrement. Elle est rapide et efficace pour le chiffrement de donnees volumineuses, mais necessite un canal securise pour la distribution de la cle.

1.1 AES (Advanced Encryption Standard)

L'AES est le standard de chiffrement symetrique mondial depuis 2001. Il chiffre les donnees par blocs de 128 bits avec des cles de 128, 192 ou 256 bits.

L'algorithme AES est compose de plusieurs rondes de traitement, chacune impliquant quatre operations principales :

  1. AddRoundKey : chaque octet de l'etat est combine avec un bloc de la sous-cle de ronde par un XOR bit a bit. Cette etape est cruciale car elle introduit la cle dans le processus de chiffrement.
  2. SubBytes : etape de substitution non lineaire ou chaque octet de l'etat est remplace par un autre via une S-box (boite de substitution). La S-box est concue pour resister aux cryptanalyses lineaires et differentielles.
  3. ShiftRows : les lignes de l'etat sont decalees cycliquement vers la gauche. Le decalage depend de l'indice de la ligne. Cette etape assure la diffusion du texte clair.
  4. MixColumns : operation de melange operant sur les colonnes de l'etat, combinant les quatre octets de chaque colonne. Cette etape garantit une diffusion supplementaire.

Figure : Etapes de l'algorithme AES - SubBytes, ShiftRows, MixColumns, AddRoundKey


Nombre de rondes selon la taille de la cle :

Taille de cleNombre de rondesApplications typiques
128 bits10 rondesUsage general, Wi-Fi (WPA2)
192 bits12 rondesDonnees sensibles
256 bits14 rondesDonnees classifiees, militaire

Dans notre Projet Innovant (What a Leak), nous avons implemente l'algorithme AES avec des concepts supplementaires : vecteur d'initialisation (IV), padding, et PKCS#7.

1.2 DES (Data Encryption Standard)

Le DES, predecesseur de l'AES, utilise des blocs de 64 bits et une cle de 56 bits. Bien qu'obsolete aujourd'hui en raison de la taille reduite de sa cle (vulnerable au brute force), il reste important pour comprendre l'evolution de la cryptographie symetrique. Le Triple-DES (3DES) applique DES trois fois avec des cles differentes pour renforcer la securite.

1.3 Modes de chiffrement par blocs

Les modes de chiffrement definissent comment les blocs successifs sont traites :

ModeDescriptionAvantagesInconvenients
ECB (Electronic Codebook)Chaque bloc chiffre independammentSimple, parallelisableMotifs visibles, non securise
CBC (Cipher Block Chaining)Chaque bloc XOR avec le bloc chiffre precedentMasque les motifsSequentiel, erreur propagee
CTR (Counter)Chiffrement d'un compteur, XOR avec le texteParallelisable, pas de paddingCompteur ne doit jamais se repeter
GCM (Galois/Counter Mode)CTR + authentification integreeChiffrement authentifiePlus complexe

1.4 Chiffre de Cesar

Nous avons egalement etudie le chiffre de Cesar, une technique de chiffrement simple ou chaque lettre du texte clair est decalee d'un nombre fixe de positions dans l'alphabet. Bien qu'il ne soit pas securise selon les standards modernes, il a permis de comprendre les bases du chiffrement et du dechiffrement par substitution.

Figure : Principe du chiffre de Cesar - decalage alphabetique



2. Cryptographie asymetrique

La cryptographie asymetrique utilise une paire de cles (publique et privee) pour le chiffrement et le dechiffrement. Elle renforce la securite au prix de performances reduites par rapport au chiffrement symetrique.

Figure : Principe de la cryptographie asymetrique - cle publique / cle privee


2.1 RSA (Rivest-Shamir-Adleman)

RSA est l'algorithme asymetrique le plus repandu. Sa securite repose sur la difficulte de factoriser de grands nombres premiers.

Principe :

  1. Generer deux grands nombres premiers p et q
  2. Calculer n = p * q (module)
  3. Calculer phi(n) = (p-1)(q-1)
  4. Choisir l'exposant public e (generalement 65537)
  5. Calculer l'exposant prive d = e^(-1) mod phi(n)

Chiffrement : C = M^e mod n
Dechiffrement : M = C^d mod n

En laboratoire, nous avons implemente RSA dans le fichier 2/source.py : le script genere deux grands nombres premiers, calcule leur produit (n), et utilise l'exposant public (e) pour chiffrer un message. L'exposant prive (d) dechiffre le texte chiffre.

Attaque par racine cubique : Nous avons egalement explore une attaque sur RSA lorsque l'exposant public (e) est petit (e = 3). Si le texte chiffre (c) est suffisamment petit, on peut retrouver le texte clair en calculant la racine cubique entiere de c. Cette attaque a ete implementee dans 2/attack.py.

Figure : CTF - Flag obtenu apres attaque par racine cubique sur RSA


2.2 ECC (Elliptic Curve Cryptography)

La cryptographie sur courbes elliptiques offre un niveau de securite equivalent a RSA avec des cles beaucoup plus courtes. Une cle ECC de 256 bits equivaut a une cle RSA de 3072 bits. ECC est particulierement adaptee aux objets connectes grace a sa faible empreinte memoire et sa rapidite de calcul.

Avantages pour l'IoT :

  • Cles plus courtes : moins de stockage et de bande passante
  • Calculs plus rapides : moins de consommation energetique
  • Securite equivalente : robustesse cryptographique maintenue

2.3 Diffie-Hellman

L'echange de cles Diffie-Hellman permet a deux parties d'etablir un secret partage sur un canal non securise, sans transmission directe de la cle. Ce protocole est a la base de nombreux protocoles de securite (TLS, IPsec, SSH).

Principe :

  1. Alice et Bob conviennent d'un nombre premier p et d'un generateur g
  2. Alice choisit un secret a, calcule A = g^a mod p, et envoie A
  3. Bob choisit un secret b, calcule B = g^b mod p, et envoie B
  4. Alice calcule la cle partagee : K = B^a mod p
  5. Bob calcule la meme cle : K = A^b mod p

La securite repose sur la difficulte du probleme du logarithme discret.


3. Fonctions de hachage

Les fonctions de hachage prennent une entree de taille arbitraire et produisent une empreinte de taille fixe. Elles sont utilisees pour la verification d'integrite des donnees, le stockage de mots de passe et les signatures numeriques.

Figure : Principe d'une fonction de hachage - empreinte de taille fixe


Proprietes essentielles :

  • Resistance a la pre-image : impossible de retrouver l'entree a partir du hash
  • Resistance aux collisions : impossible de trouver deux entrees differentes produisant le meme hash
  • Effet avalanche : un changement minime en entree modifie radicalement la sortie

3.1 SHA-256

SHA-256 (Secure Hash Algorithm) produit une empreinte de 256 bits (32 octets). C'est l'algorithme de hachage recommande pour la plupart des applications modernes, y compris les certificats numeriques et la blockchain.

3.2 MD5

MD5 produit une empreinte de 128 bits. Bien que tres repandu historiquement, il est considere comme compromis depuis la decouverte de collisions en 2004. Il reste utilise pour la verification rapide d'integrite de fichiers (checksums) mais ne doit plus etre employe pour des applications de securite.

Dans notre laboratoire cryptographique, MD5 a ete utilise pour generer une cle AES de 128 bits a partir d'un mot-cle selectionne aleatoirement. Cela a permis d'illustrer la generation de cles derivees (key derivation) a partir de mots de passe.

3.3 Fonctions de hachage legeres pour IoT

Nous avons etudie les fonctions de hachage legeres specifiees dans la norme ISO/IEC 29192-5:2016, concues pour les dispositifs a ressources limitees :

  • PHOTON : fonction de hachage legere avec des tailles de permutation de 100, 144, 196, 256 et 288 bits, produisant des hash de 80, 128, 160, 224 et 256 bits respectivement.
  • SPONGENT : fonction de hachage legere avec des tailles de permutation de 88, 136, 176, 240 et 272 bits, produisant des hash de 88, 128, 160, 224 et 256 bits respectivement.
  • Lesamnta-LW : fonction de hachage legere avec une taille de permutation de 384 bits, produisant un hash de 256 bits.

4. Certificats numeriques et PKI

4.1 Infrastructure a cles publiques (PKI)

La PKI est un ensemble de roles, politiques et procedures necessaires pour creer, gerer, distribuer, utiliser, stocker et revoquer des certificats numeriques. Elle repose sur une chaine de confiance :

  • Autorite de Certification (CA) : emet et signe les certificats
  • Autorite d'Enregistrement (RA) : verifie l'identite des demandeurs
  • Certificat X.509 : contient la cle publique, l'identite du proprietaire, la signature de la CA, la periode de validite

4.2 Common Name et verification

Dans le contexte de la verification des certificats, le Common Name (CN) est un attribut essentiel. Il fait partie du champ Subject du certificat et represente generalement le nom de domaine ou l'identite du detenteur du certificat. Lors du processus de verification, le CN est compare au nom d'hote ou a l'identite attendue pour s'assurer que le certificat est valide pour le destinataire prevu.

Par exemple, si un certificat est emis pour www.alice.com, le CN doit correspondre a www.alice.com. En cas de non-concordance, le processus de verification echouera, signalant un probleme de securite potentiel. Cette verification aide a prevenir les attaques Man-in-the-Middle en s'assurant que le certificat presente par un serveur correspond a l'identite attendue.


5. Protocoles TLS/SSL

5.1 TLS (Transport Layer Security)

TLS est le protocole de securite le plus deploye pour securiser les communications sur Internet. Il assure la confidentialite, l'integrite et l'authentification des echanges.

Fonctionnement du handshake TLS :

  1. ClientHello : le client envoie les suites cryptographiques supportees
  2. ServerHello : le serveur selectionne une suite et envoie son certificat
  3. Echange de cles : Diffie-Hellman ou RSA pour etablir un secret partage
  4. Derivation de cles : generation des cles de session a partir du secret
  5. Communication chiffree : echanges proteges par chiffrement symetrique (AES-GCM)

5.2 Migration TLS en laboratoire

Lors du Lab 3, nous avons travaille sur la migration TLS en utilisant la bibliotheque mbedTLS. L'objectif etait de securiser les communications entre Alice et Bob en implementant un handshake TLS complet, incluant l'echange de certificats, la verification de la chaine de confiance, et le chiffrement des messages.


6. Securite materielle

La securite materielle traite des vulnerabilites physiques des systemes electroniques. Meme un algorithme mathematiquement sur peut etre compromis par des attaques sur son implementation physique.

6.1 Attaques par canaux auxiliaires (Side-Channel Attacks)

Les attaques par canaux auxiliaires exploitent les fuites d'information physiques lors de l'execution d'algorithmes cryptographiques :

Type d'attaqueCanal exploiteTechnique
Timing AttackTemps d'executionMesure des variations temporelles
Power Analysis (SPA/DPA/CPA)Consommation electriqueCorrelation entre donnees et consommation
EM AnalysisEmissions electromagnetiquesCapture des radiations EM
Cache AttackComportement du cache CPUFlush+Reload, Prime+Probe

Exemple sur AES : Les tables de substitution (S-box) d'AES sont stockees en memoire. L'acces a ces tables depend de la cle et du message. Si une partie de la table est en cache (acces rapide) et une autre non (acces lent), on peut deduire quelle partie a ete accedee et progressivement recuperer la cle.

6.2 Injection de fautes (Fault Injection)

L'injection de fautes provoque volontairement des erreurs lors de l'execution pour obtenir des informations ou contourner des protections :

  • Clock glitching : impulsions sur l'horloge causant des instructions sautees
  • Voltage glitching : variation de la tension d'alimentation causant des erreurs de calcul
  • Laser : faisceau laser focalise modifiant des bits en memoire

6.3 Elements securises (Secure Elements)

Les elements securises sont des composants materiels dedies a la protection des donnees sensibles :

  • TPM (Trusted Platform Module) : puce securisee pour le stockage de cles et l'attestation
  • Secure Enclave : environnement d'execution isole (ARM TrustZone, Intel SGX)
  • HSM (Hardware Security Module) : module materiel haute securite pour la gestion de cles

Ces elements sont essentiels dans l'IoT pour proteger les cles cryptographiques, les identites des dispositifs, et assurer le demarrage securise (Secure Boot).


7. Menaces specifiques a l'IoT - OWASP IoT Top 10

L'OWASP (Open Web Application Security Project) identifie les 10 principales vulnerabilites des objets connectes :

RangVulnerabiliteDescription
1Mots de passe faiblesIdentifiants par defaut, non modifies
2Services reseau non securisesPorts ouverts, services inutiles exposes
3Interfaces ecosysteme non securiseesAPI, cloud, interfaces web vulnerables
4Absence de mecanisme de mise a jourPas de firmware OTA securise
5Composants non securises ou obsoletesBibliotheques vulnerables
6Protection insuffisante de la vie priveeCollecte excessive de donnees
7Transfert et stockage de donnees non securisesDonnees en clair
8Manque de gestion des dispositifsInventaire, monitoring insuffisants
9Parametres par defaut non securisesConfigurations usine dangereuses
10Manque de durcissement physiqueAcces physique non protege

8. Methodologie d'analyse de risques EBIOS

EBIOS (Expression des Besoins et Identification des Objectifs de Securite) est la methode francaise de reference pour l'analyse de risques en securite de l'information, developpee par l'ANSSI.

Les 5 ateliers EBIOS Risk Manager :

  1. Cadrage et socle de securite : identifier les missions, les valeurs metier, et le perimetre
  2. Sources de risque : identifier les sources de menace et leurs objectifs vises
  3. Scenarios strategiques : elaborer les chemins d'attaque de haut niveau
  4. Scenarios operationnels : detailler les modes operatoires techniques
  5. Traitement du risque : definir les mesures de securite et le plan d'action

Cette methodologie est particulierement pertinente pour les systemes IoT ou les surfaces d'attaque sont multiples (reseau, physique, cloud, firmware).


9. Confidentialite, integrite et authenticite

Les trois piliers fondamentaux de la securite de l'information (triade CIA) :

  • Confidentialite : garantir que l'information n'est accessible qu'aux personnes autorisees. Assuree par le chiffrement (AES, RSA, TLS).
  • Integrite : garantir que l'information est exacte et n'a pas ete alteree. Assuree par les fonctions de hachage (SHA-256) et les MAC (Message Authentication Code).
  • Authenticite : verifier l'identite des parties impliquees dans la communication. Assuree par les signatures numeriques et les certificats (PKI).

10. Travaux pratiques - Labs de securite

10.1 Injection SQL (Lab 1)

J'ai etudie les attaques par injection SQL et comment elles peuvent etre utilisees pour extraire des informations d'une base de donnees. Par exemple, en entrant admin' OR 1=1 OR '1'='1 dans le champ d'authentification et un mot de passe arbitraire comme vhjvg, un attaquant peut contourner le mecanisme d'authentification. La requete SQL devient toujours vraie, permettant un acces non autorise aux donnees sensibles. Comprendre cette vulnerabilite m'a aide a implementer des mesures de prevention dans les systemes IoT.

Figure : Demonstration d'une attaque par injection SQL - contournement de l'authentification


Mesures de prevention :

  • Utilisation de requetes parametrees (prepared statements)
  • Validation et assainissement des entrees utilisateur
  • Principe du moindre privilege pour les comptes de base de donnees
  • Utilisation d'un ORM (Object-Relational Mapping)

10.2 Cross-Site Scripting - XSS (Lab 1)

Nous avons explore les attaques XSS, qui impliquent l'injection de scripts malveillants dans les pages web consultees par d'autres utilisateurs. Cela peut mener au vol de donnees, au detournement de session, et a d'autres activites malveillantes.

Par exemple, nous avons execute du code JavaScript dans le champ de nom d'utilisateur en entrant <script>alert('Bonjour');</script> ou <script>document.write("<img src='xxxx'/>");</script>. Cela a demontre comment un attaquant pourrait injecter des scripts pour manipuler la page web ou voler des informations. Les repercussions de telles attaques peuvent etre severes : acces non autorise aux donnees utilisateur et propagation de malwares.

10.3 Attaque Man-in-the-Middle - MITM (Lab 3)

J'ai etudie les attaques Man-in-the-Middle, ou un attaquant intercepte et altere potentiellement la communication entre deux parties sans leur connaissance. Ce type d'attaque peut mener a des violations de donnees et a un acces non autorise a des informations sensibles.

Figure : Schema d'une attaque Man-in-the-Middle - interception des communications


Dans le fichier attaquant, nous avons implemente une attaque MITM simple en utilisant la bibliotheque mbedTLS. L'attaquant intercepte et modifie les messages entre Alice et Bob. L'attaquant lit le message de Bob, l'altere, puis envoie le message modifie a Alice. Cela demontre comment un attaquant peut manipuler la communication entre deux parties, soulignant l'importance de securiser les communications.

Figure : Terminal Lab3 - Interception et modification de messages par l'attaquant


Lors du Lab 3, nous avons travaille sur un scenario ou Alice envoie un certificat a Bob. Bob recoit le certificat et le verifie. Simultanement, un hacker intercepte et imprime la cle. Bob envoie ensuite un message a Alice, mais le hacker intercepte le message, l'altere, et envoie le message modifie a Alice.

Figure : Lab3 - Scenario d'interception de certificat et de cle


Correction :

Figure : Lab3 - Correction et verification du Common Name


10.4 Migration TLS (Lab 3)

La migration TLS consistait a securiser les communications en implementant le protocole TLS complet avec mbedTLS. L'objectif etait de passer d'une communication en clair a une communication chiffree et authentifiee, en integrant :

  • L'echange de certificats X.509
  • La verification de la chaine de confiance
  • Le chiffrement des messages avec AES-GCM
  • La protection contre les attaques de rejeu (replay attacks)

10.5 Challenges CTF cryptographiques (Lab 4)

Chiffrement AES - CTF

Dans le fichier 1/source.py, nous avons implemente le chiffrement et le dechiffrement AES en utilisant la bibliotheque pycryptodome :

Figure : CTF - Flags obtenus apres dechiffrement AES par brute force sur dictionnaire


Le processus du challenge :

  1. Selection du mot-cle : le script lit une liste de mots depuis un fichier words et en selectionne un aleatoirement
  2. Generation de la cle : le mot-cle selectionne est hache avec MD5 pour generer une cle AES de 128 bits
  3. Chiffrement du flag : le flag predefini est complete (padding) a un multiple de la taille de bloc AES (16 octets) et chiffre en mode ECB
  4. Dechiffrement du flag : le flag chiffre est dechiffre avec la meme cle pour valider le processus
Chiffrement RSA - CTF

Figure : CTF - Flag obtenu apres exploitation de la vulnerabilite RSA



11. Lab Quantique

11.1 Protocole NEC

Nous avons etabli une communication entre deux cartes en utilisant le protocole NEC, couramment utilise dans les telecommandes. L'emetteur encode les messages en format NEC et les envoie via des impulsions infrarouges. Le recepteur decode ces signaux pour retrouver le message original.

Exemple :

  • Emetteur : encode "A" en format NEC et l'envoie
  • Recepteur : decode le signal infrarouge pour retrouver "A"

Cet exercice a demontre l'importance de la precision du timing et de la fiabilite dans la communication infrarouge.

Donnees du signal pour "A" :

  • Format NEC : le protocole NEC utilise une trame de 32 bits. Pour le caractere "A", les donnees du signal sont encodees comme suit :
    • Adresse : 0x8D
    • Adresse inverse : 0x72
    • Commande : 0x45 (code ASCII pour "A")
    • Commande inverse : 0x4E

La trame complete de 32 bits pour "A" est : 0x8D72454E.

Figure : Protocole NEC - Structure de la trame infrarouge


11.2 Distribution quantique de cles (QKD)

Apres avoir realise le test classique sur /dev/tty1CM0, nous avons procede au test quantique sur /dev/ttyACM1. Nous avons d'abord effectue une calibration en reglant l'angle a 0, la resolution de balayage a 1, l'offset a 0, et la polarisation a 0. Nous avons ensuite converti le signal de luminosite en tension en balayant et mesurant l'intensite apres le polariseur lineaire lors d'une rotation complete de 360 degres. Suite a la calibration, nous avons execute un script Python pour automatiser la distribution de cles et generer une cle de 32 kbit.

Figure : Distribution quantique de cles - Montage experimental et generation de cle


De plus, nous avons introduit un prisme dans le montage, permettant aux signaux lumineux de Bob, Alice et Eve de le traverser. Cela a ete realise pour faciliter le partage de la cle avec un autre utilisateur. Le prisme a aide a diviser les signaux lumineux, assurant que la distribution de la cle puisse etre partagee de maniere securisee avec le nouvel utilisateur sans compromettre l'integrite de la communication originale.

Figure : Montage avec prisme - Partage de cle quantique multi-utilisateurs



PART D : ANALYSE ET REFLEXION

Competences acquises

Maitrise de la cryptographie :
Capacite a comprendre, implementer et evaluer les algorithmes cryptographiques (AES, RSA, ECC, fonctions de hachage) et a choisir les solutions adaptees aux contraintes IoT.

Securisation des communications :
Aptitude a mettre en oeuvre les protocoles TLS/SSL, a gerer les certificats numeriques via une PKI, et a securiser les echanges entre dispositifs IoT.

Analyse de vulnerabilites :
Competence en identification et exploitation de failles de securite (injection SQL, XSS, MITM) pour mieux concevoir des contre-mesures.

Securite materielle :
Comprehension des attaques par canaux auxiliaires, de l'injection de fautes, et des elements securises pour la protection physique des dispositifs.

Analyse de risques :
Capacite a conduire une analyse de risques methodique (EBIOS) adaptee aux systemes IoT.

Vision globale :
Integration de la securite dans l'ensemble du cycle de vie d'un systeme IoT, de la conception au deploiement.

Points cles a retenir

1. La securite est multicouche :
La protection d'un systeme IoT necessite des mesures a tous les niveaux : physique, reseau, applicatif, et organisationnel. Une approche de defense en profondeur est indispensable.

2. La cryptographie est necessaire mais pas suffisante :
Un algorithme mathematiquement sur peut etre vulnerable si son implementation fuit des informations (canaux auxiliaires). La securite depend de la qualite de l'implementation autant que de l'algorithme.

3. L'IoT amplifie les risques :
Le nombre massif de dispositifs, les contraintes de ressources, et les mises a jour difficiles rendent la securite IoT particulierement complexe.

4. La pratique est essentielle :
Les labs CTF, les attaques MITM, et les injections SQL m'ont permis de passer de la theorie a la pratique, renforant ma comprehension operationnelle.

5. Le quantique est l'avenir :
L'experimentation QKD a ouvert une perspective fascinante sur la cryptographie post-quantique et la distribution securisee de cles.

Retour d'experience

J'avais deja un premier apercu de la plupart de ces concepts, mais ce cours a fourni une perspective plus avancee et technique. Nous avons approfondi le codage en C avec mbedTLS et teste des attaques par injection SQL. Ce dernier point a ete un peu difficile pour moi puisque je n'avais jamais utilise SQL auparavant, et j'ai du apprendre rapidement pour etre efficace.

Par ailleurs, de nombreux concepts expliques en cours n'ont pas ete pratiques. J'ai le sentiment de ne pas etre totalement a jour partout car certains sujets restaient purement theoriques. Les explications du professeur pendant les cours etaient un plus pour moi car elles etaient claires, et je voulais etre operationnel sur ces concepts.

De plus, travailler seul pendant les sessions de laboratoire m'a pousse a travailler plus intensement pour comprendre tous les concepts en profondeur.

Mon avis

Ce cours a ete tres interessant et stimulant. J'ai beaucoup appris sur les vulnerabilites de securite et comment les prevenir. Dans ma future carriere, je suis interesse par le domaine de la securite, ce qui signifie que je dois rester informe des dernieres menaces. J'ai vraiment apprecie les travaux pratiques qui m'ont permis d'appliquer les concepts appris en cours, et je suis un peu decu que nous n'ayons pas eu plus de temps pour explorer d'autres concepts de securite.

A la fin du semestre, nous avons eu un lab quantique qui etait vraiment passionnant. Malheureusement, nous etions la "classe test" car personne ne l'avait fait auparavant. Meme si nous avons rencontre quelques problemes pour le finaliser, travailler en partenariat avec les enseignants a ete une excellente experience. J'espere decouvrir davantage le quantique a l'avenir car c'est un domaine fascinant.

Perspectives professionnelles

Pour ingenieur en securite IoT :

  • Audit de securite de systemes connectes
  • Conception de produits IoT securises (secure by design)
  • Tests de penetration et red teaming sur les systemes embarques

Pour developpeur embarque :

  • Implementation correcte des algorithmes cryptographiques
  • Integration de TLS/SSL dans les communications IoT
  • Utilisation d'elements securises (TPM, Secure Enclave)

Lien avec le Projet Innovant :
Les competences acquises dans ce cours ont ete directement appliquees dans notre Projet Innovant (What a Leak), ou nous avons implemente le chiffrement AES avec vecteur d'initialisation et padding PKCS#7 pour securiser les communications de notre systeme IoT de detection de fuites d'eau.


Rapports et Projets

Rapport de Laboratoire - Lab 1 (Injection SQL, XSS)

Ouvrir le rapport complet - Lab 1


Cours suivi en 2024-2025 a l'INSA Toulouse, Departement Genie Electrique et Informatique, Semestre 9.

Related courses:


Security for Connected Objects - Semester 9

Academic year: 2024-2025
Semester: S9
Instructors: E. Alata, V. Migliore
Category: IoT Security and Cryptography


PART A: GENERAL PRESENTATION

Overview

The "Security for Connected Objects" course taught by E. Alata and V. Migliore is an essential pillar of my training in connected systems security. This module comprehensively covers the security mechanisms required for IoT devices: symmetric and asymmetric cryptography, hash functions, TLS/SSL protocols, digital certificates and Public Key Infrastructure (PKI), hardware security, IoT-specific threats, and the EBIOS risk analysis methodology.

The course combines in-depth theory with intensive hands-on practice through concrete laboratory work: CTF (Capture The Flag) challenges, SQL injection attacks, Man-in-the-Middle (MITM) attacks, TLS migration, and quantum experimentation. This approach allowed me to develop an operational understanding of connected object security.

Learning objectives:

  • Understand the foundations of modern cryptography (symmetric, asymmetric, hashing)
  • Master security protocols for IoT communications (TLS/SSL, PKI)
  • Identify security weaknesses in an IoT architecture (OWASP IoT Top 10)
  • Assess the impact of exploiting a security vulnerability
  • Propose adequate security countermeasures
  • Conduct a risk analysis using the EBIOS methodology
  • Understand hardware security: side-channel attacks, fault injection, secure elements

Position in the curriculum

This module is part of a pedagogical continuity:

  • Hardware Security (S7): side-channel attacks, buffer overflow, power analysis
  • Microcontrollers and Hardware (S9): embedded systems, FPGA, hardware architecture
  • Middleware for IoT (S9): secure communication protocols (MQTT, TLS)
  • Emerging Network Technologies (S9): SDN/NFV network security

It directly prepares for:

  • Innovative Project (S9): AES implementation and securing a complete IoT system
  • Cybersecurity career: security auditing, pentesting, secure design
  • Research: post-quantum cryptography, advanced hardware security

PART B: EXPERIENCE AND CONTEXT

Organization and resources

The module was structured around lectures and intensive lab sessions:

Lectures:

  • Symmetric cryptography (AES, DES, block cipher modes)
  • Asymmetric cryptography (RSA, ECC, Diffie-Hellman)
  • Hash functions (SHA-256, MD5, lightweight functions for IoT)
  • Digital certificates and PKI (Public Key Infrastructure)
  • TLS/SSL protocols and communication security
  • Hardware security (side-channel attacks, fault injection)
  • IoT-specific threats (OWASP IoT Top 10)
  • EBIOS risk analysis methodology

Lab sessions:

  • Lab 1: SQL Injection and Cross-Site Scripting (XSS)
  • Lab 2: Symmetric and asymmetric encryption (AES, RSA)
  • Lab 3: Man-in-the-Middle attack, TLS migration, certificates
  • Lab 4: Cryptographic CTF challenges (flags)
  • Quantum Lab: Quantum Key Distribution (QKD), NEC protocol

Resources:

  • Course materials: cryptography.pdf, Hardware-Security.pdf, ebios.pdf
  • Tools: mbedTLS, pycryptodome, OpenSSL
  • Reports: Lab1 Report (SQL injection, XSS)

Environment and context

During this module, I worked on both the theoretical and practical aspects of IoT security. The relevance of securing IoT devices in today's interconnected world is obvious: every connected object represents a potential attack surface. The hands-on labs allowed me to apply the concepts learned in lectures to realistic scenarios, moving from cryptographic theory to the concrete exploitation of vulnerabilities.

My role

In this course, I was responsible for:

  • Understanding and implementing various security protocols and cryptographic techniques
  • Implementing security measures for IoT devices
  • Conducting experiments to identify and mitigate security vulnerabilities
  • Analyzing and preventing Man-in-the-Middle (MITM) attacks on IoT communication protocols
  • Completing CTF challenges to test my cryptanalysis skills
  • Working with Quantum Key Distribution (QKD) to explore post-quantum security

PART C: TECHNICAL ASPECTS

This section explores in detail the technical aspects of connected object security, covering cryptography, security protocols, hardware security, IoT threats, and the lab work carried out.


1. Symmetric cryptography

Symmetric cryptography uses the same key for both encryption and decryption. It is fast and efficient for encrypting large volumes of data, but requires a secure channel for key distribution.

1.1 AES (Advanced Encryption Standard)

AES has been the worldwide symmetric encryption standard since 2001. It encrypts data in 128-bit blocks with keys of 128, 192, or 256 bits.

The AES algorithm consists of multiple processing rounds, each involving four main operations:

  1. AddRoundKey: each byte of the state is combined with a block of the round subkey via bitwise XOR. This step is crucial as it introduces the key into the encryption process.
  2. SubBytes: a non-linear substitution step where each byte of the state is replaced by another via an S-box (substitution box). The S-box is designed to resist linear and differential cryptanalysis.
  3. ShiftRows: the rows of the state are cyclically shifted to the left. The shift depends on the row index. This step ensures diffusion of the plaintext.
  4. MixColumns: a mixing operation operating on the state columns, combining the four bytes of each column. This step provides additional diffusion.

Figure: AES algorithm steps - SubBytes, ShiftRows, MixColumns, AddRoundKey


Number of rounds based on key size:

Key sizeNumber of roundsTypical applications
128 bits10 roundsGeneral use, Wi-Fi (WPA2)
192 bits12 roundsSensitive data
256 bits14 roundsClassified data, military

In our Innovative Project (What a Leak), we implemented the AES algorithm with additional concepts: initialization vector (IV), padding, and PKCS#7.

1.2 DES (Data Encryption Standard)

DES, the predecessor of AES, uses 64-bit blocks and a 56-bit key. Although obsolete today due to its small key size (vulnerable to brute force), it remains important for understanding the evolution of symmetric cryptography. Triple-DES (3DES) applies DES three times with different keys to strengthen security.

1.3 Block cipher modes

Cipher modes define how successive blocks are processed:

ModeDescriptionAdvantagesDisadvantages
ECB (Electronic Codebook)Each block encrypted independentlySimple, parallelizableVisible patterns, insecure
CBC (Cipher Block Chaining)Each block XORed with previous ciphertext blockMasks patternsSequential, error propagation
CTR (Counter)Counter encryption, XOR with textParallelizable, no paddingCounter must never repeat
GCM (Galois/Counter Mode)CTR + built-in authenticationAuthenticated encryptionMore complex

1.4 Caesar cipher

We also studied the Caesar cipher, a simple encryption technique where each letter of the plaintext is shifted by a fixed number of positions in the alphabet. Although it is not secure by modern standards, it helped understand the basics of substitution encryption and decryption.

Figure: Caesar cipher principle - alphabetical shift



2. Asymmetric cryptography

Asymmetric cryptography uses a key pair (public and private) for encryption and decryption. It enhances security at the cost of reduced performance compared to symmetric encryption.

Figure: Asymmetric cryptography principle - public key / private key


2.1 RSA (Rivest-Shamir-Adleman)

RSA is the most widely used asymmetric algorithm. Its security relies on the difficulty of factoring large prime numbers.

Principle:

  1. Generate two large prime numbers p and q
  2. Compute n = p * q (modulus)
  3. Compute phi(n) = (p-1)(q-1)
  4. Choose the public exponent e (typically 65537)
  5. Compute the private exponent d = e^(-1) mod phi(n)

Encryption: C = M^e mod n
Decryption: M = C^d mod n

In the lab, we implemented RSA in the 2/source.py file: the script generates two large prime numbers, computes their product (n), and uses the public exponent (e) to encrypt a message. The private exponent (d) decrypts the ciphertext.

Cube root attack: We also explored an attack on RSA when the public exponent (e) is small (e = 3). If the ciphertext (c) is small enough, the plaintext can be recovered by computing the integer cube root of c. This attack was implemented in 2/attack.py.

Figure: CTF - Flag obtained after cube root attack on RSA


2.2 ECC (Elliptic Curve Cryptography)

Elliptic curve cryptography provides a security level equivalent to RSA with much shorter keys. A 256-bit ECC key is equivalent to a 3072-bit RSA key. ECC is particularly well-suited for connected objects due to its low memory footprint and fast computation.

Advantages for IoT:

  • Shorter keys: less storage and bandwidth
  • Faster computations: less energy consumption
  • Equivalent security: cryptographic robustness maintained

2.3 Diffie-Hellman

The Diffie-Hellman key exchange allows two parties to establish a shared secret over an insecure channel, without direct key transmission. This protocol is the foundation of many security protocols (TLS, IPsec, SSH).

Principle:

  1. Alice and Bob agree on a prime number p and a generator g
  2. Alice chooses a secret a, computes A = g^a mod p, and sends A
  3. Bob chooses a secret b, computes B = g^b mod p, and sends B
  4. Alice computes the shared key: K = B^a mod p
  5. Bob computes the same key: K = A^b mod p

Security relies on the difficulty of the discrete logarithm problem.


3. Hash functions

Hash functions take an input of arbitrary size and produce a fixed-size digest. They are used for data integrity verification, password storage, and digital signatures.

Figure: Hash function principle - fixed-size digest


Essential properties:

  • Pre-image resistance: impossible to recover the input from the hash
  • Collision resistance: impossible to find two different inputs producing the same hash
  • Avalanche effect: a minimal change in input drastically changes the output

3.1 SHA-256

SHA-256 (Secure Hash Algorithm) produces a 256-bit (32-byte) digest. It is the recommended hashing algorithm for most modern applications, including digital certificates and blockchain.

3.2 MD5

MD5 produces a 128-bit digest. Although historically widespread, it has been considered compromised since the discovery of collisions in 2004. It is still used for quick file integrity verification (checksums) but should no longer be used for security applications.

In our cryptographic lab, MD5 was used to generate a 128-bit AES key from a randomly selected keyword. This illustrated key derivation from passwords.

3.3 Lightweight hash functions for IoT

We studied lightweight hash functions specified in the ISO/IEC 29192-5:2016 standard, designed for resource-constrained devices:

  • PHOTON: lightweight hash function with permutation sizes of 100, 144, 196, 256 and 288 bits, producing hashes of 80, 128, 160, 224 and 256 bits respectively.
  • SPONGENT: lightweight hash function with permutation sizes of 88, 136, 176, 240 and 272 bits, producing hashes of 88, 128, 160, 224 and 256 bits respectively.
  • Lesamnta-LW: lightweight hash function with a permutation size of 384 bits, producing a 256-bit hash.

4. Digital certificates and PKI

4.1 Public Key Infrastructure (PKI)

PKI is a set of roles, policies, and procedures needed to create, manage, distribute, use, store, and revoke digital certificates. It relies on a chain of trust:

  • Certificate Authority (CA): issues and signs certificates
  • Registration Authority (RA): verifies the identity of applicants
  • X.509 Certificate: contains the public key, the owner's identity, the CA signature, and the validity period

4.2 Common Name and verification

In the context of certificate verification, the Common Name (CN) is an essential attribute. It is part of the Subject field of the certificate and typically represents the domain name or the identity of the certificate holder. During the verification process, the CN is compared to the expected hostname or identity to ensure the certificate is valid for the intended recipient.

For example, if a certificate is issued for www.alice.com, the CN must match www.alice.com. In case of a mismatch, the verification process will fail, signaling a potential security issue. This verification helps prevent Man-in-the-Middle attacks by ensuring that the certificate presented by a server matches the expected identity.


5. TLS/SSL protocols

5.1 TLS (Transport Layer Security)

TLS is the most widely deployed security protocol for securing Internet communications. It ensures confidentiality, integrity, and authentication of exchanges.

TLS handshake process:

  1. ClientHello: the client sends supported cipher suites
  2. ServerHello: the server selects a suite and sends its certificate
  3. Key exchange: Diffie-Hellman or RSA to establish a shared secret
  4. Key derivation: generation of session keys from the secret
  5. Encrypted communication: exchanges protected by symmetric encryption (AES-GCM)

5.2 TLS migration in the lab

During Lab 3, we worked on TLS migration using the mbedTLS library. The objective was to secure communications between Alice and Bob by implementing a full TLS handshake, including certificate exchange, chain of trust verification, and message encryption.


6. Hardware security

Hardware security addresses the physical vulnerabilities of electronic systems. Even a mathematically secure algorithm can be compromised through attacks on its physical implementation.

6.1 Side-Channel Attacks

Side-channel attacks exploit physical information leaks during the execution of cryptographic algorithms:

Attack typeExploited channelTechnique
Timing AttackExecution timeMeasuring temporal variations
Power Analysis (SPA/DPA/CPA)Power consumptionCorrelation between data and consumption
EM AnalysisElectromagnetic emissionsCapturing EM radiations
Cache AttackCPU cache behaviorFlush+Reload, Prime+Probe

Example with AES: The AES substitution tables (S-box) are stored in memory. Access to these tables depends on the key and the message. If part of the table is in cache (fast access) and another part is not (slow access), one can infer which part was accessed and progressively recover the key.

6.2 Fault Injection

Fault injection deliberately causes errors during execution to obtain information or bypass protections:

  • Clock glitching: clock pulses causing skipped instructions
  • Voltage glitching: supply voltage variation causing computation errors
  • Laser: focused laser beam modifying bits in memory

6.3 Secure Elements

Secure elements are hardware components dedicated to protecting sensitive data:

  • TPM (Trusted Platform Module): secure chip for key storage and attestation
  • Secure Enclave: isolated execution environment (ARM TrustZone, Intel SGX)
  • HSM (Hardware Security Module): high-security hardware module for key management

These elements are essential in IoT to protect cryptographic keys, device identities, and ensure secure boot.


7. IoT-specific threats - OWASP IoT Top 10

OWASP (Open Web Application Security Project) identifies the top 10 vulnerabilities of connected objects:

RankVulnerabilityDescription
1Weak passwordsDefault credentials, unchanged
2Insecure network servicesOpen ports, unnecessary exposed services
3Insecure ecosystem interfacesVulnerable APIs, cloud, web interfaces
4Lack of update mechanismNo secure firmware OTA
5Insecure or outdated componentsVulnerable libraries
6Insufficient privacy protectionExcessive data collection
7Insecure data transfer and storageData in cleartext
8Lack of device managementInsufficient inventory, monitoring
9Insecure default settingsDangerous factory configurations
10Lack of physical hardeningUnprotected physical access

8. EBIOS risk analysis methodology

EBIOS (Expression des Besoins et Identification des Objectifs de Securite / Expression of Needs and Identification of Security Objectives) is the French reference method for information security risk analysis, developed by ANSSI.

The 5 EBIOS Risk Manager workshops:

  1. Scoping and security baseline: identify missions, business values, and perimeter
  2. Risk sources: identify threat sources and their targeted objectives
  3. Strategic scenarios: develop high-level attack paths
  4. Operational scenarios: detail technical modes of operation
  5. Risk treatment: define security measures and action plan

This methodology is particularly relevant for IoT systems where attack surfaces are multiple (network, physical, cloud, firmware).


9. Confidentiality, integrity, and authenticity

The three fundamental pillars of information security (CIA triad):

  • Confidentiality: ensuring that information is accessible only to authorized persons. Provided by encryption (AES, RSA, TLS).
  • Integrity: ensuring that information is accurate and has not been altered. Provided by hash functions (SHA-256) and MACs (Message Authentication Code).
  • Authenticity: verifying the identity of the parties involved in the communication. Provided by digital signatures and certificates (PKI).

10. Lab sessions - Security labs

10.1 SQL Injection (Lab 1)

I studied SQL injection attacks and how they can be used to extract information from a database. For example, by entering admin' OR 1=1 OR '1'='1 in the authentication field and an arbitrary password such as vhjvg, an attacker can bypass the authentication mechanism. The SQL query always evaluates to true, allowing unauthorized access to sensitive data. Understanding this vulnerability helped me implement prevention measures in IoT systems.

Figure: SQL injection attack demonstration - authentication bypass


Prevention measures:

  • Using parameterized queries (prepared statements)
  • Validating and sanitizing user input
  • Principle of least privilege for database accounts
  • Using an ORM (Object-Relational Mapping)

10.2 Cross-Site Scripting - XSS (Lab 1)

We explored XSS attacks, which involve injecting malicious scripts into web pages viewed by other users. This can lead to data theft, session hijacking, and other malicious activities.

For example, we executed JavaScript code in the username field by entering <script>alert('Hello');</script> or <script>document.write("<img src='xxxx'/>");</script>. This demonstrated how an attacker could inject scripts to manipulate the web page or steal information. The repercussions of such attacks can be severe: unauthorized access to user data and malware propagation.

10.3 Man-in-the-Middle Attack - MITM (Lab 3)

I studied Man-in-the-Middle attacks, where an attacker intercepts and potentially alters communication between two parties without their knowledge. This type of attack can lead to data breaches and unauthorized access to sensitive information.

Figure: Man-in-the-Middle attack diagram - communication interception


In the attacker file, we implemented a simple MITM attack using the mbedTLS library. The attacker intercepts and modifies messages between Alice and Bob. The attacker reads Bob's message, alters it, then sends the modified message to Alice. This demonstrates how an attacker can manipulate communication between two parties, highlighting the importance of securing communications.

Figure: Lab3 Terminal - Message interception and modification by the attacker


During Lab 3, we worked on a scenario where Alice sends a certificate to Bob. Bob receives the certificate and verifies it. Simultaneously, a hacker intercepts and prints the key. Bob then sends a message to Alice, but the hacker intercepts the message, alters it, and sends the modified message to Alice.

Figure: Lab3 - Certificate and key interception scenario


Fix:

Figure: Lab3 - Fix and Common Name verification


10.4 TLS Migration (Lab 3)

The TLS migration consisted of securing communications by implementing the full TLS protocol with mbedTLS. The objective was to transition from cleartext communication to encrypted and authenticated communication, integrating:

  • X.509 certificate exchange
  • Chain of trust verification
  • Message encryption with AES-GCM
  • Protection against replay attacks

10.5 Cryptographic CTF challenges (Lab 4)

AES Encryption - CTF

In the 1/source.py file, we implemented AES encryption and decryption using the pycryptodome library:

Figure: CTF - Flags obtained after AES decryption via dictionary brute force


The challenge process:

  1. Keyword selection: the script reads a word list from a words file and randomly selects one
  2. Key generation: the selected keyword is hashed with MD5 to generate a 128-bit AES key
  3. Flag encryption: the predefined flag is padded to a multiple of the AES block size (16 bytes) and encrypted in ECB mode
  4. Flag decryption: the encrypted flag is decrypted with the same key to validate the process
RSA Encryption - CTF

Figure: CTF - Flag obtained after exploiting the RSA vulnerability



11. Quantum Lab

11.1 NEC Protocol

We established communication between two boards using the NEC protocol, commonly used in remote controls. The transmitter encodes messages in NEC format and sends them via infrared pulses. The receiver decodes these signals to recover the original message.

Example:

  • Transmitter: encodes "A" in NEC format and sends it
  • Receiver: decodes the infrared signal to recover "A"

This exercise demonstrated the importance of timing precision and reliability in infrared communication.

Signal data for "A":

  • NEC format: the NEC protocol uses a 32-bit frame. For the character "A", the signal data is encoded as follows:
    • Address: 0x8D
    • Inverse address: 0x72
    • Command: 0x45 (ASCII code for "A")
    • Inverse command: 0x4E

The complete 32-bit frame for "A" is: 0x8D72454E.

Figure: NEC Protocol - Infrared frame structure


11.2 Quantum Key Distribution (QKD)

After performing the classical test on /dev/tty1CM0, we proceeded to the quantum test on /dev/ttyACM1. We first performed a calibration by setting the angle to 0, the scan resolution to 1, the offset to 0, and the polarization to 0. We then converted the brightness signal to voltage by sweeping and measuring the intensity after the linear polarizer during a full 360-degree rotation. Following calibration, we ran a Python script to automate the key distribution and generate a 32 kbit key.

Figure: Quantum key distribution - Experimental setup and key generation


Additionally, we introduced a prism into the setup, allowing the light signals from Bob, Alice, and Eve to pass through it. This was done to facilitate key sharing with another user. The prism helped split the light signals, ensuring that the key distribution could be securely shared with the new user without compromising the integrity of the original communication.

Figure: Prism setup - Multi-user quantum key sharing



PART D: ANALYSIS AND REFLECTION

Skills acquired

Cryptography mastery:
Ability to understand, implement, and evaluate cryptographic algorithms (AES, RSA, ECC, hash functions) and to choose solutions adapted to IoT constraints.

Communication security:
Ability to implement TLS/SSL protocols, manage digital certificates via PKI, and secure exchanges between IoT devices.

Vulnerability analysis:
Competency in identifying and exploiting security flaws (SQL injection, XSS, MITM) to better design countermeasures.

Hardware security:
Understanding of side-channel attacks, fault injection, and secure elements for physical device protection.

Risk analysis:
Ability to conduct a methodical risk analysis (EBIOS) adapted to IoT systems.

Global vision:
Integration of security throughout the entire lifecycle of an IoT system, from design to deployment.

Key takeaways

1. Security is multi-layered:
Protecting an IoT system requires measures at all levels: physical, network, application, and organizational. A defense-in-depth approach is essential.

2. Cryptography is necessary but not sufficient:
A mathematically secure algorithm can be vulnerable if its implementation leaks information (side channels). Security depends on the quality of the implementation as much as on the algorithm.

3. IoT amplifies risks:
The massive number of devices, resource constraints, and difficult updates make IoT security particularly complex.

4. Practice is essential:
CTF labs, MITM attacks, and SQL injections allowed me to move from theory to practice, strengthening my operational understanding.

5. Quantum is the future:
The QKD experimentation opened a fascinating perspective on post-quantum cryptography and secure key distribution.

Feedback

I already had a preliminary overview of most of these concepts, but this course provided a more advanced and technical perspective. We deepened our C coding with mbedTLS and tested SQL injection attacks. The latter was a bit challenging for me since I had never used SQL before, and I had to learn quickly to be effective.

Furthermore, many concepts explained in lectures were not practiced. I feel that I am not fully up to date on everything because some topics remained purely theoretical. The professor's explanations during lectures were a plus for me as they were clear, and I wanted to be operational on these concepts.

Additionally, working alone during the lab sessions pushed me to work more intensely to understand all the concepts in depth.

My opinion

This course was very interesting and stimulating. I learned a lot about security vulnerabilities and how to prevent them. In my future career, I am interested in the field of security, which means I need to stay informed about the latest threats. I really appreciated the lab work that allowed me to apply the concepts learned in class, and I am a bit disappointed that we did not have more time to explore other security concepts.

At the end of the semester, we had a quantum lab that was truly exciting. Unfortunately, we were the "test class" since nobody had done it before. Even though we encountered some issues finalizing it, working in partnership with the instructors was an excellent experience. I hope to discover more about quantum computing in the future as it is a fascinating field.

Professional perspectives

For IoT security engineer:

  • Security auditing of connected systems
  • Design of secure IoT products (secure by design)
  • Penetration testing and red teaming on embedded systems

For embedded developer:

  • Correct implementation of cryptographic algorithms
  • Integration of TLS/SSL in IoT communications
  • Use of secure elements (TPM, Secure Enclave)

Link with the Innovative Project:
The skills acquired in this course were directly applied in our Innovative Project (What a Leak), where we implemented AES encryption with initialization vector and PKCS#7 padding to secure the communications of our IoT water leak detection system.


Reports and Projects

Laboratory Report - Lab 1 (SQL Injection, XSS)

Open the full report - Lab 1


Course taken in 2024-2025 at INSA Toulouse, Department of Electrical and Computer Engineering, Semester 9.