Explication détaillée du processus de cryptage HTTPS

HTTPS utilise une méthode de "chiffrement hybride" qui combine le chiffrement symétrique et le chiffrement asymétrique :

  • Le chiffrement asymétrique est utilisé pour échanger des "clés de session" avant l'établissement de la communication , et le chiffrement asymétrique n'est plus utilisé à l'avenir.

  • Pendant le processus de communication, les données en clair sont chiffrées à l'aide de la "clé de session" chiffrée symétrique .

Raisons d'adopter la méthode de "chiffrement hybride":

  • Le chiffrement symétrique utilise une seule clé et la vitesse de fonctionnement est rapide. La clé doit être gardée secrète et un échange de clé sécurisé ne peut pas être réalisé.

  • Le chiffrement asymétrique utilise deux clés : une clé publique et une clé privée.La clé publique peut être distribuée arbitrairement tandis que la clé privée est gardée secrète, ce qui résout le problème d'échange de clé mais est lent.

Comment HTTPS établit-il une connexion ?

Processus de base du protocole SSL/TLS :

  • Le client demande et vérifie la clé publique du serveur auprès du serveur.

  • Les deux parties négocient pour produire une "clé de session".

  • Les deux parties utilisent la "clé de session" pour la communication cryptée.

Les deux premières étapes sont le processus d'établissement de SSL/TLS, c'est-à-dire la phase de prise de contact.

La « phase de prise de contact » de SSL/TLS implique quatre communications, comme illustré dans la figure suivante :

Le processus détaillé d'établissement du protocole SSL/TLS :

1. ClientBonjour

Tout d'abord, le client initie une demande de communication cryptée au serveur, c'est-à-dire  ClientHello une demande.

Dans cette étape, le client envoie principalement les informations suivantes au serveur :

(1) Version du protocole SSL/TLS supportée par le client, telle que la version TLS 1.2.

(2) Le nombre aléatoire ( ) généré par le client Client Randomest utilisé ultérieurement pour générer la "clé de session".

(3) La liste des suites de chiffrement prises en charge par le client, telles que l'algorithme de chiffrement RSA.

2. SeverHello

Une fois que le serveur a reçu la demande du client, il envoie une réponse au client, c'est-à-dire  SeverHello. Le contenu de la réponse du serveur est le suivant :

(1) Confirmez la version du protocole SSL/TLS, si le navigateur ne le prend pas en charge, fermez la communication cryptée.

(2) Le nombre aléatoire ( ) produit par le serveur Server Randomest utilisé ultérieurement pour générer la "clé de session".

(3) Liste des suites de chiffrement confirmées, telles que l'algorithme de chiffrement RSA.

(4) Le certificat numérique du serveur.

3. Réponse des clients

Après avoir reçu la réponse du serveur, le client confirme d'abord l'authenticité du certificat numérique du serveur via le navigateur ou la clé publique CA dans le système d'exploitation.

S'il n'y a pas de problème avec le certificat, le client prendra la clé publique du serveur du certificat numérique, puis l'utilisera pour chiffrer le message, et enverra les informations suivantes au serveur :

(1) Un nombre aléatoire ( pre-master key). Le nombre aléatoire sera crypté avec la clé publique du serveur.

(2) Notification de changement d'algorithme de communication cryptée, indiquant que les informations ultérieures seront cryptées avec la "clé de session".

(3) La notification de fin de prise de contact client indique que la phase de prise de contact du client est terminée. Cet élément fait également un résumé des données de tout le contenu précédent, qui est utilisé pour la vérification par le serveur.

Le nombre aléatoire dans le premier élément ci-dessus est le troisième nombre aléatoire de toute la phase de prise de contact, de sorte que le serveur et le client disposent de trois nombres aléatoires en même temps, puis utilisent l'algorithme de chiffrement négocié par les deux parties pour générer la "session clé" pour cette communication .

4. La dernière réponse du serveur

Après avoir reçu le troisième nombre aléatoire ( ) du client pre-master key, le serveur calcule la "clé de session" pour cette communication via l'algorithme de chiffrement négocié. Ensuite, envoyez le message final au client :

(1) Notification de changement d'algorithme de communication cryptée, indiquant que les informations suivantes seront cryptées avec la "clé de session".

(2) La notification de fin de prise de contact du serveur indique que la phase de prise de contact du serveur est terminée. Cet élément fait également un résumé des données de tout le contenu précédent, qui est utilisé pour la vérification du client.

À ce stade, la phase de prise de contact de l'ensemble du SSL/TLS est terminée. Ensuite, le client et le serveur entrent dans une communication cryptée, qui utilise complètement le protocole HTTP ordinaire, mais utilise la "clé de session" pour crypter le contenu.

Cet article est extrait d'Internet, pour plus de détails, veuillez vous référer à : HTTP Common Interview Questions

 

Je suppose que tu aimes

Origine blog.csdn.net/m0_59952648/article/details/131597514
conseillé
Classement