samedi 12 septembre 2009

Du rififi dans le Wifi! Le WPA malmené!

Depuis le récent article des scientifiques japonais concernant la possibilité de craquer WPA (Wifi Protected Access) en 1 minute (http://blogs.zdnet.com/BTL/?p=23384), je ne sais pas pour vous, mais pour moi, quelques éclaircissements s'imposent!


Un peu d'histoire...

En 2003, Moskowitz a montré une faiblesse de WPA devant une attaque par dictionnaire. Mais cette faiblesse peut être facilement évitée en générant la clef maître à partir d'une chaîne de caractères longue et aléaoire.

En 2008, Beck et Tews ont proposé une attaque pratique sur les implémentations de WPA qui supportent IEEE802.11e QoS (Quality of Services). Cette attaque appelée l'attaque Beck-Tews (c'est original!) permet de récupérer la clef MIC et un texte en clair à partir d'un paquet encrypté court tel qu'un paquet ARP ou DNS. Ces paquets courts de type ARP ou DNS sont intéressants car ils ne nécessitent pas de fragmentation en plusieurs messages et réduisent le temps de calcul. L'objectif de l'attaque Beck-Tews n'est pas d'obtenir le texte en clair mais de retrouver la clef MIC et de l'utiliser pour falsifier un paquet.

En 2009, Ohogashi et Morii (de l'université d'Hiroshima) généralisent l'attaque Beck-Tews à toutes les implémentations de WPA. En appliquant l'attaque Beck-Tews à une attaque MITM (Man In The Middle), ils réduisent le temps d'exécution de l'attaque à 1minute. Pour plus de détails vous pouvez jeter un oeil à l'article de Ohogashi et Morii.


Détaillons un peu le scénario de l'attaque Ohogashi-Morii

Ohogashi et Morii affirment que leur attaque s'applique à toutes les implémentations WPA. La pré-condition pour exécuter l'attaque Beck-tews sur WPA est d'obtenir une trame encryptée dont la valeur de l'IV (Initialization Vector) est plus grande que la valeur courante du compteur TSC (TKIP Sequence Counter). Beck-Tews satisfont cette condition en utilisant les caractéristiques de IEEE802.11e QoS.
Les caractéristiques de IEEE802.11e QoS autorisent 8 canaux différents pour des flots de données différents, et dans ce cas chaque canal à un compteur TSC indépendant. Supposons qu'un attaquant à récupéré un paquet encrypté avec un IV = 15 pour le canal 0. Alors l'attaquant ne peut pas réaliser son attaque sur le canal 0 car le compteur TSC a été mis à jour avec la valeur 15. Cependant ce même attaquant peut exécuter son attaque sur un autre canal, si le compteur TSC de ce canal est inférieur à 15.
Dans l'attaque Ohogashi-Morii, les auteurs utilisent l'attaque MITM pour d'obtenir une trame encryptée dont la valeur de l'IV est plus grande que la valeur courante du compteur TSC. L'attaquant intercepte les trames encryptées du destinataire (Access Point /client). Ainsi une trame encryptée dont la valeur de l'IV est plus grande que la valeur courante du compteur TSC peut être obtenue puisque le paquet capturé n'a pas atteint le destinataire.

L'attaquant se place entre le client et l'AP en utilisant une antenne directionnelle ou une plus forte puissance de transmission. Pour établir le MITM entre le client et l'AP (Access point), l'attaquant transmet des "Beacons" et des "Probe Responses" sur un canal différent et utilisant le même SSID que l'AP légitime.

L'attaquant doit ensuite obtenir la clef MIC pour générer et injecter des trames modifiées.


Quelques détails techniques...

WPA s'appuie sur des mécanismes de confidentialité basés sur TKIP ou CCMP, et sur deux mécanismes d'authentification: EAP pour le marché entreprise et hotspot, et PSK (Pre-Shared Key) pour le marché résidentiel (clef partagée entre tous les utilisateurs et les APs).
Le standard 802.1x est une solution de sécurisation, mise au point par l'IEEE, permettant d'authentifier un utilisateur souhaitant accéder à un réseau (filaire ou non) grâce à un serveur d'authentification. Le standard 802.1x repose sur le protocole EAP (Extensible Authentication Protocol), défini par l'IETF, dont le rôle est de transporter les informations d'authentification des utilisateurs.
Le tableau ci-dessous résume les différentes méthodes EAP (Extensible Authentication Protocol):



Le tableau ci-dessous décrit les méthodes d'encryption utilisées par les WLAN en 802.11:





TKIP signifie Temporary Key Integrity Protocol. Il utilise un message de vérification d'intégrité appelé "Michael" alias "Mike". Comme WEP, TKIP utilise l'algorithme d'encryption RC4.

Avec un mécanisme de confidentialité basé sur TKIP, un clef maître (PMK) est partagée entre le point d'accès (AP) et le client. Soit la clef maître est partagée en suivant le modèle du WEP comme dans le modèle WPA-Personal du tableau ci-dessus, soit la clef maître est dérivée dans le contexte de l'authentification EAP (avec un serveur d'authentification 802.1x) comme dans le modèle WPA-Entreprise du tableau ci-dessus.

En d'autres termes, le standard fournit 2 méthodes de distributions des PMKs. Quand un serveur d'authentification 802.1x est utilisé, la PMK est dérivée lorsqu'un client s'authentifie sur le serveur. Pour les réseaux qui ne supportent pas 802.1x, une clef partagée appelée PSK (Pre-Shared Key) est "distribuée" à tous les clients et les APs. Cette PSK est la PMK.
La PMK permet de générer la clef MIC (64 bits) et une clef d'encryption (128 bits). Un MIC (Message Integrity Check) est généré à partir de la clef MIC et d'une donnée; ce MIC est utilisé pour détecter la falsification du message (i.e. son intégrité). La clef d'encryption permet d'encrypter et de décrypter les paquets.


CCMP signifie CTR (Counter mode) with CBC-MAC (Cipher Block Chaining Message Authentication Code) Protocol. CTR est un attribut de la méthode d'encryption. CBC-MAC est utilisé pour l'intégrité des messages et l'authentification. CCMP utilise l'algorithme d'encryption AES (Advanced Encryption Standard).


TKIP et CCMP utilisent une clef maître séparée appelée PMK (Pair-wise Master Key) pour chaque couple de noeuds e.g. un client et un AP ou deux clients. La clef maître est utilisée pour dériver d'autres clefs qui sont utilisées pour encrypter/décrypter le trafic entre le couple de noeuds. Cette approche permet de moins exposer la clef maître.
L'association entre 2 noeuds du réseau est créée par l'échange de 4 paquets appelés "4 way handshake". Pendant cette transaction les noeuds dérivent la PTK (Pair-wise Transient Key) qui est ensuite partitionnée pour produire les autres clefs qui seront utilisés pour l'encryption et l'intégrité. La PTK est dérivée à partir de la PMK et de valeurs aléatoires fournit par le client (SNonce) et l'AP (ANonce).
Quand TKIP ou CCMP sont utilisés, le traffic "broadcast" et "multicast" est encrypté en utilisant une clef de groupe. La clef de groupe appelé GTK (Group Temporal Key) est distribuée pendant le "4 way handshake".

Le tableau ci-dessous compare WEP, TKIP et CCMP:





Si nous devions conclure...

Les attaques Beck-Tews et Ohogashi-Morii se basent sur le mécanisme de confidentialité TKIP. Pour plus de sécurité il est donc conseillé d'utiliser le mécanisme de confidentialité CCMP. Mais pour cela le matériel doit implémenter AES.

On remarque cependant qu'un IDS (Intrusion Detection System) convenablement configuré peut détecter la tentative de MITM nécessaire à la réalisation de l'attaque.

A bientôt...

Source: "Analysis of MITM based TKIP attack described in paper titled - "A Practical Message Falsification Attack on WPA" by Robbie Gill et le cours de Laurent Butti sur la sécurité des réseaux (France Telecom).

2 commentaires:

  1. Ce commentaire a été supprimé par l'auteur.

    RépondreSupprimer
    Réponses
    1. Désolé pour cette réponse très tardive!

      Voici un résumé des différentes attaques possibles et des parades associées

      1) Pre Shared Key (PSK)
      PSK permet d'authentifier les utilisateurs sur les réseaux des particuliers ou des petites entreprises (sans avoir à implémenter la complexité d'un serveur d'authentification 802.1X)
      L'attaque classique consiste à faire un "bruteforce" sur la clé partagée.
      La parade consiste à avoir une clé partagée suffisamment forte (14 caractères complétement aléatoires).

      2) Attaque Beck et Tews visant TKIP (2008) => WPA short packet spoofing
      Un pré-requis nécessaire à l'exploitation de la vulnérabilité est le support des extensions IEEE 802.11e concernant la QoS (qualité de service).
      L'attaque cible TKIP ce qui signifie que les mécanismes WPA et WPA2 utilisant CCMP (ou, par extension, AES) ne sont pas vulnérables à cette attaque.
      Ils restent considérés comme sûr lorsque qu'en mode PSK (Pre-Shared Key ou clé partagée) le point d'accès Wi-Fi est configuré avec une clé partagée suffisamment robuste

      3) Amélioration de l'attaque Beck et Tews visant TKIP (2009) => WPA short packet spoofing
      Elle n'affecte une fois encore que le WPA-TKIP (mais il n'est plus nécessaire de prendre en charge les extensions QoS).

      4) WPS (Wifi Protected Setup) Pin recovery (2011)
      Pour lutter contre les clés partagées failbles les fabricants proposent des méthodes alternatives pour générer et distribuer automatiquement des clés fortes lors de l'ajout d'un nouvel élément.
      Ces méthodes incluent l'appui sur un bouton ou la saisie d'un code PIN de 8 digits.
      Ces méthodes sont standardisées sous WPS.
      L'attaque consiste à retrouver le code PIN et avec lui la clé partagée en quelques heures.
      La parade consiste à désactiver le WPS.

      5) Si vous implémentez le MSCHAPv2 comme mécanisme d'authentification EAP
      En 2012 la complexité de casser le MSCHAPv2 à été réduite à la complexité de casser une simple clé DES.
      La parade consiste à ne pas utiliser MSCHAPv2.

      Source:
      Wikipedia: http://fr.wikipedia.org/wiki/Wi-Fi_Protected_Access et http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access

      Supprimer

Partager avec...