Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
ETRS 701Sécurité des réseaux
Florent [email protected] Bureau : Chablais 13http://florent.lorne.free.fr
Université de SavoieMaster 1 Télécoms Réseaux
Cours : 9 x 1.5HTD : 3 x 1,5HTP : 18 H + 1 examen
2014-2015
COURS ETRS701 2
Introduction
➢ Définition sécurité : moyens mis en œuvre pour minimiser la vulnérabilité d'un système contre des menaces. Ici on parle de système d'informations au sens large (pas uniquement d'informatique).
➢ Sécurité implique disponibilité.
Les services de sécurité
➢ Confidentialité :– Limiter les accès (mécanisme de contrôle d'accès)– Chiffrer les données
➢ Authentification :– On est sûr que l'entité avec laquelle on dialogue est
bien celle que l'on croit
➢ Intégrité : – On est sûr que le message que l'on reçoit est bien
celui qui a été émis (pas d'altération en cours de route).
➢ La non répudiation : – On ne peut pas nier qu'un événement a eu lieu
(notions d'imputabilité et de tracabilité)
➢ Le contrôle d'accès – Après authentification on donne des permissions aux
utilisateurs sur des ressources.
COURS ETRS701 3
Introduction
Domaines d'application de la sécurité
➢ sécurité physique (ne pas négliger)
➢ sécurité de l'exploitation
➢ sécurité logique
➢ sécurité applicative : méthodologie de développement d'application
➢ sécurité des télécommunications
Aspect Juridique / Obligation légale
➢ Loi informatique et libertés du (1978)
➢ Lois relatives aux contrefaçons et au droit d'auteur (1985)
➢ Loi relative à la fraude informatique (1988)
➢ Gestion Électronique de documents (GED) / Conservation de documents
➢ Signature/certificat et commerce électronique
➢ Chiffrement et limite
➢ Voir : Recommandation n°901 : – Recommandation pour la protection des systèmes
d'information traitant des informations sensibles non classifiees de defense
COURS ETRS701 4
Introduction
Approche méthodologique de la sécurité des SI
➢ La sécurité : pas une réponse purement technique mais aussi réponse méthodologique :
– mise en place de procédures– Faille la plus importante : humain → formation des
utilisateurs
➢ La sécurité repose sur des axes complémentaires– managériaux– techniques– juridiques
COURS ETRS701 5
Le cycle de la sécurité des SI
1. Sécuriser : Sensibiliser/former le personnel, chiffrement, firewall …2. Tester3. Détection et surveillance : fichiers logs / IDS-IPS, analyse de comportement.4. Améliorer
Politique de sécurité (PSSI): pierre angulaire de la sécurité dans l'entreprise. Document d'environ une trentaine de pages renfermant des règles assez concrètes et de niveau opérationnel.- doit déterminer les objets à sécuriser- elle identifie les menaces à prendre en compte- elle définit le périmètre de sécurité- elle spécifie l’ensemble des lois, règlements et pratiques qui régissent la façon de gérer, protéger et diffuser les informations et autres ressources sensibles au sein d’un système spécifique, d’une entité
Plan
Do
Check
Act
Dire ce que l'on va faire
Faire ce que l'on a dit
Vérifier qu'il n'y a pas d'écart entreCe que l'on a fait et ce que l'on devait faire
Entreprendre des actions correctives.
PSSI
Sécuriser
Détecter
Tester Améliorer
COURS ETRS701 6
Introduction Sécurité
➢ Comment élaborer un processus de sécurisation ? Bref aperçu des méthodes existantes :
– méthodes basées sur la notion de bonnes pratiques (best practices) : Clusif, Méhari, EBIOS, ITIL - Information Technology Infrastructure Library
– méthodes basées sur des normes comme BS7799-2, ISO-270001 et ISO 27000.
● Rmq : les normes ISO 27000 et 27001 s'intéressent à la mise en place d'un système de management de la sécurité de l'information (SMSI) : plus générique.
➢ La fonction de (RSSI ou RSI)
➢ Sécurité et disponibilité– La norme ISO 27001 insiste sur les termes :
● Confidentialité● Intégrité● Disponibilité (cours Supervision)
COURS ETRS701 7
Exemple
COURS ETRS701 8
Les menaces
Résultats : Menaces informatiques et risques de sécurité menée en France par la CLUSIF en 2010 et concernant 350 entreprises de plus de 200 employés
COURS ETRS701 9
Les Menaces
➢ Actions de l'environnement d'un système pouvant entraîner des pertes financières.
➢ Menaces relevant de problèmes non spécifiques à l'informatique :
– risques naturels : incendie, foudre, inondation, tempête, – Vols, pertes et ou destruction
d'équipements/sauvegardes, grèves, départ de personnel stratégique ...
➢ Les pannes et les erreurs non intentionnelles : – panne/dysfonctionnement du matériel/logiciel– erreurs d'exploitation : oubli de sauvegarde, écrasement
de fichiers– erreurs de manipulation des informations : erreurs de
saisie, de transmission, d'utilisation– erreurs de conception des applications
➢ Les menaces intentionnelles :– menaces passives : écoute (espionnage
industriel/commercial), détournement des logiciels (copies illicites)
– menaces actives : 2 grands types d'attaques :● accéder au réseau : récupérer des données, avoir un
accès, avoir plus de privilèges● déni de service : endommager ou corrompre le
système. Ralentir, rendre indisponible.
COURS ETRS701 10
Les méthodes utilisées pour les attaques
➢ Lorsqu'un « Hacker » s'est introduit dans un système, il met généralement en place un accès permanent (Backdoors) et efface les traces de son effraction (rootkit).
➢ Ingénierie sociale – Se procurer des informations (login, mot de passe,
matériels/logiciels utilisés) en abusant de la naïveté / confiance de personnes de l'entreprise.
– Attaque le maillon le plus fragile de la sécurité : l'être humain. L'utilisateur piégé hésitera à dire qu'il s'est fait piéger.
– Exemples : ● Phishing (hameçonnage) redirection vers une page
piégée. Banque vous envoie un courrier/mail vous demandant de vous connecter sur le site. Cliquez sur le lien du site pirate imitant à la perfection le site légal. Saisi identifiant/mdp...
● L'attaquant se fait passer pour le Help desk
➢ Recherche de mot de passe– Essais manuels– Essais automatiques (brute force)– Vol de fichiers contenant les mots de passe– Espionnage des mots de passe lors de leurs transit sur
le réseau (écoute passive)– Écoute des saisies claviers : keylogger (logiciel/matériel)
➢ Écoute passive– Sniffer/Analyseur de protocoles (tcpdump, wireshark ...)
● récupérer un grand nombre d'informations avec des protocoles non sécurisés (telnet, ftp, pop ...).
● Nécessite souvent attaque « Man in the midle »
COURS ETRS701 11
Les méthodes utilisées pour les attaques - VIRUS
➢ Virus = sous-catégorie des « malware »
➢ Virus : Code développé dans le but délibéré de se répliquer. Un virus se propage d'ordinateur en ordinateur en se greffant à un programme hôte. Il peut endommager le matériel, les logiciels et les données.
– Estimation : plus de 100 000 virus en 2005, 73 000 000 de « malware » en 2009 :
– Le premier virus date de 1981 à destination des ordinateurs Apple II.
– 1990 : premier antivirus créé par Symantec. Il y avait environ 200 à 500 virus à cette époque,
– En 1991, le premier virus polymorphique, capable de changer son code à chaque infection --> détection plus difficile.
➢ Catégories de virus / malware– Ver (worm) : se propage généralement de manière
autonome; il envoie des copies intégrales (parfois modifiées) de lui-même à travers les réseaux. l'ordinateur.
– Cheval de Troie : programme ou fichier qui semble effectuer une tache mais qui effectue par ailleurs une autre action. Exemple : générateur de numéro de série cachant un logiciel de prise en main à distance
– Rootkit : obtenir et pérenniser un accès de la manière la plus furtive possible
– Keylogger (capture des données saisies)– ...
COURS ETRS701 12
Méthodes attaques : Mac spoofing
Mac spoofing (spoofing=escroquerie, usurpation)
➢ Utilisation dans le cas de restriction d'accès mise en place en fonction de l'@ MAC.
Interception Man in the Middle
➢ Terme générique englobant plusieurs attaques.
Utilisateur Serveur
Pirate
Utilisateur Serveur
Pirate
COURS ETRS701 13
Exemple attaque MiM : Arp spoofing
ARP Spoofing / ARP cache poisonning
➢ En environnement commuté lorsque 2 machines communiquent, une troisième ne peut pas capturer le trafic.
➢ Arp spoofing consiste à usurper une ou plusieurs adresses MAC pour rediriger le trafic d'une machine « victime » vers la machine de l'attaquant
➢ Rappels : protocole ARP
COURS ETRS701 14
Arp spoofing (suite)
➢ L'ARP spoofing consiste pour un pirate à se faire passer pour une machine (la victime) en détournant les paquets ARP de telle sorte que l'association
– @MAC-victime, @IP -victime devienne............
➢ Deux/trois façons de faire : – lors d'une requête ARP, le pirate répond avant la victime – Le pirate peut également émettre une réponse ARP sans
qu'il y ait eu de requête ARP. La réponse ARP contient : @MAC-SCE = @MAC-pirate @IP-SCE=@IP-victime
– Le pirate remplit le cache ARP en exploitant le fait que lorsqu'une machine reçoit une requête ARP, elle stocke immédiatement la correspondance @MAC-SCE <--> @IP-SCE contenue dans la requête pour pouvoir y répondre.
➢ Exemple : pirate veut capturer le trafic de A vers B
A B
PirateEnvoie d'une réponse ARP contenant :
COURS ETRS701 15
ARP spoofing (suite)
➢ Maintenant lorsque A envoie une trame à B, il met comme @MAC-DEST : @MAC-Pirate. Le switch retransmet la trame à pirate.
➢ Pirate peut donc voir la trame et éventuellement la modifier. Pour que l'attaque se fasse de manière transparente Pirate a mis en place un processus pour rediriger la trame à Serveur.
➢ Il faut envoyer périodiquement des paquets ARP truqués pour maintenir la correspondance fausse dans le cache ARP.
➢ Outils : arp-sk, arpspoof, ettercap …
➢ Parades : – segmenter le réseau en sous-réseaux– Arpwatch– Cisco : Dynamic ARP Inspection
COURS ETRS701 16
Attaques : ip spoofing / tcp hijacking
➢ IP Spoofing : Usurpation d'adresse IP (se faire passer pour quelqu'un d'autre).Ce type d'attaque a peu d'intérêt à être mis en œuvre de manière seule. Elle est surtout utilisée conjointement avec un autre type d'attaque :
– Deni de Service pour éviter de se faire repérer– TCP Spoofing
TCP hijacking / tcp spoofing / vols de session TCP
➢ Attaques très proches de l'IP spoofing.
➢ Deux exemples d'attaques vont être détaillés.
➢ Rappels session TCP :
A B
COURS ETRS701 17
Attaques – TCP Spoofing-Hijacking
➢ Ainsi les seuls identifiants d'une connexion TCP sont les numéros de séquence et les numéros d'ack.
➢ Une machine accepte un segment lorsque le numéro de séquence de ce segment est égal au n° d'acquittement du dernier segment reçu.
➢ Que peut faire un « pirate » ?
➢ Pour générer un faux segment, la seule chose que doit faire un intrus est de trouver les bon numéros de séquence et d'ACK.
➢ Facile avec un sniffer si il est sur le même segment réseau. Beaucoup plus difficile si il est sur un segment différent.
A B Pirate
COURS ETRS701 18
Attaques – TCP Spoofing-Hijacking
Exemple : Attaque de Kevin Mitnick
➢ Certains protocoles développés au début d'Internet reposaient sur le principe d'hôte de confiance : un fichier contient la liste des adresses IP des machines de confiance qui ne nécessitent pas d'authentification. C'est le cas du protocole rsh (remote shell) qui a dans son fichier rhosts les @IP des machines auxquelles il fait confiance.
➢ Kevin Mitnick s'attaque à la machine personnelle « Osiris » de Tsutomu Shimomura (expert en sécurité informatique).
➢ L'attaque va se dérouler en 3 phases :– Kevin va d'abord se livrer à une collecte d'informations
sur le réseau du bureau de Tsutomu. Il identifie que :● Une session Telnet est en cours entre Osiris et la
machine Ariel située sur le réseau du bureau.● La machine Ariel doit « faire confiance » à la machine
Rimmon.
➢ Schéma de la configuration :
OsirisAriel Rimmon
Mitnick
Bureau
Maison
Telnet
COURS ETRS701 19
Attaque de Kevin Mitnick (suite)
➢ Dans un 2ème temps Kevin lance une attaque TCP spoofing sur la machine Ariel. C'est à dire qu'il va essayer d'ouvrir une session sur Ariel en se faisant passer pour Rimmon
➢ 2 problèmes se posent : – A la réception du paquet SYN d'ouverture de session,
Ariel répond par un SYN-ACK, Rimmon reçoit l'ACK et renvoie un RST. ==> nécessité de « désactiver » rimmon : DoS.
– Mitnick ne voie pas le SYN-ACK émis par Ariel, il ne sait donc pas le numéro de séquence choisi par ce dernier. Il faut qu'il le devine. Heureusement pour Kévin les développeurs de la pile TCP de Ariel n'ont pas respecté la norme (génération aléatoire des numéros de séquence). Après plusieurs essais il trouve ISN
i+1=ISN
i+128000
OsirisAriel Rimmon
Mitnick
Bureau
Maison
Telnet
Tentative d'ouverture de session rsh en envoyant des paquets IP ayant pour adresse IP source : @IP Rimmon.
COURS ETRS701 20
Attaque de Kevin Mitnick (suite)
➢ Kevin lance son attaque. Il ouvre une session rsh sur Ariel en se faisant passer pour Rimmon et envoie la commande rsh : echo ++ >> /.rhosts (++ Allows any user from any host) qui autorise Ariel à faire confiance à tout le monde.
➢ Kevin se connecte ensuite sur Ariel en tant que root, installe un module tap qui lui permet de détourner la session telnet en cours entre Osiris et Ariel. Il a maintenant accès à l'ordinateur personnel de Tsutomu.
COURS ETRS701 21
DNS ID Spoofing – DNS Cache Poisonning
➢ Rappels : fonctionnement du DNS.
COURS ETRS701 22
DNS spoofing
➢ En tête DNS
➢ Identifier une requête : numéro sur 16 bits
➢ Principe de l'attaque
➢ Difficulté pour le pirate : – Deviner le n° ID. Mais 16 bits.
➢ Pb : 16 bits trop petit. Pour empêcher l'attaque utilisation d'un numéro de port source aléatoire.
Alice : pirate Serveur dns cible : A
Serveur dnsmabanque.fr
rqt DNS : www.mabanque.fr ?1
1 DoS serveur2
DNS : www.mabanque.fr A @Pirate3
www.mabanque.fr ?2
4Id
rep=Id
rqt
Mise en cache
Client5
www.mabanque.fr
?
6www.m
abanque.fr A @
Pirate
COURS ETRS701 23
Dénis de service
➢ Attaques par déni de service (Denial of Service) : rendre indisponible (inutilisable ou ralentir).
➢ Cet arrêt peut également s’accompagner d’une destruction de données. Le déni de service peut être obtenu de plusieurs façons :
– En surchargeant le réseau– En exploitant les failles de protocoles réseau, – En exploitant des failles logicielles de services de la
couche application.
➢ Variante plus redoutable : déni de service distribué (Distributed Denial of Service ou DdoS). Attaque menée simultanément, depuis plusieurs machines (corrompues) contrôlées en général par une seule personne.
➢ Dénis protocolaires :– SYN flooding (ouverture de connexions)– Ping of Death : envoie d'un paquet dont la taille est
supérieure à 65535 (bien sûr le paquet est fragmenté)– Smurfing (envoie de paquet ICMP Echo Reply en
broadcast avec comme @IP sce, l'adresse IP de la victime).
– Dénis de service de niveau 2 : ARP, l'attaquant se fait passer pour la passerelle par défaut et supprime tous les paquets.
COURS ETRS701 24
Failles applicatives / Buffer overflow
➢ Attaques utilisant la négligence/manque de rigueur lors du développement.
➢ Généralement exploitation d’une faille → injecter son propre code dans un système afin que celui-ci exécute des instructions pour ouvrir un accès. On nomme ce type de programme exploit ou shellcode (ouverture d’un shell).
Rappels : Fonctionnement de l'exécution d'un programme.
➢ L'espace mémoire (RAM) d'un processus est divisé 2 grandes parties :
– La partie contenant le code de l’application (instructions). – La partie contenant les données, subdivisée en
différentes catégories : ● Le tas (ou heap) : partie contenant les variables
globales et les variables dynamiques. Ex variables allouées via un malloc.
● La pile (stack) : partie contenant les variables locales (taille connue et n'ayant d'existence qu'au sein d'une procédure/fonction). Zone utilisée également pour stocker les paramètres lors d’un appel de fonction.
➢ La pile est de type LIFO (Last In First Out)– La pile fonctionne avec un registre : ESP Extended Stack
Pointer : pointeur de pile : contient l'adresse du sommet de la pile : dernier élément ajouté dans la pile
– Pour empiler : PUSH.– Pour dépiler : POP.
COURS ETRS701 25
Fonctionnement de l'exécution d'un programme
➢ Quand vous empilez ou dépilez, la mémoire n'est pas déplacée . On décrémente/incrémente tout simplement ESP.
➢ Pile : mémoire à court terme.
➢ Lors de l'appel d'une fonction, le programme place les arguments de cette fonction sur la pile, puis le programme inscrit l'adresse de l'instruction qu'il faudra exécuter lorsque la fonction sera terminée (prochaine instruction dans le programme principal).
➢ Pour comprendre le principe des buffer overflow on a également besoin de connaître le rôle des registres suivants :
– EIP : instruction pointer : registre qui contient l'adresse de la prochaine instruction à exécuter
– EBP : pointeur de base : le pointeur ESP est sans cesse entrain de varier, or les variables étant stockées dans la pile, il est souhaitable de sauvegarder à quel endroit elles ont été stockées. On enregistre ainsi dans EBP l'adresse du début de la pile de l'environnement de la fonction courante. Les variables sont ensuite repérées par rapport à EBP.
COURS ETRS701 26
Analyse de l'appel d'une fonction
Augmentation des adresses mémoires
Diminution des adresses mémoires
Pointeur de pile
Etat initial
Appel d'une fonction
On place les arguments de la fonction dans la pile
Augmentation des adresses mémoires
Diminution des adresses mémoires
Pointeur de pile Arguments de la fonction
On sauvegarde l'adresse de retour
Augmentation des adresses mémoires
Diminution des adresses mémoires
Pointeur de pile
Arguments de la fonction
Adresse de retour
COURS ETRS701 27
Analyse de l'appel d'une fonction
On sauvegarde l'environnement de la fonction appelante
Augmentation des adresses mémoires
Diminution des adresses mémoires
Pointeur de pile
Arguments de la fonction
Adresse de retour
La fonction est en cours d'exécution
EBP
Augmentation des adresses mémoires
Diminution des adresses mémoires
Arguments de la fonction
Adresse de retour
EBP
La fonction appelée utilise la pile pour stocker ses variables locales
Pointeur de pile
Variables locales
COURS ETRS701 28
Exemple Buffer Overflow
➢ Lors de l'instruction strcpy, la taille de buffer ne va pas être assez grande pour contenir « ABCDEFGHWWWWZZZZ...ShellCode@SchellCode ». Que va-t-il se passer ?
COURS ETRS701 29
Exemple Buffer Overflow (suite)
Augmentation des adresses mémoires
Diminution des adresses mémoires
Arguments de la fonction
Adresse de retour
EBP
La taille réservée pour les variables locales n'est pas suffisante
Pointeur de pile
Variables localesChaîne en entrée plus longue. L'écriture écrase l'@ de retour.
Augmentation des adresses mémoires
Diminution des adresses mémoires
Arguments de la fonction
Adresse de retour
EBP
Pointeur de pile
Variables locales L'agresseur fait pointer l'adresse de retour vers du code qu'il vient de placer.
L'agresseur peut ajuster l'emplacement dans la chaîne saisie de telle sorte que la nouvelle adresse de retour pointe vers du code qu'il a placé dans la pile.
COURS ETRS701 30
Exercice Buffer Overflow
➢ Donner une représentation simplifiée de la pile pour le programme étudié en exemple. On se place juste avant l'appel de la fonction strcpy.
Pour aller plus loin voir les articles : « Smashing the stack for Fun and Profit » (www.phrack.org)www-igm.univ-mlv.fr/~dr/XPOSE2002/FleuryOverflowing the stack on linux x86
COURS ETRS701 31
Les attaques (suite)
➢ Heap overflow– Variante qui s’attaque au tas (opposé de la pile) dans le
code d’un programme. Ces attaques sont menées sur les zones mémoires allouées dynamiquement. Ces failles sont plus difficilement exploitables et demandent une recherche plus en profondeur pour les attaquants.
➢ Mail– Mail anonymes (sans l'en-tête From:)– Spamming (tout courrier reçu de manière non sollicitée)– Collecte d'adresse Mail– Vecteur de propagation de virus– Phishing
➢ Applications Web– Interprétation des URL : modifications des paramètres
utilisés dans les URL (Uniform ressource Locator).● URL : http|https://hôte[:port]
[/dbn]/nom_service[paramètres][?requête]– Possibilités de faiblesses :
● remplacer https par http● naviguer dans l'arborescence : utilisation de /../ ou /////● visualiser le contenu d'un dossier● modification des paramètres :
http://www.serveurweb.fr/cgi/getsize.cgi?fichier=page.htm remplacer par http://www.serveurweb.fr/cgi/getsize.cgi?fichier=* permet d'afficher la liste des fichiers contenu dans le dossier cgi.
COURS ETRS701 32
Les attaques - Injection SQL
➢ Considérons un formulaire d'authentification pour accéder à une application WEB.
<html><head><title> Page d'authentification </title></head><body><a2>Veuillez vous authentifier : </a2> <p><form method="post" action="traitement.php"><label for="nom"> Entrez votre nom : </label><input type="text" name="nom" /> <P><label for="password"> Entrez votre mdp : </label> <input type="password" name="password" /><br><br><input type="submit" name="envoie" value="envoyer votre demande" />
</form>
</body></html>
➢ Les comptes d'utilisateurs sont stockés dans une base de données. Pour valider l'identité de l'utilisateur on vérifie qu'il existe dans la base de données une entrée possédant le nom d'utilisateur associé avec le mot de passe fourni.
COURS ETRS701 33
Les attaques - Injection SQL
➢ Extrait du code de la page de traitement$sql = 'SELECT * FROM utilisateurs WHERE nom=\''.$nom.'\' AND password=\''.md5($password).'\';' ;…$query = mysql_query($sql) or die( 'Erreur requête' );$nb = mysql_num_rows($query);…if ($nb==1) {echo "<br> Authentification réussie. <BR> Bienvenue $nom";}else{echo "<br><br>Echec de l'authentification";}
➢ Requête exécutée « normalement » :SELECT * FROM utilisateurs WHERE nom='florent' AND password='b2ff8e48c14343ca3f5'
➢ Attaque :
➢ Requête exécutée :SELECT * FROM utilisateurs WHERE nom='florent' OR 1=1 –'' AND password='b2ff8e48c14343ca3f5'
➢ Requête toujours vrai : authentification toujours réussie.
COURS ETRS701 34
Les attaques - XSS : Cross Site Scripting
➢ Solution injection SQL : utilisation de fonctions d'échappement :
$sql = 'SELECT * FROM utilisateurs WHERE nom=\''.mysql_real_escape_string ($nom).'\' AND password=\''.md5($password).'\';' ;
XSS – Cross Site Scripting
➢ XSS : injection de données arbitraires dans un site web.
➢ Exemple. Considérons le code suivant : <body><?phpif (isset($_GET['UserInput'])) {$out= 'vous avez saisi : "'.$_GET['UserInput'].'".';} else {$out='<form method="GET">Saisissez quelque chose ici : ';$out.= '<input name="UserInput" size="50">';$out.='<input type="submit">';$out.='</form>';}print $out;?></body>
Résultat affiché
COURS ETRS701 35
Les attaques -XSS
➢ Faiblesse
➢ Exécution d'un script chez le client
COURS ETRS701 36
Les parades
Sécurisez votre environnement physique
➢ Sécurisez vos salles– Système alarme incendie– Penser aux dégâts des eaux– Limiter les accès aux salles serveurs et aux locaux
techniques
➢ Protégez vos sauvegardes– Politique/plan de sauvegarde :
● Qui s'occupe des sauvegardes ?● Que doit-on sauvegarder ?● Que faire en cas de sinistre ?● Quand sauvegarder ?● Où range-t-on les sauvegardes ?
➢ Sécurisez vos alimentations électriques.
Protégez les accès aux données
➢ Choisissez un bon mot de passe :– pas de mot de passe de moins de 7 caractères– n'écrivez jamais vos mots de passe– pas de mot de passe qui vous sont proches (votre
prénom, celui de votre femme ...)– alternez majuscules/minuscules, utilisez des chiffres et
des caractères spéciaux.– changez régulièrement de mot de passe– utilisez une méthode pour créer vos mots de passe
(phrase clé, mixage ...)– les mots de passe doivent être stockés en version
chiffrée (md5)
COURS ETRS701 37
Les parades. Protégez les accès aux données .
– Authentification forte : possibilité d'utiliser des mots de passe jetable (otp-one time password). Même si le mot de passe est dérobé, il n'est pas réutilisable. Principe : un token/jeton (type clé usb) est fourni à l'utilisateur. CE jeton génère un code d'identification à intervalle régulier. Ce code est généré à partir d'une graine (seed) initiale. Cette graine est également connue du serveur d'authentification et associée à l'utilisateur.
Imposez une stratégie de mots de passe compliquée mais sans faire de zèle
➢ Verrouillez vos postes
➢ Protégez vos données des accès locaux et partagés– Système de gestion de fichiers :
● Windows (NTFS) Linux (ext2, ext3 …) permettent de restreindre l'accès au contenu des fichiers locaux et distants.
● Permission Unix peu performantes, préférez les ACL (getfacl, setfacl)
Pour s'identifier l'utilisateur fournit le code affiché par le token et un code PIN.
COURS ETRS701 38
Les parades - Antivirus
➢ On distingue 5 grandes catégories de technologie de lutte contre les virus connus et inconnus :
– Signatures, ou pattern matching : recherche de chaînes d'octets caractéristiques du virus. C'est le moyen le plus simple pour détecter un virus. Toutefois si l'antivirus n'a pas la signature il le laisse passer.
– Analyse heuristique : concerne la recherche de code correspondant à des fonctions virales. Un analyseur heuristique va donc rechercher du code dont l'action est suspecte s'il vient à être exécuté
– Analyse comportementale : Analyse dynamique des opérations de lecture/écriture en mémoire ou sur le disque dur qui s'appuie sur des signatures de description de comportement. (Ecriture d'un fichier à un emplacement spécifique, modification de la base de registre ...)
– Contrôle d'intégrité : s'appuie sur des algorithmes de hachage pour vérifier que des données n'ont pas été modifiées.
– Bac à sable (sandbox) : Le code malveillant s'exécute dans un environnement confiné.
➢ Critères de choix d'un dispositif de lutte contre les virus :– La solution antivirus est-elle complète (passerelle, poste
client, pda ...) et pérenne ? Mes choix seront-ils valables dans trois ans ?
– Dois-je avoir plusieurs éditeurs en fonction des systèmes d'exploitation de mes hôtes ?
– Degré de réactivité des éditeurs ?– Facilité d'installation, de déploiement et d'administration.– Support technique des éditeurs– Qualité du produit. Tests de laboratoires.
COURS ETRS701 39
Les parades – Antivirus – Firewall Pare-feu
➢ Conseils :– Installation et mise à jour sur les postes de travail mais
aussi sur les serveurs, surtout les serveurs de messagerie.
● Possibilité d'utiliser des passerelles/appliance de filtrage.
Firewall – Pare-feu
➢ Définition : pare-feu : composant ou ensemble de composants restreignant l'accès entre un réseau externe (généralement Internet) et un réseau interne (dit réseau de confiance) ou d'autres ensembles de réseaux. Un pare-feu a au moins deux interfaces réseaux.
➢ Filtrage des paquets entrant/sortant du réseau interne en fonction de règles définies par l'administrateur.
➢ Les pare-feu se retrouvent au sein des routeurs, des systèmes d'exploitation ou au travers de logiciels dédiés, insérés ou non dans des boîtiers, ou appliance.
➢ Rmq : il existe également des pare-feu « personnels »– fonctionnent directement sur les postes des utilisateurs – filtrent uniquement les accès entrant ou sortant de la
machine. – peuvent avoir une administration centralisée
Réseau interneAB
Réseaupublic
Entreprise
COURS ETRS701 40
Pare-feu Firewall
➢ Différents types de pare-feu :– Un pare-feu opère par filtrage. Suivant le type de pare-
feu utilisé, on peut filtrer uniquement en fonction des en-têtes TCP/UDP et IP ou inclure également la partie (DATA). Les différents type de pare-feu sont présentés dans l'ordre chronologique de leur apparition.
Le filtrage statique
➢ Paquets filtrés indépendamment les uns des autres. Ne tient pas compte des paquets ayant déjà transité. Ne peut pas suivre des sessions.
➢ Rappels: paquets échangés lors d'une connexion http.
Pour autoriser les connexions à Internet à partir du réseau privé, l'administrateur devra accepter
– les connexions TCP sortante ayant comme port dest 80– les connexions TCP provenant d'Internet avec un port
src =80 et un port dest supérieur à 1024 et dont l'ACK vaut 1.
A BRéseau interne
COURS ETRS701 41
Pare-feu / firewall
➢ Règles à mettre en place pour autoriser le service HTTP :
➢ Les règles de filtrage statiques sont complexes à spécifier et très limitées. Si un pirate forge un paquet avec un port source=80 et un port dest supérieur à 1024, même si il n'y a pas eu préalablement d'ouverture de connexion depuis le réseau interne, le paquet sera autorisé.
➢ Filtrage statique actuellement utiliser pour interdire/bloquer des paquets :
– Exemple : bloquer tous les paquets venant de l'extérieur avec une adresse IP source appartenant au réseau interne.
Dire Src.Addr Dest.Addr Prot SourcePort Dest.Port
ACKSet Notes
COURS ETRS701 42
Pare-feu / Firewall
Proxy
➢ Rompent le modèle client-serveur d'une communication. L'application cliente se connecte au proxy et non pas au serveur qu'elle veut joindre.
Proxy
Réseau interneRéseau externe
AB
Application
Transport
Réseau
LiaisonPhysique
SessionPrésentation
AProxyB
HTTP GET
HTTP GET
HTTP RespHTTP Resp
COURS ETRS701 43
Firewall / Pare-feu
➢ Les proxy applicatifs– proxy applicatifs --> niveau 7 (application). La charge
utile est analysée.
➢ Exemple: proxy http règles de filtrage en fonction de :– l'url, du contenu des pages web, de la présence ou non
de contrôle active-x, désactiver le téléchargement de fichier compressé.
➢ Avantages : détecter plus facilement le tunneling, fonctionner en cache.
➢ Inconvénients des proxy applicatif : nécessité de :– développer un proxy par type d'application– développer le client de telle sorte qu'on puisse lui
indiquer de passer par un proxy.
Proxy socks – Proxy de type circuit
Socks
Réseau interneRéseau externe
A
B
Client socks
Serveur socks
App : socks
Transport
Réseau
....
Applicationcliente
ApplicationServeur
1
223
4 5
COURS ETRS701 44
Proxy – Socks (suite)
➢ Donner l'adresse IP du client, du serveur socks et du serveur final.
➢ Nécessité à l'origine de « socksifier » les applications. Actuellement les logiciels clients socks manipulent les tables de routage de l'OS de façon à ce que tous les paquets transitent par eux.
➢ Utilisés pour Anonymat.
COURS ETRS701 45
Filtrage « dynamique » Firewall statefull
➢ Les paquets sont filtrés en tenant compte des paquets qui ont déjà transité.
➢ Le firewall maintient une table des connexions contenant :– Adresses ip source et destinataire– Protocoles– Ports sources et destinataires– Etat des flags TCP– Le nombre d'octets qui ont déjà transités avec les
mêmes paramètres
➢ Table des connexions : synthèse de tous les paquets qui sont déjà passés.
➢ Exemple de suivi– Envoie d'un paquet TCP « New » à destination du port
80.tcp 6 119 SYN_SENTsrc=140.208.5.62 dst=207.46.230.218 sport=1311 dport=80 [UNREPLIED] src=207.46.230.218 dst=140.208.5.62 sport=80 dport=1311 use=1
– On attend maintenant que le SYN-ACK revienne tcp 6 57 SYN_RECVsrc=140.208.5.62 dst=207.46.230.218 sport=1311 dport=80 src=207.46.230.218 dst=140.208.5.62 sport=80 dport=1311 use=1
– Le SYN ACK a été reçu. On attend que la machine ayant initié la connexion renvoie l'ACK.
tcp 6 431995 ESTABLISHEDsrc=140.208.5.62 dst=207.46.230.218 sport=1311 dport=80 src=207.46.230.218 dst=140.208.5.62 sport=80 dport=1311 [ASSURED] use=1
COURS ETRS701 46
Firewall statefull
➢ Lorsqu'un firewall reçoit un paquet il peut vérifier sa légitimité en fonction de la table de connexions.
– Un paquet avec ACK=1 sera refusé si une connexion TCP n'a pas été précédemment ouverte.
➢ De manière générale :– les connexions du réseau interne vers le réseau externe
sont autorisées– les paquets venant du réseau externe vers le réseau
interne sont autorisés si ils sont en adéquation avec la table de suivi des connexions.
Les pare-feu statefull faisant de l'analyse applicative
➢ Ces pare-feu permettent d'analyser le contenu de la couche applicative à la recherche d'éventuelles menaces. Exemple :
– Interdiction de transporter des fichiers exécutables/zip lors d'échange http.
– Interdiction de faire du tunneling http ou DNS– Filtrage d'url– Analyse des mails à la recherche de virus– ...– Voir Inspection engine Cisco
➢ Nécessite une puissance de calcul suffisante si on ne veut pas introduire de la latence.
COURS ETRS701 47
Pare-feu et translations d'adresses
➢ C'est au sein des pare-feu stateful que le processus de translation d'adresses doit être configuré.
➢ Translation d'adresses : masque le réseau interne.
Rappels – Nécessité de la NAT (Network Address Translation) :
pénurie d'adresses.– Remarque : les termes NAT et PAT (Port Address
Translation) sont parfois confondus. On parle aussi pour le PAT de NAT overloaded.
➢ NAT : translation d'adresses réseaux :
➢ 1 @IP publique/globale ↔ 1 @IP privée/interne/locale
Internet
@IP privées
@IP privées
10.0.1.0/24
.1 .2 .3
@IP globales
192.9.200.1
Sce : 10.0.1.1Dest : 192.9.200.1
Sce : 80.38.5.33Dest : 192.9.200.1
RouteurNAT
Plusieurs @IP globales données par le FAI : exemple 80.38.5.32/28
@Internes@Externes
10.0.1.1 80.38.5.33
...
COURS ETRS701 48
Pare-Feu - Translation d'adresses - PAT
➢ Une seule @IP publique, donner l’accès à Internet à plusieurs milliers de machines simultanément.
➢ Exemple
➢ Un utilisateur sur poste 1 veut accéder à un site Internet (192.9.200.1). Le browser génère une rqt http en choisissant un port source supérieur à 1024 (ici 1035). Cette rqt est encapsulée dans un paquet qui est envoyé à R1 (passerelle par défaut).
10.0.1.0/24
.1 .2 .3 .4 .10
1 seule @ IP publique allouée au routeur. Ex : 201.1.6.35 / 32
R1
192.9.200.1
10.0.1.0/24
.1 .2 .3 .4 .10
201.1.6.35 / 32
R1
192.9.200.1
Sce : 1035/ 10.0.1.1Dest : 80/ 192.9.200.1
Sce : 1035/ 201.1.6.35Dest : 80/ 192.9.200.1
Adresses
10.0.1.1 1035 201.1.6.35 1035
...
Port Adresses PortInterne Externe
COURS ETRS701 49
Pare-Feu - Translation d'adresses - PAT
➢ Poste 3 veut accéder au même serveur. Il émet une rqt ayant, par pur hasard, comme port source 1035. R1 reçoit le paquet, translate le port et réémet le paquet avec la nouvelle adresse IP source.
➢ Lorsque le routeur reçoit les réponses, il les fait parvenir au bon destinataire en regardant le port destination des paquets.
10.0.1.0/24
.1 .2 .3 .4 .10
201.1.6.35 / 32
R1
192.9.200.1
Sce : 1035/ 10.0.1.1Dest : 80/ 192.9.200.1
Sce : 1035/ 201.1.6.35Dest : 80/ 192.9.200.1
Adresses
10.0.1.1 1035 201.1.6.35 103510.0.1.3 1035 201.6.35 1036...
Sce : 1035/ 10.0.1.3Dest : 80/ 192.9.200.1
Sce : 1036/ 201.1.6.35Dest : 80/ 192.9.200.1
Sce : 80/ 192.9.200.1Dest : 1035/ 201.1.6.35
Sce : 80/ 192.9.200.1Dest : 1035/ 201.1.6.35
Sce : 80/ 192.9.200.1Dest : 1036/ 201.1.6.35
Sce : 80/ 192.9.200.1Dest : 1035/ 10.0.1.3
Port Adresses PortInterne Externe
COURS ETRS701 50
Architectures de pare-feu
➢ Par défaut un pare-feu :– autorise tout le trafic du réseau de confiance à
destination du réseau Internet.– bloque tout le trafic d'Internet à destination du réseau
interne
➢ Il faut filtrer également le trafic sortant pour empêcher :● les utilisateurs d'accéder à certaines applications.● des fuites d'informations (malware se connectant à un
serveur)
Réseaupublic
Réseau interne
@ IP publique215.6.87.54
@ IP privée192.168.0.254192.168.0.253
Routeur NAT
Firewall PAT
@ IP privée172.16.56.254
Réseaupublic
Réseau interne
@ IP publique215.6.87.54
Firewall PAT
@ IP privée172.16.56.254
Configuration 1 : routeur et pare-feu
Configuration 2 : pare-feu seul
COURS ETRS701 51
Architectures de pare-feu (DMZ)
➢ Malheureusement les choses ne sont pas si simples : – une entreprise a parfois besoin de fournir des services à
l'extérieur. PB si un pirate compromet un des serveurs « publics » il peut rebondir pour accéder aux autres serveurs.
➢ Solution : DMZ– mise en place d'une zone de confiance intermédiaire
aussi appelée DMZ (DeMilitarizedZone) pour les serveurs accessibles depuis l'extérieur
Réseaupublic
Réseau interne
Firewall PAT
ServeurWeb entreprise
Serveurinterne
Réseaupublic
Réseau interne
Firewall 2
Serveurs accessibles depuis l'extérieur (dns, http, smtp ...)
Serveurinterne
Firewall 1DMZ
Pirates
COURS ETRS701 52
Architectures de pare-feu (DMZ)
➢ Autre architecture : un seul pare-feu avec un port DMZ
➢ Règles classiques : – Traffic from the external network to the Demilitarized
Zone is autorized– Traffic from the external network to the internal network
is prohibited– Traffic from the internal network to the Demilitarized
Zone is autorized– Traffic from the internal network to the external network
is authorised– Traffic from the DMZ to the internal network is prohibited– Traffic from the DMZ to the external network is denied. A
ouvrir au cas par cas.
Réseaupublic
Réseau interne
Serveurinterne
Firewall
DMZServeurs
accessibles depuis l'extérieur
COURS ETRS701 53
Architectures de pare-feu (DMZ)
➢ Il n'est à priori pas nécessaire de mettre en place un dispositif de translation d'adresses entre la DMZ et le réseau interne, mais c'est fortement recommandé.
➢ De manière générale : lorsque des paquets circulent d'un réseau R1(niveau de confiance n1) vers un un réseau R2 (niveau de confiance n2) avec n2<n1 ==> les paquets sortant de n1 doivent voire leur adresse translatée.
➢ Dessiner le schéma de la page précédente et proposer des adresses pour les différents réseaux.
COURS ETRS701 54
Architectures de pare-feu (DMZ)
➢ Architecture plus sécurisée et plus facile à gérer
– Le trafic venant de l'extérieur passe par 2 pare-feu.– Le pare-feu externe est « facile » à configurer, maintenir
et dépanner.– On peut superviser et administrer (gestion et
sauvegarde) facilement les serveurs dans la DMZ.
➢ Architecture à deux DMZ
Réseaupublic
Réseau interneFirewallinterne
Serveurinterne
Firewall externe
DMZ
Réseaupublic
Réseau interneFirewallinterne
Serveurinterne
Firewall externe
DMZ-Interne
DMZ-Externe
Reverse-ProxyDNS Public
Serveur Web Public
COURS ETRS701 55
Pare-feu et tunneling
➢ Pare-feu utilisé pour : protéger le réseau interne de l'extérieur et empêcher les fuites de données ou l'utilisation de certaines applications par les usagers du réseau interne. Ex : on ne laisse ouvert que les ports destination 80, 22 et 443.
➢ Mais risque de contournement via tunneling !
➢ Principe général du tunneling : transporter un protocole DANS un autre protocole.
➢ Exemple Tunneling niveau 3 (IPv4 dans IPv6)
Réseau Protocole IPv6
Réseau Protocole IPv4
Réseau Protocole IPv4
AB
R1 R2
SrcA
DestB
Data
SrcA
DestB
DataSrcR1
DestR2
SrcA
DestB
Data
Tunnel ssh, tunnel https.
COURS ETRS701 56
Pare-feu et tunneling
➢ Possibilité pour les usagers internes de contourner les règles du pare-feu (traverser le pare-feu) : tunneling : faire transporter par un protocole une autre charge applicative que celle pour laquelle il a été conçu.
➢ Exemple tunneling : Firewall configuré pour laisser passer que du http (80).
Réseau interne
A
Serveur ICQ, Messenger
Tunnel http
Dessiner le paquet circulant entre A et le domicile du pirate.
Dessiner le paquet circulant entre le domicile du pirate et le serveur ICQ.
Pourquoi un firewall peut détecter facilement ce type de contournement en http mais pas en https ?
COURS ETRS701 57
Pare-feu implémentation
➢ Exemple de règles à mettre en place dans un pare-feu :– Bloquez le trafic entrant si l'@ sce fait partie de la plage
du réseau interne.– Bloquez le trafic sortant si l'@ sce ne fait pas partie de la
plage du réseau interne.– Bloquez le trafic entrant et sortant de type source routing
(champ option)– Bloquez les ping (plus ou moins vrai)
Exemple de pare-feu : netfilter/iptables
➢ Netfilter : implémenté au niveau de la couche réseau du noyau linux → effectue le filtrage.
➢ Iptables : fournit les commandes nécessaires pour la configuration des filtres.
➢ Iptables fournit 4 types de fonctionnalités :– Filtrage statique et dynamique (connection tracking)– NAT– Marquage et manipulation de paquet
➢ Possibilité de développer des modules qui se greffent sur iptables pour de nouvelles fonctionnalités (ftp, sip, limit …)
➢ Cheminement d'un paquet dans iptables
PREROUTING
INPUT OUTPUT
FORWARD POSTROUTING
Paquets routés
Provenance ou dest d'un processus sur la machine locale
ROUTING
COURS ETRS701 58
Pare-feu implémentation
➢ À l’arrivée d’un paquet (après décision de routage) :– Si le paquet est destiné à l’hôte local Alors il traverse la
chaîne INPUT.● Si il n’est pas rejeté Alors il est transmis au processus
impliqué.– Sinon le paquet est destiné à un hôte d’un autre réseau
Alors● il traverse la chaîne FORWARD● Si il n’est pas rejeté Alors il poursuit alors sa route
➢ Tables iptables
➢ Par défaut filtrage statique mais possibilité d'utiliser un module pour faire du filtrage dynamique (-m state).
➢ Translation d'adresses : NAT/PAT – SNAT : Source NAT : 1ère adresse modifiée : Adresse
source des paquets– DNAT : Destination NAT : Adresse Destination des
paquets modifiée
FILTER
INPUTOUTPUTFORWARD
NAT
PREROUTINGPOSTROUTINGOUTPUT
MANGLE
PREROUTINGOUTPUT
Quel type de NAT doit-on mettre en œuvre pour accéder du réseau interne à Internet ? Quelle chaîne est utilisée ?
Quel type de NAT doit-on mettre en œuvre pour accéder du réseau Internet à un serveur interne ? Quelle chaîne est utilisée ?
COURS ETRS701 59
Pare-feu – implémentation iptables
– Rmq : There is a specialized case of Source NAT called masquerading: it should only be used for dynamically-assigned IP addresses, such as standard dialups (for static IP addresses, use SNAT above).
➢ Syntaxe et commande : – -A (append) ajoute une règle à la fin de toutes les règles– -I (insert) insère une règle au début– -D (delete) supprime une règle– -X efface toutes les chaînes– -P définie une politique par défaut– -L (list) liste les règles courantes– -F (flush) efface
Exemples de règles : iptables -A INPUT -s 192.168.75.0/24 -j REJECT // tous les paquets à destination d'un processus sur la machine et ayant comme adresse ip source une adresse ip appartenant à 192.168.75.0/24 sont rejetés.iptables -P INPUT DROP // tous les paquets arrivant à destination de l'hôte sont rejetés (si aucune règle ne convient les paquets seront éliminés)iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 123.12.23.43// fait un équivalent de translation d'adresses par ports
iptables -A FORWARD -i eth0 -o eth1 -m state –state ETABLISHED,RELATED -j ACCEPT // fonctionnement en firewall (filtrage dynamique) entre 2 réseaux.
Le module state a été remplacé dans les dernières implémentations par le module conntrack.
COURS ETRS701 60
Pare-feu iptables exercice
Pare-feus basés sur iptables : Ipcop : distribution linux conçue pour assurer le rôle de pare-feu. Nufw : firewall avec authentification ...
INTERNET
Réseau InterneRéseau interne privé
10.1.0.0/24
DMZ
10.2.0.0/24
Serveurs
eth0 eth1
eth2
Écrire les règles qui permettent :➢ à partir du réseau interne privé d'accéder au service https (port 443) sur Internet➢ à partir du réseau externe d'accéder au service ssh (port 22) sur le serveur 10.2.0.1 de la DMZ
85.6.5.1
COURS ETRS701 61
Pare – feu implémentation routeur ACL
➢ Par défaut : packet filtering
➢ IOS Firewall (type statefull) : présent ds Integrated Services Router (Cisco 1841,Cisco 19xx,29xx,39xx)
– Commande inspect. Cf Context-Based Access Control (CBAC)
➢ Principes : – SI condition_à_vérifier action (2 actions : permit / deny)– rejet implicite à la fin de l'ACL– Une fois définie l'ACL doit être appliquée à une interface
en entrée in ou en sortie out : ip access-group in/out– L'ordre de rédaction des ACL compte
Est-ce que le paquet est transmis ?
Est-ce que le paquet passe si on inverse l'item 3 et l'item 4 ?
COURS ETRS701 62
Pare – feu implémentation routeur ACL
➢ Identification des listes d'accès– Un numéro
● Plage 1-99 : liste d'accès IP standard● Plage 100-199 : liste d'accès IP étendue● Plage 200-299 : Ethernet● …
– Un nom : depuis IOS 11.2. ● ip access-list {extended|standard} name
➢ ACL standard : inspecte uniquement l'adresse IP source.– access-list access-list-number {permit|deny} {host|source
source-wildcard|any}
➢ ACL étendue : analyse les informations de couche 3 et de couche 4
➢ Masque générique : wildcard : Le masque générique utilise une logique inversé par rapport au masque de sous-réseau. Quand un masque désigne les bits qu'il faut retenir, le masque générique dit les bits qu'il faut ignorer.
➢ Exercice ACL : en utilisant le même schéma que celui de l'exercice d'iptables (p 60)
– On interdit l'accès telnet d'internet vers le réseau public.– On autorise uniquement les hôtes internes à initier une
connexion– Autorise le trafic FTP passif en direction du serveur de la
DMZ
COURS ETRS701 64
Chiffrement /Cryptage
➢ Service de sécurité (ISO) : – confidentialité – authentification– intégrité– non répudiation– contrôle de l'accès
➢ cryptographie grec kruptos (caché) + graphein (écrire)– Actuellement : chiffrement
➢ Principes :– Dans le passé : utilisation d'algorithmes simples mais
secrets,– Cryptographie moderne : algorithmes compliqués mais
publics. La sécurité repose sur la fiabilité mathématique de l'algorithme et sur une ou plusieurs clés. Analogie avec serrure.
Chiffrement symétrique ou à clé partagé
Texte en clair MMéthode de chiffrement E
Clé de chiffrement K
Texte chiffré C=EK(M)
Méthode de déchiffrement D
Clé de déchiffrement K
DK(E
K(M))=M
Intrus : passif : se contente d'écouteractif : veut modifier les messages
COURS ETRS701 65
Chiffrement / Cryptographie
Chiffrement asymétrique ou à clé privé et clé publique
Comparaison symétrique / asymétrique
Texte en clair MMéthode de chiffrement E
Clé de chiffrement Pub
Texte chiffré C=EPub
(M)
Méthode de déchiffrement D
Clé de déchiffrement Priv
DPriv
(EPub
(M))=M
Intrus : passif : se contente d'écouteractif : veut modifier les messages
COURS ETRS701 66
Cryptanalyse
Cryptanalyse : casser les chiffres
➢ texte chiffré seul : on dispose uniquement du cryptogramme. Deux types d'attaques possibles :
– essayer toutes les clés possibles --> espace des clés petit ou si attaquant disposant d'une grosse capacité de calcul
– utilisation des propriétés statistiques du langage utilisé dans les messages en clair (lettre la plus fréquemment utilisée dans les messages en clair, 2ème lettre la plus fréquemment utilisée...)
➢ texte en clair connu : on dispose d'un texte en clair et de son cryptogramme
– Ex : bcp de courriers se terminent par « Meilleures salutations », en-têtes des différentes couches réseaux sont connus …
➢ texte en clair choisi : possibilité de chiffrer des morceaux de texte de son propre choix (tjrs vrai avec clé publique).
– Ex : l'attaquant intercepte un cryptogramme. Il sait que le message en clair qui lui correspond est soit « oui » soit « non ». Pour retrouver le message il chiffre « oui » et il chiffre « non » et il compare avec le cryptogramme intercepté.
➢ cryptogramme choisi : l'attaquant peut faire déchiffrer le cryptogramme de son choix.
– Ex : Cryptosystème utilisé pour l'identification. Alice veut être sûre qu'elle est connectée à Bob. Elle envoie à Bob un nombre au hasard chiffré. Bob le déchiffre et renvoie le nombre à Alice. Alice est maintenant sûre de parler à Bob. Un attaquant peut se faire passer pour Alice et envoyer à Bob des cryptogrammes de son choix qui les déchifrera.
COURS ETRS701 67
Cryptanalyse
➢ Temps nécessaire pour casser une clé par une attaque de type « brute force » :
Taille clé
nb de clés
temps nécessaire (1 décryptage/s)
temps nécessaire
(106 dec/s)
32 232 231 s = 35,8 minute 2,15 ms
56 256 255 s = 1142 années 10 heures
128 2128 2127 s = 5,4 1024 années 5,4 1018 années
168 2168 2167 s = 5,9 1036 années 5,9 1030 années
Processeur actuel : Core i7 ~ 3000 MWIPS (Million instructions C par seconde)
COURS ETRS701 68
Cryptographie traditionnelle
➢ Message contenant des lettres vers un cryptogramme contenant des lettres.
➢ Méthodes de chiffrements :– substitution– transposition
➢ Chiffrement par substitution– Monoalphabétique : remplacer chaque lettre de
l'alphabet par une autre lettre de l'alphabet.– Polyalphabétique : consiste à utiliser une suite de
chiffrement monoalphabétique réutilisée périodiquement.– Polygrammes : consiste à substituer un groupe de
caractères (polygramme) dans le message par un autre groupe de caractères.
➢ Chiffrement monoalphabétique : Chiffrement de César– Alphabet clair : abcdefghijklmnopqrstuvwxyz– Alphabet chiffré : mnopqrstuvwxyzabcdefghijkl– Chiffrer : « bonjour »
➢ Cryptanalyse chiffrement monoalphabétique :– rechercher les caractères, les digrammes et trigrammes
les plus fréquents du texte chiffré– Faire des suppositions en les associant à ceux les plus
fréquents d'un texte en clair– Ou attaque brute force : 26 cas à étudier !!
COURS ETRS701 69
Cryptographie traditionnelle
➢ Chiffrement polyalphabétique Vigenère– Introduit la notion de clé (un mot ou une phrase). A
chaque caractère on utilise une lettre de la clé pour effectuer la substitution. Plus la clé est longue et variée et mieux le texte sera chiffré.
COURS ETRS701 70
Chiffrement traditionnel
Chiffrer : Universite de SavoieEn utilisant le mot clé MASTER
Cryptanalyse : deux étapes : trouver la longueur du mot clé (analyse fréquentielle), puis refaire une analyse fréquentielle sur chacun des alphabets.
COURS ETRS701 71
Chiffrement traditionnel
➢ Chiffrement par transposition– modifie l'ordre des lettres– Exemple : La clé sert à numéroter les colonnes. Le texte
chiffré est lu en colonnes en commençant par la colonne de plus petit numéro.
Cryptographie moderne : chiffrement symétrique
➢ Rappel : chiffrement symétrique : la clé doit être connue des 2 entités (clé partagée, clé secrète).
➢ Les algorithmes reposent sur les principes suivants :– chiffrement par bloc : n bits clair → n bits chiffrés– 3 éléments de base :
● transposition(permutation)● substitution● OU exclusif
COURS ETRS701 72
Chiffrement symétrique
Bit 0Bit 1Bit 2Bit 3Bit 4Bit 5Bit 6Bit 7
Bit 0Bit 1Bit 2Bit 3Bit 4Bit 5Bit 6Bit 7
Permutation
Dé
code
ur 3
ve
rs 8
Dé
code
ur 8
ve
rs 3
Bit 0Bit 1Bit 2
Bit 0Bit 1Bit 2
Substitution
Chiffrer : 101Chiffrer 01000101
Présentation de DES (Data Encryption Standard)
➢ DES publié en 1977, clé de 56 bits.
COURS ETRS701 73
Chiffrement symétrique DES
➢ Principe du DES
–
➢ Le texte chiffré par blocs de 64 bits.
➢ Permutation initiale définie par une matrice dont les valeurs sont données par les spécifications de l’algo DES
➢ chaque bloc est décomposée en deux parties de 32 bits (partie gauche et partie droite)
Transposition initiale
Texte en clair : 64 bits
Itération 1
Itération 2
Itération 16
Transposition sur 32 bits
Transposition inverse
Texte chiffré : 64 bits
Clé
56
bits
Permutation initiale
Texte en clair : 64 bits
Itération 1
Itération 2
Itération 16
Transposition sur 32 bits
Permutation inverse
Clé
56
bits
32 bitsgauche g
i-1
32 bitsdroits d
i-1
gi-1
XOR f(di-1
, Ki)
COURS ETRS701 74
Performances des algorithmes de chiffrement sym
➢ Performance des algorithmes de chiffrement symétique (source Les Réseaux Pujolle)
Problème des chiffrements par blocs
➢ A un bloc de texte on associe un bloc de texte chiffré (ECB Electronic Code Book). Possibilité d'utiliser cette propriété pour modifier le contenu d'un message chiffré sans avoir besoin de le déchiffrer..
– Exemple
Algorithme
Longueur de clé
Nombre de round
Niveau de sécurité
Performance (rapidité pour QoS)
DES 56 bits 16
3DES 112 bits (2clés)
48
3DES 168 bits (3clés)
48
AES 128 bits 10
AES 192 bits 12
AES 256 bits 14
Que doit connaître l'attaquant pour réaliser ce type de manipulation ?Quel est l'autre problème soulevé par cette méthode de chiffrement ?
COURS ETRS701 75
Chiffrement « chainé »
➢ Pour éviter le problème des chiffrements par blocs tous les blocs chiffrés sont chaînés
➢ CBC : Cipher Bloc Chaining– Méthode de chiffrement
– Dessiner la clé sur le schéma.– Donner l'équation de C2 en fonction de bloc2 bloc1 et
bloc0. – Dessiner la méthode de déchiffrement.
– Est-ce-que cette méthode permet d'éviter le problème soulevé par le chiffrement par bloc ?
Bloc 0
E
CO
XOR
Bloc 1
E
C1
XOR
Bloc 2
E
C2
COURS ETRS701 76
Chiffrement « chainé »
– Un problème existe néanmoins : le premier bloc n'est pas chainé ==> utilisation d'un vecteur d'initialisation.
➢ Autre méthode de chainage
XORVI
M0
E
CO
XOR
M1
E
C1
Clé
COURS ETRS701 77
Chiffrement par flot (souvent utilisé en réseau)
➢ Ici l'algorithme de chiffrement ne chiffre pas un bloc de données mais génère un flux de bits :
– les séquences de bits produites ont l'air parfaitement aléatoires ,on peut obtenir à nouveau exactement la même séquence de bits avec la même clé.
➢ On fait ensuite un XOR (ou exclusif) entre le flux de données à envoyer et le flux de bits pseudo-aléatoire.
➢ Nécessité d'un vecteur d'initialisation : il faut pour chaque message envoyé, généré un R différent. Pourquoi ?
– Imaginons qu'un Pirate capture un message chiffré, et qu'il arrive à reconstitué le message en clair initial. Ce n'est pas si dur, certains messages sont connus : trame ARP, DHCP, en-tête IP, TCP …
● Pirate dispose de C et de M, il peut calculer R = C xor M.
● Si c'est le même R qui est utilisé : pirate peut maintenant tout déchiffrer il peut même générer des messages chiffrés.
Algorithme de cryptage
VI+clé
XORMessageclairM
MessagecryptéC
Séquence pseudo-aléatoire
R
AES, DES, RC4
COURS ETRS701 78
Chiffrement par flot
➢ L'algorithme génére, pour chaque message envoyé, un numéro unique VI (vecteur d'initialisation) qu'il ne réutilisera jamais (en principe) et qu'il concatène à la clé. Le VI est transmis en clair avec le message.
➢ Ne jamais utiliser 2 fois de suite le même couple (VI - clé) pour ne pas générer plusieurs fois le même keystream R.
COURS ETRS701 79
Chiffrement asymétrique
Rappels mathématique
➢ Divisibilité : a divise n s'il existe un entier b tel que : n=axb
➢ Diviseur commun : un diviseur commun à a et b est un entier qui divise à la fois a et b.
➢ PGCD : Parmi tous les diviseurs communs à 2 entiers a et b (a et b 0), il en existe un qui est le plus grand que tous les autres. On le note PGCD (a,b)
➢ Nombres premiers : un nombre premier est un nombre qui ne possède que 2 facteurs : 1 et lui même. 2 nombres sont premiers entre eux, s'ils n'ont pas d'autre facteur que 1.
➢ Modulo : Si a et b sont entiers, avec b>0, il existe deux entiers q et r, uniquement déterminés, tels que a=qb+r et 0r<b. On écrit r=a mod b.
– Calculer 13 mod 10 =– 133 mod 21 =– -50 mod 8 =
➢ Algorihme d'Euclide : Si b 0 alors PGCD (a,b)=PGCD (|b|, a mod |b|)
– Calculer PGCD (100,35)
➢ Rmq : Si w = PGCD (a,b) alors il existe u et v tel que au+bv=w
➢ Congruence : Dans a = k .m + b ; sans s'intéresser à k , on dit que a est congru à b modulo m.
– On écrit ab mod m autre écriture : a-b=km.– 35 5 mod 10 ; -2 19 mod 21
COURS ETRS701 80
Chiffrement Asymétrique RSA
Algorithme RSA
➢ Rivest Shamir et Adelman (1978).
➢ Efficacité repose sur le temps mis pour factoriser de grands nombres premiers.
➢ Nécessite des clés minimum de 2048 bits. Cassage d'une clé de 768 bits en 2010.
➢ Méthode :– Choisir 2 grands nombres premiers p et q (en général
1024 bits)– Calculer n=p*q et z=(p-1)(q-1)– Choisir un nombre e tel que e et z soient premiers entre
eux (aucun facteur premier commun) et e<z– Trouver d tel que e*d1 mod z. (Utilisation de
l'algorithme d'Euclide étendu).
➢ Procédure de chiffrement : – On découpe le message M en bloc de k bits tels que :
2k<n.– C=Me(mod n) (il faut connaître e et n : clé publique)
➢ Procédure de déchiffrement :– M=Cd(mod n) (il faut connaître d et n : clé privé)
➢ Cryptanalyse : – Si on peut factoriser n public. Factoriser = retrouver p et
q.– Pour factoriser un nombre de 500 chiffres ==> 1025
années.
COURS ETRS701 81
Chiffrement Asymétrique RSA
➢ On considère que l'on choisit p=19, q=13. Calculer et choisir, e, d et n.
➢ Chiffrer M=5 et tester le déchiffrement.
➢ Remarques : – Actuellement « facile » (1 an sur 500 PC quadricoeur) de
casser une clé de 768 bits. Taille de clé mini : 2048 bits.– Actuellement utilisation de nouveaux algorithmes de
chiffrement à clé publique basés sur les courbes ellipiques. Algo utilisé dans les passeports biométriques.
COURS ETRS701 82
Algorithme Diffie Hellman
➢ Diffie-Hellman : échange de clés à travers un canal non sécurisé.
➢ Supposons que A et B veulent communiquer mais qu'ils n'aient pas encore de clé secrète. Il existe une façon pour deux étrangers de créer une clé secrète, et ce même si un pirate écoute les échanges.
➢ Méthode :– 1. A et B se mettent d'accord sur 2 grds nombres : n et g
tels que n et (n-1)/2 soient premiers et que g remplissent certaines conditions.
– 2. A choisit un gd nombre x qu'il garde secret– 3. B choisit un gd nombre y qu'il garde secret– 4. A envoie à B : gx mod n– 5. B répond : gymod n– 6 A calcule : (gymod n)x mod n= gyxmod n– 7. B calcule : (gxmod n)y mod n= gyxmod n– 8. A et B possèdent ainsi une clé commune : gyxmod n.– Cette clé peut être utilisée pour chiffrer avec un
algorithme à clé secrète (ex : AES).
➢ Un intrus a suivi l'échange, s'il arrive à calculer x, il connaîtra la clé. Extrêmement long (impossible) de calculer x à partir de gx mod n.
COURS ETRS701 83
Diffie Hellman - Exemple
➢ A et B choisissent n = 47 et g = 3. A choisit x=8. B choisit y=10
– Quel est le message que A envoie à B ?– Quel est le message que B envoie à A ?– Quelle est la clé commune ?– Quelles équations doivent être résolues par un pirate
éventuel pour calculer les clés ?
➢ Point faible : possibilité d'une attaque Man in the middle. Nécessité d'authentifier A et B avant l'échange de clé.
➢ Remarque : échange de clé sécrète en utilisant RSA. En plus de l'échange de clé on réalise une authentification d'une ou des 2 parties.
COURS ETRS701 84
Fonction de hachage / résumé-condensat
➢ Texte en clair de longeur libre --> calcul d'une chaîne de n bits de longueur fixe appelée : condensat, message digest, hash.
➢ 4 propriétés importantes :– (1) Pour tout M il est facile de calculer MD(M)– (2) Quel que soit MD(M) il est impossible de retrouver M– (3) A partir de M, personne ne peut trouver M' tel que
MD(M')=MD(M)– (4) Une modification d'un seul bit de M modifie MD(M)
➢ Pour satisfaire la propriété 3 : le hash doit avoir une longueur mini de 128 bits
➢ Formalisme :– Une fonction de hachage H : {0, 1}∗ → {0, 1}n – La chaîne y = H(x) est appelée empreinte de hachage. x
est appelée préimage de y. – Résistance à la préimage : étant donné y : 2n calculs
de hash pour trouver un x possible – Résistance à la seconde préimage : étant donné x : 2n
calculs de hash pour trouver x' x tel que H(x) = H(x') – Résistance à la collision : 2n/2 calcul de hash pour
trouver x et x' tels que H(x) = H(x'). Cette attaque est plus rapide que ce que l'on pense ; c'est ce qu'on appelle le paradoxe de l'anniversaire (dans un groupe de 23 personnes, il y a une chance sur 2 pour que 2 personnes aient le même anniversaire).
COURS ETRS701 85
Algorithmes de Hachage - Signatures
➢ Algorithmes de hachage :– MD5 (Message Digest 5) : condensat de 128 bits– SHA1 (Secure Hash Algorith) : condensat de 160 bits,
SHA2 : 256 bits
Signatures numériques
➢ Objectifs : Signer des textes de façon à les mettre à l'abri de toute falsification.
– Le destinataire peut vérifier l'identité de l'expéditeur– L'expéditeur ne peut pas répudier le message– Il est impossible au destinataire de fabriquer un tel
message
Signatures à clé publique (algorithme asymétrique)
➢ Algorithme de chiffrement à clé publique : D
KPRIV(E
KPUB(M))=M
➢ Pour RSA on a aussi : DKPUB
(EKPRIV
(M))=M
➢ Alice veut envoyer un message x signé à Bob– 1. Alice calcule l'empreinte h(x) du message – 2. Alice chiffre cette empreinte avec sa clé privée :
s=EKPRIV
Alice (h(x))
– 3. Alice envoie le document signé (x,s) à Bob
➢ Comment Bob vérifie la signature du message ?
COURS ETRS701 86
Signatures
➢ Que se passe-t-il si Alice nie avoir envoyer le message ? – Alice ne peut pas nier, car elle a déposé sa clé publique
auprès d'une autorité de certification qui lui a délivré un certificat (voir chapitre suivant).
➢ Utilisation d'horodate-timestamp (t) pour empêcher un intrus de rejouer les messages.
COURS ETRS701 87
Signatures
➢ Aspects juridiques : Loi du 13 mars 2000 (Code civil) portant adaptation du droit de la preuve aux technologies de l'information et relatif à la signature électronique.
– Art. 1316. - La preuve littérale ou preuve par écrit résulte d'une suite de lettres, de caractères, de chiffres ou de tous autres signes ou symboles dotés d'une signification intelligible, quels que soient leur support et leurs modalités de transmission.
– Art. 1316-1. - L'écrit sous forme électronique est admis en preuve au même titre que l'écrit sur support papier, sous réserve que puisse être dûment identifiée la personne dont il émane et qu'il soit établi et conservé dans des conditions de nature à en garantir l’intégrité.
– Art. 1316-2. - Lorsque la loi n’a pas fixé d’autres principes, et à défaut de convention valable entre les parties, le juge règle les conflits de preuve littérale en déterminant par tous moyens le titre le plus vraisemblable quel qu’en soit le support.
– Art. 1316-3. – L'écrit sur support électronique a la même force probante que l'écrit sur support papier
– Art. 1316-4. - La signature nécessaire à la perfection d'un acte juridique identifie celui qui l'appose. Elle manifeste le consentement des parties aux obligations qui découlent de cet acte.
COURS ETRS701 88
Authentification
➢ Authentification : s'assurer de l'identité d'une entité (personne, machine, processus ...).
➢ Cas d'un individu : authentification --> vérifier que celui-ci possède une preuve de son identité ou de son statut sous l'une des formes (combinées) suivantes :
– Ce qu'il sait (mot de passe, code NIP).– Ce qu'il possède (carte à puce, certificat électronique,
Token OTP ...).– Ce qu'il est (caractéristique physique, voir biométrie).– Ce qu'il sait faire (geste, signature).
Authentification fondée sur une clé secrète (partagée)
A B
A
KAB
(RB) B est sûr de l'identité de A
A est sûr de l'identité de B
Faille possible : si on accepte plusieurs connexions simultanées.
COURS ETRS701 89
Authentification
➢ Exemple de faille de l'algorithme précédent
A
KAB
(RA)
Eve
1 A envoie une demande de connexion à B. Eve intercepte.
Eve se fait passer pour B et envoie une demande de connexion à A.
A demande à Eve de prouver son identité en chiffrant R
A
Session 1
Session 1
Session 2
Session 1
Session 2
Eve ne peut pas répondre. Elle revient à la session 1. Transmet le challenge à A qui ne se méfie pas
Eve revient à la session 2 et renvoie la réponse
COURS ETRS701 92
Authentification
Authentification avec fonction de hachage et clé partagée
Authentification fondée sur une clé publique
Alic
e
Bob
EB(A,R
A)
EA(R
A,R
B,K
S)
KS(R
B)
Quelle clé est utilisée dans ce premier message ? Comment Bob déchiffre ?
Que représente Ks ?
Message Mot de passe
HashSHA
On envoie
Message Hash
COURS ETRS701 93
Gestion des clés publiques-Certificats
➢ Si Alice et Bob ne se connaissent pas comment font-ils pour s'échanger leurs clés publiques ?
➢ Un intrus peut trop facilement se faire passer pour Alice ou Bob.
➢ Exemple : Bob = site de commerce en ligne --> veut permettre à Alice et à d'autres personnes de communiquer avec lui de façon sécurisé (Alice ne veut pas fournir son numéro de carte de crédit à n'importe qui).
➢ Comment faire ?
➢ Bob se rend auprès d'une CA (Certification Authority) muni de sa clé publique et de sa carte d'identité. La CA lui délivre un certificat contenant :
– la clé publique et les coordonnées de Bob (nom de l'organisation, adresse postale, pays, nom de domaine du site Internet)
– L'ensemble est signé par la CA.
➢ Comment la CA signe le certificat ?
Les organismes reconnus délivrant des certificats : Symantec (propriétaire de Verisign, Thawte, Geotrust) 43 % du marchéComodo group (26 % du marché)Go Daddy 14 %GlobalSign (7,7%)Source Wikipédia.
COURS ETRS701 94
Certificat
➢ Les certificats sont normalisés : X509. Format :– n° de version du certificat– n° de série du certificat– algorithme utilisé pour signer le certificat– nom de la CA– identifiant unique de la CA– nom de la personne ou du système référencé par ce
certificat– identifiant de la personne ou du système– clé publique identifiée par le certificat– date de début et de fin de validité du certificat– ....
COURS ETRS701 95
Infrastructure à clés publiques
➢ Nécessité d'avoir plusieurs CA : – 1 seule CA : encombrée– 1 seule CA : (une seule clé privée) répartie augmente les
risques de se faire dérober la clé privée.
➢ Mise en place d'une PKI (Public Key Infrastructure) : structure hiérarchique de certification.
Alice veut communiquer avec Bob, elle récupère le certificat de Bob signé par CA2.Elle vérifie ensuite l'identité de CA2, CA2 renvoie le certificat qu'elle a obtenu de ICA4Elle vérifie ensuite ICA4, ICA4 renvoie le certificat qu'elle a obtenu de Root.Tout le monde connaît la clé publique de l'autorité de certification racine : stockée dans le navigateur.
Root CA
Intermediate CAICA4
Délivre des certificats à des CA intermédiaires ou régionales.
Issuing CA - CA1
Issuing CA - CA2
Issuing CA - CA3
Fournissent des certificats aux utilisateurs.
Intermediate CAICA3
Intermediate CAICA2
Intermediate CAICA1
COURS ETRS701 96
Infrastructure à clé publique
➢ Aspect juridique :– Le prestataire de service de certification, (" PSC "), est
défini par les textes européens et Français comme toute personne physique ou morale qui délivre des certificats ou fournit d’autres services liés aux signatures électroniques.
– Les professionnels qui souhaitent exploiter des solutions de signature électronique peuvent se retrouver face à une incertitude en ce qui concerne la nature exacte des responsabilités qu’ils doivent endosser.
– Quelles seront en effet les conséquences d’un manquement du PSC qui le conduirait à avaliser une signature falsifiée ?
– Quelle sera l’étendue de sa couverture en cas de préjudice ?
COURS ETRS701 97
Exemples de protocoles et applications sécurisés SSH et SSL
SSH Secure Shell
➢ Rappels Telnet :– transport de caractères ASCII (login, mot de passe,
commandes, résultats des commandes) ==> tout est visible
– pas d'authentification du serveur ==> attaque MiM
➢ SSH :– Authentification du serveur : clé publique du serveur
présentée au client. L'association nom_serveur ↔ clé_serveur est enregistrée sur le client.
– Authentification du client : 2 possibilités ● login/mot de passe ● OU clé publique/clé privée (dans ce cas il faut déposer
le fichier contenant sa clé publique sur le serveur). – SSH : port 22 TCP.– Flux de données : chiffré via chiffrement symétrique
négocié en début de session.– Possibilité de faire du tunneling ssh : sécuriser des
protocoles non sécurisés /passer les pare-feu
COURS ETRS701 98
SSH (suite)
DiffieHellmann
Pourquoi utiliser Diffie-Hellmann ? Quelle autre solution aurait été possible ?
COURS ETRS701 99
SSL / TLS
SSL (Secure Socket Layer) / TLS (Transport Layer Security)
➢ Secure Socket Layer, développé à l'origine par Netscape, normalisé l'IETF → TLS (Transpot Layer Security).
➢ Nécessité de SSL : commerce en ligne
➢ SSL : au dessus de la couche 4 (couche session) permet de chiffrer et d'authentifier via certificat.
➢ Protocoles utilisant ssl : http → https, smtp → s-smtp, ldap → ldaps (ou ldap over TLS)
➢ SSL = protocole normalisé implémenté dans les applications grâce à un ensemble de bibliothèques (API).
COURS ETRS701 100
SSL / TLS
➢ Ssl assure :– la confidentialité– l'authentification du serveur– l'intégrité des données– optionnellement l'authentification du client par certificat
➢ 3 étapes :– authentification (présentation des certificats – en principe
seul le serveur dispose d'un certificat) – voir exemple des impôts
– négociation des protocoles de chiffrement– génération des clés de session
➢ Vérifications du certificat : 3 vérifications effectuées
COURS ETRS701 101
EAP – Extensible Authentication Protocol
Objectifs : authentifier
➢ Pouvoir authentifier un utilisateur avant qu'il « rentre » sur le réseau.
Historique
➢ A l'origine : accès à Internet via RTC : un circuit physique est établi entre l'abonné et le FAI. Utilisation de modems pour adapter les signaux au média.
➢ Nécessité de créer un protocole pour :– Assurer la transmission de données sur un support
(couche liaison – niveau 2) : ● Structurer les données envoyées en trames● Négocier les paramètres de la connexion (utilisation
d'ack, MRU Maximum Receive Unit ...)– Authentifier l'utilisateur qui se connecte– Attribuer des paramètres réseaux à la machine qui se
connecte (adresse IP, masque …)
➢ Protocole créé : PPP : Point to Point Protocol
ServeurAuthentification
A
Réseau de l'entreprise
EAPLoginMdp
COURS ETRS701 102
EAP – IEEE 802.1x
➢ Établissement d'une connexion PPP :– PPP Link Control Protocol (LCP) Phase– PPP Authentication Phase– PPP NCP Negotiations (IPCP)
➢ 2 méthodes d’authentification disponibles :– PAP Password Authentification Protocol : utilisation
d’un nom d’utilisateur et d’un mot de passe. Les données sont envoyées en clair.
– CHAP Challende Handshake Authentification Protocol : le serveur commence par envoyer un nonce 16 octets aléatoires au client, ainsi qu’un compteur qu’il incrémente à chaque fois. Le client doit alors passer le compteur, son mot de passe et le mot de 16 octets au travers d’un algo de hachage. Ce hash est envoyé au serveur qui le compare avec le hash qu’il a lui même calculé.
● Rmq : Ce processus peut être répété de manière aléatoire pendant la durée de la transmission.
Réseau FAI1
Radius
RTC Réseau FAI2
Radius
PPP
Radius : remote authenticationDial-in user service
COURS ETRS701 103
EAP – IEEE 802.1x
EAP : Extensible Authentication Protocol 802.1x
➢ Objectif : pouvoir authentifier un utilisateur avant qu'il « rentre » sur le réseau.
– Faire une sorte de ppp mais sans couche liaison.– Pouvoir réutiliser le radius.
➢ Les 5 méthodes EAP les plus utilisées sont : – EAP-TLS (authentification du serveur et du client via
certificats)– EAP-MD5 (authentification simple par mot de passe
chiffré en MD5 ; équivalent de CHAP).– PEAP (authentification du serveur par certificat,
création d'un tunnel TLS chiffré puis authentification du client simple par mot de passe).
– …
➢ Le protocole doit être suffisamment générique pour pouvoir « facilement » évoluer (on ne vas pas changer tous les commutateurs si une méthode d'authentification n'est plus considérée comme sûre).
COURS ETRS701 104
EAP
Exemples
Réseau de l'entreprise
Radius
Échanges EAP : authentification de l'utilisateur avant de lui permettre d'accéder au réseau. SW1 supporte la norme EAP. Il extrait les identifiants de l'utilisateur des messages EAP et les retransmet au serveur radius qui «vérifie» l'identité de l'utilisateur. Si l'identité est validée le Radius envoie un message au switch lui indiquant qu'il peut « valider » le port sur lequel A est connectée.
A
Réseau de l'entreprise
Radius
A
AP
SW1EAP
EAP
COURS ETRS701 105
Les VPN – Virtual Private Network
➢ VPN : Virtual Private Network = RPV : Réseau Privé Virtuel → concept très général : un réseau publicWAN (donc mutualisé) est utilisé pour :
– faire transiter des messages privés entre différents sites d'une entreprise (confidentialité)
– fournir un accès aux utilisateurs distants (authentification + confidentialité)
Si les VPN n'existaient pas
➢ Pour relier 3 sites d'une entreprise : nécessité de mettre en place des liaisons physiques avec chacun des sites. Ces liaisons ne sont utilisées que par l'entreprise.
➢ Exemple (sans VPN) :
Site 1 : Paris
RPARIS
Site 2 : Lille
RLille
Site 3 : Grenoble
RGREN
Liaisons mises en place par l'entreprise ou louées. Seuls des données de l'entreprise circulent sur ces liens. Coût très élevé.Liaisons parfois/souvent sous-utilisées.
COURS ETRS701 106
Les VPN - Introduction
Avec des VPN
➢ Entreprise 1 doit mettre en place des mécanismes pour rendre transparent le passage par le réseau public :
– rendre confidentiels les échanges de données entre ses différents sites.
– mécanismes permettant de faire croire que les sites sont « directement » connectés pour faciliter l'adressage.
➢ Sur le même principe, un utilisateur distant peut accéder au réseau de son entreprise depuis son domicile.
➢ Avantages des VPN : – Économie (utilisation de réseaux public mutualisés)– Sécurité – Passage à l'échelle : possibilité d'ajouter « facilement »
des nouveaux sites et des nouvelles entreprises.
Entreprise 1, site 1 : Paris
RPARIS
Entreprise 1,site 2 : Lille
RLille
Entreprise 1 site 3 : Grenoble
RGREN
Entreprise 2
Entreprise 2
Entreprise 3
Entreprise 3
Sur ces liens circulent des paquets appartenant à différentes entreprises. L'infrastructure du FAI est mutualisée.
Réseau mutualisé
COURS ETRS701 107
Les VPN - Introduction
➢ Terminologie : « VPN » peut désigner deux approches différentes mais complémentaires :
– Opérateurs télécommunications : VPN = mise en place par le FAI sur son infrastructure de protocoles/mécanismes qui garantissent au client que les paquets transportés sont isolés des autres flux et disposent de ressources réservées Protocole : MPLS.
– VPN d'entreprise = l'entreprise met en place des mécanismes pour assurer la confidentialité des échanges entre ses sites.
● utilisation de protocoles de chiffrement ● création de tunnels chiffrés entre sites (IPSec, ssl)● accès des utilisateurs distants
➢ Le premier cas permet de garantir de la QOS de bout en bout.
➢ Cette partie du cours se focalise sur les VPN entreprises.
Réseau 1 Réseau 2Réseau
public/partagé
Création d'un VPN / équivalent logique
Réseau 2Réseau 1
COURS ETRS701 108
VPN - tunneling
➢ Principe général : encapsulation de données d'un protocole réseau dans un autre situé dans la même couche, ou dans une couche de niveau supérieur.En sécurité → tunnels chiffrés. Ex tunnel SSH, tunnel ipsec.
➢ Rappels : encapsulation classique/normale :
➢ Exemples d'encapsulation avec tunneling :
Données (Application)TransportRéseauLiaison
RéseauLiaison Données (Application)TransportRéseau
RéseauLiaison Données (Application)TransportRéseauTransport
Données (Application)TransportRéseauLiaisonRéseauLiaison
RéseauLiaison Données (Application)TransportTransport Appli
COURS ETRS701 109
VPN Tunneling
➢ Exemple 1 : tunnel 6to4 : encapsuler de l'ipv6 dans de l'ipv4.
Réseau Ipv4Réseau Ipv6
B : serveur IPv6A
R1
A veut envoyer un paquet IPv6 à B. Son FAI ne peut qu'acheminer des paquets IPv4.Sur A on installe et configure un logiciel qui va encapsuler le paquet ipv6 dans de l'ipv4. A dispose d'une adresse IPv4 et d'une adresse IPv6.
A envoie :
@IPv6-A @IPv6-B Données 6 ...
Paquet Ipv6
@IPv4-A @IPv4-R14 ...
En-tête Ipv4
Paquet Ipv4
@IPv4-R1
COURS ETRS701 110
VPN – tunneling - introduction
➢ Exemples tunnel ssh
A
Client pop
Client ssh
B
Serveur pop
Serveur ssh
A veut lire ses mails de manière sécurisée.Dessiner les paquets circulant sur le réseau entre A et B. Indiquer les parties chiffrées et les parties en clair.
Réseau
DATA : POPTCPSSHTCPIPLiaison
chiffréclair
COURS ETRS701 111
VPN tunneling - GRE
GRE – Generic Routing Encapsulation– RFC 2784
➢ IP dans IP– Pas de chiffrement des données circulant dans le tunnel– Pas d'authentification des extrémités du tunnel.
➢ Exemple :
A B
192.168.1.0 /24 192.168.2.0 /241.1.1.1 2.2.2.2
R1 R2Rx
1.1.1.2
InternetSite 1 Site 2
interface Tunnel0 ip address 10.1.1.1 255.255.255.252 tunnel source FastEthernet0/1 tunnel destination 2.2.2.2 tunnel mode gre ip
interface Tunnel0 ip address 10.1.1.2 255.255.255.252 tunnel source FastEthernet0/1 tunnel destination 1.1.1.1 tunnel mode gre ip
ip route 192.168.1.0 255.255.255.0 10.1.1.1
COURS ETRS701 112
TCP
VPN tunneling – GRE - Encapsulation
Mise en place d'un tunnel GRE
A B
192.168.1.0 /24 192.168.2.0 /241.1.1.1 2.2.2.2
ApplicationTransport
IPEthernet
ApplicationTransport
IPGRE
IPAccès réseau
Dessiner la trame simplifiée dans le cas d'un échange http entre A et B.
Avantages :-Simplifie le routage/l'adressage et la configuration des réseaux. Tout se passe comme si R1 et R2 étaient directement reliées. Simplifie l'hébergement de serveurs sur un des deux sites et les problématiques de translation d'adresses.Permet le transport des mises à jour de routage. R1 peut par exemple annoncer à R2 une route vers 192.168.1.0/24.
R1 R2Rx
1.1.1.2
Internet
HTTP GETIP-BIP-A...4IP-R2IP-R1...4 GREEtherMACR1
MACRX
COURS ETRS701 113
VPN - tunneling
➢ Niveaux de tunnels :– Niveau 2 : permet de transporter des trames (couche
liaison) dans des paquets. ● L2TP (Layer2 Tunneling Protocol, PPTP (Point to
Point Tunneling Protocol). Transport de trames PPP sur un réseau IP.
– Niveau 3 : transport de paquet● GRE : Generric Routing encapsulation : transport de
paquet IP dans des paquets IP.● IPSEC : transport de paquet IP chiffrés dans des
paquets IP.
– Niveau 4 : transport de segment● : SSL/TLS : transport de données (paquets IP ou
données applicatives) dans des segments TCP chiffrés.
– Niveau 5 : transport de données applicatives ● Tunnel ssh.
COURS ETRS701 114
Taxinomie des VPN - RPV
Taxinomie des VPN
➢ Configuration de client final :– End to End : Schéma le plus sécurisé mais difficile à
gérer (oblige à installer des logiciels/protocoles sur toutes les machines)
– End to Lan/Site : cas d'un utilisateur distant, cf accès VPN au réseau de l'université
– Lan to Lan ou Site to Site : plusieurs sites d'une même entreprises.
➢ Configuration fournisseur d'accès / opérateur de télécom:– End to POP ou Lan to POP ou POP to POP
Internet public
EN
D
LAN
PO
P
PO
P
LAN
EN
D
COURS ETRS701 118
IPSEC
➢ IPsec : – norme IETF depuis 1992– couche réseau– à l'origine : difficile à mettre en œuvre --> 12 RFC– depuis 1998 → nouveau protocole : IKE (Internet Key
Exchange) ==> facilite le déploiement– Avantage : peut être configuré très finement– Inconvénient : difficulté d'interopérabilité– Utilisé principalement pour les VPN Lan to Lan.
Quelques clients End to Lan mais sur le déclin.
➢ Services de sécurité que peut fournir ipsec :– Confidentialité– Authentification : garantir l'origine des données– Intégrité des données
➢ Deux sous-protocoles d'IPsec : – AH – Authentication Header - : assure uniquement
l'intégrité et l'origine des données (authentification). Calcul : (code MAC ou fonction de hachage) d'un champ ICV (Integrity Check Value).
– ESP – Encapsulation Security Payload - : assure la confidentialité, en partie l'intégrité et l'authentification.ESP : beaucoup plus utilisé que AH. Chiffrement type AES + ICV.
➢ Deux modes de fonctionnement : – Tunnel : de routeur à routeur ou d'hôte à routeur. Un
nouvel en-tête IP complet est ajouté. Au bout du tunnel cet en-tête est supprimé pour acheminer les paquets jusqu'à leur destination réelle.
– Transport : pas d'en-tête IP ajouté. Utilisé pour des VPN d'hôte à hôte ou hôte à site ou si conjointement avec GRE.
COURS ETRS701 119
IPSEC
Association de sécurité
➢ Avant que deux parties puissent échanger des données, il faut qu'elles se mettent d'accord sur les paramètres de sécurité qu'elles vont utiliser.
– Sous protocole utilisé : AH ? ou ESP ? ou les deux ?– Mode de fonctionnement : Transport ou Tunnel– Algorithmes utilisés pour l'authentification des extrémités
(secret partagé, clé publique ?)– Algorithmes utilisés pour le chiffrement des données
(DES, AES)– Algorithmes utilisés pour l'intégrité
➢ Associations de sécurité= accord/contrat sur les paramètres de sécurité à utiliser pour une communication.
Service AH ESP(chiffrement seul)
ESP + AH
Confidentialité des données
Non Oui Oui
Authentification de l'origine des données
Oui Non Oui
Intégrité des données
Oui Non Oui
Protection contre les attaques par rejeu
Oui Oui Oui
COURS ETRS701 120
IPSEC Association de sécurité
➢ Les associations de sécurité sont unidirectionnelles (simplex).
➢ Ex : Maison mère (A) avec le nœud Filiale (B) : 2 AS : – AS pour Maison mère vers filiale.– AS pour filiale vers maison mère.
➢ Deux paramètres identifient une SA :– Index de paramètres de sécurité (SPI – Security
Parameters Index) : chaîne de 32 bits de signification locale, véhiculée en clair dans les en-têtes AH et ESP.
– L'adresse de destination
COURS ETRS701 121
IPSEC - SA
➢ Remarque : la définition et l'utilisation de SA rend IPsec très flexible :
– SA : unidirectionnelle : on pourra avoir des paramètres de sécurité différents selon le sens.
– SA différentes selon l'application transportée, le protocole de transport utilisé
➢ Exemple de SA :R1#sh crypto ipsec sainterface: FastEthernet0/1 Crypto map tag: mamap, local addr 192.168.153.100[...] local crypto endpt.: 192.168.153.100, remote crypto endpt.: 192.168.153.101 path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/1 current outbound spi: 0xFB7375D7(4218648023)
inbound esp sas: spi: 0xC4E0397(206439319) transform: esp-aes , in use settings ={Transport, } conn id: 2002, flow_id: SW:2, crypto map: mamap sa timing: remaining key lifetime (k/sec):(4582162/3452) IV size: 16 bytes replay detection support: Y Status: ACTIVE
inbound ah sas: spi: 0x9B3DC1F2(2604515826) transform: ah-sha-hmac , in use settings ={Transport, } conn id: 2002, flow_id: SW:2, crypto map: mamap sa timing: remaining key lifetime (k/sec): (4582162/3451) replay detection support: Y Status: ACTIVE
COURS ETRS701 122
IPSEC-SA
inbound pcp sas:
outbound esp sas: spi: 0xFB7375D7(4218648023) transform: esp-aes , in use settings ={Transport, } conn id: 2001, flow_id: SW:1, crypto map: mamap sa timing: remaining key lifetime (k/sec): (4582162/3451) IV size: 16 bytes replay detection support: Y Status: ACTIVE
outbound ah sas: spi: 0xEE94F2B6(4002738870) transform: ah-sha-hmac , in use settings ={Transport, } conn id: 2001, flow_id: SW:1, crypto map: mamap sa timing: remaining key lifetime (k/sec): (4582162/3450) replay detection support: Y Status: ACTIVE
outbound pcp sas :
Combien de SA sont ici définies ?
Quelles sont les adresses des 2 entités concernées par les SA ?
Quelles sont les paramètres de sécurité pour les données entrant dans R2 ?
COURS ETRS701 123
IPSEC - SA
COURS ETRS701 124
IPSEC – Security Policy Database
➢ Sur chaque système capable d'utiliser IPsec doit être présente une SPD (security policy database), dont la forme précise est laissée au choix de l'implémentation, et qui permet de préciser la politique de sécurité à appliquer au système.
➢ Extrait de la RFC 2401 : Ultimately, a security association is a management construct used to enforce a security policy in the IPsec environment. Thus an essential element of SA processing is an underlying Security Policy Database (SPD) that specifies what services are to be offered to IP datagrams and in what fashion. The form of the database and its interface are outside the scope of this specification.
➢ Sous Cisco : – Security Policy Database (SPD)—an ordered list of
policies applied to traffic. A policy decides if a packet requires IPsec processing, if should be allowed in clear text, or if it should be dropped.
– The IPsec SPDs are derived from user configuration of crypto maps.
COURS ETRS701 125
IPSEC - AH
➢ AH (Authentication Header) : ne fournit pas de confidentialité mais uniquement de l'authentification et du contrôle d'intégrité.
➢ En tête :
➢ Paquet à protéger
➢ AH en mode tunnel
➢ AH en mode transport
En-tête suivant Taille Réservé
Index du paramètre de sécurité (SPI)
N° de séquence
Données d'authentification MD5 / SHA
32 bits
Empêche le rejeu
Repose sur un HMAC Hash(message+clé) ==> ICV (integrity check value)
IP TCP APPLICATION
IP IP TCP APPLICATIONAH
Authentifié
Authentifié
TCP APPLICATIONIP AH
A quoi sert ce champ ?
COURS ETRS701 126
IPSEC - ESP
➢ ESP (Encryption Security Payload) : les données originales sont chiffrées puis encapsulées entre un en-tête et un en queue.
➢ En tête (header) :
➢ En queue (trailer) :
➢ Paquet à « protéger » :
➢ ESP en mode tunnel :
➢ ESP en mode transport :
Index du paramètre de sécurité (SPI)
N° de séquence
Remplissage + longueur remplissage
En-tête suivant + ,données d'authentification
IP TCP APPLICATION
IPavec option
IP TCP APPLICATIONESP ESP Trailer
ESP Auth
ChiffréAuthentifié
Nouv IPAvec option
TCP APPLICATIONESP ESP Trailer
ESP Auth
AuthentifiéChiffré
COURS ETRS701 128
IPSEC - IKE
➢ IPSEC nécessite la mise en place de SA avant tout échange de paquets.
➢ IKE (Internet Key Exchange) : – protocole de gestion dynamique des clés – permet de créer et de maintenir les associations de
sécurité
➢ IKE procure les avantages suivants :– Élimine le besoin de spécifier manuellement tous les
paramètres de sécurité sur les 2 peers– Permet à l'utilisateur de spécifier une durée de vie pour
la SA.– Permet le changement de clés durant une session Ipsec– Fournit à Ipsec un mécanisme d'anti-rejeu– Ajoute le support des autorités de certification– Permet une authentification dynamique des noeuds
d'extrémités.
COURS ETRS701 129
IPSEC - IKE
➢ Les paramètres de sécurité des SA sont échangés dans un tunnel chiffré IKE ==> création du tunnel IKE avant l'échange des paramètres de la SA.
➢ Rmq : IKE : protocole hybride qui se base sur ISAKMP (Internet Security Association and Key Management Protocol) lui même basé sur les protocoles
– OAKLEY– SKEME
COURS ETRS701 130
IPSEC - IKE
➢ Diagramme des étapes de IKE et IPSEC (environnement Cisco)
➢ Choix d'une solution :
COURS ETRS701 131
IPSEC et la translation d'adresses
➢ Un scénario aussi simple que le suivant ne pourra pas fonctionner :
➢ Exemples de problèmes : – Si AH : les en-têtes ont changé donc l'authentification ne
marche plus.– Si ESP en mode tunnel, quelle est l'adresse IP source
présente dans l'en-tête IPSEC chiffré, l'adresse privée ou l'adresse publique ?
– Si ESP : les en-têtes transports sont masqués, comment modifier le port source ?
– Si ESP : lors de l'opération de translation d'adresses un routeur NAT modifie la somme de contrôle TCP/UDP. TCP utilise les en-têtes IP pour calculer sa somme de contrôle. Dans le cas d'ESP, l'en-tête TCP est crypté, impossible de modifier le checksum.
➢ Solutions : utilisation de IPSEC NAT-T (NAT Traversal). Les paquets chiffrés sont encapsulés dans un en-tête UDP.
➢ Négociation du NAT-T réalisée dans la phase IKE (RFC 3947).
Passerelle VPNClient IPSec
Routeur NAT
Rejet
COURS ETRS701 132
IPSEC et autres encapsulations
➢
➢ Architecture et terminologie
DMZ
Concentrateur/PasserelleVPN
Réseau interne
DMZ
Réseau interne
A
B
Logiciel VPN sur le PC
Entreprise site 1
Entreprise site 2
Entreprise, client nomade
COURS ETRS701 133
VPN SSL/TLS
➢ VPN-SSL : pour l'accès distant.
➢ Inconvénients Ipsec :– à l'origine compliqué à configurer– nécessite l'utilisation d'un client pour faire des VPN host
to LAN– protocole ipsec parfois bloqué sur le trajet entre le poste
et le site central
➢ VPN SSL de deux types :– Clientless : on se connecte via un navigateur Web. On
accède à un nombre de ressources bien définies : http / https, ftp, cifs.
– Client lourd : nécessite un client téléchargeable en direct. Permet de créer des tunnels comme dans ipsec.
➢ Chez Cisco : webvpn.
COURS ETRS701 134
VPN - SSL
➢ Exemple de fonctionnement :
➢ myvpn.abc.com est une passerelle vpn ssl– Utilisateur distant (John) qui a un accès à Internet et
souhaite accéder au portail web de l'intranet de l'entreprise.
– Navigateur Internet pour accéder à myvpn.abc.com.– Après vérification de son nom d'utilisateur/mot de passe,
la passerelle lui fournit la liste des applications disponibles.
– John clique sur le serveur applicatif des ventes. – La passerelle initie une connexion vers le serveur. – Quand la passerelle reçoit la réponse elle la renvoie
cryptée par SSL. – Ce principe fonctionne bien dans le cas d'application
WEB.– Pour le trafic non web la passerelle transfère au client un
script/application (Java/ActiveX) redirige les connexions dans le tunnel SSL.