WiFi : le WPA est-il sûr ?

Introduction

À l’heure actuelle, on entend tellement parler des failles de sécurité que l’on peut avoir l’impression que plus rien ne protègera bientôt notre vie privée. L’idée que nos données sont en sûreté sous-tend la majorité des services en ligne ; sans cela, la vie sur le web serait extrêmement différente de ce qu’elle est aujourd’hui. Et pourtant, on lit de plus en plus régulièrement dans la presse l’histoire d’un hacker ou d’un groupe de pirates qui a contourné les mesures de sécurité mises en place par une société (de la petite PME à la plus grande multinationale) afin de compromettre des données à caractère privé. Il y a de quoi perdre confiance…

Image 1 : WiFi : le WPA est-il sûr ?

Rien d’étonnant, donc, à ce que la sécurité représente un souci important pour la plupart d’entre nous, de même que les comportements et le matériel à adopter. Au-delà du fait qu’en cas de piratage, il faille souvent changer son mot de passe, la principale source de colère réside dans ce sentiment que l’on ressent lorsqu’on ouvre sa banque en ligne et qu’on se rend compte que quelqu’un nous a dérobé notre mot de passe et s’en est servi pour vider votre compte.

Dans notre article Peut-on casser un mot de passe avec une carte graphique ?, nous avions passé en revue la sécurité des archives et identifié les faiblesses potentielles des données stockées sur nos disques durs. Bien que les données recueillies lors de nos tests aient été utiles (et aient de fait permis à de nombreux lecteurs de prendre conscience du fait que leurs données n’étaient pas suffisamment en sécurité), il faut bien admettre que notre dossier manquait probablement de portée : pour la plupart, nous ne chiffrons tous simplement pas les données que nous considérons pourtant comme précieuses.

Nous sommes par ailleurs vulnérables d’autres manières : à moins que votre réseau soit purement câblé, vous vous connectez probablement à Internet via un réseau WiFi, que ce soit chez vous ou au bureau. Comme le dit l’adage, toute chaîne a la force de son maillon le plus faible ; dans bien des cas, ce maillon faible est le mot de passe qui protège notre réseau sans fil.

On trouve sur Internet énormément d’informations sur la sécurité des réseaux sans fil, tellement qu’il peut s’avérer difficile de faire le tri. Notre objectif dans cet article est de clarifier la situation et d’utiliser le matériel dont nous disposons dans nos laboratoires afin de tester la résistance des mesures de sécurité qui protègent un réseau sans fil. Nous commençons par cracker un réseau chiffré en WEP et terminons par une attaque du WPA par force brute réalisée via le cloud computing. Vous devriez rapidement avoir une assez bonne idée de la fiabilité des protections qui entourent votre réseau WiFi.

Configuration de test

Dans le cadre de cet article, nous emploierons le terme WPA pour désigner le WPA et le WPA2. Par ailleurs, les techniques décrites ne sont affectées ni par le chiffrement TKIP ni par l’AES.

Ordinateur de bureau
Ordinateur portable
(Lenovo ThinkPad T410)
Processeur
Intel Core i5-2500K (Sandy Bridge) 3,3 GHz, LGA 1155, 6 Mo de cache L3 partagéIntel Core i5-540M (Arrandale) 2,53 GHz, PGA 988, 3 Mo de cache L3 partagé
Carte-mère
Asrock Z68 Extreme4

Mémoire
8 Go (2 x 4 Go) de DDR3-1333 Kingston Hyper-X @ DDR3-1333, 1,5 V8 Go (2 x 4 Go) de DDR3-1333 Crucial
Support de stockage
Samsung 470 256 Go
Seagate Momentus 5400.6 500 Gp
Cartes graphiques
Palit GeForce GTX 460 1 Go
Nvidia GeForce GTX 590
AMD Radeon HD 6850
AMD Radeon HD 6990

Nvidia Quadro NVS 3100M
Alimentation
Seasonic 760 watts, 80 PLUS

Carte réseau
Carte AirPcap Nx USB
Carte AirPcap Nx USB
OS et pilotes
OS
Windows 7 Édition Intégrale 64 bits
Backtrack 5 64 bits
DirectX
DirectX 11
Pilotes Windows
AirPcap 4.1.2
Catalyst 11.6
Nvidia 275.33
AirPcap 4.1.2
Pilotes Linux
Catalyst 11.6
Nvidia 275.09.07

Logiciels de crackage
Cain & Abel
Version : 4.9.40
Aircrack-ng
Version : 0.70
Elcomsoft Wireless Security AuditorVersion : 4.0.211 Professional Edition
Pyrit
Version : 0.4.1-dev


Image 2 : WiFi : le WPA est-il sûr ?

La majorité des tests réalisés pour cet article l’ont été en situation réelle, mais nous avons rencontré quelques cas où la force du signal du réseau que nous ciblions était insuffisante pour procéder à nos expériences. Dans ces quelques rares cas, nous avons utilisé un routeur Linksys E4200 configuré en 802.11g à 2,4 GHz.

Un réseau sécurisé : la première des défenses

Image 3 : WiFi : le WPA est-il sûr ?

Si vous êtes connecté à Internet, la sécurité parfaite n’existe pas, mais cela ne veut pas dire qu’il soit impossible de rendre votre système extrêmement difficile à compromettre en lui ajoutant diverses couches de protection. Les banques disposent de plusieurs mécanismes de sécurité pour éviter les cambriolages (physiques) ; il en va de même pour les réseaux bien conçus. Malheureusement, les réseaux domestiques sont souvent moins bien protégés, à la fois pour des raisons de coûts et parce qu’il faut une certaine expertise pour rester en avance sur les personnes qui souhaiteraient accéder à tout ce qui se trouve derrière votre pare-feu.

En pratique, plutôt que d’avoir plusieurs couches de sécurité, beaucoup d’utilisateurs ne se protègent qu’à l’aide de leur seul routeur. C’est lui qui sépare le réseau local d’Internet et qui empêche les étrangers d’accéder directement aux ordinateurs du réseau local. C’est donc lui qui se trouve en première ligne en cas d’attaque.

Image 4 : WiFi : le WPA est-il sûr ?

Il ne constitue toutefois pas uniquement la première ligne de défense, mais également la plus importante. Pourquoi ? Nombreux sont les utilisateurs qui estiment pouvoir améliorer la sécurité de leurs données en installant un pare-feu logiciel et en chiffrant certains de leurs fichiers à l’aide d’un programme comme TrueCrypt. Malheureusement, ces mêmes personnes ne réfléchissent souvent pas au fait qu’elles partagent d’autres fichiers avec les autres utilisateurs de leur réseau local ; nous le faisons tous, que ce soit pour des raisons de facilité ou par nécessité. Lorsque nous adoptons ce type de comportement, la seule chose qui protège nos données des pirates se trouvant à portée de notre WiFi est la qualité des mécanismes de sécurisation de notre réseau. Dans ce type de scénario, le fait que trafic en provenance d’Internet soit sécurisé ne change strictement rien.

Alors certes, il est à l’heure actuelle plus facile que jamais de streamer un film en WiFi depuis le NAS vers le PCHC du salon, mais toute personne capable de passer outre les protections que nous mettons en place peut dès lors avoir accès à nos données. Et nous ne parlons même pas des dégâts qui peuvent être causés par les pirates accédant au système via Internet en camouflant leur adresse afin qu’elle semble provenir de notre propre réseau.

Image 5 : WiFi : le WPA est-il sûr ?

Avant l’avènement du WiFi, on pouvait compter sur l’intégrité physique des câbles réseau pour éviter les accès non autorisés, mais à l’heure actuelle, il faut non seulement se préoccuper des attaques en provenance d’Internet (en espérant qu’un pare-feu suffise) mais également de celles plus proches de chez nous… C’est à ce niveau que la sécurisation des réseaux sans fil entre en jeu.

Bien entendu, nous partons du principe que les lecteurs de Tom’s Hardware ne laissent pas leur réseau grand ouvert et utilisent un protocole de sécurité visant au minimum à décourager les voisins un peu trop baladeurs ou les pirates en herbe de faire leurs armes à leur dépens.

Le WEP est mort

Le protocole WEP (Wired Equivalent Privacy) a été le premier algorithme de sécurité employé pour restreindre l’accès aux réseaux sans fil. Lancé en 1999 dans le cadre de la norme 802.11, il a toutefois très rapidement été considéré comme insuffisant et a, dans la pratique, été remplacé par le WPA (Wi-Fi Protected Access).

Image 6 : WiFi : le WPA est-il sûr ?

Si vous possédez un vieux routeur ne prenant en charge que le WEP, vous n’êtes pas en sécurité. La Wi-Fi Alliance a abandonné le WEP en 2003 car il était trop facile à cracker. Il suffit en effet de 20 € de matériel, de quelques logiciels gratuits, d’un minimum de connaissance et de 10 minutes environ pour cracker un mot de passe WEP (voir notre article). Si vous utilisez encore ce protocole, il est plus que temps de passer au WPA.

Pour vous donner une idée, sachez que nous avons pu cracker une clé WEP avoisinante en à peu près cinq minutes à l’aide des logiciels Cain & Abel et Aircracking-ng et d’une carte WiFi AirPcap Nx. La longueur de la clé n’affecte pas la durée du piratage.

Image 7 : WiFi : le WPA est-il sûr ?

Le nœud du problème réside dans la facilité avec laquelle il est possible d’écouter un réseau WEP afin d’y renifler les informations nécessaires pour cracker le code RC4 qui sous-tend le protocole. Même si le nombre de paquets transitant entre le routeur et les clients légitimes du réseau est insuffisant, il est possible d’envoyer des paquets de manière à en obtenir d’autres en retour et d’utiliser ces réponses pour découvrir la clé réseau. Il est même possible d’éjecter un utilisateur du routeur afin de générer des paquets contenant les informations d’authentification. Bref, le WEP n’est absolument pas sûr ; si vous vous souciez de la sécurité de vos données, mieux vaut l’éviter comme la peste.

Comprendre le WPA/WPA2

Hachage, salage et transformations

WPA/WPA2, WinZip, WinRAR, l’API de chiffrement de données Microsoft Data Encryption, Apple FileVault, TruCrypt et OpenOffice utilisent tous la fonction PBKDF2 (Password-Based Key Derivation Function 2.0). Son avantage ? Il ne suffit pas de posséder le mot de passe pour avoir accès à ce qu’il protège ; il faut également générer une clé (un code de déchiffrement) à partir de celui-ci.

Il s’agit de l’une des différences les plus critiques entre le WEP et le WPA. Le WEP ne masque pas votre mot de passe, ce qui constitue un risque énorme car les hackers peuvent l’extraire directement des paquets envoyés durant l’authentification. Il leur suffit donc de rester confortablement assis dans leur voiture, voire dans un centre commercial, pour pénétrer dans le réseau de leur choix : dès qu’ils ont suffisamment de paquets, en extraire la clé et se connecter au réseau est un jeu d’enfant. Le WPA est différent car le mot de passe est codé (« haché »), ce qui oblige les hackers à adopter un autre tactique : l’attaque par force brute.

Image 8 : WiFi : le WPA est-il sûr ?

Nous nous sommes récemment rendus compte qu’il existait chez beaucoup de nos lecteurs une certaine confusion concernant les concepts liés au chiffrement des connexions sans fil : rainbow tables, hachage, salage, transformations…

La conversion d’un mot de passe en clé de déchiffrement se fait essentiellement en deux parties. La première est le salage (salting en anglais). Il s’agit d’une méthode utilisée en cryptographie et destinée à éviter que deux système ayant le même mot de passe n’aient la même clé. Sans salage, deux machines utilisant le même mot de passe (même s’il s’agit d’une coïncidence) se retrouveraient avec la même clé, ce qui constituerait une faille de sécurité en raison de l’existence de « rainbow tables », d’énormes tableaux permettant de trouver énormément de mots de passe pour autant que l’on connaisse la clé. Le salage rend les rainbow tables à peu près inutiles car il ajoute à chaque mot de passe une valeur aléatoire avant de générer la clé. Cela fait également de la génération de la clé une fonction unidirectionnelle, car il est impossible de retrouver le mot de passe original à partir de la clé. Il arrive par exemple fréquemment que le SSID soit utilisé pour saler les mots de passe WPA ; par conséquent, même si votre voisin utilise le même mot de passe que vous, sa clé de chiffrement sera différente si son réseau a un nom différent.

PBKDF2 pousse les choses encore plus loin en faisant appel à une fonction de dérivation de clé (key derivation function ou KDF). L’idée est simple, mais sa mise en œuvre nécessite de bonnes connaissances en mathématiques. Elle se compose de deux étapes :

  1. Générer deux jeux de données (data1 et data2) à partir du mot de passe et du salage.
  2. Calculer la clé de chiffrement à l’aide d’une transformation en boucle qui ressemble à ce qui suit :

        for (int i=0; i<iteration_count; i++)
                {
                data1 = SHA1_Transform(data1, data2);
                data2 = SHA1_Transform(data2, data1);
                  }

Au départ, le mot de passe et le salage (les bits aléatoires) servent à générer le premier jeu de données, c’est-à-dire la clé de chiffrement non définitive. Celle-ci est ensuite continuellement hachée, de manière cyclique : chaque calcul repose sur le résultat du calcul précédent et la clé change donc en permanence. Cette opération est répétée plusieurs milliers de fois, jusqu’à obtention de la clé de chiffrement définitive. Étant donné qu’il est impossible d’inverser le processus, les hackers doivent effectuer une attaque par force brute pour recréer la clé à chaque tentative de saisie du mot de passe.

Cette suite de transformations représente 99 % du temps de traitement nécessaire lors d’une attaque par force brute ; les pirates se trouvent donc face à un véritable mur. Il existe malheureusement d’autres techniques, comme le hash cracking, qui permet d’essayer simultanément plusieurs mots de passe et est considérablement plus rapide car le processus de chiffrement ne fait appel ni à la fonction de dérivation de clé ni au salage, mais les attaques de ce type ont une portée bien plus limitée, dans la mesure où tout chiffrement réellement sécurisé emploie à la fois le salage et la fonction de dérivation de clé.

Pour vous donner une idée des différences d’échelles entre les diverses techniques de chiffrement utilisables, sachez que WinZip procède à 2002 transformations SHA-1 pour générer une clé. Cette valeur est constante quelle que soit la longueur du mot de passe, qui peut comporter jusqu’à 64 caractères, raison pour laquelle un mot de passe de 10 caractères est aussi facile à cracker en AES-256 qu’en AES-128. Le WPA, par contre, procède à 16 388 transformations pour transformer une clé primaire (master key ou MK) en clé PMK (Pairwise Master Key), ce qui rend les attaques par force brute huit fois plus longues qu’avec WinZip/AES.

Image 9 : WiFi : le WPA est-il sûr ?

Le WPA repose sur un mécanisme à clé pré-partagée (pre-shared key ou PSK) : l’utilisateur légitime saisit une clé primaire (via l’interface de configuration de son routeur et celle de sa carte WiFi), mais les pirates ne peuvent renifler que la clé PTK (Pairwise Transient Key) durant l’établissement de la connexion, appelée « four-way handshake ».

L’authentification repose quant à elle sur la dérivation de la clé PTK au départ de la clé PMK, elle-même dérivée de la clé primaire (MK). Il faut cinq ou six transformations supplémentaires pour passer de la clé PMK à la clé PTK, mais on représente généralement les vitesses de crackage de clé WPA en clés PMK par seconde car il s’agit de la portion la plus lourde de l’attaque par force brute.

Cracker le WPA : il faut d’abord renifler

Pénétrer dans un réseau chiffré en WPA est une opération en trois étapes.

  1. Reniflage (sniffing) : le hacker intercepte des paquets en transit afin de réunir les données nécessaires pour procéder à l’attaque.
  2. Analyse syntaxique (parsing) : il inspecte ensuite les paquets collectés pour voir s’il y trouve un établissement de liaison (handshake) valide. Cette étape est critique : les informations que le hacker tente de capturer font moins d’un mégaoctet au total, mais elles doivent inclure des paquets contenant la clé d’authentification PTK. Il faut donc que quelqu’un se connecte au réseau pendant le reniflage.
  3. Attaque : le hacker procède à une attaque par force brute.

Les trois étapes sont bien distinctes et varient selon le système d’exploitation employé. À l’heure actuelle, les ninjas du réseau ont tendance à préférer Linux, mais il existe également sous Windows des outils parfaitement valables.

Quels que soient les logiciels utilisés, il ne suffit pas de saisir les bonnes commandes pour cracker un mot de passe WPA ; le reniflage est probablement l’étape la plus difficile, car elle nécessite une carte sans fil d’un type particulier. Son pilote doit vous donner accès aux informations de bas niveau du protocole 802.11, ce qui n’est pas le cas de l’immense majorité des cartes disponibles dans le commerce, dont le pilote filtre les paquets 802.11 bruts et les rendent invisibles par les couches supérieures employées par le système d’exploitation.

Image 10 : WiFi : le WPA est-il sûr ?

Malgré tout, le matériel nécessaire ne coûte pas un bras : on trouve des cartes sans fil permettant de réaliser l’opération à moins de 50 €. Au final, ce qui sépare les débutants des vrais hackers, ce sont donc les compétences. Sans entrer dans les détails, vous pouvez voir sur les captures d’écrans de cette page qu’il n’est pas bien difficile de lancer l’opération. Au final, il ne nous a fallu qu’une dizaine de minutes pour obtenir les données nécessaires pour commencer l’attaque, c’est-à-dire passer à la troisième étape.

Image 11 : WiFi : le WPA est-il sûr ?

Il y a toutefois un élément que nous nous devons de mentionner : pour pouvoir capturer les informations d’authentification (le « four-way handshake »), il faut surveiller les paquets transmis lorsqu’un poste client tente de se connecter au point d’accès WiFi. C’est en effet durant l’établissement de la connexion que sont transmises les informations qui intéressent les hackers. Si aucun client ne se connecte au réseau, le hacker doit patienter…

Si un client est déjà connecté, il reste possible de capturer les données requises en forçant une tentative de reconnexion. Comment ? En ciblant un utilisateur spécifique et en l’éjectant du réseau, ce qui ne nécessite qu’une simple instruction en ligne de commande.

Image 12 : WiFi : le WPA est-il sûr ?

Lorsque nous avons fini de renifler les paquets, nous devons utiliser un logiciel de crackage pour procéder à l’attaque par force brute proprement dite. Il existe au total moins de dix logiciels capables d’effectuer ce genre d’opération (Linux et Windows compris), et la majorité d’entre eux, tels que Aircrack-ng et coWPAtty, reposent sur des attaques par dictionnaire et nécessitent donc que vous leur fournissiez une liste de mots à vérifier. Au final, seuls deux logiciels réalisent les attaques par force brute de manière réellement aléatoire : Pyrit (combiné à John the Ripper sous Linux) et Elcomsoft Wireless Security Auditor (Windows).

Sans grande surprise, réaliser une attaque demande plus d’implication sous Linux que sous Windows : il faut tout d’abord employer Aircrack-ng pour le reniflage et l’analyse syntaxique puis passer à Pyrit couplé à coWPAtty (conversion de la clé PMK en PTK) pour l’attaque par force brute ; sous Windows, Elcomsoft Wireless Security Auditor permet de réaliser l’opération de A à Z en moins de 10 clics de souris, pour autant que l’on dispose d’une carte WiFi AirPcap.

Bien que le crackage soit légèrement plus compliqué sous Linux, il est également moins cher : la version totalement automatisée de WSA coûte en effet 1199 $ (un prix qui donne tout de même le droit à un renifleur intégré ainsi qu’à l’utilisation de 32 cores CPU et 8 cores GPU, voire de matériel spécialisé comme le Tableau TACC1441) tandis que la version standard, limitée à 2 cores CPU et un core GPU, revient à 399 $ et ne contient pas de renifleur.

OS
Linux
Windows
Windows (totalement automatisé)
Reniflage (sniffing)
Aircrack-ng
Aircrack-ngWireless Security Auditor Pro Edition
Analyse syntaxique (parsing)
Aircrack-ngWireless Security Auditor Standard EditionWireless Security Auditor Pro Edition
Crackage
Pyrit via CoWAPtty
Wireless Security Auditor Standard Edition
Wireless Security Auditor Pro Edition
Prix du logiciel
Free
399 $
1199 $

Attaque par force brute

Si vous souhaitez plus d’informations sur le fonctionnement des attaques par force brute, nous vous conseillons de consulter notre article Peut-on casser un mot de passe avec une carte graphique ?, mais en résumé, les attaques de ce type consistent à tenter de deviner le mot de passe et à vérifier si ça marche. Tout est donc question de vitesse et de puissance de traitement.

Contrairement aux banques, les réseaux WPA n’imposent aucune restriction en matière d’authentification : pour autant qu’il soit suffisamment persistant, un hacker peut donc essayer de deviner le mot de passe autant de fois qu’il le désire.

Caractères disponibles en anglais
Nombre de mots de passe possible (2 caractères)
Nombre de mots de passe possible (4 caractères)Nombre de mots de passe possible (6 caractères)
Minuscules
676
456 976
308 915 776
Minuscules et majuscules
2704
7 311 616
19 770 609 664
Minuscules, majuscules et chiffres
3844
14 776 336
56 800 235 584
Tous les caractères ASCII imprimables
8836
78 074 896
689 869 781 056

Les attaques par force brute ne sont efficaces que si elles s’effectuent à grande vitesse, car le nombre de mots de passe potentiels croît de manière exponentielle en fonction de jeu de caractères employés et la longueur du mot de passe (nombre de mots de passe possibles =n[longueur du mot de passe] , où n est le nombre de caractères possibles).

La plupart du temps, les hackers ne connaissent toutefois pas la longueur de votre mot de passe, raison pour laquelle ils doivent procéder à une recherche exhaustive de l’ensemble des combinaisons envisageables en commençant par la liste des caractères elle-même.

Crackage CPU : c’est loooooong

Image 13 : WiFi : le WPA est-il sûr ?

Si la personne qui essaye de pénétrer dans votre réseau chiffré en WPA n’est armée que d’un processeur de bureau conventionnel, vous n’avez pas trop de souci à vous faire pour la sécurité de vos données. Les 16 388 transformations SHA-1 ralentissent considérablement les attaques par force brute : alors que nous étions parvenu à cracker les archives WinZip à 20 millions de mots de passe par seconde dans notre dernier article, nous n’atteignons plus qu’une vitesse de l’ordre de 5000 mots de passe par seconde lorsqu’il s’agit de décoder du WPA sur un Intel Core i5-2500K.

Durée totale de la recherche à 5000 mots de passe WPA par seconde
Mots de passe de 1 à 4 caractères
Mots de passe de 1 à 6 caractèresMots de passe de 1 à 8 caractèresMots de passe de 1 à 12 caractères
Chiffres
Instantané
4 minutes
6,5 heures
7,5 ans
Minuscules
2 minutes
18 heures
1.5 ans
662 263 ans
Minuscules, majuscules et chiffres (alphanumérique)
52 minutes
140 jours
1481 ans
D’ici le prochain Big Bang, peut-être
Tous les caractères ASCII imprimables
5 hours
5 ans
48 644,66 ans
D’ici le prochain Big Bang, peut-être


Voilà un exercice totalement futile. Il n’y a aucun moyen de cracker un mot de passe de plus de six caractères alphanumériques par force brute sur un Core i5. Et si vous utilisez tous les caractères ASCII imprimables, un mot de passe de plus de cinq caractères est même suffisant.

Image 14 : WiFi : le WPA est-il sûr ?

Notez que les chiffres du tableau ci-dessus sont valables pour WSA sous Windows ; avec Pyrit et coWPAtty sous Linux, nous descendons à 3307 mots de passe par seconde et les délais sont donc encore plus longs.

Image 15 : WiFi : le WPA est-il sûr ?

Dans les pages suivantes, nous allons par contre présenter deux chiffres sous Linux : les résultats obtenus via la commande de benchmark de Pyrit et ceux indiqués par coWPAtty en conjonction avec Pyrit. La commande de benchmark de Pyrit s’emploie fréquemment pour mesurer les performances des GPU mais ne tient pas compte des dernières transformations utilisées pour passer de la clé PMK à la clé PTK, la conversion s’effectuant hors du logiciel Pyrit.

CoWPAtty et Elcomsoft Wireless Security Auditor testent quant à eux la vitesse à laquelle les clés primaires (MK) sont comparées aux informations relatives à la clé PTK contenues dans les paquets capturés. Il s’agit donc de chiffres obtenus en situation réelle.

Crackage GPU : AMD vs Nvidia

Nous avons vu que le cassage par CPU était extrêmement lent, mais que se passe-t-il lorsqu’on emploie des GPU ?


Intel Core i5-2500K
Nvidia GeForce GTX 460 1 Go
Cores
4 (pas de HT)
336
Fréquence
3,3 GHz (de base)
1350 MHz
Wireless Security Auditor
4752 mots de passe/s18 105 mots de passe/s
Pyrit Benchmark3949,13 clés PMKs/s
17 771,6 clés PMKs/s
Pyrit via coWPAtty3306,85 mots de passe/s19 077,15 mots de passe/s
Temps nécessaire pour cracker un mot de passe de 1 à 6 caractères alphanumériques
140 jours et 14 heures (WSA)
35 jours (Pyrit)
Temps nécessaire pour cracker un mot de passe de 1 à 8 caractères alphanumériques1480 ans et 311 jours (WSA)368 ans et 319 jours (Pyrit)


L’écart de performances par rapport aux CPU est immense : une simple GeForce GTX 460 est environ quatre fois plus rapide qu’un Core i5-2500K.

Image 16 : WiFi : le WPA est-il sûr ?

Le Tableau TACC1441 de Forensic Computers, Inc. que nous avons mentionné précédemment aurait en fait dû nous mettre la puce à l’oreille concernant les capacités des cartes graphiques en matière de calculs GPGPU.Le Tableau TACC1441 est en effet un FPGA composé d’une multitude de processeurs fonctionnant en parallèle dans le but spécifique d’attaquer plusieurs types de mécanismes de chiffrement. Sur ce plan, cette puce ressemble fort à un GPU.

Nous savons maintenant ce que vaut une carte graphique milieu de gamme par rapport à un processeur milieu de gamme. Mais que se passe-t-il si nous optons pour une configuration plus musclée ?

Image 17 : WiFi : le WPA est-il sûr ?

Il est frappant de voir à quel point les cartes AMD sont plus rapides que les Nvidia ; il faut toutefois dire que la Radeon HD 6990 est dotée d’un plus grand nombre d’ALU que la GeForce GTX 590. Et il a déjà été démontré que les ALU d’AMD fonctionnaient ici de manière plus efficace que ceux de Nvidia.

Pour une raison que nous ignorons encore, nous avons toutefois dû activer le CrossFire pour que la deuxième Radeon HD 6990 soit reconnue par WSA, alors que généralement, les configurations multi-GPU n’ont pas besoin de fonctionner en CrossFire ou en SLI pour fonctionner en collaboration. Il faut savoir que ces deux technologies sont susceptibles de ralentir les attaques par force brute, car elles sont conçues pour équilibrer les charges entre les cartes graphiques. Et de fait, dans notre cas, nous avons constaté que le CrossFire avait un effet négatif sur les performances. Par contre, lorsque nous le désactivons, l’évolution des performances avec plusieurs cartes est linéaire sous Linux, comme nous nous y attendions.

Le temps nécessaire pour casser un mot de passe via une attaque par force brute sur carte graphique dépend entièrement du nombre de cores dont vous disposez et de la vitesse à laquelle ils fonctionnent.

Temps nécessaire pour cracker
Mots de passes de 1 à 6 caractères alphanumériques
Mots de passes de 1 à 8 caractères alphanumériques
Nvidia GeForce GTX 460 1 Go35 jours (Pyrit via coWPAtty)368,9 ans (Pyrit via CoWPAtty)
Nvidia GeForce GTX 59011,6 jours (Pyrit via coWPAtty)122,5 ans (Pyrit via coWPAtty)
2 x Nvidia GeForce GTX 5906,5 jours (WSA)68,66 ans (WSA)
AMD Radeon HD 685020,4 jours (WSA)
214,75 ans (WSA)
AMD Radeon HD 69905,88 jours (WSA)62,24 ans (WSA)
2 x AMD Radeon HD 69903,08 jours (Pyrit via coWPAtty)32,97 ans (Pyrit via coWPAtty)


Les configurations comprenant deux GeForce GTX 590 ou deux Radeon HD 6990 sont relativement rares, mais il doit bien se trouver quelques gamers parmi vous qui en possèdent une. Même dans ce cas, cependant, il apparaît clairement que les mots de passe de sept caractères ou plus sont relativement à l’abri. Notez toutefois que les chiffres du tableau ci-dessus reflètent un scénario catastrophe : c’est un peu comme si on demandait à la carte graphique de citer dans l’ordre tous les chiffres de 00 à 99 alors que la bonne réponse est 99 ; elle aurait tout aussi bien pu être 00, ce qui aurait réduit considérablement le temps de la recherche.

Amazon EC2 : cracker via le cloud

Image 18 : WiFi : le WPA est-il sûr ?

Cracker des mots de passe se révèle plus facile lorsque l’on a accès à des moyens hors normes. C’est pourquoi nous avons utilisé Pyrit et l’avons “nourri” avec les clusters Tesla du cloud Amazon EC2.

Image 19 : WiFi : le WPA est-il sûr ?

Amazon appelle ses serveurs « Cluster GPU Quadruple Extra Large Instances ». Ils se composent chacun des éléments suivants :

  • 22 Go de mémoire vive
  • 33,5 unités de traitement EC2 (chacune étant composée de deux Intel Xeon X5570 quad-core basés sur l’architecture Nehalem)
  • 2 GPU Nvidia Tesla M2050 (basés sur l’architecture Fermi)
  • 1690 Go de stockage
  • 64 bits
  • Performances en E/S : Ethernet 10 Gbit/s
  • Nom de l’API : cg1.4xlarge


Ces serveurs ne fonctionnent que sous Linux, raison pour laquelle nous n’avons d’autre choix que de recourir à Pyrit. Par contre, il est parfaitement possible d’ajouter des nœuds clients à votre serveur maître afin d’y distribuer la charge de travail. Vous vous demandez ce que cela donne en termes de rapidité ? Rien que sur le serveur maître, nous sommes parvenus à atteindre des vitesses comprises entre 45 000 et 50 000 clés PMK/s.

Computed 47956.23 PMKs/s total.
#1: ‘CUDA-Device #1 ‘Tesla M2050”: 21231.7 PMKs/s (RTT 3.0)
#2: ‘CUDA-Device #2 ‘Tesla M2050”: 21011.1 PMKs/s (RTT 3.0)
#3: ‘CPU-Core (SSE2)’: 440.9 PMKs/s (RTT 3.0)
#4: ‘CPU-Core (SSE2)’: 421.6 PMKs/s (RTT 3.0)
#5: ‘CPU-Core (SSE2)’: 447.0 PMKs/s (RTT 3.0)
#6: ‘CPU-Core (SSE2)’: 442.1 PMKs/s (RTT 3.0)
#7: ‘CPU-Core (SSE2)’: 448.7 PMKs/s (RTT 3.0)
#8: ‘CPU-Core (SSE2)’: 435.6 PMKs/s (RTT 3.0)
#9: ‘CPU-Core (SSE2)’: 437.8 PMKs/s (RTT 3.0)
#10: ‘CPU-Core (SSE2)’: 435.5 PMKs/s (RTT 3.0)
#11: ‘CPU-Core (SSE2)’: 445.8 PMKs/s (RTT 3.0)
#12: ‘CPU-Core (SSE2)’: 443.4 PMKs/s (RTT 3.0)
#13: ‘CPU-Core (SSE2)’: 443.0 PMKs/s (RTT 3.0)
#14: ‘CPU-Core (SSE2)’: 444.2 PMKs/s (RTT 3.0)
#15: ‘CPU-Core (SSE2)’: 434.3 PMKs/s (RTT 3.0)
#16: ‘CPU-Core (SSE2)’: 429.7 PMKs/s (RTT 3.0)

Vous vous demandez ce qui se passe ? Seulement 50 000 clés PMK/s avec deux Tesla M2050 ? On pourrait se dire que le matériel est sous-exploité, mais les résultats sont en fait du même ordre que ceux obtenus sur un GeForce GTX 590, une carte graphique armée de deux GPU GF110. Mais tout de même, on pourrait s’attendre à mieux.

Il faut cependant savoir que les Nvidia Tesla sont conçues pour les calculs scientifiques complexes et sont donc optimisées pour les opérations en double précision et en virgule flottante, contrairement aux GeForce. Elle sont également dotées de 3 ou 6 Go de mémoire avec ECC. Malheureusement, toutes ces caractéristiques ne sont d’aucune utilité pour la tâche que nous leur confions ; pire encore, les cartes Tesla sont underclockées afin de mieux garantir leur fonctionnement en continu en environnement HPC (high-performance computing, c’est-à-dire traitement à haute vitesse) professionnel.

Toutefois, le véritable intérêt du cloud computing réside dans les possibilités inédites qu’il offre : il est en effet possible d’ajouter autant de nœuds de calcul supplémentaires que nous le désirons (et que notre budget le permet), et chaque nœud ajoute entre 18 et 20 000 clés PMK/s. Ce n’est pas vraiment pour ce genre d’activités que les initiatives telles que l’Amazon EC2 ont été conçues, mais cela montre bien le potentiel de la distribution des charges de travail entre plusieurs ordinateurs.

Chaque grappe de GPU dispose d’une liaison Ethernet 10 Gbit/s dédiée, ce qui limite tout de même le trafic bidirectionnel entre le serveur maître et les nœuds supplémentaires à 1,25 Go/s et constitue par conséquent le principal goulot d’étranglement. N’oublions pas qu’un simple caractère ASCII consomme un octet ; lorsqu’on commence à tenter de casser des mots de passe plus longs, le serveur maître doit donc envoyer plus de données aux clients. Et les clients doivent renvoyer les PMK/PTK traitées au serveur maître. Plus le réseau se complexifie, plus le nombre de mots de passe traité par les nœuds clients diminue ; chaque nœud supplémentaire est donc moins productif que le précédent.

Mettre plusieurs ordinateurs en réseau afin de cracker les mots de passe n’est pas un concept neuf, mais il faudrait toutefois que la réalisation soit effectuée différemment pour que cette technique constitue un véritable danger. En l’état actuel des choses, les ordinateurs de bureau sont plus rapides que la plupart des solutions reposant sur le cloud computing. Il y a environ un mois, par exemple, Passware, Inc. a utilisé huit instances de clusters de GPU Amazon pour cracker les mots de passe de MS Office à une vitesse de 30 000 mots de passe par seconde. Nous parvenons au même résultat avec un simple Radeon HD 5970 et le logiciel Accent Office Password Recovery.

Comment protéger votre réseau WPA

Il n’y a donc pas de souci à vous faire pour l’instant : en pratique, le WPA est encore sûr. Le nombre de hashes à traiter est beaucoup trop important ; la Wi-Fi Alliance a bien fait son travail, du moins sur ce plan. Même avec deux Radeon HD 6990, nous ne pouvons traiter qu’environ 200 000 clés par seconde, ce qui signifie qu’un mot de passe de plus de sept caractères alphanumériques est presque impossible à cracker en moins d’un an. Cela fait tout de même un peu long pour avoir Internet gratuit aux frais du voisin (cela ira plus vite avec un grand sourire et un pack de bières…). Ajoutez quelques caractères spéciaux et les attaques par force brute deviennent totalement impraticables sur les mots de passe de plus de six caractères.

Malheureusement, il y a un problème : la plupart des utilisateurs se contentent de mots de passe composés de simples mots, et ceux-ci sont vulnérables aux attaques par dictionnaire. Les langues française et anglaise ne comptent que quelques centaines de milliers de mots, or il ne faut qu’une seule GeForce GTX 590 pour traiter au moins 50 000 mots de passe WPA par seconde… Même avec quelques variations, il ne faut qu’un jour ou deux pour casser un mot de passe composé d’un mot. Pourquoi ? Parce que dans le cas des attaques par dictionnaire, un mot complet se traite comme une seule lettre ; « lamatrice » est donc aussi facile à casser que « a ».

Idéalement, nous vous conseillons donc d’éviter les pièges suivants si vous souhaitez rendre votre réseau plus sûr :

  • Évitez les mots du dictionnaire. Le Petit Robert contient moins de 100 000 entrées. Autant dire rien pour une GeForce GTX 590 ou un Radeon HD 6990.
  • Si vous ajoutez des chiffres, ne les mettez pas à la fin. Ajouter un 1 à la fin de votre mot de passe ne le rend pas plus sûr. Nous pouvons toujours traiter l’intégralité du dictionnaire plus quelques chiffres en moins d’une demi-journée avec une paire de cartes graphiques.
  • Évitez les mots répétés et les simples substitutions de lettres. « motdepassemotdepasse » ne fait que doubler le nombre de mots à chercher, ce qui reste assez simple au vu de la vitesse de traitement qu’autorisent les attaques par dictionnaire. Et « m0td3p@ss3 » n’est guère plus sûr : les hackers connaissent le l33tsp33k, donc cette option est à éviter.
  • Évitez les séquences de touches sur le clavier. Il n’est pas difficile d’ajouter AZERTY au dictionnaire des mots de passe à vérifier. Un autre raccourci à éviter, donc.
  • Évitez les séquences de chiffres connues. Le nombre 314159 est sans doute facile à retenir (c’est Pi !), mais il est également facile à essayer.
  • Évitez tout ce qui vous touche personnellement, par exemple votre numéro de plaque, de carte d’identité, votre ancien numéro de téléphone, votre anniversaire, etc. Nous vivons dans un monde où énormément d’informations sont publiques. Si vous avez un compte Facebook ou Twitter, la quantité d’informations auxquelles tout le monde a accès est potentiellement énorme.


Image 20 : WiFi : le WPA est-il sûr ?

Contre le hacker moyen, le WPA s’en tire remarquablement bien. Même si votre mot de passe est court, pour autant qu’il soit aléatoire (c’est-à-dire non vulnérable à une attaque par dictionnaire), les vitesses de traitement qu’offrent les cartes graphiques sont encore trop faibles pour être utiles. La fonction de dérivation de clé fait bien son travail.

La véritable menace, cependant, provient du calcul distribué. Quatre Radeon HD 6990 permettent de traiter près d’un demi-million de mots de passe par seconde, mais coûtent à peu près 3000 €. Par contre, il nous suffirait de modifier légèrement le code de Pyrit pour obtenir les mêmes performances sur dix instances d’Amazon EC2 à un prix de 8 $ ! Et même sans modifier le code afin d’automatiser la répartition des charges de travail, il reste possible de le faire manuellement.

Les offres actuelles en matière de calcul distribué ne sont peut-être pas si impressionnantes que cela en termes de performances, mais la véritable menace réside dans leurs tarifs. Moxie Marlinspike, un hacker, propose un service nommé WPACracker que l’on peut utiliser pour cracker une capture d’établissement de liaison en WPA-PSK ; il se compose de 400 clusters CPU hébergés au sein du cloud Amazon EC2. Ce genre de puissance de traitement lui permet d’effectuer une recherche basée sur un dictionnaire de 135 millions de mots spécifiquement créé pour les mots de passe WPA en moins de 20 minutes. Le prix : 17 $, bien que cela représente environ 112 500 mots de passe par seconde (l’équivalent d’une GeForce GTX 590).

Durée totale de la recherche à 1 million de mots de passe WPA par seconde (tarif Amazon EC2 Instances réservées)
Mots de passe de 1 à 4 caractères
Mots de passe de 1 à 6 caractèresMots de passe de 1 à 8 caractèresMots de passe de 1 à 12 caractères
Chiffres
Instantané
Coût estimé : 0,74 $
Instantané
Coût estimé : 0,74 $
2 minutes
Coût estimé : 0,74 $
12,75 jours
Coût estimé : 226 $
Minuscules
Instantané
Coût estimé : 0,74 $
5 minutes
Coût estimé : 0,74 $
2,5 jours
Coût estimé : 44,40 $
3147 ans
Minuscules, majuscules et chiffres (alphanumérique)
Instantané
Coût estimé : 0,74 $
16 heures
Coût estimé : 11,84 $
7 ans103 981 388 ans
Tous les caractères ASCII imprimables
2 minutes
Coût estimé : 0,74 $
9 jours
Coût estimé : 159,84 $
231 ansD’ici le prochain Big Bang, peut-être

Thomas Roth, un expert en sécurité qui a contribué à mettre en lumière les failles du PlayStation Network de Sony, semble à ce jour être la seule personne à avoir fait la démonstration publique d’un crackage sur GPU distribué en réseau dont les performances évoluent linéairement avec le nombre de nœuds. Sa configuration repose sur des instance de clusters GPU EC2 optimisées afin d’équilibrer la charge et de réduire les goulots d’étranglement. Donc, alors qu’il nous faudrait environ dix Radeon HD 6990 réparties dans trois ordinateurs de bureau pour atteindre la vitesse d’un millions de mots de passe WPA traités par seconde, nous pouvons obtenir les mêmes performances pour 60 $ en louant 20 instances de clusters GPU (et encore, la limite est récemment passée à 64 serveurs…). Le seul problème consiste à optimiser son code pour le cloud d’Amazon. Ne comptez pas sur nous pour faire un article là-dessus…

Image 21 : WiFi : le WPA est-il sûr ?

Les services de calcul par cloud comme l’Amazon EC2 ont à l’origine été conçus pour aider les développeurs et les scientifiques à résoudre des problèmes mathématiques complexes sans avoir à investir dans un centre de données. Nous doutons qu’Amazon ait pensé au piratage lorsqu’il a lancé son offre, mais le fait est qu’il est possible de l’utiliser pour casser des mots de passe et qu’il n’y pas le moindre doute que des hackers vont s’en servir à cette fin. Si quelqu’un veut vraiment pénétrer dans votre réseau, la qualité de votre mot de passe est probablement la seule chose qui pourra les en empêcher.

C’est au final pour cette raison qu’il vaut mieux renforcer ses mots de passe. La plupart des utilisateurs se contentent de mots de passe alphanumériques pour verrouiller leur réseau WiFi, ce qui les fragilise considérablement. Et combien d’entre nous connaissent des amis ou des parents qui n’ont jamais modifié le mot de passe par défaut de leur routeur ? On sait par exemple qu’aux États-Unis, les routeurs AT&T U-verse (dont le SSID par défaut est toujours 2Wirexxx, xxx étant trois chiffres) sont livrés avec des mots de passe composés uniquement de chiffres et d’une longueur de 10 caractères maximum. Avec deux Radeon HD 6990, cela se casse en moins de 14 heures.

Bref, changez le SSID que votre fournisseur vous donne par défaut et utilisez un mot de passe WPA qui suit les règles suivantes :

  • Entièrement aléatoire
  • Long d’au moins huit caractères
  • Contient au moins une majuscule
  • Contient au moins une minuscule
  • Contient au moins un caractère spécial (par exemple @ ou !)
  • Contient au moins un chiffre


Image 22 : WiFi : le WPA est-il sûr ?

Pour ceux d’entre vous qui travaillent dans l’informatique, mieux vaut investir dans un serveur d’authentification : cela ajoute une couche de protection supplémentaire, car la clé primaire est générée de manière dynamique et n’est pas accessible à l’utilisateur. La clé PMK est donc une clé symétrique spécifique à chaque session entre le client et le point d’accès, ce qui accroît à l’infini la complexité des attaques par force brute. En fait, si vous êtes responsable informatique d’une société, vous avez probablement plus à craindre que quelqu’un soudoie un employé ou vole un ordinateur portable non chiffré.

Image 23 : WiFi : le WPA est-il sûr ?

Remettons quand même les choses en perspective

Dès que l’on parle de sécurité, il est facile de s’emballer : avant de cadenasser un réseau à triple tour, il peut être bon de se demander si l’on a quoi que ce soit à voler.

Évidemment, tout le monde a des données qui doivent rester privée, raison pour laquelle tout le monde doit au moins essayer de ne pas faciliter la tâche aux intrus. La plupart du temps, les indiscrets vont simplement voir que votre point d’accès est verrouillé et passer au suivant. Les utilisateurs du forum Netstumbler estiment que 10 à 20 % des réseaux sont encore chiffrés en WEP. Si un pirate cherche à détourner un réseau, il va probablement commencer par chercher l’un de ceux-là. Si quelqu’un est prêt à passer des heures, des jours, voire des années à donner des coups de boutoir dans votre forteresse renforcée au WPA, c’est probablement qu’elle contient des secrets qui en valent la peine.

Le fait est que pour la plupart, nous ne sommes tout simplement pas suffisamment intéressants à attaquer, pour autant que nous ayons pris la peine de chiffrer notre réseau avec le bon protocole. Nos collègues américains nous disent souvent que la meilleure arme pour se protéger des intrus est un fusil à pompe, non parce qu’il est plus puissant qu’une arme de poing, mais parce que le bruit qu’il fait quand on l’arme suffit généralement à faire fuir les voleurs. Considérez le WPA comme votre fusil à pompe (et puis c’est moins violent).