mots clés:
802.1x, Supplicant, Authenticator, Contrôle d'accès,
Authentification, EAP, Radius, Wifi, Ethernet
1. Définitions................................................................................................................. 4
1.1. Qu'est que l'authentification ?........................................................................................ 4
1.2. Qu'est ce qu'une authentification forte?........................................................................ 4
1.3. Plusieurs types d'authentification.................................................................................. 4
1.4. Quel sont les protocoles d'authentification?................................................................. 5
2. Le protocole Radius..................................................................................................6
2.1. Introduction.................................................................................................................. 6
2.2. Principe de base........................................................................................................... 6
2.2.1. Identification Radius MAC...............................................................................................7
2.2.2. Authentification Radius 802.1x........................................................................................7
2.3. Paquets Radius.............................................................................................................. 7
2.3.1. Présentation générale ........................................................................................................7
2.3.2. Le champs Attribut............................................................................................................8
2.4. Messages Radius........................................................................................................... 9
2.5. Les limites du protocole Radius.................................................................................. 11
3. Le protocole 802.1X................................................................................................ 12
3.1. Introduction................................................................................................................ 12
3.2. Description du protocole............................................................................................. 12
3.2.1. Trois entités.....................................................................................................................12
3.2.2. Le contrôle de port ........................................................................................................ 13
3.2.3. Mécanismes de 802.1x.................................................................................................... 14
3.2.4. Extensible Authentification Protocole (EAP)................................................................ 17
3.2.5. Vue d'ensemble...............................................................................................................18
3.3. Sécurité apportée par le protocole 802.1x.................................................................. 19
3.3.1. Diversité des algorithmes d'authentification....................................................................19
3.3.2. Spécificités du Wifi........................................................................................................21
3.4. Limites du 802.1x........................................................................................................ 21
4. Conclusion.............................................................................................................. 22
5. Bibliographie ......................................................................................................... 23
5.1. Radius ........................................................................................................................ 23
5.2. 802.1x......................................................................................................................... 23
1. Définitions
L'authentification sous-entend qu'il y ait deux entités distinctes. L'authentification doit être mutuelle
pour que la sécurité soit assurée et pour être sur que l'on n'est pas victime d'une attaque par homme
du milieu.
L'exemple suivant permet de bien faire la distinction entre authentification et identification. Un
numéro de carte bancaire identifie de façon unique le compte du client à débiter. Cependant, ce n'est
qu'avec le code secret de la carte bleu qu'on a l'assurance que le porteur de la carte est son
propriétaire. On a donc identifier le compte à débiter mais aussi authentifier le donneur d'ordre.
Le but d'une authentification forte est donc de rendre plus complexe pour un pirate de réussir à
s'introduire dans un système ou à réussir une usurpation d'identité.
L'autre aspect que doit garantir l'authentification est le secret entre les entité. Les échanges entre les
deux entités doivent être protégées pour éviter le vol d'identité. On utilise généralement EAP (RFC
3748) comme protocole de cryptage. Celui ci a l'avantage d'être utilisable sur tous type de réseaux et
en utilisant des méthodes cryptanalitique variées. On compte ainsi plus de dix variantes du
protocoles ( EAP-IKEv2, PEAPv0/EAP-MSCHAPv2 ... ).
● IPsec
● SSL: Sécure Socket Layer
● 802.1x
● EAP
Tous ses protocoles ne s'exécutent pas au même niveau de la pile OSI. Nous avons choisi de traiter
l'authentification vu par 802.1x, c'est à dire au plus bas niveau. Celui-ci à l'avantage de protéger le
réseau depuis les couches inférieures, ce qui rend en théorie, impossible l'utilisation d'un matériel
non autorisé sur celui-ci.
Ceci est très pratique lorsque la sécurité des couches supérieures est faible ou inexistante. 802.1x
peut être utiliser pour empêcher un ordinateur inconnu ou ne respectant pas les normes de sécurité
d'utiliser le réseau alors même que les machines sont adressées via un serveur DHCP.
802.1x permet en plus de réserver de la bande passante pour un type de flux, car cette norme
requière une gestion fine des ports d'accès au réseau.
Les commutateurs pouvant mettre en oeuvre 802.1x sont généralement des matériels professionnel,
ils sont aussi plus cher.
2. Le protocole Radius
2.1. Introduction
Radius a été conçu pour répondre aux problème d'authentification pour les accès distants par liaison
téléphonique. La première version date de 1997.
Radius signifie Remote Access Dial In User Service. Ce protocole est décrit dans la RCF 2865 de
l'IETF.
Radius est un protocole répondant au modèle AAA, c'est à dire qu'il permet de contrôler ses
paramètres:
1. Authentication: c'est à dire authentifier d'entité
2. Authorization: c'est à dire accorder des droits à l'utilisateur
3. Accounting: c'est à dire enregistrer les données de comptabilité de l'usage du réseau par
l'entité.
Notre étude se penche surtout sur les aspects Authentication et Authorization.
On distingue deux sortes d'authentifications RADIUS. La première est basée sur l'adresse MAC de
la carte Ethernet. La seconde est basée sur le protocole 802.1x.
L'entité qui se connecte sur le réseau n'a pas a connaître le protocole Radius. De même le serveur
Radius peut identifier les entités grâces à la une base d'utilisateur dans un annuaire LDAP.
Cependant, il est facile de spoofer une adresse MAC, installer une authentification Radius pour faire
simplement un filtrage d'addresse MAC semble disproportionné.
Cependant cette possibilité est intéressante lorsqu'elle permet de connecter au réseau des appareils
incapables de réaliser une authentification 802.1x .
Pour des raisons de sécurités, il est préférable d'éviter cette solution, surtout dans le cadre d'un point
d'accès sans fil.
2.3.Paquets Radius
2.3.1.Présentation générale
Radius est basé sur des échanges requêtes, réponses avec l'entité a authentifier. Le protocole défini
quatres type de paquets pour assurer les transactions d'authentification, mis a part les paquets de
comptabilisation.
Un paquet Radius comporte 5 champs explicités dans le tableau ci dessous:
2.4.Messages Radius.
Le protocole Radius est conçu pour des scénaris de fonctionnement basé sur les quatre messages
Access-Request, Access-Accept, Access-Reject, Access-Challenge.
Les paquets Radius utilisent les ports UDP 1812 (autorisation, authentification) et 1813
( comptabilité). Les ports 1645 et 1646 sont maintenant obsolètes.
NAS
Emet
Access-Request
contient l'attribut User-Name et aussi:
Calling-Station-id, NAS-identifier, NAS-IP-
Address, ...
Serveur
Emet, ou Radius Emet
Emet, ou
Access-Challenge
Access-Accept Access-Reject
Le serveur Radius ordonne
Le serveur Radius Le serveur Radius ne
la réalisation d'un challenge.
valide l'identité de valide pas l'identité de
l'entité l'entité
Toujours utilisé avec EAP.
Pour répondre à ses critiques, le projet DIAMETER a été créé pour succéder à Radius, mais sont
déploiement est moindre. Cependant , il faut garder a l'esprit que le protocole Radius circule sur une
partie en théorie sécurisée du réseau: Il est inutile de mettre en place une solution 802.1x si on peut
accéder aux installations réseaux sans autorisation.
3. Le protocole 802.1X
3.1. Introduction
Le protocole 802.1x est un protocole issu des travaux de l'IEEE ( Institute of Electrical and
Electronics Engineers). C'est un protocole qui a pour but de contrôler l'accès au réseau via le
contrôle de port du commutateur d'accès. Ce standard n'est pas incompatible avec les VLAN
(802.1Q) et au contraire lui ajoute une couche de sécurité.
3.2.Description du protocole
La norme 802.1x ne prévoie pas le support physique du port. Ainsi il est possible que le port soit un
connecteur RJ45 éthernet, une fibre optique ou un point d'accès sans fil.
3.2.3.Mécanismes de 802.1x
Au niveau du supplicant
On va maintenant décrire le fonctionnement du supplicant à l'aide d'un automate simplifié. La
description des états est la suivante:
● LOGOFF : cet état est atteint quand l utilisateur du système quitte sa session.
● DÉCONNECTÉ : dans cet état, le port physique est actif.
● CONNEXION : le supplicant est en attente d'une requête EAP avec un type Identity .La
compatibilité avec le matériel qui ne supporte pas 802.1x se fait par le passage à l'état
AUTHENTIFIÉ après trois requêtes EAPOL-Start sans réponses.
● ACQUISITION : l automate du supplicant envoie son identité à l'authenticator, et passe dans
l état « AUTHENTIFICATION » dès réception du premier paquet EAP avec un type
différent de Identify.
● AUTHENTIFICATION : dans cet état, le supplicant répond au serveur d'authentification.
● AUTHENTIFIÉ : les services contrôlés par le port protégé sont accessibles.
● HELD : état de temporisation (60s par défaut) contre les attaques par force brute.
Au niveau de l'authentificator
On décrit de la même façon le fonctionnement de l'authenticator. Les états sont décrits à la suite.
● INITIALISATION : cet état est atteint quand le protocole 802.1X est activé ou quand le port
physique du PAE a été débranché, ou enfin lorsque l équipement est mis sous tension.
● DÉCONNECTÉ : dans cet état, le port physique est actif mais les services contrôlés par le
port protégé sont inaccessibles.
● CONNEXION : l authenticator envoie une requête EAP avec un type Identity au supplicant
puis il se met en attente d une réponse.
● AUTHENTIFICATION : l authenticator sert de proxy d'authentification. Il interprète
seulement (tout en les relayant) les réponses finales (Reject ou Accept) du serveur
d authentification pour passer dans l état correspondant.
● AUTHENTIFIÉ : les services contrôlés par le port protégé sont accessibles.
● HELD : état de temporisation contre les attaques de type « force brute ». Dans cet état, tous
Le supplicant intervient sur ce protocole. On peut voir sur le schéma ci-dessous comment EAP est
transporté par Radius.
Serveur Radius
Authenticator Server
EAP Method
EAP
Commutateur
Authenticator
Poste de travail (Authenticator, NAS)
EAP
EAP
EAP Peer UDP UDP
Authenticator
EAP EAP IP IP
On observe que ce n'est pas qu'une mais trois couches qui sont ajoutées sur la pile.
1. la couche EAP sert d'intermédiaire entre la couche de liaison de données et la couche EAP
peep
2. la couche EAP peer ou la couche EAP Authenticator servent à interpréter différents types
de paquets ( Request, Response, Failure, Sucess) utilisés dans EAP et de les orienter vers la
méthode de chiffrage EAP utilisée.
3. la couche EAP method est le siège des opérations de cryptographie.
Il faut toutefois prendre en compte deux points: la solution de cryptage n'est pas définit par la
norme, bien au contraire. C'est pourquoi on utilise le protocole EAP, ce qui permet entre autre de
négocier le protocole d'authentification entre le client et le serveur à chaque authentification.
Ensuite, interdire l'accès au réseau par le blocage de port est suffisant dans les réseaux filaires, pas
dans les technologies sans fils.
EAP/TLS
TLS permet l'authentification mutuelle du client et du serveur et le chiffrement. If est définit dans la
RFC 2716. Il est basé sur l'authentification par certificat du cient et du serveur. Il se déroule en 7
étapes:
1. Le serveur envoie au supplicant une requête de démarrage (TLS-start)
2. Le client répond TLS-hello qui contient la liste des algorithmes de chiffrement qu'il prend
en charge et un nomus.
3. Le serveur répond par un Server-Hello, qui désigne l'algorithme de chiffrement, contient un
autre nomus, son certificat, sa clef publique. Il demande aussi le certificat du supplicant
(Certificat_Request)
4. Le supplicant authentifie le certificat du serveur, envoie sa clef publique et son certificat. Il
génère une clé (Pre-Master Key) à partir des données échangées, elle est transmise cryptée
avec la clé publique du serveur. Enfin il calcule la clef principale de session appelée Master
Key. Le supplicant signale au serveur qu'il utilise maintenant la Master Key
5. Le serveur authentifie le certificat du supplicant. Il déchiffre la Pre-Master Key. Il est alors
capable de générer la Master Key à son tour. Le serveur signale au supplicant qu'il utilise
EAP/PEAP
C'est un protocole développé par Microsoft, Cisco et RSA Sécurity qui a l'avantage d'être
asymétriques: l'authentification est mutuelle mais le supplicant authentifie via une paire identifiant
mot de passe et le serveur s'authentifie via un certificat.
1. Le serveur envoie au supplicant une requête de démarrage (PEAP-start)
2. Le client répond PEAP-hello qui contient la liste des algorithmes de chiffrement qu'il prend
en charge.
3. Le serveur répond par son certificat et sa clef publique. Il désigne aussi l'algorithme de
chiffrement.
4. Le supplicant authentifie le certificat du serveur. Il génère une clé (Pre-Master Key) elle est
transmise cryptée avec la clé publique du serveur.
5. Le serveur et le supplicant calculent la Master Key et vont maintenant utiliser un tunnel
chiffré.
6. Le client envoie sont identifiant grâce à EAP-identity ( le port de l'authenticator est fermé
pour tout ce qui n'est pas EAP)
7. Le serveur envoie un nomus grâce à un Access-Challenge
8. Le supplicant répond au challenge
9. Le serveur vérifie le challenge
10. Le serveur et le supplicant envoient chacun une requête vide pour montrer qu'ils sont arrivés
au bout du protocole.
11. Le serveur autorise l'authenticator à donner l'accès au réseau au supplicant ( Access
Accept ).
Ce qu'apporte 802.11i sur 802.1x est le chiffrement des données échangées. En effet, la diffusion
propre aux réseaux sans fils empêche d'interdire l'écoute des trames 802.11. Pour simplifier, les
auteurs indiquent que WPA2 = 802.1X + AES + TKIP.
3.4.Limites du 802.1x
Le 802.1x a été mis en échec par du matériel comme un simple concentrateur réseau dans ses
premières versions, ou du spoofing. Maintenant, les constructeurs de switch 802.1x ont développé
des techniques permettant de détecter ce genre d'abus et la norme a évolué pour faire façe à ces
problèmes.
4. Conclusion
Le protocole 802.1x est un protocole robuste qui permet par l'intermédiaire de protocoles
préexistants d'assurer l'authentification: EAP et Radius.
Par le contrôle de port qu'il apporte, il permet d'empêcher des trames de source inconnue de circuler
sur le réseau. Si on l'emploie avec des VLAN 802.1q, alors il permet d'obtenir un réseau local
sécurisé à partir de la couche de liaison de données.
Ce protocole a été repris comme élément pour bâtir le standard en réseau Wifi, dans le domaine ou
il était le moins pertinent. Enfin, c'est un protocole récent et qui est mis à jour pour corriger les
problèmes qui peuvent apparaître.
5. Bibliographie
5.1. Radius
● Remote Authentication Dial In User Service (RADIUS), [RFC 2865],
http://tools.ietf.org/html/rfc2865
● Authentification Réseau avec Radius, Serges Bordères, éditions Eyrolles, 209 p, ISBN
2-212-12007-9
5.2. 802.1x
● Port-Based Network Access Control, IEEE 802.1x,
http://standards.ieee.org/getieee802/download/802.1X-2004.pdf (vu le 11/11/2007)
● Wifi Déploiement et Sécurité 2e édition, Aurélien Géron, édition Dunod, 396 p, ISBN
2-10-050064-3
● Using 802.1x Port Authentication To Control Who Can Connect To Your Network, Colin
Weaver, 11p, http://www.itdojo.com/synner/pdf/synner2.pdf , version html (vu le
11/11/2007)
● An initial security analysis of the 802.1x standard, Mishra, A. & Arbaugh, W. (2002), 12p,
http://www.cs.umd.edu/~waa/1x.pdf (vu le 11/11/2007)
• You ll need to have some rights to set up the PC. Administrator rights will do nicely.
• Make sure you have at least SP1 installed (XP Pro).
• If you re using Windows 2000 pre-SP3 you ll need to go here
(http://support.microsoft.com/kb/313664/EN-US/) and do some reading.
• Make sure your PC is a member of the domain.
• Open Network Connections and access the properties of your network card.
• Select the Authentication tab from the NIC Properties
• Verify that the Enable IEEE 802.1x authentication for this network check box is selected.
• From the EAP type: drop-down, select Protected EAP (PEAP).
• Verify that the Authenticate as computer when computer information is available is
selected.
• Leave the Authenticate as guest when user or computer information is unavailable
unselected.
Complete the following tasks while still on the Authentication tab of the Network Card properties:
That should do it. The client (supplicant) is configured. Are there other ways? Yup! But not today&
To summarize:
• The computer account (Futomaki, in this article) is a member of the Global group named Global
Authorized PCs
• The user account (Colin Weaver) is a member of Domain Users (a default membership for all
domain accounts).
• This is important because you will see in a moment that we set up authentication based on group
membership (Global Authorized PCs), not on user group membership.
Next we need to configure IAS (RADIUS) for authentication. The tasks are as follows:
• Click Finish.
The Remote Access Policy is now configured. It should be at the top of the list on the detail pane. Order is
important on this list. More than anything be sure the policy you just created is not the last one on the list. It
won t work if it is. The safest bet is for it to be on the top of the list. You need to sort any other policies you
have in order to make sure you get the desired behavior (if you have others, that is).
• To verify your policy settings double-click on the policy in the detail pane of IAS. You should see a
settings tab. Make sure it contains the following Policy Conditions:
• NAS-Port-Type matches Ethernet and;
• Windows-Group matches Phatcat\Global Authorized PCs (or whatever your group
name is)
• At the bottom of the settings page make sure the Grand remote access permission is selected.
Click OK.
That should do it. The authentication server is configured. Are there other options and things to consider?
Yup! But not today&
A Cisco switch configured for 802.1x authentication doesn t allow anything through until you authenticate.
Anything (e.g. it s allowed even without authentication) includes:
The one thing we can say for sure about all three of those message types: they are all Layer 2 messages.
Nothing that s Layer 3 is going anywhere until you ve authenticated. 802.1x isn t enabled by default. You ve
got to turn it on and you ve got to configure AAA on the switch. The basic steps you have to take are:
From the switch Command-Line Interface (CLI) there are a few interface configuration commands that you
can use to control 802.1x. One of the most often used is the dot1x port-control command. There are three
modifiers to the command. They are:
• auto
• force-authorized
• force-unauthorized
• If you set the port to force-authorized it will allow traffic, effectively disabling the need for
authentication. This is the same as having no 802.1x port-authentication at all.
• If you set the port to force-unauthorized it will NOT allow traffic, effectively disabling the port. Even
legitimate hosts will not be able to authenticate
• If you set the port to auto it will cause the port to start its day in an unauthorized state. This is the
mode you want to use if you re going to do 802.1x port-authentication. As soon as a device connects
to the port the authentication process starts. Depending on the client that is connected it may be the
client (the PC) that begins the authentication process or it may be the switch. If the switch is set to
auto it will send an authentication request when it detects the link state change (e.g. the link has
come up). It is also possible that the link is already up and the client sends the authentication
request. While who starts it is important it doesn't change the end result; the client has got to
authenticate because the switch isn't letting anything through otherwise.
Keep in mind that the switch doesn't actually do the authentication. It's just a pass-through. He's the
gatekeeper but he doesn't decide if the device is allowed. That's the authentication server's job (RADIUS or
TACACS+). If the RADIUS server says SUCCESS the port becomes authorized. If the RADIUS server says
FAILURE the port stays in an unauthorized state (e.g. no frames are passed).
The dot1x port-control auto command by itself isn t enough. Check out this debugging taken after the
dot1x port-control auto command is entered on an interface (no other dot1x configuration has been done):
The error message about half-way through shows that the switch isn t able to communicate with the
Authenticator process so it fails, allowing the port to transition into an authorized state. There is a bunch of
configuration commands missing to make this work. Let s look at them.
In order to configure the switch for AAA and 802.1x, I configure the following:
That s it! Let s look at each of these commands in a little detail and check out what they re doing.
• aaa new-model Enables AAA on the switch. This command is a must if you re going to do
anything other than local passwords on the switch
• aaa authentication dot1x default group radius This command creates something called a
method list for 802.1x authentication. A method list is little more than a list of stuff to try in order to
authenticate. The default keyword specifies that this is the list to use for all situations not otherwise
specified. The group radius keyword specifies the order in which authentication methods should be
tried. First, try all the RADIUS servers. If they return an error (different from a FAILURE messages),
use whatever is listed next. In this case, there is nothing after RADIUS so it s important that it s
available and functioning. Interestingly enough, if you were to enter aaa authentication dot1x default
group radius none you might expect the switch to try RADIUS and then, if no response was received,
to accept none as the authentication method. My personal tests of this have not shown this to be
true. The documentation on Cisco s site specifically says, if an error is returned , the next
authentication method is attempted. I guess getting no response and getting an error message are
two different things to Cisco.
• switchport mode access the port has to be an access port for 802.1x to work. It can t be anything
else. Anything else includes a trunk port, a dynamic port, a SPAN port, etc. If you say, Hey Colin,
what about if it s configured as a & , No! The port needs to be an access port and it needs to have
one PC connected to it. No hubs, no other switches, no access points& just one PC plugged into
one switch port. There is a multi-host option but it s not likely that you ll want to use it. Trust me on
this. If you don t, look it up on Cisco s site.
• dot1x system-auth-control this command enables 802.1x globally on the switch
• radius-server host 172.16.44.200 auth-port 1812 key 1Td0j0Rawkz! this is what points the
switch to the radius server. The IP address is that of the RADIUS server. The auth-port is UDP port
1812, which is a default for RADIUS. 1813 is the default accounting port. You may also see ports
1645 & 1646 used by some apps. The key keyword is followed by the secret key the switch shares
with the RADIUS server. This is the same key you configured earlier when setting up the switch as a
RADIUS client on the Windows Server box.
• dot1x port-control auto I already talked about this one. This command enables 802.1x on an
interface.
Now that we have it all set up, let s test it and capture the packets on the RADIUS server to see what we get.
Guess what, it works like a champ. Here s a screen shot of the RADIUS capture:
If you want to see the capture in ethereal, you can download it here
http://www.itdojo.com/synner/images/synner2images/radiussnag.cap