web-dev-qa-db-fra.com

Différence entre le protocole https et le certificat SSL

Quelle est la différence entre le protocole https et le certificat SSL que nous utilisons dans le navigateur Web?

Les deux ne sont-ils pas utilisés pour crypter la communication entre le client (navigateur) et le serveur?

49
user32262

HTTPS est HTTP (HyperText Transfer Protocol) plus SSL (Secure Socket Layer). Vous avez besoin d'un certificat pour utiliser n'importe quel protocole utilisant SSL.

SSL permet aux protocoles arbitraires d'être communiqués en toute sécurité. Il permet aux clients de (a) vérifier qu'ils communiquent bien avec le serveur qu'ils attendent et non avec un homme du milieu et (b) crypter le trafic réseau afin que les parties autres que le client et le serveur ne puissent pas voir la communication.

Un certificat SSL contient une clé publique et un émetteur de certificat. Non seulement les clients peuvent utiliser le certificat pour communiquer avec un serveur, mais ils peuvent également vérifier que le certificat a été signé de manière cryptographique par une autorité de certification officielle. Par exemple, si votre navigateur fait confiance à l'autorité de certification VeriSign et que VeriSign signe mon certificat SSL, votre navigateur fera intrinsèquement confiance à mon certificat SSL.

Il y a une bonne lecture ici: http://en.wikipedia.org/wiki/Transport_Layer_Security

49
a paid nerd

Deux morceaux d'une solution.

https est le protocole qui définit comment le client et le serveur vont négocier une connexion sécurisée.

Le certificat SSL est le document qu'ils utiliseront pour convenir de l'authenticité des serveurs.

35
John Weldon

HTPS est le nouveau HTTPS. HTTPS est très vulnérable au SSL Stripping/MITM (homme au milieu). pour citer le blog d'Adam Langley (Google) Imperial Violet:

"Le HTTPS a tendance à amener les gens à donner des conférences se moquant de la sécurité des certificats et de l'écosystème qui l'entoure.

Le problème est que la page n'est pas diffusée via HTTPS. Cela aurait dû l'être, mais lorsqu'un utilisateur tape un nom d'hôte dans un navigateur, le schéma par défaut est HTTP. Le serveur peut tenter de rediriger les utilisateurs vers HTTPS, mais cette redirection n'est pas sécurisée: un attaquant MITM peut le réécrire et garder l'utilisateur sur HTTP, usurpant le site réel tout le temps. L'attaquant peut désormais intercepter tout le trafic vers ce site Web parfaitement bien configuré et sécurisé.

C'est ce qu'on appelle la suppression SSL et c'est terriblement simple et d'une efficacité dévastatrice. Nous ne le voyons probablement pas très souvent, car ce n'est pas quelque chose que les mandataires d'entreprise doivent faire, donc ce n'est pas dans les appareils standard. Mais ce répit est peu susceptible de durer très longtemps et peut-être est-il déjà terminé: comment pourrions-nous même savoir s'il était utilisé?

Afin d'arrêter le dépouillement SSL, nous devons faire de HTTPS le seul protocole. Nous ne pouvons pas le faire pour tout Internet, mais nous pouvons le faire site par site avec HTTP Strict Transport Security (HSTS).

HSTS indique aux navigateurs de toujours faire des demandes via HTTPS aux sites HSTS. Les sites deviennent HSTS soit en étant intégrés dans le navigateur, soit en annonçant un en-tête:

Strict-Transport-Security: max-age = 8640000; includeSubDomains

L'en-tête est en vigueur pendant le nombre de secondes donné et peut également s'appliquer à tous les sous-domaines. L'en-tête doit être reçu via une connexion HTTPS propre.

Une fois que le navigateur sait qu'un site est uniquement HTTPS, l'utilisateur tapant mail.google.com est en sécurité: la demande initiale utilise HTTPS et il n'y a aucun trou à exploiter pour un attaquant.

(mail.google.com et un certain nombre d'autres sites sont déjà intégrés à Chrome en tant que sites HSTS, il n'est donc pas possible d'accéder à accounts.google.com via HTTP avec Chrome - J'ai dû soigner cette image! Si vous voulez être inclus dans la liste HSTS intégrée de Chrome, écrivez-moi.)

HSTS peut également vous protéger, le webmaster, contre les erreurs stupides. Supposons que vous avez dit à votre mère qu'elle devrait toujours taper https: // avant d'aller sur son site bancaire ou peut-être que vous lui avez créé un signet. C'est honnêtement plus que ce que nous pouvons ou devrions attendre de nos utilisateurs. Mais disons que notre utilisateur surérogatoire ...]

en raison d'obstacles/règles de liens très stupides pour les nouveaux utilisateurs sur stackoverflow, je ne peux pas vous donner le reste de la réponse d'Adam et vous devrez visiter le blog d'Adam Langley vous-même à https://www.imperialviolet.org/2012 /07/19/hope9talk.html

"Adam Langley travaille à la fois sur l'infrastructure de service HTTPS de Google et sur la pile réseau de Google Chrome."

6
Pascal

HTTPS est un protocole de couche application. Il peut fournir la non-répudiation des demandes ou réponses individuelles via des signatures numériques.

SSL est un protocole de niveau inférieur et n'a pas cette capacité. SSL est un chiffrement au niveau du transport.

HTTPS est plus flexible que SSL: une application peut configurer le niveau de sécurité dont elle a besoin. SSL a moins d'options, il est donc plus facile à configurer et à administrer.

1
Smriti Snigdho Pal