Présentation des réseaux VPN et des protocoles utilisés

Le par Mathieu D.  |  12 commentaire(s)
Article n° 154 - VPN (120*120)

Ce dossier a pour but d'expliquer de la façon la plus simple possible ce qu'est un VPN, tant sur le principe que sur les moyens techniques et les technologies nécessaires à sa mise en oeuvre. Nous détaillerons les différents protocoles de tunnelisation ainsi que les protocoles de chiffrement utilisés lors de la mise en place de tunnels sécurisés VPN.

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 !


Image


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.


VPN - LAN to LAN
Un réseau "A" et un réseau "B"
interconnectés à l'aide d'un VPN




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.


VPN - RoadWarrior
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…)


Image


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'utilisation
Ce 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.


Schema VPN - PPTP


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.

ImagePPTP fut le premier protocole VPN implémenté dans les systèmes d’exploitation de Microsoft, il fit son apparition dans Windows 95 OSR2 et Windows NT Workstation. L’objectif était alors de sécuriser les communications établies par Internet entre les clients RoadWarrior et le réseau de leur entreprise (à l'aide du cryptage MPPE). Il est depuis disponible en natif dans pratiquement tous les systèmes Windows (Windows Mobile 2003 inclus). PPTP est accessible dans Windows 2000 et XP avec le service système " Routage et accès à distance ", un dossier consacré à la mise en place d’un serveur VPN par PPTP est d’ailleurs disponible sur GNT.

ImageWindows n’est pas le seul système d’exploitation à avoir implémenté PPTP, en effet, Linux supporte lui aussi ce protocole (il supporte le MPPE depuis le noyau 2.6.13 du 28 octobre 2005, bien plus tard). Suse 10 fut la première distribution Linux à proposer un client PPTP.


ImageDe son côté, Apple a lui aussi intégré le support de PPTP dans son système Mac OS X, Cisco et  Efficient Network vendent de leur côté des clients pour les versions antérieures de ce système.


Image
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é.


Image


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'utilisation
Ce 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.


Schema VPN - L2TP


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.


ImageTout comme PPTP, L2TP fut implémenté dans les systèmes d’exploitation de Microsoft dès Windows 95 OSR2 et Windows NT Workstation. En revanche le support de L2TP avec la couche IPSec ne fut disponible qu'à partir de Windows 2000.


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


ImageApple n'a intégré le support de L2TP (directement avec le support d'IPSec) que depuis Mac OS X Panther, bien que la société CheckPoint vendait déjà un client pour les versions 8 et 9 (basé sur Vanilla).


Image
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).


Image


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...

  • 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'utilisation
IPSec 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é.


Schema VPN - IPSec


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.


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.


ImageIPsec est supporté en natif depuis Windows 2000. Il est toutefois possible, pour les utilisateurs des versions antérieures à celle-ci, de télécharger le client IPSec de Microsoft pour Windows 95, 98, Me et NT 4.0.


Image
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.


Image
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.


Image
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).


Image


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


  • Partager ce contenu :
Vos commentaires Page 1 / 2
Trier par : date / pertinence
nikolours offline Hors ligne Héroïque avatar 959 points
Le #169793
Chapeu bas Mossieur Matheiu, une belle démonstration de vulgarisation informatique.
L'enchainement des themes est logique, bien ammené et la consistance est plus que satisfaisante!
Autant j'avais cassé le dernier dossier sur la sécurité qui m'avait bien fait rire autant là je dis : respect :jap:
Juste assez de détails mais pas trop (par exemple pas de schéma de paquet, chose trop complexe pour certains) et en tout cas suffisamment pour comprendre le principe général.


Bravo, ca fait plaisir
SGDA offline Hors ligne Héroïque avatar 793 points
Le #169794
Très intéressant et bien rédigé.

Vous auriez pu rajouter OpenVPN (Open Source)
qui utilise le protocole SSL/TLS et permet de monter un VPN à travers presque tout et avec presque tous les OS.
oziris offline Hors ligne Héroïque avatar 677 points
Le #169795
Je consulte GNT tous les jours depuis au moins 3 ans et MERCI a toutes l'equipe GNT pour ce Site !!!

Ceci est un bon article et assez technique tout de meme (ce qui ne me deplais pas ... bien au contraire !)

Cepandant, je viens de remarquer une erreur :
"Cryptage symétrique : il est utilisé par les algorithmes RSA (DES, RC4 et IDEA)"

Mais justement le RSA c'est un algorithme asymétrique et non symétrique :non:
(voir : http://fr.wikipedia.org/wiki/Rivest_Shamir_Adleman)

Pour DES et IDEA c'est bon (c'est bien symétrique) mais RC4 je ne sais pas ...

Mais sinon bon boulot !
Anonyme offline Hors ligne Vénéré avatar 3545 points
Le #169796
Pour IPSec : "Probablement le protocole VPN le plus utilisé aujourd'hui, IPSec fit une première apparition dans les RFC numérotées de 1985 à 1829 parues lors de l'année 1995." Il y aurait pas comme une erreur dans cette phrase' Que je sache, les RFC ne sont pas numéroté en ordre décroissant et je ne pense pas que la documentation d'IpSec s'étende sur plus de 150 RFC différentes.
oziris offline Hors ligne Héroïque avatar 677 points
Le #169797
Bon concernant le RC4 c'est bien symétrique aussi !

Y aurait t'il un probleme avec l'edition des commentaire '

Quand je clique sur l'icone à cotés de mon commentaire! j'arrive sur cette page :
http://www.generation-nt.com/astuces/commenter/154/'page=1&act=edit&news=554&num=3
Cédric offline Hors ligne Vénéré avatar 3633 points
Le #169798
Oziris>ce bug sera corrigé prochainement
Raymond away Absent Equipe GNT icone 2838 points
Le #169800
Bravo mon petit M@t, je dois reconnaître que c'est un très bon dossier, bien mené ! continue comme ça !!
oziris offline Hors ligne Héroïque avatar 677 points
Le #169801
Heu ... je vais peut etre paraitre chiant ...
Mais la partie sur la sécurisation des données me semble bien flou ....<img src="/img/emo/confused.gif" alt=":'" />

cryptage asymétrique et chiffrement asymetrique ca veux dire la meme chose ... (voir en dessous)

Le crytage a clés public et un crytage asymetrique ... donc il serait plus judicieux de mettre RSA dans le second point.

Par ailleur en francais cryptage se dit chiffrement

je cite : "En cryptographie, le chiffrement (PARFOIS APPELE A TORT CRYPTAGE) est le procédé grâce auquel on peut rendre la compréhension d'un document impossible à toute personne qui n'a pas la clé de (dé)chiffrement."
(http://fr.wikipedia.org/wiki/Chiffrement)

Ca donnerais :

# Chiffrement symétrique : il est utilisé par les algorithmes DES (RC4, IDEA, etc ...), le client et le serveur utilisent ici une même clé qui est renouvelée au bout d'un certain temps. La clé possède une durée de vie limitée.
# Chiffrement asymétrique, aussi appelé "chiffrement à clé publique" (Public Key Infrastructure, PKI) : cette fois, le client et le serveur connaîtront chacun une moitié de la clé (utilisation d'une clé publique et d'une clé privée)

Je suis peu etre pointilleux, mais ca me saute tellement au yeux que je ne pouvais pas ne rien dire ...

Bon sinon bon boulot quand même ... mes remarques sont là pour aider pas pour critiquer !

Continuer ainsi
oziris offline Hors ligne Héroïque avatar 677 points
Le #169802
Aussi pour citer un passage de wikipedia :
http://fr.wikipedia.org/wiki/Chiffrement

"Un système de chiffrement est dit :

* symétrique quand il utilise la même clé pour chiffrer et déchiffrer.
* asymétrique quand il utilise des clés différentes : une paire composée d'une clé publique, servant au chiffrement, et d'une clé privée, servant à déchiffrer. Le point fondamental soutenant cette décomposition publique/privée est l'impossibilité calculatoire de déduire la clé privée de la clé publique.

Les méthodes les plus connues sont le DES, le Triple DES et l'AES pour la cryptographie symétrique, et le RSA pour la cryptographie asymétrique, aussi appelée cryptographie à clé publique.

L'utilisation d'un système symétrique ou asymétrique dépend des tâches à accomplir. La cryptographie asymétrique est en général plus lente que la cryptographie symétrique mais elle a l'avantage de ne pas obliger à transmettre la clé secrète au destinataire. La transmission d'une telle clé nécessite un canal sécurisé qui n'est pas toujours disponible."
nikolours offline Hors ligne Héroïque avatar 959 points
Le #169803
perso wikipedia je fais moyennement confiance sur des trucs aussi pointu car ya des grosses conneries desfois (franchement la polémique cryptage/chiffrement on s'en carre le fion).
Ya que les RFC qui compte pour moi dans ce domaine.
icone Suivre les commentaires
Poster un commentaire