3.2. L'échange d'authentification client/serveur
Vue d'ensemble
L'échange d'authentification client/serveur (Client/Server, CS) est utilisé lorsqu'un client souhaite s'authentifier auprès d'un serveur d'application au moyen d'un ticket de service obtenu auprès du TGS.
Flux des messages
- KRB_AP_REQ : le client envoie une demande d'authentification au serveur d'application
- contient le ticket de service
- contient l'authentificateur (chiffré avec la clé de session)
- KRB_AP_REP : réponse optionnelle d'authentification mutuelle du serveur
Le message KRB_AP_REQ
Composants
- Ticket : chiffré dans la clé à long terme du serveur, contient :
- l'identité du client
- la clé de session
- la période de validité
- Authenticator : chiffré dans la clé de session, contient :
- le nom du principal client
- l'horodatage
- la sous-clé de session optionnelle
Processus de génération
Le client construit l'authentificateur et l'associe au ticket pour l'envoi au serveur d'application.
Réception et vérification
Le serveur d'application :
- déchiffre le ticket avec sa clé à long terme
- extrait la clé de session
- déchiffre et valide l'authentificateur
- contrôle l'horodatage pour la protection contre la relecture
Le message KRB_AP_REP
Rôle
Assure l'authentification mutuelle en prouvant au client que le serveur possède la clé de session.
Génération
Le serveur crée une réponse chiffrée avec la clé de session, contenant l'horodatage issu de l'authentificateur du client.
Réception
Le client vérifie l'horodatage pour confirmer que le serveur détient la clé de session.
Utilisation de la clé de chiffrement
Après authentification réussie, la clé de session (ou la sous-clé de session optionnelle) peut servir à :
- chiffrer les messages suivants
- assurer l'intégrité
- établir un canal sécurisé
Référence
Pour les détails techniques complets, voir RFC 4120, section 3.2.