Maintenant, lorsque vous ouvrez des sites Web majeurs et connus, avez-vous remarqué qu'un petit cadenas vert a été ajouté à la barre d'adresse ?
Oui, c'est le https, c'est l'ère du https.
Mais comprenez-vous 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. Authenticité des identités des deux parties communicantes
3. content
https est né pour résoudre ces trois problèmes majeurs (ssl pour être précis). Jetons respectivement un coup d'œil aux solutions à ces trois problèmes.
Confidentialité du contenu de la communication
La confidentialité du contenu de la communication doit être obtenue 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. En termes simples, le cryptage et le déchiffrement sont 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échiffrement 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 dépenser du temps et de l'argent pour prendre rendez-vous pour la valeur b, mais dans un environnement de réseau réel, il n'y a aucune possibilité de communication directe entre vous et Xiaohong. Toute communication Si vous devez compter sur Xiao Ming et Xiao Li pour transmettre la note, comment pouvez-vous 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 une clé que le serveur conserve en privé. 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 les principes des algorithmes de chiffrement asymétrique, mais je n'entrerai pas ici dans les détails des algorithmes. Les étudiants intéressés peuvent les rechercher 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é à une solution : utilisez un 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 effectuer un cryptage symétrique. vous pouvez avoir un rendez-vous agréable.
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 en passant des 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'avoir sur 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 personne 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 d'extraction du résumé du certificat à l'aide d'un algorithme de hachage, puis de cryptage du 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 ? ? ?
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'aux quelques institutions les plus autorisées, ces institutions sont ce qu'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 simple à réaliser, 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. ...
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é. Ce mécanisme est-il 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 parfaitement 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 :
Conclusion
Annexe
Comment éviter le détournement de type man-in-the-middle en https ?
Si quelqu'un détourne votre serveur DNS et résout http://wwe.icbc.com vers 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 de la demande de certificat, l'AC effectuera une certification de contrôle sur le nom de domaine que vous postulez, il vous est donc impossible d'utiliser le site Web de Lao Wang voisin pour demander un certificat. Même si vous piratez son site, Lao Wang peut 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 constatera qu'elle n'est pas correcte en comparant la signature numérique. du certificat. Sans dire un mot, appelez la police.
4. Si l'intermédiaire utilise directement le véritable certificat d'ICBC Home, alors bien qu'il puisse recevoir le message du client, il ne peut pas le déchiffrer, il ne peut donc pas répondre à la demande du client, et l'attaque est invalide !
Signature numérique du certificat
Avant l'algorithme de hachage et le numéro Je ne connais pas grand-chose aux signatures, mais après les avoir comprises, j'ai découvert 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 le déchiffrer avec la clé publique pour 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.