II.1.5. Eléments d'authentification RADIUS
L'identification RADIUS peut être enrichie d'une
autorisation, par exemple pour un client de fournisseur d'accès son
adresse IP, son temps de connexion maximal, son temps d'inactivité. Tous
ces paramètres sont définis par des attributs du paquet dans les
RFC, en l'occurrence pour cet exemple l'attribut 8, plus connu sous son nom
"convivial" Framed-IP-Address, bien que le protocole ne connaisse en fait que
les numéros, et les attributs Session-Timeout et Idle-Timeout. Les
attributs standards sont définis dans les RFC, les attributs
spécifiques d'un fournisseur ou VSA (Vendor Specific Attributes) sont
multiplexés dans l'attribut 26 : chaque fournisseur se voit attribuer un
numéro unique permettant de l'identifier, un octet de cet attribut
définit un numéro de VSA, ce qui permet à chaque
fournisseur de définir jusqu'à 255 attributs spécifiques
pour son matériel. Le serveur Radius s'adapte à ces "dialectes"
par des dictionnaires d'attributs...
ü Authentification avec l'adresse Ethernet (adresse
MAC)
L'adresse MAC de la carte Ethernet du poste de travail
identifie ce dernier. Cette adresse MAC n'est pas une preuve absolue
d'identité puisqu'il est relativement facile de la modifier et d'usurper
l'identité d'un autre poste de travail.
Néanmoins, sur un réseau filaire, cette adresse
peut être suffisante puisque, pour tromper le système
d'authentification, il faudra tout de même pénétrer sur le
site, connaître une adresse MAC valide et réussir à s'en
servir. Même si on peut imaginer qu'une personne décidée
peut y arriver, cette solution est suffisante si on considère qu'il
s'agit là d'une première barrière.
En revanche, si on souhaite une authentification très
forte il faudra utiliser une autre méthode, à savoir 802.1X et
EAP. Dans le cas du sans-fil, l'authentification par adresse MAC fonctionne
également mais elle est fortement déconseillée comme
unique moyen. En effet, même si on met en place un chiffrement fort des
communications, l'adresse MAC circule toujours en clair.
Or, le problème du sans-fil est que le
périmètre du réseau est flou et incontrôlable. Par
conséquent, n'importe qui, écoutant ce réseau, même
sans accès physique, peut capter des adresses MAC et s'en servir
très facilement ensuite pour s'authentifier. Cet inconvénient est
moindre en filaire car le périmètre est complètement
déterminé et une présence physique dans les locaux est
nécessaire. Ce type d'authentification est appelé Radius-MAC ou
encore MAC-based.
Figure : Format des Paquets Radius
23
V' Authentification par certificat électronique
X509
Ce type d'authentification consiste à faire
présenter par le client un certificat électronique dont la
validité pourra être vérifiée par le serveur.
Il peut s'agir d'un certificat appartenant à un
utilisateur. Dans ce cas on parlera d'authentification par utilisateur. Mais il
peut également s'agir d'un certificat machine qui sera alors lié
à la machine. L'usage des certificats implique l'existence d'une IGC
(Infrastructure de gestion de clés, ou PKI en anglais, pour Public Key
Infrastructure).
V' Authentification RADIUS par identifiant et mot de
passe
Ce type d'authentification correspond plutôt à
une authentification par utilisateur et suppose qu'il existe quelque part une
base de données qui puisse être interrogée par le serveur.
Plusieurs protocoles peuvent être mis en oeuvre pour assurer une
authentification par identifiant et mot de passe. Cependant, il convient
d'éliminer ceux pour lesquels le mot de passe circule en clair sur le
réseau ou bien est stocké en clair dans la base de
données.
Le protocole 802.1X nous permettra de mettre en oeuvre des
solutions (EAP/PEAP ou EAP/TTLS) qui permettront de résoudre ces
problèmes. Comme les utilisateurs sont déjà
confrontés à la nécessité de posséder de
multiples mots de passe pour de multiples applications, il sera
intéressant de réutiliser une base existante comme un domaine
Windows ou une base LDAP.
A. Les différents types de paquets
RADIUS
V' Access-Request : la conversation commence toujours par un
paquet Access-Requestémis par le NAS (client RADIUS) vers le serveur
RADIUS. Il contient au moins l'attribut User-Name et une liste d'autres
attributs tels que Calling Station-Id, Nas-Identifier, etc.
V' Access-Challenge : après réception d'un
paquet Access-Request, le serveur peut renvoyer un paquet Access-Challenge qui
a pour but de demander d'autres informations et de provoquer l'émission
d'un nouveau paquet Access-
Request:parleNAS.Access-ChallengeseratoujoursutiliséavecEAP
puisqu'il permettra au serveur de demander un certificat ou un mot de passe
au poste de travail.
V' Access-Accept : Ce paquet est renvoyé au NAS par le
serveur Radius si l'authentification transmise par l'Access-Request a
été correctement validée.
B. Format générale des paquets
RADIUS
Radius utilise quatre types de paquets pour assurer les
transactions d'authentification. Tous les paquets ont le format
général indiqué par la figure suivante :

Code Longueur Authentificateur Attributs et
valeurs
Id
24
· Code : Ce champ d'un seul octet contient une valeur
qui identifie le type du paquet. La RFC 3575 (IANA considerations for Radius)
définit 255 types de paquets. Par chance, quatre d'entre eux seront
suffisants pour les problèmes qui nous préoccupent ici. Il s'agit
de :
Access-Request (code=1);
Access-Accept (code=2);
Access-Reject (code=3);
Access-Challenge (code=11).
· ID : Ce champ, d'un seul octet, contient une valeur
permettant au client Radius d'associer les requêtes et les
réponses.
· Longueur : Champ de seize octets contenant la longueur
totale du paquet.
· L'authentificateur : Ce champ de seize octets a pour
but de vérifier l'intégrité des paquets. On distingue
l'authentificateur de requête et l'authentificateur de réponse. Le
premier est inclus dans les paquets de type Access-Request ou
Accounting-Request envoyés par les NAS. Sa valeur est calculée de
façon aléatoire. Et l'authentificateur de réponse est
présent dans les paquets de réponse de type Access-Accept,
Access-Challenge ou Access-Reject. Sa valeur est calculée par le serveur
à partir d'une formule de hachage MD5 sur une chaîne de
caractères composée de la concaténation des champs code,
ID, longueur, authentificateur de requête et attributs.
· Attributs et valeur : Ce champ du paquet est de
longueur variable et contient la charge utile du protocole, c'est-à-dire
les attributs et leur valeur qui seront envoyés soit par le NAS (client
RADIUS) en requête, soit par le serveur en réponse.
Suite à la phase d'authentification définie
au-dessus, débute une phase d'autorisation où le serveur RADIUS
retourne les autorisations de l'utilisateur.
|