Réalisation d'un client serveur d'échange de paquets entre deux sous réseaux reliés par un VPN

28
1 Wilfried DUQUENNE, Sylvain CLERCQ & Mina BEN HADDOU Master TIIR - 2005

description

Réalisation d'un client serveur d'échange de paquets entre deux sous réseaux reliés par un VPN. Wilfried DUQUENNE, Sylvain CLERCQ & Mina BEN HADDOU Master TIIR - 2005. Sommaire. Introduction Etude Fonctionnement des différents protocoles Avantages et inconvénients de ces protocoles - PowerPoint PPT Presentation

Transcript of Réalisation d'un client serveur d'échange de paquets entre deux sous réseaux reliés par un VPN

Page 1: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

1

Wilfried DUQUENNE, Sylvain CLERCQ & Mina BEN HADDOUMaster TIIR - 2005

Page 2: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

2

Sommaire Introduction Etude

Fonctionnement des différents protocoles

Avantages et inconvénients de ces protocoles

Problèmes définis Réalisation

Solution proposée Travail effectué Travail restant à faire Difficultés rencontrées

Conclusion

Page 3: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

3

Introduction 1/2 Pour assurer l’accès sécurisé des

entreprises réparties sur de grandes distances géographiques, on met en place des VPN. 

Différentes solutions pour mettre en place un VPN non matériel :

Utiliser une technologie reposant sur un protocole comme IPSEC, PPTP, L2F ou L2TP.

Employer une autre technologie comme OpenVPN qui repose sur les tunnels SSL.

Page 4: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

4

Introduction 2/2 IPSEC s’impose dans ce domaine en

plein développement, mais il souffre d’un défaut majeur.

But du projet : Réaliser un client / serveur d'encapsulation et de transit de paquets sur un VPN IPSEC, qui peut récupérer les paquets de broadcasts ou de multicasts sur un premier réseau et les envoyer sur un deuxième.

Page 5: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

5

Fonctionnement de PPP (Point to Point Protocol) BUT : Transférer des données sur un lien

synchrone ou asynchrone. Protocole Full Duplex. Ordre d’arrivée des paquets est garanti. Il encapsule les paquets IP, IPx et Netbeui

dans des trames PPP, puis transmet ces paquets encapsulés au travers de la liaison point à point.

Trame PPP :

Page 6: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

6

Phases d’une connexion PPP

Une méthode pour encapsuler les datagrammes.

Le protocole LCP (Link Control Protocol)

Les protocoles d'authentification (MS-CHAP, EAP)

Les protocoles NCP (Network Control Protocol)

Page 7: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

7

Fonctionnement de PPTP(Point to Point Tunneling Protocol) Principe :

Créer des trames sous le protocole PPP et de les encapsuler dans un datagramme IP.

Créer un tunnel de niveau 3 défini par le protocole GRE (Generic Routing Encapsulation) en établissant une connexion PPP à un serveur distant.

Point faible : L’authentification (protocole MS-CHAP).

Page 8: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

8

GRE (Generic Routing Encapsulation) Protocole ouvert. Conçu pour pouvoir encapsuler n'importe

quel protocole de niveau 3 dans IP. Avantages :

Possibilité d'ouvrir depuis un hôte donné autant de tunnels que l'on désire, vers différents réseaux distants.

Solution fort souple. Inconvénient :

Trop peu sécurisé pour être utilisé sans risques.

Page 9: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

9

Fonctionnement de L2TP(Layer Two Tunnel Protocol) 1/2 Issu de la convergence de PPTP et L2F. Développé et évalué conjointement par

Cisco Systems, Microsoft, Ascend, 3Com.

Permet l'encapsulation des paquets PPP au niveau des couches 2 (Frame Relay et ATM) et 3 (IP).

Page 10: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

10

Fonctionnement de L2TP(Layer Two Tunnel Protocol) 2/2

Les 2 concepts de L2TP : Les concentrateurs d'accès L2TP (LAC : L2TP Access

Concentrator). Les serveurs réseau L2TP (LNS : L2TP Network Server).

L2TP n'intègre pas directement de protocole pour le chiffrement des données. C'est pourquoi l'utilisation conjointe d'IPSec et L2TP est recommandée.

Page 11: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

11

Fonctionnement de IPSEC(Internet Protocol Security)

Permet de sécuriser l'échange de données au niveau de la couche réseau.

Basé sur 2 mécanismes de sécurité : AH (Authentification Header) vise à assurer l'intégrité

et l'authenticité des datagrammes IP. ESP (Encapsulating Security Payload) assure la

confidentialité et l’intégrité des données.

Page 12: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

12

AH et ESP

Bien qu'indépendants ces deux mécanismes sont presque toujours utilisés conjointement.

Page 13: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

13

La gestion des clefs dans IPSEC

Problème fondamental de l’utilisation de cryptographie.

2 catégories : IKE (Internet Key Exchange) : système qui vise à fournir

des mécanismes d'authentification et d'échange de clef adaptés à l'ensemble des situations qui peuvent se présenter sur l'Internet.

ISAKMP a pour rôle la négociation, l'établissement, la modification et la suppression des associations de sécurité et de leurs attributs.

Page 14: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

14

Fonctionnement de SSL(Secure Sockets Layers)

Protocole de couche 4 (niveau transport) utilisé par une application pour établir un canal de communication sécurisé avec une autre application.

2 fonctionnalités : L’authentification du serveur et du client à

l’établissement de la connexion. Le chiffrement des données durant la connexion.

Page 15: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

15

Segmentation des paquets en paquets de taille fixe. Compression (mais peu implémenté dans la réalité). Ajout du résultat de la fonction de hachage.

(composé de la clé de cryptage, du numéro de message, de la longueur du message, de données ...)

Chiffrement des paquets et du résultat du hachage à l’aide de la clé symétrique générée lors du Handshake.

Ajout d’un en-tête SSL au paquet :

Phases du protocole SSL(Secure Sockets Layers)

Page 16: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

16

Exemple : OpenVPN Solution logiciel complète de VPN qui peut

s’adapter à un éventail de configurations (Linux, Windows 2000/XP, OpenBSD, FreeBSD, NetBSD, Mac OS X, et Solaris).

Le principe de base : Utiliser une interface de capture standard du kernel

Linux (tun ou tap) Expédier ces données chiffrées et authentifiées via SSL

sur un port UDP (éventuellement TCP) en utilisant un mot de passe ou une clé publique, éventuellement une PKI.

Page 17: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

17

Avantages et inconvénients 1/2

PPTP : Avantage :

Intégré dans les environnements Windows. Inconvénients : Sécurité.

Mauvaise gestion des mots de passe. Faiblesses dans la génération des clés de session. Faiblesses cryptographiques du protocole MS-CHAP 1

corrigées dans la version 2 (mais aucun contrôle sur cette version n’a été effectué par une entité indépendante).

Identification des paquets non implémentée : vulnérabilité aux attaques de type « spoofing ».

Page 18: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

18

L2TP et IPSEC : Avantages :

Mécanismes de sécurité robustes. Inconvénients :

Ne permet d’identifier que des machines et non pas des utilisateurs (problématique pour utilisateurs itinérants).

Aucun mécanisme de QoS. (applis voies ou vidéos sur IP impossibles).

Lourdeur des opérations de cryptage/décryptage. VPN-SSL :

Problèmes liés aux navigateurs web utilisés (ex : au niveau des certificats de sécurité à renouveler).

Avantages et inconvénients 2/2

Page 19: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

19

Problèmes définis Problème de transfert des messages de

broadcasts et de multicasts : PPTP :

Interface PPP qui véhicule les paquets de données vers le serveur PPTP, à travers le tunnel.

Cette interface ne laisse passer que les paquets de type point à point et multicast.

Elle ne laisse pas passer les paquets de broadcasts. IPSEC :

IPSEC est un protocole de sécurité d’ IP de couche 2, alors que les broadcasts et les multicasts fonctionnent sur la couche 3, d’ou le problème d’envoi et de réception de ces messages.

Remarque : IPSEC rejette les paquets de broadcasts et de multicasts sauf dans le cas ou il est associé à L2TP.

Page 20: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

20

Solution proposée

Page 21: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

21

Travail effectué 1/4 Le sniffage des paquets de

broadcasts :

Implémentation d’un démon en C. Utilisation de la librairie pcap :

bibliothèque indépendante du système. interface à la capture de paquets. permet d'écouter le réseau. inclut un mécanisme de filtrage basé sur le

Berkeley Packet Filter (BPF).

Page 22: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

22

Travail effectué 2/4 L’encapsulation de ces paquets :

Notre étude Utilisation de PPP. Recherche du programme PPTP-

Client. Etude de ce code. Encapsulation des trames de

broadcasts en paquets HDLC. Désencapsulation de ces trames.

Page 23: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

23

Travail effectué 3/4 Encaps_hdlc :

Calcul de la FCS (Frame Check Séquence) en fonction de la longueur du paquet, afin de vérifier la validité des paquets lors de leur réception.

Positionnement du HDLC_Flag.

Calcul, en fonction de la longueur du paquet, l’endroit où le FCS doit être inséré (fin de paquet).

Mise en place du HDLC_Flag en fin de paquet.

Injection du paquet dans le descripteur de fichier.

Page 24: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

24

Travail effectué 4/4 Decaps_hdlc :

Vérification de la validité du paquet en fonction de la longueur de celui-ci.

Reherche du HDLC_Flag.

Vérification de la FCS qui permet de déterminer si aucune erreur de transmission n’a eu lieu.

Lecture des données pour la reconstruction du paquet initial.

Page 25: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

25

Travail restant à faire Terminer le développement :

Côté client : Récupérer les paquets encapsulés. Les envoyer au serveur.

Côté serveur : Récupérer et identifier les paquets encapsulés par

le client. Lancer la désencapsulation (fonction decaps_hdlc) Récupérer les paquets et vérifier qu’ils sont

conformes aux originaux. Véhiculer ces paquets sur le sous-réseau

destination.

Page 26: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

26

Difficultés rencontrées Documentation sur le problème de

transfert de paquets de broadcasts : Légère, car sujet en plein essor. Parfois contradictoire.

Etude du code source de PPP et PPTP-Client : Longue et assez complexe afin de déterminer le

but et le traitement des fonctions.

Page 27: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

27

Conclusion Virtual Private Network :

Domaine récent et en pleine évolution.

Projet intéressant au niveau des connaissances et expérience apportées.

Malheureusement, projet non terminé. On espère que ce sera fait l’an

prochain.

Page 28: Réalisation d'un client serveur  d'échange de paquets entre  deux sous réseaux reliés par un VPN

Merci et à vos questions !