Maison  >  Article  >  Opération et maintenance  >  Comment HTTPS assure-t-il la sécurité ? (explication détaillée)

Comment HTTPS assure-t-il la sécurité ? (explication détaillée)

青灯夜游
青灯夜游original
2020-06-17 10:59:282833parcourir

Cet article vous présentera les problèmes du HTTP et vous présentera comment HTTPS assure la sécurité. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Comment HTTPS assure-t-il la sécurité ? (explication détaillée)

Problèmes avec HTTP

1 Risque d'écoute : utilisation de la communication Plaine. texte (non crypté), le contenu peut être écouté (un tiers peut prendre connaissance du contenu de la communication)

2 Risque d'usurpation d'identité : L'identité du communicant n'est donc pas vérifiée. il existe une possibilité de rencontrer un déguisement

3 Risque de falsification : L'intégrité du message ne peut pas être prouvée, il peut donc avoir été falsifié

HTTPS

Comment HTTPS assure-t-il la sécurité ? (explication détaillée)

Vous pouvez voir les sites Web HTTPS et une marque de verrouillage apparaîtra dans la barre d'adresse du navigateur.

HTTPS n'est pas un nouveau protocole au niveau de la couche application. Habituellement, HTTP communique directement avec TCP, tandis que HTTPS communique d'abord avec la couche de sécurité (SSL/TLS), puis la couche de sécurité communique avec la couche TCP.

Comment HTTPS assure-t-il la sécurité ? (explication détaillée)

Le protocole SSL/TLS est né pour résoudre les problèmes de HTTP mentionnés ci-dessus :

1. Toutes les informations sont cryptées et transmises et ne peuvent pas être écoutées par des tiers

2. Équipé d'une vérification d'identité pour empêcher l'usurpation d'identité

Dispose d'un mécanisme de vérification, une fois falsifié. avec, les deux parties communicantes découvriront immédiatement

Cryptage

Cryptage symétrique

Cryptage La méthode L'utilisation de la même clé secrète pour le déchiffrement est appelée chiffrement à clé partagée, également appelé chiffrement à clé symétrique.

Comment HTTPS assure-t-il la sécurité ? (explication détaillée)

    Le navigateur l'envoie au serveur
  • et à une série de méthodes de cryptage

    client_random

  • Le serveur l'envoie au navigateur
  • et méthode de cryptage

    server_random

  • Le navigateur et le serveur existants ont trois identifiants identiques :
,

et méthode de cryptage client_random utilise une méthode de cryptage pour mélanger deux nombres aléatoires server_random et
pour générer une clé secrète. Cette clé est le mot de passe pour la communication entre le navigateur et le serveur. Problèmes avec client_randomserver_random : le tiers peut obtenir

,

et la méthode de cryptage au milieu étant donné que cette méthode de cryptage peut être déchiffrée en même temps, l'intermédiaire peut réussir à déchiffrer le mot de passe et l'obtenir. les données, ce qui est très simple. Cette méthode de cryptage est facilement cassée. client_randomserver_random

Chiffrement asymétrique

Comment HTTPS assure-t-il la sécurité ? (explication détaillée)

    Le navigateur envoie une série de méthodes de chiffrement au serveur
  • Le serveur envoie la méthode de cryptage et la clé publique au navigateur
  • Ensuite, le navigateur crypte les données et les transmet au serveur via la clé publique, et le serveur reçoit les données décryptées à l'aide d'une clé privée. Lorsque le serveur envoie des données au navigateur, il utilise la clé privée pour les chiffrer. Le navigateur reçoit les données envoyées par le serveur et utilise la clé publique pour les déchiffrer.

Problèmes existants :

  • Le cryptage asymétrique est trop inefficace

    , ce qui affectera sérieusement la vitesse de cryptage et de décryptage, puis affectera la capacité de l'utilisateur pour ouvrir la vitesse de la page.

  • Il n'y a aucune garantie quant à la sécurité des données envoyées par le serveur au navigateur

    Les données du serveur ne peuvent être cryptées qu'avec une clé privée (car si. il utilise une clé publique, le navigateur ne peut pas (elle ne peut pas être déchiffrée). Une fois que l'intermédiaire a obtenu la clé publique, il peut décrypter les données envoyées depuis le serveur, et elles sont à nouveau crackées.

HTTPS utilise une combinaison de cryptage symétrique et de cryptage asymétrique

Le cryptage symétrique est toujours utilisé pendant la phase de transmission des données, mais nous utilisons des clés de chiffrement symétriques Transmission cryptée symétriquement.

Comment HTTPS assure-t-il la sécurité ? (explication détaillée)

    Le navigateur envoie client_random et une liste de méthodes de cryptage au serveur.
  • Le serveur le reçoit et renvoie server_random, la méthode de cryptage et la clé publique.
  • Le navigateur le reçoit, puis génère un autre nombre aléatoire pre_master, le crypte avec la clé publique, et le transmet au serveur. (Opération clé !)
  • Le serveur utilise la clé privée pour décrypter le pre_master crypté.

À ce stade, le serveur et le navigateur ont les mêmes client_random, server_random et pre_master, puis le serveur et le navigateur utiliseront ces trois ensembles de nombres aléatoires pour générer des clés symétriques . Avec la clé secrète symétrique, les deux parties peuvent utiliser un cryptage symétrique pour transmettre des données.

CA (Certificat numérique)

Utilise une méthode hybride symétrique et asymétrique pour réaliser une transmission cryptée des données. Mais il y a toujours un problème, le serveur peut être usurpé par des pirates. De cette manière, le navigateur accède au serveur du pirate informatique et celui-ci peut implémenter la clé publique et la clé privée sur son propre serveur. Cependant, le navigateur ne sait pas exactement que le site du pirate informatique est visité.

Le serveur doit prouver son identité et doit utiliser un certificat émis par une organisation faisant autorité est la CA (Certificate Authority), et le certificat émis est appelé certificat numérique.

Pour le navigateur, le certificat numérique a deux fonctions :

  • Prouver l'identité du serveur au navigateur via le certificat numérique

  • Le certificat numérique contient la clé publique du serveur

Jetons un coup d'œil au processus de requête HTTPS contenant le certificat numérique

Comment HTTPS assure-t-il la sécurité ? (explication détaillée)

Par rapport au processus de requête HTTPS sans certificats numériques, il y a deux changements principaux :

  • Le serveur ne renvoie pas directement la clé publique au navigateur, mais renvoie un numéro de certificat et la clé publique est incluse dans le certificat numérique

  • Il y a une opération de vérification de certificat supplémentaire du côté du navigateur. Une fois le certificat vérifié, le processus suivant continue. .

Référence

Tutoriel recommandé : Sécurité du serveur Web

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn