Aller au contenu
M08 · C. Protéger les applications Web

Chiffrement symétrique et asymétrique, clés publiques et privées

Les deux grandes familles de chiffrement - symétrique (AES, une clé partagée) et asymétrique (RSA, une paire de clés publique et privée) -, l'échange de clés, la signature numérique, les certificats et le fonctionnement de HTTPS (TLS) qui combine les deux.

1Situer

Quand un client paie sur Souk Atlas, son navigateur et le serveur ne se sont jamais rencontrés, et pourtant ils doivent échanger des secrets sur un réseau que tout le monde peut écouter. Comment se mettre d'accord sur une clé sans se la dire ? C'est le problème que résout le chiffrement asymétrique, au cœur de HTTPS et des signatures électroniques.

2Comprendre

Chiffrer avec la clé publique, déchiffrer avec la clé privée
Youssef expéditeur Amina 🔓 + 🔑 k9X2…vQ== (chiffré) Espionne lit rien Code du coffre : 4821 signature valide

Amina crée une paire de clés. Elle publie la clé publique à tous et garde la clé privée pour elle seule.

1 / 5

Le chiffrement symétrique

Son problème : l’échange de la clé. Pour que Souk Atlas et un client chiffrent avec AES, il faut qu’ils partagent la même clé… sans pouvoir se l’envoyer en clair sur Internet, où n’importe qui peut écouter. Et avec 1 000 clients, il faut 1 000 clés différentes.

Le chiffrement asymétrique

SymétriqueAsymétrique
Clésune clé secrète partagéeune paire : publique + privée
Vitessetrès rapidelent
Échange de clédifficilefacile : la clé publique peut circuler
ExemplesAES, ChaCha20RSA, ECC (ECDSA, ECDH)
Usagechiffrer les donnéeséchanger une clé, signer, authentifier

La signature numérique

Les certificats

Une question reste : comment être sûr qu’une clé publique appartient vraiment à souk-atlas.ma, et pas à un pirate qui se fait passer pour lui ?

HTTPS : les deux familles ensemble

Pour un site, obtenir un certificat est aujourd’hui gratuit et automatique (Let’s Encrypt, ou l’hébergeur). Il n’y a plus aucune raison de servir une page en HTTP simple.

Exemple simple

Le cadenas ouvert

Amina distribue à tout le monde des cadenas ouverts dont elle seule a la clé. Pour lui envoyer un colis secret, on le ferme avec un de ses cadenas : plus personne, pas même l'expéditeur, ne peut le rouvrir, sauf Amina. Le cadenas est la clé publique, la clé du cadenas la clé privée.

Exemple simple

Le cachet du notaire

Le notaire appose un cachet que lui seul possède, mais que tout le monde sait reconnaître. Une signature numérique fonctionne pareil : seule la clé privée signe, n'importe qui vérifie avec la clé publique.

3Manipuler

Souk Atlas possède une paire de clés RSA. Utilisez la clé publique pour chiffrer un message que seule la clé privée pourra lire, puis signez une facture avec la clé privée et vérifiez-la avec la clé publique.
Pas à pas dans le lab ↗ Cliquez sur Exécuter : PHP 8.3 démarre dans votre navigateur (environ 5 Mo à télécharger, une seule fois).

La page s'affichera ici.

Le navigateur demandera /index.php au serveur, qui exécutera le PHP et renverra du HTML.

Entre le navigateur et le serveur aucun échange pour l'instant

Consignes 0 / 3

  1. « Déchiffré : Code du coffre : 4821 »
  2. La facture d'origine a une signature valide
  3. La facture falsifiée est détectée

4Pratiquer

Exercice 1 · Qui utilise quelle clé ?

Youssef veut envoyer un devis confidentiel à Souk Atlas, et Souk Atlas veut prouver à ses clients que ses factures n'ont pas été modifiées. Pour chaque cas, quelle clé (publique ou privée, de qui) sert à chiffrer ou signer, et laquelle à déchiffrer ou vérifier ?

Voir le corrigé
Devis confidentiel : Youssef chiffre avec la clé PUBLIQUE de Souk Atlas ; seul Souk Atlas déchiffre avec sa clé PRIVÉE.
Facture signée : Souk Atlas signe avec sa clé PRIVÉE ; chaque client vérifie avec la clé PUBLIQUE de Souk Atlas.
Règle à retenir : on chiffre pour quelqu'un avec SA clé publique ; on signe avec SA PROPRE clé privée.

Exercice 2 · Lire un certificat

Dans le navigateur, cliquez sur le cadenas d'un site en HTTPS et ouvrez son certificat. Notez : le domaine, l'émetteur (autorité de certification), les dates de validité et l'algorithme de la clé publique. Expliquez à quoi sert chaque information.

Voir le corrigé
Domaine (sujet) : le certificat n'est valable que pour ce nom ; sinon le navigateur alerte.
Émetteur : l'autorité de certification qui a vérifié que le demandeur contrôle le domaine, et qui a signé le certificat ; le navigateur lui fait confiance car elle figure dans sa liste.
Validité : un certificat expiré déclenche une alerte ; les certificats actuels durent quelques mois et se renouvellent automatiquement.
Clé publique (RSA 2048 bits ou ECDSA) : celle qui sert à authentifier le serveur pendant l'établissement de la connexion TLS.

5Vérifier

1. Dans un chiffrement symétrique...
2. Pour envoyer un message que seul Souk Atlas pourra lire, on le chiffre avec...
3. Pourquoi HTTPS utilise-t-il à la fois l'asymétrique et le symétrique ?