web-dev-qa-db-fra.com

Essayer de comprendre comment les certificats numériques et l'autorité de certification sont en effet sécurisés

Je comprends que les certificats numériques et les autorités de certification (tiers de confiance) aident à prévenir les attaques de l'homme au milieu pendant les connexions HTTPS. Cependant, je suis confus sur quelques détails.

Disons que nous avons un client Alice et Bob qui a un serveur mappé sur "bob.com".

Lorsque Bob (bob.com) demande à une autorité de certification (disons veriSign) qu'un nouveau certificat soit créé et lui envoie sa clé publique à insérer dans le certificat, qu'est-ce qui empêche un pirate d'intercepter la demande, de changer la clé publique avec le leur, demander à l'autorité de certification de créer un faux certificat, puis renvoyer ce faux certificat à Bob. La seule protection ici est-elle que Bob vérifie réellement que la clé publique du certificat retourné correspond à ce qu'il a initialement envoyé dans sa demande à l'AC? Et puis je suppose informer l'AC que ce qu'il a récupéré ne correspond pas à ce qu'il a envoyé, donc l'AC ne tient pas un faux dossier?

En supposant que le certificat nouvellement créé que Bob obtient de veriSign est légitime, disons maintenant qu'Alice va faire une demande à "bob.com" via le protocole HTTPS. Qu'est-ce qui empêche une attaque MITM à double canal où un pirate intercepte le nouveau certificat de Bob en route vers Alice, en crée un nouveau, le signe avec sa propre clé secrète (qui a été précédemment signée par verisign), mais intercepte également la demande d'Alice de veriSign lorsque elle demande la clé publique de veriSign et la remplace à nouveau par la clé publique correspondante par la clé secrète malveillante. Maintenant, quand Alice essaie de vérifier l'intégrité du faux certificat, il vérifie parce que même si elle pense qu'elle vérifie la signature avec la clé publique de veriSign, elle utilise vraiment la clé publique malveillante?

11
4Matt

La seule protection ici est-elle que Bob vérifie réellement que la clé publique du certificat retourné correspond à ce qu'il a initialement envoyé dans sa demande à l'AC?

Si la clé publique a été changée avant que l'autorité de certification l'ait utilisée pour créer le certificat, le site Web de Bob ne fonctionnera pas du tout. La clé privée, qu'il a gardée en sécurité, ne fonctionnera qu'avec sa clé publique d'origine. Il est peu probable que l'attaquant puisse MITM toutes les connexions et empêcher ce fait de devenir évident.

intercepte la demande d'Alice à veriSign lorsqu'elle demande la clé publique de veriSign, et la commute à nouveau avec la clé publique correspondante vers la clé secrète malveillante.

Alice n'atteint pas Verisign; Alice ne fait confiance aux copies des certificats de l'autorité de certification que dans son navigateur ou dans le magasin de certificats de confiance de l'ordinateur, dont Verisign est un.

Le magasin de certificats de confiance est rempli au moment de l'installation (du système d'exploitation ou, dans le cas de Firefox, de l'application) et est ensuite mis à jour via des mises à jour régulières du système d'exploitation ou de l'application si nécessaire - moins que vous ne le pensez, car de nombreuses autorités de certification racine le sont longue durée de vie.

18
gowenfawr

Bonne question. Les certificats des autorités de certification les plus fiables sont normalement inclus dans le package d'installation du logiciel, par ex. dans le programme d'installation du navigateur, dans le programme d'installation du système d'exploitation ou sont préinstallés sur un appareil comme un smartphone. C'est pourquoi le navigateur (ou une autre application) remarquera si le certificat provient vraiment de l'autorité de certification spécifiée.

3
mentallurg

Vous demandez essentiellement ce qui empêche un tiers d'émettre un certificat via une autorité de certification de confiance.

  1. Coût - Les autorités de certification facturent la délivrance de certificats. C'est prohibitif pour des milliers d'émissions de cette façon.

  2. Validation de domaine - une autorité de certification approuvée n'est approuvée que parce qu'elle est approuvée pour vérifier correctement la propriété du domaine. Certaines autorités de certification n'ont pas réussi à le faire à 100% et ont perdu leur statut de confiance. Une méthode de validation consiste à envoyer un e-mail au contact technique trouvé sur le bureau d'enregistrement du domaine. Il y a des faiblesses connues ici https://en.m.wikipedia.org/wiki/Certificate_authority#Validation_weaknesses

0
Todd