Vous êtes sur la page 1sur 44
VPN théorie et pratique
VPN théorie et pratique

version 2014.04

Sommaire

  • 1. Technologies VPN

  • 2. Certificats électroniques

  • 3. VPN IPsec

  • 4. VPN SSL OpenVPN

Définition

Un réseau privé virtuel virtual private network (VPN)

étend un réseau privé à travers un réseau public comme l’Internet. Il permet à un ordinateur d’envoyer et de recevoir des

données à travers des réseaux partagés ou publics comme s’ils étaient directement connectés au réseau privé, tout en bénéficiant des fonctionnalités, de la sécurité et des politiques de gestion de ce réseau privé. Une liaison VPN est créée en établissant une connexion virtuelle point-à-point sur de véritables connexions physiques par des protocoles de mise en tunnel ou de chiffrement du trafic.

Avantages

● Les technologies VPN permettent de connecter des endroits à travers le monde de manière sécurisé et cohérente. ● Aussi, les accès distants pour les utilisateurs mobiles connaît son succès. ● Enfin, les utilisateurs domestiques peuvent utiliser ces technologies pour cacher leur présence sur Internet.

Catégories

Les VPNs peuvent être :

à accès distant (remote-access, road-warrior) connectant des individus à un réseau privé site-à-site (site-to-site) connectant deux réseaux en leur bordure Les systèmes VPN peuvent être classés selon :

les protocoles utilisés pour la mise en tunnel du trafic

le point de terminaison du tunnel

la connectivité “site-to-site” ou “remote-access”

le niveau de sécurité offert

la couche OSI présente dans la connexion, comme des circuits de type L2 ou une connectivité réseau de type L3

Mécanismes de sécurité

Les technologies VPN sont supportées par des protocoles et des algorithmes de chiffrement, d’authentification et d’ intégrité. Le modèle de sécurité VPN assure :

● La confidentialité : même si le trafic est capturé, l’ attaquant ne verra que du trafic chiffré L’authentification de l’émetteur pour empêcher des accès non-autorisés L’intégrité des messages afin de détecter leur altération

VPN IPsec

développé par l’IETF pour IPv6 (quand celui-ci était obligatoire jusqu’au RFC6434 qui le recommande). IPsec est un protocole standard de sécurité largement

déployé avec IPv4 et L2TP. Attention, il s’agit d’un “framework” ouvert composé de plusieurs protocoles et supportant divers algorithmes. Sa conception rencontre les objectifs principaux de la

sécurité : authentification, intégrité et confidentialité. IPsec utilise le chiffement en encapsulant les paquets IP dans un paquet IPsec. Il opére donc à la couche 3. La désencapsulation intervient en bout du tunnel pour rendre le paquet IP original.

VPN SSL

Transport Layer Security (SSL/TLS) est un protocole de couche applicative qui peut mettre en tunnel le trafic entier d’un réseau ou des connexions individuelles.

On peut aussi lui trouver des fonctionnalités de type “WebVPN”. Un grand nombre de fabriquants proposent des solutions d’accès distants par VPN toutes aussi incompatibles entre elles.

Enfin, un VPN SSL peut se connecter quasiment de n’ importe quel endroit là où IPsec peut poser des problèmes avec les règles de pare-feu et NAT.

Autres protocoles VPN

ou Layer 2 Tunneling Protocol à travers un canal SSL

Cisco AnyConnect VPN et par OpenConnect VPN pour résoudre un problème SSL/TLS avec les tunnels sur UDP. Microsoft Point-to-Point Encryption (MPPE) fonctionnant

avec Point-to-Point Tunneling Protocol et d’autres implémentations Microsoft Secure Socket Tunneling Protocol (SSTP)

mettant en tunnel le trafic Point-to-Point Protocol (PPP)

3.0

Multi Path Virtual Private Network (MPVPN).

PPTP/L2TP

PPTP/L2TP

Clés symétriques

Cette méthode est la plus simple à comprendre : si Anne (A) veut envoyer un message chiffré à Bob (B) elle doit lui communiquer un mot de passe (Clé). Comme l'algorithme de chiffrement est symétrique, on a la relation suivante :

TexteChiffré = Chiffrement (clé, texte)

Clés symétriques

Ainsi, Anne peut aussi déchiffrer un message en provenance de Bob avec la même clé. Mais
Ainsi, Anne peut aussi déchiffrer un message en provenance de
Bob avec la même clé. Mais il faut au préalable trouver un
moyen sûr de transmettre la clé à l'abri des regards. La situation
peut cependant devenir complexe, si Anne doit envoyer un
message chiffré à Bob et à Charlie mais qu'elle ne souhaite pas
donner la même clé à Charlie. Plus le nombre de personnes est
grand, plus il est difficile de gérer les clés symétriques. D'autant
qu'il faut au préalable trouver un moyen sûr de transmettre la clé
à l'abri des regards.

Clés asymétriques

La propriété des algorithmes asymétriques est qu'un message chiffré par une clé publique n'est lisible que par le propriétaire de la clé privée correspondante. À l'inverse, un message chiffré par la clé privée sera lisible par tous ceux qui possèdent la clé publique.

Ainsi avec sa clé privée, Anne :

signe ses messages.

lit (déchiffre) les messages qui lui sont adressés.

Clés asymétriques

Clés asymétriques

Problématiques des clés asymétriques

Lorsqu'une entité (entreprise, association, individu, service public

...

)

veut

sécuriser ses communications (entrantes et sortantes) auprès d'un large public, le chiffrement le plus simple est l'asymétrique à clé publique : l'entité n'a qu'à diffuser sa clé publique à l'ensemble de son audience.

Le problème vient de la transmission de la clé publique. Si celle-ci n'est pas sécurisée, un attaquant peut se positionner entre l'entité et son public en diffusant de fausses clés publiques (par le biais d'un faux site internet par exemple) puis intercepter toutes les communications, lui permettant d'usurper l'identité du diffuseur de clés publique et de créer une attaque de l'homme du milieu.

Dans un cadre fermé et relativement restreint (entreprise, service public…) la diffusion de clés sécurisées est relativement simple et peut prendre de nombreuses formes, mais quand le diffuseur souhaite s'adresser à un public plus large avec lequel il n'a pas eu de contact préalable (grand public, public international) elle nécessite un cadre normalisé.

Certificats électroniques

Les certificats résolvent le problème du canal sécurisé grâce à la signature de tiers de confiance.

Un certificat électronique est un ensemble de données contenant :

au moins une clé publique ;

des informations d'identification, par exemple : noms, localisation,

E-mails ; au moins une signature ; de fait quand il n'y en a qu'une, l'entité signataire est la seule autorité permettant de prêter confiance (ou non) à l'exactitude des informations du certificat.

Les certificats électroniques et leurs cycles de vie (cf. Certificate Revocation List, Protocole de vérification en ligne de certificat) peuvent-être gérés au sein d'infrastructures à clés publiques.

Certificats électroniques

Le format le plus connu et plus utilisé est certainement X.509. Les certificats électroniques sont utilisés dans différentes applications informatiques dans le cadre de la sécurité des systèmes d'information pour garantir :

Autorités de certification

Les autorités de certification sont des organismes enregistrés

et certifiés auprès d'autorités publiques ou de gouvernance de l'internet qui établissent leur viabilité comme intermédiaire fiable. Ces organismes diffusent leurs propres clés publiques. Étant

certifiées fiables ces autorités sont en contact direct avec les principaux producteurs de système d'exploitation et de navigateurs internet qui incluent nativement les listes de clés des autorités de certification. C'est cette relation qui est à la base de la chaine de confiance. Ces clés sont appelées clés publiques racines ou clé root, elles sont utilisées pour identifier les clés publiques d'autres organismes.

Chiffrement

● Chiffrement par bloc (3DES, AES, ● Chiffement par flux (RC4, RC5) ● Fonction d’emprunte (hash) cryptographique (SHA-1, SHA-2, …)

...

)

Types de configuration

Deux types de configuration commune :

  • 1. Site-à-site : point-à-point, point-à-multipoints

  • 2. Utilisateur Mobile IPsec

IPsec

IPsec (Internet Protocol Security), défini par l'IETF comme un cadre de

standards ouverts pour assurer des communications privées et protégées sur des réseaux IP, par l'utilisation des services de sécurité cryptographiques, est un ensemble de protocoles utilisant des algorithmes permettant le transport de données sécurisées sur un réseau IP. IPsec se différencie des standards de sécurité antérieurs en n'étant pas

limité à une seule méthode d'authentification ou d'algorithme et c'est la raison pour laquelle il est considéré comme un cadre de standards ouverts. De plus, IPsec opère à la couche réseau (couche 3 du modèle OSI)

contrairement aux standards antérieurs qui opéraient à la couche application (couche 7 du modèle OSI), ce qui le rend indépendant des applications, et veut dire que les utilisateurs n'ont pas besoin de configurer chaque application aux standards IPsec. Réalisée dans le but de fonctionner avec le protocole IPv6, la suite de protocoles IPsec fut adaptée pour l'actuel protocole IP (IPv4).

IPsec

Son objectif est d'authentifier et de

chiffrer les données : le flux ne pourra être compréhensible que par le destinataire final (confidentialité) et la modification des données par des intermédiaires ne pourra être possible (intégrité). IPsec est souvent un composant de

VPN, il est à l'origine de son aspect sécurité (canal sécurisé ou tunneling). La mise en place d'une architecture sécurisée à base d'IPsec est détaillée dans la RFC 4301.

IPsec ● Son objectif est d'authentifier et de ● chiffrer les données : le flux neVPN , il est à l'origine de son aspect sécurité (canal sécurisé ou tunneling ). La mise en place d'une architecture sécurisée à base d'IPsec est détaillée dans la RFC 4301 . " id="pdf-obj-24-29" src="pdf-obj-24-29.jpg">

Protocoles IPsec

Lors de l'établissement d'une connexion IPsec, plusieurs opérations sont effectuées :

  • 1. Etape 1 : Echange des clés

    • a. IKE phase 1

    • b. IKE phase 2

  • 2. Etape 2 : Transfert de données

Etape 1 : Echange de clés

IKE Phase 1

un canal d'échange de clés, sur une connexion UDP depuis et vers le port 500 (ISAKMP pour Internet Security Association and Key Management Protocol).

Le protocole IKE (Internet Key Exchange) est chargé de négocier la connexion. Avant qu'une transmission IPsec puisse être possible, IKE est utilisé pour authentifier les deux extrémités d'untunnel sécurisé en échangeant des clés partagées. Ce protocole permet deux types d'authentifications, PSK (Pre- Shared Key ou secret partagé) pour la génération de clefs de sessions RSA ou à l'aide de certificats.

Ces deux méthodes se distinguent par le fait que l'utilisation d'un certificat signé par une tierce-partie appelée Autorité de certification (CA) assure la non-répudiation. Tandis qu'avec l'utilisation de clefs RSA, une partie peut nier être à l'origine des messages envoyés.

IPsec utilise une association de sécurité (Security association) pour dicter comment les parties vont faire usage de AH et de l'encapsulation de la charge utile d'un paquet.

Etape 1 : Echange de clés

IKE Phase 2

Une association de sécurité (SA) est l'établissement d'information de sécurité partagée entre deux entités de réseau pour soutenir la communication protégée. Une SA peut être établie par une intervention manuelle ou par ISAKMP (Internet Security Association and Key Management Protocol).

ISAKMP est défini comme un cadre pour établir, négocier, modifier et supprimer des SA entre deux parties. En centralisant la gestion des SA, ISAKMP réduit la quantité de fonctionnalité reproduite dans chaque protocole de sécurité. ISAKMP réduit également le nombre d'heures exigé par l'installation de communications, en négociant tous les services simultanément.

Etape 2 : transfert de données

Un ou plusieurs canaux de données par lesquels le trafic du réseau privé est véhiculé, deux protocoles sont possibles :

le protocole n o 51, AH, (Authentication Header) fournit

l'intégrité et l'authentification. AH authentifie les paquets en les signant, ce qui assure l'intégrité de l'information. Une signature unique est créée pour chaque paquet envoyé et empêche que l'information soit modifiée2. le protocole n o 50, ESP (Encapsulating Security Payload) fournit également l'intégrité mais aussi la confidentialité par l'entremise de la cryptographie.

Algorithmes de chiffrement

Pour que les réalisations d'IPsec interopèrent, elles doivent avoir un ou plusieurs algorithmes de sécurité en commun. Les algorithmes de sécurité utilisés pour une association de sécurité ESP ou AH sont déterminés par un mécanisme de négociation, tel que Internet Key Exchange (IKE).

Les algorithmes de chiffrement et d'authentification pour IPsec encapsulant le protocole ESP et AH sont :

HMAC-SHA1-96 (RFC 2404)

AES-CBC (RFC 3602)

Triple DES-CBC (RFC 2451)

En référence avec la RFC 4835

Modes de fonctionnement

IPsec peut fonctionner dans un mode transport hôte à hôte ou bien dans un mode tunnel réseau.

IPsec peut fonctionner dans un mode transport hôte à hôte ou bien dans un mode tunnel

Modes transport/tunnel

Mode transport

Dans le mode transport, ce sont uniquement les données transférées (la partie payload du paquet IP) qui sont chiffrées et/ou authentifiées. Le reste du paquet IP est inchangé et de ce fait le routage des paquets n'est pas modifié. Néanmoins, les adresses IP ne pouvant pas être modifiées sans corrompre le hash de l'en-tête AH généré par IPsec, pour traverser un NAT il faut avoir recours à l'encapsulation NAT-T. Le mode transport est utilisé pour les communications dites hôte à hôte (Host-to-Host).

Mode tunnel

En mode tunnel, c'est la totalité du paquet IP qui est chiffré et/ou authentifié. Le paquet est ensuite encapsulé dans un nouveau paquet IP avec une nouvelle en-tête IP. Au contraire du mode transport, ce mode supporte donc bien la traversée de NAT. Le mode tunnel est utilisé pour créer des réseaux privés virtuels (VPN) permettant la communication de réseau à réseau (e.g. entre deux sites distants), d'hôte à réseau (e.g. accès à distance d'un utilisateur) ou bien d'hôte à hôte (e.g. messagerie privée.)

OpenVPN

OpenVPN est un logiciel libre permettant de créer un réseau privé virtuel

(VPN) en mode pont (L2) ou en mode routage (L3). OpenVPN permet à des pairs de s'authentifier entre eux à l'aide d'une clé

privée partagée à l'avance, de certificats électroniques ou de couples de noms d'utilisateur/mot de passe. Il utilise de manière intensive la bibliothèque d'authentification OpenSSL

ainsi que le protocole SSLv3/TLSv1. Disponible avec une multitude d'environnements tel que Solaris,

OpenBSD, FreeBSD, NetBSD, Linux (Debian, Redhat,Ubuntu, etc

),

Mac

de sécurité et de contrôle. OpenVPN n'est pas compatible avec IPsec ou d'autres logiciels VPN. Le logiciel contient un exécutable pour les connexions du client et du serveur,

un fichier de configuration optionnel et une ou plusieurs clés suivant la méthode d'authentification choisie. ● http://fengnet.com/book/VPNs%20Illustrated%20Tunnels%20%

Chiffrement

OpenVPN uses the OpenSSL library to provide encryption of both the data and control channels. It lets OpenSSL do all the encryption and authentication work, allowing OpenVPN to use all the ciphers available in the OpenSSL package. It can also use the HMAC packet authentication feature to add an additional layer of security to the connection (referred to as an "HMAC Firewall" by the creator). It can also use hardware acceleration to get better encryption performance.

Librairie OpenSSL

OpenSSL est une boîte à outils de chiffrement comportant deux bibliothèques (libcrypto fournit les algorithmes cryptographiques, libssl implémente le protocole SSL) et une interface en ligne de commande (openssl).

Les bibliothèques (qui sont écrites en langage C) implémentent les fonctions basiques de cryptographie et fournissent un certain nombre de fonctions utiles. Grâce aux wrappers, il est possible de les utiliser dans une grande variété de langages informatiques.

Les paramètres de l'outil en ligne de commande openssl sont très nombreux ; ils permettent entre autres de choisir l'un des nombreux types de chiffrement (Blowfish, DES ou Triple DES, DSA, RC4, RC5, RSA…), d'encodage (base64…) ou de hachage (MD5, SHA-1…).

Authentification

OpenVPN has several ways to authenticate peers with each other. OpenVPN offers pre-shared keys, certificate- based, and username/password-based authentication. Preshared secret key is the easiest, with certificate based being the most robust and feature-rich. In version 2.0 username/password authentications can be enabled, both with or without certificates. However to make use of username/password authentications, OpenVPN depends on third-party modules.

Réseau

OpenVPN can run over User Datagram Protocol (UDP) or Transmission Control Protocol (TCP) transports, multiplexing created SSL tunnels on a single TCP/UDP port (RFC 3948 for UDP). From 2.3.x series on, OpenVPN fully supports IPv6 as protocol of the virtual network inside a tunnel and the OpenVPN applications can also establish connections via

IPv6.

It has the ability to work through most proxy servers (including HTTP) and is good at working through Network address translation (NAT) and getting out through firewalls. The server configuration has the ability to "push" certain network configuration options to the clients. These include IP addresses, routing commands, and a few connection options.

Réseau

OpenVPN offers two types of interfaces for networking via the

Universal TUN/TAP driver. It can create either a layer-3 based IP tunnel (TUN), or a layer-2 based Ethernet TAP that can carry any type of Ethernet traffic. OpenVPN can optionally use the LZO compression library to compress the data stream. Port 1194 is the official IANA assigned port number for OpenVPN.

Newer versions of the program now default to that port. A feature in the 2.0 version allows for one process to manage several simultaneous tunnels, as opposed to the original "one tunnel per process" restriction on the 1.x series. OpenVPN's use of common network protocols (TCP and UDP) makes it a desirable alternative to IPsec in situations where an ISP may block specific VPN protocols in order to force users to subscribe to a higher-priced, "business grade," service tier.

Sécurité

OpenVPN offers several internal security features. It runs in userspace, instead of requiring IP stack (and therefore kernel) operation. OpenVPN has the ability to drop root privileges, use mlockall to prevent swapping sensitive data to disk, enter a chroot jail after initialization and apply a SELinux context after initialization.

OpenVPN runs a custom security protocol based on SSL and TLS. OpenVPN offers support of smart cards via PKCS#11 based cryptographic tokens.

Extensibilité

OpenVPN can be extended with third-party plug-ins or scripts which can be called at defined entry points.

The purpose of this is often to extend OpenVPN with more advanced logging, enhanced authentication with username and passwords, dynamic firewall updates, RADIUS integration and so on. Several third party plug-ins exist to authenticate against LDAP or SQL databases such as SQLite and MySQL.