153 votes

Comment fonctionne vraiment SSL ?

Comment fonctionne le SSL ?

Où le certificat est installé sur le client (ou navigateur ?) et le serveur (ou web ?) ?

Comment le processus de confiance/cryptage/authentification ne démarre pas lorsque vous entrez l’URL dans le navigateur et obtenez la page du serveur ?

Comment le protocole HTTPS ne reconnaît pas le certificat ? Pourquoi les HTTP ne peut pas travailler avec certificats quand c’est les certificats qui font tout le travail de confiance/cryptage/authentification ?

156voto

mehaase Points 6824

SSL fait deux choses:

  1. Crypte votre session http.
  2. Authentifie le serveur vers le client.

Vous semblez être en se concentrant sur le #2. Un certificat SSL est un tas d'informations sur un site web (de son nom de domaine, la société à laquelle il appartient, sa clé publique, etc.) c'est signé numériquement à l'aide d'une clé privée.

Ce fichier est stocké sur le serveur. Lorsque votre navigateur demande un site utilisant le protocole HTTPS, le serveur envoie son certificat dans le navigateur.

Le navigateur vérifie que le nom de domaine sur le certificat correspond au nom de domaine du site, a également fait en sorte qu'il n'est pas expiré, etc., et vérifie que la signature sur le certificat est correct.

Maintenant, le problème est que nous ne pouvons dire si la signature est correcte, mais comment pouvons-nous savoir QUI l'a signé? Afin de résoudre ce problème, chaque navigateur (et certains systèmes d'exploitation) automatiquement confiance à un certain nombre de soi-disant "racine" des certificats. Il y a plus d'une centaine de certificats racine sur la plupart des ordinateurs. Lorsqu'un administrateur génère un certificat SSL, il a son certificat signé par le propriétaire de l'un de ces certificats racine. Cela comprend des sociétés comme Verisign et Thawte, ainsi qu'une centaine d'autres à travers le monde (y compris certains organismes gouvernementaux).

Le navigateur permet de vérifier que le certificat est signé par l'un des certificats racine qu'il fait déjà confiance. Le navigateur peut également vérifier une liste de révocation pour voir si un cours jusqu'à présent certificat a été révoqué (ce qui peut se produire si un certificat est délivré par erreur à la mauvaise personne). Si l'une de ces étapes de validation échoue, le navigateur affichera un message d'erreur à l'utilisateur.

57voto

sanjay_kv Points 21

HTTPS est la combinaison de HTTP et SSL(Secure Socket Layer) pour crypter la communication entre le client (navigateur) et le serveur web (application est hébergée ici).

Pourquoi est-il nécessaire?

HTTPS permet de chiffrer les données transmises par votre navigateur à un serveur sur le réseau. Donc, personne ne peut intercepter les données lors de leur transmission.

Comment HTTPS connexion est établie entre le navigateur et le serveur web?

  1. Navigateur tente de se connecter à l' https://payment.com.
  2. payment.com le serveur envoie un certificat dans le navigateur. Ce certificat comprend payment.com la clef publique du serveur, et il semble que cette clé publique appartient réellement à payment.com.
  3. Le navigateur vérifie le certificat de confirmer qu'il a la bonne clé publique pour payment.com.
  4. Navigateur choisit aléatoirement une nouvelle clé symétrique K à utiliser pour la connexion payment.com serveur. Il crypte K en vertu de payment.com la clé publique.
  5. payment.com décrypte K à l'aide de sa clé privée. Maintenant, à la fois navigateur et le serveur de paiement de savoir K, mais personne d'autre ne le fait.
  6. À tout moment navigateur veut envoyer quelque chose à payment.com il crypte sous K; la payment.com serveur déchiffre lors de la réception. Chaque fois que l'payment.com serveur veut envoyer quelque chose à votre navigateur, il crypte sous K.

Ce flux peut être représenté par le schéma suivant: enter image description here

0voto

user1644564 Points 45

J'ai découvert un problème avec la partie où le certificat SSL Authentifie le serveur vers le client.

Je vais essayer d'obtenir un certificat SSL et de la société assurant la tentative d'authentification que je suis qui je dis que je suis. Ils veulent m'ajouter mon nom à un répertoire téléphonique internet (où vous pourrez vous allonger) et ensuite ils me téléphone.

J'avoue avoir à répondre au téléphone va le rendre un peu plus difficile de mentir, mais encore ce n'est pas que difficile.

Donc, j'ai seulement besoin d'un téléphone par ligne terrestre, et la capacité de mentir, afin d'obtenir par le biais de la authentifier étape de leur processus. Mais je n'ai pas de téléphone par ligne terrestre.

Cependant ici, en Allemagne, le gouvernement local a un registre où je suis répertoriés, et d'obtenir sur cette liste, vous avez besoin d'employer un greffier, et de passer devant un juge.

Mais les fournisseurs de SSL n'est pas à l'exception de la société de registre. Ils n'sauf les annuaires de téléphone où vous pourrez vous allonger.

Quelqu'un peut-il voir sens dans ce processus?

-1voto

Blocker Points 7

Bonne réponse ci-dessus. Un peu plus de détails sur le processus de chiffrement :

Le navigateur obtient le certificat du serveur. Le navigateur génère une clé de sa propre puis envoie que sur le serveur crypté en utilisant le certificat du serveur. Le serveur renvoie alors une clé de session à l’aide d’à l’aide de la clé du client. Maintenant l’ensemble de la session est cryptée à l’aide de clés de session temporaire qui ont été envoyés cryptés dans les deux sens.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X