Virtual Private Network (Chapter 15)

1. Concepts
Le but des VPN (Virtual Private Network) est d'essayer et de fournir les mêmes possibilités de sécurité qu'une liaison louée peut fournir.
En effet, sur une liaison louée un routeur est sûr que son copain d'en face est bien qui il est et qu'il n'y a pas possibilité d'interception du trafic.


Les VPN fournissent ce genre de service au moyen de :

  • Protection : Interdir la possibilité à une personne interceptant un flux de données de pouvoir lire le contenu de celui-ci.
  • Authentification : Vérifier qu'un émetteur de paquet est bien celui qu'il dit être et non un usurpateur.
  • Intégrité des données : Vérifier que les données n'ont pas été modifiée durant leur transport.
  • Antireplay : Interdir la possibilité qu'un attaquant attrape du trafic authentique et puisse le réinjecter sur le réseau un peu plus tard.
Il y a plusieurs types de VPN :
  • Intranet: Permet de mettre en relation deux ou plusieurs sites de la même organisation.
  • Extranet: Permet de mettre en relation deux ou plusieurs sites d'organisation différente.
  • Accès: Connexion individuelle d'un utilisateur à un réseau d'entreprise.
Afin de mettre en place un VPN, nous avons besoin de logiciels et de matériels. Ceux-ci sont :
  • Routeur: Routeur ayant fonction de de VPN
  • ASA (Adaptive Security Appliance): Application/matériel permettant de mettre en place différente fonction, dont les VPN
  • PIX Firewall: Matériel cisco permettant de faire firewall et VPN (remplacé par ASA)
  • Concentrateur VPN: Matériel ancien permettant d'être un point de terminaison des VPN (remplacé aujourd'hui par les ASA).
  • Client VPN: Logiciel permettant à un ordinateur client d'être un client de VPN

2. IPSec
Définition: IPSec est un framework de services de sécurité sur les réseaux IP.

IPSec définit par exemple des fonctions d'encryption, d'authentification, ... En bref, IPSec fournit la base des services définit au 1. + échange de clefs.

Encryptage :

Les types d'encryptage :

Afin d'encrypter les données, on a vu dans le premier schéma, qu'il faut une clef. En général, ces clefs sont partagées. Néanmoins, le partage n'est pas simple. On ne peut envoyer en clair les clefs sur le réseau. La première solution a l'idée sont les PSK (Pre-Shared Key). Les clefs sont échangées par oral, téléphone, ... et rentrées manuellement.
Le problème avec cela est que ces clefs sont échangées par des humain et donc rarement changées.
L'échange de clefs dynamiques (les clefs sont changées souvent, donc peu de chance qu'elles soient cassées) est une sécurité et donc utilisé. Pour cela, il faut un mécanisme pour échanger les clefs de manière sure.

Echange de clefs:
Afin de survenir à ce problème, IPSec utilise le framework IKE (Internet Key Exchange) (RFC4306).
IKE utilise l'algorithme DH (Diffie-Hellman) afin d'échanger les clefs de manières sûre et non en clair sur le réseau.

Authentification et intégrité des données:
L'authentification fait en sorte que l'on soit sûr que le périphérique réseau qui nous envoie des données est bien celui qui doit nous les envoyer. L'intégrité des données a pour but de vérifier que les données n'ont pas été altérées durant la transmission.

La vérification de l'intégrité des données est réalisé au moyen du protocole AH. Dans ce protocole, on utilise une fonction de "hash" (HMAC) qui permet comme dans l'encryption des données de valider qu'il n'y a pas eu falcification des données. L'émetteur calcule une fonction de "hash" et l'envoit dans le header VPN, et le receveur au moyen d'une clef partagée (la même de chaque côté) calcule lui aussi le hash (via le paquet) et vérifie avec le "hash" fourni dans le header VPN qu'il a bien le même => Données intègres.

L'authentification se base sur le principe des clefs préviées et publiques. Le même principe que pour la vérification de l'intégrité des données est utilisé pour l'authentification, à la différence près que les données sont envoyées cryptées avec la clef privée de l'émetteur et que le receveur peut la décrypter avec la clef publique de l'émetteur.

ESP (Encryption Security Protocol) a pour but de crypter, d'authentifier, antireplay et vérifier l'intégrité des données.

3. VPN SSL
Les VPN SSL sont en fait des VPN basés sur SSL et TLS. En général ils sont utilisés via des serveurs web en SSL. Les clients sont donc des clients légers Web : Web VPN.