VPN
Mardi 06 novembre 2001 @ 19:48:33 | Auteur:
ilotech
Un article sur le VPN , base de travail pour le projet sur la " Téléphonie sur IP via adls "
VPN
Un VPN (Virtual Private Network) est une liaison sécurisée
entre 2 réseaux distants, à travers un réseau public, en général
Internet. Cette technique assure l’authentification des 2 réseaux
distants, l’intégrité des données et le chiffrage de celles-ci.
Les 3 grands cas d’utilisation de VPN sont les suivants :
- Raccordement de télé travailleurs ou travailleurs mobiles.
Ceux-ci se raccordent aux ressources de l’entreprise par modem ou
tout autre moyen de connexion.
- Interconnexion de succursales. Des sites distants d’une même
entreprise qui partagent les mêmes ressources sans avoir recours à
des lignes spécialisées.
- Exploitation de réseaux extranets. Ce segment trouve sa
justification dans l’essor du commerce électronique.
Le schéma ci-dessous représente le principe d’un VPN :
La principale raison pour implémenter un VPN est l’économie supposée
par rapport à tout autre type de connexion. Bien que les VPN nécessitent
l’acquisition de produits matériels et logiciels supplémentaires, le
coût à terme de ce genre de communication est moindre. L’entreprise
ne paye que l’accès à l’Internet via son fournisseur d’accès
Internet et non une communication nationale dans le cas d’une liaison
RNIS ou un forfait dans le cas d’une liaison spécialisée. La
technologie VPN procure la même sécurité lors des connexions
d’utilisateurs distants au réseau interne de l’entreprise.
- Serveur VPN : Un ordinateur qui accepte les connexions VPN de
clients VPN. Un serveur VPN peut fournir une connexion VPN accès
distant ou une connexion VPN routeur à routeur.
- Client VPN : Un odinateur qui initie une connexion VPN vers un
serveur VPN. Un client VPN peut être un ordinateur individuel qui
obtient une connexion VPN accès distant ou un routeur qui obtient
une connexion VPN routeur à routeur.
- Tunnel : La portion de connexion dans laquelle les données sont
encapsulées.
- La connexion VPN : La portion de connexion dans laquelle les données
sont chiffrées. Pour des connexions VPN sécurisées, les données
sont chiffrées et encapsulées dans la même portion de la
connexion.
Remarque : Il est possible de créer un tunnel et d’envoyer les données
dans ce même tunnel sans aucun chiffrage. Ce n’est pas une connexion
VPN car les données privées sont envoyées au travers d’un réseau
partagé ou public sous une forme non chiffrée et facilement lisible.
Un tunnel IP est utilisé lorsque l’on a besoin de
relier deux réseaux physiquement séparés, mais tous les deux connectés
à internet. Cela permet de manière transparente d’accéder du réseau
A à partir de n’importe quelle machine du réseau B. Il faut pour
cela que les 2 réseaux aient une machine directement connectée à
Internet pour permettre l’établissement du tunnel. Par exemple, quand
on veut accéder à sa machine au bureau, qui est sur un réseau privé,
à partir de sa machine personnelle qui est connectée à Internet via
un accès fournissant une adresse IP fixe et publique. Ou encore une
entreprise peut avoir deux sites distants, et ne pas vouloir payer le
prix d’une liaison spécialisée sur plusieurs centaines de kilomètres
pour relier leurs deux réseaux, et ainsi faire partager des ressources
communes internes, sans les publier sur Internet, ce qui constituerait
une énorme faille de sécurité.
Qu’est-ce que le tunneling ?
Le tunneling consiste à encapsuler les paquets d’un réseau, en général,
on encapsule des paquets d’un réseau privé dans des paquets
circulant sur internet.
Pour faire fonctionner l’ensemble il est nécessaire de mettre en
oeuvre un logiciel qui utilise un protocole identique à chaque extrémité
du tunnel.
Schéma de principe :
les paquets passent par Internet, ils sont très souvent cryptés et/ou
compressés.
En effet, le tunneling est utilisé pour faire passer des données entre
deux réseaux locaux, il y a une notion de confidentialité à intégrer.
Mais il faut savoir qu’un paquet crypté est toujours plus volumineux
qu’un paquet non crypté, on en profite donc pour compresser les données
; la charge CPU est plus importante mais plus efficace au niveau du réseau.
Ces options sont souvent dissociables et debrayables suivant
l’utilisation que l’on fait du tunnel.
Si par exemple on dispose d’une liaison assez rapide mais d’une
machine obsolète qui fait le routage on choisira de désactiver la
compression. Ou bien si le réseau interne d’une entreprise dispose déjà
de routeur qui crypte les données sur une couche inférieure, il ne
sera pas nécessaire d’activer le cryptage.
Dans l’exemple suivant la machine A envoie des informations vers la
machine B qui est de l’autre côté du tunnel. Le paquet va arriver
sur la passerelle qui va l’encapsuler dans un paquet circulant sur
Internet et destiné à la passerelle du réseau distant :
Celle-ci
va recevoir ce paquet et voir qu’il est destiné à une machine de son
réseau en regardant l’enveloppe. Il ne lui reste qu’à enlever
l’enveloppe, et transmettre le paquet à la machine B. Tout ceci nécessite
bien sûr que les paquets soient bien routés au sein de chaque réseau.
Chaque machine susceptible d’utiliser le tunnel devra savoir où
envoyer ses paquets. En général le transit est effectué par une
passerelle par défaut. Dans mon illustration, chaque machine cliente du
réseau B a comme passerelle par défaut 192.168.1.1. Cette même
machine a une route par défaut qui va sur Internet, mais doit aussi
savoir vers qui envoyer les paquets avec une adresse de destination du
type 192.168.2.X.
On distingue 2 modes de transport :
- Mode Transport : il protège le contenu d’une trame IP en
ignorant l’en-tête. Ce mode de transport est généralement
utilisé entre les points terminaux d’une connexion.
- Mode Tunnel : plus performant, il crée des tunnels en encapsulant
chaque trame dans une enveloppe qui protège tous les champs de la
trame. Il est utilisé entre 2 équipements dont au moins un des 2
n’est pas un équipement terminal. Les données peuvent être
chiffrées (mode ESP) ou pas (mode AH).
- AH (Authentification Header) : ce module garantit
l’authenticité des trames IP en y ajoutant un champ chiffré
destiné à vérifier l’authenticité des données renfermées
dans le datagramme. L’absence de confidentialité permet de
s’assurer que ce standard pourra être largement répandu sur
Internet, y compris dans les endroits où l’exportation,
l’importation ou l’utilisation du chiffrement dans des buts de
confidentialité est restreint par la loi.
- ESP (Encapsulating Security Header) : ce procédé assure
la confidentialité et l’authenticité des informations en générant
des données chiffrées sur une nouvelle trame, à partir de la
trame d’origine. Les avantages de la tunnelisation sont multiples.
Elle permet de cacher la topologie du réseau, de router des réseaux
non-routables au travers Internet et de faire cohabiter des
solutions VPN et pare-feu au niveau de la couche applicative.
Le chiffrement recommandé pour un VPN est basé sur le
standard US. Celui-ci présente 3 variantes suivant le nombre de bits
utilisés :
- 56 bits : simple, facilement déchiffrable
- 112 bits : déchiffrable par une attaque en ligne concernée, sans
complexité supplémentaire que le 56 bits
- 168 bits : basé sur 3 clés indépendantes mais pas aussi
difficile à craquer qu’un système à clé de longueur triple.
Cependant, le problème réside dans l’échange de la valeur de la
clé entre les 2 entités. On le résout grâce au protocole de
Diffie-Hellman. Celui-ci permet la négociation d’une clé unique,
de manière commune. Chaque entité détermine une moitié de la clé
et envoie les paramètres permettant de calculer la moitié
manquante à l’autre entité.
Ce protocole étant asymétrique, il se base sur une paire de clés
: privée et publique.
On imagine 2 entités (A et B) et leur jeu de clés privée et
publique. A calcule la moitié de la future clé commune et fournit
à B les paramètres permettant de calculer cette moitié. Il
utilise la clé publique de B pour chiffrer ces paramètres et les
envoie à B.
Ce dernier déchiffre le paquet grâce à sa clé privée et calcule
la moitié de clé qui lui manque. Il fait une opération similaire
de manière à fournir le complément à sa moitie de clé.
Ainsi, les 2 entités disposent d’une clé commune de session. La
faiblesse de ce type d’échange réside dans la validité de la clé
publique. Il s’agit de contrôler l’origine de l’entité qui
envoie la publique, il faut l’authentifier. Il est important de
noter qu’un chiffrement basé sur une solution matérielle se révèle
beaucoup plus rapide que son équivalente logicielle.
L'authentification
Elle est obtenue en fournissant la preuve de son
identité auprès de son interlocuteur. Il existe plusieurs technologies
dont voici les 3 principales :
- Les certificats digitaux : Un certificat est constitué
d’une clé publique et d’un certain nombre de champs
d’identification, le tout signé par un tiers certificateur.
Additionnellement, un certificat contient des informations de
gestion (numéro de série, date d’expiration,...). Ils se basent
sur les recommandations X509 et permettent de façon sûre
d’authentifier une personne. On fournit à une autorité de
certification les informations et celle-ci retourne un certificat
digital.
Ces certificats sont composés de 2 parties : les informations
concernant l’entité (nom, clé publique, adresse physique) et un
résumé chiffré de ces informations. Le résumé de ces
informations est effectué par un algorithme de hachage tel MD5 ou
SHA-1, qui retourne un numéro unique qui est ensuite chiffré.
Lorsqu’un certificat est transmis à une entité qui peut vérifier
l’authenticité d’une autre, elle procède en 4 étapes :
- elle sépare les informations de l’entité et le résumé
chiffré
- elle déchiffre le résumé chiffré
- elle recalcule un résumé en utilisant le même algorithme
(MD5)
- elle compare le résumé calculé par ses soins et le résumé
déchiffré : si les résultats correspondent, l’authenticité
est prouvée.
Avec la figure ci-dessous on peut mieux comprendre ce phénomène :
L’autorité de certification peut être de 2 types. Elle peut être
propriétaire et fournie par le constructeur ou bien elle peut être
externe. C’est alors une société tiers à qui l’on délègue la
gestion de sa PKI (Public Key Infrastructure).
- Phrase challenge : Le processus est similaire à celui
utilisé dans le cas des certificats digitaux. La différence réside
en l’absence d’autorité de certification ; les entités doivent
elles mêmes générer leurs certificats digitaux. La signature est
alors chiffrée par une phrase challenge commune aux 2 entités. Il
faut donc que celle-ci soit entrée dans tous les équipements désirant
communiquer
- Radius : Ce système utilise un serveur
d’authentification RADIUS. Lors d’une demande de connexion
d’un client sur un équipement VPN, ce dernier demande le mot de
passe et l’identifiant RADIUS du client. Ensuite, l’équipement
VPN utilise sa clé secrète pour vérifier l’authentification
auprès du serveur RADIUS.
Cette étude nous permet de dégager quelques points
important concernant les solutions VPN
- longueur des clés utilisées au chiffrement,
- algorithmes de chiffrement,
- algorithmes de hachage,
- chiffrement matériel/logiciel,
- nombre de connexions simultanées,
- type d’authentification.
Ce document est issu de documentations écrites par les personnes
suivantes : Yann BIZEUL et Guillaume
Desgeorge