Maison >interface Web >tutoriel HTML >A l'ère du https, vous ne savez toujours rien de lui ?

A l'ère du https, vous ne savez toujours rien de lui ?

PHPz
PHPzoriginal
2017-03-12 17:24:531186parcourir

L'auteur de cet article : Qieguo, se concentre sur le domaine du développement front-end. Pour plus d'articles, veuillez faire attention à la rubrique Zhihu « Front-end Little Things »

Ouvrez maintenant les grands sites connus, avez-vous trouvé l'adresse ? Un petit cadenas vert a été ajouté dans la colonne ?

A lère du https, vous ne savez toujours rien de lui ?

Oui, c'est le https, c'est l'ère du https.

Mais connaissez-vous le https ?

Pour faire simple, https est http enveloppé dans SSL/TLS, qui est http sécurisé. Qu'est-ce que la sécurité ? Un environnement de communication réseau sécurisé doit résoudre trois problèmes :

  1. Confidentialité du contenu de la communication

  2. Vérité des identités des deux parties communicantes

  3. Contenu complet de la communication

Et https est né pour résoudre ces trois problèmes majeurs (pour être précis, ça devrait être ssl). ces 3 solutions séparément au problème.

Confidentialité du contenu de la communication

La confidentialité du contenu de la communication doit être assurée grâce au cryptage. Notre environnement Internet est très transparent et les communications doivent passer par de nombreux transits avant d'atteindre le destinataire. Cette situation est un peu comme remettre une note à Xiaohong au premier rang pendant le cours, sur la note, vous n'écririez certainement pas directement « à la cour de récréation à minuit ce soir », mais écririez intelligemment « à la même place ». " Seuls vous et Xiaohong connaissez cet ancien endroit, donc même si Xiaoming et Xiaoli voient la note, ils ne savent pas si l'ancien endroit est la bibliothèque ou le coin anglais. C'est du cryptage, et l'ancien endroit est ce qu'on appelle. clé.

Bien sûr, cet exemple n'est pas très précis. Pour faire simple, le chiffrement et le déchiffrement est une

fonction , et la clé est le paramètre de cette fonction. Par exemple, nous définissons une fonction de chiffrement simple, f(x)=x b, x est le texte brut d'entrée et b est la clé, la fonction de décryptage est la fonction inverse de la fonction de chiffrement, c'est-à-dire g(x)= x-b. Lorsque vous ne connaissez pas b, vous ne pouvez pas deviner le contenu réel même si vous voyez le texte chiffré, le cryptage est donc réalisé. Ce type de cryptage et de décryptage utilise la même clé, appelée cryptage symétrique.

Mais il y a un problème ici. Comment le paramètre b est-il négocié ici ?

Vous et Xiaohong pouvez prendre rendez-vous avec Xiaohong avant et après, mais dans un environnement de réseau réel, il n'y a aucune possibilité pour vous et Xiaohong de communiquer directement. Toute communication doit reposer sur Xiaoming et Xiaoli. passez le papier. Si oui, que pouvez-vous faire pour les éviter ? Ici, vous devez utiliser un algorithme de chiffrement asymétrique. Cet algorithme possède une paire de clés publiques et de clés privées. La clé publique est une clé que tout le monde peut obtenir, et la clé privée est conservée en privé par le serveur du

service . . clé. Dans l'algorithme de chiffrement asymétrique, le contenu chiffré par la clé publique ne peut être déchiffré que par la clé privée, et le contenu chiffré par la clé privée ne peut être déchiffré que par la clé publique. Ainsi, lorsque vous utilisez la clé publique de Xiaohong pour chiffrer votre note, Xiaoming, Xiaoli et les autres personnes qui vous aident à transmettre la note ne pourront pas lire le contenu lorsqu'ils verront la note. Seul Xiaohong qui possède la clé privée peut lire vos informations.

Les algorithmes de chiffrement symétriques utilisent la même clé secrète pour le chiffrement et le déchiffrement ; les algorithmes de chiffrement asymétriques nécessitent deux clés pour le chiffrement et le déchiffrement, et ces deux clés sont des clés publiques (

clé publique, appelée clé publique) et clé privée (clé privée, appelée clé privée). Vous êtes peut-être curieux de connaître le principe de l'algorithme de chiffrement asymétrique, mais je n'entrerai pas dans les détails de l'algorithme ici. Les étudiants intéressés peuvent rechercher par eux-mêmes.

Alors la question est : que dois-je faire si Xiaohong veut également crypter la réponse qui vous est adressée ?

Si Xiaohong chiffre avec sa clé privée, tout le monde dans la classe connaît la clé publique, et la clé publique peut déchiffrer la clé privée, ce qui signifie également que tout le monde peut déchiffrer la réponse aux messages de Xiaohong. Si vous êtes intelligent, vous devez avoir pensé à la solution :

Utilisez l'algorithme de cryptage asymétrique pour crypter une clé symétrique vers Xiaohong, Xiaohong utilise sa clé privée pour lire la clé symétrique, puis vous utilisez cette clé symétrique pour faire Symétrique cryptage , et vous pourrez alors sortir avec plaisir.

Bien sûr, https fait la même chose.

La véritable identité des parties communicantes

Après le cryptage, le processus de communication semble parfait ? Attendez une minute, comment la clé publique de Xiaohong est-elle connue du monde ?

Vous devez savoir que toutes les interactions d'informations dans l'environnement réseau s'effectuent par le passage de notes, et la clé publique de Xiaohong ne fait pas exception. Et si elle était commutée lorsqu'elle passait entre les mains de Xiaoming ? Comment s'assurer que la clé publique Xiaohong que vous avez en main est la véritable clé publique Xiaohong ? Voyant que les notes sur les hommes et les femmes fous de la classe étaient échangées de diverses manières, sœur Feng, membre du comité d'animation, a décidé de se manifester. Sœur Feng a trouvé un moyen d'emporter avec elle un certificat dans toutes les communications cryptées pour prouver son identité. Ce certificat a été spécialement réalisé par sœur Feng pour tous les célibataires de la classe. La clé publique est placée dans le certificat et renvoyée à l'expéditeur de la note. En plus de la clé publique, le certificat contient également diverses informations telles que le numéro d'étudiant. , nom et même signe du zodiaque, taille et mesures. Il y a un grand sceau d'identification apposé sur le certificat. Il s'agit du sceau unique de sœur Feng, ce qui signifie que l'authenticité des informations sur le certificat est garantie par sœur Feng. Lorsque vous voyez ce sceau, vous pouvez penser que l'autre partie est une. vrai célibataire.

Grâce à ces informations, vous pouvez savoir si l'autre partie est Xiaohong ou Ruhua. Il s'agit du mécanisme de certificat.

De toute évidence, vous soupçonnerez que le sceau officiel de Sœur Feng sur le certificat a peut-être été contrefait, et vos soupçons sont justifiés ! Par conséquent, le sceau officiel sur le certificat est également crypté de manière asymétrique. La méthode de cryptage est exactement le contraire de ce qui est mentionné ci-dessus : crypté avec la clé privée de sœur Feng et déchiffré avec la clé publique de sœur Feng, afin que l'authenticité du certificat puisse être vérifiée. vérifié. Ce sceau officiel est la signature numérique du certificat. Plus précisément, il s'agit du processus consistant à extraire d'abord le digest du certificat à l'aide d'un algorithme de hachage, puis à chiffrer le résumé. De plus, vous pouvez également vous adresser directement à Sœur Feng avec le certificat, et Sœur Feng vous aidera à vérifier la validité du certificat. (Les certificats ont une date d'expiration, donc même les vrais certificats peuvent expirer, vous devez donc faire attention)

Ce mécanisme semble assez complet, mais il faut se méfier de tout pour construire un mécanisme de sécurité, quelque chose que sœur Feng garantit que c'est digne de confiance.

Mais, sœur Feng est-elle vraiment sœur Feng ? ? ?

A lère du https, vous ne savez toujours rien de lui ?

Par conséquent, Sœur Feng elle-même doit être garantie par un certificat. Le certificat de Sœur Feng est délivré par le directeur, et le certificat du directeur est délivré par le directeur. ... Cette chaîne va jusqu'au bout Plusieurs institutions faisant autorité sont ce que l'on appelle les autorités de certification racine dans le système https. Les racines sont des autorités incontestables, elles apportent du sel et prouvent qu'elles sont qui elles sont. Dans le système de certificats https, le certificat racine est fourni avec le système d'exploitation/navigateur. Nous pouvons faire confiance aux certificats certifiés par ces organisations, puis les dériver couche par couche jusqu'au niveau de Fengjie.

De plus, comme le certificat est en fait très facile à obtenir, il coûte 10 yuans par copie à l'entrée du métro, et il coûte 10 yuans pour Harvard et Stanford ! Par conséquent, certaines entreprises créeront leurs propres certificats sans passer du tout par l’organisation de l’autorité de certification racine, comme le fameux 12306. Vous pouvez également créer votre propre certificat et le mettre en ligne pour que les utilisateurs puissent le télécharger et l'importer dans leur navigateur, mais comme vous n'avez pas l'influence de Sœur Feng, personne ne vous croira. Bien sûr, certaines personnes ne croient même pas Sœur Feng. ...

A l'ère du https, vous ne savez toujours rien de lui ?

Le contenu de la communication est complet

Le mot de passe est également ajouté et le sceau officiel de sœur Feng est également estampillé. Est-ce un mécanisme. parfait?

NonNonNon, réfléchissez-y, Xiao Ming, qui a le béguin pour vous, se sentira certainement malheureux quand il vous verra envoyer une note à Xiao Hong. Bien qu'il ne puisse pas le comprendre, il le peut. changez toujours le texte secret. À l'origine, vous alliez demander à Xiaohong de se rencontrer sur le terrain de jeu à minuit, mais Xiaoming a supprimé la première moitié du texte chiffré, et après le déchiffrement, il s'est avéré être "Rendez-vous sur le terrain de jeu". Ensuite, Xiaohong a couru vers le terrain de jeu immédiatement après le cours. , mais tu as couru vers le dortoir pour prendre une bonne douche. . . Ensuite, Xiaohong s'est enfui avec Xiaoming~~

Je pense que tout le monde comprend profondément ce scénario de falsification du contenu de la communication. Lorsque nous visitons certains sites, des publicités des opérateurs apparaissent sans raison. ajouté par l'opérateur! ! Par conséquent, l'intégrité du contenu doit également être garantie. C'est relativement simple : utilisez d'abord un algorithme de hachage pour extraire le résumé du contenu, puis cryptez le résumé pour générer une signature numérique. En vérifiant la signature numérique, vous pouvez déterminer le. l'intégrité du contenu de la communication.

Ce qui précède est une version simplifiée de la technologie utilisée en https. Un processus de communication http est le suivant :

A lère du https, vous ne savez toujours rien de lui ?

Étapes générales. :

  1. Le client envoie un message Client Hello pour démarrer la communication SSL. Le message contient la version SSL, la liste des algorithmes disponibles, la longueur de la clé, etc.

  2. Lorsque le serveur prend en charge la communication SSL, il répondra avec un message Server Hello. Le message inclut également la version SSL et la configuration de l'algorithme de cryptage, qui est l'algorithme de cryptage et de déchiffrement négocié.

  3. Ensuite, le serveur enverra le message Certificate, ce qui signifie envoyer le certificat au client.

  4. Le client envoie un message d'échange de clé client, utilise la clé publique du certificat en 3 pour crypter la chaîne de mot de passe aléatoire du secret pré-maître, et utilise ensuite ce mot de passe pour le cryptage symétrique pour la communication.

  5. Après un déchiffrement réussi à l'aide de la clé privée, le serveur renvoie une réponse indiquant que l'environnement de communication SSL a été mis en place.

  6. Ensuite, il y a une communication http c/s régulière.

Comme mentionné ci-dessus, des algorithmes de résumé et de signature seront utilisés aux étapes 3 et 6 pour garantir que le certificat délivré et le contenu de la communication ne sont pas falsifiés. Ce processus montre que le cœur du https réside dans le cryptage, en particulier dans l'algorithme de cryptage asymétrique qui est utilisé à plusieurs reprises pour transmettre des informations clés.

Une fois que vous comprenez le cryptage, reconnaissez la transparence du réseau et soyez sceptique à l'égard de tout, il devient plus facile de comprendre le système https.

Conclusion

Récemment, j'ai systématiquement examiné les éléments liés à http. Cet article présente les principes de base de https. talent et connaissances. S’il y a quelque chose d’inapproprié, corrigez-moi ! Plus tard, nous présenterons la configuration réelle du serveur application, statique, etc. ~

Annexe

Comment éviter l'homme dans le- détournement moyen de https ?

Si quelqu'un détourne votre serveur DNS et résout wwe.icbc.com en son site Web illégal, ou si le serveur proxy vous dirige vers son site Web illégal, il s'agit d'une attaque de l'homme du milieu. S'il n'y a pas de https, l'attaque se produit. Alors, comment https évite-t-il de telles attaques ?

La réponse passe par l'authentification par certificat.

  1. Lors d'une demande de certificat, l'AC effectuera une certification de contrôle sur le nom de domaine à demander, il vous est donc impossible d'utiliser le site Web de Lao Wang à côté pour demander un certificat. Même si vous piratez son site, Lao Wang pourra le découvrir à condition qu'il demande un certificat.

  2. Si vous falsifiez un certificat qui n'est pas émis par une autorité de certification faisant autorité, le navigateur vous alertera lorsqu'il vérifiera que le certificat est illégal. Bien sûr, les utilisateurs peuvent toujours continuer à fonctionner, comme récupérer des billets de train ou autre. .

  3. Si vous téléchargez le certificat du site réel, le nom de domaine sur le certificat reste inchangé, et vous remplacez simplement la clé publique, alors le navigateur pourra trouver l'exactitude lorsque en comparant la signature numérique du certificat. Si vous ne parvenez pas à vous joindre, appelez la police sans dire un mot.

  4. Si l'intermédiaire utilise directement le véritable certificat de www.icbc.com, alors bien qu'il puisse recevoir le message du client, il ne peut pas le décrypter, il ne peut donc pas répondre à la demande du client. L'attaque est invalide !

Signature numérique du certificat

Je ne connaissais pas grand-chose aux algorithmes de hachage et aux signatures numériques auparavant, mais après l'avoir compris, j'ai trouvé que le principe est en fait assez simple. L'algorithme de hachage peut convertir une grande quantité de données en un résumé de longueur fixe, et le résumé correspond à l'entrée. Le résumé changera également lorsque l'entrée change. Par conséquent, un algorithme de hachage est appliqué aux données pour obtenir un résumé. En comparant le résumé, vous pouvez déterminer si les données ont été falsifiées. Le certificat utilise la clé privée pour chiffrer le résumé, puis le client peut utiliser la clé publique pour le déchiffrer afin d'obtenir le résumé. En comparant le résumé calculé par l'algorithme de hachage, il peut déterminer si le certificat a été falsifié. D'autre part, étant donné que les clés publique et privée sont appariées, même si le résumé du certificat falsifié peut être obtenu, la signature ne peut pas être chiffrée. L'authenticité du certificat peut donc être garantie en utilisant une combinaison de résumé et de chiffrement. La clé privée ici est la clé privée de l'autorité émettrice du certificat, c'est-à-dire que l'autorité de certification sur la chaîne d'autorité de certification crypte le certificat du serveur utilisateur et que l'autorité de certification supérieure crypte le certificat de l'autorité de certification subordonnée, formant ainsi un anneau de confiance.

L'auteur de cet article : Qie Guo, se concentrant sur le domaine du développement front-end. Pour plus d'articles, veuillez faire attention à la rubrique Zhihu « Front-end Little Things »

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