1
Tunnels
ESIL INFO2005/2006Sophie Nicoud
2
Plan
• Pourquoi ?• Comment ?• Qu’est-ce ?• Quelles solutions ?• Tunnels applicatifs
2
3
Tunnels, pourquoi ?• Relier deux réseaux locaux à travers un réseau non
sécurisé public tel que Internet • Extension de la zone de confiance du réseau local• Permettre aux utilisateurs nomades d’accéder au
réseau local• Pourquoi faire ?
• Accéder à l’intranet,• Utiliser la messagerie• Accéder aux partages Windows,• Utiliser les logiciels avec licence,• Accéder à la bibliothèque,• …
4
Tunnels, comment ?
• Sécuriser les communications• Remplacer ou sécuriser les protocoles ne
chiffrant pas l’authentification• Si besoin, chiffrer les données
⇒ Créer une connexion chiffrée entre les clients et les serveurs
⇒ Tunnels applicatifs, tunnels, VPN
3
5
VPN, définition
VPN, Virtual Private Network – Réseau privé virtuel
• Consiste à faire transiter un protocole par l’intermédiaire d’un autre
• Aussi appelé protocole de tunneling (tunnel)• Cela consiste à créer un chemin virtuel du client
vers le serveur au travers un réseau public en chiffrant les communications
6
VPN, définition (2)
• Un VPN doit assurer:– L’authentification– L’intégrité– La confidentialité– La protection contre le rejeu (gestion des clés)– Éventuellement affecter une @ IP au client– Éventuellement la compression
4
7
Utilisation
• Le VPN d’accès– Permettre aux utilisateurs nomades d’accéder au
réseau local
8
Utilisation (2)
• L’intranet VPN– Relier 2 (ou + ) sites distants entre eux
5
9
Utilisation (3)
• L’extranet VPN– Ouvrir son réseau local à ses partenaires
10
Tunnels, comment ?
• Chiffrer à quel niveau de la couche OSI ?• Quelle authentification ?• Pour quelle utilisation ?
Couche application
Couche présentation
Couche session
Couche transport
Couche réseau
Couche liaison de données
Couche physique
6
11
Quelles solutions ?
7. Application
6. Présentation
5. Session
4. Transport
3. Réseau
2. Liaison de données
1. Physique
PPTP, L2TP avec PPP
IPSEC
SSL/TLS
SSH
Modèle OSI
12
Tunnels de niveau 2, liaison de donnée
• Protocoles : PPTP et L2TP• PPTP (Point-to-Point Tunneling Protocol) a
été développé par Microsoft, 3Com, Ascend, US Robotics et ECI Telematics.
• L2TP (Layer Two Tunneling Protocol) est une évolution de Pptp et de L2F, reprenant les avantages des deux protocoles.
• L2F (Layer Two Forwarding) développé par Cisco est remplacé par L2TP.
7
13
Tunnels de niveau 2, liaison de donnée
• PPTP et L2TP dépendent des fonctionnalités du protocole PPP (Point to Point Protocole)
• PPP est un protocole qui permet de transférer des données sur un lien synchrone ou asynchrone. – Il est full duplex et garantit l'ordre d'arrivée des
paquets. – Il encapsule les paquets IP, IPX et Netbeui dans des
trames PPP, puis transmet ces paquets encapsulés sur la liaison point à point.
14
Tunnels de niveau 2, PPTP
• PPTP (Point-to-Point Tunneling Protocol)– Microsoft authentification MS/CHAP V2– Microsoft chiffrement MPPE (RC4 40 ou 128 bits)– Protocole réseau qui encapsule des trames PPP
dans des datagrammes IP. – Compresse éventuellement les communications– PPTP crée ainsi un tunnel de niveau 3 défini par le
protocole GRE (Generic Routing Encapsulation)– Utilise les canaux de communication :
• Port TCP 1723• Protocole IP 47 (GRE)
8
15
Tunnels de niveau 2, PPTP• Inconvénients :
– Faiblesse de l’authentification (attaques facile par force brute)– Mauvaise gestion des mots de passe dans les environnements
mixtes Windows 95/NT– Identification des paquets non implémentée (vulnérabilité à la
mascarade d’adresse)– Protocole IP 47 (GRE) pas toujours traité par certains routeurs
ce qui nécessite d’ouvrir tout IP vers le serveur VPN• Avantages :
– Facile à installer sur Windows– Utilise l’authentification Radius des Windows
• Utilisation :– VPN d’accès (nomades à site)
16
Tunnels de niveau 2, L2TP
• L2TP (Layer Two Tunneling Protocol)– Protocole réseau qui encapsule des trames PPP pour les
envoyer sur des réseaux IP, X25, relais de trames ou ATM
- Utilise le port UDP 1701
- Par défaut, utilise le protocole IPsec
9
17
Tunnels de niveau 2, L2TP• Inconvénients :
– L2TP repose sur UDP qui lui même repose sur IP. Au total, l'empilement total des couches protocolaires est assez lourd : IP/PPP/L2TP/UDP/IP/Couche2
– Si utilisé avec IPsec, authentification à la machine, pas d’authentification de l’utilisateur => mettre en place Radius
Empilement des couches lorsque qu’un client surf sur le web
18
Tunnels de niveau 2, L2TP
• Avantages :– Facile à installer sur les Windows
• Pré-requis :– Authentification Radius à mettre en place
• Utilisation :– VPN d’accès (nomades à site)
10
19
Tunnel de niveau 3, réseau
• IPsec (Ip Security Protocols) basé sur les mécanismes :– AH (Authentification Header) qui assure l'intégrité
et l'authenticité des datagrammes IP.– ESP (Encapsulating Security Payload) peut aussi
permettre l'authentification des données mais est principalement utilisé pour le cryptage des informations.
– IKE (Internet Key Exchange) protocole qui prend en charge la gestion des clés de cryptographie
20
Tunnel de niveau 3, IPSec• Le protocole IPsec chiffre les paquets IP et les encapsule
dans des nouveaux datagrammes IP • Chaque datagramme IP peut être
– signé (authentification et intégrité) et – chiffré (confidentialité) : entêtes IP (v4 et v6) spécifiques
• Utilisation de certificats possible• Entre équipements IP: Routeurs, Stations• Utilise 2 canaux de communication
– port UDP 500 (destination et source) pour échanger les clefs d ’authentifications et d’encryption
– protocol IP 50 (ESP) pour les données
11
21
Tunnel de niveau 3, IPSec• Pré-requis :
– Une passerelle IPsec et IPsec sur les clients• Inconvénients :
– IPsec ne permet d’identifier que des machines et non pas des utilisateurs => Mettre en place un système d’authentification
– IPsec à cause de la lourdeur des opérations de cryptage/décryptage réduit les performances globales des réseaux. => L’achat de périphériques dédiés, coûteux est souvent indispensable. Nécessite un bon débit réseau.
• Avantages :– Les mécanismes de sécurité sont assez robustes– Souvent utilisé avec L2TP
• Utilisation :– Intranet, extranet (Sites à sites)
22
Tunnel de niveau 3, IPSecClient VPN Cisco
Cisco Easy VPN Remote featureis now available on Cisco 800, Cisco 1700, and Cisco uBR900 series routers, as well as Cisco PIX 501 firewalls and the Cisco VPN 3002 hardware client
12
23
Tunnel de niveau 4, transport
• SSL/TLS (Secure Socket Layer/Transport Layer Security)
• SSL/TLS fonctionnent entre le protocole transport (TCP ou UDP) et le niveau applicatif pour sécuriser un protocole nativement peu sûr
• SSL/TLS permettent le chiffrement des communications et l’authentification des clients et des serveurs
• SSL/TLS sont indépendants du protocole avec lequel ils sont utilisés
• Applicables à toutes les applications sur TCP sans réécriture de celles-ci
24
Tunnel de niveau 4, SSL/TLS
• SSL/TLS permettent :– Authentification des extrémités – Confidentialité– Intégrité des échanges– Utilisation de certificats X509 et de clés de session– Flot de données découpé en paquets signés et
chiffrés
13
25
SSL/TLS, historique• 7/94 Conception initiale du protocole (V1.0) développé
par Netscape • 12/94 SSL V2.0 Sortie des premiers produits• 4/95 SSL Ref 2.0 - L'implémentation de référence• 1995 Arrivée d'une quantité importante
d’implémentations au niveau international• 7/95 La BOF SSL à l’IETF• 11/95 SSL V3.0• 3/96 Le développement est repris par l'IETF au sein du
groupe TLS (Transport Layer Security)• 3/97 IETF TLS V1.0• 08/2004. TLS V1.1
26
Tunnel de niveau 4, SSL/TLS
TLS: Transport Layer Security• TLS reprend tous les concepts généraux de SSL car
TLS 1.0 puis TLS 1.1 sont basés sur SSL 3.0, donc compatibles
• TLS est plus clair• TLS est plus générique que SSL (encapsulation)• La conception du protocole est indépendante de son
utilisation• TLS n'impose pas de méthodes de chiffrements
spécifiques
14
27
Tunnel de niveau 4, SSL/TLSL'authentification avec SSL :• L'identification des serveurs est basée sur les DNS
• Le serveur s'authentifie avec un certificat (X.509)– il doit y avoir identité entre le nom DNS et celui du
certificat– Attention : l’authentification du serveur ne permet pas de
savoir si le serveur de la poste est poste.fr ou laposte.com
• Authentification du client :• par mot de passe (basic), mais dans le tunnel chiffré
• par certificat (depuis SSL v3)
28
Tunnel de niveau 4, SSL/TLS
• SSL/TLS est composé :– d'un générateur de clés, – de fonctions de hachage, – d'algorithmes de chiffrement, – de protocoles de négociation et de gestion de
session, – de certificats X509
• SLL/TLS s’appuie sur OpenSSL
15
29
Tunnel de niveau 4, SSL/TLS
• Composants :– SSL Record Protocol : protection des données– SSL Handshake Protocol : établissement de la
session– SSL Change Cipher Spec Protocol : négociation
des algorithmes (chiffrement, compression)– SSL Alert Protocol : messages d'erreur
30
Tunnel de niveau 4, SSL/TLS• SSL Handshake :
négociation du chiffrement et de l’authentification– Sélection des algorithmes de chiffrement et de la version
utilisée– Choix d’un identificateur de session– Sélection et échange des certificats
• Le serveur envoi son certificat (et sa chaîne de certification)• A la demande du serveur, le client envoi son certificat (et sa chaîne de
certification)• Authentification du client et vérification (si demandée)• Envoi par le client d’une chaîne chiffrée avec sa clef privée. Le serveur
vérifie que le client est bien titulaire de la clef privée en déchiffrant cette chaîne avec la clef publique du client qu’il avait reçue auparavant
– Échange d’une clef de session pour le chiffrement symétrique des communications
16
31
SSL/TLS, SSL Handshake
Client hello
Finished
Change Cipher Spec
Client Certificate
Server HelloServer CertificateServer Hello Done
Change Cipher Spec
Finished
0.2 à0.4 KB
32
SSL/TLS, Échange de données
• Reprendre une session :– Pour reprendre une session déjà initialisée, le client
envoie dans le Client Hello l’ identificateur de cette session.
– S’il retrouve cet identificateur dans son cache de session le serveur répond avec le même identificateur de session dans le Server Hello
– Cet identificateur permet de restaurer le contexte de la session, en particulier la clef de chiffrement symétrique.
17
33
SSL/TLS, Échange de données
• Forcer la renégociation :– Le serveur peut forcer la renégociation en répondant avec
un nouveau Session Id
• SSL Change Cipher Spec Protocol :– Permet de signaler des transitions dans les stratégies de
chiffrement,– Envoi d'un message pour indiquer que les messages
suivants utilisent les nouveaux paramètres négociés• SSL Alert Protocol :
– Définit plusieurs niveaux d'alertes– Certaine alertes sont définies pour entraîner l'arrêt immédiat
de la session
34
Tunnel de niveau 4, SSL/TLS
• Optimisation indispensable du réglage des paramètres des serveurs :– Durée de conservation des contextes de session– Partage du cache en processus coopérants
• Si le service que vous désirez ne prend pas en compte SSL/TLS, il est toujours possible d’utiliser STUNNEL
• STUNNEL établi un tunnel chiffré par application entre le serveur et les clients
18
35
Quelques applications et standards utilisant SSL/TLS
• http 80 https 443• smtp 25 smtps 465• pop3 110 pop3s 995• imap 143 imaps 993• ssh 22• nntp 119 nntps 563• telnet 23 telnets 992• ftp 21 ftps 990• ftp-data 20 ftps-data 989
36
Tunnel de niveau 4, SSL/TLS• Pré-requis :
– Utiliser des logiciels serveurs et clients SSL/TLS
• Inconvénients :– Si utilisation des certificats X509 => formation obligatoire des utilisateurs
• Avantages :– Authentification forte du client– Maintenant, de nombreuses applications utilisent SSL/TLS– Confidentialité et intégrité des échanges
– L’utilisateur utilise les mêmes logiciels sur son LAN que à l’extérieur, les communications sur LAN sont également sécuris ées
• Utilisation :– VPN d’accès (nomades à site)– Intranet, extranet (Sites à sites)– LAN
19
37
Tunnel de niveau 4, monté en puissance
• Les tunnels SSL/TLS de part leur moindre coût et leur facilité de mise en place par rapport à IPsec se généralisent.
• Les applications utilisant une interface web et la messagerie sont déjà largement utilisées avec SSL/TLS.
• Les éditeurs de logiciels et constructeurs se tournent vers cette solution :– Aventail SSL VPN– Juniper Networks SSL VPN Appliance Line– VPN SSL NETASQ serie– Cisco ….
38
Tunnel de niveau 4, OpenVPN
• OpenVPN est un VPN SSL open source, il permet :– L’authentification forte des extrémités du tunnel– La compression des communications– L’utilisation des certificats X509– L’authentification du client sur le serveur grâce à un plugin
PAM d’où la possibilité d’utiliser RADIUS, LDAP ou les certificats X509
– Nécessite un client
• OpenVPN utilise le 1194 UDP ou TCP– Avant la version 2.0-beta17, il utilisait le port 5000. Le
changement de n° de port a été fait suite à une demande de l’IANA
20
39
Tunnel de niveau 4, OpenVPN
• OpenVPN propose 2 types de VPN, routés et de pont.
• Les tunnels IP routés (VPN routed), – le meilleur moyen pour router du trafic IP point à point,
sans broadcast.– S’installe sur des machines en tête de réseau– C’est de l’IP dans IP.
40
Tunnel de niveau 4, OpenVPN
• Les tunnels par pont ethernet (VPN bridged)– qui peuvent être utilisés à la fois pour les tunnels IP et
pour les tunnels non-IP. – C’est de l’éthernet dans IP.– Ce type de tunnel est approprié pour les applications qui
communiquent via du broadcast, tels que les réseaux Windows.
– Les 2 réseaux ne forment plus qu’un.
– S’installe sur des machines en tête de réseau
– Pour les clients nomades, le serveur alloue dynamiquement les @IP
21
41
Tunnel de niveau 4, OpenVPN
• Pré-requis :– 2 cartes éthernet sur les serveurs– Les postes nomades nécessitent un client
• Inconvénients :– Utilisation des certificats X509 => formation obligatoire des utilisateurs– Attention à bien authentifier les utilisateurs et pas seulement les
machines.
• Avantages :– Authentification forte du client au VPN
– Confidentialité et intégrité des échanges– Compression des communications
• Utilisation :– VPN d’accès (nomades à site) : VPN routé– Intranet, extranet (Sites à sites) : VPN avec pont
42
Tunnel de niveau 7, application
• SSH (Secure Shell)– Le protocole SSH comprend une suite d’outils dont
l'objectif est de remplacer les commandes clientes et les services de :
• Connections interactive : rlogin, telnet et rsh => ssh
• Copie entre machines : rcp => scp• Transfert de fichiers : ftp => sftp
– Il permet également de :• Transférer toutes applications TCP dans le tunnel de la session ssh
On peut ainsi forwarder :– X11 (X11 forwarding)– SMTP, POP, IMAP, … (redirection de port)
• Transférer les jetons Kerberos et AFS
22
43
Tunnel de niveau 7, SSH
• SSH permet également :– Authentification forte des machines et des clients
• Utilisation possible des certificats X509
– Chiffrer le tunnel– Compresser le tunnel sur demande
Utilise le port TCP 22
44
Tunnel de niveau 7, SSH
• Pré-requis :– Logiciel serveur et client, en standard sur Linux, existe en
opensource pour Windows• Inconvénients :
– Configuration des tunnels => former les utilisateurs– Possibilité d’accéder à tout le LAN => attention
• Avantages :– Confidentialité et intégrité des échanges– Compression des communications– X11 forwarding, transfert de jetons Kerberos et AFS, tunnels– Simple d’installation et d’utilisation
• Utilisation :– VPN d’accès (nomades à site) : VPN
23
45
Conclusion
• Beaucoup de produits, des solutions opensource convenables
• La tendance actuelle va vers les VPN SSL moins coûteux et moins lourds pour les machines clientes
• Faites votre choix ….
Recommended