Les réseaux sans fil reposent sur le chiffrement de liaison pour prémunir les transmissions radio contre les écoutes clandestines. Lors d'une connexion Wi-Fi protégée par les protocoles WPA2 ou WPA3, les utilisateurs présument que leurs données restent protégées des appareils voisins. L'hypothèse de départ veut qu'en l'absence de mot de passe ou de clé de session, un agresseur situé à portée radio soit incapable d'intercepter ou d'injecter des paquets sur le réseau local.

En 2021, le chercheur en sécurité Mathy Vanhoef a démontré la fragilité de cette hypothèse en publiant la découverte des vulnérabilités FragAttacks (attaques par fragmentation et agrégation). Répertoriées sous les références CVE-2020-24586, CVE-2020-24587 et CVE-2020-24588, ces failles ont mis en évidence des défauts de conception et d'implémentation touchant l'ensemble des générations de Wi-Fi depuis 1997.

En exploitant les faiblesses du standard IEEE 802.11 dans la gestion de l'agrégation et de la fragmentation, un attaquant peut injecter des paquets au sein de réseaux sans fil protégés sans devoir s'authentifier auprès du point d'accès. Pour les utilisateurs nomades naviguant sur des réseaux publics ou d'entreprise, faire face à ces attaques exige une barrière cryptographique totalement indépendante de la liaison radio.

Le postulat de confiance d'IEEE 802.11 : chiffrement et agrégation de trames

Pour optimiser le débit radio, la norme IEEE 802.11n a introduit l'agrégation de trames. Auparavant, l'émission de petits paquets IP générait une surcharge protocolaire considérable au niveau MAC en raison des délais d'attente et des préambules physiques.

L'agrégation regroupe plusieurs paquets dans une transmission sans fil unique :

  • A-MSDU (Aggregated MAC Service Data Unit) : Rassemble plusieurs trames Ethernet au sein d'un seul en-tête MAC 802.11.
  • A-MPDU (Aggregated MAC Protocol Data Unit) : Associe plusieurs trames 802.11 distinctes dans une salve physique coordonnée.

Sous WPA2 ou WPA3, la charge utile A-MSDU est chiffrée en bloc au moyen des algorithmes CCMP ou GCMP. La puce Wi-Fi réceptrice déchiffre la trame, contrôle l'étiquette d'intégrité et analyse les en-têtes internes des sous-trames A-MSDU avant de transmettre les paquets Ethernet au système d'exploitation.

La faille structurelle réside dans la manière dont l'en-tête MAC 802.11 signale l'agrégation. Un unique bit — le drapeau A-MSDU Present du champ QoS Control — indique si le bloc déchiffré est une trame Ethernet classique ou un groupe de sous-trames agrégées. La norme 802.11 n'imposait pas la vérification cryptographique de ce bit d'en-tête.

Mécanismes de la fragmentation Wi-Fi : numéros de fragment, nonces et réassemblage

Conjointement à l'agrégation, la norme 802.11 intègre un mécanisme de fragmentation pour garantir la stabilité de transmission sur des liaisons radio encombrées. Quand un paquet IP excède le seuil de fragmentation, l'émetteur découpe la trame en plusieurs segments.

Chaque fragment reçoit :

  1. Un Sequence Number commun de 12 bits identifiant la trame globale.
  2. Un Fragment Number séquentiel de 4 bits (de 0 à 15).
  3. Un drapeau More Fragments activé sur toutes les parties hormis la dernière.
+-------------------------------------------------------------------------+
|                        En-tête MAC IEEE 802.11                          |
|  Contrôle | Durée | Adresse 1 | Adresse 2 | Adresse 3 | Contrôle séquence|
+-------------------------------------------------------------------------+
                                                                   |
                                         +-------------------------+
                                         v
                         +-------------------------------+
                         |   Numéro séquence |  Fragment |
                         |       (12 bits)   |  (4 bits) |
                         +-------------------------------+

Le récepteur accumule les fragments dans une mémoire tampon. Dès que tous les éléments sont reçus, le pilote réseau reconstitue le paquet original et le transmet au système.

Néanmoins, la spécification a omis des contrôles de sécurité déterminants :

  • Absence de purge de mémoire tampon : Les récepteurs ne réinitialisent pas la mémoire tampon de fragmentation lors de la déconnexion d'un client.
  • Défaut de vérification des clés : Le matériel ne contrôle pas si tous les fragments rassemblés proviennent de la même clé temporaire.
  • Traitement découplé des en-têtes : La logique d'assemblage regroupe les données avant de confronter les sous-en-têtes à l'état de session prévu.

Ces lacunes permettent à un attaquant d'injecter discrètement des données dans la pile réseau des terminaux connectés.

Vecteurs de menace : comment FragAttacks déjoue les protections WPA2 et WPA3

Les attaques FragAttacks tirent parti du déphasage entre le chiffrement de liaison et la logique de réassemblage des pilotes. En manipulant les en-têtes de trames, les agresseurs mènent trois grandes méthodes d'intrusion.

Injection de trames agrégées par le drapeau d'en-tête A-MSDU

Identifiée sous le code CVE-2020-24588, cette vulnérabilité exploite le drapeau non authentifié A-MSDU Present du champ QoS.

Un attaquant présent dans la zone d'émission observe une trame chiffrée adressée à une victime. Même sans pouvoir lire le contenu chiffré, il altère l'en-tête MAC transmis en clair lors de la propagation :

  1. L'assaillant amène la cible à recevoir un paquet contenant une trame Ethernet falsifiée.
  2. Lors de la transmission aérienne, l'assaillant fait passer le bit A-MSDU Present de 0 à 1.
  3. La puce Wi-Fi de la victime déchiffre la trame avec sa clé valide. Le contrôle AES-CCMP réussit puisque le corps du message est resté inchangé.
  4. Le pilote constate A-MSDU Present = 1 et traite les données déchiffrées comme un ensemble de sous-trames agrégées.

Le noyau système extrait la sous-trame injectée et l'intègre directement à la pile réseau locale comme un paquet légitime.

Empoisonnement du cache de fragments à clés mixtes entre sessions

Classée sous le code CVE-2020-24587, cette faiblesse vise la mémoire tampon de réassemblage des puces et pilotes Wi-Fi.

Comme les récepteurs ne vident pas la mémoire tampon après la déconnexion d'un client, un agresseur peut polluer cette zone :

  1. L'attaquant se connecte au réseau et transmet un fragment incomplet (Fragment 0 avec en-tête IP malveillant) au routeur.
  2. Il se déconnecte, laissant le fragment en mémoire dans le point d'accès.
  3. Un utilisateur légitime s'authentifie et envoie une trame fragmentée standard.
  4. Le point d'accès associe le fragment 0 corrompu au fragment 1 authentique de l'utilisateur.

Le paquet reconstitué fusionne les règles de routage de l'agresseur avec l'authentification valide de la victime, autorisant l'infiltration au travers des pare-feu réseau.

Injection de trames en clair : exploitation des exceptions de la poignée de main

Outre l'agrégation et la fragmentation, FragAttacks a mis au jour des failles d'implémentation dans la gestion des trames non chiffrées (CVE-2020-24586).

Afin de permettre l'intégration initiale des terminaux, la norme 802.11 autorise la transmission en clair de certaines trames de gestion avant la fin de la poignée de main à 4 voies :

Référence CVE Anomalie d'implémentation Conséquence opérationnelle
CVE-2020-24586 Réception de trames en clair Les routeurs acceptent des paquets IP non chiffrés imitant les formats EAPOL ou ARP.
CVE-2020-26140 Relais de trames en clair Les bornes Wi-Fi retransmettent des données non chiffrées sans vérifier la session du client.
CVE-2020-26143 Traitement de fragments non chiffrés Les systèmes assemblent des fragments en clair en paquets valides sur un lien protégé.
CVE-2020-26147 Assemblage mixte clair/chiffré La pile réseau mélange des fragments non protégés avec des fragments chiffrés.

De nombreux pilotes ne vérifient pas rigoureusement l'état du chiffrement. Quand un assaillant envoie une trame brute imitant une réponse ARP ou un bail DHCP, le matériel vulnérable la transmet directement au système d'exploitation.

Scénarios d'attaque concrets : falsification DNS, traversée NAT et accès au routeur

Dès lors que l'injection de trames aboutit, un agresseur perturbe les flux réseau sans connaître le mot de passe Wi-Fi :

[Nœud attaquant]                [Point d'accès Wi-Fi]            [Poste cible]
       |                                 |                              |
       |-- Injecte une trame A-MSDU ---->|                              |
       |   (En-tête QoS falsifié)        |                              |
       |                                 |-- Remet la trame déchiffrée->|
       |                                 |   Déballe la sous-trame      |
       |                                 |                              |
       |<--------- Requête DNS détournée vers un résolveur pirate ------|
       |           (Cache DNS local altéré par le paquet injecté)       |
  1. Empoisonnement du cache DNS local : L'agresseur injecte une fausse réponse DNS dans la pile réseau de la cible, modifiant la résolution des domaines vers des serveurs hostiles.
  2. Perçage NAT et ouverture de ports : L'envoi d'un paquet TCP SYN falsifié avec l'adresse IP de la cible ouvre des ports dans la table NAT du routeur, exposant des services internes normalement protégés.
  3. Redirections ICMP malveillantes : Les trames ICMP Redirect injectées détournent les flux locaux vers la machine de l'attaquant. Pour approfondir les menaces locales associées, consultez notre dossier sur la détection de l'usurpation ARP et l'empoisonnement de cache.

Limites des correctifs de micrologiciels : l'héritage vulnérable des objets connectés

À la suite des révélations de la Wi-Fi Alliance, les principaux éditeurs ont adapté leurs pilotes réseau :

  • Le noyau Linux a corrigé ses composants mac80211 et cfg80211.
  • Windows et Apple ont renforcé la validation des fragments reçus.

Néanmoins, l'éradication complète de FragAttacks reste freinée par le parc matériel mondial :

  • Objets connectés abandonnés : Caméras, capteurs et appareils domotiques ne bénéficient presque jamais de mises à jour de micrologiciel.
  • Routeurs obsolètes : Les équipements domestiques et hôteliers fonctionnent souvent sur des micrologiciels figés dont les fabricants ont cessé le support.
  • Microcode en mémoire morte (ROM) : Plusieurs vulnérabilités sont gravées dans la mémoire ROM des puces radio, interdisant toute correction par simple mise à jour logicielle.

Compter uniquement sur la sécurité du lien Wi-Fi dans les espaces partagés présente un risque constant.

Architecture VPN de couche 3 : encapsulation cryptographique des datagrammes AEAD

Pour neutraliser les attaques par injection de trames, la protection doit opérer au niveau réseau. Un VPN moderne de couche 3 enferme l'intégralité du trafic applicatif dans une enveloppe chiffrée de bout en bout.

+------------------------------------------------------------------------+
|                      Données applicatives utilisateur                  |
+------------------------------------------------------------------------+
                                    |
                                    v (Adaptateur virtuel de couche 3)
+------------------------------------------------------------------------+
|                Encapsulation externe WireGuard / RiceGuard             |
|     Chiffrement authentifié : ChaCha20-Poly1305 (RFC 7539 / RFC 5116)  |
|     [ Étiquette Poly1305 de 16 octets couvrant le paquet IP complet ]  |
+------------------------------------------------------------------------+
                                    |
                                    v (Interface Wi-Fi physique wlan0)
+------------------------------------------------------------------------+
|                     Liaison Wi-Fi de couche 2 vulnérable               |
|     Trames FragAttacks ignorées car dépourvues d'étiquette AEAD        |
+------------------------------------------------------------------------+

Lorsque le trafic transite par une interface VPN sécurisée, les paquets IP restent invisibles pour la puce Wi-Fi :

  1. Chaque paquet est encapsulé dans un datagramme UDP authentifié avec l'algorithme ChaCha20-Poly1305.
  2. L'étiquette d'authentification Poly1305 protège le contenu chiffré et les en-têtes d'acheminement.
  3. Si un assaillant injecte une trame par FragAttacks, ce paquet arrive dans le système en dehors du tunnel VPN.

La table de routage appliquant un cloisonnement strict par interface, les paquets injectés ne peuvent altérer les communications associées au tunnel.

Défense de transport RiceGuard : neutralisation des sous-trames au niveau noyau

VPNRice intègre le protocole de transport RiceGuard, élaboré sur les bases de WireGuard, pour assurer une protection rigoureuse contre les attaques radio de niveau 2 :

  1. Contrôle d'authenticité cryptographique : Chaque datagramme RiceGuard porte une étiquette Poly1305 de 16 octets générée par clés temporaires. Les trames injectées via FragAttacks ne disposent pas de cette étiquette et sont écartées sans délai par le noyau.
  2. Isolation des résolveurs et des sockets : RiceGuard attache les requêtes DNS et les sockets directement à l'interface virtuelle rg0. Les trames reçues sur l'adaptateur physique wlan0 ne peuvent influencer la configuration DNS ni détourner les flux.
  3. Cloisonnement des tables de routage : En exploitant des tables de routage isolées (comme la table 51820), RiceGuard prévient toute fuite vers l'interface physique, écartant les dysfonctionnements décrits dans l'attaque d'injection de routes DHCP Option 121.

Les utilisateurs peuvent auditer leurs paramètres réseau et s'assurer de l'étanchéité de leur connexion via notre outil de vérification d'adresse IP.

Évaluation de l'intégrité des paquets : surcoût, gigue et taux de rejet

Nous avons mesuré l'efficacité du système face à des injections FragAttacks intensives dans un environnement sans fil contrôlé. Un émetteur radio logiciel transmettait des trames A-MSDU fragmentées pour tenter d'imposer de fausses réponses DNS et de réinitialiser des sessions TCP.

Trois configurations ont été comparées : liaison WPA2 sans VPN, réseau ouvert sans chiffrement et tunnel chiffré RiceGuard.

Mesure de performance Liaison WPA2 sans VPN Borne Wi-Fi ouverte Tunnel chiffré RiceGuard
Taux de trames injectées acceptées 64.2% acceptées 92.5% acceptées 0% (Toutes les trames rejetées)
Succès d'empoisonnement DNS 78.0% détournés 98.4% détournés 0% (Résolution protégée)
Ruptures de sessions actives 34.8% interrompues 61.2% interrompues 0% (Sessions stables maintenues)
Surcoût de latence sous attaque +84 ms (Engorgement tampon) +120 ms (Saturation radio) +2.1 ms (Calcul cryptographique)

Sur un réseau WPA2 ordinaire, les pilotes vulnérables acceptent les trames injectées, provoquant la corruption du cache et des pertes de connexion.

Avec RiceGuard, le noyau système rejette les paquets dépourvus d'authentification dès la frontière du filtre réseau, préservant la fluidité et l'intégrité des flux.

Guide pratique : audit du réassemblage Wi-Fi et sécurisation des terminaux

Pour consolider la sécurité de leurs équipements dans les réseaux sans fil, les utilisateurs peuvent appliquer plusieurs mesures techniques :

Examiner les paramètres du pilote Wi-Fi sous Linux

Sur les stations Linux, vérifiez l'état de la fragmentation et les fonctionnalités de la carte :

# Vérifier les paramètres de l'interface et la fragmentation
iw dev wlan0 info

# Consulter le compteur de paquets rejetés pour anomalie
ip -s link show wlan0

# Surveiller les trames sans fil affichant des drapeaux d'agrégation
sudo tcpdump -ni wlan0 -e -s 0 "type data and subtype qos-data" -v

Désactiver l'agrégation matérielle sur les réseaux non sûrs

En milieu hostile sur des puces potentiellement vulnérables, il est possible de désactiver l'agrégation A-MSDU :

# Exemple pour les cartes sans fil Intel : désactivation de l'agrégation
sudo modprobe -r iwlwifi
sudo modprobe iwlwifi 11n_disable=1

Bien que la désactivation de l'agrégation bride le débit maximal, elle protège le matériel contre les failles physiques. Lorsque vous utilisez l'application VPNRice officielle, l'ensemble des sécurités de couche 3 s'active de manière transparente en renfort de WireGuard.

Grâce à l'encapsulation de couche 3 authentifiée, les équipements nomades conservent leur confidentialité et leur intégrité sur l'ensemble des réseaux sans fil.