Établissement d’une connexion sécurisée avec l’authentification
Dans un protocole d’application client/serveur, un serveur est lié à un port de communication tel qu’un socket ou une interface RPC. Le serveur attend ensuite qu’un client se connecte et demande le service. Le rôle de la sécurité lors de la configuration de la connexion est double dans le cas de l’authentification mutuelle :
- Authentification du client par le serveur.
- Authentification du serveur par le client.
Les composants client et serveur d’une application de transport utilisent un package de sécurité pour établir une connexion sécurisée pour la transmission des messages. La première étape de l’établissement d’une connexion sécurisée consiste à créer un contexte de sécurité ; autrement dit, une structure de données opaque qui contient les données de sécurité pertinentes pour une connexion, telles qu’une clé de session et la durée de la session.
Un contexte de sécurité est essentiellement un message du package de sécurité associé au client vers le package de sécurité associé au serveur. Par conséquent, la création d’un contexte de sécurité nécessite généralement que le client et le serveur effectuent des appels à leurs packages de sécurité respectifs. Pour plus d’informations sur les fonctions contextuelles, consultez Gestion du contexte.
Le protocole utilisé pour établir une connexion sécurisée et authentifiée implique l’échange d’un ou plusieurs « jetons de sécurité » entre le client et le serveur. Ces jetons sont envoyés sous forme de messages opaques par les deux côtés, ainsi que toute autre information spécifique au protocole d’application. En tant que message opaque, le jeton est reçu d’une fonction de package de sécurité par le client, qui ne peut pas l’interpréter ou le modifier, et est transféré en tant que message au serveur. Le jeton est également opaque pour le serveur, qui ne peut ni interpréter ni modifier le jeton. Le serveur transfère le jeton opaque à son package de sécurité à des fins d’interprétation. Le package informe ensuite le serveur de l’authentification du client ou de l’échec de l’authentification.
Le client reçoit le jeton du serveur dans un message, récupère le jeton du message reçu et utilise ce jeton dans un appel à son package de sécurité. Le client appelle ensuite à nouveau le package de sécurité pour indiquer si une connexion sécurisée a été établie ou si d’autres échanges sont nécessaires avant qu’une connexion sécurisée soit prête. En théorie, il n’existe aucune limite au nombre d’échanges de jetons de sécurité nécessaires. Dans la pratique, seul un nombre limité d’échanges est requis. L’authentification NTLM est basée sur le schéma de défi/réponse et utilise trois étapes pour authentifier un client auprès du serveur. Le protocole Kerberos version 5.0 peut nécessiter des échanges de messages supplémentaires.
Rubriques connexes