Aller au contenu

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)
>>> chiffrement_cesar("bonjour", 3)
'erqmrxu'
>>> dechiffrement_cesar("erqmrxu", 3)
'bonjour'

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 :

  1. Le chiffrement asymétrique pour échanger une clé secrète en toute sécurité ;
  2. 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 :

  1. Le navigateur contacte le serveur en HTTPS ;
  2. Le serveur envoie son certificat (contenant sa clé publique, vérifié par une autorité de certification) ;
  3. Le navigateur vérifie que le certificat est valide et authentique ;
  4. Le navigateur génère une clé de session (symétrique) et l'envoie chiffrée avec la clé publique du serveur ;
  5. Le serveur déchiffre la clé de session avec sa clé privée ;
  6. 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)