Internet est un canal de communication non fiable. Lorsque vous envoyez ou recevez des informations d'un ancien site http http: //www.exemple.com Dans votre navigateur, beaucoup de choses peuvent se produire au milieu de vos paquets.
Les deux premiers problèmes peuvent être résolus en chiffrant le message avant qu'il ne soit envoyé sur Internet au serveur. C'est-à-dire en passant à HTTPS. Cependant, le dernier problème, le problème de l'identité est l'endroit où une autorité de certificat entre en jeu.
Initiat Sessions HTTP cryptées
Le principal problème avec la communication cryptée sur un canal insécurité est «Comment le démarrer?"
La toute première étape impliquerait les deux parties, votre navigateur et le serveur, pour échanger les clés de chiffrement à échanger sur le canal insécurité. Si vous n'êtes pas familier avec le terme clés, considérez-les comme un mot de passe généré de très longtemps avec lequel vos données seront cryptées avant d'être envoyées sur la chaîne peu sûre.
Eh bien, si les clés sont envoyées sur une chaîne non sécurisée, n'importe qui peut écouter là-dessus et compromettre la sécurité de votre session HTTPS à l'avenir. De plus, comment pouvons-nous faire confiance que la clé envoyée par un serveur prétendant être www.exemple.com est en effet le propriétaire réel de ce nom de domaine? Nous pouvons avoir une communication cryptée avec une fête malveillante se faisant passer pour un site légitime et ne pas connaître la différence.
Ainsi, le problème d'assurer l'identité est important si nous souhaitons assurer une échange de clés sécurisé.
Autorités de certificat
Vous avez peut-être entendu parler de LetSencrypt, Digicert, Comodo et quelques autres services qui offrent des certificats TLS pour votre nom de domaine. Vous pouvez choisir celui qui correspond à votre besoin. Maintenant, la personne / l'organisation qui possède le domaine doit prouver en quelque sorte à son autorité de certificat qu'elle a en effet le contrôle du domaine. Cela peut être fait en créant un enregistrement DNS avec une valeur unique, comme demandé par l'autorité de certificat, ou vous pouvez ajouter un fichier à votre serveur Web, avec le contenu spécifié par l'autorité de certificat, le CA peut alors lire ce fichier et confirmez que vous êtes le propriétaire valide du domaine.
Ensuite, vous négociez un certificat TLS avec l'AC, et cela se traduit par une clé privée et un certificat TLS public délivré à votre domaine. Les messages chiffrés par votre clé privée peuvent ensuite être déchiffrés par le certificat public et vice versa. Ceci est connu sous le nom de cryptage asymétrique
Les navigateurs du client, comme Firefox et Chrome (parfois même le système d'exploitation), ont la connaissance des autorités de certificat. Ces informations sont cuites dans le navigateur / appareil dès le début (c'est-à-dire lorsqu'ils sont installés) afin qu'ils sachent qu'ils peuvent faire confiance à certains CAS. Maintenant, quand ils essaient de se connecter à www.exemple.com sur https et voir un certificat délivré par, disons digicert, le navigateur peut en fait vérifier que l'utilisation des clés stockées localement. En fait, il y a quelques étapes intermédiaires supplémentaires, mais c'est un bon aperçu simplifié de ce qui se passe.
Maintenant que le certificat fourni par www.exemple.com peut être fiable, ceci est utilisé pour négocier une clé de chiffrement symétrique unique qui est utilisée entre le client et le serveur pour le reste de sa session. Dans le chiffrement symétrique, une clé est utilisée pour crypter ainsi que le déchiffrement et est généralement beaucoup plus rapide que son homologue asymétrique.
Nuances
Si l'idée de TLS et de la sécurité Internet vous appelle, vous pouvez approfondir ce sujet en creusant dans le letsencrypt et leur TLS gratuit. Il y a beaucoup plus de minutié dans tout ce Rigmarole que ce qui a été indiqué ci-dessus.
Les autres ressources que je peux recommander pour en savoir plus sur TLS sont le blog de Troy Hunt et le travail effectué par EFF Like Https Everywhere. Toutes les ressources sont gratuites et vraiment bon marché à mettre en œuvre (il vous suffit de payer pour l'enregistrement du nom de domaine et les frais horaires VPS) et acquérir une expérience pratique.