Dans le cadre de la documentation associée à ce produit, nous nous efforçons d’utiliser un langage exempt de préjugés. Dans cet ensemble de documents, le langage exempt de discrimination renvoie à une langue qui exclut la discrimination en fonction de l’âge, des handicaps, du genre, de l’appartenance raciale de l’identité ethnique, de l’orientation sexuelle, de la situation socio-économique et de l’intersectionnalité. Des exceptions peuvent s’appliquer dans les documents si le langage est codé en dur dans les interfaces utilisateurs du produit logiciel, si le langage utilisé est basé sur la documentation RFP ou si le langage utilisé provient d’un produit tiers référencé. Découvrez comment Cisco utilise le langage inclusif.
Cisco a traduit ce document en traduction automatisée vérifiée par une personne dans le cadre d’un service mondial permettant à nos utilisateurs d’obtenir le contenu d’assistance dans leur propre langue. Il convient cependant de noter que même la meilleure traduction automatisée ne sera pas aussi précise que celle fournie par un traducteur professionnel.
Ce document décrit les concepts de base du protocole SSL (Secure Sockets Layer) et fournit un exemple de transaction et de capture de paquets.
L'unité de données de base dans SSL est un enregistrement. Chaque enregistrement se compose d'un en-tête d'enregistrement de cinq octets, suivi de données.
Type | Version | Longueur | ||
T | VH | VL | LH | LL |
Il existe quatre types d'enregistrement dans SSL :
La version de l'enregistrement est une valeur de 16 bits et est formatée dans l'ordre du réseau.
Note: Pour SSL version 3 (SSLv3), la version est 0x0300. Pour TLSv1 (Transport Layer Security Version 1), la version est 0x0301. Le dispositif de sécurité adaptatif (ASA) de Cisco ne prend pas en charge SSL version 2 (SSLv2), qui utilise la version 0x0002, ni aucune version de TLS supérieure à TLSv1.
La longueur d'enregistrement est une valeur de 16 octets et est formatée dans l'ordre du réseau.
En théorie, cela signifie qu'un seul enregistrement peut avoir une longueur maximale de 65 535 (2^16 -1) octets. Le RFC2246 TLSv1 indique que la longueur maximale est de 16 383 (2^14 -1) octets. Les produits Microsoft (Microsoft Internet Explorer et Internet Information Services) sont connus pour dépasser ces limites.
Cette section décrit les quatre types d'enregistrements SSL.
Les enregistrements de connexion contiennent un ensemble de messages utilisés pour la connexion. Voici les messages et leurs valeurs :
Dans le cas simple, les enregistrements de connexion ne sont pas chiffrés. Cependant, un enregistrement d'échange qui contient un message terminé est toujours chiffré, car il se produit toujours après un enregistrement CCS (Change Cipher Spec).
Les enregistrements CCS sont utilisés pour indiquer un changement dans les chiffrement cryptographiques. Immédiatement après l'enregistrement CCS, toutes les données sont cryptées avec le nouveau chiffrement. Les enregistrements CCS peuvent être chiffrés ou non ; dans une connexion simple avec une seule connexion, l'enregistrement CCS n'est pas chiffré.
Les enregistrements d'alerte sont utilisés afin d'indiquer à l'homologue qu'une condition s'est produite. Certaines alertes sont des avertissements, tandis que d'autres sont fatales et provoquent l'échec de la connexion. Les alertes peuvent être chiffrées ou non et peuvent se produire lors d'une connexion ou d'un transfert de données. Il existe deux types d'alertes :
Ces enregistrements contiennent les données réelles de l'application. Ces messages sont transmis par la couche enregistrement et sont fragmentés, compressés et chiffrés, en fonction de l'état de connexion actuel.
Cette section décrit un exemple de transaction entre le client et le serveur.
Lorsqu'un client et un serveur SSL commencent à communiquer, ils s'accordent sur une version de protocole, sélectionnent des algorithmes de chiffrement, s'authentifient mutuellement, et utilisent des techniques de chiffrement à clé publique afin de générer des secrets partagés. Ces processus sont exécutés dans le protocole de connexion. En résumé, le client envoie un message Hello du client au serveur, qui doit répondre avec un message Hello du serveur ou une erreur fatale se produit et la connexion échoue. Le client Hello et le serveur Hello sont utilisés pour établir des capacités d'amélioration de la sécurité entre le client et le serveur.
Allô du client
Le client Hello envoie ces attributs au serveur :
Note: L'adresse IP du serveur dans les captures est 10.0.0.2 et l'adresse IP du client est 10.0.0.1.
Allô du serveur
Le serveur renvoie ces attributs au client :
Pour les demandes de reprise de session SSL :
Hello du serveur terminé
Le message Hello Done du serveur est envoyé par le serveur afin d'indiquer la fin du Hello du serveur et des messages associés. Après avoir envoyé ce message, le serveur attend une réponse du client. À la réception du message Hello Done du serveur, le client vérifie que le serveur a fourni un certificat valide, si nécessaire, et vérifie que les paramètres Hello du serveur sont acceptables.
Certificat serveur, échange de clés serveur et demande de certificat (facultatif)
Certificat client (facultatif)
Il s'agit du premier message que le client envoie après avoir reçu un message Hello Done du serveur. Ce message n'est envoyé que si le serveur demande un certificat. Si aucun certificat approprié n'est disponible, le client envoie une alerte no_certificate à la place. Cette alerte n'est qu'un avertissement ; cependant, le serveur peut répondre par une alerte fatale de défaillance de la connexion si l'authentification du client est requise. Les certificats DH du client doivent correspondre aux paramètres DH spécifiés par le serveur.
Échange de clés client
Le contenu de ce message dépend de l'algorithme de clé publique sélectionné entre les messages Hello du client et Hello du serveur. Le client utilise soit une clé de maître chiffrée par l'algorithme RSA (Rivest-Shamir-Addleman), soit DH pour l'accord de clé et l'authentification. Lorsque RSA est utilisé pour l'authentification du serveur et l'échange de clés, un pre_master_secret de 48 octets est généré par le client, chiffré sous la clé publique du serveur et envoyé au serveur. Le serveur utilise la clé privée afin de déchiffrer le pre_master_secret. Les deux parties convertissent ensuite le pre_master_secret en master_secret.
Vérification du certificat (facultatif)
Si le client envoie un certificat avec la capacité de signature, un message de vérification de certificat signé numériquement est envoyé afin de vérifier explicitement le certificat.
Modifier les messages de spécification de chiffrement
Le message Change Cipher Spec est envoyé par le client et celui-ci copie la spécification Cipher en attente (la nouvelle) dans la spécification Cipher actuelle (celle précédemment utilisée). Le protocole Change Cipher Spec existe afin de signaler les transitions dans les stratégies de chiffrement. Le protocole se compose d'un seul message, qui est chiffré et compressé sous la spécification de chiffrement actuelle (et non pas en attente). Le message est envoyé à la fois par le client et le serveur afin d'avertir la partie réceptrice que les enregistrements ultérieurs sont protégés par les dernières spécifications et clés de chiffrement négociées. La réception de ce message entraîne le destinataire à copier l'état en attente de lecture dans l'état en cours de lecture. Le client envoie un message Change Cipher Spec après l'échange de clé de connexion et les messages Certificate Verify (le cas échéant), et le serveur en envoie un une après avoir traité avec succès le message d'échange de clé qu'il a reçu du client. Lorsqu'une session précédente reprend, le message Modifier la spécification du chiffrement est envoyé après les messages Hello. Dans les captures, les messages Client Exchange, Change Cipher et Terminé sont envoyés en tant que message unique du client.
Messages terminés
Un message Terminé est toujours envoyé immédiatement après un message Change Cipher Spec afin de vérifier que les processus d'échange de clés et d'authentification ont réussi. Le message Terminé est le premier paquet protégé avec les algorithmes, clés et secrets les plus récents. Aucun accusé de réception du message Terminé n'est requis ; les parties peuvent commencer à envoyer des données chiffrées immédiatement après avoir envoyé le message Terminé. Les destinataires des messages finis doivent vérifier que le contenu est correct.