2.1 Challenge/Response
2.1. Challenge/Response
Dans l'authentification challenge/response, l'utilisateur reçoit un nombre imprévisible et est invité à le chiffrer et à renvoyer le résultat. Les utilisateurs autorisés sont équipés de dispositifs spéciaux tels que des cartes à puce ou de logiciels qui facilitent le calcul de la réponse correcte avec facilité. Les utilisateurs non autorisés, n'ayant pas le dispositif ou le logiciel approprié et n'ayant pas connaissance de la clé secrète nécessaire pour émuler un tel dispositif ou logiciel, ne peuvent que deviner la réponse.
Le paquet Access-Challenge contient généralement un Reply-Message incluant un défi à afficher à l'utilisateur, tel qu'une valeur numérique peu susceptible d'être répétée. Généralement, cela est obtenu à partir d'un serveur externe qui sait quel type d'authentificateur est en possession de l'utilisateur autorisé et peut donc choisir un nombre aléatoire ou pseudo-aléatoire non répétitif d'une base et d'une longueur appropriées.
L'utilisateur entre alors le défi dans son dispositif (ou logiciel) et celui-ci calcule une réponse, que l'utilisateur entre dans le client qui la transmet au serveur RADIUS via un second Access-Request. Si la réponse correspond à la réponse attendue, le serveur RADIUS répond avec un Access-Accept, sinon un Access-Reject.
Exemple: Le NAS envoie un paquet Access-Request au serveur RADIUS avec NAS-Identifier, NAS-Port, User-Name, User-Password (qui peut être simplement une chaîne fixe comme "challenge" ou ignorée). Le serveur renvoie un paquet Access-Challenge avec State et un Reply-Message du type "Challenge 12345678, entrez votre réponse à l'invite" que le NAS affiche. Le NAS demande la réponse et envoie un NOUVEL Access-Request au serveur (avec un nouvel ID) avec NAS-Identifier, NAS-Port, User-Name, User-Password (la réponse qui vient d'être entrée par l'utilisateur, chiffrée), et le même attribut State qui est venu avec l'Access-Challenge. Le serveur renvoie alors soit un Access-Accept soit un Access-Reject selon que la réponse correspond à la valeur requise, ou il peut même envoyer un autre Access-Challenge.