Android 10 introduit la prise en charge des normes Wi-Fi Protected Access version 3 (WPA3) et Wi-Fi Enhanced Open de la Wi-Fi Alliance (WFA). Pour plus d'informations, voir Sécurité sur le site WFA .
WPA3 est une nouvelle norme de sécurité WFA pour les réseaux personnels et d'entreprise. Il vise à améliorer la sécurité globale du Wi-Fi en utilisant des algorithmes de sécurité modernes et des suites de chiffrement plus solides. WPA3 comporte deux parties :
- WPA3-Personal : utilise l'authentification simultanée d'égal à égal (SAE) au lieu de la clé pré-partagée (PSK), offrant aux utilisateurs des protections de sécurité renforcées contre les attaques telles que les attaques par dictionnaire hors ligne, la récupération de clé et la falsification de messages.
- WPA3-Enterprise : offre des méthodes d'authentification et de cryptage de la couche de liaison plus solides, ainsi qu'un mode de sécurité 192 bits en option pour les environnements de sécurité sensibles.
Wi-Fi Enhanced Open est une nouvelle norme de sécurité WFA pour les réseaux publics basée sur le cryptage sans fil opportuniste (OWE). Il fournit le cryptage et la confidentialité sur des réseaux ouverts et non protégés par mot de passe dans des zones telles que les cafés, les hôtels, les restaurants et les bibliothèques. Enhanced Open ne fournit pas d'authentification.
WPA3 et Wi-Fi Enhanced Open améliorent la sécurité Wi-Fi globale, offrant une meilleure confidentialité et une meilleure résistance aux attaques connues. Comme de nombreux appareils ne prennent pas encore en charge ces normes ou n'ont pas encore eu de mises à jour logicielles pour prendre en charge ces fonctionnalités, WFA a proposé les modes de transition suivants :
- Mode de transition WPA2/WPA3 : le point d'accès serveur prend en charge simultanément les normes WPA2 et WPA3. Dans ce mode, les appareils Android 10 utilisent WPA3 pour se connecter, et les appareils exécutant Android 9 ou une version antérieure utilisent WPA2 pour se connecter au même point d'accès.
- Mode de transition WPA2/WPA3-Enterprise : le point d'accès serveur prend en charge simultanément les normes WPA2-Enterprise et WPA3-Enterprise.
- Mode de transition OWE : le point d'accès de desserte prend en charge simultanément OWE et les normes ouvertes. Dans ce mode, les appareils Android 10 utilisent OWE pour se connecter, et les appareils exécutant Android 9 ou une version antérieure se connectent au même point d'accès sans aucun cryptage.
Android 12 prend en charge l'indication Transition Disable, un mécanisme qui indique à un appareil de ne pas utiliser WPA2 et d'utiliser WPA3 à la place. Lorsqu'un appareil reçoit cette indication, il utilise WPA3 pour se connecter à un réseau WPA3 prenant en charge un mode de transition. Android 12 prend également en charge l'échange d'authentification WPA3 Hash-to-Element (H2E). Pour plus d'informations, consultez la spécification WPA3 .
WPA3 et Wi-Fi Enhanced Open sont pris en charge uniquement en mode client.
Mise en œuvre
Pour prendre en charge WPA3 et Wi-Fi Enhanced Open, implémentez l'interface Supplicant HAL. À partir d'Android 13, l'interface utilise AIDL pour la définition HAL. Pour les versions antérieures à Android 13, les interfaces et les partitions du fournisseur utilisent HIDL. L'interface HIDL se trouve dans hardware/interfaces/wifi/supplicant/1.3/
, et l'interface AIDL se trouve dans hardware/interfaces/wifi/supplicant/aidl/
,
Les éléments suivants sont requis pour prendre en charge WPA3 et OWE :
Correctifs du noyau Linux pour prendre en charge SAE et OWE
- cfg80211
- nl80211
wpa_supplicant
avec prise en charge de SAE, SUITEB192 et OWEPilote Wi-Fi avec prise en charge de SAE, SUITEB192 et OWE
Micrologiciel Wi-Fi avec prise en charge de SAE, SUITEB192 et OWE
Puce Wi-Fi avec prise en charge de WPA3 et OWE
Des méthodes d'API publiques sont disponibles dans Android 10 pour permettre aux applications de déterminer la compatibilité des appareils avec ces fonctionnalités :
-
WifiManager#isWpa3SaeSupported
-
WifiManager#isWpa3SuiteBSupported
-
WifiManager#isEnhancedOpenSupported
WifiConfiguration.java
contient de nouveaux types de gestion de clé, ainsi que des chiffrements par paires, des chiffrements de groupe, des chiffrements de gestion de groupe et des chiffrements Suite B, qui sont requis pour OWE, WPA3-Personal et WPA3-Enterprise.
Activation de WPA3 et Wi-Fi Enhanced Open
Pour activer WPA3-Personal, WPA3-Enterprise et Wi-Fi Enhanced Open dans le cadre Android :
WPA3-Personal : incluez l'option de compilation
CONFIG_SAE
dans le fichier de configurationwpa_supplicant
.# WPA3-Personal (SAE) CONFIG_SAE=y
WPA3-Enterprise : incluez les options de compilation
CONFIG_SUITEB192
etCONFIG_SUITEB
dans le fichier de configurationwpa_supplicant
.# WPA3-Enterprise (SuiteB-192) CONFIG_SUITEB=y CONFIG_SUITEB192=y
Wi-Fi Enhanced Open : incluez l'option de compilation
CONFIG_OWE
dans le fichier de configurationwpa_supplicant
.# Opportunistic Wireless Encryption (OWE) # Experimental implementation of draft-harkins-owe-07.txt CONFIG_OWE=y
Si WPA3-Personal, WPA3-Enterprise ou Wi-Fi Enhanced Open ne sont pas activés, les utilisateurs ne pourront pas ajouter, scanner ou se connecter manuellement à ces types de réseaux.
Validation
Pour tester votre implémentation, exécutez les tests suivants.
Tests unitaires
Exécutez SupplicantStaIfaceHalTest
pour vérifier le comportement des indicateurs de capacité pour WPA3 et OWE.
atest SupplicantStaIfaceHalTest
Exécutez WifiManagerTest
pour vérifier le comportement des API publiques pour cette fonctionnalité.
atest WifiManagerTest
Test d'intégration (ACTS)
Pour exécuter un test d'intégration, utilisez le fichier Android Comms Test Suite (ACTS), WifiWpa3OweTest.py
, situé dans tools/test/connectivity/acts_tests/tests/google/wifi
.
Essais VTS
Si l'interface HIDL est implémentée, exécutez :
atest VtsHalWifiSupplicantV1_3TargetTest
Si l'interface AIDL est implémentée, exécutez :
atest VtsHalWifiSupplicantStaIfaceTargetTest