Pourquoi un certificat SSL non signé est-il traité pire qu'un certificat SSL?

19

Si je consulte un site disposant d'un certificat SSL non signé ou auto-signé, mon navigateur me donne un avertissement. Pourtant, le même navigateur n'a aucun problème à autoriser l'envoi d'informations d'identification sur des pages non sécurisées.

Pourquoi le certificat auto-signé est-il pire que de ne pas avoir de certificat?

Macha
la source

Réponses:

16

Il y a beaucoup de gens qui pensent que ce système est en panne.

Voici la logique derrière la raison pour laquelle votre navigateur vous donnera un tel avertissement alarmant lorsqu'un certificat SSL n'est pas valide:

L'un des objectifs de conception d'origine de l'infrastructure SSL était de fournir l'authentification des serveurs Web. En gros, si vous allez sur www.bank.com, SSL permet au serveur web qui répond de prouver qu'il appartient bien à votre banque. Cela empêche un imposteur de manipuler le DNS ou d'utiliser une autre méthode pour qu'un serveur malveillant réponde.

La «confiance» dans SSL est fournie en faisant signer un certificat par un tiers de confiance (des sociétés comme VeriSign et Thawte Consulting), indiquant qu'ils ont vérifié qu'il appartient à qui il prétend être (en théorie, en visitant l'administrateur informatique en personne ou une autre méthode qui crée une confiance directe, bien que les preuves montrent qu'ils sont en fait plutôt laxistes à ce sujet - tout ce qu'il faut pour obtenir un certificat SSL signé est souvent un numéro 800 et un peu de compétence d'acteur).

Donc, si vous vous connectez à un serveur Web qui fournit un certificat SSL, mais qu'il n'est pas signé par un tiers de confiance, cela pourrait en théorie signifier que vous communiquez avec un imposteur qui prétend être un serveur appartenant à une autre organisation .


Dans la pratique, un certificat auto-signé signifie généralement que l'organisation qui exécute le serveur a choisi de ne pas payer pour un certificat signé (ils peuvent être assez chers, selon les fonctionnalités que vous souhaitez), ou manquait de l'expertise technique pour en configurer un ( certaines solutions pour petites entreprises offrent un mécanisme en un clic pour un certificat auto-signé, mais l'obtention d'un certificat de confiance nécessite des étapes plus techniques).

Je crois personnellement que ce système est en panne et que communiquer avec un serveur n'offrant aucun cryptage est beaucoup plus dangereux que de communiquer avec un serveur proposant SSL avec un certificat auto-signé. il y a trois raisons pour lesquelles les navigateurs n'agissent pas comme c'est le cas:

  1. Les communications non cryptées sont la norme sur Internet, donc si les navigateurs vous faisaient cliquer sur un avertissement pour afficher les sites Web n'offrant pas de cryptage, vous seriez rapidement ennuyé et désactiveriez l'avertissement.
  2. En raison des avertissements terribles adressés aux clients, il est anormal de voir un certificat auto-signé sur un site Web de production. Cela établit un système auto-perpétué: les certificats auto-signés sont suspects parce qu'ils sont rares, ils sont rares parce qu'ils sont suspects.
  3. Cela me semble cynique, mais il y a des entreprises qui font beaucoup d'argent en signant des certificats SSL ( toux Verisign cough ), donc elles utilisent des livres blancs (un terme informatique signifiant "publicité longue et ennuyeuse") et d'autres publications pour renforcer l'idée que les certificats non signés sont dangereux.
jcrawfordor
la source
5
Sans chaîne de confiance, ce que vous obtenez avec un certificat signé par une autorité de certification et non un auto-signé, il n'y a aucun moyen de vérifier que le serveur auquel vous vous connectez est bien celui qui le dit. Les certificats auto-signés sont dangereux dans le sens où ils ne fournissent aucun moyen à un utilisateur de vérifier que les données qu'il transmet atteignent la destination qu'ils disent être. Les gens commencent à apprendre à rechercher "https" lorsqu'ils effectuent des transactions sécurisées, donc avoir un gros avertissement concernant un certificat invalide ou auto-signé est garanti à 100%, car ils perdent l'un des principaux avantages de SSL.
MDMarra
Je ne dirais pas «cassé». Je pense que le module complémentaire Firefox Certificate Patrol est beaucoup plus proche de la mise en œuvre correcte des certificats et de la gestion de la confiance que par défaut. Pourtant, la valeur par défaut est meilleure que d'ignorer complètement les réseaux de confiance.
Slartibartfast
4
@MarkM - Mon sentiment est que l'authentification ne doit pas être considérée comme le principal avantage de SSL. Je n'ai pas les données pour me soutenir, mais je pense que beaucoup plus d'incidents de sécurité résultent des données transférées via des connexions non cryptées (par exemple, l'ingénieur de sécurité Facebook dont le mot de passe a été volé - ils ont reniflé le mot de passe d'un réseau wifi , puisque la connexion à Facebook n'est pas cryptée) que par le biais d'attaques MitM ou imposteurs, qui sont relativement beaucoup plus compliquées à mettre en œuvre. L'accent mis sur l'authentification sur le chiffrement dans SSL est, comme je l'ai noté, précisément ce qui crée cette situation.
jcrawfordor
1
@MarkM - bien qu'il y ait certainement des frais généraux, ce qui est une préoccupation légitime, l'utilisation de certificats non signés ne mettra pas de stress sur les autorités de certification, en particulier parce qu'une autorité de certification ne serait pas utilisée pour un certificat auto-signé. De plus, pour les organisations disposant d'un pouvoir suffisant, ce n'est pas un problème - considérez que Google utilise désormais par défaut https pour gmail et certains autres services. Je comprends votre point de vue que sans authentification, l'utilité de SSL est dégradée. Le modèle actuel n'est pas bien conçu. Ce dont nous avons vraiment besoin, c'est d'un protocole crypté standard et d'un protocole authentifié pour des utilisations plus sécurisées.
nhinkle
5
La plus grande importance de mon propos, et NRHinkle l'a dit directement, est que nous devons commencer à considérer le chiffrement et l'authentification comme des objectifs distincts, et permettre qu'ils soient atteints séparément. Ce sont les défauts fondamentaux du système SSL en ce moment: 1) Nous considérons que le cryptage et l'authentification sont inextricablement liés - pour réaliser l'un, vous devez atteindre l'autre. Fournir un seul est «suspect». 2) L'authentification doit être obtenue auprès d'un nombre limité d'AC principalement à but lucratif. En général, les AC sont soit très chers (Verisign etc.) ou très louches (NameCheap etc.)
jcrawfordor
6

L'envoi des informations d'identification d'une page à l'autre fait essentiellement HTTP POST. L'envoi d'informations d'identification n'a rien de spécial par rapport à l'envoi de termes de recherche via POST, par exemple.

L'utilisation d'un canal sécurisé indique l'intention du programmeur de sécuriser le transfert. Dans ce cas, l'utilisation d'un avertissement de certificat auto-signé est une très bonne chose à faire.

Miro A.
la source
Assez juste pour moi.
dag729
En fait, je me souviens qu'au moins les anciennes versions de Netscape Navigator faisaient apparaître un avertissement pour chaque POST non chiffré. Bien sûr, tout le monde les a désactivés après cinq minutes, donc je suppose que c'est pourquoi ils l'ont retiré ...
sleske
4

Je ne peux pas commenter, donc je publierai ces informations qui complètent les informations correctes de user40350.

Pourtant, le même navigateur n'a aucun problème à autoriser l'envoi d'informations d'identification sur des pages non sécurisées.

Ce n'est même pas vrai. La plupart des navigateurs affichent un avertissement indiquant que vous êtes sur le point de soumettre des données via une connexion non sécurisée lorsque vous essayez pour la première fois, mais vous pouvez le désactiver pour qu'il ne s'affiche plus jamais, et je parie que c'est exactement ce que vous avez fait ...

Miro A a écrit:

L'envoi des informations d'identification d'une page à l'autre fait essentiellement HTTP POST. L'envoi des informations d'identification n'a rien de spécial par rapport à l'envoi, par exemple les termes de recherche via POST

C'est également incorrect, car les champs de mot de passe sont des balises html spéciales par exemple. En plus de cela, les étiquettes comme "nom d'utilisateur" et "mot de passe" trahissent également beaucoup de leur sensibilité. Il serait parfaitement possible pour les navigateurs de prendre en compte ce type d'informations.

ufotds
la source
3

Les connexions sécurisées par le protocole https: // sont indiquées par le navigateur comme "sécurisées". Par exemple, un petit cadenas est affiché ou des parties de l'URL sont marquées en vert.

L'utilisateur est donc censé avoir confiance que les pages qu'il visite proviennent bien de l'URL qu'il a saisie et ne proviennent pas de quelqu'un d'autre.

S'il n'utilise pas https: //, l'utilisateur est censé savoir que les données saisies ne sont pas protégées et le site sur lequel il surfe pourrait être importé.

Un certificat auto-signé ne garantit pas - encore une fois, l'attente que la page consultée ne soit pas impostée, donc il ne donne aucune sécurité supplémentaire.

usermac75
la source
1

Une distinction doit être faite entre un certificat de confiance (signé par une autorité de confiance) et un certificat non approuvé. Sinon, quelqu'un pourrait usurper l'identité de votre banque (par exemple) en utilisant un certificat auto-signé avec une relative impunité.

Un avertissement en face à face est préférable à un avertissement subtil dans ce cas, car le risque potentiel est relativement élevé. Les gens peuvent cliquer sur un lien https et ne même pas penser que quelqu'un pourrait être assis au milieu pour surveiller la connexion. Si l'indication que le certificat n'est pas approuvé est subtile (disons une icône rouge au lieu d'une icône verte, etc.), alors les gens pourraient être facilement trompés, supprimant les avantages de SSL.

Slartibartfast
la source
N'est-il pas facile de se faire passer pour une banque de toute façon si vous avez accès à l'ordinateur de l'utilisateur et modifiez ses certificats? Si l'ordinateur de l'utilisateur n'est pas modifié, le navigateur Web ne pourra pas modifier l'URL de la page Web pour prétendre qu'il s'agit de la banque; et s'ils obtiennent une URL très similaire, ils peuvent toujours obtenir un certificat pour ce site Web et l'utilisateur ne se souciera pas de qui la page Web est signée, il verra simplement que c'est https et, espérons-le, remarquera que l'URL n'est pas la URL de leur banque ...
Dmitry
L'avantage de SSL n'est pas que le site Web soit ce que vous pensez qu'il est (cela est impossible car une application tierce peut modifier vos certificats ou la banque peut être piratée); mais faites plutôt confiance que la communication entre vous et la personne qui pense que le site l'est, ne l'est qu'entre vous deux et personne d'autre ne peut donner un sens à cette communication. Ne pas avoir de certificat est pire que d'avoir un auto-signé parce que peu importe à qui vous parlez, ce qui compte, c'est que personne d'autre ne puisse intercepter ce que vous dites.
Dmitry
En plus en tant qu'utilisateur, est-ce que je sais vraiment qui est Verisign et pourquoi je dois leur faire confiance? Leur intérêt à vendre des certificats n'est-il pas plus élevé que de tenir les propriétaires de certificats responsables de l'utilisation abusive des informations que vous leur envoyez?
Dmitry
0

De nombreuses bonnes raisons ont été énumérées. En voici encore un:

Pensez aux cas où une page Web sécurisée intègre des éléments d'une autre. Un attaquant pourrait détecter quelles requêtes concernent la page Web externe (par exemple, en regardant le timing, elle doit venir en premier) et lesquelles concernent les éléments internes. Il pouvait s'injecter en tant que MITM dans les seuls éléments internes, utiliser un certificat auto-signé et contrôler des parties de la page. À moins qu'un avertissement ne soit présenté pour les éléments internes utilisant SSL mais n'utilisant pas de certificat de confiance, la sécurité de la page externe serait compromise.

Voici un exemple réaliste. Supposons que je suis un fournisseur et que j'ai un lien "payer avec PayPal". Vous cliquez dessus, et je sais. Je vous redirige vers PayPal et vous laisse accéder à la page PayPal légitime et sécurisée. Si je regarde votre réseau, je sais que ce sera votre première demande de PayPal, et peu de temps après, vous soumettrez votre mot de passe. J'ai donc MITM submitcontenant votre adresse e-mail et votre mot de passe, en remplaçant mon certificat auto-signé par PayPal.

Vous voyez comment la sécurité de la page externe est compromise en ne vous avertissant pas si le certificat de la page interne est auto-signé? Il doit donc mettre en garde contre les certificats auto-signés provenant de liens.

Et, bien sûr, si vous entrez httpsmanuellement, il doit vous avertir. Parce que vous vous attendez à ce qu'il soit sécurisé.

David Schwartz
la source
-1

Lorsque l'homme dans l'attaque du milieu est exécuté dans https: // site Web, l'avertissement n'est qu'une indication de quelque chose de mal à l'utilisateur moyen. C'est donc une partie très importante de la sécurité HTTPS.

La bonne question est pourquoi le chiffrement partiellement dangereux n'est pas un exemple possible sur HTTP.

Cmazay
la source