Réseau privé virtuel ( VPN : Virtual Private Network) :
Le
réseau privé virtuel (VPN) est vu comme une extension des réseaux
locaux et préserve la sécurité logique que l'on peut avoir à l'intérieur
d'un réseau local. Il correspond en fait à une interconnexion de
réseaux locaux via une technique de « tunnel ».
Un
bon compromis consiste à utiliser Internet comme support de
transmission en utilisant un protocole de « tunnellisation » (en anglais
tunneling), c'est-à-dire encapsulant les données à transmettre de façon
chiffrée. On parle alors de VPN pour désigner le réseau ainsi
artificiellement créé. Ce réseau est dit virtuel car il relie deux
réseaux « physiques » (réseaux locaux) par une liaison non fiable
(Internet), et privé car seuls les ordinateurs des réseaux locaux de
part et d'autre du VPN peuvent accéder aux données en clair.
Le
VPN permet donc d'obtenir une liaison sécurisée à moindre coût, si ce
n'est la mise en œuvre des équipements terminaux. En contrepartie, il ne
permet pas d'assurer une qualité de service comparable à une ligne
louée dans la mesure où le réseau physique est public, donc non garanti.
Le
VPN vise à apporter certains éléments essentiels dans la transmission
de données : l'authentification (et donc l'identification) des
interlocuteurs, la confidentialité des données (le chiffrement vise à
les rendre inutilisables par quelqu'un d'autre que le destinataire).
1 Fonctionnement :
Un
VPN repose sur un protocole, appelé protocole de tunnelisation,
c'est-à-dire un protocole permettant aux données passant d'une extrémité
à l'autre du VPN d'être sécurisées par des algorithmes de
cryptographie.
Le
terme tunnel est utilisé pour symboliser le fait qu'entre l'entrée et
la sortie du VPN les données sont chiffrées et donc normalement
incompréhensibles pour toute personne située entre les deux extrémités
du VPN, comme si les données passaient dans un tunnel. De plus, créer un
tunnel signifie aussi encapsuler un protocole dans un protocole de même
niveau du modèle OSI (IP dans IPSec par exemple). Dans le cas d'un VPN
établi entre deux machines, on appelle client VPN l'élément permettant
de chiffrer les données à l'entrée et serveur VPN (ou plus généralement
serveur d'accès distant) l'élément déchiffrant les données en sortie.
Ainsi,
lorsqu'un système extérieur à un réseau privé (client nomade, agence ou
travailleur à domicile) souhaite se connecter au réseau de son
entreprise :
-
Les paquets (qui contiennent les données) sont chiffrés
par le client VPN (selon l'algorithme décidé par les deux interlocuteurs
lors de l'établissement du tunnel VPN) et éventuellement signés.
- Ils sont transmis par le biais du réseau transporteur (Internet en général).
-
Ils sont reçus par le serveur VPN qui les déchiffre, les
traite et regarde si les vérifications requises sont correctes.
2 Protocoles de tunnelisation :
- GRE, souvent remplacé par L2TP, développé par Cisco.
- PPTP (Point-to-Point tunneling Protocol) est un protocole de niveau 2 développé par Microsoft, 3Com …
- L2F
(Layer Two Forwarding) est un protocole de niveau 2 développé par Cisco
Systems, Nortel et Shiva. Il est désormais quasi-obsolète.
- L2TP
(Layer Two Tunneling Protocol) est l'aboutissement des travaux de
l'IETF (RFC 3931) pour faire converger les fonctionnalités de PPTP et
L2F. Il s'agit ainsi d'un protocole de niveau 2 s'appuyant sur PPP.
- IPsec est un protocole de niveau 3, issu des travaux de l'IETF, permettant de transporter des données chiffrées pour les réseaux IP.
- SSL/TLS offre une très bonne solution de tunnelisation. L'avantage de cette solution est d'utiliser un navigateur Web comme client VPN.
- SSH,
initialement connu comme remplacement sécurisé de telnet, offre la
possibilité de tunneliser des connexions de type TCP, permettant
d'accéder ainsi de façon sûre à des services offerts sur un réseau
protégé, sans créer un réseau privé virtuel au sens plein. Toutefois,
depuis sa version 4.3, le logiciel OpenSSH permet de créer des tunnels
entre deux interfaces réseau virtuelles au niveau 3 (routage du seul
trafic IP, interfaces TUN) ou au niveau 2 (tout le trafic Ethernet,
interfaces TAP). Toutefois, OpenSSH ne gère que la création de ces
tunnels, la gestion (routage, adressage, pontage, etc ...), c'est-à-dire
la création du VPN utilisant ces tunnels, restant à la charge de
l'utilisateur.