Partie 4 : Sécurisation des communications¶
Programme officiel (B.O.)¶
B.O. spécial n° 8 du 25 juillet 2019 - NSI Terminale
| Contenus | Capacités attendues | Commentaires |
|---|---|---|
| Sécurisation des communications. | Décrire les principes de chiffrement symétrique (clef partagée) et asymétrique (avec clef privée/clef publique). Décrire l'échange d'une clef symétrique en utilisant un protocole asymétrique pour sécuriser une communication HTTPS. | Les protocoles symétriques et asymétriques peuvent être illustrés en mode débranché, éventuellement avec description d'un chiffrement particulier. La négociation de la méthode de chiffrement du protocole SSL (Secure Sockets Layer) n'est pas abordée. |
1. Le besoin de sécuriser les communications¶
1.1 Les menaces¶
Lorsqu'un message transite sur un réseau (Internet notamment), il peut être :
- Intercepté : un tiers lit le contenu du message (écoute passive) ;
- Modifié : un tiers altère le contenu sans que l'expéditeur ou le destinataire le sache ;
- Usurpé : un tiers se fait passer pour l'expéditeur ou le destinataire.
1.2 La cryptographie¶
La cryptographie (du grec kruptos, « caché », et graphein, « écrire ») est la science de la protection des messages. Elle repose sur le chiffrement : transformer un message lisible (texte clair) en un message incompréhensible (texte chiffré) à l'aide d'une clé.
| Terme | Définition |
|---|---|
| Texte clair | Message lisible original |
| Texte chiffré | Message rendu illisible par le chiffrement |
| Clé | Information secrète nécessaire pour chiffrer ou déchiffrer |
| Chiffrement | Transformation du clair en chiffré |
| Déchiffrement | Transformation du chiffré en clair (avec la clé) |
Repère historique
Le chiffrement existe depuis l'Antiquité. Jules César utilisait déjà un chiffrement par décalage pour protéger ses messages militaires (le « chiffre de César »).
2. Le chiffrement symétrique¶
2.1 Principe¶
Dans le chiffrement symétrique, la même clé sert à chiffrer et à déchiffrer le message. Cette clé doit être partagée entre l'expéditeur et le destinataire, et connue d'eux seuls.
Clé secrète K Clé secrète K
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ Chiffrement │ │Déchiffrement│
└──────┬──────┘ └──────┬──────┘
│ │
Texte ───┘ ──── Texte chiffré ──── └─── Texte
clair (canal non sûr) clair
2.2 Le chiffre de César¶
Le plus ancien exemple : chaque lettre est décalée d'un nombre fixe de positions dans l'alphabet.
Avec un décalage de 3 : A → D, B → E, C → F, ..., X → A, Y → B, Z → C.
| Texte clair | B | O | N | J | O | U | R |
|---|---|---|---|---|---|---|---|
| Texte chiffré (décalage 3) | E | R | Q | M | R | X | U |
Faiblesse : seulement 25 clés possibles → cassable par force brute (essayer toutes les clés) et par analyse fréquentielle (la lettre la plus fréquente en français est « e »).
def chiffrement_cesar(texte, decalage):
alphabet = "abcdefghijklmnopqrstuvwxyz"
resultat = ""
for lettre in texte.lower():
if lettre in alphabet:
indice = (alphabet.index(lettre) + decalage) % 26
resultat += alphabet[indice]
else:
resultat += lettre
return resultat
def dechiffrement_cesar(texte, decalage):
return chiffrement_cesar(texte, -decalage)
2.3 Le chiffrement de Vernam (masque jetable)¶
Le chiffrement de Vernam utilise une clé aussi longue que le message, composée de caractères aléatoires. Chaque caractère du message est combiné avec le caractère correspondant de la clé par un XOR (ou exclusif).
C'est le seul chiffrement prouvé mathématiquement incassable (à condition que la clé soit vraiment aléatoire et utilisée une seule fois).
def chiffrement_vernam(texte, cle):
return bytes([t ^ c for t, c in zip(texte.encode(), cle.encode())])
2.4 Algorithmes modernes¶
| Algorithme | Taille de clé | Usage |
|---|---|---|
| DES | 56 bits | Obsolète (cassable) |
| AES | 128, 192 ou 256 bits | Standard actuel (Wi-Fi, disques chiffrés, HTTPS) |
AES (Advanced Encryption Standard) est utilisé partout aujourd'hui. Avec une clé de 256 bits, il faudrait des milliards d'années pour casser le chiffrement par force brute.
2.5 Le problème de l'échange de clés¶
Le chiffrement symétrique pose un problème fondamental : comment transmettre la clé secrète au destinataire de façon sûre ? Si on l'envoie sur le réseau en clair, un attaquant peut l'intercepter.
C'est ce problème que résout le chiffrement asymétrique.
3. Le chiffrement asymétrique¶
3.1 Principe¶
Dans le chiffrement asymétrique, chaque personne possède une paire de clés :
- une clé publique : connue de tous, utilisée pour chiffrer ;
- une clé privée : connue uniquement du propriétaire, utilisée pour déchiffrer.
Ce qui est chiffré avec la clé publique ne peut être déchiffré qu'avec la clé privée correspondante.
Bob veut envoyer un message à Alice
Bob connaît la clé Alice possède la
publique d'Alice clé privée d'Alice
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ Chiffrement │ │Déchiffrement│
│ (clé pub. │ │ (clé privée │
│ d'Alice) │ │ d'Alice) │
└──────┬──────┘ └──────┬──────┘
│ │
Texte ───┘ ── Texte chiffré ── └─── Texte
clair (canal non sûr) clair
3.2 Analogie du cadenas¶
Analogie
Alice distribue des cadenas ouverts (clé publique) à tout le monde. Bob met son message dans un coffre, le ferme avec le cadenas d'Alice et lui envoie. Seule Alice possède la clé du cadenas (clé privée) pour ouvrir le coffre. Même Bob ne peut plus ouvrir le coffre une fois le cadenas fermé.
3.3 L'algorithme RSA¶
RSA (du nom de ses inventeurs Rivest, Shamir et Adleman, 1977) est l'algorithme de chiffrement asymétrique le plus connu. Il repose sur la difficulté de factoriser de très grands nombres.
| Opération | Facile | Difficile |
|---|---|---|
| Multiplier deux grands nombres premiers | Oui (quelques ms) | - |
| Trouver les facteurs premiers d'un grand nombre | - | Oui (des milliards d'années) |
3.4 Avantages et limites¶
| Avantages | Limites |
|---|---|
| Pas besoin d'échanger de clé secrète | Beaucoup plus lent que le symétrique |
| La clé publique peut être diffusée librement | Clés plus longues (2048 ou 4096 bits) |
| Permet la signature numérique | Non adapté au chiffrement de gros volumes |
4. HTTPS : la combinaison des deux¶
4.1 Le principe hybride¶
En pratique, on combine les deux approches :
- Le chiffrement asymétrique pour échanger une clé secrète en toute sécurité ;
- Le chiffrement symétrique (avec cette clé) pour chiffrer les données échangées rapidement.
4.2 Le protocole HTTPS¶
HTTPS (HTTP Secure) sécurise les communications entre un navigateur et un serveur Web. Voici les étapes simplifiées de l'établissement d'une connexion HTTPS :
Navigateur (client) Serveur Web
│ │
│──── 1. Demande de connexion ────────►│
│ │
│◄─── 2. Certificat + clé publique ───│
│ │
│ 3. Vérification du certificat │
│ │
│──── 4. Clé symétrique chiffrée │
│ (avec la clé publique) ─────────►│
│ │
│ 5. Le serveur déchiffre avec │
│ sa clé privée │
│ │
│◄═══ 6. Communication chiffrée ══════►│
│ (avec la clé symétrique) │
Détail des étapes :
- Le navigateur contacte le serveur en HTTPS ;
- Le serveur envoie son certificat (contenant sa clé publique, vérifié par une autorité de certification) ;
- Le navigateur vérifie que le certificat est valide et authentique ;
- Le navigateur génère une clé de session (symétrique) et l'envoie chiffrée avec la clé publique du serveur ;
- Le serveur déchiffre la clé de session avec sa clé privée ;
- Toutes les données sont ensuite chiffrées avec la clé de session (chiffrement symétrique, rapide).
4.3 Le certificat numérique¶
Un certificat garantit que la clé publique appartient bien au serveur annoncé. Il est délivré par une autorité de certification (AC) reconnue.
Le cadenas 🔒 dans la barre d'adresse du navigateur indique qu'une connexion HTTPS est établie et que le certificat est valide.
4.4 Pourquoi ce protocole hybride ?¶
| Phase | Chiffrement | Raison |
|---|---|---|
| Échange de clé | Asymétrique (RSA) | Sécurise la transmission de la clé sans secret partagé préalable |
| Échange de données | Symétrique (AES) | Rapide, adapté à de gros volumes de données |
5. Activité débranchée : échange de messages chiffrés¶
Étape 1 : Chiffrement symétrique (César)¶
Alice et Bob se mettent d'accord sur un décalage de 7.
- Alice chiffre « BONJOUR » → ?
- Bob reçoit le texte chiffré et le déchiffre.
Étape 2 : Problème de l'échange de clé¶
Comment Alice et Bob se sont-ils mis d'accord sur la clé 7 ? Si un espion écoute cette conversation, il connaît aussi la clé.
Étape 3 : Chiffrement asymétrique¶
- Bob génère une paire de clés (publique : 5, privée : 21 - simplifié) ;
- Bob envoie sa clé publique 5 à Alice (en clair, pas grave) ;
- Alice chiffre la clé symétrique 7 avec la clé publique de Bob ;
- Bob déchiffre avec sa clé privée 21 et obtient 7 ;
- Désormais, Alice et Bob communiquent avec le chiffrement de César, clé 7.
À retenir¶
| Concept | Description |
|---|---|
| Chiffrement symétrique | Même clé pour chiffrer et déchiffrer (AES, César) |
| Chiffrement asymétrique | Paire clé publique / clé privée (RSA) |
| Clé publique | Connue de tous, sert à chiffrer |
| Clé privée | Secrète, sert à déchiffrer |
| HTTPS | HTTP sécurisé : asymétrique pour échanger la clé, puis symétrique pour les données |
| Certificat | Document prouvant l'identité du serveur et sa clé publique |
| Protocole hybride | Combinaison asymétrique (échange de clé) + symétrique (données) |