Session Tickets
Au lieu d’envoyer les clés de session chiffrées aux deux principaux, le KDC envoie les copies de la clé de session du client et du serveur au client. La copie de la clé de session du client est chiffrée avec la clé master du client et ne peut donc pas être déchiffrée par une autre entité. La copie de la clé de session du serveur est incorporée, ainsi que les données d’autorisation sur le client, dans une structure de données appelée ticket. Le ticket est entièrement chiffré avec la clé de master du serveur et ne peut donc pas être lu ou modifié par le client ou toute autre entité qui n’a pas accès à la clé master du serveur. Il incombe au client de stocker le ticket en toute sécurité jusqu’à ce qu’il soit contacté par le serveur.
Notes
Le KDC fournit uniquement un service d’octroi de tickets. Le client et le serveur sont responsables de la sécurisation de leurs clés master respectives.
Lorsque le client reçoit la réponse du KDC, il extrait le ticket et sa propre copie de la clé de session, en mettant les deux de côté dans un cache sécurisé. Pour établir une session sécurisée avec le serveur, il envoie au serveur un message composé du ticket, toujours chiffré avec la clé master du serveur, et un message d’authentificateur chiffré avec la clé de session. Ensemble, le ticket et le message d’authentificateur sont les informations d’identification du client pour le serveur.
Lorsque le serveur reçoit des informations d’identification d’un client, il déchiffre le ticket avec sa clé master, extrait la clé de session et utilise la clé de session pour déchiffrer le message d’authentificateur du client. Si tout est vérifié, le serveur sait que les informations d’identification du client ont été émises par le KDC, une autorité approuvée. Pour l’authentification mutuelle, le serveur répond en chiffrant l’horodatage du message d’authentificateur du client à l’aide de la clé de session. Ce message chiffré est envoyé au client. Le client déchiffre ensuite le message. Si le message retourné est identique à l’horodatage dans le message d’authentificateur d’origine, le serveur est authentifié.
En outre, le serveur n’a pas besoin de stocker les clés de session qu’il utilise avec ses clients. Il incombe à chaque client de gérer le ticket du serveur dans son cache de tickets et de présenter ce ticket chaque fois qu’il accède au serveur. Chaque fois que le serveur reçoit un ticket d’un client, il utilise sa clé master pour déchiffrer le ticket et extraire la clé de session. Lorsque le serveur n’a plus besoin de la clé de session, la clé est supprimée.
Le client n’a pas besoin d’accéder au KDC chaque fois qu’il souhaite accéder à ce serveur particulier. Les tickets peuvent être réutilisés. Par mesure de précaution contre le risque de vol de ticket, les tickets ont un délai d’expiration, spécifié par le KDC dans la structure du ticket. La durée de validité d’un ticket dépend de la stratégie Kerberos pour le domaine. En règle générale, les billets ne sont pas plus longs que huit heures, soit environ la durée d’une session d’ouverture de session normale. Lorsque l’utilisateur sur une station de travail cliente se déconnecte, le cache de tickets client est vidé et tous les tickets et clés de session client sont détruits.