Introduction
Dans ce dossier consacré aux VPNs nous allons expliquer en des termes simples le fonctionnement d'un VPN et les protocoles utilisés pour sa mise en place et sa sécurisation. VPN signifie Virtual Private Network, soit Réseau Privé Virtuel (RPV) pour nous autres francophones.Un tel procédé consiste à connecter deux réseaux confidentiels au travers d'un réseau jugé non sûr. Le réseau le plus souvent utilisé pour établir des VPNs est la plupart du temps Internet, ce dernier de par son faible coût est en effet souvent mis à contribution pour faire transiter toutes sortes de données, dont on exige un niveau de sécurité plus ou moins élevé durant les transferts...
On dit que l'on crée un tunnel entre les deux réseaux que l'on souhaite interconnecter, pour réaliser ce tunnel il faut avoir recours à un protocole de " tunnelisation ".
Bien entendu un tel système est plus utilisé par les entreprises que par les particuliers, il est en effet rare que ces derniers disposent de deux réseaux et aient besoin de les interconnecter d'une telle manière !

Du fait qu'un VPN passe par un réseau considéré comme non sécurisé, des procédures de sécurisation vont être mises en place, chacune ayant son importance pour garantir un minimum de sécurité :
- L'authentification : il faut être certain que ce soit la bonne personne ou entité qui cherche à établir le VPN
- L'intégrité : les données transitant par un autre réseau, il faut garantir qu'elles ne vont pas être corrompues par une personne située au milieu de la communication.
- La sécurité : le contenu de la communication ne doit pas être accessible aux personnes qui arriveront à intercepter une partie des données. L'utilisation d'un algorithme de cryptage sera alors nécessaire.
Au cours de ce dossier nous allons voir les deux principaux cas d'utilisation des VPNs : le VPN LAN to LAN (tunnel fixe) et le VPN dit RoadWarrior (dont une des extrémités change d'emplacement à chaque connexion). Nous passerons également en revue les trois protocoles de tunnelisation les plus utilisés aujourd'hui à savoir PPTP, L2TP et IPSec.
Il est important de comprendre qu'un réseau IP est formé par différentes couches (modèle OSI), chacune s'appuyant sur l'autre pour transmettre les informations. On parle alors d'encapsulation, ou encore de pile TCP/IP. Il sera nécessaire de bien avoir cette notion à l'esprit pour comprendre l'empilement des protocoles les uns sur les autres.
Des allusions à ce que l'on appelle des Request For Comments seront faites, une RFC est une documentation issue d'un groupe de travail. Il s'agit là de la documentation complète des protocoles réalisée par les personnes et les sociétés qui les ont créés.
Bien entendu le domaine des VPNs est loin d'être simple, le but de ce dossier n'est pas de s'étendre dans des détails trop techniques mais d'expliquer de la manière la plus simple possible le fonctionnement d'un VPN. Un lien vers une documentation externe sera fourni pour les détails les plus ardus, cela aidera tant les débutants dans leur compréhension globale que les experts dans leur soif de détails. Dans la mesure du possible ces documentations seront en français, le cas échéant en anglais.
../..
LAN to LAN ou RoadWarrior '
- LAN to LAN ou RoadWarrior '
Deux types de mise en pratique de VPN existent, d'un côté ce que l'on appelle le "LAN to LAN", et de l'autre le "RoadWarrior".
1. LAN to LAN
Un VPN LAN to LAN est plus proche du sens réel de l'abréviation de VPN : à savoir relier deux réseaux locaux en un seul. Ce type de VPN étant destiné à être permanent, il ne faudra pas négliger la sécurité de ce dernier : en effet, les échanges étant permanents, un pirate aura plus de matière à décoder les données qui transitent entre les deux points.
Nous verrons dans la suite de ce dossier qu'il est possible de sécuriser à chaque niveau les échanges.
1. LAN to LAN
Un VPN LAN to LAN est plus proche du sens réel de l'abréviation de VPN : à savoir relier deux réseaux locaux en un seul. Ce type de VPN étant destiné à être permanent, il ne faudra pas négliger la sécurité de ce dernier : en effet, les échanges étant permanents, un pirate aura plus de matière à décoder les données qui transitent entre les deux points.
Nous verrons dans la suite de ce dossier qu'il est possible de sécuriser à chaque niveau les échanges.
2. RoadWarrior
Ce type d'utilisation correspond à celui d'un utilisateur nomade qui crée une connexion depuis un lieu qui est variable. Il s'agit donc d'un VPN qui est temporaire et n'est pas destiné à être fixe, la sécurité est ainsi moins importante que pour un VPN destiné à être permanent.
Ce type d'utilisation correspond à celui d'un utilisateur nomade qui crée une connexion depuis un lieu qui est variable. Il s'agit donc d'un VPN qui est temporaire et n'est pas destiné à être fixe, la sécurité est ainsi moins importante que pour un VPN destiné à être permanent.

Utilisateur nomade avec VPN RoadWarrior
Nous allons maintenant voir dans le détail les trois protocoles de tunnelisation les plus utilisés aujourd'hui, à savoir :
- PPTP
- L2TP
- IPSec
../..
Le protocole PPTP
- Le protocole PPTP
Le Point-To-Point Tunneling Protocol (PPTP) est un protocole d’encapsulation s’appuyant sur le protocole PPP pour la communication. Ce protocole ne peut travailler que sur des réseaux IP. Historiquement parlant, ce protocole a été implémenté pour la première fois par Cisco, il fut ensuite repris par Microsoft dans ses systèmes Windows. Une spécification fut publiée dans la Request For Comments (RFC) 2637 en juillet 1999, parmi les auteurs on citera à nouveau Microsoft, mais également l’équipementier 3Com, ainsi que d’autres sociétés moins connues (Ascend Communications, Copper Mountain Networks, ECI Telematics, etc…)

Fonctionnement général d'un VPN avec PPTP
Le protocole PPTP consiste en deux flux de communication entre le client et le serveur, s'appuyant directement sur le protocole IP :
- Le premier flux a pour rôle la gestion du lien entre les deux parties, il s’agit là d’une connexion sur le port 1723 du serveur en TCP.
- Le second flux concerne les données échangées entre les deux parties, bien entendu ce flux peut et doit être chiffré, ce dernier transite en utilisant le protocole General Routing Encapsulation.
PPTP ne concerne que le transport des données, un de ces deux protocoles intervient ensuite pour sécuriser l'authentification, il faut en effet être certain que c'est la bonne personne qui se connecte au serveur VPN !
- Password Authentification Protocol (PAP) : ce protocole décrit dans la RFC 1994 consiste à mettre en place une authentification entre le client et le serveur VPN. Les informations d'authentification (nom d'utilisateur et mot de passe) transitent en clair, ce qui n'est pas l'idéal si l'on veut sécuriser au maximum...
- Challenge Handshake Authentification Protocol (CHAP) : ce protocole consiste en un mécanisme d'authentification crypté, il est donc sécurisé. Un protocole basé sur ce dernier, développé par Microsoft, est aussi utilisé : MS-CHAP.
L'authentification effectuée, il faut désormais sécuriser la communication au sein du VPN; comme pour l'authentification, la sécurisation des données repose sur un protocole de PPP : Compression Control Protocol. Différents types de cryptage sont utilisés, qu'ils soient symétriques ou asymétriques. Les algorithmes RSA (DES, RC4 et IDEA) et les clés publiques (Public Key Infrastructure, PKI) entre autres.
../..
Le protocole PPTP - Suite
Type d'utilisationCe protocole est
majoritairement utilisé pour établir des VPN du type RoadWarrior, il
fut d'ailleurs créé avec pour objectif ce type d'utilisation :
faciliter la connexion des utilisateurs nomades au réseau de leur
entreprise.
Aujourd'hui PPTP est toujours utilisé, même si L2TP, que nous allons voir à la page suivante, reprend ses principaux avantages.
Aujourd'hui PPTP est toujours utilisé, même si L2TP, que nous allons voir à la page suivante, reprend ses principaux avantages.
Comme
exemple de mise en oeuvre, on pourrait imaginer un ordinateur portable
muni d'une carte 3G sur lequel on mettrait en place une connexion créant
un tunnel PPTP pour accéder aux serveurs de l'entreprise. On notera que
comme les opérateurs 3G ne proposent un accès qu'à leur service et
bloquent tout autre trafic HTTP, le tunnel PPTP ainsi créé permettra
d'accéder à Internet à l'aide de la passerelle de l'entreprise.
Implémentations
Les systèmes d'exploitation les plus courants supportent en natif le protocole PPTP, il en est de même pour la majorité des routeurs professionnels et certains modèles grand public.




La famille des systèmes BSD (NetBSD, FreeBSD, OpenBSD, etc...) supporte elle aussi le protocole PPTP à l’aide du port nommé mdp.
../..
Le protocole L2TP
- Le protocole L2TP
L2TP est un protocole combinant les avantages du PPTP de Microsoft et du Layer 2 Forwarding (L2F) de Cisco, ce protocole est décrit dans la RFC 2661 et a été créé par l’ Internet Egineering Task Force (IETF), il s’appuie lui aussi sur le protocole PPP. Le protocole L2TP est aujourd’hui principalement utilisé par les Fournisseurs d’Accès à Internet (FAI ou ISP en anglais).
L2TP est la plupart du temps couplé à IPSsec pour sécuriser les données, comme décrit dans la RFC 3193, en effet, L2TP ne s'occupe que du transport des données et non de leur confidentialité.

Fonctionnement général d'un VPN avec L2TP
Nous venons de voir que PPTP ne peut travailler que sur des réseaux IP, or, avec L2TP, il est possible d'interconnecter n'importe quel réseau orienté paquet (IP, ATM, X.25, Frame Relay).
Ce protocole de transport utilise UDP pour faire transiter les données et rajoute un en-tête L2TP aux paquets. Le problème est que UDP ne propose pas de système de contrôle de l'intégrité des données transmises (contrairement à TCP), L2TP s'appuie donc sur deux flux pour communiquer :
- Un premier flux est utilisé pour contrôler l'intégrité des échanges ainsi que gérer le tunnel, il utilise le port UDP 1701.
- Le second flux sert à envoyer purement et simplement les données, il peut lui aussi utiliser le port 1701 mais pas nécessairement, une liste de ports a d'ailleurs été assignée par le IANA à cet effet.
L'authentification et la sécurité des données ne sont pas assurées en natif par L2TP, c'est pourquoi on rajoute souvent une couche IPSec à ce genre de VPN. Cette couche permettra de garantir que les échanges se font entre les bonnes personnes (ou entités) et ne pourront être exploités en cas d'interception par une personne tierce.
../..
Le protocole L2TP - Suite
Type d'utilisationCe protocole est aujourd'hui
principalement utilisé pour établir des connexions occasionnelles entre
un utilisateur en déplacement (RoadWarrior) et le réseau de son
entreprise. Toutefois, il est également utilisé, certes dans une moindre
mesure, pour transporter toutes sortes de flux réseau. Lors de son
utilisation, L2TP est la plupart du temps couplé à IPSec pour sécuriser
les informations transmises de part et d'autre des deux réseaux.
On
pourrait très bien imaginer comme exemple de mise en oeuvre le cas d'un
protocole non routable utilisé par deux serveurs et dont chacun est sur
un réseau différent. On encapsulerait alors ce protocole dans un tunnel
L2TP, il changerait ainsi de réseau et permettrait aux deux serveurs de
communiquer quand même...
Implémentations
Les
systèmes
d'exploitation les plus courants supportent en natif le protocole L2TP,
tout comme la majorité des routeurs professionnels ainsi que
certains modèles grand public.


Linux supporte ce protocole depuis 1997, année depuis laquelle il supporte également PPTP et IPSec.


L2TP
est également supporté par la famille des systèmes BSD (NetBSD,
FreeBSD, OpenBSD, etc...) il est intégré directement dans le noyau du
système.
../..
Le protocole IPSec
- Le Protocole IPSec
Probablement le protocole VPN le plus utilisé
aujourd'hui, IPSec fit une première apparition dans les RFC numérotées
de 1825 à 1829 parues lors de l'année 1995. Ce protocole prend
directement en charge les trois composantes d'un VPN, à savoir : le
transport, l'authentification et la sécurisation des données.
Tandis qu'il agit comme une couche supplémentaire dans IPv4, IPSec est partie intégrante de IPv6. Ceci ayant pour but de simplifier l'intégration de ce dernier au sein des futurs réseaux IP (pas de redirections de ports entre les routeurs d'une entreprise pour acheminer un tunnel correctement).
Tandis qu'il agit comme une couche supplémentaire dans IPv4, IPSec est partie intégrante de IPv6. Ceci ayant pour but de simplifier l'intégration de ce dernier au sein des futurs réseaux IP (pas de redirections de ports entre les routeurs d'une entreprise pour acheminer un tunnel correctement).

Fonctionnement général d'un VPN avec IPSec
Il existe deux types d'implémentation de ce
protocole, suivant le niveau de sécurité et les besoins que l'on a, on
en choisira un en dépis de l'autre...
Les ports utilisés par IPSec sont le 500 en UDP (échange des clés) ainsi que le 50 et le 51 en TCP (transfert des données).
- Une première implémentation consiste à utiliser IP pour faire du transport : IPSec génère un paquet et le transmet à IP, ce dernier considèrera alors le contenu de la couche supérieure comme sécurisé et fera acheminer directement le paquet sans le modifier. Entendez par là que les en-têtes des couches supérieures ne seront pas cryptés (notamment l'adresse IP source et l'adresse IP de destination), et donc transmis en clair sur le réseau.
- Une autre implémentation, plus sécurisée, consiste à faire crypter par IPSec les en-têtes du paquet. Deux associations de sécurité* (SA en anglais) sont créées, une pour chaque extrémité du tunnel. Leur rôle sera à la fois d'établir la connexion entre les deux points (avec le protocole IKE), et de garantir l'intégrité de la communication (non modification) et sa sécurité (protocole ISAKMP). Internet Key Exchange (IKE) et Internet Security Association and Key Managment Protocol (ISAKMP) sont tous deux basés sur le principe de l'échange de clés publiques. ISAKMP s'appuie sur les algorithmes de cryptage DES et 3DES.
Une autre méthode dite de " haute sécurité " utilise le protocole Encapsuling Security Payload (ESP), dont le rôle est d'encapsuler les paquets. Couplé à un algorithme de cryptage (DES, 3DES, AES). IKE peut être rajouté en supplément pour encore plus de sécurité.
Les ports utilisés par IPSec sont le 500 en UDP (échange des clés) ainsi que le 50 et le 51 en TCP (transfert des données).
°°°°°°
*SA : La Security Association est un regroupement du protocole Authentification Header (AH)
et du protocole IKE. Ecapsuling Security Payload (ESP) a comme rôle d'assurer le cryptage des paquets. TLS est aussi utilisé.Le protocole IPSec - Suite
Type d'utilisationIPSec est principalement utilisé pour créer des
tunnels fixes, particulièrement de routeur à routeur. On relie ainsi de
façon permanente et transparente pour les utilisateurs deux réseaux
éloignés l'un de l'autre. Toutefois, et dans une moindre mesure, ce
protocole est aussi utilisé pour les clients RoadWarrior.
De par son intégration directe au sein d' IPv6, IPSec est promu à un bel avenir et tend à supplanter les autres protocoles VPN, même si son fonctionnement est le plus complexe. La multitude et le nombre de couches de sécurité et de cryptages possibles, à différents niveaux, font de ce protocole le plus sûr en matière de sécurité.
IPSec peut-être utilisé dans le cadre d'une architecture
centralisée où l'on créera par exemple plusieurs tunnels VPN
interconnectés au sein d'un routeur central : permettant ainsi aux
ordinateurs des différents points de communiquer.De par son intégration directe au sein d' IPv6, IPSec est promu à un bel avenir et tend à supplanter les autres protocoles VPN, même si son fonctionnement est le plus complexe. La multitude et le nombre de couches de sécurité et de cryptages possibles, à différents niveaux, font de ce protocole le plus sûr en matière de sécurité.
Implémentations
Les systèmes
d'exploitation les plus courants supportent désormais IPSec, la majorité
des routeurs professionnels et quelques modèles grand public aussi.


Depuis le noyau 2.5.47 Linux supporte ce protocole, les utilisateurs du noyau 2.4 peuvent se tourner vers FreeS/WAN pour l'utiliser.

Le support d' IPSec dans l'OS de la firme à la pomme est apparu, tout comme L2TP, dans la version Panther (10.3) de Mac OS.

NetBSD,
FreeBSD, OpenBSD supportent eux aussi ce protocole. Le projet KAME a pour but de fournir une implémentation pour IPv6.
../..
Conclusion
- Conclusion
Nous venons de voir au cours de ce dossier les deux principales utilisations des VPN qui sont faites aujourd'hui ainsi que les trois principaux protocoles utilisés actuellement. On retiendra que PPTP est particulièrement utile pour les connexions du type RoadWarrior. L2TP est équivalent avec cependant la capacité d'encapsuler tout type de réseau et ainsi router des protocoles qui normalement ne le sont pas en les encapsulant.
Quant à IPSec, ce dernier est idéal pour les tunnels LAN to LAN de par les niveaux de sécurité qu'il propose pour chaque couche qui intervient dans les communications. IPSec tend, dès la mise en place d' IPv6, à devenir le protocole de tunnelisation le plus utilisé, et ce dans les deux domaines d'utilisation des VPN (LAN to LAN et RoadWarrior).
Quant à IPSec, ce dernier est idéal pour les tunnels LAN to LAN de par les niveaux de sécurité qu'il propose pour chaque couche qui intervient dans les communications. IPSec tend, dès la mise en place d' IPv6, à devenir le protocole de tunnelisation le plus utilisé, et ce dans les deux domaines d'utilisation des VPN (LAN to LAN et RoadWarrior).

Cependant, une attention toute particulière est à accorder à la puissance de chiffrement que l'on souhaite utiliser dans son VPN pour crypter les données. En effet, la loi française fixe la limite de taille des clés à 128 bits (2 puissance 7) pour les particuliers, les entreprises doivent quant à elle faire une demande si elles souhaitent avoir recours à des clés d'une taille supérieure.
Par ailleurs, la loi française limite l'utilisation du cryptage à des domaines bien précis.
Documentation supplémentaire :
Créer un serveur VPN sous Windows 2000 / XP Pro
Configuration d'un serveur VPN sous Windows 2000
Par ailleurs, la loi française limite l'utilisation du cryptage à des domaines bien précis.
Documentation supplémentaire :
Créer un serveur VPN sous Windows 2000 / XP Pro
Configuration d'un serveur VPN sous Windows 2000