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
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étrique
Asymétrique
Clés
une clé secrète partagée
une paire : publique + privée
Vitesse
très rapide
lent
Échange de clé
difficile
facile : la clé publique peut circuler
Exemples
AES, ChaCha20
RSA, ECC (ECDSA, ECDH)
Usage
chiffrer 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.
Publicité
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 serveuraucun échange pour l'instant
Consignes 0 / 3
« Déchiffré : Code du coffre : 4821 »
La facture d'origine a une signature valide
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.