Question:
Qu'est-ce qui rend Let's Encrypt sécurisé?
user253751
2015-05-04 12:49:51 UTC
view on stackexchange narkive permalink

Let's Encrypt est une initiative de l'Electronic Frontier Foundation (EFF), de Mozilla, Cisco, Akamai, IdenTrust et des chercheurs de l'Université du Michigan qui vise à fournir automatiquement à chaque propriétaire de domaine un certificat qui peut être utilisé pour TLS.

Afin de prouver que vous possédez un domaine, vous devez installer un fichier avec un contenu particulier (généré aléatoirement) à une URL particulière (générée aléatoirement) sur ce domaine. Le serveur Let's Encrypt vérifiera cela en accédant à l'URL, avant de signer le certificat.

Maintenant, supposons que j'ai une attaque qui fera que le domaine awesomebank.example sera résolu sur mon serveur . Supposons que je puisse également MITM les connexions de certaines personnes à https: //awesomebank.example/ . TLS est destiné à m'empêcher de voir ou de modifier leurs communications avec le serveur sans être détecté.

Ce qui m'empêche d'utiliser cette attaque sur le serveur Let's Encrypt et d'obtenir un certificat pour awesomebank.example , puis l'utiliser pour les clients MITM d'AwesomeBank sans être détecté (parce que j'ai un certificat valide)? L'existence d'une autorité de certification entièrement automatisée ne rend-elle pas Internet moins moins sécurisé?

"... une attaque qui fera résoudre le domaine awesomebank.example à mon serveur". C'est ce qu'on appelle l'empoisonnement DNS. Une fois que vous avez atteint cet objectif, pourquoi exécuteriez-vous MITM. Toutes les données du client arrivent sur votre serveur. C'est fini alors le jeu. Mais vous ne pouvez pas le faire facilement à moins de convaincre le registraire DNS de awesomebank.example de le résoudre sur votre IP ou d'exploiter une vulnérabilité dans leur infrastructure DNS. Même cela peut être atténué par le verrouillage des modifications DNS.
De nombreuses autorités de certification existantes sont déjà automatisées. Ils vérifient uniquement si vous pouvez recevoir des e-mails à admin@example.com.
Même l'empoisonnement DNS (cache) ne fonctionne que si le cache est utilisé. Si le résolveur est conçu pour suivre spécifiquement la chaîne de délégation à chaque recherche, et peut-être même le faire pour toutes les alternatives et s'assurer que les réponses correspondent, cette attaque peut être atténuée facilement avec un degré de confiance élevé. Étant donné que la signature de certificats est une opération à fréquence relativement basse, quelque chose comme cela n'affecterait pas de manière significative les autres systèmes ni n'augmenterait considérablement le temps requis pour obtenir un certificat.
C'est une faille avec toute cette PKI basée sur CA. Des solutions alternatives comme l'utilisation d'un réseau de confiance à la place (comme PGP) seraient plus résistantes à ce type d'attaque, car vous auriez besoin de tromper plusieurs personnes pour qu'elles fassent confiance à votre identité MITM, par opposition à une seule autorité de certification.
@void_in "Toutes les données du client arrivent sur votre serveur" ne serait le cas que si les clients établissent effectivement la connexion TLS avec votre serveur. Pour que cela fonctionne, vous devez (normalement) avoir un certificat valide (signé par une autorité de certification de confiance) pour le nom de domaine. Et pour cela, vous devez tromper l'autorité de certification pendant le processus de vérification.
L'image de Let's Encrypt est censée être bonne.Sinon, cette question serait "Let's Encrypt est-il digne de confiance?"ou [similaire] (https://security.stackexchange.com/questions/127575/is-startssl-com-a-trustworthy-site/127630) ...
[Plus théorique] (https://www.wired.com/2017/04/hackers-hijacked-banks-entire-online-operation)
Juste après avoir lu l'article sur Wired https://goo.gl/zAqLKJ, j'ai atterri ici @JimmyJames - Quelle coïncidence, j'étais sur le point de publier le même commentaire.
Six réponses:
StackzOfZtuff
2015-05-04 14:41:51 UTC
view on stackexchange narkive permalink

Même sécurité que les autres certificats DV

Ce qui m'empêche d'utiliser cette attaque sur le serveur Let's Encrypt, d'obtenir un certificat pour awesomebank.example, puis de l'utiliser pour les clients MITM d'AwesomeBank sans être détecté (car j'ai un certificat valide)?

Rien. Si vous possédez le réseau, vous êtes propriétaire du réseau. Et les certificats de type DV (voir ci-dessous) s'appuient sur le réseau pour prouver la propriété du domaine. Il n'y a généralement pas de contrôles hors bande. (Personne n'appellera votre téléphone, personne ne vérifiera votre pièce d'identité avec photo, personne ne vous rendra visite à l'endroit où l'entreprise est enregistrée, etc.)

Il n'y a pas l'existence d'une CA entièrement automatisée rendre Internet moins sûr?

Non. Même niveau de sécurité que les certificats de type DV.

Il existe (actuellement) trois niveaux d'assurance pour les certificats x509:

  • DV, validation de domaine
  • OV , Validation d'organisation
  • EV, validation étendue

DV est le moins cher. Cela signifie essentiellement "Si quelqu'un peut répondre à un e-mail à admin@example.com, alors cette personne obtient un certificat pour example.com" .

Il y a des contrôles supplémentaires pour OV, EV.

Plus d'informations sur les types de certificats: GlobalSign.com: Quels sont les différents types de certificats SSL? (Archivé ici.) Wikipédia: https://en.wikipedia.org/wiki/Public_key_certificate#Validation_levels Et beaucoup plus d'informations générales dans ces diapositives ici: RSAConference2017, ID de session: PDAC-W10, Kirk Hall, 100% crypté Web - Nouveaux défis pour TLS

Lectures complémentaires

Notez que la vérification des e-mails, bien que courante, n'est pas la seule vérification automatisée utilisée. En particulier, de nombreuses autorités de certification existantes offrent la possibilité d'exactement la même preuve Web que celle décrite par Lets Encrypt dans leurs documents.
Oui. Je n'ai jamais rencontré autre chose que la version de courrier électronique dans la nature.
Travaillant dans une agence de développement Web, j'ai été profondément soulagé lorsque Comodo a commencé à proposer la vérification DNS et HTTP, car cela signifie que nous n'avons plus à expliquer le processus au personnel non technique qui a accès au compte admin @ e-mail. Ou, pire, au personnel informatique qui a besoin de créer une telle boîte de réception spécialement à cet effet.
Alors que DV et EV sont des normes de l'industrie (normalisées par le CA / Browser Forum), pour autant que je sache, OV est uniquement GlobalSign. Par exemple, DigiCert https://www.digicert.com/ssl-certificate.htm et Entrust http://www.entrust.net/ssl-certificates.htm proposent EV et un tas de leurs propres variantes (mais pas OV ).
@MikeOunsworth Bien qu'il ne soit pas standardisé, je pense que le concept large d'OV en tant qu'étape entre DV et EV est assez courant; voir par exemple [Base de connaissances de Comodo] (https://support.comodo.com/index.php?/Default/Knowledgebase/Article/View/312/16/what-is-an-organizationally-validated-certificate).
"* L'existence d'une autorité de certification entièrement automatisée ne rend-elle pas Internet moins sécurisé? * Non. Même niveau de sécurité que les certificats de type DV." Il semble que Let's Encrypt soit * plus * sécurisé car une attaque MitM ne serait-elle pas aussi facile avec elle qu'avec une autorité de certification centralisée?
Steve Jessop
2015-05-04 22:40:51 UTC
view on stackexchange narkive permalink

Oui, le protocole que vous décrivez garantit uniquement que "la personne qui prend le téléphone à une super banque" lorsque vous les appelez, est la même personne qui a pris le téléphone à une super banque lorsque le serveur Let's Encrypt les a appelés. Si j'ai la capacité d'intercepter les appels à une banque impressionnante à la fois de Let's Encrypt et de vous, alors je peux vous tromper.

Idéalement, ce que vous voudriez que TLS vous dise, c'est que "la personne qui choisit téléphonez à la super banque "lorsque vous les appelez, c'est en fait un employé de la super banque . Mais cela est difficile à automatiser, car les ordinateurs ne peuvent pas simplement déterminer pour qui quelqu'un travaille, de sorte que les certificats mieux validés coûtent plus cher. Let's Encrypt ne fait rien de moins sécurisé que les autres CA.

On espère que Let's Encrypt essaiera de rendre plus difficile l'interception de leurs appels à une banque impressionnante, que d'intercepter la vôtre. Certains points d'accès Internet sont plus faciles à manipuler que d'autres (les scores sans fil non sécurisés sont faibles), et il est plus difficile de jouer avec plusieurs points d'accès simultanément qu'un seul (alors peut-être que Let's Encrypt confirmera qu'il reçoit le même fichier lorsqu'il le télécharge à partir de nombreux points d'accès différents. endroits dans le monde, même si je n'ai pas cherché à savoir s'ils le jugent nécessaire). À l'exception d'organisations comme la NSA, les attaques MITM dans la pratique ont tendance à être localisées et temporaires.

Donc, cela ne fournira une certaine mesure de sécurité que dans la mesure où c'est plus difficile à MITM Let's Encrypt qu'il ne l'est à MITM vous. Nous supposons qu'il est plus facile de contrôler votre accès à Internet que de contrôler soit celui de Let's Encrypt, soit celui d'une banque géniale, et c'est pourquoi vous «faites confiance» à Let's Encrypt en tant que CA.

Naturellement aucun ce sont vraiment des appels téléphoniques, ce sont des connexions socket entrantes.

Vous pouvez vous assurer que «la personne qui prend le téléphone chez AwesomeBank» utilise effectivement le téléphone d'AwesomeBank, si DNSSEC a été utilisé.
@immibis: bien, vous pouvez être "sûr" que vous avez la bonne adresse IP en utilisant DNSSEC. Votre routage peut toujours être détourné. DNNSEC permet également des enregistrements CERT fiables, mais je ne suis pas au courant de ce qui vous gagne.
WhiteWinterWolf
2015-05-04 14:02:34 UTC
view on stackexchange narkive permalink

Let's Encrypt est conçu pour aider contre une gamme d'attaques et pour pousser la généralisation de l'utilisation de TLS pour avoir un Internet globalement plus sûr et plus privé. Il vise plus précisément à supprimer les contraintes techniques et financières qui peuvent empêcher certains webmasters d'utiliser les certificats TLS plus largement.

Cependant, comme toute mesure de sécurité, ce ne sera pas un produit miracle résolvant tous les problèmes de sécurité possibles et vous permettant de tamponner votre site Web comme "site Web 100% sécurisé!" (même si certains sites Internet n'hésitent pas à utiliser de tels tampons ...). La sécurité implique la combinaison de plusieurs couches, chacune conçue pour faire face à sa propre classe de menaces.

Si l'on parvient vraiment à s'approprier votre nom de domaine, alors la plupart des chances sont que le Let'sEncrypt la livraison de certificat est automatisée n'aura pas plus d'impact dans ce cas que dans une autre situation.

Pour rappel, tout ce dont vous avez besoin pour obtenir un certificat d'une CA classique est de posséder une adresse administrative comme "admin @ example. com "et payer de l'argent. Si vous parvenez à obtenir la propriété du domaine, vous êtes libre de rediriger l'e-mail vers un serveur de messagerie de votre choix, possédant ainsi effectivement l'adresse e-mail de votre choix.

Ce n'est pas une menace théorique. Vous trouverez ici un article rédigé par quelqu'un dont le domaine a été volé afin de prendre possession de son e-mail. Dans ce cas précis, c'était pour accéder aux e-mails de réinitialisation de mot de passe envoyés par des sociétés tierces, mais dans sa position, l'attaquant aurait également pu générer de nouveaux certificats pour ce domaine et construire un site de phishing qui sera considéré comme sécurisé par les navigateurs.

Pas "prendre possession du domaine", mais si je peux tromper un résolveur DNS pour résoudre * temporairement * mon adresse (par exemple avec l'empoisonnement du cache), cela me donne la possibilité non temporaire d'emprunter l'identité de ce domaine.
Vous auriez non seulement besoin d'empoisonner le cache du résolveur DNS de CA (que ce soit Let'sEncrypt résolvant l'adresse de votre site Web ou une autre CA résolvant l'adresse de votre serveur de messagerie n'a pas d'importance ici), mais vous auriez également besoin d'empoisonner le cache de chaque et tous les visiteurs que vous souhaitez rediriger vers votre site de phishing lorsqu'ils accèdent à l'URL `https: // awesomebank.example` (sinon, avoir le certificat sera inutile si vous ne pouvez pas usurper l'identité du site Web). Cela pourrait être faisable dans une certaine mesure dans le cadre d'une attaque très ciblée, mais reste clairement limité et impossible à faire à grande échelle.
Si MITMing un site Web était si difficile, alors nous n'aurions sûrement pas besoin de TLS pour l'empêcher?
Le MITM n'est pas la seule menace, il y a aussi des écoutes clandestines, et la complexité de toutes dépend directement de la position de votre réseau par rapport à la cible. Comme son nom l'indique, vous devez être en mesure de vous placer quelque part "au milieu" des communications entre vos cibles. Un utilisateur final extérieur (par opposition aux FAI, aux agences gouvernementales, etc.) ne sera pas en bonne position pour faire un MITM massif, il devra donc soit déplacer artificiellement sa position en accédant à certaines machines offrant de meilleures possibilités MITM, ou utilisez un autre moyen selon celui qui est le plus rentable.
Si nous ne nous préoccupions que des écoutes clandestines, les navigateurs accepteraient les certificats auto-signés.
Les certificats auto-signés @immibis: ne protègent que contre les attaques MITM passives. Un attaquant MITM actif peut créer un certificat auto-signé.
@Brian Un attaquant MiTM actif casserait également Let's Encrypt.
@Brian Vous avez dit "MITM n'est pas la seule menace, il y a aussi des écoutes". Mais si l'écoute clandestine était la principale menace, alors les navigateurs accepteraient les certificats auto-signés, car l'écoute clandestine sans MITM est alors impossible.
@user54609: Un attaquant MiTM actif n'a qu'une seule chance (par certificat) de compromettre Let's Encrypt, et doit le faire en compromettant la connexion à Let's Encrypt (qui est signée par une autorité de certification de confiance). Avec un certificat auto-signé, * chaque * connexion est vulnérable aux attaques MITM actives.
@immibis: Ce n'est pas Brian qui a dit cela, et je n'ai jamais dit que l'écoute clandestine était la principale menace. Je viens de dire que le MITM n'est pas le seul, l'écoute clandestine est également une menace. C'est pourquoi TLS ne se limite pas à garantir l'authentification et l'intégrité, mais aussi la confidentialité. Accédez à un réseau Wi-Fi public ou partagé, démarrez Wireshark et surveillez l'activité impliquant le port 80, puis vous verrez rapidement pourquoi l'écoute clandestine est un problème et comment TLS l'empêche efficacement. Sinon, vous voudrez peut-être ouvrir une nouvelle question car discuter des avantages en matière de sécurité et des limitations de TLS semble un peu hors de portée ici.
IMSoP
2015-05-04 18:48:29 UTC
view on stackexchange narkive permalink

L'utilisation d'une vérification automatisée n'est pas unique à cette autorité de certification, mais est courante pour les certificats d'entrée de gamme. Comme indiqué dans d'autres réponses, il y a 3 niveaux de certificat en cours d'utilisation:

  • Doman Validation prouve seulement que vous aviez le contrôle du domaine au moment où le certificat a été émis. (Et que le certificat n'a pas été explicitement révoqué depuis lors.)
  • La validation de l'organisation implique une vérification supplémentaire que le nom de la société répertorié dans le certificat est valide.
  • Extended Validation inclut un un audit beaucoup plus rigoureux de la société qui demande le certificat.

Pour un certificat DV de base (et comme première étape dans les applications OV et EV), la plupart des autorités de certification utiliseront une forme de domaine " Validation du contrôle ". Par exemple, Comodo propose 3 options:

  1. Un e-mail doit être reçu par l'une des courtes adresses génériques du domaine, par exemple "admin @ ", dans l'hypothèse où seul le personnel autorisé aurait accès à ces boîtes aux lettres.
  2. Un enregistrement CNAME spécifique doit être ajouté dans la zone DNS du domaine, prouvant que le demandeur a le contrôle DNS.
  3. Une URL doit être ajoutée avec un contenu spécifique à la racine du HTTP du domaine, prouvant que le candidat a le contrôle du serveur Web pointé par le domaine.

Le Le protocole ACME développé dans le cadre de l'effort Lets Encrypt consiste à automatiser le côté client de cette vérification. Leur Aperçu de la technologie mentionne en fait les vérifications basées sur DNS et HTTP comme exemples qui pourraient être automatisés de cette manière.

L'idée est que le logiciel que vous installez peut déterminer automatiquement comment relever ces défis en fonction de la configuration à laquelle il a accès. S'il peut trouver et écrire dans la racine du document du domaine à valider, alors le défi basé sur HTTP est très facile à automatiser. La méthode de validation plus traditionnelle basée sur le courrier électronique serait plus délicate à automatiser, en raison de la complexité de la livraison du courrier, mais ne diffère pas en fait par la quantité de preuves qu'elle fournit.

J.C.
2015-05-05 11:05:55 UTC
view on stackexchange narkive permalink

La principale défense contre les attaques MITM lors de l'émission consiste à effectuer le contrôle de validation - en observant le serveur ou son DNS - à partir de nombreux emplacements géographiquement dispersés. C'est le nombre de CA qui opèrent aujourd'hui pour les contrôles Web automatisés afin de détecter la falsification et la fraude.

D'après ce que j'ai entendu dans la salle IRC, Let's Encrypt fera de même pour tous les contrôles de validation.

Cela n'aide pas si MITM est à proximité de votre serveur (si une seule route est disponible).
mcfedr
2020-09-03 15:38:01 UTC
view on stackexchange narkive permalink

N'oubliez pas que vous devez MITM pas les utilisateurs du site, mais les serveurs de validation Let Encrypts pour pouvoir obtenir ce certificat, ce sera beaucoup plus difficile.

Lets Encrypt a récemment parlé de la façon dont ils utiliser la validation multi-perspective pour se protéger contre une telle attaque - l'idée étant qu'ils valideront votre propriété du domaine à partir de différents endroits sur Internet, de sorte que vous auriez besoin de MITM plusieurs centres de données dans le monde entier.

Dans ce cas, je pense que Lets Encrypt est plus sécurisé que les autres fournisseurs de certificats qui ne vont pas jusqu'à se protéger. Cela n'a rien d'unique à Lets Encrypt - si vous pouvez MITM le fournisseur de certificat, vous pouvez utiliser l'un d'entre eux, cela pourrait être plus cher pour vous.

Eh bien, certains fournisseurs de certificats tentent de vérifier votre identité réelle.Pas tellement depuis que LE a commencé à exister.
Pour les certificats EV, ils devraient le faire, mais pour les DV que Lets Encrypt vous donne, d'autres fournisseurs sont similaires et ont tendance à être automatiques, mais d'une manière moins structurée que le protocole ACME.


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...