web-dev-qa-db-fra.com

Pourquoi les navigateurs autorisent-ils les autorités de certification racine personnalisées?

Dans mon travail, tous les navigateurs ont une autorité de certification racine personnalisée installée, ce qui leur permet ensuite d'espionner tout le trafic https pendant que les utilisateurs ont la fausse impression qu'ils parcourent une page https sécurisée.

Pourquoi les navigateurs permettent-ils une défaite aussi simple de https et n'en avertissent-ils pas l'utilisateur?

EDIT: Sur la base des réponses/commentaires, je me rends compte que je mettais peut-être à tort l'accent sur la mauvaise partie de ma confusion. Je comprends qu'il existe des besoins légitimes de vouloir modifier la liste des autorités de certification, ce que je ne comprends pas, c'est pourquoi vous ne voudriez pas avertir l'utilisateur si une telle modification a été apportée. Ne prévient-il pas que l'utilisateur a déjoué le point de la boîte verte à côté de l'adresse? Dois-je vraiment passer par plusieurs clics, puis peut-être faire une recherche (compromise) pour déterminer si l'autorité de certification racine est réelle ou non pour un ordinateur que je ne possède pas et/ou si je laisse quelqu'un d'autre toucher mon ordinateur?

25
eddi

Il n'y a vraiment aucune bonne raison pour que les navigateurs autorisent cela, et ils devraient le refuser. Permettez-moi d'aborder les justifications erronées une par une:

  1. Développement web. Vous n'avez pas besoin d'une autorité de certification root pour signer des certificats uniquement pour un seul domaine ou un petit ensemble fini de domaines pour lesquels vous effectuez le développement. Au lieu de cela, le navigateur pourrait autoriser l'ajout de certificats d'autorité de certification valables uniquement pour les domaines particuliers , et vous avertir dans la barre d'URL lorsqu'un tel certificat est utilisé, plutôt que d'autoriser l'ajout de certificats d'autorité de certification qui peuvent signer pour des domaines arbitraires.

  2. Entreprise et AV MITM. Ce ne sont que de mauvaises idées pour des raisons que vous pouvez trouver discutées ailleurs. Implémentez AV sur les terminaux, pas via MITM. Le contrôle des actifs via MITM ne fonctionne tout simplement pas, sauf contre des utilisateurs vraiment naïfs. Si vous avez des données si sensibles que vous pensez avoir besoin d'un contrôle des actifs via MITM, vous avez probablement besoin de systèmes air-gap sans accès à Internet.

  3. "Si le navigateur ne le permettait pas, les administrateurs qui souhaitent ajouter des autorités de certification racine modifieraient simplement le navigateur." Oui, c'est toujours techniquement possible, mais les fournisseurs de navigateurs ont la possibilité de le rendre juridiquement difficile ou impossible en conditionnant simplement l'utilisation de la marque du navigateur à ne pas falsifier l'AC fait confiance à l'UX. Je le préconise depuis longtemps. Si les navigateurs faisaient cela, les utilisateurs sauraient dès qu'ils verraient "Firefox" ou "Chrome" sur un système sur lequel ils s'asseyent qu'il n'acceptera pas de certificats frauduleux pour laisser quelqu'un les MITM tant qu'ils sont convaincus que la partie qui a mis en place le système est respectueuse des lois . C'est une hypothèse assez raisonnable dans des contextes tels que les lieux de travail, les écoles, les bibliothèques, etc., et elle peut être testée, donc si quelqu'un enfreint les règles, il est facile de les sortir et de laisser le fournisseur du navigateur engager une action en justice.

Comme indiqué dans les commentaires et réponses, il existe de nombreuses raisons légitimes pour lesquelles vous souhaitez ajouter une autorité de certification au magasin de confiance de votre navigateur, et les mécanismes pour ce faire nécessitent un accès administrateur à la machine/au navigateur.

Vous sous-entendez un modèle de confiance dans lequel vous ne considérez pas votre administrateur (ou passé) comme digne de confiance et souhaitez que le navigateur fasse une distinction visuelle entre un certificat de confiance publique (c'est-à-dire émis par une autorité de certification dans Mozilla de confiance publique) liste) et celui qui est de confiance privée car il a été explicitement ajouté au magasin de confiance du navigateur. Peut-être le vert habituel avec un symbole d'avertissement pour une confiance privée?

Bonne idée! Cela résoudrait également mon problème d'avoir besoin de deux copies de Firefox installées: une pour tester les produits qui ont besoin de moi pour installer des certificats, et une pour naviguer sur Internet. Vous devriez voir si Firefox a déjà une amélioration pour cela, et sinon, le suggérer :)

52
Mike Ounsworth

Ce que vous voulez, c'est que le navigateur défende l'utilisateur contre les "attaques" effectuées par l'administrateur local.

Dans un tel scénario, la défense est impossible. L'administrateur "malveillant" peut toujours remplacer votre Firefox légitime par un imposteur qu'il a compilé à l'aide de ses propres autorités de certification, qui affichera un cadenas vert. Lorsque vous êtes au travail et que vous utilisez la machine de quelqu'un (l'entreprise dans ce cas), vous êtes à 100% à la merci du propriétaire de la machine. Si l'entreprise voulait vous espionner secrètement, elle peut toujours installer le keylogger et voir vos mots de passe avant même d'atteindre un navigateur sécurisé.

La boîte verte n'indique pas la sécurité contre les menaces locales, elle indique la sécurité contre l'espionnage à distance. Dans ce cas, il indique une connexion sécurisée à votre inspecteur TSL. Cela indique que vos collègues du même réseau local ne peuvent pas espionner vos mots de passe, d'où l'icône verte. Ce qui se passe une fois que l'inspecteur est sous la responsabilité de votre administrateur réseau et que le navigateur ne peut pas dire s'il utilise réellement HTTP.

En tant qu'utilisateur, vous pouvez afficher le certificat et examiner son chemin de certification. Votre navigateur ne peut pas décider si le certificat émis par DigiNotar est "meilleur" que celui émis par EvilCorp (ce qui peut arriver à être votre employeur). Les certificats sont constamment modifiés et les autorités de certification sont également modifiées. Le navigateur ne peut pas décider si une autorité de certification est plus fiable que l'autre. Vous seul pouvez décider qui est l'émetteur et si vous pouvez lui faire confiance - et avec quel type d'informations. Vous êtes censé utiliser la machine uniquement pour des activités liées au travail, donc techniquement vous ne faites rien que vous ne voulez pas qu'EvilCorp voie.

30
Agent_L
  1. Parce que la liste officielle change avec le temps.
  2. Parce que les entreprises ont un besoin légitime d'inclure des autorités de certification "internes".
  3. Parce que les entreprises ont un intérêt légitime à être en mesure de Man-in-the-Middle à des fins de sécurité, de conformité ou de RH.
  4. Parce que les développeurs et les testeurs ont un besoin légitime de Man-in-the-Middle.

Souhaitez-vous plutôt faire confiance StartCom aujourd'hui? C'est ce que vous obtiendriez avec une modification non triviale.

9
gowenfawr

L'une des principales raisons d'autoriser une autorité de certification racine personnalisée est pour le développeur Web. Les versions de développement et de test utilisent très souvent un certificat interne (principalement pour le coût et la facilité de création). Ne pas vous permettre d'ajouter votre autorité de certification racine entraînerait un état (plus) différent entre votre instance de développement/génération et celle de production, ce qui pourrait générer des bogues difficiles à corriger.

En outre, le proxy d'entreprise, car une entreprise est (dans la plupart des lois) responsable de ce que vous faites avec son Internet, ils utilisent souvent l'homme au milieu, ce qui, bien qu'éthique douteux, est principalement légal et attendu.

Une autre raison de ne pas coder en dur l'AC racine est de vous permettre de supprimer celui auquel vous ne faites plus confiance (peut-être qu'ils sont sous le contrôle d'un gouvernement auquel vous ne faites pas confiance, peut-être qu'ils ont récemment divulgué une clé, etc.) indépendamment de votre navigateur leur.

6
Sefa

En règle générale, l'ajout de nouveaux certificats racine nécessite un administrateur ou un accès de niveau racine. Ainsi, ils ne peuvent pas être installés sans le consentement du propriétaire de l'ordinateur (sauf si un exploit est utilisé).

Le problème semble être que vous ne comprenez pas bien à qui appartient l'ordinateur. Si l'ordinateur a été émis par votre employeur et qu'il dispose d'un accès root, ce n'est pas "votre" ordinateur. C’est le leur et ils vous permettent de l’utiliser. Vous ne devriez avoir aucune attente de confidentialité en utilisant ce système. Cela a probablement dit quelque chose à cet effet dans votre convention collective. (Les détails à ce sujet peuvent varier en fonction de vos lois locales.)

1
myron-semack

Si votre ordinateur fait partie d'un réseau d'entreprise, il est logique d'ajouter des autorités de certification racine personnalisées pour les sites Web internes qui utilisent HTTPS ou divers packages de mise à jour ou applications internes que vous envoyez à vos clients/=.

0
Godonsplork