Une connexion HTTPS est-elle sécurisée sans certificat SSL valide?

J'utilise une connexion HTTPS Sans certificat SSL valide. La connexion est sûre? L'information est cryptée?

47
demandé sur Anders 2010-10-05 19:13:27

6 réponses

La connexion est chiffrée même si le certificat SSL n'est pas valide (expiré, snake-oil,CA non approuvé, etc.). La validation du certificat SSL garantit simplement que vous vous connectez aux personnes auxquelles vous pensez vous connecter. Le cryptage ne vous sert à rien si les gens qui déchiffrent vos données sont des craquelins au lieu de PayPal.

54
répondu ceejayoz 2010-10-05 15:15:31

En fait, il est possible d'établir une connexion cryptée entre de parfaits inconnus sans certificat, en utilisant Diffie-Hellman ou des algorithmes d'échange de clés similaires.

Alice et Bob d'accord sur un nombre aléatoire x. Alice calcule xun, où un est un grand nombre premier connu seulement à Alice, et l'envoie à Bob. Bob calcule xb et l'envoie à Alice. Alice calcule (xb)un, et Bob calcule (xun)b. Depuis (xun)b = (xb)un = xab, Alice et Bob maintenant à la fois de savoir le nombre xab et vous pouvez l'utiliser comme une clé de chiffrement. La beauté de ceci est que Bob ne sait pas a , Alice ne sait pas b, et les écoutes ne connaissent aucun nombre (car calculer a à partir de x a, dans le cas de grands nombres, prendrait an).

Comme le souligne supercat, cela en soi est toujours susceptible d'une attaque man-in-the-middle, et c'est pourquoi au moins une extrémité de la transaction doit s'authentifier à l'aide d'un certificat. Pour être précis, cependant, ce n'est pas le serveur qui vérifie cela, c'est le navigateur, et la plupart des navigateurs laisseront l'utilisateur continuer si le certificat est invalide (ou peut-être même des déchets). Dans ce cas, la connexion sera encore beaucoup plus sûre qu'une connexion régulière. Écouter dans, vous devez être capable de manipuler le routage IP ou les recherches DNS, et vous devez le configurer avant la première connexion, ce qui n'est pas facile à faire.

BTW les paires de clés dans les certificats sont pas ce qui est utilisé pour chiffrer le trafic réel; ils sont utilisés pour établir une nouvelle clé à usage unique pour un chiffrement symétrique beaucoup plus rapide (comme DES) qui fait ensuite le reste du travail.

23
répondu bobtato 2017-04-23 21:15:29

S'il n'y a pas eu de vérification des certificats SSL, quelqu'un qui a intercepté un canal de communication peut capturer une demande de connexion à https://www.acmebank.com , envoyer sa propre demande à www.acmebank.com, et négocier des clés avec les deux acmebank.com et l'utilisateur. Après cela, il pourrait recevoir chaque morceau de données de l'utilisateur, déchiffrer avec la clé de l'utilisateur, et chiffrer avec la clé d'acmebank, et faire de même avec les données de acmebank.com. l'effet net serait que ni le l'utilisateur ni acmebank voudrais voir quelque chose de mal, mais l'intercepteur serait capable de déchiffrer toutes les données entre l'utilisateur et acmebank. L'utilisateur et la banque utiliseront des clés différentes pour gérer leur communication, mais aucune entité ne le saura. Ajouter n'importe quel aspect standard au Protocole pour savoir quelle clé est utilisée n'aiderait pas, puisque l'intercepteur pourrait détecter de telles requêtes et modifier les réponses de manière appropriée.

SSL empêche une attaque man-in-the-middle en exigeant hôte d'envoyer au destinataire d'une copie de la clé de l'hôte utilise, cryptés dans un formulaire qu'un intrus ne pourra pas faux (à moins que l'intrus peut fausses informations d'identification CA, au moins). Si l'on n'utilise pas de certificat émis par L'autorité de certification, il y aura peu de protection contre une attaque man-in-the-middle, bien que la couche cryptée empêche le décryptage passif ou rétrospectif du contenu de la session (BTW, je souhaite qu'il y ait des normes entre la communication non cryptée et SSL, pour les situations où le décryptage passif ou rétrospectif est la principale menace, mais je n'en connais pas).

9
répondu supercat 2010-10-05 15:40:40

Ne vous embêtez plus avec un certificat SSL invalide. Vous pouvez maintenant générer un certificat valide de navigateur gratuit pour votre serveur aussi facilement que vous généreriez un certificat snakeoil (auto-signé, navigateur invalide). Aller voir https://letsencrypt.org/ c'est gratuit et ouvert aux contributions.

5
répondu Nicolas Manzini 2016-01-07 10:13:21

Non. Ce que vous faites lorsque vous utilisez HTTPS est de dire au navigateur de se connecter via un port différent (443) alors que normalement vous vous connectez via (80). Sans certificat, le serveur refuserait la connexion. HTTPS n'est tout simplement pas possible sans un certificat. Regardez ici et vous verrez qu'un certificat est nécessaire pour que cela fonctionne.

2
répondu m.edmondson 2010-10-05 15:14:50

Il est possible d'établir une connexion cryptée, Oui, mais il serait toujours possible que vous communiquiez avec un cpmputer fissuré au lieu du vrai serveur. Comme ça, l'ordinateur fissuré indique au serveur qu'il serait le client, décrypter toutes les données, les stocker et envoyer les données cryptées au client (et lui dire qu'il serait le serveur). C'est donc juste une connexion sûre s'il n'y a pas de point vulnérable entre le serveur et le client, ce que personne ne peut garantir.

0
répondu divaidee 2014-04-08 22:26:36