VPN théorie et pratique

44
[email protected] , VPN théorie et pratique, CC-BY VPN théorie et pratique [email protected] , CC-BY, version 2014.04

Transcript of VPN théorie et pratique

Page 1: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

VPN théorie et pratique

[email protected], CC-BY, version 2014.04

Page 2: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

Sommaire

1. Technologies VPN2. Certificats électroniques3. VPN IPsec4. VPN SSL OpenVPN

Page 4: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

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.

Page 5: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

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.

Page 6: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

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

bordureLes 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

Page 7: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

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

Page 8: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

VPN IPsec● Internet Protocol Security (IPsec) a été initialement

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.

Page 9: VPN théorie et pratique

[email protected], VPN théorie 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 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.

Page 10: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

Autres protocoles VPN

● Datagram Transport Layer Security (DTLS) - utilisé par 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) ou Layer 2 Tunneling Protocol à travers un canal SSL 3.0

● Multi Path Virtual Private Network (MPVPN). ● Secure Shell (SSH) VPN - OpenSSH

Page 11: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

PPTP/L2TP

Page 13: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

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)

Page 14: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

Clés symétriques

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.

Page 15: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

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.

Page 16: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

Clés asymétriques

Page 17: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

Problématiques des clés asymétriquesLorsqu'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é.

Page 18: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

Certificats électroniquesLes 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.

Page 19: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

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 :● la non-répudiation et l'intégrité des données avec la signature

numérique. ;● la confidentialité des données grâce au chiffrement des

données ;● l'authentification ou l'authentification forte d'un individu ou

d'une identité non-physique.

Page 20: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

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.

Page 21: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

Chiffrement

● Chiffrement par bloc (3DES, AES, ...)● Chiffement par flux (RC4, RC5)● Fonction d’emprunte (hash) cryptographique

(SHA-1, SHA-2, …)

Page 22: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

Types de configuration

Deux types de configuration commune :1. Site-à-site : point-à-point, point-à-multipoints2. Utilisateur Mobile IPsec

Page 24: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

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

Page 25: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

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.

Page 26: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

Protocoles IPsec

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

1. Etape 1 : Echange des clésa. IKE phase 1b. IKE phase 2

2. Etape 2 : Transfert de données

Page 27: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

Etape 1 : Echange de clésIKE Phase 1un 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.

Page 28: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

Etape 1 : Echange de clésIKE Phase 2Une 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.

Page 29: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

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 no 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 no 50, ESP (Encapsulating Security Payload) fournit également l'intégrité mais aussi la confidentialité par l'entremise de la cryptographie.

Page 30: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

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

Page 31: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

Modes de fonctionnement

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

Page 32: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

Modes transport/tunnelMode 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.)

Page 34: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

4. VPN SSL OpenVPNhttp://en.wikipedia.org/wiki/OpenVPN

Page 35: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

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 OS X, Windows 2000, XP, Vista, 7 et 8, il offre de nombreuses fonctions 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%20VPNsand%20IPsec/ch08lev1sec5.html

Page 36: VPN théorie et pratique

[email protected], VPN théorie 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.

Page 37: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

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…).

Page 38: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

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.

Page 39: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

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.

Page 40: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

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.

Page 41: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

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.

Page 42: VPN théorie et pratique

[email protected], VPN théorie 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.

Page 43: VPN théorie et pratique

[email protected], VPN théorie et pratique, CC-BY

Configurations OpenVPN pfSense● https://doc.pfsense.org/index.php/Routing_internet_traffic_through_a_site-

to-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-MenOeuvre-PfSenseV2.pdf

● https://vorkbaard.nl/set-up-openvpn-on-pfsense-for-windows-clients-with-certificates-and-user-authentication-via-active-directory-radius/

● http://www.packetwatch.net/documents/guides/2012050801.php