52
  "#$%&'() !"# Principales abréviations Ecole d’ingénieurs du Canton de Vaud Institut de Télécommunications Tutorial sur les VPN, destiné aux étudiants; rédigé dans le cadre du travail de diplôme. Tutorial VPN – Complément au laboratoire sur les VPN Auteur: Christian Tettamanti 

Tutorial VPN

  • Upload
    houf002

  • View
    142

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 1/52

 

 

TutorialVPN

 

Principales abréviations

Ecole d’ingénieurs du Canton de VaudInstitut de Télécommunications 

Tutorial sur les VPN, destiné aux étudiants; rédigé dans lecadre du travail de diplôme.

Tutorial VPN – Complément au laboratoire sur les VPN 

Auteur: Christian Tettamanti 

Page 2: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 2/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 2

AH Authentication Header 

CHAP Challenge Handshake Authentication Protocol

ESP Encapsulating Security Payload

GRE Internet Generic Routing Encapsulation

ICV Integrity Check Value

IETF Internet Engineering Task Force

IKE Internet Key Exchange

IPSec IP Security Protocol

ISAKMP Internet Security Association and Key Management Protocol

ISP Internet Service Provider 

L2TP Layer 2 Tunneling Protocol

MPPE Microsoft Point-to-Point Encryption

MS-CHAP Microsoft Challenge Handshake Authentication Protocol

NAS Network Access Server 

PAP Password Authentication Protocol

PPP Point-to-Point Protocol

PPTP Point-to-Point Tunneling Protocol

SA Security Association

SPI Security Parameter Index

VPN Virtual Private Network

Page 3: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 3/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 3

1.  Table des matières

1.  Table des matières.................................................................................................................................3 

2.  Introduction ............................................................................................................................................5 

3.  Définition de VPN (Virtual Private Networks).........................................................................................5 4.  Motivations pour le choix d'une solution VPN ........................................................................................7 

4.1  Utilisations communes des VPN ...................................................................................................9 

4.1.1  Accès à distance à travers Internet (Host to LAN )....................................................................9 

4.1.2  Connexion entre plusieurs réseaux à travers Internet (LAN to LAN )........................................9 

4.1.3  Réseau privé entre deux ordinateurs (Host to Host )...............................................................10 

5.  Exigences de base des VPN................................................................................................................10 

6.  Protocoles VPN....................................................................................................................................11 

6.1  Concepts de base sur les tunnels ...............................................................................................11 

6.1.1  Types de tunnel ......................................................................................................................12 

6.2  PPTP – Point-to-Point Tunneling Protocol ..................................................................................12 

6.2.1  Préambule...............................................................................................................................12 6.2.2  PPTP et les VPN.....................................................................................................................12 

6.2.3  Scénario PPTP typique...........................................................................................................13 

6.2.4  Clients PPTP...........................................................................................................................14 

6.2.5  Serveur d'accès réseau de l'ISP.............................................................................................15 

6.2.6  Serveur PPTP.........................................................................................................................15 

6.2.7  Architecture PPTP ..................................................................................................................15 

6.2.8  Vue d'ensemble de l'architecture PPTP..................................................................................15 

6.2.9  Connexion de contrôle PPTP..................................................................................................16 

6.2.10  Transmission de données PPTP ........................................................................................30 

6.2.11  Exemple de connexion.......................................................................................................32 

6.2.12  La sécurité de PPTP...........................................................................................................33 6.2.13  Contrôle d'accès.................................................................................................................34 

6.2.14  Le chiffrement de données.................................................................................................34 

6.2.15  Usage de PPTP avec des firewalls ....................................................................................35 

6.3  L2TP – Layer 2 Tunneling Protocol .............................................................................................36 

6.3.1  Vue d'ensemble du protocole .................................................................................................36 

6.3.2  Format de l'entête L2TP .........................................................................................................37 

6.3.3  Connexion de contrôle L2TP ..................................................................................................38 

6.4  IPSec – IP Security Protocol .......................................................................................................39 

6.4.1  Architecture de IPSec .............................................................................................................39 

6.4.2  AH ( Authentication Header )....................................................................................................41 6.4.3  ESP (Encapsulating Security Payload )...................................................................................44 6.4.4  IKE (Internet Key Exchange) ..................................................................................................47 

7.  Conclusions..........................................................................................................................................51 

8.  Bibliographie ........................................................................................................................................52 

8.1  Ouvrages.....................................................................................................................................52 

8.2  Articles et documents du web (annexés) ....................................................................................52 

8.3  Compléments (annexés) .............................................................................................................52 

Page 4: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 4/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 4

Table des illustrations 

Figure 1 : Exemple de VPN. ...........................................................................................................................6 

Figure 2 : Réseau privé virtuel construit sur Internet. .....................................................................................7 

Figure 3 : Plusieurs communications dans le même média............................................................................8 

Figure 4 : Communications utilisant chacune un média indépendant.............................................................8 

Figure 5 : Utilisation d'un VPN pour connecter un client distant à un réseau privé. .......................................9 

Figure 6 : Connexions LAN to LAN...............................................................................................................10 

Figure 7 : VPN entre deux hôtes. .................................................................................................................10 

Figure 8 : Tunneling......................................................................................................................................11 

Figure 9 : Tunnel PPTP. ...............................................................................................................................13 

Figure 10 : Connexion à distance entre un client PPTP et un réseau privé. ................................................14 

Figure 11 : message de contrôle Start-Control-Connection-Request ...........................................................17 

Figure 12 : message de contrôle Start-Control-Connection-Reply ...............................................................18 

Figure 13 : message de contrôle Stop-Control-Connection-Request ...........................................................19 

Figure 14 : message de contrôle Echo-Request ..........................................................................................20 Figure 15 : message de contrôle Echo-Reply...............................................................................................20 

Figure 16 : message de contrôle Outgoing-Call-Request.............................................................................21 

Figure 17 : message de contrôle Outgoing-Call-Reply .................................................................................22 

Figure 18 : message de contrôle Incoming-Call-Request.............................................................................23 

Figure 19 : message de contrôle Incoming-Call-Reply.................................................................................24 

Figure 20 : message de contrôle Incoming-Call-Connected.........................................................................25 

Figure 21 : message de contrôle Call-Clear-Request...................................................................................26 

Figure 22 : message de contrôle Call-Disconnect-Notify..............................................................................27 

Figure 23 : message de contrôle WAN-Error-Notify .....................................................................................28 

Figure 24 : message de contrôle Set-Link-Info.............................................................................................29 

Figure 25 : Datagramme PPTP avec message de contrôle..........................................................................30 Figure 26 : Datagramme GRE ......................................................................................................................31 

Figure 27 : Encapsulation des données dans GRE dans le cas de PPTP. ..................................................31 

Figure 28 : Exemple d'ouverture, maintient et fermeture d'une connexion PPTP ........................................32 

Figure 29 : Processus CHAP. .......................................................................................................................33 

Figure 30: Serveur PPTP derrière un firewall. ..............................................................................................35 

Figure 31 : Structure du protocole L2TP.......................................................................................................36 

Figure 32 : Entête L2TP................................................................................................................................37 

Figure 33 : Mode transport d'IPSec. .............................................................................................................40 

Figure 34 : Mode tunnel d'IPSec...................................................................................................................40 

Figure 35 : Entête du protocole AH. .............................................................................................................41 

Figure 36 : AH en mode Transport ...............................................................................................................42 Figure 37 : AH en mode Tunnel....................................................................................................................42 

Figure 38 : Entête du protocole ESP. ...........................................................................................................44 

Figure 39 : ESP en mode Transport .............................................................................................................45 

Figure 40 : ESP en mode Tunnel. ................................................................................................................45 

Figure 41 : Entête ISAKMP...........................................................................................................................47 

Figure 42 : Entête générique de ISAKMP.....................................................................................................47 

Figure 43 : Chaînage possible d'un message ISAKMP. ...............................................................................49 

Figure 44 : Main mode exchange de IKE. ....................................................................................................50 

Figure 45 : Quick Mode Exchange. ..............................................................................................................51 

Page 5: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 5/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 5

2.  IntroductionCe document est supposé être un complément au laboratoire 'Configuration d'un VPN'. Il explique lesbases théoriques pour pouvoir bien comprendre la manipulation pratique. Ceci dit, le tutorial devrait être

connu préalablement à la manipulation pratique.

3.  Définition de VPN (Virtual Private Networks)Lorsqu’on aborde pour la première fois le sujet des réseaux privés virtuels, on s’aperçoit que le nombre dedéfinitions d’un VPN est très élevé. Ceci dit, il n’est pas possible de donner une seule définition. La façon laplus simple de trouver une définition commune pourrait être celle d’analyser, individuellement, chaque motde l’acronyme VPN. Ceci permet de regrouper les différentes analyses et donner ainsi une définitioncorrecte de sens commun.

La difficulté d'analyse motive le choix de classement suivant:

network : Ce mot est sans autre le plus facile à analyser et comprendre; sa définition est communeet acceptée par l’industrie. Un "réseau " (network ) consiste en un nombre de dispositifspouvant communiquer entre eux à l'aide de méthodes arbitraires. Ces dispositifs peuventêtre de nature différente : les ordinateurs, les imprimantes, les routeurs, etc., y sont inclus.Géographiquement, ils peuvent se trouver dans différents sites. Les méthodes aveclesquelles ces dispositifs peuvent communiquer sont très nombreuses, car elles dépendentdu niveau d’application. Des spécifications pour le niveau physique, liaison, transport etapplication devront donc être énoncées. En conclusion, un réseau est une collection dedispositifs qui peuvent communiquer entre eux et donc s’échanger des données.

private : Le terme " privé" ( private) est assez correct et il est lié au concept de virtualisation dans ladéfinition des VPN. La définition la plus simple de "privé" indique que la communicationentre deux ou plusieurs dispositifs est secrète. Les dispositifs n'étant pas concernés par lacommunication de nature privée, ne pourront pas lire le contenu des messages privés.Ceci dit, ils ignorent tout de la relation entre les dispositifs concernés. La confidentialité desdonnées et la sécurité (intégrité) sont des aspects importants dont il faut tenir comptelorsqu'on considère un type particulier d'implémentation VPN.La définition "privé" peut être exprimée à l'aide de la définition de son antonyme "public".Un service public est accessible ouvertement et contrôlé dans les limites et les contraintesd'une ressource publique commune, souvent par l'intermédiaire d'une entité administrative

publique. Au contraire, un service privé est accessible uniquement par un groupe d'entitésdéfinies. Des tiers ne pourront pas en avoir accès. En général, la ressource privée estgérée par des entités qui ont un droit exclusif d'accès. Des exemples de ce type de réseauprivé peuvent être trouvés dans des réseaux d'organisation qui ne sont pas connectés àInternet. Ces réseaux sont privés, car aucune connexion externe, et donc aucunecommunication de réseau avec l'extérieur, est présente.Un autre aspect important de la confidentialité dans les VPN, est donné à travers sonimplémentation technique. Laquelle décrit la confidentialité des systèmes d'adressage etde routage. L'adressage, utilisé dans une communauté VPN d'intérêts, est séparé par rapport à celui du réseau partagé et des autres communautés VPN. Le schémad'adressage et de routage d'un VPN devrait être indépendant de chaque communauté

VPN.

Page 6: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 6/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 6

virtual : Le concept "virtuel " (virtual) est le plus compliqué des trois mots qui composent l'acronymeVPN. Dans le contexte des VPN il pourrait être défini par : simulé, qui exécute desfonctions d'un objet non réel.L'aspect de virtualisation est similaire à la définition de "privé" qu'on vient de décrire, bienque le scénario soit un peu modifié. La communication privée est établie sur une

infrastructure de réseau partagée par plus qu'une organisation. De cette façon, laressource privée est construite en se basant sur un partitionnement logique de laressource partagé à la place d'utiliser des connexions de circuits physiques. Le réseauprivé est une création qui n'a pas de contrepartie physique. La communication virtuelleentre deux ou plusieurs machines est due au fait que les machines qui ne sont pasconcernées par la communication n'ont pas la possibilité de percevoir des données. Cecidit, elles sont incapables de déterminer la relation entre les machines concernées.L'infrastructure du réseau partagé peut être par exemple représentée par le réseau globalInternet et un nombre d'organisations utilisant des réseaux virtuels. Ces dernières peuventêtre des centaines, des milliers, voir des millions!

La combinaison de ces termes produit VPN – un réseau privé dont la confidentialité est introduite par desmoyens de virtualisation. Un VPN peut être créé entre deux systèmes, entre deux organisations, entreplusieurs systèmes et une organisation ou entre plusieurs organisations répandues dans Internet, soitencore entre des applications individuelles ou une combinaison des ces possibilités.

La définition, la plus utilisée, qui caractérise un VPN est la suivante:

Un VPN est un environnement de communication dans lequel l'accès est contrôlé, afin de permettre desconnections entre une communauté d'intérêts seulement. Un VPN est construit avec un partitionnement d'un média de communication commun qui offre des services de façon non exclusive.

Voilà une autre définition, plus simple et approximative:

Un VPN est un réseau privé construit sur l'infrastructure d'un réseau public, comme l'est Internet.

On peut noter qu'une solution exhaustive de VPN fournit un support pour l'accès via modem, pour l'accèsavec des lignes dédiées, et la possibilité de supporter des connexions depuis le réseau global Internet.

Figure 1 : Exemple de VPN.

Page 7: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 7/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 7

On a vu qu'un VPN permet de créer un réseau privé à travers un réseau public comme Internet; voilà unexemple de VPN construit sur Internet:

Figure 2 : Réseau privé virtuel construit sur Internet.

4.  Motivations pour le choix d'une solution VPN

Il y a plusieurs motivations qui induisent à utiliser le VPN, mais le point commun à chaque motivation estcelui de vouloir  virtualiser  une partie des communications d'une organisation. Autrement dit, le besoind'avoir une partie (ou toutes) des communications, essentiellement invisible de la part d'un observateur externe, tout en préservant les avantages d'une infrastructure commune.

La motivation principale pour choisir une solution VPN couvre les aspects économiques descommunications. Les systèmes de communications ont aujourd'hui la caractéristique d'avoir un prixconstant et élevé avec des petits coûts variables qui changent selon la capacité de transport ou la bandepassante du système.Dans cet environnement, il est financièrement plus attractif de réunir un nombre de communicationsdiscrètes dans une plate-forme de communication de grande capacité, permettant ainsi l'amortissement

des prix élevés des composants par un grand nombre de clients, à la place d'utiliser une ligne dédiée pour chaque communication. Ainsi, une collection de VPN implémentés sur un seul média physique commun,est moins cher qu'une collection équivalente de petits médias discrets, chacun reliant un seul client réseau.

Page 8: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 8/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 8

Les figures suivantes montrent les concepts énoncés.

Figure 3 : Plusieurs communications dans le même média.

Figure 4 : Communications utilisant chacune un média indépendant.

Une autre motivation concerne la confidentialité des communications. Les caractéristiques et l'intégrité desservices de communications isolés diffèrent des autres environnements qui partagent un média commun.Le niveau de confidentialité dépend de la politique de l'organisation. Si le besoin de confidentialité est bas,la simple abstraction de discrétion pourra suffire. Tandis que si le besoin en confidentialité est grand, il y aun fort besoin de sécuriser les accès et les données passant dans le média commun.

Page 9: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 9/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 9

4.1  Utilisations communes des VPN

Cette section décrit brièvement les solutions VPN les plus souvent utilisées.

4.1.1  Accès à distance à travers Internet (Host to LAN )

Un VPN permet aux utilisateurs éloignés de se connecter à un réseau privé tout en maintenant laconfidentialité. La figure suivante montre un utilisateur VPN connecté à un réseau d'entreprise à traversInternet. Au lieu d'effectuer un appel téléphonique à longue distance à destination de l'entreprise,l'utilisateur se connecte simplement à Internet et ensuite il crée une connexion VPN jusqu'au réseau del'entreprise.

Figure 5 : Utilisation d'un VPN pour connecter un client distant à un réseau privé.

L'utilisateur distant sera connecté logiquement au réseau LAN de l'entreprise comme s'il l'étaitphysiquement.

4.1.2  Connexion entre plusieurs réseaux à travers Internet (LAN to LAN )Il y a deux méthodes pour connecter des réseaux locaux entre eux avec un VPN:

1.  En utilisant des lignes dédiées Au lieu d'utiliser des lignes louées très coûteuses à longue distance entre deux LAN, on utilise uneligne dédiée locale pour se connecter à un ISP pour permettre des connexions à Internet. Leréseau privé virtuel sera donc créé à l'aide des connexions locales à l'ISP et à l'aide du réseaupublic Internet.

2.  À l'aide d'une liaison téléphonique 

Au lieu d'utiliser des lignes dédiées pour se connecter à l'ISP, il suffit d'avoir une liaisontéléphonique permettant l'appel de son propre ISP. Comme pour la solution précédente, le réseauprivé virtuel sera créé à l'aide des connexions locales à l'ISP et à l'aide du réseau public Internet.

Page 10: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 10/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 10

Ces deux solutions diffèrent uniquement dans la façon de se connecter à son propre ISP. L'image suivantemontre ces solutions.

Figure 6 : Connexions LAN to LAN.

4.1.3  Réseau privé entre deux ordinateurs (Host to Host )

Dans ce cas de figure, on veut connecter deux ordinateurs distants entre eux pour des raisons deconfidentialité. On crée donc un VPN entre eux, et toutes les données y transmises sont encryptées etcompréhensibles que par les deux paires correspondantes.La figure suivante montre cet exemple.

Figure 7 : VPN entre deux hôtes.

5.  Exigences de base des VPNLorsqu'on veut créer des VPN, l'entreprise nécessite d'un contrôle d'accès facilité aux ressources et auxinformations partagées. La solution doit permettre aux utilisateurs distants de se connecter aux ressourcesdu réseau LAN local (solution Host-to-LAN). La solution doit aussi permettre à des réseaux distants depouvoir se connecter au réseau LAN, afin de partager les ressources et les informations (solution LAN-to-LAN). De plus la solution doit assurer la confidentialité et l'intégrité des données à travers Internet. Lemême concept doit être appliqué à des données sensibles traversant le réseau d'entreprise.

En conséquence une solution VPN doit offrir au minimum les fonctions suivantes :•  Authentification de l'utilisateur : la solution doit vérifier l'identité de l'utilisateur et limiter l'accès

VPN seulement aux utilisateurs autorisés. Il doit de même pouvoir enregistrer les accès, afin depermettre ensuite de déterminer qui s'est connecté et quand il s'est connecté.

•  Administration des adresses : la solution doit assigner une adresse du réseau privé à chaqueclient et assurer que les adresses privées restent en tant que privées.

•  Encryption des données : les données circulants dans le réseau public (Internet) doivent êtreillisibles aux clients non autorisés.

•  Administration des clés : la solution doit générer et mettre à jour les clés pour l'encryption desdonnées pour le client et le serveur.

• Support multiprotocoles : la solution doit permettre l'utilisation de protocoles communs utilisésdans le réseau public. IP, IPX, etc. sont inclus.

Page 11: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 11/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 11

Une solution VPN peut être basée sur le protocole PPTP (Point-to-Point Tunneling Protocol ), leprotocole L2TP (Layer 2 Tunneling Protocol ) ou IPSec (IP Security Protocol ).

6.  Protocoles VPN

6.1  Concepts de base sur les tunnels

Le tunneling permet l'envoi de données d'un réseau à un autre en utilisant une infrastructure d'inter réseau.Les données à transférer (ou la charge utile - payload ) peuvent être les trames (ou des paquets) d'un autreprotocole. Au lieu d'envoyer une trame dans son état originaire, le protocole qui implémente le tunnelencapsule la trame dans une en-tête supplémentaire. L'en-tête supplémentaire fournit des informations deroutage de sorte que la charge utile encapsulée puisse traverser le réseau intermédiaire.

Les paquets encapsulés sont alors conduits entre les points finaux du tunnel à travers le réseauintermédiaire. Le chemin d'accès logique, par lequel les paquets encapsulés traversent l'inter réseau,

s'appelle tunnel. Une fois que les trames encapsulées atteignent leur destination, la trame est décapsuléeet expédiée à sa destination finale. Le tunneling inclut l'entier processus : encapsulation, transmission, etdécapsulation des paquets.

Figure 8 : Tunneling.

Pour la création d'un tunnel, tant le client que le serveur doivent implémenter le même protocole.Les technologies utilisant le tunneling peuvent être basées sur des protocoles de niveau 2 ou 3. Cesniveaux correspondent aux différentes couches du modèle de référence OSI (Open SystemsInterconnection).Les protocoles de niveau 2 correspondent à des protocoles de couche liaison. PPTP (Point-to-Point Tunneling Protocol ) et L2TP (Layer 2 Tunneling Protocol ) sont des protocoles de niveau 2; les deuxencapsulent la charge utile dans une trame PPP (Point-to-Point Protocol ) pour être ensuite envoyé à

travers le réseau intermédiaire.Les protocoles de niveau 3 correspondent à des protocoles de couche réseau. Le mode tunnel de IPSec(IP Security ) représente un exemple d'un protocole de niveau 3.En bref :

•  PPTP permet au trafic IP, IPX ou NetBEUI d'être encrypté et ensuite d'être encapsulé dans unpaquet IP, afin d'être envoyé à travers un réseau intermédiaire IP, comme Internet.

•  L2TP permet au trafic IP, IPX ou NetBEUI d'être encrypté et ensuite d'être envoyé à traversn'importe quel type de média qui supporte la livraison de datagramme point à point, comme IP,X.25, Frame Relay ou ATM.

•  IPSec (configuré en mode tunnel) permet l'encryptage de la charge utile IP, l'encapsulation dans

un autre paquet IP, et l'envoi à travers un réseau intermédiaire IP, comme Internet.Ces protocoles feront respectivement l'objet d'une présentation dans les chapitres 6.2, 6.3 et 6.4.

Page 12: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 12/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 12

6.1.1  Types de tunnelLes tunnels peuvent être créés selon des manières différentes.

•  Tunnel volontaire : un client peut émettre une demande de création de VPN, afin de configurer et

de créer un tunnel volontaire. Dans ce cas, l'ordinateur de l'utilisateur est un point final du tunnel.Le tunneling volontaire se produit lorsqu'un poste de travail ou un serveur de routage emploie unclient implémentant le tunneling pour créer une connexion virtuelle avec le serveur destinataire.Les VPN n'exigent pas une connexion commutée. C'est une étape préliminaire en vue de créer untunnel et n'est pas une partie du protocole de tunnel elle-même. Ils exigent seulement la gestion duréseau IP.

•  Tunnel d'office : un serveur d'accès réseau implémemtant un protocole VPN configure et crée untunnel d'office. Avec un tunnel d'office, l'ordinateur de l'utilisateur n'est pas un point final de tunnel.C'est le serveur d'accès à distance, entre l'ordinateur de l'utilisateur et le serveur VPN, qui est lepoint final du tunnel et agit en tant que client VPN.

6.2  PPTP – Point-to-Point Tunneling Protocol  

6.2.1  PréambulePPTP (Point-to-Point Tunnelling Protocol ) est un protocole réseau permettant le transfert sécurisé dedonnées entre un client distant et un serveur privé. Ceci est possible par la création d'un VPN utilisantTCP/IP.PPTP supporte les VPN à la demande multiprotocole sur des réseaux publics comme Internet.La technologie utilisée par PPTP est une extension du protocole permettant l'accès à distance PPP (Point-to-Point Protocol ) défini dans le document de l'IETF (Internet Engineering Task Force) intitulé "The Point-

to-Point Protocol for the transmission of multiprotocols Datagrams over Point-to-Point Links" (RFC 1171, v.CD en annexe).PPTP est un protocole qui encapsule les paquets PPP dans des datagrammes IP pour la transmission sur Internet ou un autre réseau public basé sur TCP/IP. PPTP peut être de même utilisé pour des liaisonsLAN-to-LAN.Le protocole PPTP est expliqué dans le document "Point-to-Point Tunnelling Protocol, (RFC 2637, v. CDen annexe).Un avant-projet de ce document fut envoyé à l'IETF en juin 1996 par les entreprises du PPTPforum. US Robotics, ECI Telematics, 3 Com/Primary Access, Ascend Communications, MicrosoftsCorporation sont inclus.

6.2.2  PPTP et les VPNPPTP permet la création de VPN sur demande à travers des réseaux basés sur TCP/IP. Il peut de mêmeêtre utilisé pour créer un VPN entre deux ordinateurs dans le même réseau local. Une caractéristiqueimportante de PPTP est son support pour la création de réseaux privés virtuels en utilisant le réseautéléphonique public (PSTN). PPTP simplifie et réduits les coûts d'une solution pour l'accès longue distancepar les utilisateurs distants mobiles. Ceci, car il permet des communications encryptées sûres à travers lesliaisons téléphoniques et l'Internet.

Généralement, l'usage de PPTP implique:-  un client PPTP;

-  un serveur d'accès réseau (Network Access Server – NAS);-  un serveur PPTP.

Page 13: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 13/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 13

L'usage d'un serveur d'accès réseau pour la création d'un tunnel PPTP entre deux dispositifs sur le mêmeLAN n'est pas nécessaire. Ceci, en raison du fait que les dispositifs se trouvent déjà sur le même réseau.

Le sous-chapitre suivant décrira un scénario typique de l'usage de PPTP entre deux ordinateurs et enexpliquera la relation.

6.2.3  Scénario PPTP typiqueL'usage typique de PPTP commence avec le besoin de la part d'un client PPTP, qui soit distant ou mobile,de se connecter au réseau privé d'une entreprise. Pour se faire, le client doit se connecter à Internet àl'aide d'un ISP local (Internet Service Provider ). Le client se connecte au serveur d'accès (NAS)1 de l'ISP.Une fois connecté le client peut envoyer et recevoir des paquets depuis Internet et utiliser TCP/IP. Aprèsque le client ait créé la connexion PPP initiale avec l'ISP une seconde connexion PPP est faite sur l'existante. Les données envoyées à travers la deuxième connexion sont sous la forme de datagrammes IPcontenants des paquets PPP; ces paquets PPP sont en fait des paquets PPP encapsulés. Cette deuxièmeconnexion crée la liaison VPN avec le serveur PPTP de l'entreprise et elle est appelée "tunnel". La figure

suivante montre un tunnel PPTP.

Figure 9 : Tunnel PPTP.

Le processus permettant l'envoie de paquets vers un ordinateur se trouvant dans un réseau privé, enfaisant un routage des paquets sur d'autres réseaux, comme Internet, est appelé "Tunneling". Les routeursdes autres réseaux ne peuvent pas accéder à l'ordinateur qui se trouve dans le réseau privé. Toutefois, letunneling permet au réseau public de transmettre les paquets à un dispositif intermédiaire, comme unserveur PPTP, qui est connecté, tant au réseau public qu'au réseau privé. Le client et le serveur PPTPutilisent le tunnel pour router les paquets vers un ordinateur situé dans le réseau privé en utilisant desrouteurs qui connaissent seulement l'adresse publique du serveur intermédiaire qui fait office depasserelle. Lorsque le serveur PPTP reçoit des paquets provenant du réseau public, il les envoie à

l'ordinateur destinataire qui se trouve dans le réseau privé. Le serveur PPTP fait cela après avoir analyséle paquet PPTP et avoir obtenu le nom de la machine destinatrice, soit l'adresse dans le paquet PPPencapsulé. Il faut remarquer que le paquet PPP encapsulé peut contenir plusieurs types de protocolescomme TCP/IP, IPX ou NetBEUI. Puisque le serveur PPTP est configuré pour communiquer à travers leréseau privé en utilisant les protocoles du réseau privé, il est capable de comprendre les paquets deplusieurs protocoles.

1 NAS – Network Acces Server  : Les serveurs d'accès-réseau sont référencés de même en tant que FEPs (Front End 

Processors). Les serveurs Dial-in comme POP (Point-Of-Presence servers).

Page 14: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 14/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 14

La figure suivante montre le support multiprotocole de PPTP. Un paquet envoyé par le client vers leserveur PPTP passe à travers le tunnel et va rejoindre la machine destinatrice dans le réseau local.

Figure 10 : Connexion à distance entre un client PPTP et un réseau privé.

PPTP encapsule les paquets PPP cryptés et compressés dans un datagramme IP pour la transmission sur Internet. Ces datagrammes sont routés à travers Internet jusqu'au serveur PPTP qui est connecté tant auréseau public qu'au réseau privé. Ensuite le serveur PPTP désassemble ces datagrammes dans despaquets PPP et encode ces paquets dans le protocole utilisé dans le réseau local (IPX, TCP/IP, NetBEUI).

6.2.4  Clients PPTPUn client PPTP peut être un ordinateur qui supporte le protocole PPTP, comme par exemple un clientLinux ou Microsoft.Il peut se connecter à un serveur PPTP de deux manières différentes :

•  Soit en utilisant l'accès d'un ISP qui supporte des connexions PPP entrantes;•  Soit en utilisant une connexion TCP/IP physique qui lui permet de se connecter directement au

serveur PPTP.Un client qui utilise l'accès d'un ISP doit être doté d'un modem et d'un dispositif VPN2; qui permettentrespectivement la connexion à l'ISP et au serveur PPTP.Comme vu dans le chapitre précédent le tunnel PPTP est créé à partir de deux connexions.La première connexion est une connexion PPP par modem à destination des fournisseurs d'accès Internet.La deuxième est une connexion VPN PPTP utilisant la première connexion pour créer un tunnel à traversInternet vers un dispositif VPN sur le serveur PPTP. La deuxième connexion nécessite de la première, car le tunnel entre les deux dispositifs VPN est établi en utilisant le modem et la connexion PPP vers Internet.Une autre possibilité consiste à créer un réseau privé virtuel entre deux ordinateurs connectésphysiquement au réseau LAN privé. Dans ce scénario, le client PPTP est déjà connecté au réseau et il aseulement besoin du dispositif VPN pour la connexion à un serveur PPTP dans le LAN. Les paquets d'unclient distant (accès par modem) et d'un client local (LAN) sont traités différemment. Un paquet PPTPprovenant d'un client distant est placé dans le média physique du dispositif de télécommunication (modem)qui peut être une ligne téléphonique ou le téléréseau, etc.. Tandis qu'un paquet PPTP provenant d'un clientrelié physiquement au réseau local est placé dans l'adaptateur du média physique, comme par exempleune carte Ethernet.

2 En pratique, le dispositif VPN est un module sur Linux ou une carte VPN fictive sur Windows.

Page 15: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 15/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 15

6.2.5  Serveur d'accès réseau de l'ISPLes fournisseurs d'Internet utilisent des serveurs d'accès (NAS) pour permettre à ces propres clientsd'accéder à Internet à l'aide de protocoles comme SLIP, soit PPP. Pour supporter des clients PPTP, unNAS doit pouvoir offrir le service PPP. Les serveurs d'accès de l'ISP sont paramétrés et configurés pour 

permettre un grand nombre d'appels entrants de la part des clients. Certains NAS supportent eux-mêmesPPTP. Dans ce cas, les clients n'on pas besoin d'avoir une interface VPN, car c'est le NAS qui agit en tantque client PPTP et qui se connecte au réseau privé en créant un tunnel entre l'ISP et le serveur PPTP.

6.2.6  Serveur PPTPLes serveurs PPTP sont des serveurs qui ont des capacités de routage et sont connectés tant au réseauprivé qu'à Internet. Un serveur PPTP peut être implémenté par un ordinateur tournant Linux et le daemonpptpd ou par un ordinateur ayant Window NT. Dans le cas de WinNT, PPTP est défini comme un protocoleréseau. Pendant l'installation, PPTP est configuré en rajoutant le dispositif virtuel VPNs (Virtual PrivateNetworks) à l'accès à distance.

6.2.7  Architecture PPTPComme vu précédemment PPTP a été conçu, afin d'obtenir une méthode sûre pour rejoindre un réseauprivé à travers Internet. Par les prochains chapitres, on examinera :

•  Le protocole PPP;•  La connexion de contrôle PPTP;•  Le Tunnel PPTP.

6.2.8  Vue d'ensemble de l'architecture PPTPLa création d'un VPN à l'aide de PPTP implique typiquement trois processus; chacun ayant besoin laterminaison correcte du processus précédent. Voici les processus impliqués.Connexion et communication PPTP : un client PPTP utilise PPP pour se connecter à son ISP à l'aide d'uneligne téléphonique analogique ou RNIS. Cette connexion utilise le protocole PPP pour établir la connexionet encrypter les paquets.Connexion de contrôle PPTP : en utilisant la connexion à Internet établie par PPP, le protocole PPTP créeune connexion de contrôle entre le client et le serveur PPTP. Cette connexion TCP utilise le port dedestination 1723 pour établir le tunnel PPTP.Tunnel PPTP : enfin, le protocole PPTP crée des datagrammes IP contenants des paquets PPP encryptés,lesquels sont ensuite envoyés à travers le tunnel PPTP au serveur. Le serveur désassemble les

datagrammes IP, les décrypte et les redirige vers le réseau LAN privé.Protocole PPP : PPP est un protocole pour l'accès à distance utilisé par PPTP pour l'envoi de données àtravers les réseaux basés sur TCP/IP. PPP encapsule les paquets IP, IPX ou NetBEUI dans des trames.Ces trames sont envoyées en créant un lien point à point entre l'ordinateur émetteur et celui récepteur. Laplupart des sessions PPTP sont démarrées par un client appelant un serveur d'accès d'un ISP. Leprotocole PPP est utilisé pour la création de la connexion entre le client et le serveur d'accès réseau.PPP offre ces trois options :

•  Etablir et former la connexion physique : le protocole PPP utilise la séquence définie dans ledocument de référence (RFC 1662, v. CD en annexe) pour la création, le maintien et la fermeturede la connexion.

•  Authentifier les utilisateurs : les clients PPTP sont authentifiés par le protocole PPP.

L'authentification peut être faite par l'envoi de clés en clair ou encryptées.•  Créer des datagrammes PPP contenants des paquets IPX, NetBEUI, soit TCP/IP : PPP crée des

datagrammes contentant un ou plusieurs paquets TCP/IP, IPX soit NetBEUI. Vu que tous les

Page 16: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 16/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 16

paquets sont encryptés, le trafic entre un client PPP et un serveur d'accès peut être considérécomme sûr.

6.2.9  Connexion de contrôle PPTPLe protocole PPTP défini une série de messages de contrôle échangés entre le client et le serveur PPTP.Ces commandes établissent, maintiennent et terminent le tunnel PPTP. La liste suivante représente lesmessages utilisés pour établir et maintenir le tunnel.

Messages de gestion de la connexion:

START_CONTROL_REQUEST Demande de début de sessionSTART_CONTROL_REPLY Réponse à la demande de début de sessionSTOP_CONTROL_REQUEST Demande de fin de sessionSTOP_CONTROL_REPLY Réponse à la demande de fin de session

ECHO_REQUEST Demande de maintient la session de contrôleECHO_REPLY Réponse à la demande de maintient

Messages de gestion du tunnel:

OUTGOING_CALL_REQUEST Demande de création du tunnel de la part du clientOUTGOING_CALL_REPLY Réponse à la demande de création du tunnel de la

part du clientINCOMING_CALL_REQUEST Demande de création du tunnel de la part du

serveur INCOMING_CALL_REPLY Réponse à la demande de création du tunnel de la

part du serveur INCOMING_CALL_CONNECTED Tunnel en entrée créeCLEAR_CALL_REQUEST Demande de terminaison de la session PPTPDISCONNECT_CALL_NOTIFY Réponse à la demande de terminaison et fin de la

session PPTP

Messages d'erreurs:

WAN_ERROR_NOTIFY Erreur dans la connexion PPP

Messages de gestion de la session PPP:

SET_LINK_INFO Configure la connexion entre le client et le serveur 

6.2.9.1  Messages de gestion de la connexionCes messages sont utilisés pour établir et terminer une session d'utilisateur. Ces messages sont envoyés

Page 17: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 17/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 17

comme données dans la connexion TCP 1723 établie auparavant entre le client et le serveur PPTP.

Start-Control-Connection-RequestLe Start-Control-Connection-Request est un message de contrôle PPTP employé pour établir la connexionde contrôle entre un client et un serveur. Une connexion de contrôle doit être créée pour chaque paire

client-serveur. Une connexion de contrôle doit être établie avant que tous les autres messages de contrôlePPTP puissent être émis.

16 bit 16 bit

Length PPTP Message Type

Magic Cookie

Control Message Type Reserved0

Protocol Version Reserved1

Framing Capabilities

Bearer Capabilities

Maximum Channels Firmware Revision

Host Name (64 octets)Vendor String (64 octets)

Figure 11 : message de contrôle Start-Control-Connection-Request

Déscription des champs de la trame:

Length Longueur totale en octets du message PPTP. L'entête est incluse.PPTP Message Type Valeur 1 pour un message de contrôle.Magic Cookie Valeur 0x1A2B3C4D. Cette constante est utilisée comme test pour les

paquets reçus.

Control Message Type Valeur 1 pour indiquer le message Start-Control-Connection-Request.Reserved0 Ce champ doit être à 0.Protocol Version Indique la version de PPTP utilisée.Reserved1 Ce champ doit être à 0.Framing Capabilities Indique le type des trames. Deux valeurs sont possibles:

1 - Asynchronous Framing2 - Synchronous Framing

Bearer Capabilities Indique le type d'accés. Deux valeurs sont possibles:1 - Accès analogique supporté2 - Accès numérique supporté

Maximum Channels Indique le nombre maximal de session PPP individuelles. Dans le cas du

message Start-Control-Connection-Requests envoyé par le client, cettevaleur doit être à 0.

Firmware Revision Ce champ contient la version du firmwareHost Name Indique le nom du client ou du serveur. Ce champ est de 64 octets.Vendor Name Indique le nom du constructeur du client ou du serveur. Ce champ est de 64

octets.

Start-Control-Connection-ReplyCe message est utilisé comme réponse au message Start-Control-Connection-Request. Il contient le

Page 18: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 18/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 18

résultat de la demande de connexion.

16 bit 16 bit

Length PPTP Message Type

Magic Cookie

Control Message Type Reserved0Protocol Version Result Code Error Code

Framing Capabilities

Bearer Capabilities

Maximum Channels Firmware Revision

Host Name (64 octets)

Vendor String (64 octets)

Figure 12 : message de contrôle Start-Control-Connection-Reply

Déscription des champs de la trame:

Length Longueur totale en octets du message PPTP. L'entête est incluse.PPTP Message Type Valeur 1 pour un message de contrôle.Magic Cookie Valeur 0x1A2B3C4D. Cette constante est utilisée comme test pour les

paquets reçus.Control Message Type Valeur 2 pour indiquer le message Start-Control-Connection-Reply.Reserved0 Ce champ doit être à 0.Protocol Version Indique la version de PPTP utilisée.Result Code Indique le résultat de la tentative de connexion. Les valeurs possibles sont:

1 - Connexion établie avec succès2 - Erreur générale. Si défini, il est spécifié dans le champ Error Code

3 - La connexion de contrôle existe déjà4 - Le client n'est pas autorisé à créer la connexion de contrôle.5 - La version du protocole n'est pas supportée

Error Code Tant qu'il n'y a pas d'erreur générale, ce champ vaut 0. Sinon il indique letype d'erreur.

Framing Capabilities Indique le type des trames. Deux valeurs sont possibles:1 - Asynchronous Framing2 - Synchronous Framing

Bearer Capabilities Indique le type d'accés. Deux valeurs sont possibles:1 - Accès analogique supporté2 - Accès numérique supporté

Maximum Channels Indique le nombre maximal de sessions PPP individuelles. Dans le cas dumessage Start-Control-Connection-Requests envoyé par le client, cettevaleur doit être à 0.

Firmware Revision Ce champ contient la version du firmwareHost Name Indique le nom du client ou du serveur. Ce champ est de 64 octets.Vendor Name Indique le nom du constructeur du client ou du serveur. Ce champ est de 64

octets.

Stop-Control-Connection-RequestLe Stop-Control-Connection-Request est un message de contrôle envoyé par un pair de la connexion afin

Page 19: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 19/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 19

d'informer l'autre que la connexion de contrôle devrait être fermée. En plus de fermer la connexion, tousles appels d'utilisateur actifs sont implicitement effacés. La raison de l'émission de cette demande estindiquée dans le champ Reason.

16 bit 16 bit

Length PPTP Message TypeMagic Cookie

Control Message Type Reserved0

Reason Reserved1 Reserved2

Figure 13 : message de contrôle Stop-Control-Connection-Request

Déscription des champs de la trame:

Length Longueur totale en octets du message PPTP. L'entête est incluse.PPTP Message Type Valeur 1 pour un message de contrôle.

Magic Cookie Valeur 0x1A2B3C4D. Cette constante est utilisée comme test pour lespaquets reçus.Control Message Type Valeur 3 pour indiquer le message Stop-Control-Connection-Request.Reserved0 Ce champ doit être à 0.Reason Indique la raison pour la fermeture de la connexion. Che champs peut avoir 

les valeurs:1 - (None) – Requête générale pour la fermeture de la connexion2 - (Stop-Protocol) – Version de protocole non supportée3 - (Stop-Local-Shutdown) – Arrêt de l'ordinateur qui fait la requête

Reserved1, Reserved2 Ce champ doit être à 0.

Stop-Control-Connection-ReplyLe Stop-Control-Connection-Reply est un message de contrôle envoyé par un pair d'une connexion decontrôle à la réception d'un message Control-Connection-Request de l'autre pair.

16 bit 16 bit

Length PPTP Message Type

Magic Cookie

Control Message Type Reserved0

Result Code Error Code Reserved1

Déscription des champs de la trame:

Length Longueur totale en octets du message PPTP. L'entête est incluse.PPTP Message Type Valeur 1 pour un message de contrôle.Magic Cookie Valeur 0x1A2B3C4D. Cette constante est utilisée comme test pour les

paquets reçus.Control Message Type Valeur 4 pour indiquer le message Stop-Control-Connection-Reply.Reserved0 Ce champ doit être à 0.

Result Code Indique le resultat de la demande de déconnexion. Les valeurs possiblessont:

1 (OK) - Connexion de contrôle fremée.2 (General Error) - Connexion de contrôle pas fermée à cause de Error 

Code

Page 20: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 20/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 20

Error Code Tant qu'il n'y a pas d'erreur générale, ce champ vaut 0. Sinon il indique letype d'erreur.

Reserved1 Ce champ doit être à 0.

Echo-Request

L'Echo-Request est un message de contrôle envoyé par l'un ou l'autre pair d'une connexion de contrôle.Ce message est utilisé comme test d'existance de la connexion de contrôle. Le pair de réception émet unEcho-Reply à chaque Echo-Request reçu. Si l'expéditeur ne reçoit pas un Echo-Reply en réponse à unEcho-Request, il peut fermer la connexion.

16 bit 16 bit

Length PPTP Message Type

Magic Cookie

Control Message Type Reserved0

Identifier

Figure 14 : message de contrôle Echo-Request

Déscription des champs de la trame:

Length Longueur totale en octets du message PPTP. L'entête est incluse.PPTP Message Type Valeur 1 pour un message de contrôle.Magic Cookie Valeur 0x1A2B3C4D. Cette constante est utilisée comme test pour les

paquets reçus.Control Message Type Valeur 5 pour indiquer le message Echo-Request.Reserved0 Ce champ doit être à 0.Identifier Valeur choisit par l'émetteur pour la correspondance avec le message suivant Echo-Reply.

Echo-ReplyL'Echo-Reply est un message de contrôle envoyé par l'un ou l'autre pair d'une connexion de contrôle enréponse à la réception d'une demande d'écho.

16 bit 16 bit

Length PPTP Message Type

Magic Cookie

Control Message Type Reserved0

Identifier

Result Code Error Code Reserved1

Figure 15 : message de contrôle Echo-Reply

Déscription des champs de la trame:

Length Longueur totale en octets du message PPTP. L'entête est incluse.PPTP Message Type Valeur 1 pour un message de contrôle.Magic Cookie Valeur 0x1A2B3C4D. Cette constante est utilisée comme test pour les

paquets reçus.Control Message Type Valeur 6 pour indiquer le message Echo-Reply.Reserved0 Ce champ doit être à 0.

Identifier Valeur choisit par l'émetteur pour la correspondance avec le message Echo-Request. La valeur est celle reçue dans le champ Identifier du messageEcho-Request.

Page 21: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 21/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 21

Result Code Indique le résultat de la requête Echo-Request. Les valeurs possibles sont:1 (OK) - Requête valide2 (General Error) - Requête Echo-Request non acceptée

Error Code Tant qu'il n'y a pas d'erreur générale, ce champ vaut 0. Sinon il indique letype d'erreur.

Reserved1 Ce champ doit être à 0.

6.2.9.2  Messages de gestion du tunnel

Ces messages servent à la gestion du tunnel GRE.

Outgoing-Call-RequestL'Outgoing-Call-Request est un message envoyé par le client pour indiquer qu'un tunnel pour les donnéesdoit être établi. Cette demande fournit au serveur des informations qui permettent la régulation de latransmission des données.

16 bit 16 bit

Length PPTP Message Type

Magic Cookie

Control Message Type Reserved0

Call ID Call Serial Number

Minimum BPS

Maximum BPS

Bearer Type

Framing Type

Packet Recv. Window Size Packet Processing Delay

Phone Number Length Reserved1

Phone Number (64 octets)Subaddress (64 octets)

Figure 16 : message de contrôle Outgoing-Call-Request

Déscription des champs de la trame:

Length Longueur totale en octets du message PPTP. L'entête est incluse.PPTP Message Type Valeur 1 pour un message de contrôle.Magic Cookie Valeur 0x1A2B3C4D. Cette constante est utilisée comme test pour les

paquets reçus.

Control Message Type Valeur 7 pour indiquer le message Outgoing-Call-Request.Reserved0 Ce champ doit être à 0.Call ID Un identificateur unique assigné par le client à cette session. Elle est

employée pour multiplexer et démultiplexer des données envoyées dans letunnel.

Call Serial Number Un identificateur assigné par le client à cette. À la différence de l'identificationd'appel, le client et le serveur associent le même numéro d'appel à unesession donnée. La combinaison du numéro de série et de l'adresse IP etd'appel devrait être unique.

Minimum BPS Vitesse de ligne minimale (in bits/sec) pour cette session.Maximum BPS Vitesse de ligne maximale (in bits/sec) pour cette session.

Bearer Capabilities Indique le type d'accès. Deux valeurs sont possibles:1 - Accès analogique supporté

Page 22: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 22/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 22

2 - Accès numérique supporté3 - Tous les types d'accès sont supportés

Framing Capabilities Indique le type des trames. Deux valeurs sont possibles:1 - Asynchronous Framing2 - Synchronous Framing

3 - Tous les types sont supportésPacket Recv. Window Size Le nombre de paquets de données reçus que le client protégera pour cette

session.Packet Processing Delay Une mesure du retard de traitement de paquet qui pourrait être imposé aux

données a envoyé au client. Cette valeur est indiquée dans les unités de 1/10de secondes. Pour le client ce nombre devrait être très petit.

Phone Number Length Le nombre réel de chiffres valides dans le domaine de numéro de téléphone.Reserved1 Ce champ doit être à 0.Phone Number Le nombre à composer pour établir la session sortante. Pour des appels

numériques et analogiques cette zone est une chaîne de caractères ascii. Sile numéro de téléphone est moins de 64 octets de longueur, le reste de cettezone est rempli d'octets de valeur 0.

Subaddress Une zone de 64 octets indiquant de l'information supplémentaire.

Outgoing-Call-ReplyL'Outgoing-Call-Reply est un message de contrôle du serveur en réponse à un message Outgoing-Call-Request. La réponse indique le résultat de la tentative d'appel sortant. Elle fournit également desinformations au client au sujet des paramètres particuliers utilisés pour l'appel.

16 bit 16 bit

Length PPTP Message Type

Magic Cookie

Control Message Type Reserved0

Call ID Peer's Call ID

Result Code Error Code Cause Code

Connect Speed

Packet Recv. Window Size Packet Processing Delay

Physical Channel ID

Figure 17 : message de contrôle Outgoing-Call-Reply

Déscription des champs de la trame:

Length Longueur totale en octets du message PPTP. L'entête est incluse.PPTP Message Type Valeur 1 pour un message de contrôle.Magic Cookie Valeur 0x1A2B3C4D. Cette constante est utilisée comme test pour les

paquets reçus.Control Message Type Valeur 8 pour indiquer le message Outgoing-Call-Reply.Reserved0 Ce champ doit être à 0.Call ID Un identificateur unique assigné par le serveur à cette session. Elle est

employée pour multiplexer et démultiplexer des données envoyées dans letunnel.

Peer's Call ID Dans ce champ se trouve la valeur reçue dans le domaine d'identificationd'appel du message précedent d'Outgoing-Call-Request. Elle est employéepar le client pour comparer l'Outgoing-Call-Reply avec l'Outgoing-Call-Request qu'il a émis.

Page 23: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 23/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 23

Result Code Indique le résultat de la requête Outgoing-Call-Request. Les valeurspossibles sont:

1 - Connexion établie avec succès2 - Erreur générale. Si défini, il est spécifié dans le champ Error Code3 (No Carrier) - Aucune porteuse détectée

4 (Busy) - Ligne occupée5 (No Dial Tone) - L'appel sortant est échoué en raison du manque de latonalité6 (Time-out) - L'appel sortant n'a pas été établi dans le temps établi par leserveur 7 (Do Not Accept) - Appel sortant administrativement interdit

Error Code Tant qu'il n'y a pas d'erreur générale, ce champ vaut 0. Sinon il indique letype d'erreur.

Cause Code Ce champ fournit l'information supplémentaire de panne. Sa valeur peutchanger à dépendance du type d'appel.

Connect Speed La vitesse réelle de connexion utilisée, en bits/sec.Packet Recv. Window Size Le nombre de paquets de données reçus que le serveur protégera pour cette

session.Packet Processing Delay Une mesure du retard de traitement de paquet qui pourrait être imposé aux

données a envoyé au serveur. Cette valeur est indiquée dans les unités de1/10 de secondes. Pour le client ce nombre devrait être très petit.

Physical Channel ID Ce champ est configuré par le serveur avec le numéro de canal physiqueemployé pour cet appel. Il est utilisé pour des buts d'enregistrementsseulement.

Incoming-Call-Request

L'Incoming-Call-Request est un message de contrôle envoyé par le serveur pour indiquer qu'un tunnel doitêtre établi. Le serveur ne peut pas le créer jusqu'à ce qu'elle ait reçu un Incoming-Call-Reply du client,indiquant que l'appel peut être établi. Ce mécanisme permet au client d'obtenir des informations suffisantessur le tunnel avant qu'on lui réponde pour déterminer si l'appel doit être répondu ou pas.

16 bit 16 bit

Length PPTP Message Type

Magic Cookie

Control Message Type Reserved0

Call ID Call Serial Number

Call Bearer Type

Physical Channel ID

Dialed Number Length Dialing Number Length

Dialed Number (64 octets)

Dialing Number (64 octets)

Subaddress (64 octets)

Figure 18 : message de contrôle Incoming-Call-Request

Déscription des champs de la trame:

Length Longueur totale en octets du message PPTP. L'entête est incluse.PPTP Message Type Valeur 1 pour un message de contrôle.

Page 24: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 24/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 24

Magic Cookie Valeur 0x1A2B3C4D. Cette constante est utilisée comme test pour lespaquets reçus.

Control Message Type Valeur 9 pour indiquer le message Incoming-Call-Request.Reserved0 Ce champ doit être à 0.Call ID Un identificateur unique assigné par le serveur à cette session. Elle est

employée pour multiplexer et démultiplexer des données envoyées dans letunnel.

Call Serial Number Un identificateur assigné par le serveur à cette. À la différence del'identification d'appel, le client et le serveur associent le même numérod'appel à une session donnée. La combinaison du numéro de série et del'adresse IP et d'appel devrait être unique.

Bearer Type Valeur indiquant le type de canal utilisé pour l'appel entrant. Les valeurspossibles sont:

1 - Call is on an analog channel2 - Call is on a digital channel

Physical Channel ID Ce champ est configuré par le serveur avec le numéro de canal physiqueemployé pour cet appel. Il est utilisé pour des buts d'enregistrementsseulement.

Dialed Number Length Le nombre réel de chiffres valides dans le champ du nombre composé.Dialing Number Length Le nombre réel de chiffres valides dans le champ du nombre à composer.Dialed Number Le numéro qui a été composé par l'appelant. Pour des appels de numériques

et analogiques ce champ est une chaîne de caractères ascii. Si le numérocomposé est moins de 64 octets de longueur, le reste de ces champs estrempli d'octets de valeur 0.

Dialing Number Le numéro qui est à composer. Pour des appels de numériques etanalogiques ce champ est une chaîne de caractères ascii. Si le numéro

composé est moins de 64 octets de longueur, le reste de ce champs estrempli d'octets de valeur 0.Subaddress Une zone de 64 octets indiquant de l'information supplémentaire.

Incoming-Call-ReplyL'Incoming-Call-Reply est un message envoyé par le client en réponse à un message d'Incoming-Call-Request. La réponse indique le résultat de la tentative d'appel d'arrivée. Elle fournit également desinformations pour permettre au client de régler la transmission de données. Il indique au serveur si l'appeldoit être répondu ou pas.

16 bit 16 bit

Length PPTP Message TypeMagic Cookie

Control Message Type Reserved0

Call ID Peer's Call ID

Result Code Error Code Packet Recv. Window Size

Packet Transmit Delay Reserved1

Physical Channel ID

Figure 19 : message de contrôle Incoming-Call-Reply

Déscription des champs de la trame:

Length Longueur totale en octets du message PPTP. L'entête est incluse.PPTP Message Type Valeur 1 pour un message de contrôle.

Page 25: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 25/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 25

Magic Cookie Valeur 0x1A2B3C4D. Cette constante est utilisée comme test pour lespaquets reçus.

Control Message Type Valeur 10 pour indiquer le message Incoming-Call-Reply.Reserved0 Ce champ doit être à 0.Call ID Un identificateur unique assigné par le client à cette session. Elle est

employée pour multiplexer et démultiplexer des données envoyées dans letunnel.

Peer's Call ID Dans ce champ se trouve la valeur reçue dans le champ d'identificationd'appel du message Incoming-Call-Request. Elle est employée par le serveur pour comparer l'Incoming-Call-Reply avec l'Incoming-Call-Request qu'il aémis.

Result Code Indique le résultat de la requête Incoming-Call-Request. Les valeurspossibles sont:

1 - Connexion établie avec succès2 - Erreur générale. Si défini, il est spécifié dans le champ Error Code3 - (Do Not Accept) Le serveur n'accepte pas la requête. Il doit accrocher 

ou envoyer un signal d'occupationError Code Tant qu'il n'y a pas d'erreur générale, ce champ vaut 0. Sinon il indique le

type d'erreur.Packet Recv. Window Size Le nombre de paquets de données reçus que le serveur protégera pour cette

session.Packet Transmit Delay Une mesure du retard de traitement de paquet qui pourrait être imposé aux

données a envoyé au serveur. Cette valeur est indiquée dans les unités de1/10 de secondes. Pour le client ce nombre devrait être très petit.

Reserved1 Ce champ doit être à 0.

Incoming-Call-ConnectedLe message d'Incoming-Call-Connected est un message envoyé par le serveur en réponse à un Incoming-Call-Reply reçu. Il fournit des informations au client au sujet des paramètres particuliers utilisés pour l'appel. Il fournit un mécanisme pour donner au client des informations supplémentaires sur l'appel qui nepeut pas, en général, être obtenu lorsque l'Incoming-Call-Request est émis par le serveur.

16 bit 16 bit

Length PPTP Message Type

Magic Cookie

Control Message Type Reserved0

Peer's Call ID Reserved1

Connect SpeedPacket Recv. Window Size Packet Transmit Delay

Framing Type

Figure 20 : message de contrôle Incoming-Call-Connected

Déscription des champs de la trame:

Length Longueur totale en octets du message PPTP. L'entête est incluse.PPTP Message Type Valeur 1 pour un message de contrôle.Magic Cookie Valeur 0x1A2B3C4D. Cette constante est utilisée comme test pour les

paquets reçus.Control Message Type Valeur 11 pour indiquer le message Incoming-Call-Connected.Reserved0 Ce champ doit être à 0.

Page 26: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 26/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 26

Peer's Call ID Dans ce champ se trouve la valeur reçue dans le champ d'identificationd'appel du message Incoming-Call-Reply. Elle est employée par le client pour comparer l'Incoming-Call-Connected avec l'Incoming-Call-Reply qu'il a émis.

Connect Speed La vitesse réelle de connexion utilisée, en bits/sec.Packet Recv. Window Size Le nombre de paquets de données reçus que le serveur protégera pour cette

session.Packet Transmit Delay Une mesure du retard de traitement de paquet qui pourrait être imposé aux

données a envoyé au serveur. Cette valeur est indiquée dans les unités de1/10 de secondes. Pour le client ce nombre devrait être très petit.

Framing Type Valeur indiquant le type de trame utilisé. Ce champ peut valoir:1 - Appel de type asynchrone2 - Appel de type synchrone

Call-Clear-RequestLe Call-Clear-Request est un message de contrôle envoyé par le client indiquant qu'un tunnel particulier doit être fermé. Le tunnel à terminer peut être un tunnel entrant ou sortant, dans n'importe quel état. Leserveur répond à ce message avec un Call-Disconnect-Notify.

16 bit 16 bit

Length PPTP Message Type

Magic Cookie

Control Message Type Reserved0

Call ID Reserved1

Framing Type

Figure 21 : message de contrôle Call-Clear-Request

Déscription des champs de la trame:

Length Longueur totale en octets du message PPTP. L'entête est incluse.PPTP Message Type Valeur 1 pour un message de contrôle.Magic Cookie Valeur 0x1A2B3C4D. Cette constante est utilisée comme test pour les

paquets reçus.Control Message Type Valeur 12 pour indiquer le message Call-Clear-Request.Reserved0 Ce champ doit être à 0.Call ID Le numéro d'authentification assigné par le client à cet appel.Reserved1 Ce champ doit être à 0.

Call-Disconnect-Notify

Page 27: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 27/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 27

Le message de Call-Disconnect-Notify est un contrôle envoyé par le serveur. Il est émis toutes les foisqu'un tunnel est fermé, en raison de la réception par le serveur d'un Call-Clear-Request ou pour n'importequelle autre raison. Son but est d'informer le client du tunnel et de la raison de cette fermeture.

16 bit 16 bit

Length PPTP Message TypeMagic Cookie

Control Message Type Reserved0

Call ID Result Code Error Code

Cause Code Reserved1

Call Statistics (128 octets)

Figure 22 : message de contrôle Call-Disconnect-Notify

Déscription des champs de la trame:

Length Longueur totale en octets du message PPTP. L'entête est incluse.PPTP Message Type Valeur 1 pour un message de contrôle.Magic Cookie Valeur 0x1A2B3C4D. Cette constante est utilisée comme test pour les

paquets reçus.Control Message Type Valeur 13 pour indiquer le message Call-Disconnect-Notify.Reserved0 Ce champ doit être à 0.Call ID Le numéro d'authentification assigné par le serveur à cet appel.

Result Code Indique la raison de la déconnexion. Les valeurs possibles sont:

1 (Lost Carrier) - Perte de la porteuse2 (General Error) - Erreur générale3 (Admin Shutdown) - Déconnecté pour der raisons administratives4 (Request) - Déconnecté a cause d'une requête Call-Clear-Request

Error Code Tant qu'il n'y a pas d'erreur générale, ce champ vaut 0. Sinon il indique letype d'erreur.

Cause Code Ce champ fournit l'information supplémentaire de panne. Sa valeur peutchanger à dépendance du type d'appel.

Call Statistics Ce champ contient un texte ascii contenant des statistiques d'appel et quipeuvent être enregistrés pour des diagnostiques. Si la longueur de ce texteest inférieure à 128, les bit restants sont mis à 0.

Page 28: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 28/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 28

6.2.9.3  Messages d'erreurs

WAN-Error-NotifyLe message WAN-Error-Notify est un message de contrôle envoyé par le serveur pour indiquer des erreursWAN (qui se produisent sur l'interface PPP supportante). Les compteurs dans ce message sont cumulatifs.Ce message devrait seulement être envoyé quand une erreur se produit, et pas plus d'une fois toutes les60 secondes. Les compteurs sont remis à l'état initial quand un nouvel appel est établi.

16 bit 16 bit

Length PPTP Message Type

Magic Cookie

Control Message Type Reserved0

Peer's Call ID Reserved1

CRC Errors

Framing Errors

Hardware Overruns

Buffer OverrunsTime-out Errors

Alignment Errors

Figure 23 : message de contrôle WAN-Error-Notify

Déscription des champs de la trame:

Length Longueur totale en octets du message PPTP. L'entête est incluse.PPTP Message Type Valeur 1 pour un message de contrôle.Magic Cookie Valeur 0x1A2B3C4D. Cette constante est utilisée comme test pour les

paquets reçus.Control Message Type Valeur 14 pour indiquer le message Wan-Error-Notify.Reserved0 Ce champ doit être à 0.Peer's Call ID Call ID assigné par le client.Reserved0 Ce champ doit être à 1.CRC Errors Nombre de trames PPP reçues avec erreur CRC depuis le début de lasession.Framing Errors Nombre d'erreurs dans les paquets PPP.Hardware Overruns Nombre de buffer over-runs en reception depuis le début de la session.Buffer Overruns Nombre de buffer over-runs depuis le début de la session.Time-out Errors Nombre de time-outs depuis le début de la session.

Alignment Errors Nombre d'erreurs d'alignement depuis le début de la session.

Page 29: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 29/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 29

6.2.9.4  Messages de gestion de la session PPP

Set-Link-InfoLe message de Set-Link-Info est un message de contrôle envoyé par le client pour paramétrer les optionsde PPP. Puisque ces options peuvent changer à tout moment pendant la vie de l'appel, le serveur doitpouvoir mettre à jour sa configuration dynamiquement et exécuter la négociation de PPP sur une sessionactive de PPP.

16 bit 16 bit

Length PPTP Message Type

Magic Cookie

Control Message Type Reserved0

Peer's Call ID Reserved1

Send ACCM

Receive ACCM

Figure 24 : message de contrôle Set-Link-Info

Déscription des champs de la trame:

Length Longueur totale en octets du message PPTP. L'entête est incluse.PPTP Message Type Valeur 1 pour un message de contrôle.Magic Cookie Valeur 0x1A2B3C4D. Cette constante est utilisée comme test pour les

paquets reçus.Control Message Type Valeur 15 pour indiquer le message Set-Link-Info.Reserved0 Ce champ doit être à 0.

Peer's Call ID Call ID assigné par le client.Reserved0 Ce champ doit être à 0.Send ACCM Valeur utilisé par le client pour traiter les paquets PPP sortants. La valeur par 

défaut est 0XFFFFFFFF.Receive ACCM Valeur utilisé par le client pour traiter les paquets PPP entrants. La valeur par 

défaut est 0XFFFFFFFF.

Codes d'erreur généraux.

Les codes d'erreurs généraux concernent des types d'erreurs qui ne sont pas spécifiques dans aucunerequête particulière de PPTP, mais plutôt des erreurs de format de protocole ou de message. Si uneréponse PPTP indique qu'une erreur générale s'est produite, la valeur générale d'erreur devrait êtreexaminée. Les codes d'erreur généraux actuels définis et leurs significations sont:

0 (None) Aucune erreur générale1 (Not-Connected) Connexion de contrôle inexistante2 (Bad-Format) Longueur ou Magic Cookie incorrects3 (Bad-Value) Champs réservés non à 0, ou valeur incorrecte dans un champ4 (No-Resource) Ressources insuffisantes pour exécuter l'opération5 (Bad-Call ID) Identificateur d'appel Call ID incorrect

6 (Server-Error) Erreur générique dans le serveur 

Page 30: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 30/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 30

Les messages de contrôle sont envoyés dans des paquets TCP (port 1723). Une fois que la connexion estcréée entre le client et le serveur, cette connexion de contrôle est utilisée pour l'échange de messages decontrôleChaque datagramme contient une entête PPP, une entête TCP, un message de contrôle PPTP et desconteneurs appropriés. La figure suivante montre un datagramme PPTP avec des messages de contrôle.

PPTP Control Message

TCP

IP Header

PPP Delivery Header

Figure 25 : Datagramme PPTP avec message de contrôle.

L'échange de messages entre le client et le serveur PPTP à travers la connexion TCP est utilisé pour lacréation et le maintient du tunnel PPTP. Dans le cas que le client distant n'est pas habilité à l'usage dePPTP, mais par contre il utilise un ISP qui en est habilité, l'ISP sera le client. Ceci dit, la connexion de

contrôle se fera directement entre lui et le serveur. Toutefois, il faudra s'assurer que la connexion entre levrai client et l'ISP est sécurisée. Par exemple, lorsqu'on se connecte à travers une ligne téléphonique, l'onpourra dire que la connexion est déjà sécurisée, car on utilise un média non partagé. Par contre, dans lecas où l'on se connecterait en utilisant le CATV (Community Antenna TV), on ne pourra pas exclure laprobabilité que personne nous espionne, compte tenu du type de média utilisé; le câble coaxial étant unmédia partagé.

6.2.10  Transmission de données PPTPUne fois que le tunnel PPTP est établi, les données de l'utilisateur sont transmises depuis le client vers leserveur PPTP. Ces données sont transmises dans des paquets PPP contenus dans des datagrammes IP.Les datagrammes IP sont générés à l'aide d'une version modifié du protocole GRE (Internet Generic Routing Encapsulation).

6.2.10.1  GRE – IP 47

GRE (Internet Generic Routing Encapsulation) est un protocole générique pour l'encapsulation. La versionutilisée par PPTP est légèrement différente par rapport au protocole GRE défini dans les RFC 1701 et1702. La différence principale comporte la définition d'un nouveau champ d'accusé de réception, employéepour déterminer si un paquet de GRE ou un ensemble particulier de paquets est arrivé à l'extrémitédistante du tunnel. Cette capacité d'accusé de réception n'est pas utilisée avec une retransmission des

paquets de données utilisateur. Elle est employée pour déterminer la cadence à laquelle les paquets utilesdoivent être transmis dans le tunnel pour une session donnée. L'entête IP donne les informationsnécessaires à l'acheminement des datagrammes à travers Internet. L'entête GRE est utilisée pour encapsuler le paquet PPP dans le datagramme IP. A noter que le paquet PPP est un bloc non intelligible,car il est encrypté.

Page 31: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 31/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 31

Le datagramme IP GRE créée par PPTP est montré par l'image suivante.

16 bit 16 bit

C R K S s Recur A Flags Ver Protocol Type

Key (HW) Payload Length Key (LW) Call ID

Sequence Number (Optional)Acknowledgment Number (Optional)

Figure 26 : Datagramme GRE

Déscription des champs de la trame:

C (bit 0) Checksum présent. Ce champ doit être à 0.R (bit 1) Routage présent. Ce champ doit être à 0.K (bit 2) Clé présente. Ce champ doit être à 1.S (bit 3) Numéro de séquence. Ce champ doit être à 1.si un paquet utile (données) est

présent. Ce champ doit être à 0. si la charge utile n'est pas présente (lepaquet de GRE est un accusé de réception seulement).

S (bit 4) Routage de source présent. Ce champ doit être à 0.Recur (bits 5-7) Commande de récursivité. Ces champs doivent être à 0.A (bit 8) Numéro de séquence d'accusé de réception. Ce champ doit être à 1si le

paquet contient le nombre d'accusé de réception. À utiliser pour reconnaîtredes données précédemment transmises.

Flags (bits 9-12) Ces champs doivent être à 0.Ver (bits 13-15) Ce champ doit être à 1 (GRE avancé).Protocol Type Ce champ doit être à 0x0880B.Key Payload Length Taille des données utiles. L'entête GRE n'est pas incluse.

Key Call ID Contient l'identificateur de l'appel pour cette session.Sequence Number Contient le numéro de sequence des données. Il est présent si le bit S (bit 3)

est à 1.Acknowledgment Number Contient le numéro de séquence du paquet GRE reçu par le pair pour cette

session d'utilisateur. Présent si le bit A (bit 8) est à 1.

La figure suivante montre les différentes encapsulations des données utiles dans le cas de PPTP:

Data

TCP Header

IP Header

PPP Header

GRE Header

IP Header

PPP Delivery Header

Figure 27 : Encapsulation des données dans GRE dans le cas de PPTP.

Page 32: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 32/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 32

6.2.11  Exemple de connexionAprès avoir vu les différents types de messages dans le chapitre 6.2.9.1 on va donner l'exemple d'uneconnexion d'un client à un serveur PPTP, afin d'en montrer les différents échanges.Pour simplifier, on a pris le cas d'un client et d'un serveur se trouvant dans le même réseau.

Dans la figure suivante sont montrés les échanges de ces messages.

Figure 28 : Exemple d'ouverture, maintient et fermeture d'une connexion PPTP

Start-Control-Re uest

Start-Control-Reply

Out oin -Call-Re uest

Out oin -Call-Re l

Echo-Re uest

Echo-Reply

Clear-Call-Re uest

Disconnect-Notify

TCP 1723

GRE - IP 47

TCP 1723

TCP 1723

GRE - IP 47

Page 33: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 33/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 33

6.2.12  La sécurité de PPTP

6.2.12.1  Authentification

Une authentification initiale peut être exigée par le serveur d'accès réseau NAS de l'ISP. Si cette

authentification est exigée, elle doit être gérée par le serveur d'accès réseau de l'ISP. Il faut vérifier avecl'ISP les conditions d'authentification. La deuxième authentification est faite par le serveur PPTP même.C'est lui qui donne tout accès au réseau privé. C'est-à-dire, le serveur de PPTP est la passerelle du réseauprivé. Tous les clients PPTP doivent fournir un nom et un mot de passe utilisateur.L'authentification des clients PPTP distants est faite en utilisant les mêmes méthodes d'authentification dePPP employées par n'importe quel client NAS. L'implémentation de Microsoft (et de Linux) du serviced'accès à distance (NAS) supporte le protocole d'authentification CHAP (Challenge Handshake

  Authentication Protocol ), le protocole d'authentification MS-CHAP (Microsoft Challenge Handshake Authentication Protocol ) et protocole d'authentification PAP (Password Authentication Protocol ).Les voilà de manière plus détaillée.

•  PAP (Password Authentication Protocol ) est un simple schéma d'authentification de texte en clair.Le NAS (Network Acces Server ) demande le nom et le mot de passe d'utilisateur, et le PAP lesenvoie en clair (non codé). Evidemment ce schéma d'authentification n'est pas sûr, car un tierspourrait capturer le nom et le mot de passe de l'utilisateur et l'employer pour obtenir un accès auNAS et à toutes les ressources fournies par le NAS. Une fois que le mot de passe de l'utilisateur est compromis, le PAP n'assure aucune protection contre les attaques d'usurpation d'identité.

•  CHAP (Challenge Handshake Authentication Protocol ) est un mécanisme d'authentification cryptéqui évite la transmission du mot de passe en clair sur la connexion. Le NAS envoie au client distantune épreuve, qui se compose d'un identificateur de session et d'une chaîne de caractères généréealéatoirement. Le client distant doit employer l'algorithme de hachage MD5 à sens unique, pour renvoyer un chiffrement de l'épreuve, de l'identificateur de session, et du mot de passe du client.

Le nom de l'utilisateur est envoyé en clair.

Figure 29 : Processus CHAP.

Le CHAP se présente en tant qu'une amélioration du PAP, car le mot de passe n'est pas envoyéen clair. Ceci dit, le mot de passe est employé, afin de créer un code de hachage de l'épreuveinitiale. Le serveur connaît le mot de passe du client (en clair) et il doit faire, de son côté, la mêmeopération de hachage. Ensuite, il compare le résultat au mot de passe introduit dans la réponse duclient. Si les deux codes de hachage correspondent, l'utilisateur est authentifié. Le CHAP seprotège contre les attaques d'usurpation d'identité à l'aide d'une chaîne de caractères d'épreuve.Chaîne générée aléatoirement pour chaque tentative d'authentification. Le CHAP se protègecontre ces attaques en envoyant de manière imprévisible des épreuves répétées au client distantpendant toute la durée de la connexion.

Page 34: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 34/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 34

•  MS-CHAP (Microsoft Challenge Handshake Authentication Protocol ) est un mécanismed'authentification chiffré, très semblable au CHAP. Comme dans CHAP, le serveur NAS envoieune épreuve au client. L'épreuve se compose d'un identificateur de session et d'une chaîne decaractères aléatoire.Le client distant emploie l'algorithme de hachage MD4 à sens unique, afin de renvoyer un

chiffrement de l'épreuve, de l'identificateur de session, et du mot de passe du client. Cetteconception, qui manipule les codes de hachage du mot de passe, fournit un niveau supplémentairede sécurité.Le serveur possède les codes de hachage des mots de passe seulement, au lieu des mots depasse en clair. MS-CHAP fournit des codes d'erreur supplémentaires également, y compris uncode pour les mots de passe expirés, et des messages chiffrés supplémentaires permettant à desutilisateurs de changer leurs mots de passe. Dans MS-CHAP, le client et le NAS produisent,chacun de leur côté, une première clé pour un chiffrement ultérieur par MPPE (Microsoft Point-to-Point Encryption). Par conséquent, l'authentification de MS-CHAP est exigée, afin de permettre lechiffrement de données basé sur MPPE. L'encryptage MPPE sera décrit dans le chapitre 6.2.14.1.

Une gestion soigneuse des comptes d'utilisateur est nécessaire pour réduire les risques de sécurité. Avoir un modèle sûr de la structure des mots de passe est critique pour le bon déploiement de PPTP. Ceci, car les connexions Internet sont plus susceptibles d'être attaquées : des crackers pourraient essayer desmilliers de combinaisons de mot de passe et de nom d'utilisateur, afin de s'introduire dans le réseau privé.La seule façon de réduire au minimum ce type d'attaque est de choisir une politique de mot de passe sûre.Par exemple, une bonne politique consisterait à exiger l'usage de mots de passe contenant un mélange delettres majuscules, minuscules, ainsi que de nombres, et de caractères spéciaux.

6.2.13  Contrôle d'accès

Après l'authentification, tout accès au réseau local privé continue à utiliser le modèle de sécurité interne.Par exemple, si on utilise un sous-réseau utilisant des serveurs WinNT, les accès aux ressources NTFSpartagées continueront à exiger les permissions appropriées, même pour les accès des clients PPTP.

6.2.14  Le chiffrement de donnéesPour le chiffrement de données, PPTP utilise le procédé de chiffrement "shared-secret", ou secret partagé,du NAS. Il est désigné sous le nom de secret partagé, car les deux bouts de la connexion partagent lamême clé de chiffrement. Dans l'implémentation de Microsoft, le secret partagé est le mot de passe del'utilisateur. D'autres méthodes de chiffrement se basent sur des clés publiques; cette deuxième méthodede chiffrement est connue en tant que chiffrement par clé publique. PPTP utilise les mêmes schémas dechiffrement et de compression que PPP. Le CCP (Compression Control Protocol ) employé par PPP estutilisé pour négocier le type d'encryption. Le nom d'utilisateur et le mot de passe du client de PPTP sontdisponibles au serveur de PPTP et sont fournis par le client de PPTP. Une clé d'encryption est dérivée par les mots de passe hachés, qui se trouvent enregistrés sur le client et le serveur. Le standard RSA RC4 estutilisé pour la création de cette clé de session de 40-bit ou de 128-bit. La clé étant basée sur le mot depasse du client. Cette clé est employée pour le chiffrement de toutes les données qui traversent le tunnelPPTP; ceci assure une connexion privée et sûre.Les données dans les paquets PPP sont chiffrées. Le paquet PPP contenant un bloc de donnéesencryptées est encapsulé dans un datagramme IP pour le routage à travers Internet du paquet àdestination du serveur PPTP. Si un intrus interceptait votre datagramme IP, il trouverait seulement les en-

têtes IP, et le paquet PPP contenant le bloc de données encryptées, qui se présenterait indéchiffrable.

Page 35: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 35/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 35

6.2.14.1  Cryptage MPPE

PPTP hérite le chiffrement MPPE, qui utilise le chiffrage RC4 de RSA (Rivest-Shamir-Adleman). MPPE estseulement disponible quand MS-CHAP (version 1 ou version 2) est utilisé. MPPE peut utiliser 40 bit, 56 bitou des clés de chiffrement de 128 bit. La clé 40 bit fournit la compatibilité avec des clients utilisant desanciennes versions de Windows. Par défaut, la clé la plus grande supportée par le client VPN et le serveur VPN est négociée pendant le processus d'établissement de connexion. Si le serveur VPN exige une cléplus résistante que celle supporté par le client, la tentative de connexion est rejetée. MPPE a étéinitialement conçu pour le chiffrement avec un lien point à point, où les paquets arrivent dans la mêmeordre dans laquelle ils ont été envoyés. Dans cet environnement, le déchiffrage de chaque paquet dépenddu déchiffrage du paquet précédent. Pour les VPN, cependant, les datagrammes IP envoyés à traversInternet arrivent dans un ordre différent de celle dans laquelle ils ont été envoyés, et une partie despaquets peut être détruite. Par conséquent MPPE change la clé de chiffrement pour chaque paquet. Ledéchiffrage de chaque paquet est indépendant du paquet précédent. MPPE inclut un numéro de séquencedans son entête. Si des paquets sont détruits ou ont des erreurs, les clés de chiffrement sont changéesrelativement au numéro de séquence.

6.2.14.2  Filtrage de paquet PPP

Les activités malveillantes peuvent être limitées en activant le filtrage sur le serveur PPTP. Quand lefiltrage PPTP est activé, le serveur reçoit et route seulement les paquets des utilisateurs authentifiés. Ceciempêche à tous les autres paquets d'entrer dans le réseau privé. Avec le chiffrement de PPP, ceci assureque seulement les données chiffrées autorisées entrent ou sortent du réseau privé.

6.2.15  Usage de PPTP avec des firewallsPPTP utilise le port 1723 de TCP, et le protocole IP 47, en tant qu'assigné par le IANA ( Internet   Assigned 

Numbers Authority ). PPTP peut être utilisé avec la plupart des firewalls en permettant le trafic destiné auport TCP 1723 d'être routé à travers le firewall ou le routeur. Les firewalls assurent la sécurité du réseau enfiltrant les données qui le traversent. Une organisation peut mettre son serveur PPTP derrière un firewall.Le serveur PPTP reçoit les paquets de PPTP passés par le firewall et extrait les paquets PPP à partir dudatagramme IP, déchiffre le paquet, et expédie le paquet à l'ordinateur sur le réseau privé.

Figure 30: Serveur PPTP derrière un firewall.

Page 36: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 36/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 36

6.3  L2TP – Layer 2 Tunneling Protocol  

PPP (RFC1661. Voir CD annexe) définit un mécanisme d'encapsulation multiprotocole pour le transportdes paquets à travers des connexions de la couche 2 (L2). Typiquement, un utilisateur obtient uneconnexion L2 à un serveur d'accès réseau (NAS) en utilisant par exemple une ligne analogique, une ligneRNIS, ADSL, etc. et crée alors un tunnel PPP à travers cette connexion. Dans une telle configuration, lepoint de terminaison de L2 et le point final de la session PPP résident dans le même dispositif physique.

L2TP étend le modèle PPP, permettant ainsi aux points finaux de la connexion L2 et PPP de résider sur des dispositifs différents interconnectés par un réseau de commutation de paquets. Avec L2TP, unutilisateur a une connexion L2 avec un concentrateur d'accès (par exemple, un modem, ADSL, etc.), et leconcentrateur envoie dans le tunnel les différentes trames PPP à destination du NAS. Ceci permet autraitement des paquets PPP d'être séparés de la terminaison du circuit L2.Un avantage évident d'une telle séparation est qu'à la place d'exiger la terminaison de la connexion L2 auNAS (qui peut exiger un appel long distance coûteux), la connexion peut se terminer au concentrateur de

circuit local, lequel étend la session PPP logique au-dessus d'une infrastructure partagée telle que FrameRelay  ou Internet. Du point de vu de l'utilisateur, il n'y a aucune différence fonctionnelle entre avoir directement la terminaison du circuit L2 au NAS ou en utilisant L2TP.

6.3.1  Vue d'ensemble du protocoleL2TP utilise deux types des messages: des messages de contrôle et de messages de données. Lesmessages de contrôle sont utilisés dans l'établissement, l'entretien et l'effacement des tunnels et desappels. Les messages de données sont utilisés pour l'encapsulation des trames PPP dans le tunnel.

Les messages de contrôle utilisent un canal fiable pour en garantir la livraison. Les messages de données

ne sont pas retransmis quand un erreur survient.

PPP FramesL2TP Data Messages L2TP Control Messages

L2TP Data Channel L2TP Control Channel

(unreliable) (reliable)Packet Transport (UDP, FR, ATM, etc.)

Figure 31 : Structure du protocole L2TP

La figure précédente montre le rapport des trames PPP et des messages de contrôle au-dessus descanaux de contrôle et de données de L2TP. Les trames PPP sont envoyées dans un canal de données,encapsulés d'abord par une entête L2TP et puis dans un paquet de transport tel que UDP, Frame Relay,ATM, etc. Les messages de contrôle sont envoyés dans un canal fiable L2TP qui transmet des paquets in-band au-dessus du même paquet de transport. Les numéros de séquence sont exigés dans tous lesmessages de contrôle et sont employés pour fournir une livraison fiable dans le canal. Les messages dedonnées peuvent employer des numéros de séquence pour demander à nouveau des paquets et pour détecter les paquets perdus. Toutes les valeurs sont placées dans leurs champs respectifs et introduitesdans la commande (octets d'ordre supérieur d'abord).

Page 37: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 37/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 37

6.3.2  Format de l'entête L2TPLes paquets L2TP pour le canal de contrôle et des données partagent un format commun d'entête. Danstous les cas où un champ est facultatif et marqué comme non présent, son espace n'est pas utilisé dans lemessage.

À noter que les champs Length, Ns et Nr. Fields marqués comme facultatifs pour des messages dedonnées, sont requis pour tous les messages de contrôle.

16 bit 16 bit

T L  x  x  S  x  O  P  x  x  x  x  Ver  Length (opt)

Tunnel ID Session ID

Ns (opt) Nr (opt)

Offset Size (opt) Offset pad... (opt)

Figure 32 : Entête L2TP.

Déscription des champs de la trame::

Type (T) Indique le type du message. Il peut avoir les valeurs suivantes:0 – Message de données1 – Message de contrôle

Length (L) Si à 1, le champ Length existe. Ce bit doit être à 1 pour tous les messages decontrôle.

x Les bits 'x' sont réservés pour des extension futures du protocole. Ces bitsdoivent être à 0 pour les messages sortant et ignorés pour les messagesentrants.

Sequence (S) Si à 1, le champ Ns et Nr existent. Ce bit doit être à 1 pour tous les messagesde contrôle.

Offset (O) Si à 1, le champ Offset existe. Ce bit doit être à 1 pour tous les messages decontrôle.

Priority (P) Si à 1, le traitement de ce message de données doit être prioritaire dans laqueue locale et dans la transmission. Les echo-requests utilisés pour maintenir la connexion doivent être envoyés avec ce bit à 1, sinon peut arriver une congestion temporaire et une perte de données. Cette fonctionnalité estutilisée seulement avec des messages de données. Ce bit doit être à 0 pour tous les messages de contrôle.

Ver Ce champ doit valoir 2. Il indique la version de l'entête L2TP pour despaquets de données.

Length Ce champ indique la longueur du message en octets.Tunnel ID Indique l'identificateur pour la connexion de contrôle. Les tunnels L2TP sont

nommés par des identificateurs qui ont une signification locale seulement.C'est-à-dire, pour le même tunnel sera donné un ID différent pour chaqueextrémité du tunnel.

Session ID Indique l'identificateur pour une session dans un tunnel. Les sessions L2TPsont nommées d identificateurs qui ont une signification locale seulement.C'est-à-dire, pour la même session sera donnée un ID différent pour chaqueextrémité de la session.

Ns Indique le numéro de séquence pour ce message de données ou de contrôle,commençant à 0 et incrémentant par un (modulo 216) pour chaque message

envoyé.

Page 38: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 38/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 38

Nr Indique le numéro de séquence prévu pour le prochain message de contrôlereçu. Ainsi, Nr est placé au NS du dernier message de contrôle reçu plus un(modulo 216). Dans les messages de données, Nr est réservé et, si présent(comme indiqué par le bit S), il doit être ignoré à la réception.

Offset Size Si présente, indique le nombre d'octets après l'entête L2TP à partir desquels

on s'attend le début des données utiles.

6.3.3  Connexion de contrôle L2TPLe protocole L2TP défini une série de messages de contrôle échangés entre le client et le serveur L2TP.Ces commandes établissent, maintiennent et terminent le tunnel L2TP. La liste suivante représente lesmessages utilisés pour établir et maintenir le tunnel.

Messages de gestion de la connexion:

START_CONTROL_CONNECTION_REQUEST Demande de début de sessionSTART_CONTROL_CONNECTION_REPLY Réponse à la demande de début de sessionSTART_CONTROL_CONNECTION_CONNECTED Confirmation à la demande de début de sessionSTOP_CONTROL_CONNECTION_NOTIFICATION Fin de sessionHELLO Demande de maintient la session de contrôle

Messages de gestion du tunnel:

OUTGOING_CALL_REQUEST Demande de création du tunnel de la part du clientOUTGOING_CALL_REPLY Réponse à la demande de création du tunnel de la

part du client

OUTGOING_CALL_CONNECTED Tunnel en sortie créeINCOMING_CALL_REQUEST Demande de création du tunnel de la part duserveur 

INCOMING_CALL_REPLY Réponse à la demande de création du tunnel de lapart du serveur 

INCOMING_CALL_CONNECTED Tunnel en entrée créeDISCONNECT_CALL_NOTIFY Réponse à la demande de terminaison et fin de la

session PPTP

Messages d'erreurs:

WAN_ERROR_NOTIFY Erreur dans la connexion PPP

Messages de gestion de la session PPP:

SET_LINK_INFO Configure la connexion entre le client et le serveur 

Page 39: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 39/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 39

6.4  IPSec – IP Security Protocol  

Créé par l'IETF3, le protocole IPSec est conceptuellement unique, car il permet de sécuriser le réseaumême, et ne pas les applications l'exploitant. Le protocole IPSec garantit la sécurité pour chaqueapplication utilisant le réseau. IPSec permet donc la réalisation de VPN très sûres.On doit forcement utiliser IP4 pour le transport des données, afin de pouvoir sécuriser un réseau avecIPSec.La force fondamentale de cette approche est son fonctionnement à des couches de bas niveau. Comme IPest transparent aux utilisateurs, IPSec l'est aussi en rajoutant une couche qui permet d'assurer la sécuritéet l'intégrité des communications.

6.4.1  Architecture de IPSecPour assurer la sécurité dans un environnement réseau, il faut s'assurer:

•  Que la personne avec laquelle on communique est réellement cette personne et pas quelqu'un

d'autre !•  Que personne ne peut écouter la communication !•  Que les données reçues n'ont pas étés modifiés pendant la transmission !

Ces trois besoins sont traduits en:

•  Authentification;•  Confidentialité;•  Intégrité.

Malheureusement, l'architecture des réseaux basée sur IP, permettent difficilement d'assurer ces besoins.

IPSec offres trois technologies, qui combinées entre elles permettent de se protéger des différentesattaques à la sécurité:

•  Authentication header (AH) Entête qui attache les données de chaque paquet à une signature qui vous permet de vérifier l'identité de la personne envoyant les données et que les données n'ont pas été modifiées.

•  Encapsulating Security Payload (ESP) Embrouille les données (et même certaines adresses IP sensibles) de chaque paquet en utilisantle chiffrement dur de noyau - ainsi un renifleur quelque part sur le réseau n'obtiendra rien

d'utilisable.

•  Internet Key Exchange (IKE) Un protocole puissant flexible de négociation qui permet à des utilisateurs de convenir sur desméthodes d'authentification, les méthodes de chiffrement, les clés d'utilisation, le temps d'utilisationdes clés avant de les changer, et qui permet l'échange intelligent et sûr des clés.

Le document de référence RFC 2401 (voir CD annexe) décrit les bases de l'architecture IPSec. Il définit lesservices de sécurité, la structure des paquets de ces services et quand ils peuvent être utilisés.

3 Internet Engineering Task Force4 IPSec peut être utilisé avec le standard existant IPv.4 et celui mandataire IPv.6

Page 40: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 40/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 40

IPSec implémente deux protocoles : le AH et le ESP. Ces protocoles permettent à IPSec de travailler selondeux modes distincts. Si on veut sécuriser tant les données que toute la couche IP, on utilisera le modeTunnel , tandis que si on veut sécuriser seulement les données on préférera le mode Transport .

Le mode Transport est utilisé pour l'acheminement direct des données protégées par IPSec. Il sert donc

pour des configurations Host-to-Host. Dans ce mode, les protocoles AH et ESP protègent la couchetransport en interceptant les paquets provenant de la couche transport dans la couche réseau.

Application Application

TCP UDP TCP UDP

IPSec IPSec

IP IP

Figure 33 : Mode transport d'IPSec.

Dans le mode Tunnel, utilisé en général pour des configurations LAN-to-LAN, le trafic non protégé estenvoyé vers une passerelle implémentant IPSec. Comme le montre la figure suivante, le gatewayencapsule tout le paquet IP, entête comprise, avec l'encryptage de IPSec. Il rajoute ensuite une nouvelleentête IP et envoie ce nouveau paquet à travers le réseau public vers le gateway destinataire. Là, lespaquets sont ensuite déchiffrés et envoyés sous forme originale àsa propre déstination.

Application Application

TCP UDP TCP UDP

IP

Données

protégées

Données

protégéesIP

IPSec IPSec

IP IP

Gateway IPSec Gateway IPSecFigure 34 : Mode tunnel d'IPSec. 

Une option importante de IPSec dans le domaine des VPN est la gestion des clés de chiffrage etd'authentification. Cette gestion peut être manuelle ou automatique avec le protocole IKE. Ce dernier aspect fera l'objet d'une présentation plus détaillé dans le chapitre 6.4.4.

Pour pouvoir encapsuler et désencapsuler les paquets IPSec, on doit pouvoir en déterminer le sens detransmission. Ceci, afin de pouvoir associer les différents services de sécurité et les clés avec le traficunidirectionnel. Une telle construction est appelée SA (Security Association).

Une SA est identifiée par :

•  Un Security Parameter Index (SPI);•  Le protocole IPSec utilisé;•  L'adresse de destination.

La SA peut être créée de façon dynamique (dans le cas d'utilisation de IKE), soit manuellement (gestiondes clés manuelles). Le temps de vie d'une SA (SA life time) dépend des paramètres choisis lors de sacréation. Dans le cas d'une génération manuelle, son temps de vie est infini, jusqu'à quand la modificationd'un paramètre interviendra. Tandis que dans le cas d'une génération dynamique, son temps de vie est

généralement définit par les deux extrémités lors de la phase de négociation des paramètres (IKE).  

Page 41: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 41/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 41

6.4.2  AH ( Authentication Header )Ce protocole implémente les services d'authentification mais non ceux de confidentialité. Il permet doncd'assurer la garantie de l'origine des paquets et l'intégrité des données. L'anti-replay  est facultatif et peutêtre choisi par le récepteur, lors de l'établissement de la SA.

Bien que I'expéditeur incrémente le numéro de séquence utilisé pour l'anti-replay, le service se relèvepertinent uniquement si le récepteur le contrôle. Pour autant que possible, AH procure l'authentification del'entête IP et de ses données. En effet, dans l'entête IP se trouvent des champs comme le Type of Service,Flags, Fragment Offset, Time to live et Header Checksum qui peuvent changer en cours de transfert. Lavaleur de ces derniers n'est donc pas prévisible par l'expéditeur. Les valeurs de ces champs ne peuventainsi pas être protégées par AH. Ceci dit, la protection assurée par AH n'est que partielle.

Le protocole AH peut être appliqué seul (mode transport), en combinaison avec ESP, ou en mode tunnel. Ilpeut être utilisé pour des communications Host-to-Host, LAN-to-LAN, soit Host-to-LAN.ESP peut être utilisé pour fournir les mêmes services d'authentification, il fournit également un service deconfidentialité avec chiffrement. La différence entre l'authentification fournie par ESP et AH réside dans la

portion des données sécurisées. ESP ne protège aucun champ d'entête IP, à moins que ESP soit utilisé enmode tunnel (v. chapitre 6.4.3).

Aucune encryption des données est effectué par le protocole AH, toutefois il définit la méthode deprotection, le placement de l'entête, la portion couverte par l'authentification et les règles de traitement desdonnées entrantes et sortantes. Cependant, il ne définit pas l'algorithme d'authentification à utiliser.Actuellement deux algorithmes sont utilisés : HMAC-MD5 et HMAC-SHA. 

6.4.2.1  Format de l'entête AH

Dans le cas de AH, le champ Protocol type du paquet IP vaut 51. Ceci dit, si ce champ IP vaut 51, cela

signifie que le protocole de couche supérieur sera AH.AH reste toujours placé après l'entête ESP, lorsque AH et ESP protègent le même paquet.La figure suivante montre le format de l'entête AH :

16 bit 16 bit

Next Header Payload Length Reseved

Security Parameters Index (SPI)

Sequence number

Authentication data

Figure 35 : Entête du protocole AH.

Déscription des champs de la trame :

Next header Ce champ indique le protocole de couche supérieur. En mode transport, cechamp indique la première entête protégée (TCP ou UDP), tandis qu'en modetunnel, il vaut 4, ce qui correspond à l'identificateur pour le protocole IP.

Payload length Taille de l'entête.Reserved N'est pas utilisé et il est réservé pour des applications futures. Ce champ doit

être à 0.SPI Le SPI correspond à une valeur de 32 bits arbitraire qui, en alliance avec

l'adresse IP de destination et du protocole de sécurité (AH) identifie la SA qui

doit être utilisé pour authentifier ce paquet. Elle est d'habitude choisie par Iesystème destinataire, lors de l'établissement de la SA.

Page 42: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 42/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 42

Sequence number Numéro de séquence de 32 bits auto incrémenté, employé pour se protéger d'une retransmission du paquet (fonction d' anti-replay). Ce champ estobligatoire et toujours présent même si le récepteur désactive la fonctiond'anti-replay.

Authentication data La longueur de ce champ dépend de I'algorithme d'authentification utilisé. II

contient le résultant du calcul de l'intégrité du message ICV (Integrity Check Value) suivi d'un remplissage avec des 0, pour que le champ soit multiple de32 bits.

6.4.2.2  Emplacement de I' entête d'authentification

AH peut être utilisé tant en mode transport qu'en mode tunnel, comme ESP.

Le mode transport s'applique seulement aux applications Host-to-Host  et il assure la protection desprotocoles des couches supérieures, ainsi que des champs non modifiables de l'entête IP.

AH s'insère à la suite de l'entête IP et avant les protocoles de couches supérieurs comme par exempleTCP, UDP, ICMP ou préalablement à tous les autres entêtes IPSec qui ont déjà été insérées. La figuresuivante montre l'entête AH dans le mode transport:

Original IP Header

Next Header Payload Length Reserved

Security Parameters Index (SPI)

Sequence Number

Authentication data

IP Payload

Figure 36 : AH en mode Transport

En mode tunnel, l'entête IP originale est placée à la suite de AH et inclut les adresses de source et dedestination finales, alors que la nouvelle entête IP, placée antérieurement à AH, comporte les adresses desgateways. AH protège l'entête IP originale et ses données de même que les champs non modifiables de lanouvelle entête IP. La figure suivante montre l'entête AH en mode tunnel.

New IP Header

Next Header Payload Length Reserved

Security Parameters Index (SPI)

Sequence Number

Authentication data

Original IP HeaderIP Payload

Figure 37 : AH en mode Tunnel.

Authentifié

Authentifié

Page 43: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 43/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 43

6.4.2.3  Traitement des paquets sortants

Le protocole AH, pour les paquets sortants, est utilisé seulement si configuré préalablement dansl'implémentation IPSec utilisé.

La génération du numéro de séquence est réalisée comme suit :

Lorsque la SA est établie, le compteur de l'expéditeur et le compteur du récepteur sont initialisés à 0.L'émetteur incrémente le numéro de séquence pour sa propre association et annonce la nouvelle valeur dans le champ du numéro de séquence. Ceci dit, le premier paquet envoyé en utilisant la SA donnéevaudra 1.

Le numéro de séquence transmis ne doit jamais faire un cycle complet. Si l'anti-replay est autorisé,l'expéditeur contrôle la valeur du numéro de séquence, afin de s'assurer que le compteur n'aurait pas faitun cycle complet avant d'insérer celle-ci dans le champ prévu. Cela dit, l'ordinateur de l'expéditeur et lecompteur du récepteur doivent être remis à l'état initial en établissant nouvelle SA et ainsi une nouvelle clé,

sauf si gestion manuelle, avant la transmission du paquet 232

de la SA en cours.

Les autres champs de l'entête sont ensuite mis à jour : le champ SPI aura donc la valeur définie par la SA,le champ next header aura la valeur du protocole suivant AH, le champ  payload length sera calculé et lechamp authentication data sera mis à 0. Enfin les bits restants de l'entête seront mis à 0, afin d'avoir l'entête multiple de 32 bit.

Le champ ICV (lntegrity Check Value) est calculé avec l'algorithme d'authentification définit par la SA etutilisant comme paramètres la clé d'authentification et le datagramme IP, entête AH incluse. Les champsmodifiables, n'étant pas pris en compte dans le calcul de l'ICV, doivent être mis à 0 avant ce calcul. Ensuitela valeur résultante est placée dans le champ de l'entête AH et les champs modifiables reprennent leurs

valeurs.Le traitement est maintenant terminé et le datagramme peut être envoyé. Le datagramme peut êtrefragmenté, en fonction de la taille du paquet.

6.4.2.4  Traitement des paquets entrants

Si les datagrammes IP ont été fragmentés, ils doivent être réassemblés avant leur traitement.La première opération à effectuer consiste à identifier la SA utilisée, afin de protéger le paquet entrant.Cette identification est faite à l'aide de l'adresse de destination, du protocole utilisé (dans le cas de AH, leprotocole IP 51) et le SPI. Si aucune SA n'est identifiée, le paquet est ignoré. Une fois la SA reconnue, onprocède par la vérification du numéro de séquence. Cette étape est optionnelle, en fonction de l'activationde l'anti-replay. Cette vérification détermine s'il s'agit d'un nouveau ou d'un ancien paquet qui a été déjàreçu. Si ce contrôle révèle la présence d'un paquet déjà reçu, celui-ci est ignoré. Ceci dit, le contrôle del'ICV peut être effectué. L'ICV reçu est mémorisé et son champ est mis à 0, de même que tous les champsmodifiables. Ensuite l'algorithme d'authentification est appliqué au paquet IP pour le calcul d'un nouvel ICV.Si le paquet correspond à celui sauvegardé précédemment, il est authentifié, autrement rejeté. Lavérification étant terminée, le paquet peut être transmis à la couche supérieure.

Page 44: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 44/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 44

6.4.3  ESP (Encapsulating Security Payload )Le protocole ESP (Encapsulating Security Payload ) est utilisé, afin de garantir :

•  La confidentialité des données;• 

L'authentification de l'origine des données;•  La protection d'anti-replay;•  L'intégrité des données (sans connexion, par paquet).

La grande différence entre l'authentification fournie par AH et celle fournie par ESP se trouve dans leprotocole ESP. Avec ce protocole les données contenues dans l'entête IP ne sont pas authentifiées. Demême que pour AH, le service d'anti-replay est optionnel. La décision d'activer ce service est à la chargedu destinataire du paquet.ESP fournit le service de la confidentialité avec un algorithme de cryptage et l'intégrité des données avecun algorithme d'authentification. Ces algorithmes doivent absolument être les mêmes pour les deuxextrémités de la SA utilisant ESP.

6.4.3.1  Format de l'entête ESP

Dans le cas de ESP, le champ Protocol type du paquet IP vaut 50. Ceci dit, si ce champ IP vaut 50, celasignifie que le protocole de couche supérieur seraESP.La figure suivante montre le format de l'entête ESP :

16 bit 16 bit

Security Parameters Index (SPI)

Sequence number

Initialization vector

Protected data

Padding

Pad Length Next Header

Authentication data

Figure 38 : Entête du protocole ESP.

Description des champs de la trame :

SPI Le SPI correspond à une valeur de 32 bits arbitraire qui, en alliance avecl'adresse IP de destination et du protocole de sécurité (AH) identifie la SA quidoit être utilisé pour authentifier ce paquet. Elle est d'habitude choisie par Iesystème destinataire, lors de l'établissement de la SA.. Ce champ estauthentifié, mais pas encrypté.

Sequence number Numéro de séquence de 32 bits auto incrémenté, employé pour se protéger d'une retransmission du paquet (fonction d' anti-replay). Ce champ estobligatoire et toujours présent même si le récepteur désactive la fonctiond'anti-replay. Le traitement de ce champ est fait uniquement par le récepteur et l'expéditeur doit toujours le transmettre. Ce champ est égalementauthentifié, mais pas encrypté pour la faciliter la détection des répétitions des

paquets.Protected data Ce champ contient les données chiffrées, de même que le vecteur d'initialisation. Ce dernier est utilisé avec l'algorithme d'encryption, afin de

Page 45: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 45/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 45

produire la confidentialité des données. Ce champ est également authentifié,toutefois pas encrypté. Généralement, il est placé dans les huit premiersbytes du champ protected data. 

Padding Ce champ sert d'alignement pour le protocole ESP. Certains algorithmes decryptage nécessitent que la longueur du datagramme soit un multiple exact

d'un nombre fixe de bytes. En fonction de l'algorithme employé, ce champsera rempli par des 0 jusqu'à l'obtention du multiple désiré.

Padding length Ce champ donne la longueur du champ padding.Next header Ce champ indique le protocole de couche supérieur. En mode transport, ce

champ indique la première entête protégée (TCP ou UDP), tandis qu'en modetunnel, il vaut 4, qui correspond à la valeur pour le protocole IP.

Authentication data La longueur de ce champ dépend de I'algorithme d'authentification utilisé. IIcontient le résultant du calcul de l'intégrité du message ICV (Integrity Check Value) suivi d'un remplissage avec des 0, pour que le champ soit multiple de32 bits.

6.4.3.2  Emplacement de l'entête ESP

Comme AH, ESP peut être utilisé tant en mode transport qu'en mode tunnel.En mode transport, ESP s'inséré à la suite de l'entête IP et avant les protocoles de couche supérieurscomme par exemple TCP, UDP, ICMP ou préalablement à tous les autres entêtes IPSec qui ont déjà étéinsérées. La figure suivante montre l'entête ESP dans le mode transport:

Original IP Header

Security Parameters Index (SPI)

Sequence Number

Initialization vectorIP Payload

Padding Pad Length Next Header

Authentication data

Figure 39 : ESP en mode Transport

En mode tunnel, l'entête IP originale est placée à la suite de ESP et elle inclut les adresses de source et dedestination finales, alors que la nouvelle entête IP, placée antérieurement à ESP, comporte les adressesdes gateways. ESP protège l'entête IP originale et ses. La figure suivante montre l'entête ESP en modetunnel.

New IP Header

Security Parameters Index (SPI)

Sequence Number

Initialization vector

Original IP Header

IP Payload

Padding Pad Length Next Header

Authentication data

Figure 40 : ESP en mode Tunnel.

AuthentifiéEncrypté

AuthentifiéEncrypté

Page 46: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 46/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 46

6.4.3.3  Traitement des paquets sortants

Le protocole ESP, pour les paquets sortants, est utilisé seulement si configuré préalablement dansl'implémentation IPSec utilisé.Dans le mode transport, I'entête ESP est insérée dans le paquet sortant immédiatement après l'entête IP.Le champ protocol type de l'entête IP est copié dans le champ next header de ESP et il est remplacé par lavaleur 50 qui correspond au protocole ESP.Dans le mode tunnel, l'entête ESP est insérée avant I'entête IP. Le champ next header ESP prend la valeur 4 (qui correspond au protocole IP). Les autres champs de l'entête sont ensuite mis à jour: Le champ SPIaura donc la valeur définie par la SA,. le champ sequence number prend la valeur du prochain numéro deséquence (soit 0 s'il s'agit du premier paquet émis par la SA). Enfin les champs  padding et padding length seront calculés et afféctés.La suite des opérations est indépendante du mode utilisé.Le paquet est encrypté avec l'algorithme définit par la SA. Cet encryptage commence au début desdonnées utiles   jusqu'à la fin du champ next header . Ensuite, le paquet est authentifié par I'algorithmedéfinit par la SA depuis le début de l'entête ESP jusqu'à la fin du champ next header . Le résultat de

l'algorithme d'authentification est inséré dans le champ authentication data. La dernière étape à effectuer avant d'envoyer le paquet est de recalculer le checksum de I'entête IP qui précède ESP.Le traitement est maintenant terminé et le datagramme peut être envoyé.

6.4.3.4  Traitement des paquets entrants

Lorsque le récepteur reçoit un paquet ESP, il ne connaît pas le mode d'encapsulation utilisé. Pour savoir sile mode employé était celui de transport ou de tunnel, il doit se baser uniquement sur les informations de laSA associée. En fait, avant que le paquet soit décrypté, il n'y a aucun moyen pratique de connaître le modeemployé. Ceci, pour se protéger des personnes malintentionnées qui pourraient analyser le réseau encherche de ces informations.

La première opération à effectuer consiste à identifier la SA utilisée, afin de protéger le paquet entrant.Cette identification est faite à l'aide de l'adresse de destination, du protocole utilisé (dans le cas de ESP, leprotocole IP 50) et le SPI. Si aucune SA n'est identifiée, le paquet est ignoré. Une fois la SA reconnue, onprocède par la vérification du numéro de séquence. Si ce dernier est valide, cela signifie qu'il n'a jamais étéutilisé et qu'il doit être en séquence avec la fenêtre contenue dans la SA.

Ceci dit, le contrôle de l'ICV peut être effectué. L'ICV reçu est mémorisé et son champ est mis à 0, demême que tous les champs modifiables. Ensuite l'algorithme d'authentification est appliqué au paquet IPpour le calcul d'un nouvel ICV. Si le paquet correspond à celui sauvegardé précédemment, il estauthentifié, autrement rejeté. La vérification étant terminée, le paquet peut être transmis à la couchesupérieure.

La seconde étape corresponde à l'authentification du paquet. L'algorithme d'authentification est appliqué àtoute la trame sauf au champ authentication data, pour le calcul d'un nouvel ICV. Si le paquet correspond àcelui du champ authentication data, il est authentifié, autrement rejeté. Le paquet ESP est ensuite décryptéà I'aide de la clé et de I 'algorithme défini par la SA depuis le début des données utiles jusqu'à la fin duchamp next header . Une fois le paquet authentifié et décrypté, il peut être envoyé à la couche supérieures'il s'agit du mode transport (le poste ayant effectué ces opérations étant le destinataire du message) ouenvoyé au vrai destinataire s'il s'agit du mode tunnel (le destinataire du message n'étant pas le mêmedispositif).

Page 47: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 47/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 47

6.4.4  IKE (Internet Key Exchange)Avant que les paquets puissent être sécurisés par IPSec, une association de sécurité SA doit exister. Ellepeut être créée manuellement ou dynamiquement. Le protocole IKE (Internet Key Exchange) est utilisépour la création dynamique de la SA. Le protocole IKE, qui est décrit par décrit par le document RFC 2409

(voir CD annexe), est un protocole hybride. II est basé sur le protocole ISAKMP (Internet Security  Association and Key Management Protocol) et il implémente une partie des protocoles de gestion des clés.Ces protocoles sont Oakley et SKEME. Il utilise les bases d'ISAKMP, les modes de Oakley (RFC 2412.Voir Cd annexe) et les techniques de partage des clés de SKEME.

6.4.4.1  ISAKMP

ISAKMP permet la définition de la communication entre deux pairs, comment sont construit les messagesqu'ils utilisent dans cette communication, et les différentes étapes qu'ils doivent passer pour la sécuriser.ISAKMP donne les éléments nécessaires à I'authentification d'un pair, à I'échange d'informations pour l'échange des clés et à la négociation des services de sécurité.

Les messages transmis dans un échange ISAKMP sont structurés sous forme d'une chaîne de donnéesutiles attachés à une entête d'ISAKMP, comme montré par la figure suivante.

16 bit 16 bit

Initiator cookie

Responder cookie

Next PayloadMajor

VersionMinor

VersionExchange

TypeFlags

Message ID

Message Length

Figure 41 : Entête ISAKMP.

Description des champs de la trame :

Initiator cookie (8 bytes) Cookie du dispositif qui a initié l'établissement, la modification ou lasuppression de la SA.

Responder cookie (8 bytes) Cookie de l'entité qui a répondu à la demande d'initiation de I'établissement,la modification ou la suppression de la SA.

Next payload Indique le type des premières données utiles contenues dans le message.Major/Minor version Indique la version d'ISAKMP utilisé.Exchange type Indique le type d'échange utilisé et défini I'ordre des messages et des

données utiles de I'échange ISAKMP.Flags Indiquent les différentes options contenues dans le message. Ces options

peuvent être: Encryption, Commit ou Authentication only .Message ID Identificateur unique du message.Message length Longueur totale du message.

La structure des données définies par ISAKMP est toujours la même et elle est montré par la figuresuivante :

16 bit 16 bit

Next Header Reserved Payload Length

Figure 42 : Entête générique de ISAKMP.

Page 48: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 48/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 48

Certains de ces messages dépendent les un des autres. Par exemple, le security association payload  encapsule un proposal payload , qui lui-même contient un transform payload .

Les messages définis dans ISAKMP sont :

•  Hash payload : il contient le message condensé d'une fonction de hachage particulière;•  Signature payload : il contient la signature numérique;•  Nonce payload : il contient certaines informations pseudo aléatoires nécessaires à I'échange;•  Vendor ID payload : c'est l'identificateur du fournisseur. Chaque fournisseur y place les

informations qu'il souhaite;•  Key exchange payload : il contient les informations nécessaires pour effectuer I'échange des clés;•  security association payload;•  Certificate payload

 

;•  Identification payload

 

; •  Proposal payload : il contient une simple proposition pour la SA et un/des transform payload;•  Transform payload : il contient un certain nombre d'attributs permettant de mettre en oeuvre la

proposition contenue dans le proposal payload.

La structure d'un message SA pourrait être la suivante :

Security Association payload 

Next payload: NONE (0)Length: 52Domain of interpretation: IPSEC (1)Situation: IDENTITY (1)

Proposal payload 

Next payload: NONE (0)Length: 40Proposal number: 1Protocol ID: ISAKMP (1)SPI size: 0

Number of transforms: 1

Transform payload 

Next payload: NONE (0)Length: 32Transform number: 1Transform ID: KEY_IKE (1)

Encryption-Algorithm (1): 3DES-CBC (5)Hash-Algorithm (2): MD5 (1)Group-Description (4): Group-Value (1)Authentication-Method (3): PSK (1)Life-Type (11): Seconds (1)

Life-Duration (12): Duration-Value (18000)Bad Offset: 122

La figure ci-dessous montre un chaînage possible dans un message ISAKMP.

Page 49: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 49/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 49

Initiator Cookie

Responder Cookie

KE Version Exchange Flags

Message ID

Message LengthNonce 0 KE Payload Length

KE Payload Data

0 0 Nonce Payload Length

Nonce Payload Data

Figure 43 : Chaînage possible d'un message ISAKMP.

6.4.4.1.1  Echanges et phases

ISAKMP définit deux phases lors de la négociation des paramètres.

La première phase concerne l'authentification des deux pairs et la sécurisation du canal entre eux.La deuxième phase utilise le canal sécurisé pour négocier les paramètres de sécurité des différentsprotocoles IPSec.

ISAKMP définit cinq types d'échange, dont :

•  Base exchange;•  Identity protection exchange;•  Authentication only exchange;•  Agressive exchange;•  Informational exchange.

6.4.4.2  IKE

ISAKMP ne définissant pas d'échange de clés, c'est le rôle d'autres protocoles de définir ces échanges.IPSec utilise pour cet effet le protocole IKE, qui lui utilise le support d'lSAKMP pour définir l'échange desclés. IKE définit plusieurs types de messages et d'options applicables à ces échanges; leur but est celui decréer l'association de sécurité SA dans les deux pairs à l'aide des deux phases d'lSAKMP. La première estutilisée pour créer une SA IKE et la deuxième pour négocier les paramètres nécessaires à la création de laSA IPSec. Pour la première phase de I'échange, IKE utilise les échanges identity protect exchange etaggressive exchange d'ISAKMP et les appels main mode et aggressive mode. Pour la deuxième phase,IKE définit un quick mode exchange. Ce dernier négocie les différents paramètres des protocoles IPSecautre que IKE (AH et ESP).

6.4.4.2.1  Main Mode Exchange

Pour l'établissement de la SA IKE, sont utilisés six messages, trois requêtes et trois réponses, pour établirela SA IKE. Ces messages font partie de trois étapes :

•  Échange des paramètres Diffie-HeIIman, tel que le group;•  Échange d'un payload nonce;•  Authentification des deux pairs.

Ces échanges sont montrés par la figure suivante :

Nonce Payload

Key ExchangePayload

ISAKMP Header 

Page 50: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 50/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 50

Figure 44 : Main mode exchange de IKE. 

Le premier échange sert à la négociation des paramètres nécessaires à la mise en place de la SA d'IKE.Le deuxième échange sert à la négociation des valeurs publiques de I'algorithme Diffie-Hellman et desvaleurs pseudo-aléatoires contenues dans le nonce payload. Lors du dernier échange les deux pairss'envoient leur identité respective et le hash digest nécessaire à I'authentification.

6.4.4.2.2  Aggressive Mode Exchange

Les données échangées en mode agressive mode exchange sont les mêmes que celles pour le mainmode exchange. La seule différence existante entre ces deux modes réside dans le nombre de paquetséchangés passe de six à trois. En réduisant le nombre de paquets échangés, I' aggressive mode exchange limite sa puissance de négociation.

6.4.4.2.3  Quick Mode Exchange

Une fois la SA IKE établie avec le main mode ou I'aggressive mode, le quick mode peut être utilisé pour établir une SA pour un autre protocole de sécurité, tel que AH et ESP. Le quick mode est effectué sous laprotection de la SA IKE précédemment établie. Dans un échange en quick mode, les deux pairs négocientles caractéristiques de la SA IPSec à établir, et génèrent les clés correspondantes. La SA IKE protège ces

échanges en chiffrant et en authentifiant les messages transmis.

Cet échange est montré par la figure suivante :

Pair 1 Pair 2

Header + SA

Header + SA

Header + KE + Nonce

Header + KE + Nonce

Header + Idi + Hash

Header + Idi + Hash

Pair 1 Pair 2

Header + Hash + SA +

Nonce [KE, Idci, Idcr]

Page 51: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 51/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 51

Figure 45 : Quick Mode Exchange.

En plus de l'entête ISAKMP, du Hash, de la SA, du Nonce et des paramètres optionnels de Diffie-Hellman,les deux pairs peuvent s'échanger des informations concernant leur identité tel que leur adresse IP.

7.  ConclusionsCe document a permis à l'auteur de bien se familiariser avec la problématique des réseaux privés virtuels,notamment les problèmes liés aux protocoles étudiés. Le tutorial donne un vaste aperçu des protocoles leplus souvent utilisés, comme PPTP, L2TP et IPSec. Les sujets traités sont mis en pratique dans lelaboratoire annexe intitulé Laboratoire sur les VPN .

Page 52: Tutorial VPN

5/8/2018 Tutorial VPN - slidepdf.com

http://slidepdf.com/reader/full/tutorial-vpn-559ac151c490d 52/52

 

Christian Tettamanti 

Travail de diplôme – Tutorial VPN  Page 52

8.  Bibliographie

8.1  Ouvrages

[SLACKWARE] Slackware Linux – UnleashedAuthors : Bao Ha, Tina Nguyen© 1999 Sams Edition

[IPSECRFC00] Big Book of IPSec RFCsCompiled by: Pete Loshin

© 2000 Morgan Kaufmann

8.2  Articles et documents du web (annexés)[CISCO1] What is a VPN? - White Paper

Authors : Paul Ferguson, Geoff Huston

© April 1998 Cisco

[MICROSOFT1] Virtual Private Networking: An Overview - White Paper© 1999 Microsoft Corporation

[RFC2401] Security Architecture for the Internet Protocol

[RFC2402] IP Authentication Header

[RFC2403] The Use of HMAC-MD5-96 within ESP and AH[RFC2404] The Use of HMAC-SHA-1-96 within ESP and AH

[RFC2405] The ESP DES-CBC Cipher Algorithm With Explicit IV

[RFC2406] IP Encapsulating Security Payload (ESP)[RFC2407] The Internet IP Security Domain of Interpretation for ISAKMP

[RFC2408] Internet Security Association and Key Management Protocol

(ISAKMP)[RFC2409] The Internet Key Exchange (IKE)

[RFC2410] The NULL Encryption Algorithm and Its Use With IPSec[RFC2411] IP Security Document Roadmap

[RFC2412] The OAKLEY Key Determination Protocol

8.3  Compléments (annexés)

[TUTORIAL1] Tutorial VPN

C.Tettamanti

© 2000 TCOM – EiVD

[CONFIG0] Installation de Linux Slackware pour des solutions VPN

C.Tettamanti

© 2000 TCOM - EiVD

[CONFIG1] Configuration d’un VPN – PPTP et IPSec

C.Tettamanti© 2000 TCOM - EiVD