pfe etude-d attaque-finale-1
TRANSCRIPT
DédicacesC’est grâce a dieu que tout a commencé
Et c’est a lui que j rends grâce
Le reste n’est que dédicace
A ma mère Yasmina
Qui m’a porté neuf mois et supporté plus que vingt et un ans
Elle attend ce jour impatiemment, pour l’amour que tu me porte
A mon père Mohamed
Toi dont la raison pour laquelle tu m’aime aucune raison ne peut
Expliquer
A mes sœurs Khouloud et Wissal
je vous souhaite une vie pleine de bonheur et de joie
A mes frères Ala et Hamdi
je vous souhaite beaucoup de succès
A ma chère amie et ma sœur Rabeb
Celui qui m’a conseillé et qui m’a encouragé
A ma collègue Zahra
Qui m’a aidé et soutenu
A toute ma famille, touts mes amis
A tous ceux que j’aime et qui m’aime.
Qu’ils trouvent toute l’expression de mon amour le plus sincère.
Abidi intissar
Dédicaces
Du plus profond de mon cœur et avec l’intensité
De mes émotions, je dédie ce modeste travaille à :
Mon père Hechmi
Ma mère Najet
Pour toutes années de sacrifice, pour l’amour
La patience et surtout la confidence en moi
Que dieu les réserves la bonnes santé et la longue vie
Mes adorables et chers frères
« Chiheb et Jaber »
Et ma chère sœur
« Rafida »
j leurs souhaites une vie pleine de succès et de bonheur
Sans oublie mon binôme
« Intissar»
A toute ma famille que j’aime et j respecte
tous ceux qui me partagent l’amour et le respect
tous mes amis qui je ne les oublierais jamais
tous ceux dont l’oubli du nom n’est pas celui du cœur
Dhouibi Zahra
Remerciements
Avant d’entamer la rédaction de notre rapport du projet de fin d’étude,
nous tenons à exprimer nos vifs remerciements et notre gratitude à tous
ceux qui ont voulu apporter l’assistance nécessaire au bon déroulement
de ce projet.
Nous tenons à exprimer nos sincères remerciements, nos respect en
premier lieu à notre encadreur madame imen Sfaihi Zouari pour leurs
soutiens, ses contributions efficaces à notre formation et sa participation
précieuse ainsi que les conseils qu’elle nous a apporté durant le
déroulement de ce projet.
Nous remercions aussi le corps enseignant de l’institut supérieur
d’Electronique et communication de Sfax pour leur présence a notre
coté.
Nous ne manquerons pas de remercier tous les membres de nos familles
pour leur soutien sans faille.
Toutes les personnes qui nous ont encouragé et aidé de prés ou loin à
l’élaborer ce travaille.
Enfin, nous tenon à remercier les membres de jury, en espérant que ce
travaille soit à la hauteur de leur attente.
Table des matières
Introduction générale.....................................................................................................................1
Chapitre 1 : Présentation générale............................................................................................3
1. Introduction................................................................................................................................3
2. Cadre du projet.....................................................................................................................3
3. Les objectifs de la sécurité informatique.....................................................................3
4. Présentation générale........................................................................................................4
4.1. Qu’est ce qu’un réseau Wi-Fi?.................................................................................................4
4.2. Les différents types de réseaux :.............................................................................................4
4.3. Qu’est ce qu‘un protocole?.....................................................................................................5
5. Problématiques.....................................................................................................................6
6. Solution à ces menaces : les services de sécurité...............................................6
7. Les mécanismes du wep............................................................................................................7
7.1 Qu’est ce que le wep ?.............................................................................................................7
7.2 Les problèmes des wep..........................................................................................................9
8. Conclusion..................................................................................................................................9
Chapitre 2: Etude détaillée des attaques Wi-Fi...................................................................10
1. Introduction..............................................................................................................................10
2. Attaques contre le protocole WEP............................................................................................10
2.1 Attaques récupérant le keystream.........................................................................................10
2.1.1 Attaque par Fausse authentification................................................................................10
2.1.2 Attaque par modification et injection de paquets...........................................................11
2.1.3 Attaque par dictionnaire d’IV...........................................................................................12
2.1.4. Attaque ChopChop..........................................................................................................13
2.1.5 Evaluation........................................................................................................................14
2.2. Attaques récupérant la clé.....................................................................................................15
2.2.1 Algorithme RC4 :..............................................................................................................15
2.2.2 Attaque FMS....................................................................................................................15
2.2.3 Attaque Korek..................................................................................................................15
3. Conclusion................................................................................................................................16
Chapitre 3 : Implémentation et Test pour le Reverse Engineering..............................17
1. Introduction..............................................................................................................................17
2. Les Outils utilisés......................................................................................................................17
3. Déroulement des tests.............................................................................................................18
3.1 Déchiffrement de la clé WEP sous Backtrack5....................................................18
3.1.1 Première étape : mettre la carte en mode monitor.........................................................19
3.1.2 Deuxième étape : lancer la capture des paquets.............................................................20
3.1.3 Troisième étape : Si le rythme de trafic est assez faible, il faut l’activer par la réinjection des paquets :............................................................................................................................23
4. Partie graphique du Backtrak...................................................................................................27
5. Conclusion................................................................................................................................27
Chapitre4 : Implémentation de l’attaque FMS en RC4.....................................................28
1. Introduction..............................................................................................................................28
2. Choix du langage de programmation........................................................................................28
3. Description de notre implémentation..........................................................................................29
3.1 L’algorithme RC4....................................................................................................................29
3.2 L’attaque FMS.........................................................................................................................30
4. Test de notre implémentation..................................................................................................31
4.1 La partie RC4...........................................................................................................................31
4.2 La partie FMS..........................................................................................................................35
5. Conclusion................................................................................................................................36
Conclusion générale.....................................................................................................................37
Références Bibliographiques.....................................................................................................38
Annexes............................................................................................................................................40
Table des figures
Figure 1: Analyse de risque {1}.................................................................................................4Figure 2: Présentation des différents types des réseaux {2}........................................5Figure 3:cryptage et décryptage d’un texte..........................................................................6Figure 4: Cryptage et Décryptage WEP...............................................................................................7Figure 5: Attaque fausse authentification........................................................................................11Figure 6: Attaque ChopChop......................................................................................................14Figure 7: Activation du mode monitor....................................................................................19Figure 8: Capture des paquets..................................................................................................20Figure 9: Capture des paquets..................................................................................................22Figure 10: Attaque par fausse authentification..................................................................23Figure 11: Attaque de réinjection des paquets...................................................................24Figure 12: Augmentation du Data...........................................................................................25Figure 13: Attaque de Deauthentication...............................................................................26Figure 14: Attaque FMS...............................................................................................................27Figure 15:Principe de cryptage WEP.......................................................................................30Figure 16: Chiffrement RC4........................................................................................................32Figure 17: Déchiffrement RC4...................................................................................................32Figure 18:Les étapes de l'application graphique................................................................40
Table des tableaux
Tableau 1: Classification des attaques contre WEP...........................................................16Tableau 2: Description des outils aircrack-ng.......................................................................................18Tableau 3: L’algorithme RC4.....................................................................................................29
Introduction générale
Les réseaux sans fils connus sous le nom de «Wifi», permettent
d’interconnecter plusieurs équipements sans-fil comme des ordinateurs
portables, des ordinateurs de bureau et des périphériques au sein d’un
réseau personnel, d’un réseau local ou d’un réseau étendu. Cette
technologie offre toutes les fonctionnalités des réseaux filaires en
éliminant les contraintes matérielles que le câblage impose sur les
utilisateurs réseaux. Elle simplifie et accélère l’installation des réseaux et
accroît leur souplesse et leur évolutivité tout en favorisant une plus
grande mobilité des utilisateurs. Si le nous ajoutons à ces avantages la
large bande passante en perpétuelle croissance, nous comprenons
aisément que les réseaux locaux sans fil constituent une solution des plus
intéressantes pour les particuliers ou les organisations qui désirent mettre
en œuvre ou étendre un réseau local sans devoir installer ou déplacer des
câbles.
Bien que cela soit très attractif pour des utilisateurs en recherche de
perfection technologique afin d’optimiser leurs méthodes de travail cela
reste un moyen de communication qui doit être contrôlé. En effet, la
technologie sans-fil souffre de plusieurs vulnérabilités. De même, les
mécanismes de sécurité et les méthodes d’authentification mises en place
n’ont pas assuré la sécurité attendue. Ces menaces sont mises en œuvre
à l’aide d’une variété d’outils, de scripts et de programmes permettant de
lancer des attaques contre des réseaux et leurs périphériques. En général,
les périphériques réseaux attaqués sont des points d’extrémité comme les
serveurs, les points d’accès et les ordinateurs.
Dans ce vaste monde des réseaux sans fils, notre travail consiste à
étudier les problèmes de sécurité rencontrés dans ce type de réseau et
détailler les attaques que nous pouvons y appliquer. Ceci entre dans notre
1
politique du reverse engineering afin de trouver des solutions pour éviter
certains attaques et améliorer le choix des solutions de sécurité.
Afin de présenter le travail qui a été effectué, nous débuterons le
présent rapport par un premier chapitre consacré aux généralités liées
aux réseaux locaux sans fil ainsi que les mécanismes de sécurités mis en
place. Ensuite, dans le second chapitre, nous présenterons une étude
détaillée des attaques que nous pouvons y appliquer et distinguer les
différentes classes d’attaques Puis, dans le troisième chapitre, nous
procèderons une implémentation et test pour le reverse engineering. En
plus dans le quatrième chapitre, nous présenterons une implémentation
de l’attaque FMS en RC4. Nous finissons ce travail par une conclusion
générale et quelques perspectives.
2
Chapitre 1 : Présentation
générale
1. IntroductionLa sécurité informatique est considérée comme l'un des critères les plus
importants dans le jugement de la fiabilité d'un système informatique.
Cependant, les réseaux sans fil ne satisfont pas cette contrainte, ce qui
fait d'eux une cible intéressante pour les pirates.
Dans le premier chapitre, nous abordons brièvement des notions qui nous
semblent essentielles à la compréhension du réseau Wifi et les protocoles.
Ensuite, nous poursuivons le travail en décrivant les attaques engendrées.
Pour finir, notre exposé par une implémentation de l’attaque FMS en RC4
et test pour reverse engineering utilison le backtrack.
3
2. Cadre du projetLe présent projet «Etude d’une attaque contre le protocole WEP»
proposé par notre encadrant est réalisé dans le cadre de la préparation
d’un rapport de projet de fin d’études en vue de l’obtention du diplôme de
Licence appliquée en technologie des Réseaux et des
Télécommunications spécialité Administration et Sécurité des Systèmes et
des Réseaux (TRT ASSR) et spécialité Téléphonie et Réseaux IP (TRT TRIP)
à l’Institut Supérieur d’Electronique et de Communication de Sfax (ISECS)
pour l’année universitaire 2012/2013.
3. Les objectifs de la sécurité informatique La sécurité informatique à plusieurs objectifs bien sur liés aux types de
menace ainsi qu’aux types de ressource, etc. … Néanmoins, les points
principaux points sont les suivant :
Empêcher la divulgation non-autorisée de données
Empêcher la modification non-autorisée de données
Empêcher l’utilisation non-autorisée de ressource réseau ou
informatique de façon général
La sécurité permet de :
Analyser les risques
Déterminer les données sensibles
Rechercher des exigences de sécurité fondées sur les critères
cryptographiques : authentification, intégrité, confidentialité,
anonymat et disponibilité
Etudier des vulnérabilités
Etudier des menaces et de leurs occurrences
Mesurer du risque
Déterminer les parties critiques à protéger les risques sur le réseau
4
Figure 1: Analyse de risque {1}
4. Présentation générale
4.1. Qu’est ce qu’un réseau Wi-Fi?
Par définition, un réseau informatique est un ensemble d’ordinateurs reliés
entre eux et échangeant des informations.
4.2. Les différents types de réseaux :
Nous distinguons différents types de réseaux selon leur taille (en termes
de nombre de machine), leur vitesse de transfert des données ainsi que
leur étendue. Les réseaux privés sont des réseaux appartenant à une
même organisation. Nous distinguons essentiellement dans la figure
suivante :
LAN (Local Area Network) dont la portée est de quelques dizaines de mètres.
MAN (Métropolitain Area network) dont la portée est de quelques centaines de
mètres.
WAN (Wide Area Network) dont la portée est de quelques kilomètres
5
Figure 2: Présentation des différents types des réseaux {2}
4.3. Qu’est ce qu‘un protocole?
Un protocole est une méthode standard qui permet la communication
entre des processus (s’exécutant éventuellement sur différentes
machines), c'est-à-dire un ensemble de règles et de procédures à
respecter pour émettre et recevoir des données sur un réseau. Il en existe
plusieurs selon ce que le nous attendons de la communication :
-WEP Le Wired Equivalent Privacy (abrégé WEP) est un protocole pour
sécuriser les réseaux sans fil de type Wi-Fi, défini par le standard 802.11
ratifié en septembre 1999.
Les réseaux sans fil diffusant les messages échangés par ondes
radioélectriques, sont particulièrement sensibles aux écoutes
clandestines. Le WEP tient son nom du fait qu'il devait fournir aux réseaux
sans fil une confidentialité comparable à celle d'un réseau local filaire
classique.
-WPA (Accès Protégé Wi-Fi). C'est une méthode de cryptage des données
pour réseau sans fil. WPA possède des fonctions de sécurité
meilleures que WEP, en utilisant le Protocole Extensible d'Authentication
(EAP: Extensible Authentication Protocol). Il consiste à sécuriser les accès
réseau et il intègre une méthode de cryptage permettant de sécuriser les
données transmises. {8}
WPA a été conçu pour utiliser le serveur d'authentification 802.1X
qui attribue différentes clés à chaque utilisateur. Il est également
disponible avec la "Clé pré-Standard (PSK: Pre-Shared Key)", mais il est
6
dans ce cas moins sécurisé. PSK a été conçu pour un usage privé et pour
les petits réseaux d'entreprise. Le WPA-PSK est aussi appelé WPA-
Personal. WPA-PSK permet à la machine sans fil Brother de s'associer avec
les points d'accès, en utilisant la méthode de cryptage TKIP ou AES.
TKIP est l'abréviation de Temporal Key Integrity Protocol (Protocole de clé
Temporaire). Il s'agit d'une méthode de cryptage.
AES est l'abréviation d’Advanced Encryption Standard (Cryptage Standard
Avancé). Il s'agit &’du dispositif de cryptage standard le plus performant
autorisé par Wi-Fi®.
WPA-PSK et TKIP ou AES utilisent une Clé pré-standard (PSK: Pre-Shared
Key) entre 7 et 64 caractères.
-WPA2 (Wi-Fi Protected Access 2): est un protocole de chiffrement qui
constitue une norme en matière de sécurité sans fil. Votre clé WPA2 est un
code de sécurité alphanumérique qui permet aux utilisateurs autorisés
d'accéder à votre connexion Internet, tout en protégeant le contenu de
votre réseau contre les intrus. {9}
5. Problématiques Un réseau sans fil non sécurisé laisse des personnes non autorisées
écouter ce réseau, y accéder, voire le modifier. Nous pouvons le sécuriser
de façon plus ou moins stricte à différents niveaux : configuration des
équipements d’accès et choix des protocoles.
Figure 3:cryptage et décryptage d’un texte
7
6. Solution à ces menaces : les services de
sécuritéPour remédier aux failles et pour contrôler les attaque, la sécurité
informatique se base sur un certain nombre de services qui permettent de
mettre en place une réponse appropriée a chaque menace. A ce niveau,
aucune technique n’est encore envisagée ; il ne s’agit que d’un niveau
d’abstraction visant à obtenir une granularité minimale pour déployer une
politique de sécurité de façon optimal décrivons les principaux services de
sécurité.
La confidentialité
L'intégrité des données
Le contrôle d'accès
L'identification
La non répudiation
7. Les mécanismes du wep
7.1 Qu’est ce que le wep ?
WEP (wired equivalent privacy): est un protocole de sécurité, C’est une
première initiative de sécurisation des charges sur le réseau wifi. Le
principe du WEP consiste à définir une clé secrète déclarée au niveau des
points d'accès et des clients qui assurera le cryptage et le décryptage des
informations. Tout utilisateur possédant cette clé pourra communiquer sur
le réseau.
Le protocole WEP utilise l'algorithme RC4, (Ron's Cipher 4 développé en
1984 par Ron Rivest pour RSA Data Security), qui permet de générer à
partir d'une clé secrète partagée k de 40 ou 104 bits combiné à un
vecteur d'initialisation IV de 24 bits une séquence pseudo-aléatoire S.
cette séquence est la clé effective du cryptage. L'opération de cryptage
par un ou-exclusif (XOR) entre le texte en clair couplé à son CRC32 et la
séquence S.
8
Figure 4: Cryptage et Décryptage WEP
L’intégrité des données est assurée par la fonction CRC32.
Par ailleurs, l’authentification auprès d’un réseau protégé par WEP a deux
modes : une authentification ouverte et une authentification à clé
partagée. Dans le premier mode, n’importe quel client ayant le SSID ou le
nom du réseau peut s’authentifier et s’associer auprès du point d’accès alors que
dans l’autre seulement les clients possédant la clé peuvent se connecter au
réseau.
Dans le processus partagé d’authentification, le client envoie tout d’abord
une demande d’accès au point d’accès, qui lui renvoie une "challenge
texte". Le client doit encrypter ce texte en utilisant sa clé WEP. Le client
retourne ensuite le paquet au point d’accès et si celui-ci arrive à décrypter
correctement ce paquet, l’authentification a réussi.
L’utilisation du WEP a dévoilé de nombreuses faiblesses. Ainsi plusieurs
articles {3, 4, 5, 6,10} ont été publiés au sujet des failles qui consistent
principalement :
Faiblesses du vecteur d’initialisation : Le champ vecteur
d’initialisation (IV), nécessaire pour le décodage du message circule en
9
clair dans chaque message. Ainsi, un IV est codé sur 24 bits. Sa rotation
peut être de l’ordre de quelques heures sur un réseau chargé. Par la suite
une réutilisation est autorisée.
Faiblesse du contrôle d’intégrité : Le calcul du type CRC, utilisé par
Intégrité Check Value (ICV) ne devrait servir qu’à vérifier si la trame reçue
n’a pas été altérée lors de la communication. Une telle technique est en
fait facile à contourner du fait de sa linéarité : CRC(X+Y)=CRC(X) +CRC(Y).
Donc, il est possible de modifier les données sans pour autant changer la
valeur du CRC et sans que le récepteur s’en aperçoive.
Absence d’une spécification de gestion des clés: la même clé est
utilisée pour le chiffrement et le déchiffrement. Elle est partagée
manuellement entre les clients. Le nombre d’utilisateurs connaissant cette
clé augmentera à mesure que le réseau croîtra.
Le WEP est employé dans un WLAN pour rendre inintelligible à un tiers non
autorisé les données encapsulées dans des trames. (Un paquet ne peut en
effet pas transiter directement sur un réseau.) Le WEP a pour objectif de
satisfaire l’association (s’assurer que nous discutons avec les membres du
même WLAN), la confidentialité, l’authentification et l’intégrité. Il est défini
comme :
-« assez fort » (reasonably strong)
La longueur des clés utilisées rend difficile une attaque de type force
brute, c'est-à-dire avec l’utilisation de toutes les clés possibles.
-« à synchronisation automatique » (self synchronizing)
Chaque paquet contient assez d’informations pour permettre à quiconque
possède la clé de déchiffrer son contenu. La connaissance du contenu des
paquets précédant n’intervient pas dans le déchiffrement. Autrement dit,
les paquets sont autonomes.
-« efficace » (efficient)
Sa simplicité fait qu’il peut être implémenté en logiciel aisément. Cela
signifie aussi que les opérations de chiffrement et de déchiffrement sont
rapides.
-« normalement exportable »
10
Le standard WEP utilise une longueur de clé variable (jusqu’à 2048 bits
mais les USA limitent la taille des clés à l’export)
-é« optionnel »
La mise en place et l’utilisation du WEP dans les équipements sont en effet
optionnelles.
7.2 Les problèmes des wep
Faiblesse de certaines clés RC4.
Le principal problème est qu’une clé de flux ne peut pas être
réutilisée.
Théoriquement, une fois que les 224 clés possibilités ont été
utilisées, il est nécessaire de changer de clé secrète.
La norme ne spécifie pas de méthode précise de gestion de clés.
En pratique, les clés secrètes ne sont quasiment jamais changées.
Pour une borne avec un client avec une connexion de 11Mb/s et
ayant une activité réseau normale, il suffit d’une heure pour couvrir
tout l’espace des clés.
8. Conclusion Dans ce chapitre, nous avons présenté les caractéristiques des réseaux
sans fil et leurs impacts sur la sécurité. Ainsi nous avons cité les
principales attaques contre ce type de réseau et les solutions envisagées.
Nous avons vu comment lutter contre l'écoute passive par le chiffrement
au niveau 802.11 (WEP, WPA,...) et le contrôle d'accès par
l'authentification d'un nœud 802.11 (filtrage des adresses MAC, 802.1x,...).
Malgré l’évolution des mécanismes de sécurité, les chercheurs ne cessent
plus à dévoiler leurs faiblesses et les exploiter pour perturber les réseaux
et même y accéder.
Dans le chapitre suivant, nous mènerons une étude détaillée des attaques
WiFi afin de détecter les failles au niveau des solutions adoptées. Ceci
entre dans notre politique du reverse engineering dans le but d’améliorer
ensuite le choix des solutions de sécurité.
11
Chapitre 2: Etude détaillée des
attaques Wi-Fi
1. Introduction Bien que plusieurs solutions aient été proposées pour sécuriser les
réseaux sans fil, ce type de réseau reste encore la cible de nombreux
attaquants. Dans ce chapitre, nous allons mettre l’accent sur les
vulnérabilités de ces solutions qui représentent les points de départ pour
tout type d’attaque. Ceci à travers l’exploration des travaux de recherche
qui ont révélé les faiblesses et ont mis en œuvre les attaques.
2. Attaques contre le protocole WEP Le nom WEP (Wired Equivalent Privacy) donne l’intuition que ce protocole
est aussi sécurisé qu’un réseau câblé. Nous montrerons plus loin que ce
n’est pas le cas. Nous avons précédemment souligné brièvement les
faiblesses du WEP. Dans cette partie, nous allons mettre l’accent sur
chaque vulnérabilité et détailler les attaques engendrées. Certaines
attaques récupèrent la clé secrète et par la suite peuvent avoir un accès
complet au réseau. D’autres se contentent de récupérer le keystream et
par la suite effectuer quelques perturbations sur le fonctionnement du
réseau.
2.1 Attaques récupérant le keystream
2.1.1 Attaque par Fausse authentification
Pré-requis :
Pour aborder cette attaque, il faut que la méthode d’authentification à clé
partagée soit utilisée dans le réseau protégé par WEP.
Déroulement :
Dans le processus partagé d’authentification, le point d’accès authentifie
le client en lui envoyant en clair une chaine de caractères de 128 octets
12
nommée challenge qui devra être renvoyé chiffré. Un attaquant qui écoute
cette communication, obtient donc le challenge, et son équivalent chiffré
Supposons que :
C : le challenge
PC : paquet chiffré
|| :l’opérateur de concaténation
PC = RC4(IV || Rk) XOR (C || ICV(C))
Vu que l’opération XOR est réversible, l’opération A=B XOR C est
équivalente à B=A XOR C ainsi que C=A XOR B.
Alors, l’attaquant peut obtenir le « keystream » utilisé pour chiffrer le
challenge. Sa valeur est égale à RC4(IV || Rk) = PC XOR (C || ICV(C))
L’attaquant peut donc réutiliser ce « keystream » et s’en servir pour
s’authentifier auprès du point d’accès en chiffrant le nouveau challenge.
La figure ci-dessous illustre ce processus.
Figure 5: Attaque fausse authentification
2.1.2 Attaque par modification et injection de paquets
13
Cette attaque exploite les faiblesses liées au vecteur d’initialisation ainsi
que la fonction CRC32.
Vu que le vecteur d’initialisation est transmis en clair et il est réutilisable,
l’attaquant peut envoyer des paquets avec un ancien vecteur
d’initialisation qui est déjà obsolète dans la communication entre le
véritable client et le point d’accès.
Ainsi, l’attaquant exploite la linéarité de la fonction CRC32.
Cette linéarité se traduit par : CRC(A XOR B)=CRC(A) XOR CRC(B)
Pré-requis :
L’attaquant doit s’authentifier auprès du point d’accès pour que son
paquet soit accepté. Il est ainsi souhaitable que le paquet à modifier ayant
un CRC correcte.
Déroulement :
Soient :
D : un message en clair
C : le message chiffré de (D) tel que C =RC4(IV||Rk) XOR (D||ICV(D))
D’ : Données à injecter à partir d’un paquet chiffré capturé (C) tel que
D’=D XOR Mod.
Mod : c’est la modification que nous voulons apporter sur D ; Mod=D’ XOR
D
Nous avons donc :
C’=RC4(IV||Rk) XOR (D’||ICV(D’))
=RC4(IV||Rk) XOR ((D XOR Mod) || ICV (D XOR Mod))
= RC4(IV||Rk) XOR (D||ICV(D)) XOR (Mod || ICV (Mod))
=C XOR (Mod || ICV (Mod))
Cette relation montre bien qu’à partir de n’importe quel paquet chiffré
valide, il est possible de créer un paquet forgé et par la suite d’injecter
n’importe quelle modification sur ce paquet.
2.1.3 Attaque par dictionnaire d’IV
Une partie de la clé de cryptage se représente par la clé partagée qui est
statique utilisée par le point d’accès et tous ses clients. L’autre partie se
14
représente par le vecteur d’initialisation qui est dynamique modifiable à
chaque nouveau paquet.
En recevant un paquet, le point d’accès le retransmet avec un IV différent
de celui reçu. Alors, l’attaquant va inonder le réseau par un très grand
nombre de paquets en diffusion (ARP, ICMP..). Puis, il calcule le keystream
de chaque paquet retransmis par le point d’accès. Par la suite, il peut
construire un dictionnaire contenant des couples d’IV et le keystream qui
lui correspond.
A ce stade, l’attaquant est capable de décrypter n’importe quel paquet
dont l’IV est stocké dans le dictionnaire. De plus, il peut utiliser ce
dictionnaire pour créer de nouveaux paquets et les injecter dans le réseau.
Pour construire un dictionnaire permettant le décryptage de tout type de
paquet, l’attaquant n’a qu’à enregistrer 1500 octets (taille d’un MTU) de
keystream pour chacun des 24 vecteurs d’initialisation possibles, ce qui
représente à peu près 24 giga octets d’espace. [3]
.
2.1.4. Attaque ChopChop
Cette attaque est publiée par KoreK en 2004 sur un forum de discussion
du site NetStumbler. Elle se base sur la modification et l’injection des
paquets. Donc, elle exige les mêmes conditions que les attaques
précédentes. Son but consiste à déterminer le texte en clair d’un paquet
capturé. Une fois réussi, l’attaquant peut obtenir aussi le keystream et par
la suite il peut injecter d’autres paquets.
Déroulement :
Le principe consiste à récupérer le texte en clair, octet par octet. Il se
résume en ces étapes :
1. Capture d’un paquet à décrypter.
2. Supposer que le dernier octet du texte en clair est un zéro.
3. Enlever ensuite la valeur chiffrée de cet octet dans le paquet crypté. Par
conséquent, nous aurons un nouveau paquet tronqué malformé car la
valeur du checksum est calculée sur le message initial. Pour corriger cette
valeur, KoreK a éprouvé qu’en appliquant un XOR entre le paquet tronqué
15
et une valeur Mod, le paquet devient valide. Il a montré ainsi que cette
valeur dépend uniquement de l’octet tronqué.
4. Envoyer de nouveau ce paquet au point d’accès pour vérifier s’il a bien
deviné l’octet. L’attaquant n’a qu’écouter la réponse du point d’accès :
*Si l’ICV est correcte, le paquet est retransmis et par la suite la proposition
est correcte. L’attaquant a dévoilé le dernier octet du texte en clair.
*Si non, le point d’accès rejette le paquet. Il refait les mêmes étapes en incrémentant de 1 la
valeur proposé du dernier octet, ceci jusqu’à ce qu’il trouve la bonne valeur.
Étant donné qu’il y a 256 valeurs possibles pour l’octet tronqué, il suffit de
les tester tous. En moyenne, il faudra donc envoyer 128 paquets pour
décrypter un octet.
5. Enlever cet octet du message et refaire la même chose avec l'octet
suivant jusqu'à ce qu'il découvre tout le message en clair.
La figure ci-dessous illustre le déroulement de l’attaque ChopChop:
Figure 6: Attaque ChopChop
Ce type d’attaque est un peu long avec des paquets de grande taille, il est
intéressant et pratique avec des paquets dont la plus part de son contenu
est connu.
2.1.5 Evaluation
16
Le degré des menaces apportées par cette classe d’attaque est assez
tolérable. En effet, ces attaques se contentent à la récupération du
keystream. Elles ne permettent pas à l’attaquant un accès direct au
réseau et de se comporter comme un client légitime. Ainsi, l’attaquant n’a
qu’injecter et décrypter quelques paquets en tenant compte de plusieurs
contraintes :
Longueur et type du paquet en jeu : tout paquet à injecter ou à décrypter dépend de la
longueur de keystream obtenu.
Le rythme de changement de la clé secrète dans le réseau : le
keystream récupéré perd son validité si la clé secrète est fréquemment
modifier.
Type de la carte réseau : la transmission et la réception avec la même carte ne sont pas
toujours autorisées.
Ces attaques donnent leurs valeurs sur le plan pratique par inondation de
réseau afin de faciliter la tâche des attaques récupérant la clé secrète.
2.2. Attaques récupérant la clé
2.2.1 Algorithme RC4 :
Le RC4 a été conçu par Ronald Rivest de RSA Security en 1987. Officiellement nommé Rivest Cipher 4, l'acronyme RC est aussi surnommé Ron's Code comme dans le cas de RC2, RC5 et RC6.
Les détails de RC4 furent initialement tenus secrets mais en septembre 1994, une description du chiffrement fut postée de manière anonyme sur la liste de diffusion Cypherpunks 1. Le message apparut ensuite sur le forum sci.crypt 2 puis sur divers sites. L'algorithme avait vraisemblablement fait l'objet d'une rétro-ingénierie. Sur le plan légal, RC4 est une marque déposée dont les implémentations non officielles sont autorisées sous un autre nom que RC4, car l'algorithme n'a pas été breveté. La version non officielle de RC4 est aussi connue sous le nom de « ARCFOUR », « ARC4 » ou « Alleged RC4 » (signifiant « RC4 supposé » puisque RSA Security n'a jamais officiellement publié les spécifications de l'algorithme).Il a par la suite été utilisé dans des protocoles comme WEP, WPA ainsi que TLS. Les raisons de son succès sont liées à sa grande simplicité et à sa
17
vitesse de chiffrement. Les implémentations matérielles ou logicielles sont faciles à mettre en œuvre.
2.2.2 Attaque FMS
Définition de l’attaque :
En 2001, cette attaque est publiée par Scott FLURHER, Itsik MANTIN et Adi
SHAMIR. Son nom correspond d’ailleurs à leurs initiales : FMS A la
différence des attaques précédentes, cette attaque récupère la clé
secrète. Elle est considérée parmi les premières attaques dans cette
classe. Elle exploite des faiblesses liées à l’algorithme RC4 et aux vecteurs
d’initialisations. Son principe est dévoiler les octets de la clé un par un.
{13, 14, 15,16}
2.2.3 Attaque Korek
En 2004, Korek a cherché d’autres corrélations entre la clé secrète et les
premiers octets de keystream. Les corrélations sont au nombre de 17
capable de déterminer les octets de la clé un par un. Certaines sont déjà
connues, d’autres sont découvertes par Korek lui-même.
Chacun d’eux a une probabilité de succès bien définie à l’exception de
celle nommée A-neg. Elle permet de réduire l’espace de recherche en
identifiant les valeurs à rejeter.
Ces attaques peuvent être décomposées en trois classes: {12, 15,17}
*La première, pour déterminer un octet K[L], utilise les valeurs de K[0]
jusqu’à K[L-1] et X[0]
*La deuxième utilise en plus X[1]
*La troisième permettant simplement de réduire l’espace de recherche des clés, en
identifiant les valeurs à rejeter
Dans l’ensemble, la structure de l’attaque est la même que celle de FMS.
Chacune des attaques est lancée l’une après l’autre, jusqu’à ce que l’une
d’elles trouve la clé. En pratique, un nombre de paquets capturés de 500
000 suffit à casser la majorité des clés WEP de 104 bits {17}.
18
Contrairement à l’attaque FMS, ces attaques ne nécessitent pas des
vecteurs d’initialisations faibles. Les vecteurs sont en fait choisis en
fonction de l’état dans lequel ils laissent les algorithmes KSA et PRGA.
Chaque attaque est accompagnée d’une liste de conditions sur le KSA et le
PRGA après initialisation partielle. Si ces conditions sont vérifiées, le
paquet peut être utilisé.
Par exemple, l’attaque A s-5-1 est une généralisation directe de l’attaque
FMS. Alors que FMS ne s’intéresse qu’à une classe d’IV, connue pour
vérifier certaines propriétés, A s-5-1 vérifie pour chaque IV s’il vérifie la
resolved condition.
Les attaques contre WEP
Attaque liés à RC4 Attaque non liées à RC4
FMS
Korek
Fausse authentification
Attaque par modification et injection
Tableau 1: Classification des attaques contre WEP
3. Conclusion
Dlans ce chapitre, nous avons intéressé au protocole WEP et. Nous avons analysé également les
attaques que nous pouvons y appliqué.
Dans le chapitre suivant, nous essayerons de mener et réaliser plusieurs
attaques sur un réseau WiFi afin de détecter les failles, de mesurer les
problèmes et la robustesse du réseau et de proposer des solutions et des
corrections améliorant la sécurité pour ces type de réseau.
19
Chapitre 3 : Implémentation et
Test pour le Reverse
Engineering
1. Introduction Après notre étude de différents protocoles de sécurité mis en place pour
un réseau sans fil ainsi que l’exploration dans le fonctionnement de
chacun, une discussion est menée sur leurs faiblesses et une étude
détaillée des attaques que nous pouvons appliquer contre chacun d’eux
est achevée. Dans ce chapitre, nous allons tester quelques attaques : tout
d’abord, nous commençons par une description de notre environnement
matériel et logiciel de test. Ensuite, nous passons à présenter les résultats
obtenus ainsi que les interprétations tirées. Une spécification exacte de
notre environnement est essentielle. Vers la fin, nous allons présenter les
résultats de notre simulation des attaques FMS contre WEP.
2. Les Outils utilisés Les logiciels utilisés dans la sécurité WiFi sont d’une diversité énorme. Il
existe plusieurs logiciels conçus spécialement pour la plateforme linux
permettant d’analyser le trafic réseau, injecter des faux paquets et
réinjecter d’autres,…. Nous avons choisi la suite aircrack-ng car elle
englobe presque toutes les attaques ciblant un réseau sans fil protégé par
le protocole WEP ou WPA. Dans ce qui suit, nous allons décrire cette suite
ainsi que les commandes exécutées pour tester les attaques.
Backtrak{18}: est une version de Linux, ( Un système D’exploitation,
OS ) L’objectif de ce système est de réunir des outils permettant de tester
la Sécurité d’un Réseau, Il est bien entendu Utiliser par de nombreux
Hackers
BackTrack est donc un système d’exploitation, Nous allons utiliser la
Version 5 r3. Cette Version dispose d’un mode Graphique, d’un Navigateur
20
Internet ( Mozilla Firefox etc…) , et pleins d’autres fonctionnalités
disponible sous Ubuntu ou d’autres Variantes de Linux.
BackTrack n’est pas non plus une Solution Miracle pour le Hacking, il faut
maitriser Linux pour pouvoir l’exploiter Pleinement.
Si vous debutez, vous faites le bon choix en l’utilisant, avec de bon Tuto
sur le Net, Nous n’apprenons très vite pour des résultats surprenants.
Nous avons utilisé la distribution Linux BackTrack. C’est une distribution
qui regroupe un ensemble d’outils nécessaires aux tests de sécurité d’un
réseau. Elle inclut de nombreux logiciels : aircrack-ng, Metasploit RFMON…
Aircrack-ng : est une suite d’outils utilisée afin d’obtenir l’accès à un
réseau wifi crypté en WEP ou WPA, essentiellement utilisé sous linux.
Une description de quelques outils de cette suite est dans le tableau 2.
Outils Description Aircrack-ng L’outil le plus important, il assure le crack d’un réseau crypté en WEP ou
WPA .il implémente la plus part des attaques contre WEP (FMS,Korek, Klein, PTW…) et d’autres contre WPA (Brute force, Beck-Tews...)
airmon-ng Outil pour injecter et capturer des paquets 802.11 bas niveau, nous devons activer le mode monitor. C’est le mode à travers lequel l’interface capture n’importe quels paquets même ceux qui ne lui sont pas destiné.
aireplay-ng Outil pour vérifier si nous pouvons s’associer au point d’accès, injecter des paquets…
airodump-ng Outil utilisé pour capturer des paquets
Tableau 2:Description des outils aircrack-ng
3. Déroulement des tests
3.1 Déchiffrement de la clé WEP sous Backtrack5Les réseaux sans fil (Wi-Fi) sont devenus très courant ces dernières
années, et il n'est pas rare aujourd'hui dans les zones urbaines de capter
plusieurs dizaines de points d'accès Wi-Fi appartenant à des particuliers ou
des entreprises. Décrit dans la norme IEEE 802.11, les réseaux sans fil, de
part l'impossibilité de facilement limiter leurs propagation, ont rapidement
nécessités l'emploi d'un codage des transmissions. La première
implémentation d'un processus de sécurité à grande échelle sur les
réseaux sans fil a été mise en place avec le protocole WEP. Le but de ce
protocole était de rendre les connexions WiFi semblable aux réseaux
filaires sur le plan de la confidentialité des transmissions, comme son nom
21
l'indique, puisque WEP est l'acronyme de "Wired Equivalent Privacy". Mais
très rapidement (en 2001 via l'attaque FMS) des faiblesses majeures ont
été découvertes dans ce protocole, et la sécurité offerte par le WEP est
aujourd'hui inexistante. Pourtant, nous trouvons encore de nombreux
réseaux cryptés par du WEP, alors que son remplacent, le cryptage WPA
(appelé WPA2 dans sa version finale) est maintenant éprouvé et
clairement plus solide. Même si pas infaillible lui non plus...
Beaucoup de MachinBox utilise par défaut le cryptage WEP si l'on active le
Wi-Fi, même si les plus récents modèles commencent à le remplacer par
WPA. Ce dernier ne garantie en rien une sécurité infaillible et il est
aujourd'hui lui aussi crackable par force brute. Mais il demande plus de
temps/de puissance de calcul pour obtenir la clé, ainsi que des conditions
favorables. L'un des outils les plus rapide pour s'attaquer aux réseaux
WPA est disponible sous Windows, il s'agit d'ElcomSoft Distributed
Password Recovery. Il permet d'utiliser les GPU NVIDIA en complément
pour le calcul et de distribuer ce calcul sur plusieurs machines, permettant
ainsi de réduire considérablement le temps nécessaire pour cracker une
clé. Il semble que le travail de deux chercheurs Japonais, Toshihiro
Ohigashi et Masakatu Morii, permette de cracker un réseau WPA utilisant
TKIP (PDF) (mais pas ceux utilisant AES) en moins d'une minute. Leur
méthode, qui sera présentée le 25 septembre prochain, est visiblement
difficile à mettre en œuvre à l'heure actuelle, mais elle permet de
renforcer les craintes sur la faiblesse des réseaux sans-fils cryptés avec
WPA, au moins dans un avenir proche. Nous lançons l’ordinateur de
l’attaquant avec Backtrack, puis nous lançons un shell. A fin d’exécuter
n’importe quel attaque, nous devons suivre ces étapes.
3.1.1 Première étape : mettre la carte en mode monitor
Nous vérifions tout d’abord que la carte Wi-Fi de l’ordinateur est bien détectée par Backtrack
avec la commande airmon-ng. Ensuite, nous activons le mode monitor de la carte Wi-Fi afin
d’écouter les réseaux Wi-Fi. La commande à exécuter est la suivante :
22
Figure 7: Activation du mode monitor
Le message nous indique que le mode monitor de la carte est disponible via l’interface mon0.
Pour le reste des étapes, il faudra donc utiliser l’interface mon0.
3.1.2 Deuxième étape : lancer la capture des paquets
Nous allons commencer par surveiller tous les réseaux qui utilisent le WEP afin de trouver
notre cible, avec la commande suivante :
--encrypt : Filtre en fonction de la sécurité du réseau (wpa ,wep,opn).
Nous obtenons la figure 8 comme résultat :
23
Figure 8: Capture des paquets
Le résultat de ce scan est une source d'information primordiale pour
repérer et choisir la cible. Il se divise en deux parties, la première traitant
les points d'accès la seconde les stations (typiquement les ordinateurs)
connectées aux points d'accès.
Voici une brève description des champs visibles dans la première partie :
BSSID : L'adresse MAC de l'AP.
PWR : La force du signal. Une valeur de -1 indique un problème de
calcul sans incidence.
Beacons : Le nombre de Beacons reçu, ces petits paquets
qu'emploies les AP pour s'annoncer. Ils n'ont pas d'intérêt ici.
#DATA : Cette colonne est primordiale. Plus vous aurez de #DATA
(et donc de IVs), plus le crack sera rapide.
#/s : Nombre de #DATA par seconde. Pas très utile ici.
24
CH : Le canal utilisé par l'AP. Information utile pour réduire le champ
du scan et se concentrer sur la cible.
MB : La vitesse de l'AP, à l'heure actuelle, une écrasante majorité de
54 MB (802.11g).
ENC : Autre colonne primordiale, elle indique le protocole de
cryptage employé par l'AP.
CIPHER : La méthode d'authentification utilisée par l'AP.
AUTH : Complément de la méthode d'authentification.
ESSID : Le nom du réseau Wi-Fi de l'AP. Celui que le nous indiquons
habituellement pour se connecter de façon "classique".
Et les champs disponibles dans la seconde partie :
BSSID : L'adresse MAC de l'AP
STATION : L'adresse MAC de la station connecté à l'AP
PWR : La force du signal.
Rate : Le taux de transfert ?
Lost : Le nombre de paquets perdus ?
Packets : Le nombre de paquets capturés ?
Probes : Le nom de l'ESSID auquel la station est connectée.
Pour affiner la capture et nous concentrer sur la cible, nous allons
préciser nos arguments de capture passés à airodump-ng :
Les conditions nécessaires sont réunies afin de déchiffrer la clé WEP. Nous arrêtons
airodump-ng. Puis, nous le relançons en ciblant le point d’accès (--bssid
26 :5A :84 :21 :F2) et en sauvegardant un fichier de capture (-w out).
Ceci est exécuté par cette commande :
-- write : Nom du fichier cap de sortie.
-- channel : canal où se situe l’AP ( entre 1 et 13).
25
-- bssid : Filtre en fonction de la sécurité du réseau.
Nous obtenons la figure 9 comme résultat :
Figure 9: Capture des paquets
L'emploi de l'option --bssid AP_MAC_address permet de limiter la
capture au seul paquet provenant le l'AP dont nous indiquons l'adresse
MAC. Ça permet surtout de créer des fichiers (avec l'option -w fichier) de
capture contenant uniquement des paquets intéressants dans le cadre du
crack de la cible, et ainsi d'optimiser la procédure.
Revenons à cette option -w fichier. Celle-ci va créer deux fichiers :
* ASSR_TRIP.cap
*ASSR_TRIP.txt
Ce premier fichier .cap nous sera très utile pour le crack de la clé WEP,
puisqu'il contient des captures de paquets qui seront analysées
par aircrack-ng pour cracker la clé.
3.1.3 Troisième étape : Si le rythme de trafic est assez faible, il faut l’activer par la réinjection des paquets :
Test de l’association au réseau cible
Nous ouvrons un nouveau shell pour pouvoir utiliser aireplay-ng en parallèle avec airodump-
ng. En premier lieu, nous utilisons ce programme afin de vérifier s’il est possible de s’associer
au point d’accès cible et injecter des paquets.
Nous exécutons la commande suivante :
26
Figure 10: Attaque par fausse
authentification
Les paramètres sont:
-1 : Indique une "fake authentication".
0 : Indique le temps a laisser entre 2 tentatives.
-e ESSID : Il faut remplacer ESSID par le nom du réseau indiqué dans la
colonne ESSID par airodump-ng.
-a AP_MAC_Address : Il faut remplacer AP_MAC_Address par l'adresse
MAC de l'AP indiqué dans la colonne BSSID par airodump-ng.
-h STATION_MAC_Address : Il faut remplacer STATION_MAC_Address par
l'adresse MAC de la station indiqué dans la colonne STATION
par airodump-ng.
mon0 : A remplacer par le nom de votre interface de capture
Le message « association successful » confirme le succès de l’opération.
Cette étape permet principalement de vérifier la présence ou non d'un
filtrage sur l'adresse MAC mis en place sur l'AP. Cependant, il arrive
parfois que l'association échoue même en cas d'absence de filtrage...
Cette étape n'est donc pas d'une fiabilité absolue. De plus, en fonction de
la qualité de réception du signal de l'AP cible, le résultat de cette
authentification peut être long à venir.
Donc, ça ne coute rien de tenter la "fake authentification", mais il ne faut
pas conclure grand chose du résultat obtenu, sauf en cas de réussite
rapide de l'authentification !
Accumulation de paquets pour préparer le crack
Ensuite, nous lançons l’attaque de réinjection des paquets (aireplay-ng avec l’option -3 permet
l’injection de paquet de type ARP). L’objectif de l’attaque consiste à s’interposer entre le
27
point d’accès et la machine connectée, d’intercepter les paquets et les retransmettre de
manière transparente à la machine destinatrice.
Il s'agit maintenant de générer du trafic pour obtenir les paquets
contenant des IVs dont nous avons besoin pour cracker la clé WEP. Pour
réaliser cette tâche, nous utilisons une fois de plus aireplay-ng
Donc nous n’avons qu’exécuter cette commande :
Figure 11: Attaque de réinjection des paquets
-3 : Indique qu’il s’agit d’une injection de paquets.
-e : Nom du réseau.
-a AP_MAC_Address : Il faut remplacer AP_MAC_Address par l'adresse
MAC de l'AP indiqué dans la colonne BSSID par airodump-ng.
-h STATION_MAC_Address : Il faut remplacer STATION_MAC_Address par
l'adresse MAC de la station indiqué dans la colonne STATION par
airodump-ng.
-r : Fichier cap à se servir pour l'injection lors de l'attaque FMS par
exemple. Facultatif
Cette commande va créer un fichier "ASSR_TRIP.cap" qui contiendra les
paquets. Ces fichiers .cap sont au centre du crack, ils contiennent les
données indispensables à aircrack-ng pour casser rapidement la clé.
28
Avec aireplay-ng, le facteur important est de faire monter le plus vite
possible le nombre de paquets ARP capturés. Entre le lancement de
aireplay-ng et le début de la capture de paquets ARP, il peut s'écouler un
long moment, mais une fois un paquet dans les filets, les autres vont
suivre très rapidement.
Le programme aireplay-ng sauvegarde donc les arp capturés dans un fichier.
Une fois lancée, nous pouvons voir son effet dans le shell airodump-ng : le nombre de paquets
capturés affichés dans la colonne Data augmente ce qui montre la figure ci-dessous :
Figure 12: Augmentation du Data
Attaque de type " Deauthentification"
Si jamais le premier paquet ARP ne veut vraiment pas venir, il est possible
de lancer une attaque de "Deauthentication". Dans le cadre d'un crack de
clé WEP, une telle attaque, si elle réussie, va forcer une brève
déconnexion de la station cible. Cette station va alors se reconnecter
automatiquement, et il arrive que les machines sous Windows vident leurs
caches ARP en cas de déconnexion, ce qui provoque l'envoi d'un paquet
ARP tant attendu... Cette déconnexion est transparente sur la machine
cible dans une large majorité de situation, si et uniquement si vous
n'injectez pas de trop nombreux paquets. Soyez prudent par exemple de
ne pas utiliser 0 comme nombre de paquets et de laisser le processus
tourner.
29
Voici la commande pour lancer une attaque de "Deauthentication" :
aireplay-ng -0 1 -e Wisecs1 –a 00 :26 :5A :84 :21 :F2 –c
DC:85:DE:69:E3:97 mon0
Figure 13: Attaque de Deauthentication
-0 : Indique une attaque par "Deauthentication"
1 : Indique le nombre de paquet de "Deauthentication" qui doivent
être envoyer. 0 force l'envoi de façon continuelle, jusqu'à l'arrêt
du processus
-a AP_MAC_Address : Il faut remplacer AP_MAC_Address par l'adresse
MAC de l'AP ou est connecté la station visée.
-c STATION_MAC_Address : Il faut remplacer STATION_MAC_Address
par l'adresse MAC de la station à déconnecter. Si vous n'indiquez aucune
adresse MAC ici, toutes les stations connectées seront la cible de
l'attaque, mais il est recommandé de cibler l’attaque pour plus de succés.
mon0 : A remplacer par le nom de votre interface de capture.
Le succès de ce type d'attaque n'est pas garanti, mais elle peut ce révéler
très efficace contre certains types de machine.
Notez également que cette attaque envoie les paquets directement sur la
station cible, sans passer par l'AP, ainsi, si vous êtes juste assez proche de
l'AP, mais que la station est située un peu plus loin de votre carte Wi-Fi, il
est possible que la cible ne soit pas joignable alors que son AP l'est.
30
Le crack
Nous arrivons maintenant au crack de la clé WEP à proprement parler.
Nous estimons qu'il faut environ 300 000 IVs pour cracker une clé WEP 64
bits, et environ 1 000 000 pour une clé WEP 128 bits. Dans la pratique, il
en faut généralement beaucoup moins, puisque que des parutions datant
de 2007 indiquent que 40 000 IVs suffisent...
Pour cracker la clé, nous utilisons le programme aircrack-ng ainsi
Il est plus que recommandé d'utiliser fichier .cap pour allez chercher les
paquets à analyser aussi bien dans le retour de aireplay-ng que dans celui
de airodump-ng. Pendant ce temps, laissez tourner airodump-
ng et aireplay-ng pour continuer d'alimenter les fichiers .cap.
Et après quelques temps, si tout ce passe bien :
Figure 14: Attaque FMS
31
4. Partie graphique du BacktrackIL existe une autre méthode pour cracker une clé wep, plus utilisé que
l’airmon. Cette méthode contient une application graphique (voir
annexe).
5. ConclusionDe nos jours, le cryptage WEP n'est plus du tout sécurisé quelque soit la
taille de votre clé encryptage. Il suffit avec la nouvelle attaque Ptw
d'accumuler 40 000 IVS afin de cracker une clé Wep 256 bits en une
dizaine de minutes ! Le gros problème du cryptage Wep est que les
paquets transités par la borne Wifi contiennent des informations sur la clé
Wep. Il suffit alors de les sniffer afin de déchiffrer la clé Wep (c'est
d'ailleurs le rôle d'Airmon-ng).
Par conséquence, nous oublions ce type de cryptage et nous adoptons
immédiatement un cryptage avec une clé WPA ou WPA2 qui ne peut se
cracker que par Brute Force.
Chapitre4 : Implémentation de
l’attaque FMS en RC4
1. Introduction
Un des objectifs de ce projet est d'acquérir une meilleure compréhension
d'un algorithme ou d'un protocole et tenter de mettre en œuvre il
découvre de nombreux détails autrement pas apparents et renforce la
structure et la fonctionnalité de chacun. Par conséquent, sur le plan
personnel le but de ce projet de recherche est d'acquérir une
compréhension plus profonde de WEP et surtout l'attaque FMS en RC4.
32
Ce projet est fournir des ressources pour la communauté au sens large
intéressés à en apprendre d’avantage sur ces sujets à travers la mise en
œuvre d’algorithme Fms.
Nous avons implémenté l’attaque Fms en utilisant le langage de
programmation C. Dans ce chapitre, nous allons décrire tout d’abord
pourquoi le langage C ? Ensuite, nous allons décrire notre code. Et enfin,
nous allons tester notre code avec quelques commandes.
2. Choix du langage de programmation
Aujourd'hui, l'informatique est présente dans tous les domaines de la vie courante, mais à des
degrés différents. Il y a pour cela trois grandes raisons :
Les gains (en temps, argent, qualité) que l'informatique peut apporter,
Le prix abordable des matériels,
La disponibilité de logiciels dans tous les domaines.
Deux domaines sont pleinement exploités :
Les logiciels généraux, vendus en grande série, et donc relativement bon marché,
Les logiciels spécifiques, d'un coût total important et donc limités à des sujets très
pointus, pour de très grosses industries.
Le domaine intermédiaire, qui peut encore se développer, concerne les programmes
spécifiques, pour des applications de moindre importance. Pour cela, il est nécessaire de
disposer de langages de programmation C. Donc il est souvent le meilleur choix. En effet,
c'est un langage structuré, avec toutes les possibilités des autres langages structurés. Mais il
permet également (avec son extension C++) de gérer des objets. A l'inverse, il permet
également une programmation proche du langage machine, ce qui est nécessaire pour accéder
aux interfaces entre l'ordinateur et son extérieur. Mais son principal avantage est que ces trois
types de programmation peuvent être combinés dans un même programme, tout en restant
portable sur tous les ordinateurs existants. {11}
3. Description de notre implémentation
3.1 L’algorithme RC4L’algorithme RC4 est constitué de deux parties
33
*RC4-KSA( Key Scheduling Algorithm) prend en entrée la clé K et génère en
sortie un tableau d’état S.
*RC4-PRGA( Pseudo Random Generation Algorithm) utilise le tableau S résultant pour
générer la suite aléatoire finale nécessaire au chiffrement (keystream)
Le tableau ci-dessous décrit le déroulement de chacune.
RC4-KSA RC4-PRGA
byte S [N] ; // N = 2^8 = 256
byte K[L ] ; // L:longueur de la clé
int i , j ;
for ( i =0; i<N; i++)
S [ i ] = i ;
for ( i =0; i<N; i++)
j = i + S [ i ] + K[ i%L] % 256;
swap (S [ i ] , S [ j ] ) ;
byte S [N] ; // fourni par KSA
int count = xxx , i =0, j =0;
//nombre des octets de keystream
voulu
for ( i =1; i<=count ; i++ % 256)
j = j + S [ i ] % 256;
swap (S [ i ] , S [ j ] ) ;
p r i n t f ( "%d" , S [ S [ i ]+S [ j ] ] % 2 5 6 ) ; // l’octet obtenu à l’itération j
Tableau 3:L’algorithme RC4
Nous adoptons quelques notations afin d’expliquer le fonctionnement des
attaques suivantes :
Si : état du tableau S après ième itération de l’algorithme RC4
ji : la valeur de j après ième itération de l’algorithme RC4
X: keystream
K=IV||Rk
Rk : la clé secrète
34
Figure 15:Principe de cryptage WEP
3.2 L’attaque FMSLe FMS exige la capture d’un grand nombre des paquets cryptés et la
récupération du premier octet du keystream.
Déroulement :
Les chercheurs ont découvert des situations où l’algorithme KSA divulgue
des informations sur la clé. Ils ont nommé cette situation « resolved state
». Il est assez simple de vérifier si un paquet donné mène à telle situation.
En effet, avec l’algorithme KSA, si les L premiers octets de la clé K
utilisés pour générer un keystream X sont connus, il est possible de
simuler les L premiers étapes de RC4-KSA.
Pour déterminer un octet K [L], certaines conditions doivent être
vérifiées, après les L étapes de RC4-KSA. Ces conditions sont:
1. SL [1] <L
2. SL [1] + SL [SL [1]] =L
35
Une fois ces conditions sont vérifiées, ils proposent de calculer une
fonction Ffms définie comme suit :
Ffms (K[0],..,K[L-1],X[0])=SL-1 [X[0] ] - JL - S L[L]
Cette fonction détermine la valeur de l’octet K[L] avec une
probabilité de succès égale à 5%.
Vu que le vecteur d’initialisation est transmis en clair, la valeur
initiale de L est égale 3.
Ils ont indiqué que les vecteurs d’initialisations vérifiant ces
conditions sont nommés « Weak IV » et ils ont le format (3+i, 255,
m) avec i est l’indice de l’octet à déterminer et m peut être une
valeur de l’ensemble {0, 1,…,255}.
Pour réaliser l’attaque, l’attaquant capture les paquets du réseau
protégé par WEP et récupère le premier octet de keystream utilisé
pour crypter ces paquets. Puis, il sélectionne les paquets dont l’IV
vérifie les conditions et calcule la valeur Ffms correspondant à
chaque paquet. Chaque résultat de Ffms peut être considéré comme
une proposition de Rk[0]. La valeur correcte de Rk[0] est la valeur le
plus fréquent. Ensuite, il passe à deviner les octets suivants de Rk[1]
jusqu’à Rk[L-1] dans l’ordre en suivant un traitement répétitif sur
l’ensemble de paquets capturés.
Une fois tous les octets ont été récupérés, il vérifie la validité de la
clé an essayant de décrypter un certain nombre de paquets : si la
clé est correcte, l’attaque est bien réalisée. Si non, il cherche quelle
est la décision incorrecte de Rk[i]. Il existe plusieurs méthodes de
rangement {15}. Par exemple, il peut choisir la décision pour
laquelle la différence entre la meilleure valeur retournée par Ffms et
la seconde meilleure valeur soit minimale. L’attaquant corrige la
décision d’ordre i dans l’arbre de décision et continue l’attaque avec
la valeur alternative.
La première implémentation de cette attaque est faite par Adam
Stubblefield. Un nombre de paquets entre 5.000.000 et 6.000.000
sera suffisant pour réussir l’attaque sur une clé de 104 bits. {14}
36
4. Test de notre implémentation
4.1 La partie RC4Pour RC4, il existe trois modes d'entrée pour notre programme.
Pour crypter, utilisez-a, qui chiffre le texte d’entrée en ASCII sur la
ligne de commande. Le format approprié est le suivant :
RC4 -a KeyinHex keyLengthInBytes DataInASCII
DataLengthInBytes
Par exemple:
Figure 16: Chiffrement RC4
Cela va afficher le texte chiffré en notation Hexadecminal. Ceci doit être
fait parce que environ 1/3 des caractères ASCII valides sont invisibles ou
difficilement entré sur la ligne de commande, et ayant chiffré vous ne
pouvez pas déchiffrer serait inutile.
Deux choses à noter: texte ASCII avec des espaces doivent être saisis
entre guillemets. Lors de compte tenu de clés et de données de longueurs,
chaque valeur hexadécimale est de 4 bits, de sorte que le nombre d'octets
volonté à la moitié du nombre de caractères hexadécimaux.
Pour décrypter, utilisez-h, qui prend les données au format
hexadécimal. Le format correct est le suivant:
RC4 -h KEYINHEX keyLengthInBytes DataInHex
DataLengthInBytes
Par exemple:
37
Figure 17: Déchiffrement RC4
Cela va afficher le texte crypté / décrypté en hexadécimal. Depuis que
vous êtes susceptibles d'être décryptage à la mode h, la représentation
ASCII sera également fournie.
Le troisième mode d'entrée, avec le drapeau-f, va crypter ou
décrypter un fichier entier (jusqu'à une taille de 4 Go ~limitation). Il
faut dans une longueur de clé et la clé comme les deux autres
modes, mais au lieu de saisir les données à chiffrer, vous fournir un
fichier d'entrée et de votre destination souhaitée pour le fichier de
sortie. Le bon format est le suivant:
RC4 -f KEYINHEX keyLengthInBytes InputFile OutputFile
Voici un exemple :
*Nous avons crée tout d’abord deux fichier F1 et F2
Ensuite, nous écrivons le mot « bonjour » dans F1 et nous laissons
F2 vide
38
Et nous avons effectué un exemple le suivant :
RC4 -f KEYINHEX keyLengthInBytes InputFile OutputFile
RC4 -f AAAAAAAAAAAAAAAA 8 "F1" "F2"
Nous obtenons le résultat comme suit :
Nous remarquons par défaut le fichier F2 contient le mot « bonjour »
chiffré.
39
Par la suite, nous créons un aut1re fichier nommé F3 et nous laissons vide.
Et nous avons appliqué ce format :
RC4 -f AAAAAAAAAAAAAAAA 8 "F2" "F3"
Nous obtenons le résultat comme suit :
Nous remarquons par défaut le fichier F3 contient le mot « bonjour ».
4.2 La partie FMSLe programme fms permet d’exploiter les faiblesses de l’algorithme Rc4
pour cracker la clé wep.
fms <messages
Où messages est un fichier contenant des lignes comme:
iv plaine de chiffrement
Lorsque ceux-ci sont toutes les valeurs en hexadécimal ASCII sans préfixe.
(par exemple 001122 12 34) et nous obtenons comme résultat :
40
Le testeur FMS prend deux arguments de ligne de commande, une clé et
un message de test. Il émet le résultat de test d'erreur standard, et
renvoie la valeur 0 pour le succès et -1 en échec.
5. Conclusion Le RC4 est un algorithme symétrique. Pour décrypter, utiliser le bon mode
d'entrée et de fournir le texte chiffré et la clé utilisée pour chiffrer.
Conclusion générale
Les réseaux sans fil en général, et le Wi-Fi en particulier sont des technologies
intéressantes et très utilisées dans de divers domaines. Cette diversification d'utilisation
revient aux différents avantages qu'apportent ces technologies, comme la mobilité, la
simplicité d'installation, la disponibilité. Mais, ils introduisent de nouveaux problèmes
notamment la sécurité qui reste un sujet très délicat. En effet, le manque de protection
41
physique des points d’accès et la transmission sur des liens radios sont les causes principales
de la vulnérabilité des réseaux sans fil. Ainsi, depuis l'utilisation de ce type de réseaux
plusieurs failles ont été détectées.
Malgré des problèmes de sécurité intrinsèques, les réseaux sans fil continuent à se
développer. Il est donc important de bien connaître les problèmes liés à la sécurité de ce type
de réseaux afin d'en limiter les effets néfastes. Dans cette optique, nous avons étudié en
premier temps d’une façon générale les attaques wifi. Ensuite, nous avons approfondi le
fonctionnement des algorithmes de sécurité, nous avons traité les failles de chacun d’eux et
nous avons tiré les principales attaques inspirées d’une étude détaillée des travaux de
recherche. Ainsi, nous avons noté que certaines attaques persistent même en adoptant des
protocoles de sécurité.
En effet, nous avons passé en revue les principales attaques contre le WEP. En plus,
nous avons détaillé les RC4 dans une implémentation. Nous avons montré que cet algorithme
n’apporte pas un niveau de sécurité satisfaisant. Pour cela nous avons implémenté nous-
mêmes l’attaque FMS qui a permis de retrouver la clé secrète utilisée sur un réseau WiFi à
partir des paquets capturés.
Notre travail, nous avons apporté une meilleure compréhension du fonctionnement du
WiFi, des méthodes de cryptanalyse et des attaques sur les algorithmes de
chiffrement. Le reverse engineering nous avons permis de mieux voir les
failles pour mieux choisir les solutions.
Comme perspectives à notre travail, d’autres algorithmes tels que TKIP utilisé par
WPA, AES utilisé par WPA2 méritent d’être testés et analysés avec la même démarche suivie
dans notre travail afin de détecter les défaillances de telles solutions et de sélectionner à la fin
l’algorithme le plus adéquat.
Références Bibliographiques
{1} http://perso.citi.insa-lyon.fr/mminier/images/MASTER_part1.pdf
{2}Les Technologies de l'Information et de Communication, moteur de ... jmdejaeger.free.fr
42
{3} N. Borisov, I. Goldberg et D. Wagner, « Intercepting Mobile
Communications: The
Insecurity of 802.11 »
{4} Jesse R.Walker, « unsafe at any key size; an analysis of the WEP
encapsulation », October 2000.
{5} Alexander Gutjahr, « Wired Equivalent Privacy(WEP) Fonctionnality,
Weak Points, Attacks », 2009
{6} Lasse Kosetski Deleuran, Thomas Loftager, Nielsen Henrik
Gammelmark «Cryptography E2006 Insecurity of the IEEE 802.11 Wired
Equivalent Privacy (WEP) standard» 15 December 2006
{7} http://www.pouf.org/documentation/securite/html/node48.html
{8} http://fr.wikipedia.org/wiki/Wi-Fi_Protected_Access
{9} http://fr.wikipedia.org/wiki/Wi-Fi_Protected_Access
{10} Brash Habibi Lashkari, Mir mohammad Seyed Danesh, Behrang
Samadi, “ A survey on wirless security protocols(WEP,WPA and
WPA2/802.11i”, 1999
{11} Patrick TRAU, « Langage C » (URL:
http://www-ipst.u-strasbg.fr/pat/program/tpc.htm)
{12} Finn Michael Halvorsen, Olav Haugen “ Cryptanalysis of IEEE 802.11i
TKIP”, Juin 2009
{13} S. Fluhrer, I. Mantin, A. Shamir, « Weakness in the Key Scheduling
Algorithm of RC4»
Eighth Annual Workshop on Selected Areas in Cryptography, Août 2001.
{14} Adam Stubblefield, John Ioannidis, Aviel D. Rubin “Using the Fluhrer,
Mantin, and Shamir Attackto Break WEP”
{15} These Erick Tews “Attacks on The WEP protocol” 2007
{16} Adam Stubblefield, John Ioanniidis, Aviel Drubin, “A key recovery
attack on the 802.11b Wired Equivalent Privacy Protocol (WEP), 2001
{17} Rafik Chaabouni, “Break WEP faster with statistical analysis”, juin
2006
{18} http://fr.wikipedia.org/wiki/BackTrack
43
Annexes
Annexe A: comment cracker la clé wep en mode
graphique
Il n y’a pas toujours le airmon ou bien le aircrack pour cracker le mot de
passe (password) d’un wifi. Nous avons montré deux applications très
utiles que l’airmon.
La première application : nous suivrons les étapes suivantes:
Figure 18:les étapes de l'application graphique
-Premièrement, nous sélectionnons l’interface wlan0
44
L’interface wlan0 est apparait
Deuxièment, nous cliquons sur Scan for Access points pour trouver les wifi de type WEP
45
Nous cliquons sur Scan for Access points, nous trouvons combien de wifi
de type WEP et de type WPA. Par la suite on clic sur le Key Database, on a
donné les informations suivantes : les points d’accès, tous les réseaux wifi,
les Channels, les keys et les adresses MAC.
Nous trouvons un seul wifi de type WEP« Wisecs1 », un simple clic sur ce
46
wifi donne tous ses détailles : Essid, Bssid, channel, power et encryption et
on choisit l’attaque d’ARP Request Replay, puis on lance l’attaque avec un
clic sur le bouton ‘Attack’
47