Présentation
Depuis quelques temps, nous assistons à la démultiplication des « offres VPN ». Celles –ci naguères réservées aux institutions et entreprises se voient désormais proposées aux particuliers.
Les offres se divisent principalement en deux catégories : les outils logiciels d'une part, les systèmes matériels embarquant des applications de VPN d'autre part. Dans le cadre de ce travail, nous allons nous concentrer essentiellement sur l’aspect logiciel de cette technologie.
Pour commencer, nous essayerons de déterminer à quels besoins tente de répondre cette technologie. Une fois cela posé, il nous sera plus facile de définir les grands principes qui sous-tendent celle-ci. Nous continuerons par la présentation des différents cas de figure dans lesquels peut se trouver l’utilisateur d’un VPN. Nous enchainerons sur les principales technologies disponibles et les procédés d’encapsulation, de chiffrement et d’authentification utilisés. Enfin, nous mettrons en pratique ces différents concepts en configurant un serveur VPN à l’aide d'OpenVPN.
Nous vous souhaitons une très bonne lecture.
1. L’évolution des besoins
Depuis longtemps, les entreprises recherchent des moyens, fiables et sécurisés, d’échanger des données avec un site distant. La solution naguère usitée était de recourir à des liaisons dédiées mises en place par les opérateurs.

Illustration : Interconnexion avec le réseau de France Télécom1
Néanmoins le coût de location très élevé d’une ligne dédiée restreint l’emploi de cette technologie. La technique de commutation de paquets ou de trames propose alors une alternative grâce à la mutualisation des ressources.
Différents protocoles se succèdent ou coexistent alors : X.25, Frame Relay, ATM, MPLS. Ainsi X25 (protocole soutenant le réseau TRANSPAC) a tenu jusqu'à nos jours. Orange Business Services vient d'annoncer l’arrêt de sa commercialisation le 31 juillet prochain et l'arrêt technique définitif le 30 septembre 2011.2
Toutefois les fusions, acquisitions et délocalisations d’entreprises s’accélérant ainsi que l’apparition de nouveaux modes de travail (télétravail, utilisateurs itinérants) vont engendrer une hausse de la demande et du coût de ces lignes dédiées (ou mutualisées).
Il devient donc nécessaire de pouvoir mettre en place une connexion sécurisée (authentification et cryptage) entre deux ou plusieurs sites passant à travers un réseau public (Internet). C’est à ce besoin que veulent répondre les VPN.
2. Typologie des VPN

Schéma : Principaux domaines d’application.3
Les différents cas représentés ci-dessus peuvent être regroupés en quelques catégories principales4:
VPN d’accès distant (poste à passerelle).
L’utilisateur nomade se connecte, au serveur VPN de l’entreprise, qui lui donne accès, une fois authentifié, à toutes (ou certaines) ressources de l’entreprise. Le gain en productivité et réactivité est appréciable, l’utilisateur peut directement interagir avec les logiciels de l’entreprise comme s’il était dans un bureau de la maison mère.
VPN intranet (passerelle à passerelle).
Connexion de deux réseaux locaux via Internet. Les utilisateurs du réseau A peuvent accéder aux ressources du réseau B et vice versa, comme s’ils faisaient partie d’un seul et unique réseau.
VPN extranet (passerelle à passerelle)
De conception identique à l’intranet mais a destination des sous-traitants ou des clients de l’entreprise. Ici des restrictions d’accès du type firewall sont utilisées en conjonction à la technologie VPN. Le but étant de restreindre l’accès a certaines ressources de l’entreprise.
On pourrait rajouter une quatrième catégorie (poste à poste) qui comprendrait, par exemple, le cas d’une liaison VPN dédiée à la configuration/maintenance du serveur par l’administrateur.
3. Principe
« Le principe du VPN est basé sur la technique du tunneling. Cela consiste à construire un chemin virtuel après avoir identifié l'émetteur et le destinataire. Ensuite la source chiffre les données et les achemine en empruntant ce chemin virtuel. Les données à transmettre peuvent appartenir à un protocole différent d'IP. Dans ce cas le protocole de tunneling encapsule les données en rajoutant un entête, permettant le routage des trames dans le tunnel. Le tunneling est l'ensemble des processus d'encapsulation, de transmission et de désencapsulation»5.
4. Les principales solutions VPN
Comme nous l’avons vu, l’encapsulation est la base du principe de fonctionnement des VPN. Comme ceux ci ont été conçus des le départ comme une émulation d’une liaison privée point à point, Ils utilisent les mêmes mécanismes.
Rem : Nous ne parlerons pas ici des VPN MPLS qui ne peuvent être mis en place que par un opérateur et qui relèvent donc plus de la problématique des réseaux privés sur des lignes dédiées.
A. La base : PPP
Partons de la couche de liaison (2).
Pour comprendre comment se déroule une connexion entre deux hôtes sur une liaison point à point, il convient d’évoquer un des principaux protocoles de transmission.
PPP (Point-to-Point Protocol)
C’est un ensemble de protocoles assurant l'échange des données sur une liaison point à point. Son avantage est de permettre à plusieurs protocoles de transférer des données simultanément. Bien que PPP ne permette pas d’établir des VPN, il est le protocole fondamental de beaucoup de logiciels d'accès distant. Une de ses fonctions avancées permet la gestion de l’authentification.
PPP assure différents processus :
- L'encapsulation des datagrammes.
- Le contrôle de la liaison avec LCP (Link Control Protocol).
- Etablissement, configuration, test et enfin clôture de la liaison
- Le contrôle de la couche réseau avec NCP (Network Control Protocol).
- Choix et test des protocoles réseau

Schéma :Format d'une trame PPP6.
Le fanion est un délimiteur de trame pour la synchronisation.
Adresse de diffusion de la trame.
Le champ commande permet de signaler différents types de trames : trame d'information (données), trame de contrôle, trame non numérotée.
Le champ protocole indique quel protocole transmet les données. À chaque protocole est associé un numéro.
Le champ FCS (Frame Check Sequence) est le code de détection d'erreurs.
D’autres protocoles de la suite PPP peuvent être utilisés conjointement pour sécuriser le transfert des données :
PAP (Password Authentication Protocol), le login et le mot de passe transitent en clair sur le réseau.
CHAP (Challenge Handshake Authentication Protocol), ici le mot de passe est remplacé par une clé de chiffrement de 16 bits soumise à un hachage Md5. Ce mécanisme va être repris par Microsoft qui va la perfectionner et développer successivement MS-CHAPv1 et MS-CHAPv27.
B. PPTP
PPTP (Point-to-Point Tunneling Protocol) -Cisco, repris par Microsoft et compatible avec la plupart des autres plateformes (poptop sous linux par exemple)-
Conçu comme une prolongation du Protocole PPP, ce protocole est intégré dans toutes les versions de Windows depuis Windows 2000. Cette omniprésence explique sans doute pourquoi ce protocole est encore utilisé.
PPTP introduit un nouveau niveau d'encapsulation et un nouvel entête : GRE (Generic Route Encapsulation).
Le header GRE va contenir les informations de routage nécessaires à la création d’un tunnel. GRE achemine les données entre les deux extrémités du tunnel.

Figure : Encapsulation GRE8.
C. L2TP
L2TP (Layer 2 Tunneling Protocol) correspond à la fusion des protocoles PPTP et L2F (Layer Two Forwarding) de Cisco. Il concerne les plateformes Windows Server 2003 et 2008. L’avantage principal de cette fusion est pouvoir traiter d’autres formes de paquet que des paquets IP (Frame Relay ou Atm par exemple). Le serveur L2TP va utiliser un port UDP (1701) pour mettre en place le tunnel. Celui-ci sera géré par L2TP pendant le trafic sur l’infrastructure publique. Une fois atteint l’équipement de terminaison (serveur L2TP), PPP reprendra le relais.
Comme ce protocole n’embarque aucune méthode d’authentification ou de chiffrement, on l’utilise généralement conjointement à IPsec.

Figure : Figure : trame L2TP9.
L’en-tête L2TP comprend
- Un champ « type » : message de données ou de contrôle
- Un champ «Length » : Longueur du message
- Un champ « Sequence » indique si les séquences vont êtres numérotées ou non
- Un champ « Priority » Message prioritaire ou non
- Un champ « ver » : valeur 1 si le message est L2F, 2 si L2TP
- Un champ « Tunnel ID » et un champ « Session ID » : Les identifiants sont ceux du destinataire
- Un champ « Ns » et un Champ « Nr » : si la numérotation des séquences est activée, il s’agit du numéro du message ainsi que de celui du message suivant.
D. IPsec
Protocole de niveau 3 (réseau) -multiplateformes-
IPSec (Internet Protocol Security) est un système de normes ouvertes qui vise à assurer la protection des communications privées sur les réseaux publics.
IPSec est soutenu par deux protocoles de sécurité (AH et ESP) et un protocole de gestion (IKE).
AH (Authentication Header), est employé pour assurer l’authentification des machines aux deux extrémités du tunnel. Il permet aussi de vérifier l’unicité des données grâce à l’attribution d’un n° de séquence ainsi que l’intégrité de celles-ci a l’aide d’un code de vérification des données (Intégrity Check Value).
ESP (Encapsulating Security Payload), répond, quant à lui, au besoin de crypter les données. Il peut toutefois aussi gérer l’authentification et la vérification de l’intégrité mais de manière moins poussée qu’AH.
IKE (Internet Key Exchange), IKE négocie les algorithmes cryptographiques et les paramètres relatifs destinés à AH et ESP. Il fait cela en deux phases :
- Phase 1 (Main mode ou aggresive Mode), Lors de cette phase un tunnel est établi. Celui-ci va servir à générer une clé mère (dont la valeur va dépendre de différents paramètres comme le "pre-shared secret" ou le groupe Diffie-Hellman choisi ). Cette clé va servir à en engendrer trois autres servant à l’authentification, le chiffrement et la production de nouvelles clés.
- Phase 2 (Quick Mode), établissement du canal (et des Security Association) destinés au transfert des données en fonction des paramètres négociés lors de la phase1 (pour un mode full duplex il faut établir deux tunnels et donc deux SA).
Les modes d'IPSec
Le mode Transport, récupère les données provenant de la couche 4 (TCP/transport), les authentifie et les chiffre puis enfin les envoie à la couche 3 (IP/réseau).Ce mécanisme ne modifie pas l’entête IP existant mais intercale le header AH/ESP entre le header IP et les données.
Le mode Tunnel, est lui généralement utilisé quand on veut relier un site à un autre (de passerelle à passerelle). Il ne modifie pas l’entête d’origine mais rajoute le header AH/ESP et encapsule le tout avec un nouvelle entête IP a destination de la passerelle.

Figure: Les deux modes d’IPsec :10.
La SA (Association de Sécurité)
Il s’agit d’une association de données servant à stocker l’ensemble des paramètres associés à une seule communication.
L'adresse de destination des paquets
Protocole AH / ESP
Mode tunnel ou transport
Les algorithmes de sécurité utilisés pour chiffrer, vérifier l'intégrité, authentifier
Durée de vie de la SA
La SPD (Security Policy Database)
Ces SA constituent les enregistrements d’une base de données qui est consultée lors de l’envoie d’une trame. IPsec pourra alors traiter chaque trame au cas par cas.
Comme on peut le voir IPsec constitue un système de sécurité complet pour IP. Néanmoins il reste assez complexe à implémenter et à configurer. De plus il ne propose pas d’authentification de l’utilisateur comme peut le faire SSL et ne peut donc pas être utilisé pour protéger des procédures financières par exemple.
E. SSH - OpenSSH
SSH (Secure Shell), est un protocole qui permet d’établir une connexion sécurisée entre un client et un serveur. Il est en ce sens, le successeur du protocole Telnet qui est aujourd'hui de moins en moins utilisé en raison de son déficit sécuritaire (les logins et mots de passe sont transmis en clair sur le réseau). PuTTY11, client Telnet et SSH complet, en est une version très populaire. Il est d’ailleurs utilisé pour équiper les smartphones à base d’OS Symbian.
SSH n’est généralement pas considéré comme un protocole VPN « pur». Toutefois, celui-ci permet de faire du tunneling et propose certaines fonctionnalités des VPN:
- Authentification avec ssh-keygen
- Identification du client ( /.ssh/authorized_keys )
- Identification du serveur ( / .ssh/known_hosts )
- Cryptage (RSA et DSA)
- Vérification de l’intégrité des paquets
SSH permet de plus d’encapsuler une multitude d’autres protocoles.

Figure : Exemple de tunnel SSH12.
SSH peut donc paraitre idéal pour relier un client nomade à certains serveurs d’une entreprise. C’est une alternative intéressante à certains usages d’un VPN (et bien plus facile à mettre en œuvre). Toutefois L'utilisateur ne se percevra pas comme faisant parti du réseau local de la société et n’aura pas accès à l’ensemble des ressources de celle-ci.
F. SSL (TLS) – OpenSSL
Comme nous l’avons vu avec les protocoles IPSec, L2TP et PPTP, le principe essentiel repose sur la création d’un tunnel qui va permettre de véhiculer des trames IP au niveau réseau (routage IP).
Toutefois, il existe aussi des VPN dont le principe n’est pas de relayer les datagrammes IP, mais directement des communications TCP et UDP dont la partie transitant par Internet est sécurisée. Ce processus se déroulant cette fois au niveau de la couche session. C’est notamment le cas de SSL / TLS.
SSL (Secure Socket Layer) est un ensemble de normes, développées par Netscape, visant à sécuriser la transmission de données à travers une infrastructure publique.
Pour construire le tunnel, le serveur VPN va cette fois employer le protocole SSL. Toute l’authentification va reposer sur la norme X.509 qui établi un standard de certificats numériques. Pour la gestion des certificats il est possible d’implémenter des solutions telles que : Red Hat Certificate System (environ 22.000 € pour une licence de trois ans, un serveur 500 certificats) ou EJBCA Enterprise PKI. Il est aussi possible de faire appel à une autorité de certification (AC) Externe telles : VeriSign, IdenTrust ou encore en Belgique : Certipost, GlobalSign et Isabel qui se partagent l’essentiel du marché des grandes entreprises et administrations.
Le protocole SSL comprend un ensemble de procédures :

Figure : Protocoles SSL13.
+ Handshake
Authentification du serveur et optionnellement du client,
Négociation des algorithmes de Cryptage et de hachage, échange d’un nombre aléatoire,
Génération des clés.
+ ChangeCipherSpec (CCS)
Indique au Record les accords passé en matière de cryptage.
+ Alert
Cette procédure peut être invoquée par :
Handshake en cas d’irrégularités lors de cette phase,
Par record en cas de doute sur l’intégrité du message,
Par l’application en amont pour mettre fin a la communication.
+ Record
Cryptage des données, vérification de l’intégrité et envoi à la couche TCP.
Il va de soit que la majorité des web server offrent la possibilité d’établir une connexion SSL : Apache, IIS, Oracle Web Application Server, Java Server de Sun Microsystems,…
La quasi-totalité des équipementiers réseaux proposent eux des solutions VPN SSL.
Par contre les solutions VPN serveur ne sont pas légion : serveur SSTP (Secure Socket Tunneling Protocol) Windows Vista Service Pack 1 (SP1) ou Windows Server 2008, SSL-Explorer (anciennement open source, racheté par Barracuda Networks, Inc) et OpenVPN (toutes plateformes).
L’utilisation d’une solution VPN a base de SSL a plusieurs avantages dont la facilité implémentation dans une architecture réseau préexistante, la mise en place d’un tunnel via le port 443 assure que celui-ci va franchir tous les firewalls et enfin cette technologie est intégrée a tous les navigateurs web, il n’est donc plus obligatoire d’installer un client VPN sur chaque machine.
Néanmoins, comme la montré, par le passé, Debian, des failles peuvent toujours être découvertes dans l’une ou l’autre bibliothèque SSL14. Plus récemment, l'US-CERT a publié une alerte de sécurité concernant les solutions VPN SSL (sans client VPN) de certains constructeurs. Une simple page web piégée permettrait d’obtenir les tokens d'une session VPN15. Enfin de manière plus anecdotique des chercheurs de l’University of Michigan ont encore abaissé le temps mis pour craquer une clé 1024-bit OpenSSL. Certes en « local » mais record battu tout de même16.
5. OpenVPN
Cette suite d'outils open-source (Licence GPL-v2) permet de mettre en œuvre un réseau privé virtuel pour un coût relativement faible.
L'un de ses points forts est également son support multi-plateformes, qui est idéal pour un réseau de type hétérogène.
Il utilise:
- OpenSSL afin d'authentifier de façon bidirectionnelle le client et le serveur, ces librairies s'occupent également du cryptage des transactions.
- Les interfaces virtuelles TUN/TAP pour encapsuler le trafic IP.
- Diffie-Hellman comme protocole d'échange pour les clés privées.
Nous avons choisi de développer cette solution de VPN pour toutes ces qualités.
- Sources généralistes réseaux
- Sources généralistes : les VPN
- http://technet.microsoft.com/fr-fr/library/cc771298%28WS.10%29.aspx
- École Ouverte Francophone, Théorie sur les réseaux privés virtuels, Module SR016, Paris.
- F. Huet - C. Verhille, GNU/Linux Fedora, Edition eni (juin 2007).
- http://www.digitalworldtokyo.com/index.php/digital_tokyo/articles/remote_workers_rejoice_as_vpn_gets_speed_bump/
- http://www.vpn-info.com/type_of_vpn.htm
- o http://www.supinfo-projects.com/fr/2006/reseau_vpn/
- Sources PPP
- Sources PPTP
- Sources L2TP
- Sources IPsec
- http://fr.wikipedia.org/wiki/IPsec
- http://fr.wikipedia.org/wiki/%C3%89change_de_cl%C3%A9s_Diffie-Hellman
- http://www.frameip.com/ipsec/
- S. Frankel – K. Kent – R. Lewkowski – A.D. Orebaugh – R.W. Ritchey – S.R. Sharma, Guide to IPsec VPNs, Recommendations of the National Institute of Standards and Technology, NIST Special Publication 800-77, Gaithersburg, MD 20899-893, USA (December 2005)
- Sun Microsystems, Inc., Guide d'administration système: services IP, Référence: 820–2982–16, Sun Microsystems, Inc., Santa Clara, CA95054, USA (Octobre2009) PP. 513 – 674.
- Sources SSH -OpenSSH
- Sources SSL (TLS) – OpenSSL
- http://fr.wikipedia.org/wiki/Transport_Layer_Security
- http://www.debian.org/security/2008/dsa-1571
- http://www.kb.cert.org/vuls/id/261869
- http://www.engadget.com/2010/03/09/1024-bit-rsa-encryption-cracked-by-carefully-starving-cpu-of-ele/
- A. Serhrouchni, SSL/TLS, SET : le transport sécurisé, ENST-PARIS (septembre 2002)
- J. Steinberg, adapté par B. Sonntag, SSL VPN, Accès Web et extranets sécurisés, Groupe Eyrolles (2006) PP 01-20.
- G. Yannaël, L’authentification par certificats, UER d’informatique, ULB LYON 1 (2007/2008).
- Sources OpenVPN
interconnexion de sites distant au site central par vpn
Aperçu du message:
Fermer l'aperçu