Module 21 — Défense & Évaluation

Cryptography

La cryptographie est l'art de protéger l'information en la rendant illisible pour quiconque ne possède pas la clé. Découvre les algorithmes, les protocoles et les applications qui sécurisent le monde numérique.

  • Comprendre les principes fondamentaux de la cryptographie
  • Différencier chiffrement symétrique et asymétrique
  • Connaître les fonctions de hashing et leurs usages
  • Comprendre la PKI et les certificats numériques
  • Identifier les applications concrètes de la cryptographie

🔐 21.1 — Introduction à la cryptographie

La cryptographie (du grec kryptos = caché, graphein = écrire) est la science qui protège les informations en les transformant en un format illisible. Seules les personnes possédant la bonne clé peuvent les déchiffrer.

Imagine un coffre-fort. Tu mets tes documents importants à l'intérieur et tu le verrouilles avec une clé. Même si quelqu'un vole le coffre, il ne peut pas lire les documents sans la clé. La cryptographie fait exactement la même chose avec les données numériques.

Un peu d'histoire

Jules César utilisait un système de substitution simple : chaque lettre du message était décalée d'un nombre fixe dans l'alphabet. Par exemple, avec un décalage de 3 :

OriginalChiffré
A B C D ED E F G H
HELLOKHOOR

Simple mais efficace à l'époque ! Aujourd'hui, ce chiffrement se casse en secondes par brute force (seulement 26 possibilités).

L'Allemagne nazie utilisait la machine Enigma pour chiffrer ses communications militaires. Chaque lettre passait par plusieurs rotors qui changeaient de position après chaque frappe, créant un chiffrement polyalphabétique extrêmement complexe.

Le décryptage par Alan Turing et l'équipe de Bletchley Park a contribué à raccourcir la Seconde Guerre mondiale de 2 ans selon les historiens.

Le saviez-vous ?
Enigma avait environ 158 quintillions (158 x 1018) de combinaisons possibles. Le brute force à la main était tout simplement impossible.

La cryptographie moderne est née avec l'informatique :

  • 1976 — Diffie et Hellman inventent l'échange de clés asymétrique
  • 1977 — DES devient le premier standard de chiffrement
  • 1977 — RSA : premier algorithme de chiffrement asymétrique pratique
  • 2001 — AES remplace DES comme standard mondial
  • Aujourd'hui — recherche en cryptographie post-quantique

Terminologie essentielle

TermeDéfinitionAnalogie
PlaintextLe message original, lisibleLa lettre que tu écris
CiphertextLe message chiffré, illisibleLa lettre dans l'enveloppe scellée
Key (clé)Le secret qui permet de chiffrer/déchiffrerLa clé du coffre-fort
AlgorithmLa méthode mathématique de transformationLe mécanisme de la serrure
EncryptionTransformer le plaintext en ciphertextMettre la lettre dans le coffre et verrouiller
DecryptionTransformer le ciphertext en plaintextOuvrir le coffre avec la clé et lire la lettre

🔑 21.2 — Chiffrement symétrique (Symmetric Encryption)

Le chiffrement symétrique utilise la même clé pour chiffrer et déchiffrer les données. C'est la méthode la plus ancienne et la plus rapide.

Imagine un cadenas à code. Tu donnes le même code à ton ami. Vous pouvez tous les deux ouvrir et fermer le cadenas avec ce même code. Le problème ? Il faut trouver un moyen sûr de transmettre le code à ton ami sans que quelqu'un ne l'intercepte.

Chiffrement symétrique — Même clé des deux côtés
📄 Plaintext

"HELLO WORLD"

➡️
🔒 Encryption

Algorithme + Clé secrète

➡️
🔣 Ciphertext

"X7#kL9@mQ2"

🔑 Même clé secrète partagée entre l'expéditeur et le destinataire
🔣 Ciphertext

"X7#kL9@mQ2"

➡️
🔓 Decryption

Algorithme + Clé secrète

➡️
📄 Plaintext

"HELLO WORLD"

Algorithmes symétriques principaux

DES & 3DES (Data Encryption Standard)

  • DES : clé de 56 bits, développé en 1977 par IBM/NIST
  • Considéré obsolète — cassé par brute force en moins de 24h
  • 3DES : applique DES trois fois avec 2 ou 3 clés (112 ou 168 bits effectifs)
  • 3DES est encore utilisé dans certains systèmes bancaires mais est en cours de retrait
Attention
DES et 3DES sont considérés comme dépassés. Ne jamais les utiliser pour de nouveaux projets.

AES (Advanced Encryption Standard)

  • Le standard mondial actuel depuis 2001
  • Clés de 128, 192 ou 256 bits
  • Algorithme Rijndael, sélectionné par le NIST parmi 15 candidats
  • Utilisé par les gouvernements, les banques, HTTPS, Wi-Fi, VPN...
  • Très rapide, supporté par les processeurs modernes (AES-NI)
AES-256
Avec une clé de 256 bits, il y a 2256 combinaisons possibles. Même avec tous les ordinateurs de la planète, il faudrait des milliards d'années pour tester toutes les clés.

RC4 (Rivest Cipher 4)

  • Chiffrement par flux (stream cipher) contrairement à DES/AES qui sont par blocs
  • Très rapide, clé de taille variable (40 à 2048 bits)
  • Utilisé historiquement dans WEP (Wi-Fi) et SSL/TLS
  • Considéré vulnérable — interdit par la RFC 7465 dans TLS
Déprécié
RC4 ne doit plus être utilisé. Les vulnérabilités permettent de retrouver le plaintext.

Avantages et inconvénients

AvantagesInconvénients
Très rapide (idéal pour chiffrer de gros volumes)Échange de clé problématique (comment transmettre la clé de façon sécurisée ?)
Faible consommation de ressourcesScalabilité : n utilisateurs nécessitent n(n-1)/2 clés
Algorithmes bien éprouvés (AES)Pas de non-répudiation (les deux parties ont la même clé)

🔐 21.3 — Chiffrement asymétrique (Asymmetric Encryption)

Le chiffrement asymétrique utilise une paire de clés : une clé publique (partagée avec tout le monde) et une clé privée (gardée secrète). Ce qui est chiffré avec l'une ne peut être déchiffré qu'avec l'autre.

Imagine une boîte aux lettres. Tout le monde connaît l'adresse de ta boîte aux lettres (clé publique) et peut y déposer du courrier. Mais seul toi possèdes la clé pour ouvrir la boîte et lire le courrier (clé privée). Tu n'as jamais besoin de partager ta clé privée avec qui que ce soit !

Chiffrement asymétrique — Deux clés complémentaires
Scénario : Alice envoie un message confidentiel à Bob
👩 Alice

Plaintext : "SECRET"

🔑
Clé publique
de Bob
🔒 Encryption

Chiffre avec la clé publique de Bob

📨
🔣 Ciphertext

Transit sur le réseau

🔣 Ciphertext

Reçu par Bob

🗝️
Clé privée
de Bob
🔓 Decryption

Déchiffre avec sa clé privée

👨 Bob

Plaintext : "SECRET"

Algorithmes asymétriques principaux

RSA (Rivest-Shamir-Adleman)

  • L'algorithme asymétrique le plus utilisé depuis 1977
  • Basé sur la difficulté de factoriser de très grands nombres premiers
  • Tailles de clé : 2048, 3072 ou 4096 bits (minimum 2048 recommandé)
  • Utilisé pour le chiffrement, la signature numérique et l'échange de clés
  • Plus lent que le chiffrement symétrique (~1000x)

ECC (Elliptic Curve Cryptography)

  • Basé sur les courbes elliptiques sur des corps finis
  • Clés beaucoup plus courtes pour un niveau de sécurité équivalent à RSA
  • ECC 256 bits ≈ RSA 3072 bits en termes de sécurité
  • Idéal pour les appareils mobiles et IoT (moins de ressources nécessaires)
  • Utilisé dans TLS 1.3, Bitcoin, et les signatures numériques modernes

Diffie-Hellman (DH) / ECDH

  • Algorithme d'échange de clés (pas de chiffrement direct)
  • Permet à deux parties de créer un secret partagé sur un canal non sécurisé
  • Fondement du protocole HTTPS et de nombreux VPN
  • ECDH : version basée sur les courbes elliptiques, plus performante

Analogie des couleurs : Alice et Bob choisissent chacun une couleur secrète. Ils mélangent leur couleur avec une couleur commune publique, échangent les mélanges, puis ajoutent leur couleur secrète au mélange reçu. Ils obtiennent la même couleur finale sans jamais avoir partagé leurs couleurs secrètes !

Signature numérique (Digital Signature)

La signature numérique utilise le chiffrement asymétrique à l'envers :

  1. L'expéditeur signe un hash du message avec sa clé privée
  2. Le destinataire vérifie la signature avec la clé publique de l'expéditeur

Cela garantit l'authentification (qui a signé), l'intégrité (le message n'a pas été modifié) et la non-répudiation (l'expéditeur ne peut pas nier avoir signé).

Symétrique vs Asymétrique

CritèreSymétriqueAsymétrique
Clés1 clé partagéePaire publique/privée
VitesseTrès rapideLent (~1000x plus lent)
Usage principalChiffrement de données en masseÉchange de clés, signatures
Échange de clésProblématiquePas de problème
Non-répudiationNonOui
ExemplesAES, 3DES, RC4RSA, ECC, DH
En pratique : le meilleur des deux mondes
La plupart des protocoles (HTTPS, VPN) utilisent le chiffrement asymétrique pour échanger une clé symétrique, puis le chiffrement symétrique pour les données. On appelle cela le chiffrement hybride.

#️⃣ 21.4 — Hashing (fonctions de hachage)

Le hashing n'est pas du chiffrement. C'est une fonction à sens unique (one-way) qui transforme une entrée de n'importe quelle taille en une empreinte de taille fixe. On ne peut pas retrouver l'entrée à partir du hash.

Imagine un mixeur. Tu mets une pomme dedans, tu obtiens une purée avec une texture unique. Même si tu connais la purée, impossible de recréer la pomme originale. Et si tu changes ne serait-ce qu'un pépin, la purée sera complètement différente.

Propriétés d'une bonne fonction de hachage

Les 3 propriétés essentielles du hashing
🔒 One-way (sens unique)

Impossible de retrouver l'entrée à partir du hash. On ne peut pas "déhasher".

📏 Fixed-size (taille fixe)

Quelle que soit la taille de l'entrée (1 octet ou 1 To), le hash a toujours la même longueur.

💥 Collision-resistant (résistant aux collisions)

Quasi impossible de trouver deux entrées différentes qui produisent le même hash.

Algorithmes de hachage

AlgorithmeTaille du hashStatutUsage
MD5128 bits (32 hex)⛔ Vulnérable (collisions trouvées)Vérification de fichiers uniquement
SHA-1160 bits (40 hex)⚠️ Déprécié (collisions démontrées en 2017)En cours de retrait
SHA-256256 bits (64 hex)✅ SûrStandard actuel, Bitcoin, certificats
SHA-3Variable (224-512)✅ SûrAlternative à SHA-2, architecture différente (Keccak)

HMAC (Hash-based Message Authentication Code)

HMAC combine une fonction de hachage avec une clé secrète pour produire un code d'authentification. Il garantit à la fois l'intégrité et l'authentification du message.

Formule : HMAC = Hash(clé + message)

Utilisé dans : API authentication, cookies de session, vérification de tokens JWT.

Usages du hashing

Les mots de passe ne sont jamais stockés en clair. On stocke le hash du mot de passe. Lors de la connexion, on hash le mot de passe saisi et on compare les deux hashs.

Bonnes pratiques : utiliser un salt (valeur aléatoire ajoutée avant le hashing) et un algorithme lent comme bcrypt ou Argon2.

Quand tu télécharges un fichier, le site fournit souvent un hash (checksum). Tu peux calculer le hash du fichier téléchargé et le comparer pour vérifier qu'il n'a pas été modifié.

Chaque fichier a un hash unique (empreinte digitale). Les analystes utilisent les hashs pour identifier les malwares connus et vérifier l'intégrité des preuves numériques.

🏛️ 21.5 — PKI (Public Key Infrastructure)

La PKI est le système de confiance qui permet de vérifier l'identité des parties dans une communication chiffrée. Sans PKI, comment savoir si la clé publique que tu reçois appartient bien à la bonne personne ?

Imagine un passeport. Tu ne fais pas confiance à quelqu'un juste parce qu'il dit son nom. Tu demandes un passeport, délivré par un gouvernement de confiance (la CA). La PKI, c'est le système de passeports du monde numérique.

Composants de la PKI

CA — Certificate Authority (Autorité de certification)

Organisation de confiance qui délivre des certificats numériques. Elle vérifie l'identité du demandeur avant de signer son certificat.

  • Root CA : l'autorité racine (ex : DigiCert, Let's Encrypt, GlobalSign)
  • Intermediate CA : déléguée par la Root CA pour émettre des certificats
  • RA (Registration Authority) : vérifie l'identité avant de transmettre à la CA

Les Root CA sont pré-installées dans les navigateurs et systèmes d'exploitation.

Certificats numériques X.509

Un certificat numérique contient :

  • Sujet : le nom de domaine ou l'entité (ex : www.example.com)
  • Clé publique du sujet
  • Émetteur : la CA qui a signé le certificat
  • Validité : dates de début et de fin
  • Signature numérique de la CA
  • Numéro de série unique

Types de validation :

  • DV (Domain Validation) : vérifie le contrôle du domaine
  • OV (Organization Validation) : vérifie l'organisation
  • EV (Extended Validation) : vérification poussée de l'entité légale

Chaîne de confiance (Chain of Trust)

La confiance suit une hiérarchie :

  1. Root CA : certificat auto-signé, pré-installé dans le navigateur
  2. Intermediate CA : signé par la Root CA
  3. Certificat du serveur : signé par l'Intermediate CA

Le navigateur remonte la chaîne pour vérifier chaque signature jusqu'à une Root CA de confiance. Si un maillon est invalide, la connexion est refusée.

Certificat expiré ou invalide ?
Le navigateur affiche un avertissement. Ne jamais ignorer ce type d'avertissement — cela pourrait indiquer une attaque Man-in-the-Middle.

Le SSL/TLS Handshake

Quand tu visites un site HTTPS, voici ce qui se passe en coulisses :

  1. Client Hello : le navigateur envoie les versions TLS et algorithmes supportés
  2. Server Hello : le serveur choisit les algorithmes et envoie son certificat
  3. Vérification : le navigateur vérifie le certificat via la chaîne de confiance
  4. Échange de clés : utilisation de Diffie-Hellman ou RSA pour créer un secret partagé
  5. Clé de session : une clé symétrique est dérivée du secret partagé
  6. Communication chiffrée : toutes les données sont chiffrées avec AES (symétrique)
TLS 1.3
La dernière version de TLS (1.3) réduit le handshake à 1 aller-retour (au lieu de 2 pour TLS 1.2), améliorant la performance et supprimant les algorithmes obsolètes.

🌐 21.6 — Applications de la cryptographie

La cryptographie est partout dans notre vie numérique. Voici les principales applications :

HTTPS = HTTP + TLS. Chaque fois que tu vois le cadenas dans la barre d'adresse, la communication est chiffrée.

  • Confidentialité : les données sont chiffrées (AES)
  • Intégrité : HMAC vérifie que les données ne sont pas modifiées
  • Authentification : le certificat vérifie l'identité du serveur

Les VPN créent un tunnel chiffré entre deux points :

  • IPsec : protocole standard, utilise IKE pour l'échange de clés, ESP pour le chiffrement (AES), AH pour l'authentification
  • OpenVPN : solution open source utilisant TLS pour l'échange de clés
  • WireGuard : VPN moderne, minimaliste et ultra-rapide, utilisant ChaCha20 et Curve25519
  • PGP (Pretty Good Privacy) / GPG : chiffrement de bout en bout des emails, modèle de confiance décentralisé (Web of Trust)
  • S/MIME : standard basé sur les certificats PKI pour signer et chiffrer les emails, intégré dans Outlook et la plupart des clients email

SSH permet une connexion à distance sécurisée aux serveurs :

  • Authentification par clé publique/privée (plus sûr que les mots de passe)
  • Chiffrement du trafic avec AES
  • Vérification de l'intégrité avec HMAC
  • Remplace les protocoles non sécurisés comme Telnet et rlogin
ProtocoleChiffrementStatut
WEPRC4⛔ Totalement cassé
WPATKIP (RC4 amélioré)⚠️ Déprécié
WPA2AES-CCMP✅ Standard actuel
WPA3AES-GCMP + SAE✅ Dernière génération

WPA3 introduit SAE (Simultaneous Authentication of Equals), qui protège contre les attaques par dictionnaire hors ligne et offre le forward secrecy.

🔬 21.7 — Lab : Chiffrement César interactif

Expérimente le chiffrement de César ! Saisis un message et un décalage pour voir comment le chiffrement par substitution fonctionne.

Challenge
Déchiffre ce message (décalage inconnu) : FHEHUVHFXULWB
Indice : essaie différents décalages jusqu'à obtenir un mot lisible en anglais !

🔑 21.8 — Concepts complementaires de cryptographie

Classes de certificats numeriques

Les certificats numeriques sont organises en classes qui refletent le niveau de confiance et de verification effectue :

ClasseUsageVerification
Class 0Tests et developpementAucune — certificats de test uniquement
Class 1Utilisateurs individuels, emailVerification de l'adresse email uniquement
Class 2Organisations, logicielsVerification de l'identite de l'organisation
Class 3Serveurs, code signingVerification approfondie de l'identite + documents legaux
Class 4Transactions B2B en ligneVerification rigoureuse entre entreprises
Class 5Organisations gouvernementales/militairesNiveau de verification le plus eleve
Regle a retenir
Plus le numero de classe est eleve, plus le certificat est fiable (trustworthy). La Class 0 est reservee aux tests et n'a aucune valeur en production.

Code Signing (Signature de code)

Le code signing est l'utilisation de signatures numeriques pour verifier l'integrite des executables telecharges. Quand un developpeur signe son logiciel avec sa cle privee :

  • L'utilisateur peut verifier que le logiciel n'a pas ete modifie depuis la signature
  • L'utilisateur peut confirmer l'identite du developpeur (authenticite)
  • Le systeme d'exploitation affiche un avertissement si le code n'est pas signe ou si la signature est invalide
Exemple d'examen
Question : "Quel est le but des signatures numeriques pour le code signing ?" → Reponse : Verifier l'integrite des executables telecharges.

Authentification de la source

L'authentification de la source (source authentication) est une mesure de securite qui garantit que les donnees proviennent bien de l'emetteur annonce. Elle fonctionne en recalculant un code predetermine (HMAC ou hash avec cle secrete) et en le comparant avec celui recu :

  • L'emetteur calcule un code d'authentification (HMAC) avec les donnees + cle secrete partagee
  • Le recepteur recalcule le meme code avec les memes donnees et la meme cle
  • Si les codes correspondent → la source est authentique et les donnees sont integres

✋ 21.9 — Non-répudiation

La non-répudiation est le principe de sécurité qui garantit qu'une partie ne peut pas nier avoir effectué une action. Elle complète la triade CIA en ajoutant la dimension de preuve irréfutable.

MécanismeCe qu'il prouveTechnologie
Signature numériqueL'identité de l'auteur et l'intégrité du messageRSA, DSA, ECDSA avec PKI
Horodatage (Timestamping)Le moment exact où l'action a été effectuéeAutorité d'horodatage (TSA)
Logs d'auditQui a fait quoi et quandSyslog centralisé, SIEM, blockchain
Reçu de transactionLa transaction a bien été effectuéeAccusé de réception signé
CIA + Non-répudiation
  • Confidentialité — Seuls les autorisés accèdent à l'information (chiffrement)
  • Intégrité — L'information n'a pas été modifiée (hashing)
  • Disponibilité — L'information est accessible quand nécessaire (redondance)
  • Non-répudiation — L'auteur ne peut pas nier son action (signature numérique)
Ensemble, ces quatre principes forment le modèle CIAN.
Non-répudiation vs Authentification
L'authentification vérifie l'identité à un instant donné (login). La non-répudiation fournit une preuve durable qu'une action spécifique a été effectuée par une personne spécifique — cette preuve peut être utilisée ultérieurement (en cas de litige, audit ou investigation).

📝 21.10 — Quiz de revision

🔬 21.7 — Lab : Cryptographie en pratique

Utilise les commandes OpenSSL pour explorer la cryptographie en pratique : hashing, chiffrement et certificats.

Cryptography Lab — OpenSSL
# Lab : Exploration de la cryptographie avec OpenSSL
# Tape 'help' pour voir les commandes disponibles
analyst@crypto-lab:~$

Exercice : classe chaque algorithme dans sa categorie

AES-256
ChaCha20
RSA
Diffie-Hellman
SHA-256
bcrypt
🔑 Symetrique
🔐 Asymetrique
#️⃣ Hashing

Points clés du Module 21

  • La cryptographie protège la confidentialité, l'intégrité et l'authentification des données
  • Le chiffrement symétrique (AES) est rapide mais pose le problème de l'échange de clés
  • Le chiffrement asymétrique (RSA, ECC) résout l'échange de clés mais est plus lent
  • Le hashing (SHA-256) est une fonction à sens unique utilisée pour l'intégrité et les mots de passe
  • HMAC combine hashing + clé secrète pour l'authentification des messages
  • La PKI et les certificats X.509 établissent la confiance numérique
  • Le TLS handshake utilise le chiffrement hybride (asymétrique puis symétrique)
  • MD5 et SHA-1 sont obsolètes — utiliser SHA-256 minimum
  • Les applications incluent HTTPS, VPN (IPsec), SSH, email (PGP/S-MIME), Wi-Fi (WPA2/WPA3)
  • La non-répudiation empêche de nier une action — assurée par les signatures numériques
  • Le modèle CIAN étend la triade CIA avec la non-répudiation