VPN Ipsec
VPN Ipsec
VPN Ipsec
4 Solutions VPN
4.1 Notion de VPN
4.1.1 Introduction au VPN
Les applications et les systèmes distribués font de plus en plus partie intégrante du paysage
d'un grand nombre d'entreprises. Ces technologies ont pu se développer grâce aux performances
toujours plus importantes des réseaux locaux. Mais le succès de ces applications a fait aussi apparaître
un de leur écueil. En effet si les applications distribuées deviennent le principal outil du système
d'information de l’entreprise, comment assurer leur accès sécurisé au sein de structures parfois
réparties sur de grandes distances géographiques ? Concrètement comment une succursale d’une
entreprise peut-elle accéder de façon sécurisé aux données situées sur un serveur de la maison mère
distant de plusieurs milliers de kilomètres comme si elles étaient locales ? Les VPN, Virtual Private
Network ou RPV, Réseau Privé Virtuel en français, ont commencé à être mis en place pour répondre à
ce type de problématique. Mais d’autres problématiques sont apparues et les VPN ont aujourd’hui pris
une place importante dans les réseaux informatique et l’informatique distribuées.
Un réseau VPN repose sur un protocole appelé "protocole de tunneling". Ce protocole permet
de faire circuler les informations de l'entreprise généralement de façon cryptée, d'un bout à l'autre du
tunnel; ainsi les utilisateurs ont l'impression de se connecter directement sur le réseau de l'entreprise.
Le principe du tunneling consiste à construire un chemin virtuel après avoir identifié l'émetteur et le
destinataire. Par la suite, la source chiffre les données au moyen d'algorithmes de cryptographie
négociés entre le client et le serveur et les achemine en empruntant ce chemin virtuel. Afin d'assurer
un accès aisé et peu coûteux aux intranets et extranets d'entreprise, les réseaux privés virtuels d'accès
simulent un réseau privé alors qu'ils utilisent en réalité une infrastructure d'accès partagée telle que
l'Internet. Les données à transmettre peuvent être prise en charge par un protocole différent d'IP, mais
dans ce cas le protocole de tunneling encapsule les données en ajoutant un en-tête. Le tunneling est
l'ensemble des processus d'encapsulation, de transmission et de désencapsulation.
Le VPN d'accès qui est utilisé pour permettre à des utilisateurs itinérants
d'accéder au réseau privé.
L'intranet VPN qui permet de relier deux intranets distants d'une même
entreprise.
L'extranet VPN qui permet d'ouvrir une partie ou la totalité du réseau privé à un
client ou un partenaire de l'entreprise afin de communiquer avec lui.
Gestion d'adresses: Chaque client sur le réseau doit avoir une adresse propre.
Cette adresse doit rester confidentielle. Un nouveau client doit pourvoir se
connecter facilement au réseau et recevoir une adresse.
Cryptage des données: Lors de leurs transports sur le réseau public les données
doivent être protégées par un cryptage efficace.
Gestion de clés: Les clés de cryptage pour le client et le serveur doivent pouvoir
être générées et régénérées.
Protocole de niveau 3 comme IPSec (Internet Protocol Security), développé par un groupe de
travail du même nom à l'IETF 15 depuis 1992, MPLS (MultiProtocol Label Switching)
principalement utilisé par les fournisseurs d'accès Internet.
15
Internet Engineering Task Force
4.2 Openvpn
4.2.1 Présentation
Comme expliqué plus haut, Openvpn est un logiciel libre de droit et il est donc une très bonne
alternative en ce qui concerne la création de tunnels protégés utilisant Internet comme support
physique. Openvpn se base sur le protocole de sécurisation SSL/TLS pour assurer la confidentialité
des échanges, ce protocole a été élaboré dans le but de protéger les données via des navigateurs web
(ex: https 16). L’authentification se fait la plupart du temps à l’aide de certificats accompagnés de clés.
Globalement, si l'on ne souhaite gérer que du trafic IP (niveau 3) il faudra s’orienter vers un
mode d’utilisation de niveau 3, tandis que si l’on désire transporter des protocoles autres que IP
(niveau 2) il faudra s’orienter vers le mode d’utilisation de niveau 3.
Pour s’authentifier l’un et l’autre, le client et le serveur s’échangent leur certificat et vérifient
chacun de leur côté la validité de celui-ci avec le certificat de l’autorité de certification.
Pour générer ces documents, j’ai utilisé un fichier de configuration d’Openssl joint en annexes.
Ces deux étapes sont à répéter pour créer un certificat pour le client à signer par la même
autorité de certification.
C’est le besoin d’éliminer les interceptions sur les réseaux par des personnes non autorisés et
par la même occasion d’empêcher la récupération de données personnels des utilisateurs qui a conduit
à l’élaboration d’un standard permettant des transmissions sécurisées des données via les navigateurs
Web. Netscape Communications est la compagnie qui a conçu le protocole SSL (Secure Socket
Layer), qui fut le premier protocole de sécurisation des communications via les navigateurs Web.
La première version du protocole a été publiée dans le milieu de l’année 1994 et est intégrée
au navigateur Mosaic, puis fin 1994 la seconde version fut intégrée dans le navigateur Netscape
Navigator. La troisième version fut publiée fin 1995 permettant de corriger les faiblesses de son
prédécesseur.
C’est en mai 1996 que l’IETF accepta de faire de SSL un standard universel. Et c’est en 1999
que SSL fut renommé par l’IETF : TLS (Transport Layer Security), TLS v1.0 n’est qu’une extension
de SSL v3.0.
A l’heure actuelle la plupart des navigateurs Web supportent le protocole et c’est ainsi que le
protocole SSL est utilisé dans les transactions sur Internet allant de l’achat de livres jusqu’au transfert
de fonds.
4.2.3.2 Généralités
SSL est donc un protocole à négociation développé à l’origine par Netscape. Son but est de
sécuriser les transactions Internet, par authentification du serveur et éventuellement du client, et par
chiffrement de la session.
Il est une couche optionnelle se situant entre les couches d’application et de transport. Le but
de SSL est d’être un protocole de sécurité facile à déployer assurant une sécurité totale des échanges
de plusieurs applications.
Pour TCP, SSL n’est qu’une application qui utilise ses services.
Application
HTTP, FTP ….
Handshake
SSL/TLS
Alert CCS
TCP
Record
IP
TCP
SSL ne dépend pas des applications utilisées lors des transactions et s’applique sous les
protocoles HTTP, FTP, Telnet, LDAP, etc.
16
HyperText Transfert Protocol Security
4.2.3.3 Fonctionnalités
Authentification : dans SSL v3.0 et TLS, l’authentification du serveur est obligatoire. Elle a
lieu à l’ouverture de la session. Elle emploie pour cela des certificats conformes à la
recommandation X 509 v3. Cela permet au client de s’assurer de l’identité du serveur avant
tout échange de données. Dans la version actuelle de SSL et de TLS l’authentification du
client reste facultative.
Confidentialité : Elle est assurée par des algorithmes de chiffrement symétriques. Bien que le
même algorithme soit utilisé par les deux parties chacune possède sa propre clé secrète qu’elle
partage avec l’autre. Les algorithmes utilisés sont : DES, 3DES, RC2, RC4.
Intégrité : Elle est assurée par l’application d’un algorithme de hachage (SHA ou MD5) aux
données transmises. L’algorithme génère, à partir des données et d’une clé secrète, une
signature pour les données appelée code d’authentification de message. Ainsi tout changement
appliqué aux données provoquera un message d’erreur côté récepteur puisque la signature
contenue dans le message sera différente de celle calculée par le récepteur.
Alert Protocol : Ce protocole génère des messages d'alerte suite aux erreurs que peuvent
s'envoyer le client et le serveur. Les messages sont composés de 20 octets, le premier étant soit
fatal soit warning. Si le niveau de criticité du message est fatal, la connexion SSL est
abandonnée.
17
Hashed Message Authentification Code
Après cette phase, ils peuvent communiquer (échange de données applicatives : HTTP, FTP, etc.)
Rappelons que les trois fonctionnalités principales de SSL sont l’authentification du serveur,
l’authentification du client et le chiffrement des données. Le protocole se compose de deux couches
principales : le protocole Record qui traite l’encodage des données à envoyer et le protocole
Handshake qui gère la négociation.
Nous allons détailler les diverses étapes du processus de négociation, avec les messages que
s'envoient le client et le serveur qui permettent la construction de la communication sécurisée grâce à
SSL.