Etablissement de liaison SSL/TLS

Le protocole d'établissement de liaison SSL/TLS est appliqué lors de la demande initiale de connexion entre le client et le serveur SSL/TLS, lors de l'authentification et de la négociation des suites de chiffrement.

Toutes les CipherSuites SSL/TLS prises en charge (voir Prise en charge de SSL/TLS), à l'exception des CipherSuitesanonymes, requièrent une authentification du serveur et autorisent l'authentification du client ; le serveur peut être configuré pour demander l'authentification du client. Il est conseillé d'éviter d'utiliser les suites de chiffrement anonymes, car elles n'offrent aucune garantie sur l'identité de l'homologue distant. Une attaque potentielle (de type man-in-the-middle) peut ainsi intercepter les connexions SSL/TLS anonymes à votre insu. Utilisez des suites de chiffrement anonymes uniquement sur des réseaux internes et uniquement si vous êtes prêt à accepter le risque de d'une interception de données.

L'authentification homologue de communication dans SSL/TLS repose sur un chiffrement à clé publique et des certificats numériques X.509v3. Un site qui doit être authentifié dans le protocole SSL/TLS requiert une clé privée et un certificat numérique (qui contient la clé publique correspondante ainsi que les informations sur l'identité du site), et la durée de validité du certificat. Les certificats sont signés par une autorité de certification. Ce type de certificat est appelé certificats de signataire. Un certificat suivi d'un ou de plusieurs certificats de signataire forme une chaîne de certificats. Une chaîne de certificats se caractérise par le fait que, en commençant par le premier certificat (certificat de site), la signature de chaque certificat de la chaîne peut être vérifiée à l'aide de la clé publique du certificat de signataire suivant.

Lorsqu'une connexion sécurisée nécessitant l'authentification du serveur est en cours d'établissement, le serveur envoie au client une chaîne de certificats afin de prouver son identité. Le client SSL/TLS poursuit l'établissement de la connexion au serveur uniquement s'il peut authentifier le serveur, par exemple en vérifiant la signature du certificat de site du serveur. Pour vérifier cette signature, le client SSL/TLS doit sécuriser le site du serveur lui-même ou au moins l'un des signataires dans la chaîne de certificats fournie par le serveur. Les certificats des sites sécurisés et les signataires doivent être conservés côté client pour effectuer cette vérification.

Le client SSL/TLS inspecte la chaîne de certificats du serveur, en commençant par le certificat du site. Le client considère que la signature du certificat de site est valide dans les cas suivants :
  • Le certificat du site se trouve dans le référentiel du site sécurisé ou des certificats de signataire.
  • Un certificat de signataire de la chaîne peut être validé en fonction de son référentiel de certificats de signataire sécurisés.
Dans ce dernier cas, le client SSL/TLS vérifie que la chaîne de certificats est signée correctement, en commençant par le certificat de signataire sécurisé et en continuant jusqu'au certificat de site du serveur. Le format et les dates de validité de chaque certificat impliqué dans ce processus sont également examinés. Si l'une de ces vérifications échoue, la connexion au serveur est refusée. Après avoir vérifié le certificat du serveur, le client utilise la clé publique imbriquée dans ce certificat au cours des étapes suivantes du protocole SSL/TLS. La connexion SSL/TLS peut uniquement être établie si le serveur possède effectivement la clé privée correspondante.

L'authentification de client suit la même procédure : si un serveur SSL/TLS requiert l'authentification client, le client envoie au serveur une chaîne de certificats afin de prouver son identité. Le serveur vérifie la chaîne en fonction du référentiel du site sécurisé et des certificats de signataire. Après avoir vérifié le certificat du client, le serveur utilise la clé publique imbriquée dans ce certificat au cours des étapes suivantes du protocole SSL/TLS. La connexion SSL/TLS peut uniquement être établie si le client possède effectivement la clé privée correspondante.

Les protocoles SSL et TLS fournissent des communications de sécurité très sécurisées. TLS est considéré comme plus sûr que SSL. Cependant, le protocole agit en fonction des informations fournies par l'application. Seule une gestion sécurisée de ces informations garantit la sécurisation globale des communications. Par exemple, si votre référentiel d'un site sécurisé et des certificats de signataire est compromis, vous risquez d'établir une connexion sécurisée à un partenaire de communication qui n'est absolument pas sûr.