Man in the middle 802.1x : Différence entre versions
(→Semaine 1) |
(→Semaine 2) |
||
Ligne 69 : | Ligne 69 : | ||
* '''montage à diode en tête bèche (avec ou sans transistor) :''' | * '''montage à diode en tête bèche (avec ou sans transistor) :''' | ||
[[Fichier:Feu diodes.gif]] | [[Fichier:Feu diodes.gif]] | ||
+ | |||
+ | En positionnant les diodes sous cette configuration, nous sommes en mesure de bloquer le sens du courant dans un sens comme dans l'autre (on peut également rajouter des transistors en série à nos diodes). Cela dit, un tel système ne garantit pas une bidirectionnalité de notre montage car nous n'avons aucune indication concernant le signe du courant transmis sur la ligne de transmission, donc système peu fiable; | ||
* '''montage à base d'optocoupleurs :''' | * '''montage à base d'optocoupleurs :''' | ||
[[Fichier:Optocoupleur.jpeg|150px]] | [[Fichier:Optocoupleur.jpeg|150px]] |
Version du 14 juin 2019 à 04:05
Sommaire
Présentation générale
- Nom du projet : Man in the middle 802.1x
- Stagiaire : Brandon ELEMVA
- Encadrant : Xavier REDON
Projet
Le concept du Man In The Middle 802.1x est le suivant : soit un PC connecté sur un réseau ethernet et communiquant avec un serveur distant. On insère sur ce même réseau un PC "d'attaque" qui viendra écouter la communication qui s'effectue sur le réseau. L'objectif de cette manoeuvre est de pouvoir intercepter les échanges qui s'effectuent entre les deux parties de manière totalement discrète et de se faire passer pour l'un ou les 2 parties.
Pour entrer plus dans les détails, supposons 2 interlocuteurs A et B possédant chacun une clé publique que nous nommerons Ap et Bp, et une clé privée que nous nommerons As et Bs :
- lors d'un échange de données chiffrées normal, A envoie ses données à B en les protégeant avec la clé Bp. B n'aura qu'à les déchiffrer avec Bs;
- à ces 2 interlocuteurs, nous insérons un troisième, C, possédant les clés Cp et Cs. C ne peut déchiffrer ni Ap ni Bp car ne possède pas les clés privées adéquates;
- dans le cas d'une attaque, on suppose que B répond à A en chiffrantant ses données avec Ap. C intercèpte donc les données, modifie la clé publique et renvoie ainsi sa clé Cp à A en se faisant passer pour B (sans que A s'en aperçoive);
- A va donc répondre à C en chiffrant ses données avec la clé Cp (sans le savoir): C est en mesure de déchiffrer les données avec Cs et donc voir le contenu du message envoyé;
- C retransmet ainsi le message à B avec la clé Bp (légèrement modifiée si nécessaire) qui va déchiffrer le message avec Bs sans se douter de rien.
Ainsi, A et B vont continuer de s'échanger des messages en pensant utiliser la clé publique de l'autre sans se douter que c'est celle de C qu'ils utilisent en réalité. L'intrusion est ainsi un succès.
Le sujet
Notre objectif pour ce projet est de concevoir une carte électronique qui nous permettra d'effectuer ce même type d'attaque mais cette fois sur un réseau ethernet 802.1x . Nous simulerons, une fois la carte réalisée, une attaque sur le réseau ethernet des PC disponibles dans les salles de TP de Polytech en suivant le même procédé. Pour cela, nous nous inspirerons des travaux menés par les ingénieurs Erwan Broquaire et Pierre-Yves TANNIOU qui ont déjà réalisé un tel montage à base de relais, l'idée étant de proposer un modèle optimisé par rapport à celui-là.
Cahier des charges
Objectif :
- Concevoir un système permettant de simuler une intrusion sur un réseau éthernet tel que celui disponible dans les salles de TP de Polytech Lille.
Besoins fonctionnels :
- Ce système doit être discret;
- La communication doit pouvoir être bidirectionnelle entre le PC d'attaque et les PC légitimes;
- Si possible, utiliser d’autres composants que des relais électromécaniques pour la commutation lors de l’attaque.
Contrainte :
- Minimiser au maximum le coût des composants.
Résultat attendu :
- Un prototype capable de permettre l'intrusion d'un PC extérieur dans une communication entre un PC et un serveur via une liaison ethernet sans que cette intrusion ne soit détectée.
Le travail effectué
Semaine 1
Cette première semaine de travail était principalement dédiée à de la recherche et de l'analyse du sujet. Avant de se lancer dans la réalisation de notre système d'attaque, il était essentiel de comprendre le fonctionnement du montage réalisé par les ingénieurs précédemment cités. Nous nous sommes donc penchés, dans un premier temps, sur la réalisation de la partie matérielle du projet. Les travaux qu'ils ont réalisés sont les suivants :
Le système réalisé par les deux ingénieurs précédemment mentionnés est composé de relais électromécanique qui permettent de basculer les connexions du réseau attaqué vers les équipements d’attaque employés. Or, leur délai de commutation est de 5 ms, ce qui laisse une période durant laquelle la communication est interrompue, exposant ainsi l’intrusion. Ils ont donc ajouté des résistances sur leurs commutateurs d’attaque et les ont reliées au réseau attaqué afin de tromper le réseau en faisant passer le signal émis comme étant un simple bruit sur la ligne.
L'objectif de leur manœuvre était d'avoir 2 commutateurs d'écoute : l'un écoutant les informations transmises par le PC relié à la caméra, l'autre écoutant les données transmises par la caméra de surveillance. Une Raspberry d'attaque peut éventuellement être rajoutée en cas d'attaque sur le VLAN des commutateurs légitimes (ceux qu'on attaque).
Semaine 2
À partir de nos analyses effectuées lors de la semaine précédente, l'objectif de cette semaine était de déterminer les composants pouvant remplacer les relais électromécaniques, ceux-ci devant être silencieux et discret et devant permettre la transmission bidirectionnelle des signaux perçus sur le réseau. L'objectif étant de pouvoir commencer à réaliser un schéma électrique fonctionnel en vu du routage de notre carte.
Voici les principales idées émises :
- montage à diode en tête bèche (avec ou sans transistor) :
En positionnant les diodes sous cette configuration, nous sommes en mesure de bloquer le sens du courant dans un sens comme dans l'autre (on peut également rajouter des transistors en série à nos diodes). Cela dit, un tel système ne garantit pas une bidirectionnalité de notre montage car nous n'avons aucune indication concernant le signe du courant transmis sur la ligne de transmission, donc système peu fiable;
- montage à base d'optocoupleurs :
- montage à base de buffers :
- montage à base d'émetteurs/récepteurs :
Nous avons fini par opter pour la solution à base d'émetteurs/récepteurs car celle-ci semblait plus viable et sûre en terme de fonctionnalité par rapport à notre application. Cela dit, nous avons également décidé de réaliser un montage à relais dans la même optique que celui réalisé par les 2 ingénieurs.
Semaine 3
Nos composants ayant été choisis, il nous fallait donc réaliser les schémas électriques correspondants aux montages que nous souhaitions réaliser.
Montage à base de 74VHC245 :
L'idéal pour notre montage aurait été de pouvoir le réaliser en simple face, nous conduisant donc au PCB suivant :
Cela dit, un tel montage ne peut fonctionner d'un point informatique, tout du moins pas tel que nous le souhaitions. En effet, l'idée est de pouvoir commander les commutateurs l'un à l'opposé de l'autre. Plus précisément : nous avons placer 2 transceivers (émetteurs/récepteurs) au niveau de chaque port RJ45 dans le but de gérer la bidirectionnalité de nos signaux. Ils sont donc commandés avec des directions opposées (au nivea des 2 ports RJ45) mais le signal reçu sur la pin OE\ est le même pour les 2 sur un port et l'exact opposé sur l'autre port. Ainsi, le signal de commande de l'un est l'opposé de l'autre. Pour réaliser cela, nous avons utiliser des portes logiques NOT au niveau des pins DIR et OE\ des 4 transceivers. Les 8 pins auxquelles sont reliées nos RJ45 sont en fait un connecteur HE10. Nous allons dénuder un câble RJ45, le couper et venir "mordre" les fils avec ce HE10 qui sera donc relié à nos RJ45.
Montage à base de relais type DPDT :
image schéma