Un RADIUS, des radis
Par Sid,
samedi 2 septembre 2006 à 12:54 :: Wi-Fi
Lu 13568 fois :: #116
:: rss
:: atom
::
English

ne fois n'est pas coutume, je me propose de vous entretenir de WiFi. Une nouvelle fois...
D'abord pour vous signaler cet excellent billet de Bruno sur le WiFi en entreprise. Bien que proposé comme une solution permettant de fournir mobilité et flexibilité à moindre coût, le WiFi et ses applications doivent tout de même faire face à des contraintes en contexte professionel : performances, maintien de la couverture et du débit, disponibilité, etc.
Ensuite pour vous signaler un service particulièrement intéressant que j'ai pu découvrir au milieu de mes pérégrinations quotidiennes. Mon précédent billet faisait la part belle à l'authentification en WPA et WPA2, en particulier la méthode EAP, qui nécessite cependant la mise en œuvre d'un serveur RADIUS. Utilisateurs néophites rassurez-vous, voilà WifiRadis ! Ou comment proposer à tout un chacun le meilleur de la sécurité WiFi.
WifiRadis est un service gratuit ouvert à tous qui offre l'accès à un serveur RADIUS visant à fournir une authentification PEAP-MS-CHAPv2. Chaque utilisateur du service peut déclarer un ou plusieurs points d'accès sur lesquels il pourra s'authentifier à l'aide de son login et de son mot de passe, mais il pourra également autoriser d'autres utilisateurs à se connecter chez lui, comme il pourra se retrouver autorisé à accéder à d'autres accès WiFi. De cette idée simplissime, comme la majorité des bonnes idées, la création de communautés d'utilisateurs s'autorisant les uns les autres devient simple tout en restant sécurisée. Fini les trente profils pour browser chez chacun de ses copains. Tout le monde prend un compte, déclare son AP, autorise tous les autres amis utilisateurs et c'est parti, avec un seul login/password par personne.
WifiRadis repose sur une solution libre à base de FreeRADIUS et d'un serveur MySQL dont l'auteur propose une image VMWare au téléchargement. L'ensemble jouit en outre d'une documentation précise et abondante, autant pour la configuration des stations clientes que pour celle des points d'accès. Ça ne demande qu'à être utilisé.
Pas mal donc, à deux remarques près. La première concerne l'utilisation du protocole RADIUS à travers Internet : il circule en effet en clair sur UDP. Au delà des soucis de spoofing que pose UDP, WifiRadis reconnait les points d'accès à l'aide de leur adresse MAC transmise en clair dans l'attribut "Called-Station-Id". Si on suppose qu'un attaquant intercepte cette adresse MAC, ce qui peut ne pas être compliqué si celle-ci est celle utilisée comme BSSID, et dans mesure où le secret partagé entre l'AP et le RADIUS est le même pour tous les utilisateurs, il est capable de monter un duplicata malicieux (aka Rogue AP) capable de vous authentifier sans aucun problème sur WifiRadis, monter les sessions WPA/WPA2 avec et puis finalement espionner ou corrompre tranquillement tout votre trafic en sortie de point d'accès. Tout ceci est dû à la faiblesse de l'authentification entre le point d'accès et le serveur RADIUS. Normallement basée sur un secret utilisé dans le calcul d'une somme HMAC-MD5, elle ne repose ici que sur l'adresse MAC de l'AP qu'on peut modifier à loisir (cf. MAC address cloning). L'utilisation d'un secret RADIUS spécifique à chaque point d'accès déclaré permettrait d'apporter une solution convenable à ce problème, je pense.
Une demie remarque concerne un point de la documentation. On peut en effet trouver comment configurer une station Windows XP sans vérification du certificat envoyé par le RADIUS. C'est mal ! Il faut toujours vérifier le certificat du RADIUS en PEAP, sinon on perd la mutualité et la protection de l'authentification ; on devient alors vulnérable aux attaques à base de Rogue AP. Vous allez commencer à vous dire que je fais une fixation sur les Rogue AP. Peut-être, mais ça n'en reste pas moins une des attaques les plus simples à mettre en œuvre, avec un résultat plus qu'intéressant. Sous Linux, une seule ligne pour un point d'accès simple, un peu plus de travail avec hostapd pour une authentification EAP :
# iwconfig wlan0 mode master essid RogueAP
Qu'est-ce que peut faire l'attaquant ? Il peut monter un faux serveur RADIUS dont le seul objet sera d'observer l'échange MS-CHAPv2 pour mener une attaque en force brute ou par dictionnaire précalculé, et récupérer les éléments d'authentification de l'utilisateur. Comme démontré dans un article de Bruce Schneier sur PPTP, MS-CHAPv2 est extrêmement vulnérable par design à ce type d'attaques. Dans le monde du WiFi, ses conclusions s'appliquent à LEAP et PEAP.
Pour mieux comprendre pourquoi, il faut regarder comment fonctionne PEAP. PEAP veut dire Protected EAP et propose une méthode permettant de protéger un échange d'éléments (ici en MS-CHAPv2) par l'établissement d'un tunnel TLS. Si ce dernier est bien établi, on protège l'authentification proprement dite. Dans le cas contraire, cela revient à la faire en clair. D'où la nécessité de vérifier le certificat reçu pour être bien sûr que ce tunnel TLS est bien établi avec le bon serveur RADIUS. En effet, la combinaison du spoof d'adresse MAC précédemment évoqué et d'une non-vérification de ce certificat permettrait non seulement le contrôle de votre trafic, mais surtout la récupération de votre couple login/passord qui permettent également d'accéder à votre compte Wifiradis...
Enfin, une dernière demie remarque concerne une nouvelle fois la circulation en clair du protocole RADIUS. Une fois l'authentification EAP terminée, la station et le RADIUS négocie une clé commune dite Pairwise Master Key (PMK) qui servira par la suite à dériver toute la hiérarchie de clés nécessaires à la session WPA/WPA2. Le RADIUS transmet ensuite cette clé, via l'attribut "MS-MPPE-Recv-Key" du dernier message EAP (Access-Accept)... En clair, sur Internet... L'interception de ce message permet donc la reconstitution de toute la hiérachie de clés et donc de déchiffrer tout le trafic ou plus simplement de prendre la place du client en train de s'authentifier auprès du point d'accès.
Tout ceci pour mettre vraiment le doigt sur l'importance de la bonne sécurisation du backend d'authentification, et en particulier son cloisonnement, lorsqu'on fait des authentifications EAP. Ici, ces conditions ne sont pas vraiment réunies comme nous venons de le voir. Cependant, si vous vérifiez le certificat envoyé par le RADIUS, les conditions de réalisation des attaques évoquées sont très difficile à réunir, ce qui m'amène à vous recommander chaudement ce service pour vos authentifications personnelles à la maison, le niveau de sécurité obtenu étant encore nettement supérieur à celui proposé par WPA-PSK et WPA2-PSK.
Commentaires
1. Le samedi 2 septembre 2006 à 16:30, par TheNico
Réponse de Sid
2. Le samedi 2 septembre 2006 à 19:05, par jme
3. Le mercredi 31 octobre 2007 à 17:35, par Aline
Réponse de Sid
4. Le vendredi 2 novembre 2007 à 15:27, par Aline
Réponse de Sid
5. Le samedi 3 novembre 2007 à 18:57, par Aline
6. Le samedi 3 novembre 2007 à 22:43, par Tyop?
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.