web-dev-qa-db-fra.com

Pourquoi n'exigeons-nous pas que les sites Web possèdent plusieurs certificats indépendants?

Il est souvent cité comme un principal sujet de préoccupation qu'une seule autorité de certification compromise puisse causer des dommages importants, car tous les sites Web (et autres entités) qui s'appuient sur cette autorité de certification ne peuvent plus faire confiance.

Pardonnez mon ignorance, mais pourquoi n'exigeons-nous pas que les sites Web soient validés, disons, par 3 certificats d'AC indépendants? Ce n'est que si la majorité des certificats s'accorde sur la validité des sites Web que cela sera considéré comme acceptable. Cela semble résoudre le problème ci-dessus dans une large mesure.

  • Si un certificat est délivré sans justification appropriée par une seule autorité de certification, cela ne fera pas accepter un site Web. Seules deux autorités de certification compromises en même temps pouvaient le faire.
  • Si une autorité de certification n'est plus approuvée, les sites Web qui en dépendent fonctionnent toujours, car ils sont validés par deux autres autorités de certification, à l'exception de celui qui est tombé en panne. Cela signifie qu'il est plus facile de révoquer la confiance dans une autorité de certification sans "briser Internet".

De toute évidence, une telle idée entraînerait des travaux supplémentaires. Mais étant donné que le temps et l'argent dépensés n'augmentent pas linéairement, cela pourrait être acceptable.

Il est également facile d'exécuter ce modèle en parallèle avec une infrastructure traditionnelle, car les sites Web pourraient spécifier un ou trois certificats, et les nouvelles règles (et bonus) ne s'appliqueraient qu'à eux.

44
mafu

pourquoi n'exigeons-nous pas que les sites Web soient validés, disons, par 3 certificats d'autorités de certification indépendantes?

Voici quelques raisons:

  1. Coût . L'achat de certificats coûte déjà un peu cher *; tripler cette dépense - et forcer les acheteurs à pénétrer plus profondément dans le bassin de CA potentiels, où ils commencent généralement à bon marché - ne serait pas la bienvenue.

  2. Complexité . Actuellement, si un certificat expire, le site est hors ligne ou dégradé jusqu'à ce que le service informatique puisse se déplacer et le réparer. Cela arrive étonnamment souvent étant donné que les dates d'expiration sont connues et peuvent être planifiées. Votre proposition triplerait le nombre de certificats qui doivent être installés correctement, qui doivent être remplacés avant expiration, qui nécessitent des chaînes de certificats correctes ... Certaines de ces choses sont déjà assez difficiles aujourd'hui avec une seule autorité de certification!

  3. Compatibilité . Les protocoles TLS ne spécifient pas de méthode de fonctionnement où plusieurs certificats doivent être validés, vous devrez donc mettre à jour ou remplacer le protocole utilisé, ce qui prendra des années. Il n'y a aucun moyen de spécifier au client que ce serveur particulier nécessite une validation multi-certificats, donc les attaques de rétrogradation sont triviales - encore une fois, vous devrez créer une méthode, puis attendre des années avant que le support ne se propage.

  4. Épinglage de certificat . Votre idée dit: "Supposons que le modèle CA soit rompu et, en tant que solution, augmentons notre dépendance à l'égard du modèle CA". Si un CA peut être compromis, pourquoi pas deux (en supposant qu'une majorité des 2/3 gagne dans votre modèle)? À ce stade, vous commencerez à dire: "Eh bien, nous voulons évidemment faire confiance à Entrust plus qu'à la République consolidée du Tadpolistan" - à ce stade, vous avez atteint Épinglage de certificat , ce qui est déjà une chose.

  5. WoT else? L'autre conclusion naturelle que vous tirerez, lorsque vous déciderez que certaines autorités de certification sont plus fiables que d'autres, est qu'il devrait y avoir une méthode de incorporant la réputation. C'est ce qu'on appelle le Web of Trust, et c'est un modèle concurrent de la Centralized Trust of CAs aujourd'hui. Une implémentation de la méthode WoT est le Projet Perspectives , qui est une approche intéressante du même problème que vous décrivez (et qui fonctionne en complément et en compatibilité avec le modèle CA existant).

* Avant que quelqu'un se lève et dise "Startcom!" ou "Let's Encrypt", n'oubliez pas que les entreprises utilisent le modèle CA aujourd'hui. Ils paient des sommes importantes et certains achètent des milliers de certificats chaque année. L'impact sur les coûts doit être considéré par tous les joueurs. (Et même sur le bas de gamme, si vous voulez un certificat gratuit, vous devez maintenant trouver 3 fournisseurs gratuits de bonne réputation, alors que trouver un était déjà un défi.)

32
gowenfawr

RTLS ne prend pas en charge plusieurs certificats feuilles pour une seule session, ni X509 ne prend en charge plusieurs émetteurs pour un seul certificat. Cela signifie qu'il y aura des changements nécessaires sur le protocole. Mais laissez simplement ignorer l'effort pour apporter de telles modifications et regardez combien plus de sécurité nous obtenons avec votre proposition. Voyons comment un mauvais certificat peut être émis, dans quelles situations votre proposition aide et comment elle se compare aux propositions existantes.

Comment l'attaquant peut obtenir un certificat

Un mauvais certificat peut être émis si la CA est compromise par l'attaquant, c'est-à-dire qu'elle est boguée, piratée ou si la CA emploie des personnes non fiables. Dans ce cas votre proposition serait utile car vous espérez que toutes les autorités de certification multiples n'ont pas ces problèmes en même temps. Bien sûr, ce n'est pas si simple, car vous feriez mieux de vous assurer que les différentes autorités de certification sont réellement contrôlées par différentes entités et exécutent un code différent, c'est-à-dire qu'un hack unique n'est pas en fait un hack de plusieurs autorités de certification.

Mais un attaquant peut également obtenir un certificat en compromettant le processus de validation du domaine . Ce processus fonctionne de manière similaire pour toutes les autorités de certification et si l'attaquant a accès au courrier du propriétaire du domaine ou du serveur, il peut arriver à obtenir un certificat pour le même serveur auprès de plusieurs autorités de certification. Dans ce cas, votre proposition n'aiderait pas du tout. Mais bien sûr, dans ce cas, le pirate n'obtiendrait l'accès qu'à quelques certificats pour les domaines mal sécurisés, tandis que dans le cas d'un compromis avec une autorité de certification, il peut obtenir de nombreux certificats, même pour des domaines avec une bonne sécurité.

Quelles propositions alternatives existent

Avec certificat ou épinglage de clé publique ( HPKP ) un propriétaire de domaine peut s'assurer , que le certificat utilise une clé publique spécifique. Avec HPKP, l'effet est que l'attaquant devrait avoir accès à la clé privée du certificat existant, c'est-à-dire pirater le serveur. Cela protège les domaines avec une bonne sécurité contre l'utilisation abusive des certificats l'attaquant créé en compromettant une autorité de certification. La bonne chose à propos de HPKP est qu'il est bon marché et facile à déployer et qu'il est déjà pris en charge par les principaux navigateurs .

Transparence du certificat est un journal public qui peut être utilisé pour savoir si une autorité de certification a émis un certificat qu'elle ne devrait pas et si une autorité de certification est consciente qu'elle a émis un certificat spécifique certificat . Cela peut être utilisé par le propriétaire du domaine pour vérifier les certificats non autorisés. Bien que toutes les autorités de certification ne disposent pas de tels journaux, le nombre augmente, car les fournisseurs de navigateurs poussent le support comme une exigence pour être une autorité de certification fiable. Pour l'instant Chrome nécessite que tous les certificats EV (barre verte) soient couverts par un tel journal et une autre autorité de certification est également requise pour émettre ces journaux car ils ont montré des insécurités dans le passé. Le fait est que les navigateurs compatibles tels que Chrome savent quelle autorité de certification devrait avoir un tel journal et peut le vérifier.

DANOIS permet au propriétaire de domaine de publier son propre certificat dans le DNS sans besoin de CA. Bien sûr, cela doit être en quelque sorte protégé contre l'usurpation DNS, il a donc besoin de DNSSec. DANE peut être utilisé à la fois avec des certificats auto-signés au lieu d'utiliser une autorité de certification publique ou avec des certificats signés par une autorité de certification comme protection supplémentaire. Bien qu'il ne soit pas actuellement implémenté dans les navigateurs, il est déjà utilisé pour le courrier par plusieurs fournisseurs et le support dans ce domaine se développe.

Sommaire

Bien que votre proposition soit utile pour augmenter la sécurité, elle nécessite des modifications majeures du protocole TLS existant (servir des certificats à plusieurs feuilles) ou du modèle X509 (plusieurs émetteurs pour un seul certificat). Mais au moins plusieurs certificats optionnels sont probablement possibles à implémenter à l'aide d'extensions TLS, nous n'avons donc pas besoin de nouvelle version TLS pour cela. Cela augmentera les données transférées dans la poignée de main complète (beaucoup de certificats de feuille et de certificats de chaîne), ce qui ralentit la poignée de main.

Les propositions alternatives n'ont pas besoin de tels changements de niveau de protocole car elles fonctionnent en dehors du protocole TLS. De plus, dans le cas de HPKP et DANE, ils offrent plus de contrôle sur le certificat au propriétaire du domaine que votre proposition.

Mais à la fin, toutes ces idées pourraient en théorie être utilisées ensemble pour augmenter la sécurité. Et bien que votre proposition augmenterait la sécurité, elle est probablement plus perturbatrice que les autres et entraînerait plus de coûts, et c'est pourquoi les autres sont préférés pour l'instant.

10
Steffen Ullrich

Ce que vous proposez augmenterait en effet la sécurité, mais à un coût administratif et une complexité technique accrus. Je pense que les compromis CA sont tout simplement des événements trop rares pour justifier ces coûts. De plus, si un schéma similaire est mis en pratique, il sera probablement plus élaboré qu'un simple vote sur 2 sur 3. Par exemple, avoir seulement deux certificats, un valide et un ancien, devrait suffire pour confirmer l'identité tout en protégeant contre les compromis d'une seule autorité de certification.

0
Dmitry Grigoryev