C’est quoi un VPN ?

Divulgâchage : Même si les publicités se sont un peu calmées ces derniers temps, la tendance au télétravail a remis les VPN sur le devant de la scène. Comme pour toute technologie, pour bien s’en servir, l’idéal reste de comprendre vraiment ce dont il s’agit. Ça tombe bien, c’est le sujet du jour. L’acronyme signifie Virtual Private Network qu’on traduit en Réseau Privé Virtuel. Ça consiste à simuler des cartes réseau avec des programmes qui vont s’échanger les données pour que des machines distantes sur internet croient être branchées directement les unes aux autres.

L’un des problèmes de l’informatique, surtout lorsqu’on fait du réseau, c’est que tous les protocoles ont été conçus pour remplir leurs missions sans que les utilisateurs finaux n’aient besoin de connaître les détails.

Du coup, ça peut vite paraître magique et on peut donc facilement fantasmer sur les possibilités et les risques de ces technologies sans que ni les uns ni les autres ne soient réalistes…

C’est justement le cas des VPN… Après une campagne publicitaire particulièrement bruyante, tout le monde a entendu parler des services de VPN payants et leurs arguments sur la sécurité qu’ils sont sensés apporter à leurs abonnés.

C’est un cas d’école de communication white hat qui joue sur les fantasmes liés à ces technologies magiques :

  1. Faire peur en insistant sur tous ces risques de piratage car les hackers en veulent à vos données,
  2. Rassurer en listant tous ces avantages que leur super produit miracle procure (qu’importe s’ils sont imaginaires ou n’ont rien à voir avec les risques pré-cités).

Alors, dans notre croisade évangélique de démystification, nous avons choisi d’aborder aujourd’hui, sans rentrer dans tous les détails techniques ce que sont vraiment les VPN.

Tunnel, kobitriki @ pixabay

Et pour ceux qui suivent les aventures d’Erin, c’est ce genre de technologie qu’elle utilisera pour se connecter avec la résistance (en ai-je trop divulgué ?). C’est donc l’occasion de vous parler, ici, des aspects plus techniques de la chose.

Une carte virtuelle

Quelque soit le problème en informatique, et pour simplifier la vie de tout le monde, on accède aux ressources via des interfaces. Vous envoyez votre demande au système et c’est lui qui va se charger de tous les détails complexes et techniques sans que vous n’ayez à y penser. C’est opaque, et c’est tant mieux.

Pour le réseau, c’est la même chose. Lorsqu’un programme veut envoyer des données sur le réseau, il les met dans une sorte d’enveloppe et la confie au système d’exploitation qui va se charger des détails. Votre programme n’a pas besoin de savoir si son enveloppe partira via un câble ou du Wifi, en IPv4 ou IPv6, si et comment sont calculées les sommes de contrôle. Il utilise une interface qui lui cache ces détails.

Carte Réseau, blickpixel @ pixabay

Et comme ces détails sont cachés, rien n’empêche de les simuler 😁. Le système peut très bien vous fournir une « interface réseau virtuelle ». Lorsque vos programmes y envoient leurs enveloppes (contenant leurs données), celles-ci ne sont pas numérisées vers un périphérique mais confiées à un programme qui va simuler ces opérations…

Par exemple, l’adresse localhost (127.0.0.1 en IPv4 et ::1 en IPv6) permet aux programmes sur un même système de communiquer entre eux comme s’ils le faisaient à travers un réseau IP.

Votre carte mère ne possède bien sûr pas de mini-carte réseau pour ça, c’est le système qui la simule : lorsqu’il reçoit un paquet à destination de cette adresse spécifique, il sait qu’il n’a rien à envoyer physiquement et va simplement passer les données au programme destinataire.

Un réseau virtuel

Pour aller plus loin, et créer un réseau virtuel, on peut aussi connecter deux cartes virtuelles sur des machines chacune à un bout d’internet.

Charger et décharger des conteneurs. AG88 @ pixabay

Pour les utilisateurs de ce réseau virtuel, c’est comme si les données étaient cryogénisées pendant le trajet. Elles ne voient pas la différence entre la situation habituelle (envoyées directement dans le réseau) et le réseau virtuel (gelées dans une enveloppe puis décongelées à l’autre bout).

On peut faire une analogie avec le réseau routier pour le transport de fret. Aucune route ne permet à un camion de passer entre deux continents, alors on transborde temporairement sur des cargos. Les correspondants ne voient pas le bateau, ils peuvent se raconter que ça n’a pas quitté les camions.

Les deux systèmes se prennent alors au jeu et se considèrent connectés l’un à l’autre. Vous pouvez également adhérer à cette fiction informatique et vous comporter comme si ces deux machines étaient effectivement branchées l’une à l’autre.

Du virtuel, mais privé

Comme vous vous en doutez, dans la plupart des cas, on aimerait bien que personne ne puisse intercepter ou modifier nos données en transit. Les envoyer telles quelles sur le réseau n’est donc pas la meilleure idée du siècle (surtout qu’on est qu’en 2021).

Sans réelle surprise, pour les protéger dans le tunnel, on utilise de la cryptographie. Chaque VPN a ses petites préférences, habitudes et conventions, je ne vous détaillerai donc pas tous les cas mais de manière générale, on retrouvera toujours les mêmes principes.

Protéger le contenu. bluebudgie @ pixabay

Une phase d’initialisation du tunnel où les programmes discutent entre eux pour établir tous les paramètres nécessaires aux transferts des données réseau virtuel qui seront ensuite échangées.

Une phase nominale où les programmes s’envoient les données virtuelles et éventuellement quelques petits signaux (i.e. pour maintenir le canal occupé). Lorsque cette phase se déconnecte, il est parfois possible de la restaurer directement sans passer par la phase de négociation (ça dépend des protocoles).

Avec tous ces algorithmes mis en place, on peut alors être sûr de l’identité des participants au VPN, que seuls ceux-ci connaîtront le contenu des données en transit et que celles-ci n’auront pas pu être modifiées.

Et après ?

Qu’importe la technologie utilisée, qu’importe le fournisseur, un VPN, ça n’est donc rien d’autre qu’une nouvelle carte réseau (virtuelle) via laquelle votre système est branché directement (mais virtuellement) à une infrastructure distante. Tout le trafic qui y entre est protégé jusqu’à sa sortie et ensuite, le monde physique reprendra ses droits.