Vous êtes sur la page 1sur 44

VPN thorie et pratique

goffinet@goffinet.eu, CC-BY, version 2014.04

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Sommaire
1. 2. 3. 4. Technologies VPN Certificats lectroniques VPN IPsec VPN SSL OpenVPN

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

1. Technologies VPN
http://en.wikipedia. org/wiki/Virtual_private_network

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Dfinition
Un rseau priv virtuel virtual private network (VPN) tend un rseau priv travers un rseau public comme lInternet. Il permet un ordinateur denvoyer et de recevoir des donnes travers des rseaux partags ou publics comme sils taient directement connects au rseau priv, tout en bnficiant des fonctionnalits, de la scurit et des politiques de gestion de ce rseau priv. Une liaison VPN est cre en tablissant une connexion virtuelle point--point sur de vritables connexions physiques par des protocoles de mise en tunnel ou de chiffrement du trafic.
goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Avantages
Les technologies VPN permettent de connecter des endroits travers le monde de manire scuris et cohrente. Aussi, les accs distants pour les utilisateurs mobiles connat son succs. Enfin, les utilisateurs domestiques peuvent utiliser ces technologies pour cacher leur prsence sur Internet.

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Catgories
Les VPNs peuvent tre : accs distant (remote-access, road-warrior) connectant des individus un rseau priv site--site (site-to-site) connectant deux rseaux en leur bordure Les systmes VPN peuvent tre classs selon : les protocoles utiliss pour la mise en tunnel du trafic le point de terminaison du tunnel la connectivit site-to-site ou remote-access le niveau de scurit offert la couche OSI prsente dans la connexion, comme des circuits de type L2 ou une connectivit rseau de type L3
goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Mcanismes de scurit
Les technologies VPN sont supportes par des protocoles et des algorithmes de chiffrement, dauthentification et d intgrit. Le modle de scurit VPN assure : La confidentialit : mme si le trafic est captur, l attaquant ne verra que du trafic chiffr Lauthentification de lmetteur pour empcher des accs non-autoriss Lintgrit des messages afin de dtecter leur altration

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

VPN IPsec
Internet Protocol Security (IPsec) a t initialement dvelopp par lIETF pour IPv6 (quand celui-ci tait obligatoire jusquau RFC6434 qui le recommande). IPsec est un protocole standard de scurit largement dploy avec IPv4 et L2TP. Attention, il sagit dun framework ouvert compos de plusieurs protocoles et supportant divers algorithmes. Sa conception rencontre les objectifs principaux de la scurit : authentification, intgrit et confidentialit. IPsec utilise le chiffement en encapsulant les paquets IP dans un paquet IPsec. Il opre donc la couche 3. La dsencapsulation intervient en bout du tunnel pour rendre le paquet IP original.
goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

VPN SSL
Transport Layer Security (SSL/TLS) est un protocole de couche applicative qui peut mettre en tunnel le trafic entier dun rseau ou des connexions individuelles. On peut aussi lui trouver des fonctionnalits de type WebVPN. Un grand nombre de fabriquants proposent des solutions daccs 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 problmes avec les rgles de pare-feu et NAT.

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Autres protocoles VPN


Datagram Transport Layer Security (DTLS) - utilis par Cisco AnyConnect VPN et par OpenConnect VPN pour rsoudre un problme SSL/TLS avec les tunnels sur UDP. Microsoft Point-to-Point Encryption (MPPE) fonctionnant avec Point-to-Point Tunneling Protocol et dautres implmentations Microsoft Secure Socket Tunneling Protocol (SSTP) mettant en tunnel le trafic Point-to-Point Protocol (PPP) ou Layer 2 Tunneling Protocol travers un canal SSL 3.0 Multi Path Virtual Private Network (MPVPN). Secure Shell (SSH) VPN - OpenSSH
goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

PPTP/L2TP

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

2. Certificats lectroniques
http://fr.wikipedia.org/wiki/Certificat_%C3% A9lectronique

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Cls symtriques
Cette mthode 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 symtrique, on a la relation suivante : TexteChiffr = Chiffrement (cl, texte)

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Cls symtriques
Ainsi, Anne peut aussi dchiffrer un message en provenance de Bob avec la mme cl. Mais il faut au pralable trouver un moyen sr 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 mme cl Charlie. Plus le nombre de personnes est grand, plus il est difficile de grer les cls symtriques. D'autant qu'il faut au pralable trouver un moyen sr de transmettre la cl l'abri des regards.

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Cls asymtriques
La proprit des algorithmes asymtriques est qu'un message chiffr par une cl publique n'est lisible que par le propritaire de la cl prive correspondante. l'inverse, un message chiffr par la cl prive sera lisible par tous ceux qui possdent la cl publique. Ainsi avec sa cl prive, Anne : signe ses messages. lit (dchiffre) les messages qui lui sont adresss.

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Cls asymtriques

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Problmatiques des cls asymtriques


Lorsqu'une entit (entreprise, association, individu, service public...) veut scuriser ses communications (entrantes et sortantes) auprs d'un large public, le chiffrement le plus simple est l'asymtrique cl publique : l'entit n'a qu' diffuser sa cl publique l'ensemble de son audience. Le problme vient de la transmission de la cl publique. Si celle-ci n'est pas scurise, un attaquant peut se positionner entre l'entit et son public en diffusant de fausses cls 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 cls publique et de crer une attaque de l'homme du milieu. Dans un cadre ferm et relativement restreint (entreprise, service public) la diffusion de cls scurises 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 pralable (grand public, public international) elle ncessite un cadre normalis.
goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Certificats lectroniques
Les certificats rsolvent le problme du canal scuris grce la signature de tiers de confiance. Un certificat lectronique est un ensemble de donnes 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 prter confiance (ou non) l'exactitude des informations du certificat. Les certificats lectroniques et leurs cycles de vie (cf. Certificate Revocation List, Protocole de vrification en ligne de certificat) peuvent-tre grs au sein d'infrastructures cls publiques.

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Certificats lectroniques
Le format le plus connu et plus utilis est certainement X.509. Les certificats lectroniques sont utiliss dans diffrentes applications informatiques dans le cadre de la scurit des systmes d'information pour garantir : la non-rpudiation et l'intgrit des donnes avec la signature numrique. ; la confidentialit des donnes grce au chiffrement des donnes ; l'authentification ou l'authentification forte d'un individu ou d'une identit non-physique.

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Autorits de certification
Les autorits de certification sont des organismes enregistrs et certifis auprs d'autorits publiques ou de gouvernance de l'internet qui tablissent leur viabilit comme intermdiaire fiable. Ces organismes diffusent leurs propres cls publiques. tant certifies fiables ces autorits sont en contact direct avec les principaux producteurs de systme d'exploitation et de navigateurs internet qui incluent nativement les listes de cls des autorits de certification. C'est cette relation qui est la base de la chaine de confiance. Ces cls sont appeles cls publiques racines ou cl root, elles sont utilises pour identifier les cls publiques d'autres organismes.
goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Chiffrement
Chiffrement par bloc (3DES, AES, ...) Chiffement par flux (RC4, RC5) Fonction demprunte (hash) cryptographique (SHA-1, SHA-2, )

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Types de configuration
Deux types de configuration commune : 1. Site--site : point--point, point--multipoints 2. Utilisateur Mobile IPsec

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

3. VPN IPsec
http://fr.wikipedia. org/wiki/Internet_Protocol_Security

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

IPsec
IPsec (Internet Protocol Security), dfini par l'IETF comme un cadre de standards ouverts pour assurer des communications prives et protges sur des rseaux IP, par l'utilisation des services de scurit cryptographiques, est un ensemble de protocoles utilisant des algorithmes permettant le transport de donnes scurises sur un rseau IP. IPsec se diffrencie des standards de scurit antrieurs en n'tant pas limit une seule mthode d'authentification ou d'algorithme et c'est la raison pour laquelle il est considr comme un cadre de standards ouverts. De plus, IPsec opre la couche rseau (couche 3 du modle OSI) contrairement aux standards antrieurs qui opraient la couche application (couche 7 du modle OSI), ce qui le rend indpendant des applications, et veut dire que les utilisateurs n'ont pas besoin de configurer chaque application aux standards IPsec. Ralise dans le but de fonctionner avec le protocole IPv6, la suite de protocoles IPsec fut adapte pour l'actuel protocole IP (IPv4).
goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

IPsec
Son objectif est d'authentifier et de chiffrer les donnes : le flux ne pourra tre comprhensible que par le destinataire final (confidentialit) et la modification des donnes par des intermdiaires ne pourra tre possible (intgrit). IPsec est souvent un composant de VPN, il est l'origine de son aspect scurit (canal scuris ou tunneling). La mise en place d'une architecture scurise base d'IPsec est dtaille dans la RFC 4301.

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Protocoles IPsec
Lors de l'tablissement d'une connexion IPsec, plusieurs oprations sont effectues : 1. Etape 1 : Echange des cls
a. IKE phase 1 b. IKE phase 2

2. Etape 2 : Transfert de donnes

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Etape 1 : Echange de cls


IKE Phase 1 un canal d'change de cls, 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 ngocier la connexion. Avant qu'une transmission IPsec puisse tre possible, IKE est utilis pour authentifier les deux extrmits d'untunnel scuris en changeant des cls partages. Ce protocole permet deux types d'authentifications, PSK (PreShared Key ou secret partag) pour la gnration de clefs de sessions RSA ou l'aide de certificats. Ces deux mthodes se distinguent par le fait que l'utilisation d'un certificat sign par une tierce-partie appele Autorit de certification (CA) assure la non-rpudiation. Tandis qu'avec l'utilisation de clefs RSA, une partie peut nier tre l'origine des messages envoys. IPsec utilise une association de scurit (Security association) pour dicter comment les parties vont faire usage de AH et de l'encapsulation de la charge utile d'un paquet.
goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Etape 1 : Echange de cls


IKE Phase 2 Une association de scurit (SA) est l'tablissement d'information de scurit partage entre deux entits de rseau pour soutenir la communication protge. Une SA peut tre tablie par une intervention manuelle ou par ISAKMP (Internet Security Association and Key Management Protocol). ISAKMP est dfini comme un cadre pour tablir, ngocier, modifier et supprimer des SA entre deux parties. En centralisant la gestion des SA, ISAKMP rduit la quantit de fonctionnalit reproduite dans chaque protocole de scurit. ISAKMP rduit galement le nombre d'heures exig par l'installation de communications, en ngociant tous les services simultanment.

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Etape 2 : transfert de donnes


Un ou plusieurs canaux de donnes par lesquels le trafic du rseau priv est vhicul, deux protocoles sont possibles : le protocole no 51, AH, (Authentication Header) fournit l'intgrit et l'authentification. AH authentifie les paquets en les signant, ce qui assure l'intgrit de l'information. Une signature unique est cre pour chaque paquet envoy et empche que l'information soit modifie2. le protocole no 50, ESP (Encapsulating Security Payload) fournit galement l'intgrit mais aussi la confidentialit par l'entremise de la cryptographie.
goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Algorithmes de chiffrement
Pour que les ralisations d'IPsec interoprent, elles doivent avoir un ou plusieurs algorithmes de scurit en commun. Les algorithmes de scurit utiliss pour une association de scurit ESP ou AH sont dtermins par un mcanisme de ngociation, 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 rfrence avec la RFC 4835

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Modes de fonctionnement
IPsec peut fonctionner dans un mode transport hte hte ou bien dans un mode tunnel rseau.

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Modes transport/tunnel
Mode transport Dans le mode transport, ce sont uniquement les donnes transfres (la partie payload du paquet IP) qui sont chiffres et/ou authentifies. Le reste du paquet IP est inchang et de ce fait le routage des paquets n'est pas modifi. Nanmoins, les adresses IP ne pouvant pas tre modifies sans corrompre le hash de l'en-tte AH gnr par IPsec, pour traverser un NAT il faut avoir recours l'encapsulation NAT-T. Le mode transport est utilis pour les communications dites hte hte (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-tte IP. Au contraire du mode transport, ce mode supporte donc bien la traverse de NAT. Le mode tunnel est utilis pour crer des rseaux privs virtuels (VPN) permettant la communication de rseau rseau (e.g. entre deux sites distants), d'hte rseau (e.g. accs distance d'un utilisateur) ou bien d'hte hte (e.g. messagerie prive.)
goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Configurations IPsec pfSense


Au sein dune quipe :
https://doc.pfsense.org/index. php/Routing_internet_traffic_through_a_site-tosite_IPsec_tunnel https://doc.pfsense.org/index.php/Mobile_IPsec_on_2.0 https://doc.pfsense.org/index. php/IPsec_between_pfSense_and_Cisco_IOS

Documentation IPsec/pfSense :
https://doc.pfsense.org/index.php/Category:IPsec
goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

4. VPN SSL OpenVPN


http://en.wikipedia.org/wiki/OpenVPN

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

OpenVPN
OpenVPN est un logiciel libre permettant de crer un rseau 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 prive partage l'avance, de certificats lectroniques ou de couples de noms d'utilisateur/mot de passe. Il utilise de manire intensive la bibliothque 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 OS X, Windows 2000, XP, Vista, 7 et 8, il offre de nombreuses fonctions de scurit et de contrle. OpenVPN n'est pas compatible avec IPsec ou d'autres logiciels VPN. Le logiciel contient un excutable pour les connexions du client et du serveur, un fichier de configuration optionnel et une ou plusieurs cls suivant la mthode d'authentification choisie. http://fengnet.com/book/VPNs%20Illustrated%20Tunnels%20% 20VPNsand%20IPsec/ch08lev1sec5.html
goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

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.

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Librairie OpenSSL
OpenSSL est une bote outils de chiffrement comportant deux bibliothques (libcrypto fournit les algorithmes cryptographiques, libssl implmente le protocole SSL) et une interface en ligne de commande (openssl). Les bibliothques (qui sont crites en langage C) implmentent les fonctions basiques de cryptographie et fournissent un certain nombre de fonctions utiles. Grce aux wrappers, il est possible de les utiliser dans une grande varit de langages informatiques. Les paramtres de l'outil en ligne de commande openssl sont trs 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).
goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Authentification
OpenVPN has several ways to authenticate peers with each other. OpenVPN offers pre-shared keys, certificatebased, 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.

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Rseau
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.
goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Rseau
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.
goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Scurit
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.

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

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.

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

Configurations OpenVPN pfSense


https://doc.pfsense.org/index.php/Routing_internet_traffic_through_a_siteto-site_OpenVPN-connection_in_PfSense_2.1 https://doc.pfsense.org/index.php/OpenVPN_Site-to-Site_(Shared_Key,_2. 0) http://drtic.educagri.fr/wp-content/uploads/2012/12/Guide-MenOeuvrePfSenseV2.pdf https://vorkbaard.nl/set-up-openvpn-on-pfsense-for-windows-clients-withcertificates-and-user-authentication-via-active-directory-radius/ http://www.packetwatch.net/documents/guides/2012050801.php

goffinet@goffinet.eu, VPN thorie et pratique, CC-BY

goffinet@goffinet.eu, Pare-feu Proxy et VPN, CC-BY


goffinet@goffinet.eu, VPN thorie et pratique, CC-BY