Approfondissement Technique Exia A5 VPN Amandine Muller & Mathieu Schmitt 12 décembre 2011
Introduction Toute entreprise qui veut progresser et s implanter durablement sur le marché actuel nécessite une bonne cohésion interne. Les réseaux informatiques contribuent pour une très grande part à cette cohésion, ils constituent l épine dorsale de la communication. Les techniques d intrusion sont de plus en plus sophistiquées, cependant, leur mise en œuvre est de plus en plus aisée. Une étude réalisée en février 2009 et publiée par l éditeur de logiciels McAfee, révèle que la cybercriminalité occasionnerait une perte de 1 000 milliards de dollars aux entreprises chaque année! L homme et sa sécurité doivent constituer la première préoccupation de toute aventure technologique. Albert Einstein Les entreprises actuelles sont majoritairement dotées d un réseau local et d un accès à internet qui nécessitent une bonne protection. Ces dernières disposent souvent de sites distants qu il est nécessaire de connecter au réseau LAN du site mère de l entreprise : C est le rôle du VPN 1. Ainsi, l administration du système d information est plus simple et centralisé ; il en découle une mise à disposition optimale des ressources aux employés. Certains salariés sont nomades et doivent accéder rapidement et de manière sécurisé à leurs fichiers sans occasionner de lourdes modifications sur leur périphériques. Par ailleurs, les partenaires commerciaux doivent disposer des informations cruciales (Base de données,...) nécessaire aux développement des deux protagonistes. Des mécanismes sécuritaires permettront d assurer les principaux axiomes de la sécurité : Intégrité : garantir que les données sont bien celles que nous croyons être ; Confidentialité : seules les personnes autorisées ont accès aux ressources ; Disponibilité : garantir l accès à un service ou ressources ; Non répudiation : garantir qu une transaction ne peut être niée ; Authentification : seules les personnes autorisées ont accès aux ressources. La "confiance" est donc un atout majeur nécessaire à l entreprise pour pouvoir continuer à prospérer et qu il est nécessaire d assurer. 1. Nous utiliserons aussi le terme RPV (Réseau Privé Virtuel) 1
Nous sommes à présent au cœur de ce travail d approfondissement technique. Sa réalisation s inscrit dans le cadre de la 5ème année de l exia, école d informatique du groupe Cesi. Nous pouvons ici nous poser des questions pertinentes et y répondre : Quelles sont les caractéristiques d un VPN? Pourquoi un VPN est-il nécessaire, quelle topologie adopter? Quels sont les mécanismes sécuritaires mis en jeu? Quels sont les différents protocoles de tunnelisations? Quelles sont les solutions du marché? Comment maintenir un RPV? 2
Table des matières Introduction 2 Table des matières 3 1 Caractéristiques générales d un VPN 5 1.1 Généralités sur le modèle OSI.................... 5 1.2 Principes de fonctionnement d un VPN.............. 6 1.3 Types de VPN............................ 7 1.3.1 VPN d accès......................... 7 1.3.2 Intranet VPN......................... 8 1.3.3 Extranet VPN........................ 9 2 Sécurité des VPN 10 2.1 Protocoles............................... 10 2.1.1 Définition........................... 10 2.1.2 Caractéristiques....................... 10 2.2 Authentification............................ 11 2.2.1 Définition........................... 11 2.2.2 Modes d authentification................... 12 2.2.3 Authentification par mot de passe............. 12 2.2.4 Authentification par défi-réponse.............. 12 2.3 Cryptographie............................ 13 2.3.1 Définition........................... 13 2.3.2 Chiffrage Symétrique..................... 13 2.3.3 Chiffrage Asymétrique.................... 15 2.4 Filtrage de paquet.......................... 18 2.4.1 Définition........................... 18 2.4.2 Pare-feu de couche 7..................... 18 2.5 Gestion des clés............................ 19 2.5.1 Principes........................... 19 2.5.2 Protocole d échange de clé.................. 19 2.5.3 Infrastructure à clé publique (PKI)............. 21 3 Protocoles de tunnelisations 25 3.1 PPTP................................. 25 3.1.1 Définition et principe.................... 25 3.1.2 Principe PPP......................... 25 3.1.3 Fonctionnement du protocole PPtp............. 28 3
3.2 L2TP................................. 30 3.3 IPSEC................................. 31 3.3.1 Définition........................... 31 3.3.2 Sécurité............................ 31 3.3.3 Fonctionnement du protocole................ 34 3.4 MPLS................................. 36 3.4.1 Définition........................... 36 3.4.2 Terminologie et principe................... 36 3.4.3 Commutation de labels................... 38 3.5 SSL / TLS.............................. 40 3.5.1 Définition........................... 40 3.5.2 Sécurité............................ 40 3.5.3 Architecture......................... 41 3.5.4 Établissement d une session................. 42 3.5.5 Inconvénients......................... 43 4 Étude de cas 44 4.1 OpenVPN............................... 44 4.1.1 Définition........................... 44 4.1.2 Présentation de l étude de cas................ 44 4.1.3 Mise en place de la solution................. 45 5 Maintenir un VPN 49 5.1 Monitoring.............................. 49 5.2 Veille technologique......................... 49 5.3 Mise à jour du système........................ 50 Conclusion 51 Table des figures 52 Bibliographie 54 4
Chapitre 1 Caractéristiques générales d un VPN 1.1 Généralités sur le modèle OSI Le modèle OSI est un modèle théorique de communication entre les ordinateurs et proposé par l organisation ISO. Celui-ci est composé de 7 couches, chacune d entre elles joue un rôle très précis. Ce modèle est à l origine du protocole TCP / IP. Figure 1.1 Confrontation du modèle OSI et TCP / IP 5
Dans ce dossier, nous nous intéresserons successivement aux couches : Réseau (3) ; Transport (4) ; Applications (5, 6, et 7). La couche réseau est la clef de voûte du protocole dans la mesure où c est elle qui réalise l interconnexion des réseaux distants. Elle s appuie sur l adresse IP (IPv4 / IPv6). La couche transport connaît deux implémentations : le protocole TCP orienté connexion, le protocole UDP sans connexion, le résultat escompté étant de permettre aux entités paires de soutenir une conversation. La couche transport s appuie sur la notion de port. La couche application contient tous les protocoles de haut niveau (HTTP, SSH, FTP,...). 1.2 Principes de fonctionnement d un VPN Figure 1.2 Fonctionnement d un VPN Un VPN (Virtual Private Network) permet de déployer des communications sécurisées en utilisant le réseau public qu est internet entre différents sites d une entreprise, il permet donc d avoir un réseau local unifié entre ces différents sites. Le réseau VPN repose sur un protocole de tunnelisation permettant d échanger des données de manière cryptées. Le principe de ce protocole permet de créer un chemin virtuel entre deux sites distants, et ainsi de permettre d encapsuler, de transmettre et de désencapsuler les données. Les VPN peuvent être utilisés dans une entreprise pour relier leur réseau dans plusieurs cas : Pour les télés travailleurs ; Pour la connexion de filiales. 6
1.3 Types de VPN 1.3.1 VPN d accès Trois types de VPN se distinguent les VPN d accès, de type intranet et extranet. Les VPN d accès permettent d accéder à un réseau de l entreprise pour profiter de ses services (lire les mails, accéder et récupérer des fichiers...). Ce type de VPN est souvent utilisé par des commerciaux ou des cadres lors de déplacement. Figure 1.3 VPN d accès 7
1.3.2 Intranet VPN Les VPN de type intranet permettent de relier plusieurs sites d une entreprise pour ne former qu un seul réseau local. Sans ce type de VPN l entreprise devrait utiliser des lignes dédiées entre les différents sites, ce qui engendrerait des coûts très onéreux. Figure 1.4 VPN de type Intranet 8
1.3.3 Extranet VPN Enfin, les VPN de type extranet quant à eux, permettent à des parties prenantes (clients, fournisseurs...) d accéder à certaines données d une entreprise. De nos jours, toutes les banques proposent ce type de connexion à leurs clients. Figure 1.5 VPN de type Extranet Les VPN de types intranet et extranet permettent donc de relier plusieurs sites ou entreprises distantes pour ne former qu un seul réseau. 9
Chapitre 2 Sécurité des VPN 2.1 Protocoles 2.1.1 Définition Les protocoles sont au cœur des instances sécuritaires liées au réseau privé virtuel. Ils permettront par exemple d authentifier un sujet voulant se connecter, transférer une clé de cryptage entre deux protagonistes pour le chiffrage / déchiffrage des données,... Par définition, un protocole est un algorithme distribué (entre deux ou plusieurs participant(s)) qui spécifie une succession d étapes précisant les actions qui sont requises afin de valider les objectifs cités précédemment (2.1.1). Un protocole permet d établir une relation de confiance, cependant, les participants ne sont pas toujours de bonne foi. 2.1.2 Caractéristiques Pour maximiser les chances de réussite, la liste suivante propose les axiomes caractérisants les protocoles [9] : "Pré-établi : Le protocole doit être complètement défini avant d être utilisé, Mutuellement supporté : tous les protagonistes acceptent de suivre les étapes dans l ordre, Non-ambigu : aucun élément ne devrait être sujet à l interprétation, Complet : pour chaque éventualité, une action est prescrite." Des entreprises créent des protocoles sur lesquels elles déposent des brevets obfusquant dans une certaine mesure les informations liées aux échanges, à la sécurité,... Une question se pose alors : Comment garantir la sécurité du protocole alors que celui-ci n a pas été publiquement défini? 10
2.2 Authentification 2.2.1 Définition L authentification permet à une entité vérificatrice de vérifier l identité d un prétendant afin de se prémunir contre l imposture. L authentification se fait en temps réel. Voici les quatre objectifs généraux d un protocole d authentification [9] : 1. "Pour A et B deux parties honnêtes, A peut s authentifier avec succès à B. B complètera le protocole convaincu de l identité de A, 2. B ne peut pas réutiliser un échange d authentification avec A pour se faire passer pour A auprès d un tiers C. Ce mécanisme s appelle la nontransférabilité, 3. La probabilité est négligeable qu un tiers C, distinct de A, puisse effectuer le protocole en jouant le rôle de A et réussir à convaincre B qu il (C) est en fait A, 4. L objectif 3 est maintenu même si : - Un grand nombre d authentifications précédentes de A vers B ont été observé, - C a participé à des échanges protocolaires avec A ou B, - Plusieurs sessions protocolaires, possiblement entreprises par C, se déroulent simultanément (Attaque d entrelacement)." 11
2.2.2 Modes d authentification Les VPN sont soumis aux contraintes énoncées ci-dessus (2.2.1). Dans ce sens, il est important pour le vérificateur de proposer un ou plusieurs choix de la liste suivante : Ce que tu es : Biométrie, ADN, empreintes..., Ce que tu possèdes : Clé, carte,..., Ce que tu connais : Mot de passe, secret,... 2.2.3 Authentification par mot de passe Le prétendant dispose d un mot de passe pour s authentifier. Il fournit le secret au vérificateur. Ce dernier ne dispose pas de la liste des mots de passe en clair mais plutôt d un haché de ces derniers. Il faut s assurer que la fonction soit lente afin de ralentir les attaques. Dans ce sens, si h() correspond à la fonction de hachage et m au mot de passe, on utilisera plutôt la fonction h(h(h(m)). L utilisation d un sel 1 est recommandé pour agrandir l espace de recherche lors d attaque par brute force 2 par exemple. 2.2.4 Authentification par défi-réponse L authentification par défi-réponse pose un défi au prétendant (envoyé par le vérificateur). L authentification réussie si et seulement si le demandeur fournit une réponse qui prouve qu il connait le secret. L exemple ci-dessous montre un protocole d authentification par défi-réponse utilisant le principe de la signature : A > B : certificat A, t A, B, S A (t A, B) Le certificat permet de lier la clé publique de A à son identité. S A () est la signature de A. A signe avec sa clé privé. Lorsque B réceptionne le message, il va vérifier l empreinte d horodatage (timestamp) et la comparer avec sa fenêtre d acceptation. Ensuite, il extrait la clé public de A contenu dans le certificat et vérifie la signature des deux champs. Si tout concorde, A est authentifié auprès de B. Il existe d autres types de protocoles que nous ne traiterons pas ici. Les ressources [9] et [12] donnent de plus ample informations sur le sujet. 1. Chaine pseudo-aléatoire concaténée au mot de passe 2. Recherche qui se base sur les mots de passe des plus utilisés au moins utilisés. 12
2.3 Cryptographie 2.3.1 Définition Le chiffrement des données a pour but de rendre inintelligible un message pour une personne autre que son destinataire légitime qui possède une clé. Le chiffrage est la science de la cryptographie. Celle-ci existe depuis l antiquité (Chiffrement de Cesar). Il existe deux types de chiffrement : 1. Symétrique ou à clé secrète : La même clé est utilisée pour le chiffrage et le déchiffrage, 2. Asymétrique : Une clé publique est utilisée pour le chiffrement du message et une clé privée est utilisée pour le déchiffrage. Une relation étroite d ordre mathématique existe entre ces deux clés. 2.3.2 Chiffrage Symétrique Principe Le chiffrage symétrique a pour but de rendre un message clair en un message chiffré 3 impossible à interpréter directement. Une clé de chiffrage est utilisé pour rendre le message inintelligible et la même clé est utilisé par le destinataire pour déchiffrer le message. La figure 2.1 illustre ce principe. Figure 2.1 Principe général du chiffrage symétrique La cryptographie symétrique repose sur deux principes essentiels : 1. Permutation : permet de changer l ordre des caractères du message en préservant la fréquence relative de ceux-ci. Seul, ce n est pas très utile. Pour ce faire, il faut avoir recours en plus à la, 2. Substitution : remplace une ou plusieurs lettre par une ou des autre(s). 3. Aussi appelé cryptogramme 13
Chiffrage en bloc Le chiffrement en bloc découpe le message en blocs de taille fixe (comprise entre 32 et 512 bits). Ce dernier est ensuite chiffré. Ce mécanisme est répété sur tout le message. Il existe plusieurs modes de chiffrement (ECB, CBC, CFB,...) tous basés sur le réseau de Feistel. Le schéma 2.2 présente le chiffrement par bloc utilisant le mode CipherFeedback (CFB). Dans ce mode, pour obtenir le n-ième bloc chiffré, on chiffre d abord le (n-1)-ième bloc chiffré. Ensuite, on fait un OU-Exclusif entre le résultat et le k-ième bloc de message. Figure 2.2 Mode CipherFeedback pour le chiffrage Légende : - P1 représente le bloc de message clair 1 (Plain). - C1 représente le bloc de message crypté 1. - VI correspond au vecteur d initialisation qui est une chaine aléatoire utilisé pour demarrer le chiffrage. Il doit obligatoirement être transmis avec la clé pour le déchiffrage. - Le OU-Exclusif correspond à une opération de permutation. - Le carré "chiffrage en bloc" correspond à des opérations de permutation. AES qui est le successeur de DES est basé sur ce mode opératoire. Chiffrage par flux Le chiffrage en flux est bien plus rapide que le chiffrage par bloc. Il consiste à utiliser un générateur pseudo-aléatoire pour générer une séquence binaire. Un Ou-exclusif est appliqué à cette dernière ce qui donnera le cryptogramme. L avantage de ce système est que la taille du message n a pas d importance pour commencer à chiffrer. Néanmoins, si il y a des problèmes de synchronisation, les erreurs sont propagées. RC4 est le plus connu de ces algorithmes. 14
2.3.3 Chiffrage Asymétrique Définition Le chiffrage asymétrique ou à clé publique est basé sur deux clés, l une privée et l autre publique. Le schéma 2.3 illustre le principe de fonctionnement de ce mode. Bob souhaite envoyer un message secret à Alice. Cette dernière lui envoie sa clé publique. Figure 2.3 Chiffrement dans un système à clé publique Ensuite, Bob chiffre le message à l aide de la clé publique d Alice (2.4). Sur réception du cryptogramme, Alice déchiffre le message à l aide de sa clé privée. Figure 2.4 Chiffrement dans un système à clé publique Le principal inconvénient de ce mécanisme est le temps qu il faut pour calculer les clés. Il ne convient pas à des systèmes disposant de peu de mémoire. 15
Principe mathématique Ces systèmes sont basés sur des problèmes difficiles à résoudre. En effet, ils utilisent la factorisation et les logarithmes discrets. On utilise de grands nombres premiers 4 (de l ordre de 10 300 ) qui sont très difficilement factorisables. Cependant, Alice qui possède les clés connait les facteurs premiers du grand nombre. Les clés publiques et privées sont liées par ce concept. Un attaquant potentiel devra trouver les facteurs premiers de ce nombre si il veut déterminer la clé privée d Alice. C est possible mais cela prend beaucoup de temps : En effet, on considère que pour trouver une clé, il faut quelques siècles. Le cas RSA RSA est le plus connu des algorithmes à clé publique. Il tient son nom de ses trois fondateurs Rivest, Shamir et Adleman. Il permet de faire du chiffrage comme de la signature. Les solutions de VPN peuvent utiliser RSA pour authentifier de manière sécurisé leurs utilisateurs. Génération de clés Pour créer les clés, on génère deux très grands entiers premiers qui sont distinct et pseudo aléatoire, respectivement p et q. Ces deux nombres doivent demeurer secrets. Ensuite, on calcule le produit n = pq et φ(n) = (p 1)(q 1). Ensuite, on choisit un nombre e aléatoire tel que 1 < e < φ(n). On utilise l algorithme d Euclide étendu pour déterminer l unique entier d tel que ed 1(mod φ(n)). À l issue de cette étape, la paire de clé est créée : Clé publique : (e et n) Clé privée : (d et n) Chiffrage Maintenant que les clés sont générées, si Bob chiffre un message à l intention d Alice, Bob calcule cryptogramme = m e modn. Il envoie le message chiffré à Alice. Déchiffrage Sur réception du secret, Alice effectue message = c d mod n. 4. Divisible par 1 et eux-mêmes uniquement 16
Exemple concret Nous utilisons volontairement des petits nombres premiers pour faciliter la lecture. Alice veut créer une paire de clé pour le système à clé publique. Pour cela, elle choisit p = 2357 et q = 2551. Ainsi, n = pq = 6012727 et φ(n) = (p 1)(q 1) = 6007800. Alice choisit un e = 3674911 et calcule d = 422191 en respectant la condition ed 1(mod φ(n)). Voici les clés générées par Alice : Clé publique : (3674911 et 6012707) Clé privée : (422191 et 6012707) Maintenant, elle envoie sa clé publique à Bob qui va s occuper de chiffrer son message qui est m = 5234673. Il effectue : c = m e mod n = 5234673 3674911 mod 6012707 = 3650502. Bob envoie ensuite le cryptogramme c à Alice qui s occupe de déchiffrer le message : m = c d mod n = 3650502 422191 mod 6012707 = 5234673. Le message original est bien recouvré. 17
2.4 Filtrage de paquet 2.4.1 Définition Le filtrage de paquet est mis en œuvre par des pares-feu. Leur but est d autoriser uniquement le trafic VPN d utilisateurs authentifiés. La politique de stratégie de sécurité de l entreprise doit spécifier si oui ou non le trafic en dehors du VPN est autorisé ou non. Ces caractéristiques sont gérés par des firewall gérant la couche application (couche 7) du modèle OSI. 2.4.2 Pare-feu de couche 7 Le filtrage applicatif permet "comme son nom l indique" de gérer les protocoles de la couche 7 Application du modèle OSI. Dans cette perspective, le firewall a une obligation d analyse : celle des PDU 5 de la couche application avec le protocole approprié comme le montre la figure 2.5. Par exemple, si un PDU se présente avec une en-tête HTTP, nous sommes obligés d utiliser un proxy HTTP pour l examiner (Squid, Apache,...). Figure 2.5 Pare-feu en mode applicatif Ces pare-feu permettent une analyse fine, leur efficacité demande cependant une puissance considérable. Par ailleurs, en raison du nombre de protocoles de couche 7, nous nous voyons dans l impossibilité de tout contrôler. Si un utilisateur nécessite une application, nous devons trouver un compromis entre sécurité et équilibre du réseau. Ceci sous-entend que seuls les services les plus importants seront pris en charge. Enfin, certains protocoles propriétaires peuvent poser des problèmes : Comment filtrer quelque chose qui n a pas publiquement été définie? 5. Protocole Data Unit, est l unité de données pour une couche 18
2.5 Gestion des clés 2.5.1 Principes Les cryptosystèmes à chiffrement symétrique ont une faiblesse majeure : La transmission de la clé de chiffrement / Déchiffrement. Par exemple, si Alice et Bob veulent utiliser DES pour se chiffrer l un l autre des messages, il est primordial que chacun des protagonistes disposent de la clé privée. La clé empreinte un chemin non-intègre entre les deux participants i.e. internet la plupart du temps. Pour sécuriser l échange, il faudrait que les deux personnes se rencontrent physiquement ce qui n est vraiment pas commode. Dans ce sens deux chercheurs Diffie et Hellman sont parvenus à résoudre ce problème : ils ont trouvé une méthode pour convenir d un secret partagé sans le faire circuler entre les participants. Une fonction mathématique joue se rôle : Les participants peuvent échanger des messages dont eux seuls peuvent déduire le secret. 2.5.2 Protocole d échange de clé Le protocole Diffie-Hellman permet d échanger une clé (secret) entre deux utilisateurs. Le protocole (définit en 2.1.1) permet d envoyer le secret sur un canal non sécurisé. IPSec se sert du protocole IKE (Internet Key Exchange) définit dans la rfc4306[2]. IKE se sert très largement de D-H pour établir le secret. Si Alice veut envoyer une clé à Bob, ceux-ci s entendent sur un grand nombre premier n et sur un générateur g. Ensuite, Alice doit choisir un grand nombre aléatoire a et envoie à B : A = g a mod n. De la même façon, Bob choisit un b et envoie à Alice B = g b mod n. Alice calcule k = B a mod n et Bob calcule k = A b mod n. À l issue de ces calcules, k = k, c est à dire qu un secret commun entre les deux protagonistes à été établi. Le schéma 2.6 permet de mieux comprendre les échanges. 19
Figure 2.6 Échange de clé utilisant le protocole Diffie-Hellman Un générateur g est fondé sur les classes d équivalences modulo n. Le principal problème avec Diffie-Hellman est l usurpation d identité (Authenticité). Des attaques en Man-in-the-Middle sont possibles pour subtiliser le secret partagé et donc potentiellement modifier tous les messages transitant entre Alice et Bob. L authentification des échanges est donc primordiale. On privilégiera donc l utilisation de signature des messages à l aide d une paire de clé certifiée par un tiers de confiance. C est le rôle de l infrastructure à clé publique. 20
2.5.3 Infrastructure à clé publique (PKI) Pourquoi un organisme de gestion des clés? Les communications sur l Internet sont de plus en plus nombreuses. Le transfert de données critiques suit cette évolution. Les échanges utilisent très souvent les cryptosystèmes à clé publique (commerce électronique). Il faut authentifier les clés publiques des protagonistes pour éviter les attaques de type Man-in-themiddle. Dans ce sens, le NIST a étudié et défini un standard dans la manière de gérer l authentification des clés publiques. Prenons un exemple de système n utilisant pas d infrastructure à clé publique : Un groupe d utilisateur publie dans un fichier publique la liste des identités (A) associés à leur clé publique (E). Le schéma 2.7 décrit cette approche. Figure 2.7 Utilisation de fichier publique pour la gestion des clés publique A1 crypte un message pour A2. Dans un premier temps, A1 va chercher la clé publique de A2 dans le fichier publique. Il crypte le message à l aide de cette dernière et envoie le crytpogramme à A2. A2 déchiffre le message. Tout fonctionne à merveille. Même si cette solution permet de distribuer facilement les clés, elle est largement soumise à l attaque par usurpation d identité en modifiant le fichier publique. 21
Le schéma 2.8 montre la facilité avec laquelle il est possible de monter une telle attaque. Figure 2.8 Attaque par usurpation d identité Dans ce scénario, l attaquant va dans un premier temps se placer entre les deux protagonistes (Man-in-the-middle) et modifier le fichier publique afin de modifier la clé publique de A1. Il va la remplacer par une clé publique de son choix (E*). Lancement du scénario A1 crypte pour A2. Comme précédemment, A1 va chercher la clé publique de A2 qui n est autre que celle de l attaquant. Il va ensuite crypter le message à l aide de cette clé et l envoyé à A2. L attaquant s étant placé entre les deux protagonistes, il pourra déchiffrer le message avec sa clé privée (D*) puis la renvoyer à la personne légitime en prenant soin de recrypter le message avec la clé A2 (E2). Sur réception du message, A2 décrypte le message. Dans ce scénario, les deux protagonistes n ont même pas remarqué la présence de l attaquant qui a pu lire le message échangé entre les deux protagonistes légitimes. Le principal problème est bien l authentification des transactions. 22
Certification des clés par un tiers de confiance Le Pki permet de résoudre le problème évoque précedemment en fournissant la garantie d identité de l utilisateur. Divers mécanismes sécuritaires sont mis en place. Le PKI ou tiers de confiance peut vérifier l identité des protagonistes légitimes et signer la combinaison Identité - clé publique à l aide de son algorithme de signature S(). Un certificat est ainsi créé. Les certificats ont pour vocation d être largement distribués et chaque personne peut vérifier les signatures pour valider l authenticité du protagoniste (Fonction V()). La figure 2.9 explique la situation en image. Figure 2.9 Certification des clés par un tiers de confiance Gestion des clés Une infrastructure à clé publique se doit de gérer les opérations suivantes : Génération, Distribution, Suppression, Archivage, Recouvrement, Stockage. 23
Composants d une PKI La pki regroupe plusieurs services qui interviennent à différents moments, c est à dire de la création du certificat en passant par son utilisation jusqu à sa révocation ou suppression : 1. Autorité d enregistrement (RA = Registration Autority), 2. Autorité de certification (CA = Certificate Authority), 3. Application compatible pki. 1. Autorité d enregistrement Cette autorité recrute de nouveaux utilisateurs, qui posent leur candidature. Cela va du simple formulaire HTML aux enquêtes des Renseignements Généraux. Lorsque la demande de certificats est accepté, la demande est relayé à l autorité de certification. 2. Autorité de certification Cette autorité va créer les certificats. Le certificat généré contient le Distinguished Name (DN), sa clé publique et la date de révocation du certificat. Le CA signe le certificat à l aide de sa clé privé. L algorithme de signature est la pierre angulaire du système. Toute l infrastructure doit être sécurisé dans la mesure où si un attaquant dérobe la clé publique du CA, toute les clés sont compromises. Le CA peut révoqué des certificats qui sont alors placés dans une liste de certificat révoqué (CRL). Toute les application compatible PKI doivent vérifié cette liste lorsqu un certificat leur est présenté. 3. Application compatible PKI Une très large majorité des applications WEB utilisent des certificats pour l authentification : Navigateur Internet, E-mail, VPN, etc. IPSEC utilise les certificats pour authentifier les différents protagonistes. 24
Chapitre 3 Protocoles de tunnelisations 3.1 PPTP 3.1.1 Définition et principe Point to point tunneling protocol, est un protocole de niveau 2, conçu par Microsoft, permettant d encrypter et de compresser les données. Le protocole PPtP, utilise une connexion P P P 1. Ce protocole, malgré une implémentation native sur les PC Windows, n est plus fréquemment utilisé de nos jours, il tend à être remplacé par les protocoles L2TP et IPsec. 3.1.2 Principe PPP Point to Point Protocol, est un protocole non propriétaire permettant d établir une connexion entre deux hôtes sur une liaison point à point. Le procotocole PPP comprend 3 composants : Protocole HDLC pour l encapsulation Protocole de contrôle de liaison extensible,lcp Layer Control Protocol, permettant d établir et de tester la connexion des liaisons de données. Famille de protocoles réseaux, NCP Network Control Protocol, permettant d établir, de configurer différents protocoles réseaux. Structure de trame PPP Les différents champs correspondent [13] : Indicateur : Les trames sont délimitées par un indicateur, permettant de savoir quand commence la trame, en l occurrence la séquence binaire 01111110. 1. Point to Point Protocol permet d établir une connexion entre deux hôtes uniquement sur une liaison point à point. 25
Figure 3.1 Structure de trame PPP Adresse : Ce champ contient l adresse de diffusion de tous les récepteurs, 11111111. L intérêt est que si un réseau est relié derrière la liaison point à point, toutes les machines en avales recevront les messages qui transitent par la liaison point à point. Cela simplifie la diffusion de messages à un ensemble de machines, car il suffit pour cela d envoyer le message à une adresse unique. Contrôle : le champ Contrôle est toujours positionné sur 00000011, pour indiquer que les trames sont de type non-numéroté. Protocole : Codé sur 1 ou 2 octets, il indique quel protocole transmet des données dans le champs Données. À tout protocole est associé un numéro, par exemple 0021 pour le protocol Internet Protocol version 4 (IPv4). Données : Le champs données est de longueur variable et contient les données à transmettre. FCS : Frame Check Sequence, Le code correcteur d erreur, place ici de l information redondante afin de détecter si une erreur s est produite. Session PPP Une session PPP se déroule en 3 étapes : 1. Etablissement de la liaison et négociation de la configuration. Le protocole LCP ouvre la connexion et négocie les options de configuration. Cette phase se termine, lorsque le routeur récepteur renvoie une trame d accusé de réception de configuration vers le routeur établissant la connexion. 2. (Etape facultative) Détermination de la qualité de la liaison. Protocole LCP teste la liaison afin de déterminer si sa qualité est suffisante pour activer les protocoles de couche réseau. 3. Négociation de la configuration du protocole de couche réseau. Le protocole NCP configure les protocoles de couche réseau. Enfin, lors de cette dernière étape le protocole LCP peut mettre fin à la liaison à tout moment. 26
Figure 3.2 Etablissement d une session PPP 27
3.1.3 Fonctionnement du protocole PPtp Le protocole PPtP encapsule les données dans une trame PPP qui est ellemême encapsulée dans un datagramme IP. Ainsi le message initial est encapsulé dans un message PPP qui est encapsulé dans un message IP. Comme dit, précédemment ce protocole permet une identification, l encryptage et la compression des données. Authentification Pour l authentification, le protocole PPtP se base sur les mécanismes du procole PPP en utilisant CHAP (Challenge Handshake Authetification Protocol). Deux versions existent pour ce protocole, CHAPv1 et CHAPv2, cependant la version CHAPv1 est devenu obsolète, en effet, cette version du protocole exige que les mots de passe soient sous le format texte (en clair) et ne supporte pas l encryption [23]. Le protocole CHAP permet un échange en trois étapes : Figure 3.3 Echanges CHAP 1. Une fois la phase d établissement de la liaison PPP terminée, le routeur local envoi un message de demande de confirmation au noeud distant. 2. Le noeud distant répond par une valeur, calculée au moyen d un algorithme de hachage, généralement Message Digest 5 (MD5),basé sur le mot de passe CHAP ainsi que sur le message de demande de confirmation. 3. Enfin Le routeur local compare la réponse envoyée par le noeud distant avec la valeur calculée, si ces deux valeurs correspondent la connexion est établie, dans le cas contraire, la connexion prend fin immédiatement. Le protocole CHAP permet également d éviter les attaques répétées, en utilisant des valeurs de confirmation aléatoire et unique. 28
Chiffrement Le protocole PPTP utilise le protocole de chiffrement MPPE (Microsoft Point to Point Encryption), développé par Microsoft, pour améliorer la confidentialité des données encapsulées dans le protocole PPP à travers le réseau privé virtuel (VPN). Le protocole MPPE assure la sécurité des données de la connexion PPTP située entre le client et le serveur VPN. Pour assurer la confidentialité des données, le protocole MPPE utilise l algorithme de chiffrement RSA (Rivest Shamir Adleman), comme expliqué précédent dans le document 2.3.3, l algorithme RSA est un algorithme de cryptographie asymétrique. Le protocole MPPE nécessite des clés de cryptage, de longueur variable, le protocole supporte les méthodes de cryptage stantard (40 bits) et étendue (128 bits), ces clés sont fréquemment changées pour améliorer la sécurité. La longueur des clés et la fréquence où celles-ci sont changées peuvent être négociés. La négociation se déroule en plusieurs étapes ; si la négociation de MPPE n est pas tentée alors aucun cryptage n est utilisé. Si au contraire, elle est tentée et vient à échouer, la liaison est résiliée. L initiateur de la négociation demande au répondeur les options de cryptage supporté par celui-ci. Si le répondeur ne supporte aucune des options proposées, il répond avec un option de chiffrement simple. L initiateur devrait alors envoyer une autre requête comprenant la même option que le répondeur ou alors annuler la négociation et ainsi abandonner la connexion. Si toutefois le répondeur prend en charge plus d une option de cryptage demandé par l initiateur, l option finalement choisie correspond à l option la plus forte soit le Chiffrement 128 bits [8] Compression Le protocole de compression utilisé à travers le protocole PPTP est Microsoft Point-to-Point Compression Protocol (MPPC). MPPC fonctionne au niveau de la couche 2 du modèle OSI (Liaison de Données). Le protocole de compression de données (MPPC), permet de compresser les paquets encapsulés grâce au protocole PPP. Le protocole de compression est conçu pour optimiser l utilisation du processeur ainsi que la bande passante afin de soutenir un grand nombre de connexions simultanées. Par défaut, aucune méthode de compression n est utilisée. La compression est négociée avec les options de configurations, grâce au protocole de controle de compression (CCP Compression Control Protocol), en cas de désaccord entre les deux parties, la compression n est pas utilisée. Le compresseur et le décompresseur sont synchronisés par le maintien de 12 bits cohérents. L initiateur envoie des données compressées dans le tunnel VPN via le protocole PPP, en utilisant MPPC. 29
Le destinataire reçoit les données et vérifie que le nombre de bits cohérents est identique. Si ce n est pas le cas, le processus de récupération d erreur commence. Contraintes Le protocole de compression possède plusieurs contraintes : MPPC est pris en charge uniquement avec l encapsulation PPP. Les deux extrémités de la liaison point à point doivent utilisés la même méthode de compression. 3.2 L2TP Layer 2 Tunneling Protocol est un protocole développé à partir du protocole PPP. Il s agit d un protocole réseau, qui permet d encapsuler des trames PPP pour les transmettre sur des réseaux IP, x25, Frame Relay, ATM 2, en utilisant le protocole UDP 3. Le protocole L2TP se base sur les avantages de deux autres protocoles PPTP créé par Microsoft et le protocole L2F (Layer 2 Forwarding) développé par Cisco (RFC 2661)[?]. A la base le protocole L2TP servait à transporter uniquement des connexions PPP, de nos jours avec le protocole L2TP version 3, il permet de transporter n importe quel protoocole de niveau 2 (RFC 3931) [11]. Le protocole L2TP se base sur deux composants : L2TP Access Concentrator (LAC) L2TP Network Server (LNS) LAC, client L2TP, fournit un support physique utilisé par le protoocle L2TP pour transférer les données vers le serveur réseau (LNS). Le LAC joue le rôle de serveur d accès, il permet de relayer le traffic entre l utilisateur et le serveur réseau (LNS). Il permet également de négocier l authentification de l utilisateur, par clé partagée ou par certificat. Le client L2TP est l équipement qui initie le tunnel. LNS, serveur L2TP, gère le protocole L2TP du côté serveur. Le serveur L2TP est l équipement qui termine le tunnel et par conséquent la connexion PPP. Le tunnel L2TP se construit donc entre le LAC et le LNS créé à travers internet. L inconvénient du protocole L2TP, est qu il n intègre pas nativement de protocole pour le chiffrement des données, pour ce faire il s utilise conjointement avec le protocole IPsec, que nous allons développé dans la partie suivante. 2. Protocoles de couche 2 du modèle OSI 3. User Datagram Protocol de couche 4 du modèle OSI, permettant la transmission de données entre deux entités en mode déconnecté sans contrôle de données contrairement au protocole TCP 30
Figure 3.4 Tunnel L2TP 3.3 IPSEC 3.3.1 Définition IPSEC (Internet Protocol Security) est actuellement le protocole le plus utilisé dans la construction de VPN. Ce protocole fût développé à l origine dans le cadre de l évolution du protocole IP à savoir IPv6, toutefois le protocole IPSEC a été porté sur la version actuelle du protocole IP (IPv4). Le protocole IPSEC est défini par l IETF à travers la RFC 2401, et opère au niveau de la couche réseau du modèle OSI (couche 3). Ce protocole permet d améliorer la sécurité au protocole IP afin de garantir la confidentialité, l intégrité et l authentification des échanges. Les objectifs de ce protocole sont d authentifier et de chiffrer les données, ce qui permettra de respecter la confidentialité et l intégrité des données. En effet, le flux de données ne sera compréhensible que par le destinataire (confidentialité) et de la même manière, ce même destinataire sera le seul à pouvoir modifier les données (intégrité). 3.3.2 Sécurité AH Le protocole Authentification Header (AH), définit dans le RFC 4302 [?], a pour vocation d assurer l intégrité et l authentification des paquets à encapsuler. AH n assure pas la confidentialité des données, celles-ci ne sont pas chiffrées. Afin d assurer l intégrité des données, le protocole AH utilise différents modes de hachage MD5 et SHA-1. L application de ces méthodes sur un message produit un haché, permettant de certifier l intégrité et l authenticité du message. Le diagramme suivant décrit le formattage d un en-tête d authentification : 31
Figure 3.5 Diagramme de l en-tête authentification ESP Légende : En-tête suivant : Ce champ définit sur 8 bits permet d identifier le type du prochain en-tête, identifiant le protocole utilisé, ces numéros sont définis sur la page web de l IANA (Internet Assigned Numbers Authority). Par exemple le protocole IPv4 aura une valeur de 4 IPv6 de 41. Longueur : Ce champ de 8 bits spécifie la longueur de AH. Réservé : Ce champ définit sur 16 bits est réservé pour une utilisation future. Pour le moment il doit être réglé à zéro par l expéditeur, et ignoré par le destinataire. Index des paramètres de sécurité (SPI) : Ce champ définit sur 32 bits définit une valeur arbitraire identifiant les paramètres de sécurité (SA) en fonction de l adresse IP. Numéro de séquence : Ce champ définit sur 32 bits contient un numéro de séquence incrémenté de 1 pour chaque paquet envoyé. Ce numéro de séquence permet d éviter les attaques par répétition. Données d authentification : Ce champ de longueur variable contient le ICV (Integrity Check Value) pour le paquet. Cette valeur permet de vérifier l intégrité du paquet. Encapsulating Security Payload (ESP), définit dans la RFC 2406 [17], est utilisé pour le chiffrement des paquets. ESP fournit la confidentialité, l intégrité et l authentification. Contrairement à AH, ESP ne protège pas les en-têtes des datagrammes IP utilisés pour transmettre la communication. Les données seules sont protégées, ESP chiffre et encapsule les données. La figure suivante décrit le formattage d un paquet ESP : 32
Figure 3.6 Diagramme d un paquet ESP SA Légende : Index du paramètre de sécurité (SPI) : Identifie les paramètres de sécurité en fonction de l adresse IP. Numéro de séquence : Un compteur permettant d éviter les attaques par répétition. Données attachées : Données à transférer. Remplissage : Permet d obtenir une taille de bloc compatible avec le chiffrement. Longueur de remplissage : Cette longueur détermine la taille du bloc de remplissage, exprimé en bits. En-tête suivant : Permet d identifier le protocole utilisé pour effectuer le transfert. Données d authentification : Contient les informations nécessaires pour authentifier le paquet. SA (Security Association) est une structure de données servant à stocker l ensemble des paramètres de sécurité associés à une communication. Les services de sécurité définis par la SA repose sur une unique application des protocoles AH ou ESP. Une SA est unidirectionnelle, afin de protéger une communication dans les deux sens, il faudra donc activer deux SA, une pour chaque sens de la communication. Chaque association est identifiée de manière unique, basée sur un triplet composé de l adresse IP de destination des paquets, de l identifiant du protocole de sécurité (AH ou ESP) et le SPI qui est unique, définit sur 32 bits. Lorsqu un destinataire reçoit un paquet IPSec, il vérifie à quelle SA correspond le paquet reçu. Si l association de sécurité n est pas trouvée le paquet est rejeté, sinon il utilise les informations de sécurité pour interpréter le paquet IPSec. Pour les SA il existe deux types de bases de données : La SAD et la SPD Les SA activés sont regroupées dans une "Security Association Database" (SAD). Cette base de données est consultée par l hôte afin d identifier la 33
manière dont doit être traité chaque paquet reçu ou à émettre. IPSec offre des protections basées sur des choix définis dans une base de données de politique de sécurité (Security Policy Database SPD) établie par l administrateur de la connexion. Cette base permet de déterminer pour chaque paquet, s il doit être sécurisé ou autorisé à passer outre ou rejeté. Une SA peut être configurée manuellement ou dynamiquement (la plupart du temps). Lors d une configuration dynamique, c est les protocole IKE (Internet Key Exchange), et ISAKMP (Internet Security Association and Key Management Protocol) qui s en charge. 3.3.3 Fonctionnement du protocole Le schéma suivant décrit, comment le protocole IPSEC agit lors de la réception ou l envoie d un paquet. Figure 3.7 Traffic IPSEC Trafic entrant : À la réception d un paquet, le protocole IPSEC vérifie dans l en tête si des services de sécurité ont été utilisé, si c est le cas il va consulter la SAD pour rechercher la SA extraite de l en tête du paquet. Cette consultation va permettre de traduire le paquet en connaissant les paramètres de sécurité. Quant à la SPD, elle est consultée afin de savoir si le paquet a le droit ou non de transiter. Trafic sortant : Quand le protocole IPSEC doit envoyer des données, celuici se réfère à la SPD pour connaître la manière dont elles doivent être envoyées. Si les données doivent être sécurisées, le protocole IPSEC consulte la SAD pour retrouver la SA et les paramètres de sécurité requis pour l échange. Si la SA n existe pas, le protocole IPSEC demande au protocole IKE d en définir une. 34
Le protocole IKE (Internet Key Exchange), définit dans le RFC 4306, ce protocole est chargé de négocier la connexion. Avant qu une transmission IPSec puisse être possible, IKE est utilisé pour authentifier les deux extrémités du tunnel en échangeant les clés partagées. Le protocole IKE utilise le protocole ISAKMP 4, pour permettre, l échange de clefs, en utilisant la méthode Diffie- Hellman 2.6, pour mettre en place un secret partagé, entre deux hôtes. Composition d une trame La figure suivante résume la composition d une trame IPSec suivant le protocole de sécurité utilisé AH ou ESP. Figure 3.8 Trame IPSEC Nous ne reviendrons pas sur la signification, des éléments composants la trame. 4. Le protocole ISAKMP (Internet Security Association and Key Management Protocol), permet d établir, de négocier, de modifier et de supprimer des associations de sécurités (SA) entre deux parties. 35
3.4 MPLS 3.4.1 Définition Le MultiProtocol Label Switching est comme son nom l indique un protocole de couche 2,5 qui s occupe de commuter des labels. Le protocole MPLS est standardisé dans la rfc3031 5. Il n est pas lié à une technologie de couche 2 particulière, dans ce sens, il est peut être implémenté sur tout type de réseau comme ATM, Frame Relay ou encore Ethernet. Il permet d établir un tunnel privé au sein d un réseau publique non-intègre i.e. Internet. Il est majoritairement utilisé par les FAI 6 pour fournir un réseau privé entre deux sites distants d entreprise. 3.4.2 Terminologie et principe Les VPN basés sur MPLS utilisent une distinction entre le réseau du FAI (P-Network) et ceux du réseau du client (C-Network). Le schéma 3.9 donne la terminologie associé à ces deux protagonistes. Figure 3.9 Terminologie associée au VPN sur MPLS Le réseau du fournisseur d accès internet (P-Network) est continu en terme de topologie tandis que le réseau du client (C-Network) est délimité par un certain nombre de sites. Les matériels qui lient le site du client au P-Network s appellent un Customer Edge Device (CE Router) alors que le premier matériel du P-Network s appelle le Provider Edge Device (PE Device). Il existe deux types de VPN MPLS : 1. VPN orienté connexion : Le PE-Device fournit une liaison louée virtuelle avec le CE-Device. Cette ligne est communément appelée un Circuit Virtuel (CV). 2. VPN sans connexion : Il n est pas nécessaire de créer des circuits virtuels dans ces VPN sauf peut-être entre les routeurs CE et PE. 5. http://www.ietf.org/rfc/rfc3031 6. Fournisseur d Accès Internet 36
VPN orienté connexion Ces VPN offrent un certain nombre d avantages : Le FAI n a pas besoin de comprendre le réseau du client dans le sens où il se contente uniquement de créer des circuits virtuels entre les sites du client. Le FAI ne s occupe pas du routage entre les sites du client, c est à dire qu il laisse le choix du protocole de routage. La figure 3.10 montre la topologie physique alors que la figure 3.11 montre la topologie vue par le client. Figure 3.10 VPN orienté connexion : Topologie physique Figure 3.11 VPN orienté connexion : Point de vue des Customer Edge router VPN sans connexion Ces RPV commutent les trames au travers du réseau du FAI. Cette approche est contraire au paragraphe précédent. Elle permet d être évolutive cependant, elle impose de nombreuses contraintes au client : Le client est obligé d utiliser le protocole de couche 3 fournit par le FAI. Le client doit utiliser des adresses fournis par le FAI de manière à ce que chaque trame atteigne sa destination. 37
La figure 3.13 montre un exemple de propagation d un paquet dans une topologie VPN non-orientée connexion. Figure 3.12 Parcours d un paquet dans un VPN non orienté connexion 3.4.3 Commutation de labels Un label à uniquement une signification entre deux sauts du réseau MPLS. Les informations peuvent être : prochain saut, lien de sortie, encapsulation, etc. La pierre angulaire de MPLS combine la richesse du routage IP et la simplicité de la commutation "par saut" des switch de niveau 2. Étant donné ces deux compétences, les matériels MPLS sont appelés Label Switch Routers (LSR). Le PE-Device a pour rôle d encapsuler le trafic entrant et y appliquer une étiquette. Lorsqu une trame MPLS arrive dans un tel matériel, ce dernier analyse l étiquette entrante qu il permute ensuite avec l étiquette sortante pour enfin être envoyé au saut suivant. Pour cela, le routeur utilise une table de correspondance entre le réseau MPLS et non-mpls. Une telle table est appelée FEC (Forward Equivalence Table). Le paquet est ensuite envoyé vers les P-Device qui constitue le cœur de réseau de l opérateur. Si un paquet sort de l environnement MPLS, ce dernier reprend sa forme originelle c est à dire que toutes les informations MPLS sont substituées. Le chemin emprunté par la trame est appelé Label Switched Path (LSP) et est schématisé sur la figure ci-après. Cette opération de commutation est donc très simple, puisqu il suffit d analyser l étiquette MPLS qui se trouve directement après l en-tête de la trame de 38
Figure 3.13 Le label Switched path (LSP) niveau 2 (Ethernet, VPI / VCI de l ATM, DLCI du Frame Relay...). C est là qu est l avantage de MPLS du moins à ses débuts : Il n est pas utile d extraire les informations du paquet IP et de parcourir l ensemble de la table de routage. Cependant avec la démocratisation du protocole, les tables de routage MPLS (FEC) prennent de l ampleur ce qui rend l argument précédent obsolète. Par contre, la puissance actuelle de MPLS réside dans le fait que le protocole n est pas de bout en bout. En effet, il indique uniquement une façon d encapsuler des données de couche 2.5, c est à dire que pour aller d un point A à un point B, la trame peut à la fois rencontrer de l ATM, du Frame Relay ou encore de l ethernet (couche 2)! 39
3.5 SSL / TLS 3.5.1 Définition Le Secure Socket Layer est un protocole de couche session (niveau 5 du model OSI 1.1). Il n est actuellement plus utilisé car il a relevé de nombreuses failles de sécurité. Transport Layer Security s occupe de le remplacer et est défini dans la rfc2246 7. Par abus de langage, on confond souvent les deux protocoles. SSL/TLS s occupe de créer un tunnel entre un client et un serveur. Il est très utilisé par les navigateurs internet et serveurs web, cela indépendamment du type d application de couche 7 utilisé. Ainsi, le protocole HTTPS l emploi très largement. 3.5.2 Sécurité Le but de TLS est de sécuriser les différentes transactions sur l internet. Dans ce sens, on retrouve différent mécanismes sécuritaires : l authentification (2.2) du serveur, la confidentialité des données via le chiffrement des données (2.3), l intégrité des données qui sot échangés, la possibilité d utiliser des certificats signé par un tiers de confiance (2.5.3). SSL/TLS est très intéressant d un point de vue du modèle OSI car il se place en-dessous de la couche application, de ce fait, le client effectue ses transactions de manière sécuritaire, en toute transparence et très simplement. SSL permet de faire du RPV entre un client et un serveur car il encapsule le trafic. Il faut noter que ce type de VPN ne concurrence pas forcément les autres protocoles comme IPSec mais permet plutôt d être complémentaire. En effet, il pallie aux problèmes récurrents rencontrés dans les entreprises à savoir la configuration des postes pour les utilisateurs nomades. Ceux-ci peuvent très facilement se connecter n importe où sans modification. Dès lors, on parle de VPN Clientless : l utilisation de SSL/TLS sur le protocole HTTPS permet d atteindre les ressources internes de l entreprise très simplement. Enfin, d autres VPN SSL/TLS inspirés de SSH permettent de créer des tunnels. Le logiciel libre OpenVPN implémente ces caractéristiques. Un étude de cas sur ce software est décrite en 4.1. 7. http://tools.ietf.org/html/rfc2246 40
3.5.3 Architecture TLS est divisé en quatre sous-protocoles : 1. Handshake Protocole : Négocie les paramètres cryptographiques nécessaires aux échanges, il est définit ci-dessous (3.5.4), 2. Change Cipher Spec Protocol : Change la stratégie de cryptage, 3. Alarm protocole : Signale les erreurs et les alertes liées au protocole TLS, 4. Record protocol : Assure la communication TLS, il se place entre les protocoles définit ici et la couche 4 transport du modèle OSI. La figure 3.14 expose les quatre sous-protocoles : Figure 3.14 Les quatre sous-protocoles de SSL et TLS 41
3.5.4 Établissement d une session C est le protocole Handshake Protocol qui est en charge de la négociation des paramètres de cryptage qui seront utilisés. Le schéma 3.15 permet d avoir un aperçu de tous les échanges réalisés entre un client et un serveur lors de l établissement d une session TLS. Figure 3.15 Authentification mutuelle entre un client et un serveur lors d une session TLS Message "HELLO_CLIENT" Ce message envoyé par le client contient la version la plus haute que peut utiliser le client, une nonce permettant de signer les prochains messages, un ID de session (0 pour l établissement d une session), une balise CipherSuite décrivant les protocoles que veut utiliser le client par ordre de préférence décroissant et enfin le flag CompressionMethod qui comme précédemment est une suite d algorithme de compression supportés par le client. Message "HELLO_SERVER" Ce message qui est envoyé par le serveur comprend différente balises : Version : La plus haute version de SSL que puisse utiliser le client. Cela répond au paradigme protocolaire "Mutuellement supporté (2.1.2)", 42
La nonce envoyée par le client dans le message 1 : celle-ci assure la fraicheur des messages, Session ID qui indique que la session débute, CipherSuite : Le serveur propose la 1ère méthode qu il connait dans la liste fournit par le client, CompressionMethod : choix de la méthode de compression qui sera utilisée. Le protocole étant pré-établi (2.1.2), le serveur va s authentifier auprès du client via l utilisation d un certificat X.509. Le but de cet échange est de valider l authenticité du serveur auprès du client. Génération des clés Ce message qui est envoyé par le client qui génère de son coté une clé prépartagée qui servira à créer les autres clés. Cette clé qui est chiffrée à l aide de la clé publique (extrait du certificat) est transmise au serveur. À l aide de cette dernière, les deux protagonistes génèrent quatre clés pour la session : 1. "Server write mac secret : utilisée dans la signature des messages du serveur, 2. Client write mac secret : pour les messages du client, 3. Server write key : pour chiffrer les données émises par le serveur, 4. Client write key : pour le client." [19] Message "CLIENT_FINISHED" Ce message (envoyé par le client) est chiffré et signé via les paramètres définis en 3.5.4 permet de communiquer de comme défini. Le paradigme protocolaire "préétabli 2.1.2" est validé à l issue de cette étape. Message Le serveur effectue la même chose. 3.5.5 Inconvénients Le protocole SSL/TLS possède de nombreux avantages mais aussi son lot de défauts : Problèmes liés aux navigateurs : Ils ne vérifient pas automatiquement la validité des certificats (Liste de révocations, restrictions,...), Attaques réseau : L utilisation de spoofing par la création de faux site internet très similaire met en œuvre l ingénierie sociale, Utilisation de clés de chiffrement faibles : L attaque par force brute obtient de bons résultats sur les clés de chiffrement trop faibles. Il faut augmenter l espace de recherche (128 bits minimum) pour pallier à ce problème, Attaque liée à l implémentation des paradigmes cryptographiques sous-jacent au protocole Handshake : La sécurité du protocole est basée sur son élément le plus faible, dans ce sens, il faut réviser TLS dès que de nouvelles failles sont trouvées, HTTPS et les serveurs mandataires : De nombreuses entreprises utilisent des proxys qui visent à filtrer le trafic provenant du l extérieur. Puisqu avec SSL/TLS les données sont cryptées, le proxy devient caduc. 43
Chapitre 4 Étude de cas 4.1 OpenVPN 4.1.1 Définition OpenVPN est comme son nom l indique, un VPN. Il est Opensource et se base sur OpenSSL pour l authentification et l échange de clés. Il permet de créer des VPN de type site-à-site. Pour pouvoir l utiliser, il faut créer un environnement client / serveur. 4.1.2 Présentation de l étude de cas Dans cette étude de cas, nous sommes une PME de 100 salariés spécialisées dans le secteur aéronautique. Quelques salariés sont souvent en déplacement d affaire aux quatre coins du monde (surtout aux USA). Ceux-ci nécessitent souvent d accéder aux ressources intranet de l entreprise. Étant donné la criticité des données hébergées sur nos serveurs, il s avère nécessaire de mettre en place une solution sécuritaire pour leur garantir un accès intègre. Nous sommes mandaté par la direction pour réaliser un tel projet. Le schéma de principe 4.1 permet de mieux comprendre cela. Figure 4.1 Schéma de principe de l étude 44
4.1.3 Mise en place de la solution Coté serveur L OS que nous avons choisi pour cette étude est un Debian 6.0.3 Squeeze. Nous avons suivi une procédure disponible à l adresse suivante : http://openmaniak.com/fr/openvpn_advanced.php#routing. La première étape consiste en la configuration des variables du serveur4.2. Figure 4.2 Configuration des variables du serveur Ensuite, il faut initialiser les variables du serveur OpenVPN 4.3. Figure 4.3 Initialisation des variables d openvpn Ensuite, nous pouvons générer la clé privée et le certificat du CA. OpenVPN se base sur les certificats2.5.3 pour authentifier les clients. Dans cette mesure, il est nécessaire de protéger la clé ca.key : Cette clé va permettre de signer les certificats client. En effet, si cette clé est compromise, toute l infrastructure l est. Il faut aussi configurer les paramètres Diffie-Hellman2.6. Nous créons ensuite les certificats et les clés pour le client4.4. Figure 4.4 Clé et certificat pour le client "Mathieu" Enfin, les utilisateurs du VPN doivent pourvoir accéder à l internet. Dans cette mesure, nous devons configurer le pare-feu Linux "iptables" pour que ce dernier ajoute une règle au script de firewalling4.5. 45
Figure 4.5 Mise en place de l accès internet pour les utilisateurs du VPN Coté client Du coté du client, il faut installer un logiciel de VPN. Pour cette étude nous choisirons Viscosity. Cet outil est complet puisqu il permet de configurer un nombre important d options. La première étape est la configuration de l adresse IP du serveur OpenVPN. La figure4.6 montre cette approche. Figure 4.6 Configuration de l adresse IP du serveur OpenVPN Ensuite, nous intégrons les certificats précédemment générés4.7. Notons que le le client doit tout mettre en œuvre pour assurer la sécurité de ses certificats. Même si l autorité de certification à la possibilité de révoquer les certificats, il est nécessaire de donner uniquement les privilèges à Viscosity pour éviter un surplus de travail des administrateurs en charges. 46
Figure 4.7 Configuration des certificats Viscosity propose une option très intéressante : La redirection du trafic dans le tunnel4.8. Ainsi, il n est pas nécessaire de rediriger le trafic depuis l application. Dans ce sens, Viscosity se place entre la couche application et les couches sous-jacentes. Figure 4.8 Tout le trafic généré est envoyé dans le tunnel VPN Le client est à présent capable de se connecter au serveur VPN. Nous lançons donc la connexion qui réussi4.9. Figure 4.9 Connexion au VPN réussi 47
Pour vérifier que l interface "tun" est disponible, nous lançons notre terminal4.10. Figure 4.10 Terminologie associée au VPN sur MPLS Nous remarquons que le VPN nous a attribué une adresse IP (10.8.0.6). Enfin, nous lançons Wireshark pour vérifier si le trafic est effectivement envoyé dans le tunnel VPN. Nous remarquons que l interface tun0 est utilisée pour router tout le trafic4.11. Figure 4.11 Capture des paquets avec Wireshark 48
Chapitre 5 Maintenir un VPN 5.1 Monitoring Le monitoring conserve une place prépondérante dans le maintien des firewalls. En effet, il nous éclaire sur la santé des matériels composant le VPN, les types d attaque dont il aurait pu être la victime, son bon fonctionnement, également sur les services fournis par le VPN aux utilisateurs en fonction de leur demande. Pour cet usage, l utilisation d un IDS est indispensable. Un IDS 1 surveille le système et signale les évènements sortants du cadre défini par la politique de l entreprise. Ces systèmes dénotent les problèmes dans des journaux de logs. Un fichier de logs reprend par exemple toutes les connexions suspectes qui se sont produites. Ceci garantit l imputabilité, nous pouvons précisément déceler le : qui a fait quoi?, quand?, comment? 5.2 Veille technologique Avant la mise à jour du système, nous devons nous documenter et nous tenir informer des nouvelles avancées dans le domaine qui nous occupe. Quotidiennement, de nouveaux bugs, exploits, failles... sont trouvés pour être exploités. Le maintien des systèmes requiert un travail considérable, très approfondi de la part des administrateurs. Il existe différents moyens de se tenir informer pour maintenir ses propres performances : Les mailing listes ; Les newsgroupes ; Les sites internet ; Les forums professionnels. 1. Intrusion Detection System 49
5.3 Mise à jour du système La mise à jour du système est incontournable. L administrateur est en mode veille technologique permanente, il collecte des informations rapidement et les maîtrise. Il est inutile en effet de patcher à tort et à travers. Quelques règles fondamentales sont à respecter : Ne pas se précipiter pour installer une correction ou une difficulté sauf si la gravité du problème laisse supposer le contraire. Laissons le soin à d autres personnes pour effectuer des tests sur le patch et dressons la liste des nouveaux bugs qui apparaissent ; Ne pas patcher les problèmes qui nous sont inconnus un effet boule de neige s en suivrait avec l apparition de nouveaux problèmes ; Prendre garde à l interdépendance des patchs. En effet, des corrections apportées suite à des problèmes réelles sont parfois dépendantes de corrections antérieures et produisent un effet domino et totalement contradictoire. 50
Conclusion Ce livrable a permis de se plonger au coeur des technologies VPN. Nous avons ainsi pu voir que de nombreux protocoles existent et que ceux-ci ne se cantonnent pas seulement à IPSec. Les mécanismes sécuritaires mises en place sont complexes mais néanmoins très intéressants à étudier. Notons qu en France, nous ne pouvons pas utiliser une clé de chiffrement trop importante : Celles-ci sont limitées à 128 bits pour les particuliers, cependant, les entreprises peuvent faire une demande pour en obtenir une plus forte. Le développement des VPNs est proportionnel à la croissance de l internet. Nous avons vu que ceux-ci sont de plus en plus déployés par les entreprises en quête de sécurité. Malheureusement, les VPNs sont aussi utilisés par les particuliers voir les salariés qui veulent contourner les lois (Hadopi) ou les politiques de l entreprise. De plus, les VPNs ne protègent pas des utilisateurs s en servant. Ils peuvent en effet lire tous les messages transitant dans celui-ci. Des mécanismes garantissant l imputabilité comme la journalisation, ou le monitoring devront être envisagés. 51
Table des figures 1.1 Confrontation du modèle OSI et TCP / IP............ 5 1.2 Fonctionnement d un VPN..................... 6 1.3 VPN d accès............................. 7 1.4 VPN de type Intranet........................ 8 1.5 VPN de type Extranet........................ 9 2.1 Principe général du chiffrage symétrique.............. 13 2.2 Mode CipherFeedback pour le chiffrage............... 14 2.3 Chiffrement dans un système à clé publique............ 15 2.4 Chiffrement dans un système à clé publique............ 15 2.5 Pare-feu en mode applicatif..................... 18 2.6 Échange de clé utilisant le protocole Diffie-Hellman........ 20 2.7 Utilisation de fichier publique pour la gestion des clés publique. 21 2.8 Attaque par usurpation d identité.................. 22 2.9 Certification des clés par un tiers de confiance........... 23 3.1 Structure de trame PPP....................... 26 3.2 Etablissement d une session PPP.................. 27 3.3 Echanges CHAP........................... 28 3.4 Tunnel L2TP............................. 31 3.5 Diagramme de l en-tête authentification.............. 32 3.6 Diagramme d un paquet ESP.................... 33 3.7 Traffic IPSEC............................. 34 3.8 Trame IPSEC............................. 35 3.9 Terminologie associée au VPN sur MPLS............. 36 3.10 VPN orienté connexion : Topologie physique............ 37 3.11 VPN orienté connexion : Point de vue des Customer Edge router 37 3.12 Parcours d un paquet dans un VPN non orienté connexion.... 38 3.13 Le label Switched path (LSP).................... 39 3.14 Les quatre sous-protocoles de SSL et TLS............. 41 3.15 Authentification mutuelle entre un client et un serveur lors d une session TLS.............................. 42 4.1 Schéma de principe de l étude.................... 44 4.2 Configuration des variables du serveur............... 45 4.3 Initialisation des variables d openvpn............... 45 4.4 Clé et certificat pour le client "Mathieu".............. 45 4.5 Mise en place de l accès internet pour les utilisateurs du VPN.. 46 52
4.6 Configuration de l adresse IP du serveur OpenVPN........ 46 4.7 Configuration des certificats..................... 47 4.8 Tout le trafic généré est envoyé dans le tunnel VPN....... 47 4.9 Connexion au VPN réussi...................... 47 4.10 Terminologie associée au VPN sur MPLS............. 48 4.11 Capture des paquets avec Wireshark................ 48 53
Bibliographie [1] JM. Fourcade B. Benduduh : Multiprotocol label switching. [En ligne]. Disponible :http://www.frameip.com/mpls/, 2001. [Consulté le 3 novembre 2011]. [2] Ed. C. Kaufman : Internet key exchange (ikev2) protocol. [En ligne]. Disponible :http://tools.ietf.org/html/rfc4306, 2005. [Consulté le 3 novembre 2011]. [3] Cacoo : Cacoo diagrams. [En ligne]. Disponible :https://cacoo.com/ diagrams/, 2011. [Consulté le 3 novembre 2011]. [4] Cisco : Accessing the wan version 4 : Chapitre 2 (point-to-point protocol). [En ligne]. Disponible :http://www.cisco.com/web/learning/netacad/ index.html, 2010. [Consulté le 4 novembre 2011]. [5] Université de Caen : Les réseaux privés virtuels (vpn). [En ligne]. Disponible :http://users.info.unicaen.fr/~jean/docradis/ VPN-Tunneling.pdf, 2008. [Consulté le 3 novembre 2011]. [6] FrameIP : Le modèle osi. [En ligne]. Disponible :http://www.frameip. com/osi/, 2003. [Consulté le 11 novembre 2011]. [7] FrameIP : Réseaux privés virtuels - vpn. [En ligne]. Disponible :http: //www.frameip.com/vpn/, 2007. [Consulté le 3 novembre 2011]. [8] G. Zorn G. Pall : Microsoft point to point encryption protocol (mppe). [En ligne]. Disponible :http://www.ietf.org/rfc/rfc3078.txt, 2001. [Consulté le 18 novembre 2011]. [9] phd Guy Bégin : Cours uqam, inf8750. [En ligne]. Non disponible, 2007. [Consulté le 3 novembre 2011]. [10] Ibrahim HAJJEH : Sécurité Informatique. Conception et validation d un nouveau protocole pour la sécurisation des échanges. Thèse de doctorat, ENST, 2004. [11] I. Goyret J. Lau, M. Townsley : Layer 2 tunneling protocol - version 3 (l2tp v3). [En ligne]. Disponible :http://tools.ietf.org/html/rfc3931, 2005. [Consulté le 3 novembre 2011]. [12] C. Wolfhugel L. Bloch : Sécurité informatique - Principes et méthode à l usage des DSI, RSSI et administrateurs. Eyrolles, 1996. [13] Ghislaine Labouret : Présentation du protocole ppp. [En ligne]. Disponible :http://www.labouret.net/ppp/, 1998. [Consulté le 3 novembre 2011]. [14] Université Poincaré Bar le Duc : Les vpn. Rapport technique, Université, 2004. 54
[15] OpenManiak : Openvpn avancé. [En ligne]. Disponible :http:// openmaniak.com/fr/openvpn_advanced.php, 2008. [Consulté le 3 novembre 2011]. [16] S.Kent : Ip authentification header. [En ligne]. Disponible :http://www. ietf.org/rfc/rfc4302.txt, 2005. [Consulté le 22 novembre 2011]. [17] S.Kent : Ip encapsulating security payload (esp). [En ligne]. Disponible :http://www.ietf.org/rfc/rfc4303.txt, 2005. [Consulté le 22 novembre 2011]. [18] Patrick Tran : Vpn : Concepts et solutions. [En ligne]. Disponible :http://www710.univ-lyon1.fr/~btouranc/m2sirapp/terapp/ Tran.pdf. [Consulté le 3 novembre 2011]. [19] François VERRY et Sébastien FONTAINE Vincent LIMORTE : Rssl et tls. [En ligne]. Disponible :http://www.authsecu.com/ssl-tls/ssl-tls. php, 2006. [Consulté le 22 novembre 2011]. [20] Wikipedia : Layer 2 tunneling protocol. [En ligne]. Disponible :http:// fr.wikipedia.org/wiki/layer_2_tunneling_protocol, 2011. [Consulté le 3 novembre 2011]. [21] Wikipedia : Multiprotocol label switching. [En ligne]. Disponible :http: //fr.wikipedia.org/wiki/mpls, 2011. [Consulté le 3 novembre 2011]. [22] Wikipedia : Réseau privé virtuel. [En ligne]. Disponible :http: //fr.wikipedia.org/wiki/r%c3%a9seau_priv%c3%a9_virtuel, 2011. [Consulté le 3 novembre 2011]. [23] W.Simpson : Challenge handshake authentification protocol. [En ligne]. Disponible :http://www.ietf.org/rfc/rfc1994.txt, 1996. [Consulté le 3 novembre 2011]. [24] Comment Ça Marche : Vpn - réseaux privés virtuels (rpv). [En ligne]. Disponible :http://www.commentcamarche.net/contents/initiation/ vpn.php3, 2011. [Consulté le 3 novembre 2011]. 55