Deux pizzerias, une seule liste de commandes
Une petite enseigne a deux pizzerias, une à Lille et une à Arras. Les caisses des deux restaurants doivent lire la même liste de commandes.
Entre les deux, il y a internet. Celui qui gère un câble sur le trajet pourrait lire ce qui passe.
Il faut un chemin privé à travers un lieu public. Ce chemin, c’est un VPN.
À la fin de cette leçon
Remarque
Je peux expliquer ce que protège un VPN.
Mots clés
| Mot | Ce que ça veut dire |
|---|---|
| Chiffrement | brouiller des données pour que seul le détenteur de la clé puisse les lire |
| Clé | la valeur secrète qui verrouille ou déverrouille les données |
| Clé privée | la moitié d’une paire de clés qu’on ne donne jamais |
| Clé publique | la moitié d’une paire de clés qu’on peut donner à tous |
| Tunnel | des paquets transportés dans d’autres paquets, entre deux points |
| VPN | un réseau privé virtuel : un tunnel avec du chiffrement |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Deux réseaux, internet au milieu
Le lab a deux sites. Le site A est 10.1.0.0/24 et le site B 10.2.0.0/24. Leurs passerelles se rejoignent sur un lien internet, 203.0.113.0/24.
Les deux sites utilisent des adresses privées. Aucun routeur du lien internet ne connaît donc le chemin vers l’autre site.
Découvre les quatre machines
wglab statusAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Ping du site A vers le site B
sudo ip netns exec a1 ping -c 2 -W 1 10.2.0.2Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Lis la table de la passerelle A
sudo ip netns exec gwA ip routeAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Demande à gwA où il enverrait le paquet
sudo ip netns exec gwA ip route get 10.2.0.2Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
La passerelle A n’a aucun chemin
Le ping affiche deux fois From 10.1.0.1 ... Destination Net Unreachable. 10.1.0.1, c’est la passerelle A.
Sa table a deux lignes : son site, 10.1.0.0/24, et le lien internet, 203.0.113.0/24. Aucune ligne pour 10.2.0.0/24, et pas de route par défaut. C’est pourquoi ip route get répond Network is unreachable.
Chiffrer demande une clé
Le chiffrement transforme des données lisibles en charabia. Seul celui qui a la bonne clé peut revenir en arrière.
Un vieil exemple est le chiffre de César : avancer chaque lettre de trois places. Avec la clé 3, CHAT devient FKDW.
Le chiffrement moderne utilise des clés énormes et des calculs malins. Deviner la clé prendrait plus qu’une vie.
Exemple travaillé : César avec un décalage de 3
| Lettre claire | On avance de 3 | Lettre secrète |
|---|---|---|
| C | D, E, F | F |
| H | I, J, K | K |
| A | B, C, D | D |
| Y | Z, A, B | B |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Chaque passerelle a sa paire de clés
WireGuard donne deux clés à chaque passerelle. La clé privée reste secrète sur sa passerelle. La clé publique est calculée à partir d’elle et donnée à l’autre côté.
Chaque passerelle connaît la clé publique de l’autre. C’est ainsi que chacune vérifie qu’elle parle au bon partenaire.
Fabrique une clé privée jetable
wg genkeyAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Vois qui peut ouvrir le dossier des clés
sudo ip netns exec gwA ls -ld /etc/wireguardAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Demande l’état des tunnels de gwA
sudo ip netns exec gwA wg showAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Une clé est un fichier secret
Le premier Run affiche une ligne de 44 lettres, chiffres et signes, qui finit par =. La tienne est différente de celle des autres. Elle n’a pas été enregistrée : elle a disparu.
La ligne du dossier commence par drwx------ et nomme deux fois root. Seul root peut l’ouvrir, c’est normal pour des clés secrètes.
wg show n’affiche rien : aucun tunnel n’existe encore.
Ce que le tunnel cache ou montre
Quand le tunnel marche, la passerelle A emballe chaque paquet pour le site B. Elle le chiffre et l’envoie dans un nouveau paquet vers la passerelle B.
Sur le lien internet, un curieux ne voit que les adresses des deux passerelles et des données brouillées. Les adresses internes et le contenu sont cachés.
Un VPN ne cache pas que les deux passerelles se parlent. Il n’enlève pas non plus un virus d’une caisse.
Une erreur fréquente
Attention
Beaucoup pensent qu’un VPN rend invisible. Il protège seulement le trafic à l’intérieur du tunnel. Les deux bouts restent visibles, et les appareils de chaque côté peuvent toujours être attaqués.
Pour aller plus loin : casser un message
Quelqu’un t’envoie OD FDLVVH HVW RXYHUWH sans dire le décalage.
Écris une boucle qui appelle ta fonction decesar avec chaque décalage de 1 à 25 et affiche chaque résultat. Quelle ligne est du français ? Pourquoi cela montre-t-il que César est faible ?