WPA2

Définition

802.11i (WPA2) est une norme tendant à sécuriser un accès sans fils (Wi-Fi). Dans la version « WPA2-Enterprise », celle qui nous intéresse ici, il nous faut 802.1x pour assurer l'attachement du « supplicant » au point d'accès et RADIUS pour la partie authentification. RADIUS n'est pas obligé par la norme, mais c'est un standard de fait.

Risques à éviter

Dans une connexion sans fils, il convient de prendre un soin particulier à être sûr que :

  • l'on s'adresse au bon serveur d'authentification,
  • le point d'accès est bien celui que l'on croit,
  • le client est bien autorisé,
  • le client est bien celui qu'il prétend être,
  • il n'y a pas de « man in the middle »,
  • un point d'accès « voleur » ne peut prendre en cours de session la place du point d'accès « officiel »,
  • un espion ne pourra pas, dans un délai raisonnable, déchiffrer les informations qui circulent dans l'air.

Il y a donc du travail.

Principe de fonctionnement

Les protocoles d'authentification (TLS, PEAP, TTLS…) ne sont pas du domaine de 802.1X, RADIUS non plus.

Cependant, compte tenu de ce qui a été déjà vu, il est clair qu'il n'y a pas d'alternative.



  1. Quand le client (supplicant) et le serveur d'authenticication (AS) s'authentifient, un des derniers messages envoyés par le serveur, contient la « Master Key » (MK). Cette clé n'est connue que par le client et le serveur. La MK n'est valable que pour cette session, entre ce client et ce serveur.
     
  2. Le client et le serveur calculent, à partir de la MK, une nouvelle clé, nommée « Pairwise Master Key » (PMK)
     
  3. La PMK est déplacée du serveur vers le point d'accès.  Seuls le client et le serveur savent calculer cette PMK, sinon, le point d'accès pourrait prendre des décisions de contrôle d'accès à la place du serveur. La PMK est une nouvelle clé symétrique, valable uniquement pour cette session, entre ce client et ce point d'accès.
     
  4. La PMK et une poignée de main en quatre passes (« 4-way handshake ») sont utilisées entre le client et le point d'accès pour calculer et vérifier une « Pairwise Transcient Key » (PTK), qui sera utilisée uniquement dans cette session entre ce client et ce point d'accès. La PTK est en réalité un trousseau de trois clés :
    • la « Key Confirmation Key » (KCK) qui, comme son nom l'indique, est utilisée pour prouver la possession de la PMK et pour attacher la PMK au point d'accès.
    • la « Key Encryption Key » (KEK) est utilisée pour distribuer la « Group Transcient Key » (GTK), décrite plus loin.
    • les « Temporal Key 1 & 2 » (TK1/TK2) sont utilisées pour le chiffrement.
       
  5. la KEK et un autre « 4-way handshake » sont alors utilisés pour envoyer une « Group Transcient Key » (GTK) du point d'accès vers le client. La GTK est partagée par tous les clients connectés au même point d'accès. Elle est utilisée uniquement pour sécuriser le multicast et le broadcast.

En résumé :

  1. La MK représente la décision d'accès (positive).
  2. La PMK représente l'autorisation d'accès au medium 802.11.
  3. La PTK, contient :
    • La KCK, utilisée pour attacher la PMK au point d'accès et pour prouver que le point d'accès dispose lui aussi de la PMK (authentification mutuelle entre le point d'accès et le client).
    • La KEK, utilisée pour distribuer la GTK.
    • Les TK, utilisées pour sécuriser le transfert de données.

Au final, nous avons bien :

  • le client authentifié par le serveur RADIUS,
  • le serveur authentifié par le client,
  • le client authentifié par le point d'accès,
  • le point d'accès authentifié par le client,
  • les données sont sécurisées. Chaque paquet (et même chaque fragment de paquet) est authentifié, si bien qu'il n'est normalement pas possible d'injecter frauduleusement des paquets forgés.

Le point d'accès et le serveur sont reliés par le réseau filaire. A priori, il y a moins de dangers. L'authentification mutuelle se fait par un « secret partagé », comme nous le verrons dans la mise en œuvre.